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

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

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

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

Εισαγωγή στους Αλγορίθμους Ενότητα 11η Άσκηση - Σταθμισμένος Χρονοπρογραμματισμός Διαστημάτων

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Outline. 6 Edit Distance

Ανάλυση Χρόνου, Πόρων & Κόστους

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

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

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

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

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

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

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

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

5. Απλή Ταξινόμηση. ομές εδομένων. Χρήστος ουλκερίδης. Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων

Θεωρία Αποφάσεων και Βελτιστοποίηση

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

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

Θεωρία Αλγόριθμοι Γραμμικής Βελτιστοποίησης 28/3/2012. Lecture07 1

Διαχείριση Έργων Πληροφορικής

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

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

Ακέραιος Γραμμικός Προγραμματισμός

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

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

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

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

Κατανεμημένα Συστήματα Ι

Γραμμικός Προγραμματισμός Μέθοδος Simplex

10/12/2012 ΔΙΟΙΚΗΣΗ ΕΡΓΩΝ ΠΕΡΙΕΧΟΜΕΝΑ

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

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

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

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

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

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

ΕΙΣΑΓΩΓΗ ΣΤΗ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ ΣΥΣΤΗΜΑΤΩΝ

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

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

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

Ο μαθητής που έχει μελετήσει το κεφάλαιο της θεωρίας αριθμών θα πρέπει να είναι σε θέση:

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

Ταξινόμηση. 1. Στατιστικά Διάταξης 2. Στατιστικά σε Μέσο Γραμμικό Χρόνο. Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη

Περιεχόμενα 3ης Διάλεξης 1 Σύνοψη Προηγούμενου Μαθήματος 2 Δεσμευμένη Πιθανότητα 3 Bayes Theorem 4 Στοχαστική Ανεξαρτησία 5 Αμοιβαία (ή πλήρης) Ανεξαρ

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

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

ΜΕΜ251 Αριθμητική Ανάλυση

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

Περιεχόμενα 3ης Διάλεξης 1 Σύνοψη Προηγούμενου Μαθήματος 2 Δεσμευμένη Πιθανότητα 3 Bayes Theorem 4 Στοχαστική Ανεξαρτησία 5 Αμοιβαία (ή πλήρης) Ανεξαρ

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

f(t) = (1 t)a + tb. f(n) =

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

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

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

Μέθοδοι μονοδιάστατης ελαχιστοποίησης

Διαχείριση Εφοδιαστικής Αλυσίδας ΙΙ

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

ΕΦΑΡΜΟΓΕΣ ΔΙΟΙΚΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ

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

Ακέραιος Γραμμικός Προγραμματισμός

Θεωρία Υπολογισμού και Πολυπλοκότητα

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

Μάθημα Επιλογής 8 ου εξαμήνου

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

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

Εισαγωγή στην Πληροφορική Προγραμματισμός-Λειτουργικά

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

Στοιχεία Θεωρίας Αριθμών & Εφαρμογές στην Κρυπτογραφία

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

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Ε ανάληψη. Α ληροφόρητη αναζήτηση

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

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

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

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 2: Μαθηματικό Υπόβαθρο

Διάλεξη 17: Συμφωνία με Βυζαντινά Σφάλματα. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

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

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

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

Μορφές αποδείξεων Υπάρχουν πολλά είδη αποδείξεων. Εδώ θα δούμε τα πιο κοινά: Εξαντλητική μέθοδος ή μέθοδος επισκόπησης. Οταν το πρόβλημα έχει πεπερασμ

Ψηφιακή Επεξεργασία και Ανάλυση Εικόνας Ενότητα 8 η : Κατάτμηση Εικόνας

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

EukleÐdeiec emfuteôseic: ˆnw frˆgmata

ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ Φεβρουάριος 2005 Σύνολο μονάδων: 91

i=1 i=1 i=1 (x i 1, x i +1) (x 1 1, x k +1),

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

Transcript:

Εισαγωγή στους Αλγορίθμους Ενότητα 8η Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr

Άπληστοι Αλγόριθμοι Χρονοπρογραμματισμός Διαστημάτων Χρονοπρογραμματ σμός γαελαχ στοποίηση Χρονοπρογραμματισμός για Ελαχιστοποίηση Καθυστέρησης

