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



Σχετικά έγγραφα
Εισαγωγή στους Αλγορίθμους Ενότητα 8η

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

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

Initialize each person to be free. while (some man is free and hasn't proposed to every woman) { Choose such a man m w = 1 st woman on m's list to

Κεφάλαιο 8. NP και Υπολογιστική Δυσεπιλυσιμότητα. Χρησιμοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

Κεφάλαιο 8. NP και Υπολογιστική Δυσεπιλυσιµότητα. Χρησιµοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

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

Κεφάλαιο 2. Η δομή δεδομένων Σωρός και η Ταξινόμηση Σωρού (The Heap data structure and Heapsort) Έκδοση 1.3, 14/11/2014

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

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

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

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

Κεφάλαιο 2. Η δοµή δεδοµένων Σωρός και η Ταξινόµηση Σωρού (The Heap data structure and Heapsort) Έκδοση 1.1, 12/05/2010

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

Κεφάλαιο 3. Γραφήµατα v1.0 ( ) Χρησιµοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

οµηµένος Προγραµµατισµός ΙΙΙ - Java Παύλος Εφραιµίδης οµηµένος Προγρ. ΙΙΙ - 1 Java Το Μάθηµα

οµηµένος Προγραµµατισµός ΙΙΙ - Java

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

Δομημένος Προγραμματισμός ΙΙΙ - Java

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

Βασικές Έννοιες Δοµών Δεδοµένων

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

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

Κεφάλαιο 1. Εισαγωγή: Ευσταθές Ταίριασμα και άλλα Αντιπροσωπευτικά Προβλήματα. Έκδοση 1.5, 30/10/2014

ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ ΚΑΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ

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

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

1.1 Ένα πρώτο πρόβληµα: Ευσταθές Ταίριασµα

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

Το µάθηµα Αντικείµενο-Περιεχόµενα µαθήµατος Τρόπος ιδασκαλίας Εργαστήριο Βιβλίο, Βιβλιογραφία On-line Υλικό 2

Κεφάλαιο 1. Εισαγωγή: Κάποια Αντιπροσωπευτικά Προβλήµατα. Έκδοση 1.3, 29/02/2012. Χρησιµοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

Κεφάλαιο 3. Γραφήµατα v1.1 ( ) Χρησιµοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

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

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

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

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

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

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

Τύποι Δεδομένων και Απλές Δομές Δεδομένων. Παύλος Εφραιμίδης V1.0 ( )

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

Σχεδιαση Αλγοριθμων -Τμημα Πληροφορικης ΑΠΘ - Κεφαλαιο 9ο

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

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

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

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

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

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

Ευσταθές ταίριασμα. (υλικό βασισμένο στο βιβλίο. Slides by Kevin Wayne. Copyright 2005 Pearson-Addison Wesley. All rights reserved.

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

Δομές δεδομένων. Ενότητα 5η: Υλοποίηση Λεξικών με Ισοζυγισμένα Δένδρα Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών

Κεφάλαιο 2. Βασικά στοιχεία ανάλυσης αλγορίθµων. Χρησιµοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

Κεφάλαιο 3. Γραφήματα. v1.3 ( ) Χρησιμοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

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

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

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

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

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

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

Κεφάλαιο 3. Γραφήματα. ver. 21/12/2014. Χρησιμοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

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

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

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

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

Απλές Δοµές Δεδοµένων Στην ενότητα αυτή θα γνωρίσουµε ορισµένες απλές Δοµές Δεδοµένων και θα τις χρησιµοποιήσουµε για την αποδοτική επίλυση του προβλή

Αλγόριθμοι. Μάρθα Σιδέρη. epl333 lect

Outline. 6 Edit Distance

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά

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

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

HY380 Αλγόριθμοι και πολυπλοκότητα Hard Problems

ΕΝΟΤΗΤΑ 4 ΣΥΝΟΛΑ - ΛΕΞΙΚΑ

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

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

Δομές Δεδομένων (Data Structures)

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

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

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

Κεφάλαιο 2. Βασικά στοιχεία ανάλυσης αλγορίθμων. Χρησιμοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

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

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

ΕΝΟΤΗΤΑ 5 ΥΛΟΠΟΙΗΣΗ ΛΕΞΙΚΩΝ ΜΕ ΙΣΟΖΥΓΙΣΜΕΝΑ ΔΕΝΔΡΑ

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

Κεφάλαιο 4. Αλγόριθμος του Dijkstra. Χρησιμοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

Εισαγωγή στην Ανάλυση Αλγορίθμων (1) Διαφάνειες του Γ. Χ. Στεφανίδη

d k 10 k + d k 1 10 k d d = k i=0 d i 10 i.

Σειρά Προβλημάτων 1 Λύσεις

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

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

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

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

Το Πρόβληµα Οµοφωνίας Σύγχρονα Συστήµατα Μεταβίβασης Μηνύµατος Μοντέλο Κατάρρευσης (crash model) Οι διεργασίες µπορούν να σταµατούν να εκτελούνται σε

Αλγόριθμοι και πολυπλοκότητα Συγχωνευτική Ταξινόμηση

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

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

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

Αριθμητικές Μέθοδοι σε Προγραμματιστικό Περιβάλλον

ΑΛΓΟΡΙΘΜΙΚΕΣ ΜΕΘΟΔΟΙ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗΣ

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

Transcript:

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

4.1 Χρονοπρογραµµατισµός Διαστηµάτων

Χρονοπρογραµµατισµός Διαστηµάτων Το πρόβληµα. Η εργασία j ξεκινά τη χρονική στιγµή s j και τερµατίζει τη στιγµή f j. Δύο εργασίες είναι συµβατές εάν δεν υπάρχει επικάλυψη µεταξύ τους. Σκοπός: εύρεση µέγιστου υποσυνόλου από εργασίες που είναι συµβατές µεταξύ τους. a b c d e f g 0 1 2 3 4 5 6 7 8 9 10 11 h Χρόνος 3

Χρονοπρογραµµατισµός Διαστηµάτων: Άπληστοι Αλγόριθµοι Ένα περίγραµµα για άπληστες λύσεις. Εξετάζουµε τις εργασίες µε κάποια συγκεκριµένη διάταξη. Κάθε εργασία επιλέγεται αρκεί να είναι συµβατή µε τις εργασίες που έχουν ήδη επιλεγεί. Εξετάζουµε τέσσερις διαφορετικές λύσεις: 1. [Αύξοντα χρόνο εκκίνησης] Εξετάζουµε τις εργασίες σε αύξουσα σειρά του χρόνου εκκίνησης s j κάθε εργασίας j. 2. [Αύξοντα χρόνο τερµατισµού] Εξετάζουµε τις εργασίες σε αύξουσα σειρά του χρόνου τερµατισµού f j κάθε εργασίας j. 3. [Συντοµότερου διαστήµατος] Εξετάζουµε τις εργασίες µε αύξουσα σειρά διάρκειας f j - s j κάθε εργασίας j. 4. [Μικρότερου αριθµού συγκρούσεων] Για κάθε εργασία j, µετράµε το πλήθος c j των εργασιών µε τις οποίες έχει επικάλυψη. Εξετάζουµε τις εργασίες σε αύξουσα σειρά του πλήθους συγκρούσεων c j κάθε εργασίας j. 4

Χρονοπρογραµµατισµός Διαστηµάτων: Άπληστοι Αλγόριθµοι Ένα περίγραµµα για άπληστες λύσεις. Εξετάζουµε τις εργασίες µε κάποια συγκεκριµένη διάταξη. Κάθε εργασία επιλέγεται αρκεί να είναι συµβατή µε τις εργασίες που έχουν ήδη επιλεγεί. αντιπαράδειγµα για το 1) αύξων χρόνος εκκίνησης αντιπαράδειγµα για το 3) συντοµότερο διάστηµα αντιπαράδειγµα για το 4) µικρότερος αριθµός συγκρούσεων 5

