Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

ΠΛΗ30 ΜΑΘΗΜΑ 1.4

8,432 views

Published on

1) Αναδρομικοί Αλγόριθμοι.
1.1) Δυαδική Αναζήτηση (Binary Search).
1.2) Ταξινόμηση με Συγχώνευση (Merge Sort).
2) Μεθοδολογία Επίλυσης Αναδρομικών Σχέσεων
2.1) Το Θεώρημα Κυριαρχίας (Master Theorem).
2.2) Μέθοδος Επανάληψης για την επίλυση αναδρομικών σχέσεων.

Published in: Education
  • Be the first to comment

ΠΛΗ30 ΜΑΘΗΜΑ 1.4

  1. 1. ΠΛΗ30 ΕΝΟΤΗΤΑ 1: ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Μάθηµα 1.4: Ανάλυση Αναδροµικών Αλγορίθµων Η αναδροµική σχέση T(n)=aT(n/b)+f(n) ∆ηµήτρης Ψούνης
  2. 2. ΠΕΡΙΕΧΟΜΕΝΑ Α. Σκοπός του Μαθήµατος Β.Θεωρία 1. Αναδροµικοί Αλγόριθµοι 1. Ο αλγόριθµος αναζήτησης BinarySearch 2. Ο αλγόριθµος ταξινόµησης MergeSort 2. Αναδροµικές Σχέσεις Γ. Μεθοδολογία Ασκήσεων 1. Η αναδροµή T(n)=aT(n/b)+f(n) 1. Επίλυση µε το Θεώρηµα Κυριαρχίας 2. Επίλυση µε την Μέθοδο της Επανάληψης ∆.Ασκήσεις 2∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 1.4: Η αναδροµική σχέση T(n)=aT(n/b)+f(n)
  3. 3. Α. Σκοπός του Μαθήµατος Οι στόχοι του µαθήµατος είναι: Επίπεδο Α Το θεώρηµα κυριαρχίας για την επίλυση της αναδροµικής σχέσης T(n)=aT(n/b)+f(n) Επίπεδο Β Η µέθοδος επανάληψης για την επίλυση της αναδροµικής σχέσης T(n)=aT(n/b)+f(n) Επίπεδο Γ Ο αλγόριθµος ταξινόµησης MergeSort Ο αλγόριθµος αναζήτησης BinarySearch 3∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 1.4: Η αναδροµική σχέση T(n)=aT(n/b)+f(n)
  4. 4. Β. Θεωρία 1. Αναδροµικοί Αλγόριθµοι 4∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 1.4: Η αναδροµική σχέση T(n)=aT(n/b)+f(n) Γενικότερα ένας αναδροµικός αλγόριθµος είναι ένας αλγόριθµος ο οποίος υλοποιείται από µία αναδροµική διαδικασία. Αναδροµική λέγεται µια διαδικασία που κατά την διάρκεια της εκτέλεσής της καλεί τον εαυτό της. Η γενική µορφή ενός αναδροµικού κώδικα φαίνεται στο σχήµα. Παρατηρήστε ότι σε κάποιο σηµείο του σώµατος της διαδικασίας πρέπει να γίνεται κλήση στην ίδια την συνάρτηση: Θα µελετήσουµε δύο περίφηµους αναδροµικούς αλγόριθµους: Τον BinarySearch για την αναζήτηση στοιχείου σε µία ακολουθία Τον MergeSort για την ταξινόµηση ενός πίνακα αριθµών procedure recursive(n) ... ... ΚΛΗΣΗ recursive(n-1) ... ... end procedure
  5. 5. Β. Θεωρία 1. Αναδροµικοί Αλγόριθµοι 1. Ο αλγόριθµος αναζήτησης BinarySearch (1.∆ιατύπωση και Λειτουργία) 5∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 1.4: Η αναδροµική σχέση T(n)=aT(n/b)+f(n) BinarySearch ή ∆υαδική Αναζήτηση: Είσοδος: Ταξινόµηµένος πίνακας A, στοιχείο x Έξοδος: Αν το στοιχείο υπάρχει στον πίνακα, επιστρέφεται η θέση του στοιχείου x στον πίνακα Α. Αν το στοιχείο δεν υπάρχει στον πίνακα, επιστρέφεται 0. Λειτουργία του αλγορίθµου: Ο αλγόριθµος εξετάζει το µεσαίο στοιχείο του πίνακα και διακρίνει περιπτώσεις: Αν το µεσαίο στοιχείο είναι το x, επιστρέφει την θέση του. Αν το x είναι µικρότερο από το µεσαίο στοιχείο τότε αναδροµικά ψάχνει στο κοµµάτι του πίνακα από την αρχή µέχρι το µεσαίο στοιχείο Αν το x είναι µεγαλύτερο από το µεσαίο στοιχείο τότε αναδροµικά ψάχνει στο κοµµάτι του πίνακα από το µεσαίο στοιχείο µέχρι το τέλος
  6. 6. Β. Θεωρία 1. Αναδροµικοί Αλγόριθµοι 1. Ο αλγόριθµος αναζήτησης BinarySearch (2. Ψευδοκώδικας) 6∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 1.4: Η αναδροµική σχέση T(n)=aT(n/b)+f(n) Παρακάτω φαίνεται µία υλοποίηση της BinarySearch σε ψευδογλώσσα procedure BinarySearch(A,x,start,finish) if start>finish then return 0 else middle=(start+finish) div 2 if (x==A[middle]) then return middle else if (x<A[middle]) then pos=BinarySearch(A,x,start,middle-1) return pos else if (x>A[middle]) then pos=BinarySearch(A,x,middle+1,finish) return pos end if end if end procedure
  7. 7. Β. Θεωρία 1. Αναδροµικοί Αλγόριθµοι 1. Ο αλγόριθµος αναζήτησης BinarySearch (3. Παράδειγµα Εκτέλεσης) 7∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 1.4: Η αναδροµική σχέση T(n)=aT(n/b)+f(n) Εκτελούµε τον αλγόριθµο ψάχνοντας το στοιχείο 11 στον πίνακα: Κλήση: BinarySearch(A,11,1,15): middle=(1+15) div 2=8. x<A[middle] Αναδροµική Κλήση: BinarySearch(A,11,1,7) : middle=(1+7) div 2=4 x>A[middle] Αναδροµική Κλήση: BinarySearch(A,11,5,7) : middle=(5+7) div 2=6 x<A[middle] Αναδροµική Κλήση: BinarySearch(A,11,5,5) : middle=(5+5) div 2=5 x=A[middle] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 2 3 5 7 11 13 17 21 23 27 31 33 37 41 43 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 2 3 5 7 11 13 17 21 23 27 31 33 37 41 43 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 2 3 5 7 11 13 17 21 23 27 31 33 37 41 43 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 2 3 5 7 11 13 17 21 23 27 31 33 37 41 43 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 2 3 5 7 11 13 17 21 23 27 31 33 37 41 43 start start start start=finish finish finish finish
  8. 8. Β. Θεωρία 1. Αναδροµικοί Αλγόριθµοι 1. Ο αλγόριθµος αναζήτησης BinarySearch (4. Ανάλυση) 8∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 1.4: Η αναδροµική σχέση T(n)=aT(n/b)+f(n) Καλύτερη περίπτωση: είναι όταν το στοιχείο x βρίσκεται ακριβώς στην µεσαία θέση του πίνακα. Η πολυπλοκότητα είναι T(n)=5 άρα ασυµπτωτικά T(n)=Θ(1). Χειρότερη περίπτωση: είναι όταν το στοιχείο x δεν υπάρχει στον πίνακα: Έστω T(n) η πολυπλοκότητα όταν ο πίνακας έχει διάσταση n. Αρχικά θα γίνουν 8 πράξεις µέχρι να γίνει η αναδροµική κλήση (έστω ότι πάντα γίνεται και η 2η αναδροµική κλήση για να έχουµε µία παραπάνω σύγκριση) Έπειτα γίνεται αναδροµική κλήση για πίνακα διάστασης Άρα αφού για διάσταση n, έχουµε χρόνο T(n), για διάσταση θέλουµε χρόνο Έπειτα γίνεται ακόµη 1 πράξη. Άρα η πολυπλοκότητα δίνεται από την αναδροµική σχέση: Ειδικά όταν n=0 τότε γίνεται 1 πράξη (κριτήριο τερµατισµού) 1 2 −   n 1 2 −   n       −     1 2 n T 91 2 )( +      −    = n TnT
  9. 9. Β. Θεωρία 1. Αναδροµικοί Αλγόριθµοι 1. Ο αλγόριθµος αναζήτησης BinarySearch (4. Ανάλυση) 9∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 1.4: Η αναδροµική σχέση T(n)=aT(n/b)+f(n) Τελικά η χειρότερη περίπτωση λύνεται από την αναδροµική σχέση: Επειδή ωστόσο αυτή η σχέση είναι ιδιαίτερα περίπλοκη για να την λύσουµε, την προσεγγίζουµε ως εξής: Το είναι περίπου Άρα προκύπτει η τελική αναδροµική σχέση: Την οποία λύνουµε µε το θεώρηµα κυριαρχίας και προκύπτει ότι η πολυπλοκότητά της είναι:     >+      −      = = 0,91 2 0,1 )( n n T n nT 1 2 −   n 2 n     >+      = = 0,9 2 0,1 )( n n T n nT )(log)( nnT Θ=
  10. 10. Β. Θεωρία 1. Αναδροµικοί Αλγόριθµοι 2. Ο αλγόριθµος ταξινόµησης MergeSort (1.∆ιατύπωση και Λειτουργία) 10∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 1.4: Η αναδροµική σχέση T(n)=aT(n/b)+f(n) MergeSort ή Ταξινόµηση µε Συγχώνευση: Είσοδος: πίνακας (αριθµών) A µε n στοιχεία Έξοδος: ταξινόµηση των στοιχείων του πίνακα σε αύξουσα σειρά Λειτουργία του αλγορίθµου: Ο αλγόριθµος: Ταξινοµεί το αριστερό κοµµάτι του πίνακα Ταξινοµεί το δεξί κοµµάτι του πίνακα Συγχωνεύει τα δύο ταξινοµηµένα πλέον κοµµάτια σε µία ταξινοµηµένη ακολουθία Η ταξινόµηση κάθε κοµµατιού γίνεται µε αναδροµική κλήση της ίδιας διαδικασίας.
  11. 11. Β. Θεωρία 1. Αναδροµικοί Αλγόριθµοι 2. Ο αλγόριθµος ταξινόµησης MergeSort (2. Ψευδοκώδικας) 11∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 1.4: Η αναδροµική σχέση T(n)=aT(n/b)+f(n) Παρακάτω φαίνεται µία υλοποίηση της MergeSort σε ψευδογλώσσα Το κριτήριο τερµατισµού της αναδροµής είναι όταν ο πίνακας έχει το πολύ 2 στοιχεία. Γίνονται 2 αναδροµικές κλήσεις για την ταξινόµηση του αριστερού και του δεξιού κοµµατιού αντίστοιχα. Έπειτα γίνεται συγχώνευση των δύο ακολουθιών µε την διαδικασία Merge procedure MergeSort(A,start, finish) if |A|<=2 then Ταξινόµησε τον Α else middle=(start+finish) div 2 A1=MergeSort(A,start,middle) A2=MergeSort(A,middle+1,finish) A=Merge(A1,A2) end if end procedure
  12. 12. Β. Θεωρία 1. Αναδροµικοί Αλγόριθµοι 2. Ο αλγόριθµος ταξινόµησης MergeSort (2. Ψευδοκώδικας) 12∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 1.4: Η αναδροµική σχέση T(n)=aT(n/b)+f(n) Η διαδικασία Merge για την συγχώνευση δύο ήδη ταξινοµηµένων πινάκων µπορεί να υλοποιηθεί ως εξής: Παραπάνω θεωρούµε το |Α|=n, |B|=m procedure Merge(A,Β) i=1, j=1, k=1 while (i<=n AND j<=m) if (ai<bj) then ck=ai ; i=i+1 else ck=bj ; j=j+1 end if k=k+1 end while Όσα στοιχεία του Α ή του B περισσεψαν τα βάζουµε στο τέλος του C return C end procedure
  13. 13. Β. Θεωρία 1. Αναδροµικοί Αλγόριθµοι 2. Ο αλγόριθµος ταξινόµησης MergeSort (3. Παράδειγµα Εκτέλεσης) 13∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 1.4: Η αναδροµική σχέση T(n)=aT(n/b)+f(n) Αναδροµική Κλήση MergeSort(Α,1,16) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 18 7 4 11 9 20 6 1 22 19 14 5 2 9 10 13
  14. 14. Β. Θεωρία 1. Αναδροµικοί Αλγόριθµοι 2. Ο αλγόριθµος ταξινόµησης MergeSort (3. Παράδειγµα Εκτέλεσης) 14∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 1.4: Η αναδροµική σχέση T(n)=aT(n/b)+f(n) Αναδροµική Κλήση MergeSort(Α,1,16) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 18 7 4 11 9 20 6 1 22 19 14 5 2 3 10 13 1 2 3 4 5 6 7 8 18 7 4 11 9 20 6 1 9 10 11 12 13 14 15 16 22 19 14 5 2 3 10 13
  15. 15. Β. Θεωρία 1. Αναδροµικοί Αλγόριθµοι 2. Ο αλγόριθµος ταξινόµησης MergeSort (3. Παράδειγµα Εκτέλεσης) 15∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 1.4: Η αναδροµική σχέση T(n)=aT(n/b)+f(n) Αναδροµική Κλήση (A,1,8) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 18 7 4 11 9 20 6 1 22 19 14 5 2 3 10 13 1 2 3 4 5 6 7 8 18 7 4 11 9 20 6 1 9 10 11 12 13 14 15 16 22 19 14 5 2 3 10 13 1 2 3 4 18 7 4 11 5 6 7 8 9 20 6 1
  16. 16. Β. Θεωρία 1. Αναδροµικοί Αλγόριθµοι 2. Ο αλγόριθµος ταξινόµησης MergeSort (3. Παράδειγµα Εκτέλεσης) 16∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 1.4: Η αναδροµική σχέση T(n)=aT(n/b)+f(n) Αναδροµική Κλήση (A,1,4) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 18 7 4 11 9 20 6 1 22 19 14 5 2 3 10 13 1 2 3 4 5 6 7 8 18 7 4 11 9 20 6 1 9 10 11 12 13 14 15 16 22 19 14 5 2 3 10 13 1 2 3 4 18 7 4 11 5 6 7 8 9 20 6 1 1 2 18 7 3 4 4 11
  17. 17. Β. Θεωρία 1. Αναδροµικοί Αλγόριθµοι 2. Ο αλγόριθµος ταξινόµησης MergeSort (3. Παράδειγµα Εκτέλεσης) 17∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 1.4: Η αναδροµική σχέση T(n)=aT(n/b)+f(n) Αναδροµική Κλήση (A,1,2): Ταξινοµηση του υποπίνακα 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 18 7 4 11 9 20 6 1 22 19 14 5 2 3 10 13 1 2 3 4 5 6 7 8 18 7 4 11 9 20 6 1 9 10 11 12 13 14 15 16 22 19 14 5 2 3 10 13 1 2 3 4 18 7 4 11 5 6 7 8 9 20 6 1 1 2 7 18 3 4 4 11
  18. 18. Β. Θεωρία 1. Αναδροµικοί Αλγόριθµοι 2. Ο αλγόριθµος ταξινόµησης MergeSort (3. Παράδειγµα Εκτέλεσης) 18∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 1.4: Η αναδροµική σχέση T(n)=aT(n/b)+f(n) Αναδροµική Κλήση (A,3,4): Ταξινοµηση του υποπίνακα 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 18 7 4 11 9 20 6 1 22 19 14 5 2 3 10 13 1 2 3 4 5 6 7 8 18 7 4 11 9 20 6 1 9 10 11 12 13 14 15 16 22 19 14 5 2 3 10 13 1 2 3 4 18 7 4 11 5 6 7 8 9 20 6 1 1 2 7 18 3 4 4 11
  19. 19. Β. Θεωρία 1. Αναδροµικοί Αλγόριθµοι 2. Ο αλγόριθµος ταξινόµησης MergeSort (3. Παράδειγµα Εκτέλεσης) 19∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 1.4: Η αναδροµική σχέση T(n)=aT(n/b)+f(n) Αναδροµική Κλήση (A,1,4): Συγχώνευση των δύο υποπινάκων 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 18 7 4 11 9 20 6 1 22 19 14 5 2 3 10 13 1 2 3 4 5 6 7 8 18 7 4 11 9 20 6 1 9 10 11 12 13 14 15 16 22 19 14 5 2 3 10 13 1 2 3 4 4 7 11 18 5 6 7 8 9 20 6 1 1 2 7 18 3 4 4 11
  20. 20. Β. Θεωρία 1. Αναδροµικοί Αλγόριθµοι 2. Ο αλγόριθµος ταξινόµησης MergeSort (3. Παράδειγµα Εκτέλεσης) 20∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 1.4: Η αναδροµική σχέση T(n)=aT(n/b)+f(n) Αναδροµική Κλήση (A,5,8) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 18 7 4 11 9 20 6 1 22 19 14 5 2 3 10 13 1 2 3 4 5 6 7 8 18 7 4 11 9 20 6 1 9 10 11 12 13 14 15 16 22 19 14 5 2 3 10 13 1 2 3 4 4 7 11 18 5 6 7 8 9 20 6 1 1 2 7 18 3 4 4 11 5 6 9 20 7 8 6 1
  21. 21. Β. Θεωρία 1. Αναδροµικοί Αλγόριθµοι 2. Ο αλγόριθµος ταξινόµησης MergeSort (3. Παράδειγµα Εκτέλεσης) 21∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 1.4: Η αναδροµική σχέση T(n)=aT(n/b)+f(n) Αναδροµική Κλήση (A,5,6): Ταξινοµηση του υποπίνακα 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 18 7 4 11 9 20 6 1 22 19 14 5 2 3 10 13 1 2 3 4 5 6 7 8 18 7 4 11 9 20 6 1 9 10 11 12 13 14 15 16 22 19 14 5 2 3 10 13 1 2 3 4 4 7 11 18 5 6 7 8 9 20 6 1 1 2 7 18 3 4 4 11 5 6 9 20 7 8 6 1
  22. 22. Β. Θεωρία 1. Αναδροµικοί Αλγόριθµοι 2. Ο αλγόριθµος ταξινόµησης MergeSort (3. Παράδειγµα Εκτέλεσης) 22∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 1.4: Η αναδροµική σχέση T(n)=aT(n/b)+f(n) Αναδροµική Κλήση (A,7,8): Ταξινοµηση του υποπίνακα 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 18 7 4 11 9 20 6 1 22 19 14 5 2 3 10 13 1 2 3 4 5 6 7 8 18 7 4 11 9 20 6 1 9 10 11 12 13 14 15 16 22 19 14 5 2 3 10 13 1 2 3 4 4 7 11 18 5 6 7 8 9 20 6 1 1 2 7 18 3 4 4 11 5 6 9 20 7 8 1 6
  23. 23. Β. Θεωρία 1. Αναδροµικοί Αλγόριθµοι 2. Ο αλγόριθµος ταξινόµησης MergeSort (3. Παράδειγµα Εκτέλεσης) 23∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 1.4: Η αναδροµική σχέση T(n)=aT(n/b)+f(n) Αναδροµική Κλήση (A,5,8): Συγχώνευση των δύο υποπινάκων 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 18 7 4 11 9 20 6 1 22 19 14 5 2 3 10 13 1 2 3 4 5 6 7 8 18 7 4 11 9 20 6 1 9 10 11 12 13 14 15 16 22 19 14 5 2 3 10 13 1 2 3 4 4 7 11 18 5 6 7 8 1 6 9 20 1 2 7 18 3 4 4 11 5 6 9 20 7 8 1 6
  24. 24. Β. Θεωρία 1. Αναδροµικοί Αλγόριθµοι 2. Ο αλγόριθµος ταξινόµησης MergeSort (3. Παράδειγµα Εκτέλεσης) 24∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 1.4: Η αναδροµική σχέση T(n)=aT(n/b)+f(n) Αναδροµική Κλήση (A,1,8): Συγχώνευση των δύο υποπινάκων 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 18 7 4 11 9 20 6 1 22 19 14 5 2 3 10 13 1 2 3 4 5 6 7 8 1 4 6 7 9 11 18 20 9 10 11 12 13 14 15 16 22 19 14 5 2 3 10 13 1 2 3 4 4 7 11 18 5 6 7 8 1 6 9 20 1 2 7 18 3 4 4 11 5 6 9 20 7 8 1 6
  25. 25. Β. Θεωρία 1. Αναδροµικοί Αλγόριθµοι 2. Ο αλγόριθµος ταξινόµησης MergeSort (3. Παράδειγµα Εκτέλεσης) 25∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 1.4: Η αναδροµική σχέση T(n)=aT(n/b)+f(n) Αντίστοιχα θα γίνουν όλες οι αναδροµικές κλήσεις στο (9,16) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 18 7 4 11 9 20 6 1 22 19 14 5 2 3 10 13 1 2 3 4 5 6 7 8 1 4 6 7 9 11 18 20 9 10 11 12 13 14 15 16 2 3 5 10 13 14 19 22 1 2 3 4 4 7 11 18 5 6 7 8 1 6 9 20 1 2 7 18 3 4 4 11 5 6 9 20 7 8 1 6 9 10 11 12 5 14 19 22 13 14 15 16 2 3 10 13 9 10 19 22 11 12 5 14 13 14 2 3 15 16 10 13
  26. 26. Β. Θεωρία 1. Αναδροµικοί Αλγόριθµοι 2. Ο αλγόριθµος ταξινόµησης MergeSort (3. Παράδειγµα Εκτέλεσης) 26∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 1.4: Η αναδροµική σχέση T(n)=aT(n/b)+f(n) Αναδροµική Κλήση (A,1,16): Συγχώνευση των δύο υποπινάκων 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 2 3 4 5 6 7 9 10 11 13 14 18 19 20 22 1 2 3 4 5 6 7 8 1 4 6 7 9 11 18 20 9 10 11 12 13 14 15 16 2 3 5 10 13 14 19 22 1 2 3 4 4 7 11 18 5 6 7 8 1 6 9 20 1 2 7 18 3 4 4 11 5 6 9 20 7 8 1 6 9 10 11 12 5 14 19 22 13 14 15 16 2 3 10 13 9 10 19 22 11 12 5 14 13 14 2 3 15 16 10 13
  27. 27. Β. Θεωρία 1. Αναδροµικοί Αλγόριθµοι 2. Ο αλγόριθµος ταξινόµησης MergeSort (4. Ανάλυση) 27∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 1.4: Η αναδροµική σχέση T(n)=aT(n/b)+f(n) Η πολυπλοκότητα της συνάρτησης Merge είναι: Άρα η πολυπλοκότητα της MergeSort είναι: Η οποία είναι ιδαίτερα περίπλοκη γι΄αυτό θεωρούµε ότι Άρα απλοποιείται ως: Η οποία λύνεται από το Θ.Κυριαρχίας και προκύπτει: Τ(n)=Θ(nlogn)      >Θ+          +          ==Θ = 2),( 22 21),1( )( nn n T n T nήn nT 222 nnn ≈    =        >Θ+      ==Θ = 2),( 2 2 21),1( )( nn n T nήn nT )()( mnnT +Θ=
  28. 28. Γ. Μεθοδολογία Ασκήσεων 1. Η αναδροµή T(n)=aT(n/b)+f(n) 28∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 1.4: Η αναδροµική σχέση T(n)=aT(n/b)+f(n) Για την επίλυση της αναδροµικής σχέσης T(n)=aT(n/b)+f(n) υπάρχουν δύο τρόποι: Το θεώρηµα κυριαρχίας, το οποίο µε εύκολο τρόπο µας δίνει µια ασυµπτωτική εκτίµηση της πολυπλοκότητας Η µέθοδος επανάληψης, µας δίνει την ακριβή συνάρτηση πολυπλοκότητας (άρα µπορούµε να εξάγουµε και ασυµπτωτική εκτίµηση). Συνεπώς: Αν µας ζητείται απλά η λύση της αναδροµής, προτιµάµε το θεώρηµα κυριαρχίας. Αν µας ζητείται ακριβής συνάρτηση πολυπλοκότητας απαιτείται η µέθοδος επανάληψης Αν µας ζητείται ασυµπτωτική εκτίµηση της συνάρτησης πολυπλοκότητας προτιµάµε το θεώρηµα κυριαρχίας Αν το θεώρηµα κυριάρχίας αποτύχει (µπορεί να συµβεί στην 2η συνθήκη της 3ης περίπτωσης του Θ.Κ.) τότε αναγκαστικά χρησιµοποιούµε την µέθοδο επανάληψης.
  29. 29. Γ. Μεθοδολογία Ασκήσεων 1. Η αναδροµή T(n)=aT(n/b)+f(n) 1. Επίλυση µε το θεώρηµα κυριαρχίας 29∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 1.4: Η αναδροµική σχέση T(n)=aT(n/b)+f(n) Το θεώρηµα Κυριαρχίας (Master Theorem) είναι το εξής: Θεώρηµα Κυριαρχίας: Έστω η αναδροµική εξίσωση όπου a≥1, b>1 είναι σταθερές, και f(n) είναι µια ασυµπτωτικά θετική συνάρτηση. Τότε διακρίνονται οι ακόλουθες τρεις περιπτώσεις: Α) Αν για κάποια σταθερά ε>0, τότε: Β) Αν τότε: Γ) Αν για κάποια σταθερά ε>0 και για κάποια σταθερά c<1, τότε: )()( log ε− = ab nOnf )()( nf b n aTnT +      = ( )ab nnT log )( Θ= )()( log ab nnf Θ= ( )nnnT ab log)( log ⋅Θ= )()( log ε+ Ω= ab nnf )(nfc b n fa ⋅≤      ⋅ ( ))()( nfnT Θ=
  30. 30. Γ. Μεθοδολογία Ασκήσεων 1. Η αναδροµή T(n)=aT(n/b)+f(n) 1. Επίλυση µε το θεώρηµα κυριαρχίας 30∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 1.4: Η αναδροµική σχέση T(n)=aT(n/b)+f(n) Για την επίλυση µε το θεώρηµα της κυριαρχίας εργαζόµαστε ως εξής: Εντοπίζουµε από την εκφώνηση τα a,b και f(n) Υπόλογίζουµε το logba. Συγκρίνουµε ασυµπτωτικά το f(n) µε την και: Αν είµαστε στην Α’ περίπτωση Αν είµαστε στην B’ περίπτωση Αν είµαστε στην Γ’ περίπτωση (ΠΡΟΣΟΧΗ! Ότι πρέπει να ελέγξουµε και την 2η συνθήκη) ab nnf log )( < ab nnf log )( = ab nnf log )( > ab nlog
  31. 31. Γ. Μεθοδολογία Ασκήσεων 1. Η αναδροµή T(n)=aT(n/b)+f(n) 1. Επίλυση µε το θεώρηµα κυριαρχίας (Α’ περίπτωση) 31∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 1.4: Η αναδροµική σχέση T(n)=aT(n/b)+f(n) Εφόσον είµαστε στην Α’ περίπτωση διατυπώνουµε τελικά την απόδειξη σύµφωνα µε τον ορισµό: ΠΑΡΑ∆ΕΙΓΜΑ: Να λύσετε την αναδροµή: Λύση: Έχω: Ισχύει: για κάποια σταθερά ε>0 Άρα από την Α’ περίπτωση του Θεωρήµατος Κυριαρχίας έπεται ότι: n n TnT +      = 2 8)( )()( 3 ε− == nOnnf )()( 3 nnT Θ= 38loglog,)(,2,8 2 ===== annfba b
  32. 32. Γ. Μεθοδολογία Ασκήσεων 1. Η αναδροµή T(n)=aT(n/b)+f(n) 1. Επίλυση µε το θεώρηµα κυριαρχίας (Β’ περίπτωση) 32∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 1.4: Η αναδροµική σχέση T(n)=aT(n/b)+f(n) Εφόσον είµαστε στην Β’ περίπτωση διατυπώνουµε τελικά την απόδειξη σύµφωνα µε τον ορισµό: ΠΑΡΑ∆ΕΙΓΜΑ: Να λύσετε την αναδροµή: Λύση: Έχω: Ισχύει: Άρα από την Β’ περίπτωση του Θεωρήµατος Κυριαρχίας έπεται ότι: 2 3 9)( n n TnT +      = )()( 22 nnnf Θ== )log()( 2 nnnT Θ= 29loglog,)(,3,9 3 2 ===== annfba b
  33. 33. Γ. Μεθοδολογία Ασκήσεων 1. Η αναδροµή T(n)=aT(n/b)+f(n) 1. Επίλυση µε το θεώρηµα κυριαρχίας (Γ’ περίπτωση) 33∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 1.4: Η αναδροµική σχέση T(n)=aT(n/b)+f(n) Στην Γ’ περίπτωση πρέπει να ελέγξουµε και την 2η συνθήκη, δηλαδή να αναζητήσουµε c>0 τέτοια ώστε . Η εύρεση του εύρους τιµών για το c γίνεται αντικαθιστώντας τα a, b και την τιµή των f(n) και f(n/b). ΠΑΡΑ∆ΕΙΓΜΑ: Να λύσετε την αναδροµή: Λύση: Έχω: Ισχύει: για κάποια σταθερά ε>0 Ελέγχω αν υπάρχει c<1 τέτοιο ώστε: Άρα ισχύει για ½≤c<1. Άρα από την Γ’ περίπτωση του Θεωρήµατος Κυριαρχίας έπεται ότι: 3 2 4)( n n TnT +      = )()( 23 ε+ Ω== nnnf )()( 3 nnT Θ= 24loglog,)(,2,4 2 3 ===== annfba b )(nfc b n fa ⋅≤      ⋅ cccn n cn n ncf n fncf b n af ≤⇔≤⇔≤⇔≤      ⇔≤      ⇔≤      2 1 8 4 2 4 2 4)( 2 4)( 3 3 3 3 3
  34. 34. Γ. Μεθοδολογία Ασκήσεων 1. Η αναδροµή T(n)=aT(n/b)+f(n) 2. Επίλυση µε την µέθοδο επανάληψης 34∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 1.4: Η αναδροµική σχέση T(n)=aT(n/b)+f(n) Η µέθοδος επανάληψης είναι µία µέθοδος υπολογισµού της συνάρτησης πολυπλοκότητας µιας αναδροµής της µορφής T(n)=aT(n/b)+f(n), η οποία γίνεται µε τα εξής βήµατα: ΒΗΜΑΤΑ ΤΗΣ ΜΕΘΟ∆ΟΥ ΕΠΑΝΑΛΗΨΗΣ 1. Κάνουµε 3 εφαρµογές της αναδροµικής σχέσης (Μέχρι να φτάσουµε στην µορφή ) 2. Εκτίµηση της σειράς που προκύπτει µετά από k επαναλήψεις (Μας καθοδηγεί ο όρος ) 3. Υπολογίζουµε πότε σταµατάει η αναδροµή (Θέτω όπου n0 η συνθήκη τερµατισµού της αναδροµής και λύνουµε ως προς k). Π.χ. αν n0=1 τότε k=logbn 4. Αντικατάσταση του k στον αναδροµικό τύπο του βήµατος 2. 5. Υπολογισµός του αθροίσµατος που προέκυψε. .......)( 3 +      ⋅= b n TnT .......)( +      ⋅= k b n TnT 0n b n k =
  35. 35. Γ. Μεθοδολογία Ασκήσεων 1. Η αναδροµή T(n)=aT(n/b)+f(n) 2. Επίλυση µε την µέθοδο επανάληψης (Βήµα 1: 3 εφαρµογές του κανόνα) 35∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 1.4: Η αναδροµική σχέση T(n)=aT(n/b)+f(n) Στο 1ο βήµα εφαρµόζουµε τον αναδροµικό κανόνα 3 φορές και κάνουµε τις πράξεις που προκύπτουν. Βοηθητικά στο πρόχειρο, υπολογίζουµε τους αναδροµικούς όρους µε αντικατάσταση στην αναδροµή ΠΑΡΑ∆ΕΙΓΜΑ: Να λύσετε την αναδροµή: Λύση:     = >+      = 1,1 1, 3 5 )( n nn n T nT αν αν =+++      =++      +      = ++      =+      +      = +      = n nnn Tn nnn T n nn Tn nn T n n TnT 3 5 3 5 3 5 3 5 33 55 3 5 3 5 33 55 3 5)( 2 2 3 3 23 2 2 2 2 232 2 33 5 3 33 5 3 3 5)( nn T n T nn T n T n n TnT +      =      +      =      +      = ΠΡΟΧΕΙΡΟ
  36. 36. Γ. Μεθοδολογία Ασκήσεων 1. Η αναδροµή T(n)=aT(n/b)+f(n) 2. Επίλυση µε την µέθοδο επανάληψης (Βήµα 2: Εκτίµηση στο βήµα k) 36∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 1.4: Η αναδροµική σχέση T(n)=aT(n/b)+f(n) Στο 2ο βήµα εκτιµάµε την σειρά που θα προκύψει µετά από k επαναλήψεις (Μας καθοδηγεί ο όρος (pσυνέχειαp) n nnnn T n nnn T k k k k +++++      = == =+++      = − − 3 5 3 5... 3 5 3 5 ... 3 5 3 5 3 5 2 2 1 1 2 2 3 3 .......)( +      ⋅= k b n TnT
  37. 37. Γ. Μεθοδολογία Ασκήσεων 1. Η αναδροµή T(n)=aT(n/b)+f(n) 2. Επίλυση µε την µέθοδο επανάληψης (Βήµα 3: Υπολογισµός του k) 37∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 1.4: Η αναδροµική σχέση T(n)=aT(n/b)+f(n) Υπολογίζουµε πότε σταµατάει η αναδροµή (Θέτω όπου n0 η συνθήκη τερµατισµού της αναδροµής και λύνουµε ως προς k). (pσυνέχειαp) Η αναδροµή σταµατά όταν 0n b n k = nk kn n n n k k k 3 33 33 log 3loglog 3loglog 3 1 3 = ⇒= ⇒= ⇒= ⇒=
  38. 38. Γ. Μεθοδολογία Ασκήσεων 1. Η αναδροµή T(n)=aT(n/b)+f(n) 2. Επίλυση µε την µέθοδο επανάληψης (Βήµα 4: Αντικατάσταση του k) 38∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 1.4: Η αναδροµική σχέση T(n)=aT(n/b)+f(n) Αντικαθιστούµε το k που βρήκαµε στην παράσταση που προέκυψε στο βήµα 2. Θα πρέπει να απαλειφθεί ο αναδροµικός όρος µε την συνθήκη τερµατισµού της αναδροµής. (pσυνέχειαp) Θέτοντας k=log3n στην Τ(n) έχουµε: ( ) n nnn n nnn T n nnnn TnT n nn n nn n n n n +++++= +++++= +++++      = − − − − − − 3 5 3 5... 3 55 3 5 3 5... 3 515 3 5 3 5... 3 5 3 5)( 2 2 1log 1loglog 2 2 1log 1loglog 2 2 1log 1log log log 3 33 3 33 3 3 3 3
  39. 39. Γ. Μεθοδολογία Ασκήσεων 1. Η αναδροµή T(n)=aT(n/b)+f(n) 2. Επίλυση µε την µέθοδο επανάληψης (Βήµα 5: Υπολογισµός του αθροίσµατος) 39∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 1.4: Η αναδροµική σχέση T(n)=aT(n/b)+f(n) Υπολογίζουµε το άθροισµα που προκύπτει. Στην µέθοδο επανάληψης προκύπτει πάντα γεωµετρική πρόοδος στις σταθερές που εµφανίζονται και γι’ αυτό είναι χρήσιµη η σχέση: (pσυνέχειαp) Άρα nnn nn n n nnn n n nnn nT nn n n n i inn i i n n i i i nn i i in n nn n nn 5,166,15,15 166,1 166,1 5 66,15 3 5 5 3 5 5 3 55 3 5... 3 5 3 55 3 5 3 5... 3 55)( 33 3 3 3333 3333 3 33 3 33 loglog 11log log 1log 0 log1log 0 log 1log 0 log1log 0 log 1log 1log 2 2log 2 2 1log 1loglog −⋅⋅+= − − += =+=      += =+=+= =    +++++= =+++++= +− − = − = − = − = − − − − ∑∑ ∑∑ ∑= + − − = n i n i x x x 0 1 1 1 nnnT nn 5,166,15,15)( 33 loglog −⋅⋅+=
  40. 40. ∆. Ασκήσεις Εφαρµογή 1 Υπολογίστε µία ασυµπτωτική εκτίµηση της πολυπλοκότητας των αναδροµών: 40∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 1.4: Η αναδροµική σχέση T(n)=aT(n/b)+f(n) 4 3 2 2 8)() 2 8)() 2 8)() n n TnTC n n TnTB n n TnTA +      = +      = +      =
  41. 41. ∆. Ασκήσεις Εφαρµογή 2 Λύστε τις αναδροµές: 41∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 1.4: Η αναδροµική σχέση T(n)=aT(n/b)+f(n) 3 2 2 5)() 2 5)() n n TnTB n n TnTA +      = +      =
  42. 42. ∆. Ασκήσεις Εφαρµογή 3 Υπολογίστε την ακριβή πολυπλοκότητα των αναδροµών: 42∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 1.4: Η αναδροµική σχέση T(n)=aT(n/b)+f(n)     = >+      =     = >+      = 1,1 1, 3 4 )() 1,1 1, 2 6 )() 2 n nn n T nTB n nn n T nTA αν αν αν αν
  43. 43. Παράρτηµα 1. Η µέθοδος της αντικατάστασης 3. Εντοπισµός Άνω Φράγµατος 43∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 1.4: Η αναδροµική σχέση T(n)=aT(n/b)+f(n) Στην µέθοδο της αντικατάστασης: «Μαντεύουµε» τη λύση της αναδροµής. Επαληθεύουµε ότι η λύση που µαντέψαµε είναι ορθή (µε µαθηµατική επαγωγή) αντικαθιστώντας την στον ορισµό του ασυµπτωτικού συµβολισµού. ΒΗΜΑΤΑ ΤΗΣ ΜΕΘΟ∆ΟΥ ΑΝΤΙΚΑΤΑΣΤΑΣΗΣ ( π.χ. για ) 1. Μαντεύουµε (ή µας δίνεται) η λύση της αναδροµικής σχέσης. [πχ ] 2. Άνω Φράγµα: Επαληθεύουµε ότι βρίσκοντας κατάλληλα c1,n1 έτσι ώστε η σχέση να ισχύει επαγωγικά. 3. Κάτω Φράγµα: Επαληθεύουµε ότι βρίσκοντας κατάλληλα c2,n2 έτσι ώστε η σχέση να ισχύει επαγωγικά. 4. Συνεπώς ισχύει µε την επιλογή των c1,c2 και θέτοντας n0=max{n1,n2} Παρατήρηση: Η µαντεψιά της λύσης της αναδροµής: • Είτε εντοπίζεται λόγω µεγάλης εµπειρίας στη λύση αναδροµικών σχέσεων. • Είτε, συνηθέστερα, µας δίνεται στην εκφώνηση.
  44. 44. Παράρτηµα 1. Η µέθοδος της αντικατάστασης 2. Παράδειγµα 44∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 1.4: Η αναδροµική σχέση T(n)=aT(n/b)+f(n) ΠΑΡΑ∆ΕΙΓΜΑ 1: Να επαληθεύσετε ότι η λύση της αναδροµής: Τ n 2 , 1 1. 0 1 είναι Τ n Θ nlogn Λύση: Κάτω Φράγµα: Αναζητούµε $ , 0 έτσι ώστε: Τ n 2 % 2c '() c log * log 2 c '() * $ % c '() 1 * $ Συνεπώς απαιτείται 1 * $ % 0, έτσι ώστε: Τ n % $ '() , άρα πρέπει $ 1, ώστε: Τ % c '() Για την βάση της επαγωγής: • n 1: Τ 1 1 % $ ⋅ 1 ⋅ log 1 0. Ισχύει για ./01 $ • n 2: Τ 2 4 % $ ⋅ 2 ⋅ log 2 $ ⋅ 2. Ισχύει για $ 2 • n 3: Τ 3 10 % $ ⋅ 3 ⋅ log3 $ ⋅ 4,75. Ισχύει για $ 2,1. Συνεπώς ισχύει για % 1, c 1.
  45. 45. Παράρτηµα 1. Η µέθοδος της αντικατάστασης 2. Παράδειγµα 45∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 1.4: Η αναδροµική σχέση T(n)=aT(n/b)+f(n) ΠΑΡΑ∆ΕΙΓΜΑ 1: Να επαληθεύσετε ότι η λύση της αναδροµής: Τ n 2 , 1 1. 0 1 είναι Τ n Θ nlogn Λύση(;συνέχεια;): Άνω Φράγµα: Αναζητούµε $6, 6 0 έτσι ώστε: Τ n 2 2c6 '() c6 log * log 2 c6 '() * $6 c6 '() 1 * $6 Συνεπώς απαιτείται 1 * $6 0, έτσι ώστε: Τ n $6 '() , άρα πρέπει $6 % 1, ώστε: Τ c6 '() Για την βάση της επαγωγής: • n 1: Τ 1 1 $6 ⋅ 1 ⋅ log 1 0. ∆εν ισχύει. • n 2: Τ 2 4 $6 ⋅ 2 ⋅ log 2 $6 ⋅ 2. Ισχύει για $6 % 2 • 3: Τ 3 10 $6 ⋅ 3 ⋅ log 3 $6 ⋅ 4,75. Ισχύει για $6 % 2,1. Συνεπώς ισχύει για 6 % 2, $6 % 2,1 Άρα T n Θ nlogn µε 8 % 2, c6 % 2,1, c 1.
  46. 46. Παράρτηµα 1. Η µέθοδος της αντικατάστασης 3. Εντοπισµός Άνω Φράγµατος 46∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 1.4: Η αναδροµική σχέση T(n)=aT(n/b)+f(n) Πιο συχνή είναι η εφαρµογή της µεθόδου αντικατάστασης για τον εντοπισµό άνω φράγµατος. Θα δούµε µερικά παραδείγµατα: ΠΑΡΑ∆ΕΙΓΜΑ 2: Να επαληθεύσετε ότι για την αναδροµική σχέση: Τ n 2 , 1 1. 1 ισχύει Τ n O nlogn Λύση: Τ n 2 2$ '() 2$ '() $ '() $ '() * $ '()2 $ '() 1 * $ Άρα πρέπει c % 1 Για την βάση της επαγωγής: • n 1: Τ 1 1 $ ⋅ 1 ⋅ log 1 0. ∆εν ισχύει. • n 2: Τ 2 4 $ ⋅ 2 ⋅ log 2 $ ⋅ 2. Ισχύει για $ % 2 • n 3: Τ 3 5 $ ⋅ 3 ⋅ log 3 $ ⋅ 4,75. Ισχύει για $ % 1,05. Συνεπώς ισχύει για 8 % 2, $ % 2.
  47. 47. Παράρτηµα 1. Η µέθοδος της αντικατάστασης 3. Εντοπισµός Άνω Φράγµατος 47∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 1.4: Η αναδροµική σχέση T(n)=aT(n/b)+f(n) ΠΑΡΑ∆ΕΙΓΜΑ 3: Να επαληθεύσετε ότι για την αναδρ. σχέση: Τ n 1 µε Τ 1 1, ισχύει Τ n Ο n Προσπάθεια Λύσης: Αναζητούµε $, 8 0 έτσι ώστε: Τ n 1 $ $ 1 $ 1 Αποτυχία επίλυσης, διότι έπρεπε Τ n cn Λύση: Μαντεύουμε ότι $ * F Τ n 1 $ * F $ * F 1 $ * 2F 1 Αρκεί λοιπόν *2F 1 G 0 άρα F 6 . Π.χ. για b=1/2 ισχύει για κάθε $ % 0. Για την βάση της επαγωγής: • n 1: Τ 1 1 $ ⋅ 1. Ισχύει για c % 1. • n 2: Τ 2 3 $ ⋅ 2. Ισχύει για $ % 1,5 • 3: Τ 3 5 $ ⋅ 3. Ισχύει για $ % 1,67. Συνεπώς ισχύει για % 1, $ % 1,67 Άρα T n Θ nlogn µε 8 % 2, c6 % 2,1, c 1.
  48. 48. Ασκήσεις Εφαρµογή 4 Έστω αναδροµικός αλγόριθµος που για να επιλύσει ένα πρόβληµα µε n δεδοµένα, επιλύει 3 υποπροβλήµατα µε n/3 δεδοµένα και έπειτα συνδυάζει τις λύσεις σε χρόνο 12n. Λύστε την αναδροµική σχέση που εκφράζει την πολυπλοκότητα του προβλήµατος. Επαληθεύστε την απάντηση για τον χρόνο εκτέλεσης, µε τη µέθοδο της αντικατάστασης, προσδιορίζοντας επακριβώς τη σταθερά n0 και εκείνες (c1, c2) του ασυµπτωτικού συµβολισµού. Ως αρχική συνθήκη, ισχύει ότι Τ(x)=1, για κάθε 0≤x≤1 48∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 1.4: Η αναδροµική σχέση T(n)=aT(n/b)+f(n)

×