Απληστία Greed is good. Greed is right. Greed works. Greed clarifies, cuts through, h and captures the essence of the evolutionary spirit. - Gordon Gecko (Michael Douglas) Απληστία. Δόμηση μιας λύσης σταδιακά, βελτιστοποιώντας μυωπικά κάποιο τοπικό κριτήριο ρ σε κάθε βήμα

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

Χρονοπρογραμματισμός Διαστημάτων Χρονοπρογραμματισμός διαστημάτων. Η εργασία 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 Χρόνος 5

Χρονοπρογραμματισμός Διαστημάτων Άπληστοι Αλγόριθμοι Άπληστο πρότυπο. Θεωρήστε τις εργασίες σε κάποια σειρά. Επιλέξτε κάθε εργασία εφόσον είναι συμβατή με αυτές που έχουν ήδη επιλεγεί. [Μικρότερος χρόνος έναρξης] Θεωρήστε τις εργασίες σε αύξουσα σειρά ως προς το χρόνο έναρξης s j. [Μικρότερος χρόνος λήξης] Θεωρήστε τις εργασίες σε αύξουσα σειρά ως προς το χρόνο λήξης f j. [Μικρότερο χρονικό διάστημα] Θεωρήστε τις εργασίες σε αύξουσα σειρά ως προς το χρονικό διάστημα f j -s j. [Ελάχιστες διενέξεις] Για κάθε εργασία, μετρήστε τον αριθμό των μη συμβατών εργασιών c j. Χρονοπρογραμματίστε κατά αύξουσα σειρά διενέξεων c j. 6

Χρονοπρογραμματισμός Διαστημάτων Άπληστοι Αλγόριθμοι Άπληστο πρότυπο. Θεωρήστε τις εργασίες σε κάποια σειρά. Επιλέξτε κάθε εργασία εφόσον είναι συμβατή με αυτές που έχουν ήδη επιλεγεί Δεν αποδίδει ο μικρότερος χρόνος έναρξης s j 7

Χρονοπρογραμματισμός Διαστημάτων Άπληστοι Αλγόριθμοι Άπληστο πρότυπο. Θεωρήστε τις εργασίες σε κάποια σειρά. Επιλέξτε κάθε εργασία εφόσον είναι συμβατή με αυτές που έχουν ήδη επιλεγεί Δεν αποδίδει ο μικρότερος χρόνος έναρξης s j Δεν αποδίδει το μικρότερο χρονικό διάστημα f j -s j 8

Χρονοπρογραμματισμός Διαστημάτων Άπληστοι Αλγόριθμοι Άπληστο πρότυπο. Θεωρήστε τις εργασίες σε κάποια σειρά. Επιλέξτε κάθε εργασία εφόσον είναι συμβατή με αυτές που έχουν ήδη επιλεγεί Δεν αποδίδει ο μικρότερος χρόνος έναρξης s j Δεν αποδίδει το μικρότερο χρονικό διάστημα f j -s j Δεν αποδίδουν οι ελάχιστες διενέξεις 9

Χρονοπρογραμματισμός Διαστημάτων Άπληστος Αλγόριθμος Άπληστος αλγόριθμος. Θεωρήστε τις εργασίες σε αύξουσα σειρά χρόνων λήξης. Επιλέξτε κάθε εργασία εφόσον είναι συμβατή με αυτές που έχουν ήδη επιλεγεί. Ταξινόμησε τις εργασίες κατά χρόνο λήξης έτσι ώστε 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* 10

Χρονοπρογραμματισμός Διαστημάτων Ανάλυση Άπληστου Αλγόριθμου Θεώρημα. Ο άπληστος αλγόριθμος είναι βέλτιστος. Απόδειξη. (εις άτοπον απαγωγή) Έστω ότι ο άπληστος αλγόριθμος δεν είναι βέλτιστος Έστω 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 τελειώνει πριν την j r+1 Άπληστος: i 1 i 2 i r i r+1 j 1 j 2 j r... Βέλτιστος: j r+1 Γιατί να μην αντικαταστήσουμε την εργασία j r+1 με την i r+1? 11

Χρονοπρογραμματισμός Διαστημάτων Ανάλυση Άπληστου Αλγόριθμου Θεώρημα. Ο άπληστος αλγόριθμος είναι βέλτιστος. Απόδειξη. (εις άτοπον απαγωγή) Έστω ότι ο άπληστος αλγόριθμος δεν είναι βέλτιστος Έστω 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 τελειώνει πριν την j r+1 Άπληστος: i 1 i 2 i r i r+1 Βέλτιστος: j 1 j 2 j r... i r+1 Η λύση είναι ακόμα εφικτή και βέλτιστη, αλλά αντικρούει το μέγιστο του r. 12