Χρονοπρογραµµατισµός Διαστηµάτων: Άπληστοι Αλγόριθµοι Άπληστος αλγόριθµος. Από τα τέσσερα κριτήρια για άπληστη επιλογή σειράς επιλέγουµε το 2. Στον άπληστο αλγόριθµο που προκύπτει εξετάζουµε τις εργασίες µε αύξουσα σειρά χρόνου τερµατισµού. Κάθε εργασία επιλέγεται αρκεί να είναι συµβατή µε τις εργασίες που έχουν ήδη επιλεγεί. Ταξινόµησε τις εργασίες σε φθίνουσα σειρά χρόνου τερµατισµού, έτσι ώστε f 1 f 2... f n. εργασίες που έχουν ήδη επιλεγεί A φ for j = 1 to n { if (εργασία j συµβατή µε το σύνολο εργασίων A) A A {j} } return A Υλοποίηση. O(n log n). Καταγραφή της εργασίας j* που προστέθηκε τελευταία στο A. Η εργασία j είναι συµβατή µε το A εάν s j f j*. 6

Χρονοπρογραµµατισµός Διαστηµάτων: Ανάλυση Θεώρηµα. Ο άπληστος αλγόριθµος δίνει τη βέλτιστη λύση. Απόδειξη. (µε απαγωγή σε άτοπο) Ας υποθέσουµε ότι ο άπληστος αλγόριθµος δεν είναι βέλτιστος και ας δούµε τι θα προκύψει. Έστω i 1, i 2,... i k το σύνολο των εργασιών που επιλέγει ο άπληστος αλγόριθµος. Έστω j 1, j 2,... j m το σύνολο των εργασιών σε µια βέλτιστη λύση όπου i 1 = j 1, i 2 = j 2,..., i r = j r για τη µέγιστη δυνατή τιµή του r. η εργασία i r+1 fτερµατίζει πριν από την j r+1 Άπληστη: i 1 i 1 i r i r+1 Βέλτιστη: j 1 j 2 j r j r+1... γιατί να µην αντικαταστήσουµε την εργασία j r+1 µε την i r+1 ; 7

