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



Σχετικά έγγραφα
ΕΠΛ 232 Φροντιστήριο 2

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

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

Ελάχιστα Γεννητορικά ένδρα

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

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

Επίλυση Προβληµάτων µε Greedy Αλγόριθµους

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

Κεφάλαιο 4. Άπληστοι Αλγόριθµοι (Greedy Algorithms) Χρησιµοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

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

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

ΕΠΛ 232: Αλγόριθµοι και Πολυπλοκότητα. Κατ οίκον Εργασία 1 Σκελετοί Λύσεων

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

ΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι Άννα Φιλίππου,

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

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

ΑΛΓΟΡΙΘΜΟΙ Άνοιξη I. ΜΗΛΗΣ

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

ίκτυα Ταξινόµησης (CLR κεφάλαιο 28)

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

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

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

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

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

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

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

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

Παράδειγµα: Προσοµοίωση µιας ουράς FIFO Οι λειτουργίες που υποστηρίζονται από µια ουρά FIFO είναι: [enq(q,x), ack(q)] [deq(q), return(q,x)] όπου x είν

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

2η Σειρά Γραπτών Ασκήσεων

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

Ορισµός. Εστω συναρτήσεις: f : N R και g : N R. η f(n) είναι fi( g(n) ) αν υπάρχουν σταθερές C 1, C 2 και n 0, τέτοιες ώστε:

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

Χαρακτηριστικά αναδροµής

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

Ασκήσεις για το µάθηµα «Ανάλυση Ι και Εφαρµογές» (ε) Κάθε συγκλίνουσα ακολουθία άρρητων αριθµών συγκλίνει σε άρρητο αριθµό.

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

Διάλεξη 21: Γράφοι IV - Βραχύτερα Μονοπάτια σε Γράφους

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΘΕΩΡΗΤΙΚΗ ΑΣΚΗΣΗ 1 ΛΥΣΕΙΣ Ανάλυση Πολυπλοκότητας

Αλγόριθµοι Ροής σε Γράφους (CLR, κεφάλαιο 27)

Αλγόριθµοι Οπισθοδρόµησης

HY118- ιακριτά Μαθηµατικά. Μαθηµατική επαγωγή. 11 Επαγωγή

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

ροµολόγηση πακέτων σε δίκτυα υπολογιστών

Διάλεξη 9: Αλγόριθμοι Αμοιβαίου Αποκλεισμού με τη χρήση μεταβλητών Ανάγνωσης/Εγγραφής. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

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

2 Αποδείξεις. 2.1 Εξαντλητική µέθοδος. Εκδοση 2005/03/22. Υπάρχουν πολλών ειδών αποδείξεις. Εδώ ϑα δούµε τις πιο κοινές:

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΘΕΩΡΗΤΙΚΗ ΑΣΚΗΣΗ 1 ΛΥΣΕΙΣ Ανάλυση Πολυπλοκότητας

Heapsort Using Multiple Heaps

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

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

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

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

Προβλήµατα Μεταφορών (Transportation)

Διάλεξη 4: Εκλογή Προέδρου σε Δακτύλιους. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

Ενότητα 9 Ξένα Σύνολα που υποστηρίζουν τη λειτουργία της Ένωσης (Union-Find)

Δοµές Δεδοµένων και Αλγόριθµοι - Εισαγωγή

Στοιχεία Αλγορίθµων και Πολυπλοκότητας

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

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

Outline. 6 Edit Distance

Γενικές Παρατηρήσεις. Μη Κανονικές Γλώσσες - Χωρίς Συµφραζόµενα (1) Το Λήµµα της Αντλησης. Χρήση του Λήµµατος Αντλησης.

Μη γράφετε στο πίσω μέρος της σελίδας

ΑΛΓΟΡΙΘΜΟΙ Άνοιξη I. ΜΗΛΗΣ

Κεφάλαιο : Επαναλήψεις (for, do-while)

