ιαίρει και Βασίλευε Στην ενότητα αυτή θα µελετηθούν τα εξής θέµατα: Η Μέθοδος Σχεδιασµού Αλγορίθµων ιαίρει και Βασίλευε Επίλυση Αναδροµικών Εξισώσεων ΕΠΛ 3 Αλγόριθµοι και Πολυπλοκότητα -
ιαίρει και Βασίλευε Μέθοδος σχεδιασµού αλγορίθµων. Βασίζεται στην ιδιότητα αναδροµικότητας που έχουν οι λύσεις πολλών προβληµάτων Πρόσφορη για υλοποίηση αλγορίθµων, σε προγραµµατιστικές γλώσσες που υποστηρίζουν την αναδροµή. Κάθε αλγόριθµος του τύπου διαίρει και βασίλευε περιλαµβάνει τρεις φάσεις:. ιαιρούµε το πρόβληµα σε ένα αριθµό από υποπροβλήµατα.. Κατακτούµε τα υποπροβλήµατα λύνοντας τα αναδροµικά. 3. Συνδυάζουµε τις λύσεις των υποπροβληµάτων για να βρούµε τη λύση του αρχικού προβλήµατος. Πρέπει να υπάρχει βασική περίπτωση. Παραδείγµατα: Quicksort, Mergesort. ΕΠΛ 3 Αλγόριθµοι και Πολυπλοκότητα -
Πολλαπλασιασµός Πινάκων Ο Αλγόριθµος του Strsse Πρόβληµα: Έστω δύο πίνακες A [ ] και B [ ], i, j ij ij Θέλουµε να υπολογίσουµε το γινόµενο CAB. Ο πίνακας C είναι και τέτοιος ώστε C [ c ] οπου ij c ij k Πόσος χρόνος χρειάζεται για να υπολογίσουµε τον πίνακα C σύµφωνα µε τον πιο πάνω ορισµό; Θ³, πολλαπλασιασµοί και - προσθέσεις για κάθε ένα από τα ² στοιχεία. ik kj ΕΠΛ 3 Αλγόριθµοι και Πολυπλοκότητα -3
ΕΠΛ 3 Αλγόριθµοι και Πολυπλοκότητα -4 Πολλαπλασιασµός Πινάκων Μπορούµε να βελτιώσουµε το Θ³; Βασική ιδέα: πολλαπλασίασε πίνακες χρησιµοποιώντας µόνο 7 πολλαπλασιασµούς αντί για 8. Έστω Ορίζουµε Υπολογισµός των πιο πάνω τιµών απαιτεί 7 πολλαπλασιασµούς και 0 προσθέσεις/ αφαιρέσεις. h f g d c t u s e r 4 7 3 6 5 e f d g e c e d c h f d h h e d h g
ΕΠΛ 3 Αλγόριθµοι και Πολυπλοκότητα -5 Πολλαπλασιασµός Πινάκων Μπορούµε να αποδείξουµε ότι: Σηµείωση: άλλες 8 προσθέσεις/αφαιρέσεις Επαλήθευση της ορθότητας της πρώτης πρότασης. Έχουµε όπως χρειάζεται. Όµοια επαληθεύεται η ορθότητα των υπόλοιπων προτάσεων. 7 3 5 4 3 6 4 5 u s t r f e dh df h f h h de df dh de h e h f d h e f d h e d r 6 4 5
Πολλαπλασιασµός Πινάκων Άρα η µέθοδος αυτή µας στοιχίζει 7 πολλαπλασιασµούς και 8, προσθέσεις/αφαιρέσεις Πόσο καλή είναι η µέθοδος; Μας γλιτώνει ένα πολλαπλασιασµό, όµως µας στοιχίζει 4 επιπρόσθετες προσθέσεις/ αφαιρέσεις. εν αξίζει τον κόπο για πολλαπλασιασµό πινάκων όµως έχει γενικότερη χρησιµότητα. Παρατήρηση: δεν στηρίζεται στην αντιµεταθετικότητα της πράξης του πολλαπλασιασµού. Συνεπώς µπορεί να χρησιµοποιηθεί στην περίπτωση που τα,, c, d, e, f, g, και h, είναι πίνακες ο πολλαπλασιασµός πινάκων δεν είναι αντιµεταθετική πράξη. ΕΠΛ 3 Αλγόριθµοι και Πολυπλοκότητα -6
Ο Αλγόριθµος του Strsse Αυτήηιδέαµας δίνει τον αλγόριθµοτουstrsse για πολλαπλασιασµό πινάκων:. ιαίρεσε Μοίρασε τους πίνακες Α και Β σε 4 υποπίνακες / / ο καθένας.. Κατάκτησε Κάνε 7 πολλαπλασιασµούς πινάκων αναδροµικά. 3. Συνδύασε Υπολόγισε τον CAB χρησιµοποιώντας προσθέσεις και αφαιρέσεις. πως; ΕΠΛ 3 Αλγόριθµοι και Πολυπλοκότητα -7
Χρόνος Εκτέλεσης Έστω Τ ο χρόνος εκτέλεσης του αλγόριθµου του Strsse πάνω σε πίνακες. Προφανώς Τ 7 T/ 8 /² Ποια είναι η βασική περίπτωση; Με βάση µεθόδους λύσης αναδροµικών εξισώσεων µπορούµε να αποδείξουµε ότι lg7 T Θ O 3 Άρα ο διαίρει και βασίλευε αλγόριθµος του Strsse βελτιώνει τον προφανή αλγόριθµο που βασίζεται στον ορισµό πολλαπλασιασµού πινάκων. ΕΠΛ 3 Αλγόριθµοι και Πολυπλοκότητα -8
Αναδροµικές Εξισώσεις Μας ενδιαφέρουν κυρίως αναδροµικές εξισώσεις του τύπου `διαίρει και βασίλευε`: c, T T f, Όπου Τ/ το κόστος για αναδροµική επίλυση υποπροβληµάτων µεγέθους /. f το κόστος για συνδυασµό των λύσεων των υποπροβληµάτων ο αριθµός των υποπροβληµάτων > ο συντελεστής µείωσης του προβλήµατος Πιο κάτω παρουσιάζονται γενικές τεχνικές για την επίλυση αναδροµικών εξισώσεων. if if > ΕΠΛ 3 Αλγόριθµοι και Πολυπλοκότητα -9
Μέθοδος της επαγωγής. Προβλέπουµε µια συνάρτηση f ως λύση της εξίσωσης, και. Επαληθεύουµε τη λύση µε επαγωγή προσδιορίζοντας κατάλληλα τις σταθερές. Παράδειγµα Έχουµε την αναδροµική εξίσωση Τ T/, T ΠροβλέπουµεότιΤ O². ηλαδή, θα πρέπει να υπάρχουν σταθερά c και τιµή m τέτοιες ώστε για κάθε >m Τ c² Θα αποδείξουµετοπιοπάνωεπαγωγικά. ΕΠΛ 3 Αλγόριθµοι και Πολυπλοκότητα -0
Μέθοδος της επαγωγής: Παράδειγµα Υπόθεση της επαγωγής: Έστω ότι Τk ck² για κάθε m<k<. Θα αποδείξουµεότιτ c² προσδιορίζοντας κατάλληλα τη σταθερά c. Eχουµε: T T/ c/² c/ ² c ² - c/ ² - Άρα Τ c² αν c/ ² - 0. ηλαδή, αν c / >0. Γιαναισχύειηανισότητααρκεί c. ΕΠΛ 3 Αλγόριθµοι και Πολυπλοκότητα -
Μέθοδος της επαγωγής: Παράδειγµα ΑποδείξαµεότιΤ O². Μπορούµε όµως να βρούµεακριβέστερηλύση Προβλέπουµε ότιτ Olg. ηλαδή, θα αποδείξουµε την ύπαρξη σταθεράς c και τιµής m τέτοιες ώστε για κάθε >m Τ c lg Θα αποδείξουµε το πιο πάνω επαγωγικά. Βάση της επαγωγής: για, το ζητούµενο ισχύει για οποιαδήποτε τιµή c. Υπόθεση της επαγωγής: Έστω ότι Τk cklgkγια κάθε k<. Θα αποδείξουµεότιτ clg προσδιορίζοντας κατάλληλα τη σταθερά c. Eχουµε: T T/ c / lg / c lg - c lg -c - Άρα Τ c lg αν c - 0. ηλαδή, αν c >0. Εποµένως Τ Ο lg. ΕΠΛ 3 Αλγόριθµοι και Πολυπλοκότητα -
Μέθοδος της αντικατάστασης Χρησιµοποιούµε τοβήµατηςαναδροµής επανεληµένα, ώστε να εκφράσουµετο Τ ως συνάρτηση που περιέχει µόνο τη βασική περίπτωση, δυνάµεις του και σταθερές τιµές. Παράδειγµα Έχουµε τηναναδροµική εξίσωση Τ 4T/, T για κάθε Τότε, αντικαθιστώντας το Τ/ µε τηντιµή του παίρνουµε Τ 4T/ 44T/4 / 4²Τ/4 4³Τ/8 ²... ΕΠΛ 3 Αλγόριθµοι και Πολυπλοκότητα -3
ΕΠΛ 3 Αλγόριθµοι και Πολυπλοκότητα -4 Μέθοδος της αντικατάστασης - Παράδειγµα ιακρίνουµετηγενικήµορφή Υποθέτουµε ότι το είναι δύναµητου και klg. Τότε... T T i i i 4... T T k k k i i k k k k 0 4 4
ΘΕΩΡΗΜΑ Χρήση γενικών λύσεων Έστω και > σταθερές, συνάρτηση f και συνάρτηση Τ που ορίζεται στους µη αρνητικούς ακέραιους µέσω της αναδροµικής εξίσωσης T T f Τότε η Τ φράσσεται ως εξής:. Αν log ε f O, για κάποια σταθερά ε>0, τότε log Τ Θ. Αν f Θ log, τότε Τ Θ log lg log ε 3. Αν f Ω, για κάποια σταθερά ε>0, και f/ cf, τότε Τ Θ f. ΕΠΛ 3 Αλγόριθµοι και Πολυπλοκότητα -5
. Τ T/ 000 Παραδείγµατα. T 7T/ 8² ΕΠΛ 3 Αλγόριθµοι και Πολυπλοκότητα -6
Πολλαπλασιασµός Πινάκων O αλγόριθµος που µελετήσαµε ανακαλύφθηκε από τον Strsse το τέλος της δεκαετίας του 60. Ακολούθησαν διάφορες προσπάθειες για βελτίωση του αλγόριθµου εύρεση ω τέτοιου ώστε ο πολλαπλασιασµός πινάκων να γίνεται σε χρόνο Ο ω όπου ω Οlg 7: Oι Ηocroft και Kerr απέδειξαν πως είναι αδύνατος ο πολλαπλασιασµός δύο πολλαπλασιασµούς µε 6 πολλαπλασιασµούς. Επίσης αδύνατος είναι ο πολλαπλασιασµός 3 3 πινάκων µε πολλαπλασιασµούς. Ο P έδειξε πως δύο 70 70 πίνακες µπορούν να πολλαπλασιαστούν µε 43640 πολλαπλασιασµούς ακεραίων. Ακολούθησαν αλγόριθµοι πολυπλοκότητας Ο.583,..., Ο.580, και σήµερα ο πιο γρήγορος γνωστός αλγόριθµος είναι αυτός των Coersmith και Wiogrd 986 πολυπλοκότητας Ο.376. Στην πράξη ο αλγόριθµος του Strsse είναι ο πιο αποδοτικός. ΕΠΛ 3 Αλγόριθµοι και Πολυπλοκότητα -7