Χρονοπρογραµµατισµός Διαστηµάτων: Ανάλυση Θεώρηµα. Ο άπληστος αλγόριθµος δίνει τη βέλτιστη λύση. Απόδειξη. (µε απαγωγή σε άτοπο) Ας υποθέσουµε ότι ο άπληστος αλγόριθµος δεν είναι βέλτιστος και ας δούµε τι θα προκύψει. Έστω i 1, i 2,... i k το σύνολο των εργασιών που επιλέγει ο άπληστος αλγόριθµος. Έστω j 1, j 2,... j m το σύνολο των εργασιών σε µια βέλτιστη λύση όπου i 1 = j 1, i 2 = j 2,..., i r = j r για τη µέγιστη δυνατή τιµή του r. η εργασία i r+1 fτερµατίζει πριν από την j r+1 Άπληστη: i 1 i 1 i r i r+1 Βέλτιστη: j 1 j 2 j r i r+1... η λύση παραµένει εφικτή και βέλτιστη, όµως παραβιάζει την απαίτηση να είναι το r µέγιστο. 8

Επιπλέον Διαφάνειες

Coin Changing Greed is good. Greed is right. Greed works. Greed clarifies, cuts through, and captures the essence of the evolutionary spirit. - Gordon Gecko (Michael Douglas)

