Αλγόριθµοι. Παράδειγµα. ιαίρει και Βασίλευε. Παράδειγµα MergeSort. Τεχνικές Σχεδιασµού Αλγορίθµων

Σχετικά έγγραφα
Αλγοριθμικές Τεχνικές. Brute Force. Διαίρει και Βασίλευε. Παράδειγμα MergeSort. Παράδειγμα. Τεχνικές Σχεδιασμού Αλγορίθμων

Αλγοριθμικές Τεχνικές

Τεχνικές Σχεδιασμού Αλγορίθμων

Θέματα Εφαρμογών Βάσεων Δεδομένων: Ιδιωτικότητα Δεδομένων

Δομές Δεδομένων & Αλγόριθμοι

Στην ενότητα αυτή θα µελετηθούν τα εξής θέµατα:

Δυναμικός Προγραμματισμός

υναμικός Προγραμματισμός

Αλγόριθµοι και Πολυπλοκότητα

Αλγόριθμοι και Πολυπλοκότητα

υναμικός Προγραμματισμός

Δυναμικός Προγραμματισμός

Άπληστοι Αλγόριθµοι (CLR, κεφάλαιο 17)

Στην ενότητα αυτή θα µελετηθούν τα εξής θέµατα:

υναμικός Προγραμματισμός

Δυναμικός Προγραμματισμός

Αλγόριθµοι και Πολυπλοκότητα

Διαίρει-και-Βασίλευε. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 2

Ταξινόμηση με συγχώνευση Merge Sort

ΔΥΑΔΙΚΗ ΑΝΑΖΗΤΗΣΗ & ΤΑΞΙΝΟΜΗΣΗ ΜΕ ΣΥΓΧΩΝΕΥΣΗ

ΕΠΛ 232 Αλγόριθµοι και Πολυπλοκότητα 2-1

Αλγόριθµοι και Πολυπλοκότητα

Εισαγωγή στους Αλγορίθμους

Αλγόριθµοι και Πολυπλοκότητα

Εισαγωγή στην Ανάλυση Αλγορίθμων

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Ταξινόµηση Mergesort Κεφάλαιο 8. Ε. Μαρκάκης Επίκουρος Καθηγητής

ΑΛΓΟΡΙΘΜΟΙ & ΣΤΟΙΧΕΙΑ ΠΟΛΥΠΛΟΚΟΤΗΤΑΣ

καθ. Βασίλης Μάγκλαρης

Ενότητα 1: Εισαγωγή Ασκήσεις και Λύσεις

Υπολογιστικό Πρόβληµα

Δομές Δεδομένων και Αλγόριθμοι

Αναδρομικές Σχέσεις «ιαίρει-και-βασίλευε»

Κεφάλαιο 4. Διαίρει και Βασίλευε (Divide and Conquer) Χρησιµοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

Μοντελοποίηση προβληµάτων

Διάλεξη 09: Αλγόριθμοι Ταξινόμησης I

ιαίρει-και-βασίλευε ημήτρης Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο

Σχεδίαση και Ανάλυση Αλγορίθμων

Κεφάλαιο 8. NP και Υπολογιστική Δυσεπιλυσιμότητα. Παύλος Εφραιμίδης V1.1,

Δυναµικός Προγραµµατισµός (ΔΠ)

Εισαγωγή στους Αλγόριθμους

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

Κεφάλαιο 4. Διαίρει και Βασίλευε (Divide and Conquer) Παύλος Εφραιμίδης V1.1,

Σχεδίαση και Ανάλυση Αλγορίθμων