(CLR, κεφάλαιο 32) Στην ενότητα αυτή θα µελετηθούν τα εξής θέµατα: Παραστάσεις πολυωνύµων Πολυωνυµική Παρεµβολή ιακριτός Μετασχηµατισµός Fourier

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 10: ΤΕΧΝΙΚΕΣ ΣΧΕΔΙΑΣΜΟΥ ΚΑΙ ΑΝΑΛΥΣΗΣ ΑΛΓΟΡΙΘΜΩΝ ΓΙΑ ΠΡΟΒΛΗΜΑΤΑ ΜΕ ΑΠΑΓΟΡΕΥΤΙΚΟ ΑΡΙΘΜΟ ΠΕΡΙΠΤΩΣΕΩΝ

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

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

ιοίκηση Παραγωγής και Υπηρεσιών

Γεωµετρικοί Αλγόριθµοι (CLR, κεφάλαιο 35)

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ.

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

Γ. Κορίλη Αλγόριθµοι ροµολόγησης

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Αρχές Ανάλυσης Αλγορίθµων Κεφάλαιο 2. Ε. Μαρκάκης Επικ. Καθηγητής

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

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

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ Ασκησεις - Φυλλαδιο 3

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

Αριθµοθεωρητικοί Αλγόριθµοι και το. To Κρυπτοσύστηµα RSA

Διδάσκων: Παναγιώτης Ανδρέου

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

Μάθημα 20: Δυναμικός Προγραμματισμός (DP)

Δοµές Δεδοµένων. 10η Διάλεξη Ταξινόµηση. E. Μαρκάκης

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

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

Ελάχιστο Γεννητικό Δένδρο. Παράδειγμα - Αλγόριθμος Prim. Γιατί δουλεύουν αυτοί οι αλγόριθμοι;

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

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

Πρόβληµα (ADT) Λεξικού. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Λεξικό, Union - Find 2

Αλγόριθμοι ταξινόμησης

Μη γράφετε στο πίσω μέρος της σελίδας

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

Μαθηµατική Επαγωγή. Ορέστης Τελέλης. Τµήµα Ψηφιακών Συστηµάτων, Πανεπιστήµιο Πειραιώς

Σωροί. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Ουρές Προτεραιότητας Σωροί υλοποίηση και πράξεις Ο αλγόριθμος ταξινόμησης HeapSort

Βασική Εφικτή Λύση. Βασική Εφικτή Λύση

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

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

Transcript:

Άπληστοι Αλγόριθµοι (CLR, κεφάλαιο 17) Στην ενότητα αυτή θα µελετηθούν τα εξής θέµατα: Σχεδιασµός αλγορίθµων µε Άπληστους Αλγόριθµους Στοιχεία άπληστων αλγορίθµων Το πρόβληµα επιλογής εργασιών ΕΠΛ 232 Αλγόριθµοι και Πολυπλοκότητα 4-1

Άπληστοι Αλγόριθµοι Προβλήµατα στα οποία ζητείται µια βέλτιστη λύση (optimization problems) συχνά λύνονται από αλγόριθµους οι οποίοι ακολουθούν µια σειρά βηµάτων µε ένα σύνολο επιλογών σε κάθε βήµα. Κύρια ιδέα: σε κάθε βήµα επέλεξε την επιλογή που φαίνεται καλύτερη για τη δεδοµένη στιγµή (the locally optimal choice). Ποιο είναι το κατάλληλο κριτήριο για τη λήψη µιας τοπικά βέλτιστης επιλογής; Ερώτηµα: αυτή η ακολουθία τοπικά βέλτιστων επιλογών δίνει τη βέλτιστη λύση του προβλήµατος; εξαρτάται από το πρόβληµα για ορισµένα προβλήµατα εγγυείται µόνο κοντινή (approximate) λύση ΕΠΛ 232 Αλγόριθµοι και Πολυπλοκότητα 4-2

Άπληστοι Αλγόριθµοι Παραδείγµατα άπληστων αλγόριθµων: 1. οι αλγόριθµοι εύρεσης ελάχιστου δέντρου σκελετού του Kruskal και του Prim 2. ο αλγόριθµος υπολογισµού των κωδικών Huffman 3. o αλγόριθµος επεξεργασίας εργασιών (job scheduling) Παραδείγµατα προβληµάτων στα οποία δεν προτρέπεται η χρήση άπληστου αλγόριθµου 1. προβλήµατα στα οποία τα υποπροβλήµατα δεν είναι ανεξάρτητα µεταξύ τους. 2. ΕΠΛ 232 Αλγόριθµοι και Πολυπλοκότητα 4-3