Χρονοπρογραμματισμός όλων των Διαστημάτων Χρονοπρογραμματισμός όλων των Διαστημάτων Διαμέριση Χρονικών Διαστημάτων

Διαμέριση Χρονικών Διαστημάτων Διαμέριση Χρονικών Διαστημάτων. Η διάλεξη j ξεκινά τη χρονική στιγμή s j και τελειώνει τη χρονική στιγμή f j Σό Στόχος: εύρεση ελάχιστου αριθμού αιθουσών για χρονοπρογραμματισμό όλων των διαλέξεων έτσι ώστε να μην υπάρχουν δύο διαλέξεις προγραμματισμένες ταυτόχρονα στην ίδια αίθουσα (συμβατές ς διαλέξεις). Π.χ.: Χρονοδιάγραμμα χρήσης 4 αιθουσών για τον προγραμματισμό 10 διαλέξεων e j c d g b h a f i 9 9:30 10 10:30 11 11:30 12 12:30 1 1:30 2 2:30 3 3:30 4 4:30 Χρόνος 14

Διαμέριση Χρονικών Διαστημάτων Διαμέριση Χρονικών Διαστημάτων. Η διάλεξη j ξεκινά τη χρονική στιγμή s j και τελειώνει τη χρονική στιγμή f j Σό Στόχος: εύρεση ελάχιστου αριθμού αιθουσών για χρονοπρογραμματισμό όλων των διαλέξεων έτσι ώστε να μην υπάρχουν δύο διαλέξεις προγραμματισμένες ταυτόχρονα στην ίδια αίθουσα (συμβατές ς διαλέξεις). Π.χ.: Αυτό το χρονοδιάγραμμα χρησιμοποιεί μόνο 3 αίθουσες. c d f j b g i a e h 9 9:30 10 10:30 11 11:30 12 12:30 1 1:30 2 2:30 3 3:30 4 4:30 Χρόνος 15

Διαμέριση Χρονικών Διαστημάτων Κάτω όριο στη Βέλτιστη Λύση Ορισμός. Το βάθος ενός συνόλου διαστημάτων είναι ο μέγιστος αριθμός διαστημάτων που περιέχουν ένα οποιοδήποτε (κοινό) χρονικό σημείο. Παρατήρηση 1. Ο αριθμός των αιθουσών που χρειάζονται βάθος. Π.χ.: Βάθος του παρακάτω χρονοδιαγράμματος = 3 το παρακάτω χρονοδιάγραμμα είναι βέλτιστο. Τα a, b, c περιέχουν όλα το χρονικό σημείο 9:30 Ερώτηση. Υπάρχει πάντα ένα χρονοδιάγραμμα ίσο με το βάθος των διαστημάτων; c d f j b g i a e h 9 9:30 10 10:30 11 11:30 12 12:30 1 1:30 2 2:30 3 3:30 4 4:30 Χρόνος 16

Διαμέριση Χρονικών Διαστημάτων Άπληστος Αλγόριθμος Άπληστος Αλγόριθμος. Θεωρήστε τις διαλέξεις σε αύξουσα σειρά χρόνου έναρξης: αναθέστε κάθε διάλεξη σε οποιαδήποτε συμβατή αίθουσα Ταξινόμησε τα διαστήματα κατά χρόνο έναρξης έτσι ώστε s 1 s 2... s n. d 0 Αριθμός δεσμευμένων αιθουσών for j = 1 to n { if (διάλεξη j είναι συμβατή με μια αίθουσα k) προγραμμάτισε την j στην αίθουσα k else δέσμευσε μια νέα αίθουσα d + 1 προγραμμάτισε την j στην αίθουσα d + 1 d d + 1 } Υλοποίηση. O(n log n) Για κάθε αίθουσα k, διατηρήστε το χρόνο λήξης της τελευταίας διάλεξης Διατηρήστε τις αίθουσες σε μια ουρά προτεραιότητας 17

