Αλγόριθµοι Ι Κάθε καλώς ορισµένη υπολογιστική διαδικασία, η οποία καλείται να επιλύσει ένα συγκεκριµένο πρόβληµα εντός πεπερασµένου χρόνου. Αλγόριθµος είναι µια πεπερασµένη σειρά ενεργειών, αυστηρά καθορισµένων και εκτελέσιµων σε πεπερασµένο χρόνο, που στοχεύουν στην επίλυση ενός προβλήµατος. Τµ. Πληροφορικής, Α.Π.Θ. Τρίτη, 9 Νοεµβρίου 5 Αλγόριθµοι ΙΙ Ένας αλγόριθµος πρέπει να διαθέτει: είσοδο: καµία, µία ή περισσότερες τιµές δεδοµένων έξοδο: τουλάχιστο µία τιµή δεδοµένων καθοριστικότητα: κάθε ενέργεια να προσδιορίζεται σαφώς για τον τρόπο εκτέλεσής της περατότητα: να τελειώνει µετά από πεπερασµένα βήµατα εκτέλεσης των εντολών του αποτελεσµατικότητα: κάθε µεµονωµένη εντολή του αλγορίθµου να είναι απλή και εκτελέσιµη Τµ. Πληροφορικής, Α.Π.Θ. Τρίτη, 9 Νοεµβρίου 5
Αλγόριθµοι ΙΙΙ Κάθε είσοδος που ικανοποιεί τις προδιαγραφές του προβλήµατος καλείται νόµιµη και λέµε πως ορίζει ένα συγκεκριµένο στιγµιότυπο του προβλήµατος. Ένας αλγόριθµος επιλύει ένα πρόβληµα, όταν για κάθε στιγµιότυπο του προβλήµατος τερµατίζει µετά από πεπερασµένο χρόνο, παράγοντας σωστή έξοδο. Τµ. Πληροφορικής, Α.Π.Θ. Τρίτη, 9 Νοεµβρίου 5 Αλγορίθµοι ΙV Τεχνικές σχεδίασης αλγορίθµων: αλγόριθµοι brute-force: διακρίνονται από το γεγονός ότι επιλύουν το πρόβληµα µε τον πιο απλό, άµεσο ή προφανή τρόπο. Η λειτουργία τους βασίζεται στον εξαντλητικό έλεγχο όλων των πιθανών περιπτώσεων. άπληστοι αλγόριθµοι: προχωρούν µε βάση σταδιακές επιλογές, που αφορούν στο βέλτιστο κάθε βήµατος. αλγόριθµοι οπισθοδρόµησης: σε κάθε βήµα εξετάζουν συστηµατικά όλα τα πιθανά αποτελέσµατα κάθε απόφασης, εκτός και αν αποφασίσουν ότι για κάποιες περιπτώσεις δεν είναι απαραίτητος ένας τέτοιος εξαντλητικός έλεγχος. αλγόριθµοι διαίρει και βασίλευε: το πρόβληµα υποδιαιρείται σε πολλά µικρά υποπροβλήµατα πανοµοιότυπα µε το αρχικό. Κάθε ένα από αυτά επιλύεται ανεξάρτητα και οι επιµέρους λύσεις συνδυάζονται σε µία τελική λύση του αρχικού προβλήµατος. Τµ. Πληροφορικής, Α.Π.Θ. Τρίτη, 9 Νοεµβρίου 5 4
Αλγόριθµοι V αλγόριθµοι δυναµικού προγραµµατισµού: το πρόβληµα υποδιαιρείται σε πολλά µικρά προβλήµατα, τα οποία επιλύονται σταδιακά ως σύνθεση των λύσεων των µικρότερων και άρα απλούστερων υποπροβληµάτων. Είναι ιδιαίτερα διαδεδοµένοι για την επίλυση προβληµάτων βελτιστοποίησης. τυχαιοποιηµένοι αλγόριθµοι: αλγόριθµοι που φαίνεται ότι συµπεριφέρονται τυχαία αλγόριθµοι γράφων αλγόριθµοι αναγνώρισης συµβολοσειρών αριθµητικοί αλγόριθµοι κατανεµηµένοι αλγόριθµοι αλγόριθµοι συντακτικής σηµασιολογικής ανάλυσης (µεταγλωττιστές Τµ. Πληροφορικής, Α.Π.Θ. Τρίτη, 9 Νοεµβρίου 5 5 Ανάλυση Αλγορίθµων Ι Ποιος είναι ο καλύτερος αλγόριθµος; Συγκρίνουµε τους αλγορίθµους µε βάση την αποδοτικότητά τους ως συνάρτηση του µεγέθους των περιπτώσεων του προβλήµατος για τον υπολογισµό χρόνου ή χώρου. ιακρίνουµε την πρακτική ή εκ των υστέρων προσέγγιση την θεωρητική ή εκ των προτέρων προσέγγιση Η αποδοτικότητα χαρακτηρίζεται ως συνάρτηση του µεγέθους του προβλήµατος Με τον όρο µέγεθος αναφερόµαστε σε οποιοδήποτε ακέραιο που µε κάποιο τρόπο «µετράει» τον αριθµό των συστατικών µερών µιας περίπτωσης του προβλήµατος. Παράδειγµα: πρόβληµα ταξινόµησης µέγεθος περίπτωσης είναι ο αριθµός των προς ταξινόµηση δεδοµένων Τµ. Πληροφορικής, Α.Π.Θ. Τρίτη, 9 Νοεµβρίου 5 6
Ανάλυση Αλγορίθµων ΙΙ Μοντέλο Μηχανής Τυχαίας Προσπέλασης (RAM Αφαιρετική θεώρηση υπολογιστικού συστήµατος που: αναφέρεται σε συστήµατα του ενός επεξεργαστή δεν έχει τη δυνατότητα τελέσεως ταυτόχρονων πράξεων διαθέτει τους αναγκαίους καταχωρητές, ένα συσσωρευτή και µία ακολουθία απθηκευτικών θέσεων µε διευθύνσεις οι οποίες συνιστούν την κύρια µνήµη είναι σε θέση να εκτελεί τις αριθµητικές πράξεις {, -, *, /, od}, να παίρνει αποφάσεις τύπου f και να γράφει διαβάζει από και προς τις θέσεις µνήµης Τµ. Πληροφορικής, Α.Π.Θ. Τρίτη, 9 Νοεµβρίου 5 7 Ανάλυση Αλγορίθµων ΙΙΙ Οι στοιχειώδεις πράξεις που µπορεί να εκτελέσει µια µηχανή RAM έχουν κάποιο κόστος σε χρόνο: µέτρηση µοναδιαίου κόστους: σταθερό, πεπερασµένο κόστος ανεξαρτήτως του µήκους της δυαδικής αναπαράστασης των τελεστέων µέτρηση λογαριθµικού κόστους: η πράξη παίρνει χρόνο ανάλογο µε το µήκος της δυαδικής αναπαράστασης Εµείς θα χρησιµοποιήσουµε την πρώτη προσέγγιση. Θεώρηµα: Κάθε υπολογιστική διαδικασία µιας µηχανής Turg, µε κόστος πολυωνυµικό στο µέγεθος της εισόδου, µπορεί να εξοµοιωθεί από µία υπολογιστική, πολυωνυµική στο µέγεθος της εισόδου, διαδικασία µιας µηχανής RAM και αντίστροφα. Τµ. Πληροφορικής, Α.Π.Θ. Τρίτη, 9 Νοεµβρίου 5 8 4
Ανάλυση Αλγορίθµων ΙV Η ανάλυση θα γίνεται βάση του µοναδιαίου µέτρου ως συνάρτηση του µεγέθους της εισόδου που: για ένα πρόβληµα ταξινόµησης είναι το πλήθος των προς διάταξη αντικειµένων για έναν αλγόριθµο εύρεσης ελάχιστου επικαλυπτόµενου δένδρου σε γράφο µε σύνολο κορυφών V και σύνολο ακµών E, η είσοδος έχει µέγεθος V E για την τέλεση πολλαπλασιασµών µεταξύ µεγάλων ακεραίων το µέγεθος εισόδου είναι το συνολικό µήκος σε αριθµό bt της δυαδικής αναπαράστασής τους (όχι το πλήθος τους Τµ. Πληροφορικής, Α.Π.Θ. Τρίτη, 9 Νοεµβρίου 5 9 Ανάλυση Αλγορίθµων V Υπολογισµός κόστους ενός αλγορίθµου: σε κάθε εντολή ανάθεσης τιµής ή δήλωσης θα χρεώνουµε σταθερό χρόνο οι βρόχοι for και whle θα χρεώνονται το πλήθος των επαναλήψεων επί το πλήθος των εντολών που εκτελούνται σε κάθε επανάληψη Συχνά θα επικεντρωνόµαστε στις κυρίαρχες πράξεις, δηλαδή αυτές που παίζουν καταλυτικό ρόλο στη συµπεριφορά του αλγορίθµου: π.χ. στους αλγορίθµους ταξινόµησης οι κυρίαρχες πράξεις είναι οι συγκρίσεις και οι ανταλλαγές στοιχείων µεταξύ δύο θέσεων του πίνακα εισόδου Τµ. Πληροφορικής, Α.Π.Θ. Τρίτη, 9 Νοεµβρίου 5 5
Ανάλυση Αλγορίθµων VΙ Παράδειγµα ανάλυσης: Algorth selectosort(a Iput: Πίνακας Α αριθµών Output: ιατεταγµένος πίνακας κόστος #εκτελέσεων. for (;<; { c. ; c. for (j;j<;j c j j 4. f (a[j]<a[] j; c 4 ( j 5. tepa[]; c 5 j 6. a[]a[]; c 6 7. a[]tep; c 7 8. } Τµ. Πληροφορικής, Α.Π.Θ. Τρίτη, 9 Νοεµβρίου 5 Ανάλυση Αλγορίθµων VΙΙ Συνολικός χρόνος αλγορίθµου: c c4 c4 ( c c c5 c6 c7 T ( ( c c ένας αλγόριθµος είναι γρηγορότερος από έναν άλλο αν T T (, ( ένας αλγόριθµος είναι ασυµπτωτικά γρηγορότερος από έναν άλλο αν T ( l T ( Τµ. Πληροφορικής, Α.Π.Θ. Τρίτη, 9 Νοεµβρίου 5 6
Ανάλυση Αλγορίθµων VΙΙΙ Στις περισσότερες περιπτώσεις είτε δεν είµαστε σε θέση είτε δε µας ενδιαφέρει να βρούµε ακριβείς τύπους και απλά ασχολούµαστε µε το ρυθµό αύξησης ή την τάξη αύξησης των συναρτήσεων που εκφράζουν την πολυπλοκότητα του αλγορίθµου. Τότε µιλάµε για ασυµπτωτικές εκτιµήσεις O, Θ ή Ω. c'f cf g g g cf cf O(f Ω(f Θ(f Τµ. Πληροφορικής, Α.Π.Θ. Τρίτη, 9 Νοεµβρίου 5 Ανάλυση Αλγορίθµων ΙΧ Αλγόριθµος που εκτελείται σε χρόνο τάξης εµφανίζει γραµµική πολυπλοκότητα εµφανίζει τετραγωνική πολυπλοκότητα εµφανίζει κυβική πολυπλοκότητα κ πολυωνυµική πολυπλοκότητα c εκθετική πολυπλοκότητα Αποδοτικότητα χώρου µνήµης για παράλληλους αλγορίθµους: Αποδοτικότητα επικοινωνίας Τµ. Πληροφορικής, Α.Π.Θ. Τρίτη, 9 Νοεµβρίου 5 4 7
Ανάλυση Αλγορίθµων Χ O( 5-4 sec 4-4 sec 5-4 sec - sec 5 - sec. 5..8 ώρες - sec sec 5.7 χρόνια 4 τρις αιώνες.8 ώρες. τρις χρόνια O( O(log O( poly log O( O(! O( k O( k poly log Τµ. Πληροφορικής, Α.Π.Θ. Τρίτη, 9 Νοεµβρίου 5 5 Ανάλυση Αλγορίθµων ΧΙ ΟΡΙΣΜΟΣ Θεωρούµε ότι η συνάρτηση f( είναι µη αρνητική για όλους τους ακεραίους. Λέµε ότι f(o(g(, αν υπάρχει ακέραιος και µία σταθερά c> έτσι ώστε για όλους τους ακέραιους f ( cg( ΠΑΡΑ ΕΙΓΜΑ. Έστω f(88. Ισχύει ότι f(o(? Ας θεωρήσουµε c. Τότε, f ( c 8 8 8 8 ( 6( 8 Αφού για κάθε ισχύει (8>, θέλουµε 6 6 Άρα ισχύει ότι f(( Τµ. Πληροφορικής, Α.Π.Θ. Τρίτη, 9 Νοεµβρίου 5 6 8
Ανάλυση Αλγορίθµων ΧΙΙ ΟΡΙΣΜΟΣ Θεωρούµε τη συνάρτηση f(o(g(. Αν για κάθε συνάρτηση h( έτσι ώστε f(o(h(, ισχύει επίσης ότι g(o(h(, τότε λέµε ότι η g( είναι ένα στενό ασυµπτωτικό όριο της f(. Παράδειγµα: είξαµε ότι για f(88 ισχύει ότι f(o(. Παρόλα αυτά, το δεν είναι ένα στενό ασυµπτωτικό όριο, γιατί ισχύει επίσης f(o(. Βέβαια, για να αποδειχθεί ότι η g( είναι ένα στενό ασυµπτωτικό όριο πρέπει να δείξουµε ότι για κάθε h( που f(o(h(, ισχύει ότι g(o(h(. Για το συγκεκριµένο παράδειγµα µπορεί αυτό να γίνει µε εις άτοπο απαγωγή. Τµ. Πληροφορικής, Α.Π.Θ. Τρίτη, 9 Νοεµβρίου 5 7 Ανάλυση Αλγορίθµων ΧΙΙΙ ΣΥΜΒΑΣΕΙΣ: Συνηθίζεται σε µία έκφραση κεφαλαίου «Ο» να διατηρούµε µόνο τον πιο σηµαντικό όρο. Έτσι, αντί για Ο( log γράφουµε απλά O(. Συνηθίζεται να αγνοούνται οι συντελεστές. Έτσι, αντί για Ο(, απλά γράφουµε Ο(. Προτιµούµε την εύρεση στενού ασυµπτωτικού ορίου. Έτσι, αντί να γράφουµε f(o( προτιµούµε να γράφουµε f(o(. Σε κάποια βιβλία αντί για f(o(g( γράφουνε f( O(g(. (βλ. Brassard & Bratley. Τµ. Πληροφορικής, Α.Π.Θ. Τρίτη, 9 Νοεµβρίου 5 8 9
Ανάλυση Αλγορίθµων ΧΙV ΑΣΥΜΠΤΩΤΙΚΟ ΚΑΤΩ ΟΡΙΟ (ΣΥΜΒΟΛΙΣΜΟΣ Ω: Θεωρούµε ότι η συνάρτηση f( είναι µη αρνητική για όλους τους ακεραίους. Λέµε ότι f(ω(g(, αν υπάρχει ακέραιος και µία σταθερά c> έτσι ώστε για όλους τους ακέραιους, f ( cg(. Όλες οι συµβάσεις που εισάγαµε στο συµβολισµό κεφαλαίου «Ο» ισχύουν και για το συµβολισµό κεφαλαίου «Ω». ΠΑΡΑ ΕΙΓΜΑ: Αποδείξτε ότι αν f(5-6456, τότε f(ω(. ΑΣΥΜΠΤΩΤΙΚΟΣ ΣΥΜΒΟΛΙΣΜΟΣ Θ: Θεωρούµε ότι η συνάρτηση f( είναι µη αρνητική για όλους τους ακεραίους. Λέµε ότι f(θ(g(, αν και µόνο αν f(ο(g( και f(ω(g(. Τότε λέµε ότι η f( είναι ακριβώς τάξης g( και αν µπορεί να αποδειχθεί κάτι τέτοιο για έναν αλγόριθµο είναι πιο ισχυρό από ότι αν απλά ο αλγόριθµος είναι τάξης g(. Τµ. Πληροφορικής, Α.Π.Θ. Τρίτη, 9 Νοεµβρίου 5 9 Ανάλυση Αλγορίθµων ΧV ΑΣΥΜΠΤΩΤΙΚΟΣ ΣΥΜΒΟΛΙΣΜΟΣ ΠΕΖΟΥ «ο»: Θεωρούµε ότι η συνάρτηση f( είναι µη αρνητική για όλους τους ακεραίους. Λέµε ότι f(ο(g(, αν και µόνο αν f(ο(g(, αλλά δεν ισχύει f( Θ(g(. ΑΣΥΜΠΤ. ΣΥΜΒΟΛΙΣΜΟΣ ΜΕ ΠΟΛΛΕΣ ΠΑΡΑΜΕΤΡΟΥΣ: Χρήσιµος για περιπτώσεις όπου για παράδειγµα ο χρόνος εκτέλεσης εξαρτάται από περισσότερες από µία παραµέτρους της κάθε περίπτωσης π.χ. αλγόριθµοι γράφων που εξαρτώνται από τον αριθµό των ακµών και τον αριθµό των κορυφών. Λέµε τότε ότι f(,o(g(,, αν υπάρχουν ακέραιοι και και µία σταθερά c>, έτσι ώστε για όλους τους ακέραιους και ισχύει f (, cg(,. Τµ. Πληροφορικής, Α.Π.Θ. Τρίτη, 9 Νοεµβρίου 5
Ανάλυση Αλγορίθµων ΧVI ΑΣΥΜΠΤ. ΣΥΜΒΟΛΙΣΜΟΣ ΥΠΟ ΣΥΝΘΗΚΗ: Μία συνάρτηση t( είναι O(f( P( αν υπάρχει ένας ακέραιος και µία σταθερά c>, έτσι ώστε για όλους τους ακέραιους να συνάγεται P( t( cf(. Έτσι, αν αυτό βολεύει, µπορούµε να µελετήσουµε την αποδοτικότητα ενός αλγορίθµου για περιπτώσεις µε µεγέθη π.χ. που προκύπτουν ως δυνάµεις του. Συνήθως βέβαια, στη συνέχεια, αναζητείται κάποιος τρόπος για να αρθεί η συνθήκη της οποίας ο ρόλος περιορίζεται στη διευκόλυνση της ανάλυσης της του αλγορίθµου. ΠΡΑΞΕΙΣ ΜΕ ΑΣΥΜΠΤ. ΣΥΜΒΟΛΙΣΜΟ: Τι σηµαίνει ο συµβολισµός O(f(O(g(; Ο συµβολισµός αυτός εκφράζει το σύνολο των συναρτήσεων που προκύπτει µε την πρόσθεση της τιµής οποιασδήποτε συνάρτησης ανήκει στο O(f( στην τιµή οποιασδήποτε συνάρτησης ανήκει στο O(g(. Γενικά, µία συνάρτηση t( είναι O(f( op O(g(, αν υπάρχουν συναρτήσεις f και g, που ανήκουν αντίστοιχα στα σύνολα συναρτήσεων O(f( και O(g( και ένας ακέραιος έτσι ώστε για όλους τους ακέραιους t(f( op g( Τµ. Πληροφορικής, Α.Π.Θ. Τρίτη, 9 Νοεµβρίου 5 Ανάλυση Αλγορίθµων ΧVII ΘΕΩΡΗΜΑ Αν θεωρήσουµε ότι f (O(g ( και f (O(g (, τότε f (f (O(ax(g (,g ( ΑΠΟ ΕΙΞΗ: Εξ ορισµού υπάρχουν δύο ακέραιοι και και δύο σταθερές c και c, έτσι ώστε f ( c g ( για και f ( c g ( για. Έστω ότι ax(, και c ax(c,c. Τότε, για f( f( cg( cg( c( g( g( / c ax( g(, g( ΘΕΩΡΗΜΑ Αν f (f (f ( και οι f ( και f ( είναι και οι δύο µη αρνητικές για όλους τους ακεραίους, έτσι ώστε f( l L f( για κάποιο L, τότε f((f (. Τµ. Πληροφορικής, Α.Π.Θ. Τρίτη, 9 Νοεµβρίου 5
Ανάλυση Αλγορίθµων ΧVIII ΣΗΜΑΝΤΙΚΟ ΘΕΩΡΗΜΑ, διότι χάρη σε αυτό συµπεραίνουµε π.χ. ότι f (f ( O(. ΓΙΑΤΙ?? f( ΕΠΕΙ Η: l l l f( ΘΕΩΡΗΜΑ Αν θεωρήσουµε ότι f (O(g ( και f (O(g (, τότε f (Χf (O(g (Χg ( ΑΠΟ ΕΙΞΗ: Εξ ορισµού υπάρχουν δύο ακέραιοι και και δύο σταθερές c και c, έτσι ώστε f ( c g ( για και f ( c g ( για. Επιπλέον, οι f ( και f ( είναι µη αρνητικές για όλους τους ακεραίους. Θεωρούµε ax(, και c c c. Τότε για f( f( cg ( cg( c( g( g( Τµ. Πληροφορικής, Α.Π.Θ. Τρίτη, 9 Νοεµβρίου 5 Ανάλυση Αλγορίθµων ΧIX ΣΗΜΑΝΤΙΚΟ ΘΕΩΡΗΜΑ, διότι χάρη σε αυτό συµπεραίνουµε π.χ. ότι f (Xf (( X( ( X O( 5. ΘΕΩΡΗΜΑ Αν θεωρήσουµε ότι f (O(g ( και η g ( είναι µη αρνητική για όλους τους ακεραίους, τότε f (Χf (O(g (Χg ( ΘΕΩΡΗΜΑ Αν θεωρήσουµε ότι f(o(g( και η g( O(h(, τότε f(o(h(. ΣΗΜΑΝΤΙΚΟ ΘΕΩΡΗΜΑ, διότι χάρη σε αυτό συµπεραίνουµε π.χ. ότι αν f (5, που είναι Ο( και f (, τότε f (f ((f (, γιατί f ( l. Το γεγονός όµως ότι f (Ο(, f ( δίνει µε µεταβατική ιδιότητα ότι f (f ( Ο( Τµ. Πληροφορικής, Α.Π.Θ. Τρίτη, 9 Νοεµβρίου 5 4
Ανάλυση Αλγορίθµων ΧX ΘΕΩΡΗΜΑ Αν θεωρήσουµε ένα πολυώνυµο της µορφής f ( a όπου. Τότε f(o( a a... a a a a >. ΑΠΟ ΕΙΞΗ: Αφού το µέγεθος είναι εξ ορισµού µη αρνητικός αριθµός, για να είναι ένας όρος του πολυωνύµου αρνητικός πρέπει a <. Άρα για κάθε όρο του αθροίσµατος ισχύει a a. Επειδή θεωρήσαµε ότι a > f ( a, ( Επειδή, για f ( a a Τµ. Πληροφορικής, Α.Π.Θ. Τρίτη, 9 Νοεµβρίου 5 5 a,, Ανάλυση Αλγορίθµων ΧXI ΘΕΩΡΗΜΑ Αν θεωρήσουµε ένα πολυώνυµο της µορφής a όπου >. Τότε f(ω(. ΘΕΩΡΗΜΑ f ( a a a Για κάθε ακέραιο k, log k O(.... a a a Τµ. Πληροφορικής, Α.Π.Θ. Τρίτη, 9 Νοεµβρίου 5 6
Ανάλυση Αλγορίθµων ΧXII Για να βρεθούν ασυµπτωτικά όρια: Όταν ο αλγόριθµος περιέχει επαναληπτικές δοµές ελέγχου (whle, for κ.λ.π., τότε η αποδοτικότητα εκφράζεται ως άθροισµα όρων, π.χ. j. Έτσι, η ανάλυση ανάγεται στην j δυνατότητα χειρισµού τέτοιων αθροισµάτων και εύρεσης ασυµπτωτικών ορίων. Πρέπει να γνωρίζετε πολύ καλά τον υπολογισµό σειρών: - αριθµητικών - γεωµετρικών - αρµονικών για τις οποίες προσπαθείτε να αποδείξετε την ισχύ ενός ασυµπτωτικού ορίου µε τη χρήση επαγωγής. Τµ. Πληροφορικής, Α.Π.Θ. Τρίτη, 9 Νοεµβρίου 5 7 Ανάλυση Αλγορίθµων ΧXIIΙ Όταν ο αλγόριθµος περιέχει αναδροµικές κλήσεις, τότε η αποδοτικότητά του εκφράζεται από αναδροµικές εξισώσεις ή ανισοϊσότητες, π.χ. / T ( T ( τότε προσπαθούµε να βρούµε την αποδοτικότητα µε κάποιο από το εξής τρόπους: προσπαθούµε να «µαντέψουµε» µε επαναληπτική αντικατάσταση µε τη γενική µέθοδο Τµ. Πληροφορικής, Α.Π.Θ. Τρίτη, 9 Νοεµβρίου 5 8 4
Ανάλυση Αλγορίθµων ΧXΙV προσπαθώντας να «µαντέψουµε» Έστω ότι θέλουµε να δείξουµε ότι αν το κόστος είναι / T ( T ( η λύση είναι O(. Άρα πρέπει να δείξουµε ότι για µία σταθερά c, T( c. Εφαρµόζουµε ισχυρά επαγωγή και αντικαθιστούµε στην αναδροµική εξίσωση: T ( c( / c c( / αλλά εµείς θέλουµε σύµφωνα µε την υπόθεση της επαγωγής να δείξουµε ότι T( c. Για το λόγο αυτό δοκιµάζουµε για c-b, όπου b σταθερά: T ( c( / b c b Τµ. Πληροφορικής, Α.Π.Θ. Τρίτη, 9 Νοεµβρίου 5 9 c b, b Ανάλυση Αλγορίθµων ΧXV προσπαθώντας να «µαντέψουµε» εάν τυχόν υπάρχουν αρχικές συνθήκες για την αναδροµή όπως π.χ. Τ(4, τότε αυτές µπορεί να καθορίζουν τη σταθερά c T ( 4 c b c b 4 c 5 ένα «κόλπο» για να «µαντέψουµε» είναι µε χρήση «δένδρου αναδροµής» (βλ. Αλγόριθµοι Σχεδιασµός και Αάλυση, Παναγιώτης. Μποζάνης. b Τµ. Πληροφορικής, Α.Π.Θ. Τρίτη, 9 Νοεµβρίου 5 5
6 Τρίτη, 9 Νοεµβρίου 5 Τµ. Πληροφορικής, Α.Π.Θ. Ανάλυση Αλγορίθµων ΧXVΙ µε επαναληπτική αντικατάσταση έστω ότι και Τ(. ίχως βλάβη της γενικότητας ας υποθέσουµε ότι το είναι δύναµη του. Τότε, T T / ( ( ( (... ( ( ( ( k k k k k T T T T T T T T Τρίτη, 9 Νοεµβρίου 5 Τµ. Πληροφορικής, Α.Π.Θ. Ανάλυση Αλγορίθµων ΧXVΙΙ µε επαναληπτική αντικατάσταση η επαναληπτική διαδικασία σταµατάει όταν οπότε µε αντικατάσταση και πράξεις log ( ( (.6 log log log log log log log log log O T T k k
Ανάλυση Αλγορίθµων ΧXVΙΙΙ γενική µέθοδος ουσιαστικά είναι µία µέθοδος για την επίλυση αναδροµικών εξισώσεων της µορφής T ( at ( / b f (, a, b, f ( >, και βασίζεται στην εφαρµογή κάποιων θεωρηµάτων. Περισσότερες πληροφορίες στο: Αλγόριθµοι Σχεδιασµός και Αάλυση, Παναγιώτης. Μποζάνης, σελ. 9 Τµ. Πληροφορικής, Α.Π.Θ. Τρίτη, 9 Νοεµβρίου 5 Μορφές ανάλυσης ανάλυση µέσης περίπτωσης ανάλυση χειρότερης περίπτωσης µέσο κόστος εκτέλεσης του αλγορίθµου µέγιστο κόστος εκτέλεσης του αλγορίθµου Τµ. Πληροφορικής, Α.Π.Θ. Τρίτη, 9 Νοεµβρίου 5 4 7
Ανάλυση χειρότερης περίπτωσης Ι Παράδειγµα ανάλυσης χειρότερης περίπτωσης: Algorth qucksort(a,left,rght Iput: Πίνακας Α αριθµών µε όρια left και rght Output: ιατεταγµένος πίνακας. left-, jrght;. oa[rght];. whle (true { //εύρεση θέσης pvot. whle (a[]<o; 4. whle (o<a[--j] j; 5. f (jleft break; 6. f (>j break; 7. tepa[]; a[]a[j]; a[j]tep; 8. } 9. tepa[]; a[]a[rght]; a[rght]tep;. f (left<- qucksort(a, left, -;. f (<rght qucksort(a,, rght; Τµ. Πληροφορικής, Α.Π.Θ. Τρίτη, 9 Νοεµβρίου 5 5 Ανάλυση χειρότερης περίπτωσης ΙI Πως λειτουργεί το qucksort: Αν π.χ. έχουµε ένα πίνακα αριθµών [4, 8,, 7,, 5, 6, ], τότε επιλέγεται ως στοιχείο pvot αυτό που βρίσκεται στη δεξιότερη θέση και αναζητείται η σωστή του θέση µέσα στον πίνακα. Αυτό τοποθετείται στη σωστή του θέση και αριστερά του τοποθετούνται όλα τα στοιχεία που είναι µικρότερα από το pvot, ενώ δεξιά του αυτά που είναι µεγαλύτερα. Έτσι, προκύπτει [,,, 4, 8, 7, 5, 6] και η qucksort εφαρµόζεται τόσο στο αριστερό όσο και στο δεξί τµήµα του πίνακα. Εφαρµογή: [4,,, ] left rght - j pvot εύρεση θέσης pvot: j ανταλλαγή a[] & a[j] [,, 4, ] j θέση pvot: [,,, 4] κ.λ.π. Χειρότερη περίπτωση: να αναζητούµε τη θέση του pvot σε έναν ήδη ταξινοµηµένο πίνακα Τµ. Πληροφορικής, Α.Π.Θ. Τρίτη, 9 Νοεµβρίου 5 6 8
Ανάλυση χειρότερης περίπτωσης ΙIΙ Σχέση κόστους: T ( ax{ T( T ( { } κόστος διάσπασης σε δύο υυποπροβλµατα Όταν όµως ο πίνακας είναι ήδη ταξινοµηµένος (χειρότερη περίπτωση, από τα δύο υποπροβλήµατα η qucksort καλείται αναδροµικά µόνο για το ένα. Έτσι, το κόστος δίνεται από τη σχέση: ( c c( c(... c c O( c Τµ. Πληροφορικής, Α.Π.Θ. Τρίτη, 9 Νοεµβρίου 5 7 Ανάλυση µέσης περίπτωσης Ι Μέση περίπτωση: δοθέντος ενός πίνακα στοιχείων, όλα τα στοιχεία έχουν την ίδια πιθανότητα να είναι pvot (δηλαδή να βρίσκονται στη δεξιότερη θέση του πίνακα T ( E[ T ( ] T ( Prob[το στοιχείο είναι pvot] ( T ( T ( T ( ( T ( T ( T ( T ( ( T ( T ( ( T ( ( αφαιρούµε κατά µέλη Τµ. Πληροφορικής, Α.Π.Θ. Τρίτη, 9 Νοεµβρίου 5 8 9
Ανάλυση µέσης περίπτωσης ΙΙ T ( ( T ( T ( T ( T ( και µε επαναληπτική αντικατάσταση T ( T ( T ( ( j j j O( log j Τµ. Πληροφορικής, Α.Π.Θ. Τρίτη, 9 Νοεµβρίου 5 9 Ανάλυση ταξινόµησης I Αλγόριθµος straght serto sort (σταδιακή ταξινόµηση Algorth straghtisertsort(a Iput: Πίνακας Α αριθµών Output: ιατεταγµένος πίνακας for (;<; { xt[]; j-; whle (j> ad x<t[j] { T[j]T[j]; jj-; } T[j]x; } Τµ. Πληροφορικής, Α.Π.Θ. Τρίτη, 9 Νοεµβρίου 5 4
Ανάλυση ταξινόµησης II Αλγόριθµος straght serto sort (εκτέλεση... 4 5 9 6 5 4 4 5 9 6 5 4 4 5 9 6 5 4 4 5 9 6 5 4 4....................................... Τµ. Πληροφορικής, Α.Π.Θ. Τρίτη, 9 Νοεµβρίου 5 4 Ανάλυση ταξινόµησης III Αλγόριθµος straght serto sort (ανάλυση... πόσες συγκρίσεις (εντολή whle γίνονται για κάθε? καλύτερη περίπτωση: η τιµή στη θέση είναι µεγαλύτερη από την τιµή στη θέση - (πίνακας ταξινοµηµένος σε αύξουσα µία σύγκριση για κάθε και άρα συνολικά - συγκρίσεις χειρότερη περίπτωση: (πίνακας ταξινοµηµένος σε φθίνουσα - συγκρίσεις για κάθε και άρα συνολικά συγκρίσεις ( ( / Τµ. Πληροφορικής, Α.Π.Θ. Τρίτη, 9 Νοεµβρίου 5 4
Ανάλυση ταξινόµησης IV Αλγόριθµος straght serto sort (ανάλυση... µέση περίπτωση: αν θεωρήσουµε µόνο διαφορετικούς µεταξύ τους αριθµούς, τότε η µέση περίπτωση είναι ο µέσος αριθµός συγκρίσεων για όλες τις πιθανές σειρές, που µπορεί να προκύψουν από την {,,,...,} µε αλλαγή της θέσης των στοιχείων της ονοµάζουµε αντιστροφή την εµφάνιση ζεύγους αριθµών που εµφανίζονται µε λάθος σειρά π.χ. η σειρά {,4,,} περιέχει τρεις αντιστροφές, τις (4,,, (4, και (, Τι σχέση έχει η αντιστροφή µε τη βασική πράξη, που είναι η σύγκριση?? Τµ. Πληροφορικής, Α.Π.Θ. Τρίτη, 9 Νοεµβρίου 5 4 Ανάλυση ταξινόµησης V Αλγόριθµος straght serto sort (ανάλυση... µέση περίπτωση (συνέχεια: στον αλγόριθµο straght serto sort και πιο συγκεκριµένα στο βρόχο whle αφαιρείται κάθε φορά µία αντιστροφή µε αντιµετάθεση των στοιχείων που την απαρτίζουν. Άρα έχουµε τόσες συγκρίσεις, όσες οι εµφανιζόµενες αντιστροφές. Θεώρηµα: Ο µέσος αριθµός εµφανιζόµενων αντιστροφών σε µία τυχαία επιλεγµένη σειρά διακριτών αριθµών είναι ( / 4 Απόδειξη: Έστω S µία τυχαία σειρά διακριτών αριθµών και S R η αντίστροφη σειρά της S. Άρα κάθε ζεύγος αριθµών σχηµατίζει µία αντιστροφή που βρίσκεται είτε στην S είτε στην S R. Πόσα ζεύγη αριθµών περιέχει η κάθε σειρά? ( / Άρα κατά µέσο όρο η S θα περιέχει τις µισές αντιστροφές. Τµ. Πληροφορικής, Α.Π.Θ. Τρίτη, 9 Νοεµβρίου 5 44
Ανάλυση ταξινόµησης VΙ Συνοψίζοντας: αλγόριθµος καλύτερη περίπτωση µέση περίπτωση χειρότερη περίπτωση straght serto sort bary search sort log( bubble sort qucksort log( log( straght selecto sort heapsort log( log( ergesort log( log( Τµ. Πληροφορικής, Α.Π.Θ. Τρίτη, 9 Νοεµβρίου 5 45