Επιλογή Εργασιών σύµφωνα µε προθεσµίες Το πρόβληµα Έχουµε ένα σύνολο εργασιών S={1,2, n} κάθε µία από τις οποίες χρειάζεται µία µονάδα χρόνου για να ολοκληρωθεί. Κάθε εργασία έχει κάποια προθεσµία d i και εκτέλεσή της πριν από την πάροδο της προθεσµίας της µας επιφέρει κέρδος g i. Για τη συµπλήρωση των εργασιών έχουµε στη διάθεση µας ένα επεξεργαστή (ανά πάσα στιγµή ο επεξεργαστής είναι χρησιµοποιήσιµος από το πολύ µια εργασία). Ένα σύνολο εργασιών ονοµάζεται συµβατό αν υπάρχει σειρά εκτέλεσης των εργασιών του η οποία ικανοποιεί τις προθεσµίες της κάθε εργασίας. Στόχος: η εύρεση του συνόλου συµβατών εργασιών που επιφέρει το µέγιστο δυνατό κέρδος. ΕΠΛ 232 Αλγόριθµοι και Πολυπλοκότητα 4-4

Παράδειγµα Εργασίες: i 1 2 3 4 g i 50 10 15 30 d i 2 1 2 1 Σύνολα Συµβατών Εργασιών Σύνολο Εργασιών 1 2 3 4 1,3 2,1 2,3 4,1 4,3 Κέρδος 50 10 15 30 65 60 25 80 45 Πως µπορούµε να διαλέξουµε την πρώτη εργασία για δηµιουργία του συµβατού συνόλου µε το µέγιστο κόστος; 1. αυτή µε την πιο κοντινή προθεσµία; 2. αυτή µε το µεγαλύτερο κέρδος; ΕΠΛ 232 Αλγόριθµοι και Πολυπλοκότητα 4-5

O Αλγόριθµος Υποθέτουµε ότι οι εργασίες είναι ταξινοµηµένες σε φθίνουσα σειρά ως προς το κέρδος που επιφέρουν. Αν όχι τις ταξινοµούµε σε χρόνο Ο(n log n). Αρχικά επιλέγουµε την εργασία µε το πιο µεγάλο κέρδος. Στη συνέχεια επιλέγουµε την επόµενη πιο κερδοφόρα εργασία η οποία είναι συµβατή µε το σύνολο που έχουµε επιλέξει µέχρι στιγµής. greedy { A={1}; for (i=2; i<=n; i++){ if legal(α {i}) A=A {i}; } return A; } H διαδικασία legal(b) αποφασίζει αν το σύνολο Β είναι συµβατό. ΕΠΛ 232 Αλγόριθµοι και Πολυπλοκότητα 4-6

H διαδικασία legal Σε κάθε επανάληψη του βρόχου επιλέγεται η εργασία µε το πιο µεγάλο κέρδος η οποία είναι συµβατή µε την υπάρχουσα επιλογή. Πως µπορούµε να αποφασίσουµε κάτα πόσο ένα σύνολο εργασιών είναι συµβατό; Λήµµα 1: Έστω σύνολο εργασιών µε k εργασίες {1,2,...,k} αριθµηµένες έτσι ώστε οι προθεσµίες τους να βρίσκονται σε αύξουσα σειρά, δηλ. d 1 d 2... d n. Αν οι k εργασίες είναι συµβατές τότε κατά την εκτέλεσή τους σε σειρά 1,2,...,k (δηλαδή διαλέγοντας κάθε φορά εκείνη µε την πιο κοντινή προθεσµία) καµιά εργασία δεν χάνει την προθεσµία της. Απόδειξη µε αντίφαση: Έστω ότι η το σύνολο των εργασιών είναι συµβατό αλλά κατά την εκτέλεσή τους σε σειρά 1,2,...,k κάποια εργασία χάνει την προθεσµία της. Έστω ότι η εργασία r είναι η πρώτη τέτοια εργασία. Τότε d r r-1. ΕΠΛ 232 Αλγόριθµοι και Πολυπλοκότητα 4-7