Διαμέριση Χρονικών Διαστημάτων Ανάλυση Άπληστου Αλγόριθμου Παρατήρηση 2. Ο άπληστος αλγόριθμος δεν προγραμματίζει ποτέ δύο ασύμβατες διαλέξεις στην ίδια αίθουσα Θεώρημα. Ο άπληστος αλγόριθμος είναι βέλτιστος. Απόδειξη. Έστω d = αριθμός αιθουσών που δεσμεύει ο άπληστος αλγόριθμος. Η αίθουσα d δεσμεύεται γιατί χρειάζεται να προγραμματίσουμε μια διάλεξη, έστω j, που είναι ασύμβατη με όλες τις υπόλοιπες d-1 αίθουσες. Αφού ταξινομήσαμε κατά χρόνο έναρξης, όλες αυτές οι ασυμβατότητες προκαλούνται από διαλέξεις που ξεκινούν όχι αργότερα από τη στιγμή s j. Άρα, υπάρχουν d επικαλυπτόμενες διαλέξεις τη χρονική στιγμή s j + ε. Παρατήρηση 1 όλα τα προγράμματα χρησιμοποιούν d αίθουσες. 18

Χρονοπρογραμματισμός για Ελαχιστοποίηση Χρονοπρογραμματισμός για Ελαχιστοποίηση Καθυστέρησης

Χρονοπρογραμματισμός για Ελαχιστοποίηση Καθυστέρησης Πρόβλημα ελαχιστοποίησης καθυστέρησης. Ένας υπολογιστικός πόρος επεξεργάζεται μια εργασία την φορά Η εργασία j απαιτεί t j μονάδες χρόνου επεξεργασίας και έχει προθεσμία d j Αν η j ξεκινά την στιγμή s j, τελειώνει την στιγμή f j = s j + t j Καθυστέρηση: j = max { 0, f j -d j } Στόχος: χρονοπρογραμματισμός όλων των εργασιών για ελαχιστοποίηση της μέγιστης καθυστέρησης L = max j Π.χ.: 1 t j 3 2 2 3 1 4 4 5 3 6 2 d j 6 8 9 9 14 15 Καθυστέρηση = 2 Καθυστέρηση = 0 Μέγιστη καθυστέρηση = 6 d 3 = 9 d 2 = 8 d 6 = 15 d 1 = 6 d 5 = 14 d 4 = 9 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 20

Ελαχιστοποίηση Καθυστέρησης Άπληστοι Αλγόριθμοι Άπληστο πρότυπο. Θεωρήστε τις εργασίες σε κάποια σειρά. [Πρώτα ώ ο μικρότερος χρόνος επεξεργασίας] ] Θεωρήστε τις εργασίες σε αύξουσα σειρά χρόνου επεξεργασίας t j [Πρώτα η μικρότερη προθεσμία] Θεωρήστε τις εργασίες σε αύξουσα σειρά προθεσμίας d j [Ελάχιστο χρονικό περιθώριο] Θεωρήστε τις εργασίες σε αύξουσα σειρά χρονικού περιθωρίου d j -t j 21

Ελαχιστοποίηση Καθυστέρησης Άπληστοι Αλγόριθμοι Άπληστο πρότυπο. Θεωρήστε τις εργασίες σε κάποια σειρά. [Πρώτα ώ ο μικρότερος χρόνος επεξεργασίας] ] Θεωρήστε τις εργασίες σε αύξουσα σειρά χρόνου επεξεργασίας t j 1 2 t j 1 10 Αντιπαράδειγμα, L=1 (Βέλτιστο L = 0) d j 100 10 [Ελάχιστο χρονικό περιθώριο] Θεωρήστε τις εργασίες σε αύξουσα σειρά χρονικού περιθωρίου d j -t j 1 1 2 10 Αντιπαράδειγμα, L = 9 (Βέλτιστο L = 1) t j d j 2 10 d j 22

Ελαχιστοποίηση Καθυστέρησης Άπληστοι αλγόριθμοι Άπληστος αλγόριθμος. Πρώτα η μικρότερη προθεσμία Ταξινόμησε n εργασίες κατά προθεσμία έτσι ώστε d 1 d 2 d n t 0 for j = 1 to n Ανέθεσε την εργασία j στο διάστημα [t, t + t j ] s j t, f j t + t j t t + t j εκτύπωσε διαστήματα[s j, f j ] 1 2 3 4 5 6 t j 3 2 1 4 3 2 d j 6 8 9 9 14 15 Μέγιστη καθυστέρηση = 1 d 1 = 6 d 2 = 8 d 3 = 9 d 4 = 9 d 5 = 14 d 6 = 15 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 23

