Αλγόριθµοι Άµεσης Απόκρισης Εγχειρίδιο Φροντιστηρικών Ασκήσεων Ιωάννης Κργιάννης Ιούνιος 008
Το πρόν εγχειρίδιο περιέχει σκήσεις κι νοιχτά προβλήµτ σχετικά µε το ντικείµενο του µθήµτος Αλγόριθµοι Άµεσης Απόκρισης. Στο επόµενο κεφάλιο, προυσιάζουµε σκήσεις µε ενδεικτικές λύσεις. Στη συνέχει, πρθέτουµε σκήσεις γι λύση πό το ϕοιτητή. Κλείνουµε διτυπώνοντς νοικτά ερευνητικά Ϲητήµτ σχετικά µε τ προβλήµτ της σελιδοποίησης κι της εξισορρόπησης ϕορτίου. Ασκήσεις κι ενδεικτικές λύσεις Ασκηση 1. Η ετιρί στην οποί εργάζετι ο κύριος Οικονοµόπουλος τον στέλνει στ γρφεί της σε µι άλλη πόλη γι ν δουλέψει γι άγνωστο χρονικό διάστηµ. Ολ τ έξοδ είνι πληρωµέν εκτός πό τ έξοδ του τρµ πό το ξενοδοχείο του στ γρφεί της ετιρίς. Εχει τη δυντότητ είτε ν πληρώνει κθηµερινά το εισητήριο (µε επιστροφή) που κοστίζει 1 ευρώ είτε ν γοράσει µι κάρτ έκπτωσης κόστους που ισχύει γι περιόριστο διάστηµ κι του πρέχει έκπτωση σε κάθε εισητήριο κτά έν ποσοστό. ώστε τον ντετερµινιστικό λγόριθµο άµεσης πόκρισης µε τον κλύτερο λόγο πόδοσης γι ν ελχιστοποιήσει τ µετφορικά του έξοδ στη διάρκει της διµονής του. Υποθέστε ότι το είνι κέριος. Ενδεικτική λύση. Αρχικά νφέρουµε πως το κόστος ενός λγορίθµου, ν υτός κτλήξει ν γοράζει εκπτωτική κρτ, ϑ ήτν µικρότερο ν την γόρζε στο πρώτο ϐήµ, π ότι σε οποιδήποτε άλλη χρονική στιγµή. Άρ ο ϐέλτιστος λγόριθµος γι το πρόβληµ που µελετουµε ϑ έχει τη συµπερι- ϕορά που ϕίνετι στο σχήµ : y = x y = (1 )x + 1
Το ελάχιστο δηλδή µετξύ των : y = x που ϑ ήτν το κόστος ν δεν γόρζε ποτέ εκπτωτική κάρτ κι, y = (1 )x + που ϑ ήτν το κόστος ν γόρζε κάρτ πό το πρώτο ϐήµ. [ + (1 )x x x N+ ] Εστω C ALG, το κόστος του λγορίθµου ALG, κι r = C ALG C OPT, ο λόγος πόδοσης. 1η περίπτωση Εστω ένς ντετερµινιστικός λγόριθος ALG, ο οποίος γοράζει εκπτωτική κάρτ πριν, ή το πολύ στο ϐήµ N+. Με άλλ λόγι, έστω ALG ένς λγόριθµος που γοράζει κάρτ στο ϐήµ c, 0 c. Μς ενδιφέρει ο χειρότερος λόγος πόδοσης, ο οποίος προυσιάζετι στο ϐήµ c. r 1 (c) = + c c = + c c = 1 + ( ) c, το οποίο ελχιστοποιείτι γι c = 0, που σηµίνει ότι η κλύτερη επιλογή του ALG είνι ν γοράσει κάρτ στο ϐήµ. Οπότε, r 1(0) = 1 + ( ) = 1 +. Η νάλυση της 1ης περίπτωσης εξηγείτι κι πό το πρκάτω σχήµ : A C ALG }{{} c
όπου A = ( c 1) + + (1 ). η περίπτωση Εστω ALG ένς λγόριθµος που γοράζει κάρτ στο ϐήµ + c, c 0. Ο χειρότερος λόγος πόδοσης προυσιάζετι προφνώς στο ϐήµ + c. r (c) = ( + + c + + c = + c)(1 ) + + c + c = 1 + + (c 1) + c( ), η οποί είνι γνησίως ύξουσ συνάρτηση (ως προς c). ηλδή r (c ) r (0) = 1 + = r 1(0). Σύµφων µε την νάλυση που έγινε, κτλήγουµε ότι ο (χειρότερος) λόγος πόδοσης ενός ντετερµινιστικού λγορίθµου ελχιστοποιείτι ν υτός γοράσει εκτωτική κάρτ στο ϐήµ, κι είνι ίσος µε 1 +. Η νάλυση της ης περίπτωσης εξηγείτι κι πό το πρκάτω σχήµ : A C ALG }{{} c όπου A = ( + c 1) + + (1 ). Αξίζει ν νφέρουµε ότι κλώς ϑεωρήσµε πως ο χειρότερος λόγος πόδοσης προυσιάζετι στο ϐήµ + c (ή c). Πριν πό υτό το ϐήµ η διφορά στο κόστος του ALG πό το ϐέλτιστο κόστος είνι µηδενική, είτε µελητέ σε σχέση µε το εν λόγω ϐήµ. Μετά πό υτό το ϐήµ, ενώ τ κόστη υξάνοντι, η διφορά µετξύ τους πρµένει στθερή (είτε µειώνετι), γεγονός που λειτουργεί υπέρ του ALG. Ασκηση. Εφρµόστε την Αρχή του Yao γι ν υπολογίσετε κάτω ϕράγ- µ γι πιθνοτικούς λγορίθµους πένντι σε µνήµονες ντιπάλους γι 3
το πρόβληµ Αγορά ή ενοικίση ;. Το ποτέλεσµ που ϑ υπολογίσετε ϑ πρέπει ν είνι µι στθερά µεγλύτερη του 1. Ενδεικτική λύση. Σύµφων µε την ρχή του Yao, γι ν υπολογίσουµε κάτω ϕράγµ γι πιθνοτικούς λγορίθµους πένντι σε µνήµονες ντιπάλους γι έν πρόβληµ Π, ρκεί ν δηµιουργήσουµε µί κτνοµή πιθνότητς κι ν ποδείξουµε έν κάτω ϕράγµ γι την ντγωνιστικότητ όλων των ντετερµινιστικών λγορίθµων άµεσης πόκρισης ως προς υτή την πιθνοτική κτνοµή. Εστω η πιθνοτική κτνοµή P,σύµφων µε την οποί : µε πιθνότητ 1, υπάρχουν ιτήσεις κι µε πιθνότητ 1 υπάρχουν ιτήσεις. (Οι ιτήσεις ισοδυνµούν µε προσκλήσεις, γι το πρόβληµ Αγορά ή ενοικίση ; ), Η συµπεριφορά (το κόστος) του ϐέλτιστου λγορίθµου ϕίνετι στο σχήµ : Προκύπτει πως γι την κτνοµή P E[ ] = 1 + 1 = 3 4. Κάθε ντετερµινιστικός λγόριθµος γι το πρόβληµ Αγορά ή ενοικίση ; διτυπώνετι ως εξής: Νοίκιζε µέχρι κι το ϐήµ t 1 κι γόρσε στο ϐήµ t, όπου t 0. ικρίνουµε τις κόλουθες περιπτώσεις: 1η περίπτωση t = c, γι 0 c 1. E[C ALG1 ] = 1 (3 c 1) + 1 (3 c 1) = 3 c 1, 4
το οποίο ελχιστοποιείτι γι c = 1, δηλδή γι γορά στο 1, οπότε κι ισχύει E[C ALG1 ] =. ηλδή, r 1 = E[C ALG 1 ] E[ ] = 3 4 = 4 3. Η σχετική γρφική πράστση ϕίνετι κολούθως: A C ALG c όπου A = ( c 1) +. η περίπτωση t = + c, γι 0 < c 3. ηλδή t (, ]. Σε υτή την περίπτωση, γι την κτνοµή P ισχύει πως E[C ALG ] = 1 + 1 ( + c 1 + ) = 4 + 3 4 + c 1 = + c 1. το οποίο ελχιστοποιείτι γι c = 1, οπότε, ισχύει E[C ALG ] = + 1 1 =, κι r = E[C ALG ] E[ ] = = 4 3 3. 4 5
A C ALG }{{} c όπου A = ( + c 1) +. 3η περίπτωση t >. E[C ALG3 ] = 1 + 1 = 5 4. r 3 = E[C 5 ALG 3 ] E[ ] = 4 = 5 3. 3 4 C ALG 6
Ο λγόριθµος που δεν γοράζει ποτέ κάρτ έχει τον ίδιο λόγο πόδοσης µε την περίπτωση 3, γι υτή την κτνοµή P, γι το πρόβληµ Αγορά ή ενοικίση ;. Κτλήγουµε ότι κάτω ϕράγµ του λόγου πόδοσης όλων των ντετερµινιστικών λγορίθµων γι τη δοθείσ P είνι ίσο µε 4 3. Από την ρχή του Yao συµπερίνουµε πως το 4 είνι κάτω ϕράγµ λόγου πόδοσης γι πι- 3 ϑνοτικούς λγορίθµους ενάντι σε µνήµονες ντιπάλους, γι το πρόβληµ Αγορά ή ενοικίση ;. Ασκηση 3. είξτε ότι ο λγόριθµος σελιδοποίησης FIFO είνι λγόριθµος µρκρίσµτος ότν εφρµόζετι σε γρήγορη µνήµη µεγέθους. Ενδεικτική λύση. Σε περίπτωση σφάλµτος σελίδς, ο λγόριθµος FI- FO ντικθιστά τη σελίδ που µπήκε πρώτη στην κρυφή µνήµη, γι ν εξυπηρετήσει τη σελίδ που ιτήθηκε. Γι ν ποδείξουµε ότι είνι λγόρι- ϑµος µρκρίσµτος, ρκεί ν ποδείξουµε ότι δεν ντικθιστά ποτέ µι µρκρισµένη σελίδ. Θεωρούµε µι κολουθί εισόδου κι τη διµέριση της σε k ϕάσεις. Στη συγκεκριµένη περίπτωση -ϕάσεις, επειδή µελετούµε την εφρµογή του FI- FO σε γρήγορη µνήµη µεγέθους. Εξ ορισµού, στην ρχή κάθε -ϕάσης ξεµρκάροντι όλες οι σελίδες στη γρήγορη µνήµη. Οπότε, η πρώτη ίτηση σελίδς, κάθε -ϕάσης, (η οποί προκλεί σίγουρ σφάλµ σελίδς), ποκλείετι ν διώξει πό τη γρήγορη µνήµη µί µρκρισµένη σελίδ γι ν εξυπηρετηθεί. Εξ ορισµού, κάθε -ϕάση περιέχει κριβώς δικριτές νφορές σε σελίδες, έστω κι β. Η πρώτη ϕορά που ϑ Ϲητηθεί η, όπως είδµε, προκλεί σίγουρ έν σφάλµ σελίδς. Η πρώτη ϕορά που ϑ Ϲητηθεί η β ενδέχετι ν προκλέσει σφάλµ σελίδς, ενώ επόµενες νφορές (ιτήσεις) στην ή στην β δεν προκλούν σφάλµ σελίδς. Ολ υτά ισχύουν ϕυσικά γι τη διάρκει µις -ϕάσης. Αρκεί δηλδή, ν µελετήσουµε την περίπτωση που η η δικριτή νφορά σε σελίδ γίνετι γι πρώτη ϕορά σε µί ϕάση κι προκλεί σφάλµ σελίδς. Η πρώτη σελίδ που ιτήθηκε σε υτή τη -ϕάση, µέσως µόλις µπήκε στη γρήγορη µνήµη, µρκάρετι κι είνι πλέον η τελευτί σελίδ που µπήκε κι η µόνη µρκρισµένη, προφνώς. Οποιδήποτε άλλη ίτηση σε υτή τη σελίδ σε υτή τη -ϕάση δεν επηρεάζει το συλλογισµό µς, φού δεν προκλείτι σφάλµ σελίδς. Η σελίδ µένει µρκρισµένη κι εξκολουθεί ν είνι η last in. Άρ ο FIFO, στο επόµενο σφάλµ σελίδς σε υτή τη ϕάση, ϑ ντικτστήσει την άλλη σελίδ που ϐρίσκετι στη γρήγορη µνήµη, η οποί είνι µρκάριστη. Με άλλ λόγι, γι ν ντικτστθεί η 7
πρώτη (µρκρισµένη) σελίδ σε υτή τη ϕάση, ϑ πρέπει ν υπάρξουν άλλες δικριτές νφορές σε σελίδ. ηλδή, συνολικά 3 δικριτές νφορές σε σελίδ κτ τη διάρκει µις -ϕάσης. Άτοπο. Αποδείξµε ότι ο λγόριθµος FIFO ποτέ δεν διώχνει µί µρκρισµένη σελίδ πό τη γρήγορη µνήµη, ότν υτή έχει µέγεθος. Σε υτή την περίπτωση δηλδή, είνι λγόριθµος µρκρίσµτος. Ασκηση 4. Αποδείξτε ότι ο άπληστος λγόριθµος εξισορρόπησης ϕορτίου έχει λόγο πόδοσης τουλάχιστον Ω(N) σε N πράλληλες µη συσχετιζόµενες µηχνές. Ενδεικτική λύση. Εστω N µηχνές κι µί κολουθί εισόδου σ, πό N εργσίες που εµφνίζοντι µί-µί, γι την οποί ισχύει : 1 + ɛ στην i οστή µηχνή, Η i οστή εργσί έχει ϕορτίο i στην (i + 1) οστή µηχνή, κι σε κάθε άλλη µηχνή. 1 i N, ɛ πολύ µικρή στθερά, κι ορίζουµε (N + 1)-οστή µηχνή, την πρώτη µηχνή. Τ ϕορτί των εργσιών, ϕίνοντι πιο νλυτικά στον πίνκ. (Οι κενές ϑέσεις υποδηλώνουν ότι η εν λόγω εργσί έχει άπειρο ϕορτίο στην εν λόγω µηχνή.) N 1 + ɛ j n N 1 j n 1. 1 + ɛ 3 1 + ɛ j 1 + ɛ 1 j 1 m 1 m m 3 m 4 m n Πρτηρούµε ότι ο ϐέλτιστος λγόριθµος νθέτει την πρώτη εργσί στη µηχνή 1 κι γι i n, την i οστή εργσί στη µηχνή i, όπου έχει δηλδή ϕορτίο 1+ɛ. Εύκολ ϕίνετι πως ο ϐέλτιστος λγόριθµος πετυχίνει µέγιστο ϕορτίο ίσο µε 1 + ɛ. Ο άπληστος λγόριθµος όµως, προκλεί µέγιστο ϕορτίο N. Ανθέτει την πρώτη εργσί στη µηχνή κι συνεχίσει νθέτοντς την i οστή εργσί, ( i n), στη µηχνή (i + 1), στην οποί έχει ϕορτίο i, φού σε κάθε ϐήµ i, έχει ν επιλέξει νάµεσ σε νµενόµενο ϕορτίο i, i + ɛ κι.. 8
Συνολικά, ποδεικνύετι κάτω ϕράγµ λόγου πόδοσης της τάξης του Ω(N), φού Αλλες σκήσεις GREEDY(σ) OPT(σ) = N 1 + ɛ Ασκηση 5. Αγνοώντς όρους τάξης o(1), δείξτε ότι ο λγόριθµος γι τη γενίκευση του προβλήµτος Αγορά ή ενοικίση ; γι δύο ενοικιστές, που γοράζει το πρώτο σετ εξοπλισµού στο ϐήµ τ = /φ κι το δεύτερο σετ στο ϐήµ, είνι ο ντετερµινιστικός λγόριθµος µε τον κλύτερο λόγο πόδοσης. Το φ είνι ο χρυσός λόγος (= 1+ 5 ). Ασκηση 6. Πως ϑ υλοποιούστε ένν πιθνοτικό λγόριθµο, ο οποίος ισοπίθν επιλέγει νάµεσ σε δύο γεγονότ, ν είχτε στη διάθεσή σς έν κάλπικο νόµισµ γι το οποίο δεν γνωρίζετε την πιθνότητ µε την οποί εµφνίζει κορών ή γράµµτ ; Ασκηση 7. είξτε ότι οποιοσδήποτε λγόριθµος ντικτάστσης σελίδς µπορεί ν τροποποιηθεί ώστε ν γίνει λγόριθµος σελιδοποίησης µε ϐάση τη Ϲήτηση χωρίς ν υξηθεί το συνολικό κόστος σε κµί κολουθί ιτήσεων. Ασκηση 8. είξτε ότι ο λγόριθµος LRU γι το πρόβληµ της σελιδοποίησης, δεν εµφνίζει το πράδοξο του elady ενώ ο λγόριθµος FIFO το εµφνίζει. Ασκηση 9. είξτε ότι ο λγόριθµος FIFO στο πλίσιο του προβλήµτος σελιδοποίησης, δεν είνι λγόριθµος µρκρίσµτος. Ασκηση 10. Αποδείξτε ότι ο λγόριθµος σελιδοποίησης MARK µε γρήγορη µνήµη µεγέθους k έχει πόδοση το πολύ H k ενάντι σε µνήµονες ντιπάλους ότν ο συνολικός ριθµός σελίδων στην ργή µνήµη είνι N = k+1. Ασκηση 11. Αποδείξτε ότι ο λγόριθµος σελιδοποίησης MARK έχει λόγο πόδοσης υστηρά µεγλύτερο του H k. (Θεωρήστε την περίπτωση k = κι N = 4). Ασκηση 1. είξτε ότι οι λγόριθµοι σελιδοποίησης LRU κι FIFO είνι συντηρητικοί λγόριθµοι. Επίσης, δείξτε ότι ο λγόριθµος FWF δεν είνι συντηρητικός λγόριθµος. 9
Ανοικτά προβλήµτ Προβλήµτ σελιδοποίησης. Τ πρκάτω ερωτήµτ σχολούντι µε το πρόβληµ της σελιδοποίησης. Ως συνήθως, συµβολίζουµε µε k τον ριθµό σελίδων της γρήγορης µνήµης κι µε N τον συνολικό ριθµό των διθέσιµων σελίδων. Υπάρχει ντετερµινιστικός λγόριθµος µε λόγο πόδοσης k γι το πρόβληk µ της (k, k)-σελιδοποίησης που δεν είνι -ντγωνιστικός γι το k h+1 γενικότερο πρόβληµ της (h, k)-σελιδοποίησης ; Οι λγόριθµοι γι το πρόβληµ της σελιδοποίησης που προυσιάστηκν έχουν είτε ϐέλτιστο είτε µη ϕργµένο λόγο πόδοσης. Υπάρχουν (ϱελιστικοι) λγόριθµοι σελιδοποίησης µε ϕργµένη λλά όχι ϐέλτιστο λόγο πόδοσης ; Υπάρχει ντετερµινιστικός λγόριθµος που είνι k-ντγωνιστικός γι N = k + 1 κι χειρότερος γι µεγλύτερες τιµές του N; Προβλήµτ εξισορρόπηση ϕορτίου. Στ επόµεν ερωτήµτ σχετικά µε το πρόβληµ της εξιρρόπησης ϕορτίου σε πράλληλες µηχνές, συµβολί- Ϲουµε τον ριθµό των µηχνών µε m. Το γνωστό άνω ϕράγµ γι (πιθνοτική) εξισορρόπηση ϕορτίου εργσιών µονδιίου ϕορτίου στο µοντέλο των περιορισµένων νθέσεων είνι ln m+1. Μπορεί ν γενικευτεί υτό το πάνω ϕράγµ γι εργσίες µε διφορετικά ϕορτί ; Τι ισχύει γι το ντίστοιχο άνω ϕράγµ γι ντετερµινιστικούς λγορίθµους άµεσης πόκρισης ; Υπάρχει λγόριθµος άµεσης πόκρισης µε λόγο πόδοσης ɛ (µε στθερό ɛ > 0 που δεν εξρτάτι πό το m) γι το πρόβληµ της εξισορρόπησης ϕορτίου εργσιών γνωστής περιορισµένης διάρκεις ; Στην περίπτωση όµοιων µηχνών, είνι ο (ϐέλτιστος) λόγος πόδοσης λγορίθµων άµεσης πόκρισης µη ϕθίνουσ συνάρτηση ως προς τον ριθµό των µηχνών ; 10