Κέρµατα Στόχος. Με βάση δεδοµένες χρηµατικές αξίες: 1, 2, 5, 10, 20, 50 λεπτών του Ευρώ και 1 και 2 Ευρώ να αναπτυχθεί µέθοδος ώστε να δίνονται ρέστα σε πελάτη µε το µικρότερο αριθµό κερµάτων Παράδειγµα: 2.89. Αλγόριθµος του ταµία (Cashier's algorithm). Σε κάθε βήµα, επιλέγουµε το κέρµα µε τη µεγαλύτερη αξία χωρίς να υπερβαίνουµε το ζητούµενο ποσό. 11

Ρέστα σε κέρµατα (Coin-Changing): Άπληστος Αλγόριθµος Αλγόριθµος του ταµία. Σε κάθε βήµα, επιλέγουµε το κέρµα µε τη µεγαλύτερη αξία χωρίς να υπερβαίνουµε το ζητούµενο ποσό. Ταξινοµούµε τις αξίες σε αύξουσα σειρά: c 1 < c 2 < < c n. σύνολο κερµάτων που έχουν επιλεγεί S φ while (x 0) { έστω k ο µέγιστος ακέραιος τέτοιος ώστε c k x if (k = 0) return «δεν βρέθηκε λύση" x x - c k S S {k} } return S Q. Είναι η λύση που δίνει ο αλγόριθµος βέλτιστη; Παίζουν ρόλο οι αξίες των κερµάτων που διαθέτουµε; 12

Παράδειγµα Χρονοπρογραµµατισµού Διαστηµάτων 13

Χρονοπρογραµµατισµός Διαστηµάτων C A E D F 0 1 2 3 4 5 6 7 8 9 10 11 G H Χρόνος 0 1 2 3 4 5 6 7 8 9 10 11 14

Χρονοπρογραµµατισµός Διαστηµάτων C A E D F 0 1 2 3 4 5 6 7 8 9 10 11 G H Χρόνος 0 1 2 3 4 5 6 7 8 9 10 11 15

Χρονοπρογραµµατισµός Διαστηµάτων C A E D F 0 1 2 3 4 5 6 7 8 9 10 11 G H Χρόνος C 0 1 2 3 4 5 6 7 8 9 10 11 16

Χρονοπρογραµµατισµός Διαστηµάτων C A E D F 0 1 2 3 4 5 6 7 8 9 10 11 G H Χρόνος A 0 1 2 3 4 5 6 7 8 9 10 11 17

Χρονοπρογραµµατισµός Διαστηµάτων C A E D F 0 1 2 3 4 5 6 7 8 9 10 11 G H Χρόνος E 0 1 2 3 4 5 6 7 8 9 10 11 18

Χρονοπρογραµµατισµός Διαστηµάτων C A E D F 0 1 2 3 4 5 6 7 8 9 10 11 G H Χρόνος D E 0 1 2 3 4 5 6 7 8 9 10 11 19

Χρονοπρογραµµατισµός Διαστηµάτων C A E D F 0 1 2 3 4 5 6 7 8 9 10 11 G H Χρόνος E F 0 1 2 3 4 5 6 7 8 9 10 11 20

Χρονοπρογραµµατισµός Διαστηµάτων C A E D F 0 1 2 3 4 5 6 7 8 9 10 11 G H Χρόνος E G 0 1 2 3 4 5 6 7 8 9 10 11 21

Χρονοπρογραµµατισµός Διαστηµάτων C A E D F 0 1 2 3 4 5 6 7 8 9 10 11 G H Χρόνος E H 0 1 2 3 4 5 6 7 8 9 10 11 22

πηγές/αναφορές Κεφάλαιο 4, Σχεδίαση Αλγορίθµων, J. Kleinberg and E. Tardos, Ελληνική έκδοση από τις Εκδ. Κλειδάριθµος Κεφάλαια 16, Εισαγωγή στους αλγόριθµους, T. Cormen, C. Leiserson, R. Rivest and C. Stein, Ελληνική έκδοση από τις Πανεπιστηµιακές Εκδ. Κρήτης 23