Ελαχιστοποίηση Καθυστέρησης - Χωρίς χρόνο αδράνειας Παρατήρηση. Υπάρχει μια βέλτιστη λύση χωρίς χρόνο αδράνειας d = 4 d = 6 0 1 2 3 4 5 6 d = 12 7 8 9 10 11 d = 4 d = 6 d = 12 0 1 2 3 4 5 6 7 8 9 10 11 Παρατήρηση. Ο άπληστος αλγόριθμος δεν έχει χρόνο αδράνειας 24

Ελαχιστοποίηση Καθυστέρησης Αντιστροφές Ορισμός. Μια αντιστροφή σε ένα χρονοδιάγραμμα S είναι ένα ζευγάρι εργασιών i και j τέτοιο ώστε d i < d j αλλά η j χρονοπρογραμματίζεται πριν την i αντιστροφή f i Πριν την αντιμετάθεση j i Παρατήρηση. Ο άπληστος αλγόριθμος δεν έχει αντιστροφές Παρατήρηση. Αν ένα χρονοδιάγραμμα (χωρίς χρόνο αδράνειας) έχει μια αντιστροφή, τότε έχει μια αντιστροφή με ένα ζευγάρι αντεστραμμένων εργασιών διαδοχικά χρονοπρογραμματισμένων 25

Ελαχιστοποίηση Καθυστέρησης Αντιστροφές Ορισμός. Μια αντιστροφή σε ένα χρονοδιάγραμμα S είναι ένα ζευγάρι εργασιών i και j τέτοιο ώστε d i < d j αλλά η j χρονοπρογραμματίζεται πριν την i αντιστροφή f i Πριν την αντιμετάθεση j i Μετά την αντιμετάθεση i j Ισχυρισμός. Η αντιμετάθεση δύο γειτονικών, αντεστραμμένων εργασιών μειώνει τον αριθμό των αντιστροφών κατά 1 και δεν αυξάνει την μέγιστη καθυστέρηση f' j Αποδ. Έστω η καθυστέρηση πριν την αντιμετάθεση, και έστω ' μετά. ' k = k για κάθε k i, j ' i i Πόσο καθυστερεί η εργασία j: f d j j j f i j (ορισμός) f d ( i j ) i i d i (η j τελειώνει τη στιγμή f ) (ορισμός) i 26

Ελαχιστοποίηση Καθυστέρησης Ανάλυση Άπληστου Αλγόριθμου Θεώρημα. Το χρονοδιάγραμμα S του άπληστου αλγόριθμου είναι βέλτιστο Απόδειξη. Έστω S* ένα βέλτιστο χρονοδιάγραμμα που έχει τον ελάχιστο αριθμό αντιστροφών. Υποθέτουμε ότι το S* δεν έχει χρόνο αδράνειας. Αν το S* δεν έχει αντιστροφές, τότε S = S*. Αν το S* έχει μια αντιστροφή, τότε έστω i-j μια γειτονική αντιστροφή. Αντιμεταθέτοντας την i και j δεν αυξάνει την μέγιστη καθυστέρηση και μειώνει αυστηρά τον αριθμό των αντιστροφών Αυτό έρχεται σε αντίφαση με τον ορισμό του S* 27

Στρατηγικές Ανάλυσης Άπληστων Αλγορίθμων Ο άπληστος αλγόριθμος υπερτερεί. Δείξτε ότι μετά από κάθε βήμα του άπληστου αλγόριθμου, η λύση του είναι τουλάχιστον τόσο καλή όσο οποιουδήποτε άλλου αλγόριθμου. Επιχείρημα ανταλλαγής. Μετατρέψτε ρψ σταδιακά οποιαδήποτε λύση σε αυτή που ανακαλύπτεται από τον άπληστο αλγόριθμο χωρίς να επηρεάζεται η ποιότητά της. Δομική. Ανακαλύψτε ένα απλό "δομικό" όριο που να επιβεβαιώνει ότι κάθε πιθανή λύση πρέπει να έχει μια συγκεκριμένη τιμή. Στη συνέχεια, δείξτε ότι ο αλγόριθμος σας επιτυγχάνει πάντα αυτό το όριο. 28