H διαδικασία legal Αφού οι εργασίες βρίσκονται σε αύξουσα σειρά προθεσµίας τότε οι εργασίες 1,...,r-1 έχουν επίσης προθεσµίες r-1. Εποµένως υπάρχουν τουλάχιστον r εργασίες µε προθεσµίες r-1. Όπως και αν εκτελέσουµε αυτές τις r εργασίες κάποια από αυτές θα χάσει την προθεσµία της! Εποµένως το σύνολο των εργασιών δεν είναι συµβατό. Αντίφαση! Για να ελέγχουµε τη συµβατότητα συνόλων εργασιών πρέπει 1. να κρατούµε την άνα πάσα στιγµή επιλογή µας ταξινοµηµένη σε αύξουσα σειρά ως προς το χρόνο προθεσµίας των εργασιών και 2. κάθε φορά που θεωρούµε µια καινούρια εργασία να ελέγχουµε αν µπορεί να εκτελεστεί η εργασία χωρίς να αναγκάσει κάποια από τις υπάρχουσες να χάσει την προθεσµία της. ΕΠΛ 232 Αλγόριθµοι και Πολυπλοκότητα 4-8

O Αλγόριθµος greedy2(int d[n]){ int j[n]; int k; {o πίνακας όπου φυλάγουµε την επιλογή εργασιών} {µετρητής των επιλεγµένων εργασιών} j[0] = 0; j[1] = 1; k = 1; for (i=2; i<=n; i++){ r = k; while (d j[r] > max(d i,r)) r -; if (d j[r] > r) for (m=k; m r+1; m--) j[m+1] = j[m]; j[r+1] = i; k=k+1; return j; } {διάλεξε την πρώτη εργασία} {βρες το σηµείο όπου µπορεί να εισαχθεί η εργασία i} αν η i µπορεί να εισαχθεί στη θέση r+1} {µετακίνησε τις εργασίες από τη θέση r+1 και µετά µια θέση προς τα δεξιά και εισήγαγε την i} ΕΠΛ 232 Αλγόριθµοι και Πολυπλοκότητα 4-9

Ο Αλγόριθµος Χρόνος Εκτέλεσης: Στη χείριστη περίπτωση κατά την i-οστή εκτέλεση του βρόχου χρειάζονται Θ(i) βήµατα στο εσωτερικό while-loop και Θ(i) βήµατα στο εσωτερικό for-loop). Εποµένως ο χρόνος εκτέλεσης χειρίστης περίπτωσης είναι Θ(n²). Παράδειγµα εκτέλεσης i d i g i 1 4 70 2 2 60 3 4 50 4 3 40 5 1 30 6 4 20 7 6 10 1 2, 1 2, 1, 3 2, 4, 1, 3 2, 4, 1, 3 2, 4, 1, 3 2, 4, 1, 3, 7 ΕΠΛ 232 Αλγόριθµοι και Πολυπλοκότητα 4-10

Απόδειξη της ορθότητας του αλγόριθµου Θεώρηµα 2: Έστω Α η ακολουθία εργασιών που παράγεται ως δεδοµένο εξόδου από τον αλγόριθµο. Τότε, 1. Η Α περιέχει συµβατές εργασίες, και 2. Η Α έχει το µέγιστο δυνατό κέρδος συνόλου που ικανοποιεί τις προδιαγραφές του προβλήµατος. Το πρώτο µέρος µπορεί να αποδειχθεί εύκολα µε τη µέθοδο της επαγωγής. Απόδειξη του 2: Θα δείξουµε ότι υπάρχει βέλτιστη λύση στο πρόβληµα που περιέχει την εργασία 1, δηλαδή την εργασία µε το µεγαλύτερο κέρδος. Έστω σύνολο Β Sµια βέλτιστη λύση στο πρόβληµα. Αν 1 Β τότε η λύση περιέχει την άπληστη επιλογή. ιαφορετικά, αφού το σύνολο εργασιών Β είναι συµβατό, σύµφωνα µε το Λήµµα 1, οι εργασίες της Β µπορούν να εκτελεστούν σε αύξουσα σειρά προθεσµίας, χωρίς καµιά να χάσει την προθεσµία της. ΕΠΛ 232 Αλγόριθµοι και Πολυπλοκότητα 4-11