Διαίρει-και-Βασίλευε. Διαίρει-και-Βασίλευε. MergeSort. MergeSort. Πρόβλημα Ταξινόμησης: Είσοδος : ακολουθία n αριθμών (α 1

Δυναμικός Προγραμματισμός

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Αλγόριθµοι Divide-and- Conquer

Κεφάλαιο 4. Δυναµικός Προγραµµατισµός (Dynamic Programming) Χρησιµοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

Γ7.5 Αλγόριθμοι Αναζήτησης. Γ Λυκείου Κατεύθυνσης

Άπληστοι Αλγόριθµοι. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Άπληστοι Αλγόριθµοι 1

Επιμέλεια διαφανειών: Δ. Φωτάκης Τροποποιήσεις-προσθήκες: Α. Παγουρτζής. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Σχεδίαση Αλγορίθμων -Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ

auth Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο

Merge Sort (Ταξινόμηση με συγχώνευση) 6/14/2007 3:04 AM Merge Sort 1

Περιεχόμενα. Εισαγωγή του επιμελητή, Γιάννης Σταματίου 15 Πρόλογος 17 Εισαγωγή 23. Μέρος I. ΕΠΑΝΑΛΗΠΤΙΚΟΙ ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΑΝΑΛΛΟΙΩΤΕΣ ΣΥΝΘΗΚΕΣ

Αλγόριθµοι και Πολυπλοκότητα

Διάλεξη 19: Αλγόριθμοι ΤαξινόμησηςII. Διδάσκων: Παναγιώτης Ανδρέου

Διάλεξη 09: Αλγόριθμοι Ταξινόμησης I

ΠΟΛΛΑΠΛΑΣΙΑΣΜΟΣ (συνέχεια)

Σύνθεση Data Path. ιασύνδεσης. Μονάδες. Αριθµό Μονάδων. Τύπο Μονάδων. Unit Selection Unit Binding. λειτουργιών σε. Μονάδες. Αντιστοίχιση µεταβλητών &

Πολλαπλασιασμός: αλγόριθμος

Αλγόριθµοι Brute-Force και Διεξοδική Αναζήτηση

Αλγόριθμοι Ταξινόμησης Μέρος 2

Δομές Δεδομένων και Αλγόριθμοι

Μια Επισκόπηση της Ύλης & Μερικές Οδηγίες

Προσεγγιστικοί Αλγόριθμοι

Heapsort Using Multiple Heaps

Αλγόριθµοι και Πολυπλοκότητα

Διάλεξη 04: Παραδείγματα Ανάλυσης

Χαρακτηριστικά Δυναμικού Προγραμματισμού. Εισαγωγικά. 2 Δυναμικός Προγραμματισμός

Εισαγωγή στους Αλγορίθμους Ενότητα 5η

Αλγόριθμοι και Πολυπλοκότητα

Εισαγωγή στους Αλγορίθμους Ενότητα 11η

Διωνυµικοί Συντελεστές. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Δυναµικός Προγραµµατισµός 1

Διάλεξη 04: Παραδείγματα Ανάλυσης Πολυπλοκότητας/Ανάλυση Αναδρομικών Αλγόριθμων

Outline. 6 Edit Distance

Ουρές Προτεραιότητας: Υπενθύμιση. Σωροί / Αναδρομή / Ταξινόμηση. Υλοποίηση Σωρού. Σωρός (Εισαγωγή) Ορέστης Τελέλης

Δοµές Δεδοµένων. 11η Διάλεξη Ταξινόµηση Quicksort και Ιδιότητες Δέντρων. Ε. Μαρκάκης

Κατ οίκον Εργασία 1 Σκελετοί Λύσεων

ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 4. Παραδείγματα Ανάλυσης Πολυπλοκότητας Ανάλυση Αναδρομικών Αλγόριθμων

Εισαγωγή στους Αλγόριθµους. Αλγόριθµοι. Ιστορικά Στοιχεία. Ο πρώτος Αλγόριθµος. Παραδείγµατα Αλγορίθµων. Τι είναι Αλγόριθµος

Ταξινόμηση. Παύλος Εφραιμίδης. Δομές Δεδομένων Ταξινόμηση 1

Βραχύτερα Μονοπάτια σε Γράφους (CLR, κεφάλαιο 25)

ΠΛΗ111. Ανοιξη Μάθηµα 9 ο. Ταξινόµηση. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης

Αλγόριθμοι και πολυπλοκότητα Δυναμικός Προγραμματισμός

Κεφάλαιο 1. Πέντε Αντιπροσωπευτικά Προβλήματα. Έκδοση 1.4, 30/10/2014. Χρησιμοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΣΗΜΕΙΩΣΕΙΣ ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

Κατ οίκον Εργασία 2 Σκελετοί Λύσεων

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Ταξινόμηση. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

11.1 Συναρτήσεις. ΚΕΦΑΛΑΙΟ 11: Θεωρία υπολογισµών

Ο αλγόριθμος Quick-Sort. 6/14/2007 3:42 AM Quick-Sort 1

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές Δεδομένων. Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης

Άπληστοι Αλγόριθμοι. ιδάσκοντες: Σ. Ζάχος,. Φωτάκης Επιμέλεια διαφανειών:. Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Ποσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων ΙΙ Σύνολο- Περιεχόμενο Μαθήματος

Άπληστοι Αλγόριθμοι. ιδάσκοντες: Σ. Ζάχος,. Φωτάκης Επιμέλεια διαφανειών:. Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

(Γραμμικές) Αναδρομικές Σχέσεις

τη µέθοδο της µαθηµατικής επαγωγής για να αποδείξουµε τη Ϲητούµενη ισότητα.

ΑΕΠΠ Ερωτήσεις θεωρίας

Αλγόριθμοι και Δομές Δεδομένων (Ι) (εισαγωγικές έννοιες)

Transcript:

Τεχνικές Σχεδιασµού Αλγορίθµων Αλγόριθµοι Παύλος Εφραιµίδης pefraimi@ee.duth.gr Ορισµένες γενικές αρχές για τον σχεδιασµό αλγορίθµων είναι: ιαίρει και Βασίλευε (Divide and Conquer) υναµικός Προγραµµατισµός (Dynamic Programming) Απληστία (Greedy) Αλγόριθµοι Τεχνικές Σχεδιασµού Αλγορίθµων Αλγόριθµοι Τεχνικές Σχεδιασµού Αλγορίθµων ιαίρει και Βασίλευε ιαίρει (Divide): Το πρόβληµα διαιρείται σε ένα πλήθος b υποπροβληµάτων (συνήθως b=) όσο δυνατόν ιδίου µεγέθους ή δυσκολίας Βασίλευε (Conquer): Κάθε πρόβληµα επιλύεται µε αναδροµικό τρόπο (Στην πράξη πρέπει να είµαστε προσεκτικοί µε την υλοποίηση της αναδροµής) Συνδύασε (Combine): Οι επιµέρους λύσεις συνδυάζονται για την επίλυση του αρχικού προβλήµατος Παράδειγµα Ταξινόµηση Συγχώνευσης (MergeSort): ιαίρει: Το πρόβληµα µεγέθους N (µε N αριθµούς) διαιρείται σε υποπροβλήµατα µεγέθους N/ το καθένα Βασίλευε: Ταξινόµησε κάθε υποπρόβληµα εφαρµόζοντας αναδροµικά πάλι MergeSort Συνδύασε: Συγχώνευσε τους ταξινοµηµένους υποπίνακες σε έναν ενιαίο ταξινοµηµένο πίνακα Αλγόριθµοι Τεχνικές Σχεδιασµού Αλγορίθµων Αλγόριθµοι Τεχνικές Σχεδιασµού Αλγορίθµων Παράδειγµα MergeSort 7 8 9 7 7 8 9 8 7 8 9 5 9 7 8 9 6 7 8 9 7 8 9 βήµα υναµικός Προγραµµατισµός υναµικός Προγραµατισµός: Γενική σχεδιαστική στρατηγική για την επίλυση υπολογιστικών προβληµάτων Εφαρµογές: Χρησιµοποιείται κυρίως για προβλήµατα βελτιστοποίησης Βασική Ιδέα: Βασίζεται στην επίλυση υποπροβληµάτων για να επιλύσει το αρχικό πρόβληµα Ας ξεκινήσουµε µε ένα παράδειγµα Αλγόριθµοι Τεχνικές Σχεδιασµού Αλγορίθµων 5 Αλγόριθµοι Τεχνικές Σχεδιασµού Αλγορίθµων 6

Χαρακτηριστικά Οµοιότητα µε ιαίρει και Βασίλευε ιάσπαση αρχικού προβλήµατος σε µικρότερου µεγέθους υποπροβλήµατα τα οποία επιλύονται αναδροµικά ιαφορά µε ιαίρει και Βασίλευε Τα υποπροβλήµατα δεν είναι ανεξάρτητα µεταξύ τους αλλά είναι δυνατόν να διαµοιράζονται κοινά µικρότερα υποπροβλήµατα Λύσεις Υποπροβληµάτων Κάθε υποπρόβληµα επιλύεται µόνο µία φορά και η λύση του αποθηκεύεται, για συνακόλουθη χρήση, σε έναν πίνακα Βασικές Έννοιες Τυπικά χαρακτηριστικά: Απλά υποπροβλήµατα: το πρόβληµα διασπάται σε ένα σύνολο υποπροβληµάτων, συνήθως, µε περισσότερους του ενός τρόπους Αρχή του βέλτιστου: η ολική βέλτιστη λύση είναι αποτέλεσµα συνδυασµού βέλτιστων λύσεων υποπροβληµάτων Επικάλυψη υποπροβληµάτων: καθώς φαινοµενικά ασυσχέτιστα υποπροβλήµατα είναι δυνατόν να διαµοιράζονται βέλτιστες λύσεις κοινών υποπροβληµάτων, κάθε βέλτιστη λύση αποθηκεύεται για µελλοντική ενδεχόµενη χρήση Αλγόριθµοι Τεχνικές Σχεδιασµού Αλγορίθµων 7 Αλγόριθµοι Τεχνικές Σχεδιασµού Αλγορίθµων 8 Ανάπτυξη ενός αλγορίθµου δυναµικού προγραµµατισµού Βασικά Βήµατα. Χαρακτηρισµός της δοµής µιας βέλτιστης λύσης. Αναδροµικός ορισµός της τιµής µιας βέλτιστης λύσης. Υπολογισµός της τιµής της βέλτιστης λύσης µε bottom-up (από κάτω προς τα επάνω) τρόπο. Σύνθεση της βέλτιστης λύσης από τα αποτελέσµατα των υπολογισµών Πολλαπλασιασµός Αλυσίδας Πινάκων Το πρόβληµα: ίνεται µια ακολουθία πινάκων Α,Α,...,Α n- και να ζητείται να βρεθεί ο βέλτιστος, από άποψη πολυπλοκότητας χρόνου, τρόπος υπολογισµού του γινοµένου Α Α Α n- Παραδοχή: Θεωρούµε ότι εάν ο Α i είναι d i d i+, το κόστος του γινοµένου Α i Α i+ είναι d i d i+ d i+ Αλγόριθµοι Τεχνικές Σχεδιασµού Αλγορίθµων 9 Αλγόριθµοι Τεχνικές Σχεδιασµού Αλγορίθµων Παράδειγµα () ίνονται τρεις πίνακες Α : διαστάσεων 5 Α : διαστάσεων 6 Α : διαστάσεων 6 και ζητείται να υπολογιστεί το γινόµενο Α Α Α Αλγόριθµοι Τεχνικές Σχεδιασµού Αλγορίθµων Παράδειγµα () Πιθανές Λύσεις: Ο πολλαπλασιασµός πινάκων είναι προσεταιριστική πράξη και εποµένως. Α Α Α = Α (Α Α ), και. Α Α Α = (Α Α ) Α Ποια από τις δύο πιθανές λύσεις να προτιµήσουµε; Πολυπλοκότητα: Η πολυπλοκότητα κάθε λύσης είναι. Α (Α Α ) µε κόστος 6 + 5 =88. (Α Α ) Α µε κόστος 5 6+ 5 6 =8 Βέλτιστη Λύση: Εποµένως η βέλτιστη ακολουθία για την εκτέλεση των υπολογισµών είναι η : (Α Α ) Α Αλγόριθµοι Τεχνικές Σχεδιασµού Αλγορίθµων

Πρώτη Προσπάθεια: Αναδροµή Πολλαπλασιασµός Αλυσίδας Πινάκων. Ας σχεδιάσουµε έναν αλγόριθµο... Έστω αλυσίδα πινάκων Α Α Α n- Τα πιθανά σενάρια για το τελευταίο πολλαπλασιασµό πινάκων που θα εκτελεστεί: (Α ) (Α Α Α n- ) (Α Α ) (Α Α n- )... (Α Α Α k- ) (Α k Α k+ Α n- )... (Α Α Α n- ) (Α n- ) Στη βέλτιστη λύση θα εκτελεστεί ένας από τους παραπάνω πολλαπλασιασµούς Έστω Π(n) η πολυπλοκότητα χρόνου για την εύρεση της καλύτερης ακολουθίας εκτέλεσης των πολλαπλασιασµών για n πίνακες Σηµείωση: Μας ενδιαφέρει να προσδιορίσουµε την πολυπολοκότητα χρόνου για την εύρεση της βέλτιστης ακολουθίας πολλαπλασιασµών, και όχι το κόστος τις εκτέλεσης των πολλαπλασιασµών αυτής της ακολουθίας Αναδροµική Σχέση Μπορούµε να διατυπώσουµε µια αναδροµική σχέση Τ(n) = ; Αλγόριθµοι Τεχνικές Σχεδιασµού Αλγορίθµων Αλγόριθµοι Τεχνικές Σχεδιασµού Αλγορίθµων Αναδροµική Σχέση Ας υποθέσουµε ότι ότι το ξεκίνηµα κάθε αναδροµικής κλήσης απαιτεί τουλάχιστον χρόνο και η επιλογή του σηµείου διαίρεσης µιας ακολουθίας πινάκων σε υποακολουθίες απαιτεί και αυτό τουλάχιστον χρόνο. Τότε: Τ(n) + ( Τ() + Τ(n-) + ) + ( Τ() + Τ(n-) + ) +... + ( Τ(n-) + Τ() + ) Τ(n) + Σ k n (Τ(k) + Τ(n-k) + ) Η λύση της αναδροµικής αυτή σχέσης δίνει: Τ(n) n-, δηλαδή εκθετικό χρόνο Συµπέρασµα: Εποµένως µε τον αναδροµικό αλγόριθµο που αναλύσαµε απαιτείται εκθετικός χρόνος για την εύρεση της βέλτιστης ακολουθίας εκτέλεσης των πολλαπλασιασµών πινάκων Αλγόριθµοι Τεχνικές Σχεδιασµού Αλγορίθµων 5 εύτερη Προσπάθεια: Με χρήση υναµικού Προγραµµατισµού Αλγόριθµοι Τεχνικές Σχεδιασµού Αλγορίθµων 6 Αλγόριθµος µε χρήση υναµικού Προγραµµατισµού Ησωστή αντιµετώπιση: Έστω Α i,j = Α i Α i+ Α j µε κόστος Μ i,j Τότε Α,n- = Α,k- Α k,n- και Μ,n- = Μ,k- +M k,n- + d d k d n Ισχύουν οι προϋποθέσεις του υναµικού Προγραµµατισµού (εάν τα υποπροβλήµατα δεν λύνονταν βέλτιστα ενώ η ολική λύση ήταν βέλτιστη, τότε µε τοπική αντικατάσταση θα προέκυπτε καλύτερη λύση!) Παράδειγµα Αλυσίδα 5 πινάκων: A A A A A A: 5x A: x A: x A: x A: x Αλγόριθµοι Τεχνικές Σχεδιασµού Αλγορίθµων 7 Αλγόριθµοι Τεχνικές Σχεδιασµού Αλγορίθµων 8

Παράδειγµα 6 6 Προγραµµατισµός ; υναµικός Προγραµµατισµός: Γιατί ο υναµικός Προγραµµατισµός έχει αυτό το όνοµα; Σχετίζεται µε τον προγραµµατισµό υπολογιστών, τις γλώσσες προγραµµατισµού κτλ; ΟΧΙ: Η λέξη προγραµµατισµός στον όρο «δυναµικός προγραµµατισµός» δεν έχει σχέση µε τον προγραµµατισµό υπολογιστών Προγραµµατισµός: Η λέξη προγραµµατισµός εδώ χρησιµοποιείται για να περιγράψει τη διαδικασία επίλυσης προβληµάτων, η οποία περιλαµβάνει τη διαδοχική λήψη βέλτιστων αποφάσεων Θα µπορούσε ίσως να χρησιµοποιείται η λέξη σχεδιασµός αντί της λέξης προγραµµατισµός Παρόµοιο θέµα χρήσης της λέξης προγραµµατισµός υπάρχει και στους όρους Γραµµικός Προγραµµατισµός, Ακέραιος Προγραµµατισµός, Μαθηµατικός Προγραµµατισµός κτλ. Αλγόριθµοι Τεχνικές Σχεδιασµού Αλγορίθµων 9 Αλγόριθµοι Τεχνικές Σχεδιασµού Αλγορίθµων υναµικός Προγραµµατισµός vs Πρόβληµα Βελτιστοποίησης Πρόβληµα Βελτιστοποίησης: ίνεται ένα πρόβληµα και ένα σύνολο αποδεκτών λύσεων Από το σύνολο πιθανών λύσεων, ποια είναι η καλύτερη; ίνονται συνήθως ένα πλήθος περιορισµών που πρέπει να ικανοποιεί η λύση µια συνάρτηση κόστους ή κέρδους µε την οποία κρίνεται πόσο καλή είναι η λύση ιαίρει και Βασίλευε Ο υναµικός Προγραµµατισµός µοιάζει µε την τεχνική του διαίρει και βασίλευε ΟΜΩΣ ΕΝ ΕΙΝΑΙ το ίδιο πράγµα! Το αρχικό πρόβληµα διασπάται σε ένα σύνολο υποπροβληµάτων είναι πιθανό ένα πρόβληµα να διασπαστεί σε πολλούς διαφορετικούς συνδυασµούς υποπροβληµάτων η λύση κάθε υποπροβλήµατος µπορεί να χρησιµοποιηθεί πολλές φορές στη διάρκεια της εκτέλεσης του αλγορίθµου Αλγόριθµοι Τεχνικές Σχεδιασµού Αλγορίθµων Αλγόριθµοι Τεχνικές Σχεδιασµού Αλγορίθµων Αρχή του Βέλτιστου Αρχή το Βέλτιστου (Principle of Optimality): Η βέλτιστη λύση των υποπροβληµάτων δίνει τη βέλτιστη λύση του συνολικού προβλήµατος Επικάλυψη Υποπροβληµάτων Υποπροβλήµατα µπορεί να µοιράζονται κοινά υπο-υποπροβλήµατα, και εποµένως η βέλτιστη λύση κάθε υποπροβλήµατος (όταν βρεθεί) αποθηκεύεται για πιθανή µελλοντική χρήση Αλγόριθµοι Τεχνικές Σχεδιασµού Αλγορίθµων Αλγόριθµοι Τεχνικές Σχεδιασµού Αλγορίθµων

Απληστία Ηαρχή της απληστίας (greedy) : O αλγόριθµος σε κάθε βήµα να επιλέγει µε κριτήριο τι είναι βέλτιστο για το συγκεκριµένο βήµα Γενική σχεδιαστική τεχνική: Μπορεί να οδηγήσει σε πολλούς διαφορετικούς αλγόριθµους για το ίδιο πρόβληµα Παραδείγµατα Εύρεση ελάχιστου γεννητικού δέντρου Για παράδειγµα στον αλγόριθµο του Prim επιλέγουµε σε κάθε βήµα την ελαφρύτερη από τις υποψήφιες γειτονικές ακµές Αλγόριθµοι Τεχνικές Σχεδιασµού Αλγορίθµων 5 Αλγόριθµοι Τεχνικές Σχεδιασµού Αλγορίθµων 6 Προγραµµατισµός Εργασιών (Scheduling) TSP Το Πρόβληµα του Πλανόδιου Πωλητή (Traveling Salesman Problem - TSP) Μια πιθανή εφαρµογή της αρχής της απληστίας στο πρόβληµα του Πλανόδιου Πωλητή είναι η εξής: Σε κάθε βήµα πήγαινε στην πόλη που είναι πλησιέστερη Αλγόριθµοι Τεχνικές Σχεδιασµού Αλγορίθµων 7 Αλγόριθµοι Τεχνικές Σχεδιασµού Αλγορίθµων 8 5