Απόδειξη της ορθότητας του αλγόριθµου Έστω η σειρά αυτή είναι η k Β, δηλαδή η εργασία k είναι η εργασία στο Β µε την κοντινότερη προθεσµία. Θεωρείστε την ακολουθία Α = 1 Β. Προφανώς η ακολουθία αυτή αντιστοιχεί σε ένα συµβατό σύνολο εργασιών (καµιά από τις εργασίες στο Β δεν πρόκειται να χάσει την προθεσµία της). Επιπλέον, αφού g k g 1, τότε το Α είναι επίσης βέλτιστη λύση του προβλήµατος. Εποµένως υπάρχει βέλτιστη λύση η οποία περιέχει την άπληστη επιλογή. Μπορούµε να χρησιµοποιήσουµε τα ίδια επιχειρήµατα και για την εργασία µε το δεύτερο κοντινότερη προθεσµία και ούτω καθεξής. (µαθηµατική επαγωγή.) ΕΠΛ 232 Αλγόριθµοι και Πολυπλοκότητα 4-12

Στοιχεία άπληστων αλγορίθµων Ένας άπληστος αλγόριθµος προσπαθεί να βρει τη βέλτιστη λύση σε ένα πρόβληµα εφαρµόζοντας µια ακολουθία επιλογών. Κάθε µια από τις επιλογές επιλέγει την καλύτερη λύση στη δεδοµένη στιγµή σύµφωνα µε κάποιο κριτήριο. Αυτή η µέθοδος δεν βρίσκει πάντα τη βέλτιστη λύση. Πως µπορούµε να αποφασίσουµε κάτα πόσο ένα πρόβληµα µπορεί να λυθεί από ένα άπληστο αλγόριθµο; Γενικά δεν υπάρχει χαρακτηρισµός `άπληστων προβληµάτων. Εντούτοις, οι δύο πιο κάτω ιδιότητες προβληµάτων συχνά εισηγούνται την καταλληλότητα της χρήσης άπληστου αλγόριθµου. 1. Ιδιότητα της άπληστης επιλογής. 2. Ιδιότητα της βέλτιστης υποδοµής. ΕΠΛ 232 Αλγόριθµοι και Πολυπλοκότητα 4-13

Στοιχεία άπληστων αλγορίθµων Η Ιδιότητα της άπληστης επιλογής Μια ολικά βέλτιστη λύση µπορεί να βρεθεί µε τη λήψη µιας τοπικά βέλτιστης απόφασης. Η λήψη µιας απόφασης δεν εξαρτάται από µελλοντικές αποφάσεις. Απόδειξη ικανοποίησης της ιδιότητας από κάποιο πρόβληµα χρειάζεται και επιχειρηµατολογία της µορφής: αν Α είναι µια βέλτιστη λύση του προβλήµατος, τότε µπορούµε να δηµιουργήσουµε παραλλαγή της Α, Α, όπου η πρώτη απόφαση είναι άπληστη και η Α εξακολουθεί να είναι βέλτιστη. Με τη µέθοδο της επαγωγής µπορούµε να δείξουµε ότι άπληστη επιλογή µπορεί να εφαρµοστεί σε κάθε βήµα του αλγόριθµου. Η ιδιότητα της βέλτιστης υποδοµής Μια βέλτιστη λύση του προβλήµατος περιέχει βέλτιστες λύσεις υποπροβληµάτων. (Συγκρίνετε µε τη µέθοδο του δυναµικού προγραµµατισµού.) ΕΠΛ 232 Αλγόριθµοι και Πολυπλοκότητα 4-14

Άπληστος αλγόριθµος ή δυναµικός προγραµµατισµός; ίνοντας ρέστα (1) Το Αυστριακό νοµισµατικό σύστηµα περιέχει νοµίσµατα των 1, 5, 10, 25 και 100 σελινιών. Να σχεδιασθεί άπληστος αλγόριθµος ο οποίος, θεωρώντας την ύπαρξη απεριόριστης ποσότητας όλων των νοµισµάτων, για οποιοδήποτε ακέραιο Χ επιστρέφει τον ελάχιστο αριθµό νοµισµάτων µε συνολική αξία Χ. Για παράδειγµα, για Χ=46, ο αλγόριθµός σας θα πρέπει να επιστρέψει την τιµή 4 αφού η ελάχιστη συλλογή νοµισµάτων αξίας 46 είναι η 25, 10, 10,1. ίνοντας ρέστα (2) Να εισηγηθείτε αλγόριθµο ο οποίος να λύνει το πρόβληµα δεδοµένου ότι τα νοµίσµατα αξίας 5 σελινιών έχουν εξαντληθεί. ΕΠΛ 232 Αλγόριθµοι και Πολυπλοκότητα 4-15

ίνοντας Ρέστα Και τα δύο προβλήµατα ικανοποιούν την ιδιότητα βέλτιστης υποδοµής: 1. Για το πρώτο πρόβληµα, αν για κάποια βέλτιστη επιλογή κερµάτων Ε αξίας Χ αφαιρέσουµε κάποιο κέρµα a αξίας x, x {1,5,10,25,100}, η επιλογή E-a είναι η βέλτιστη επιλογή κερµάτων αξίας Χ-x. 2. Στο δεύτερο πρόβληµα, αν για κάποια βέλτιστη επιλογή κερµάτων Ε αξίας Χ αφαιρέσουµε κάποιο κέρµα a αξίας x, x {1,10,25,100}, η επιλογή E-a είναι η βέλτιστη επιλογή κερµάτων αξίας Χ-x. Μπορούν τα προβλήµατα να λυθούν µε άπληστο αλγόριθµό; Κριτήριο επιλογής: διάλεξε το πιο µεγάλο νόµισµα που χωρεί στην αξία που θέλεις να επιστρέψεις. ΕΠΛ 232 Αλγόριθµοι και Πολυπλοκότητα 4-16

ίνοντας Ρέστα ίνοντας ρέστα (1) ίνοντας ρέστα (2) change (int x) A = ; while(x>0){ if x>=100 A=A {100}; x=x-100; if x>=25 A=A {25}; x=x-25; if x>=10 A=A {10}; x=x-10; if x>=5 A=A {5}; x=x-5; if x>=1 A=A {1}; x=x-1; return A; change (int x) A = ; while(x>0) if x>=100 A=A {100}; x=x-100; if x>=25 A=A {25}; x=x-25; if x>=10 A=A {10}; x=x-10; if x>=1 A=A {1}; x=x-1; return A; ΕΠΛ 232 Αλγόριθµοι και Πολυπλοκότητα 4-17

ίνοντας Ρέστα Επιτυγχάνουν το στόχο τους οι δύο αλγόριθµοι; δηλ. ελαχιστοποιούν τον αριθµό νοµισµάτων της επιλογής που επιστρέφεται; Για το πρώτο πρόβληµα ναι, µπορούµε να το αποδείξουµε µε παρόµοιο τρόπο όπως και το πρόβληµα επιλογής εργασιών. Αντιπαράδειγµα για το δεύτερο αλγόριθµο: Έστω ότι η αξία που θέλουµε να επιστρέψουµε είναι 30: Mε τον άπληστο αλγόριθµο επιλέγονται νοµίσµατα 25, 1, 1, 1, 1, 1 ενώ βέλτιστη λύση είναι η επιλογή: 10, 10, 10 Γιατί δουλεύει ο αλγόριθµος για το πρώτο και όχι για το δεύτερο πρόβληµα; Πως µπορεί να λυθεί το δεύτερο πρόβληµα; ΕΠΛ 232 Αλγόριθµοι και Πολυπλοκότητα 4-18