1) Η αναδρομή Τ(n)=aT(n-b)+c
1.1) Επίλυση με την Μέθοδο της Επανάληψης
2) Η αναδρομή Τ(n)=T(n-1)+f(n)
2.1) Επίλυση με την Μέθοδο της Επανάληψης
3) Η αναδρομή T(n)=T(n/a)+T(n/b)+f(n)
3.1) Επίλυση με τη Μέθοδο των Φραγμάτων
3.2) Επίλυση με το Δένδρο Αναδρομής
3.3) Επίλυση με τη Δραστηριότητα 3.6
Ασκήσεις
1. ΠΛΗ30
ΕΝΟΤΗΤΑ 1: ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ
Μάθηµα 1.5:
Η αναδροµική σχέση T(n)=aT(n-b)+f(n)
Η αναδροµική σχέση T(n)=T(n/a)+T(n/b)+f(n)Η αναδροµική σχέση T(n)=T(n/a)+T(n/b)+f(n)
∆ηµήτρης Ψούνης
2. ΠΕΡΙΕΧΟΜΕΝΑ
Α. Σκοπός του Μαθήµατος
B. Μεθοδολογία Ασκήσεων
1. Η αναδροµή T(n)=aT(n-b)+c
1. Επίλυση µε τη Μέθοδο της Επανάληψης
2. Η αναδροµή T(n)=T(n-1)+f(n)
1. Επίλυση µε τη Μέθοδο της Επανάληψης
2∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 1.5: T(n)=T(n/a)+T(n/b)+f(n) και T(n)=aT(n-b)+f(n)
3. Η αναδροµή T(n)=T(n/a)+T(n/b)+f(n)
1. Επίλυση µε τη Μέθοδο των Φραγµάτων
2. Επίλυση µε το ∆ένδρο της Αναδροµής
3. Επίλυση µε την ∆ραστ.3.6
Γ.Ασκήσεις
3. Α. Σκοπός του Μαθήµατος
Οι στόχοι του µαθήµατος είναι:
Επίπεδο Α
Η δραστηριότητα 3.6 για την επίλυση της T(n)=T(n/a)+T(n/b)+f(n)
Η µέθοδος επανάληψης για την επίλυση της T(n)=T(n-1)+f(n)
Επίπεδο Β
3∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 1.5: T(n)=T(n/a)+T(n/b)+f(n) και T(n)=aT(n-b)+f(n)
Επίπεδο Β
Το δένδρο αναδροµής για την επίλυση της T(n)=T(n/a)+T(n/b)+f(n)
Η µέθοδος επανάληψης για την επίλυση της T(n)=aT(n-b)+c
Επίπεδο Γ
Η µέθοδος υπολογισµού φραγµάτων για την επίλυση της
T(n)=T(n/a)+T(n/b)+f(n)
4. B. Μεθοδολογία Ασκήσεων
Η αναδροµή T(n)=aT(n-b)+f(n)
4∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 1.5: T(n)=T(n/a)+T(n/b)+f(n) και T(n)=aT(n-b)+f(n)
H επίλυση της αναδροµικής σχέσης T(n)=aT(n-b)+f(n) γίνεται µε την µέθοδο
επανάληψη.
Θα µελετήσουµε δύο ειδικές περιπτώσεις αυτής της αναδροµής:
Αν f(n)=c, οπότε προκύπτει η αναδροµή T(n)=aT(n-b)+c και απαιτεί την
κλασική µέθοδο της επανάληψης που είδαµε και στο προηγούµενο
µάθηµα.µάθηµα.
Αν a=1, προκύπτει η αναδροµή T(n)=T(n-b)+f(n) που λύνεται µε έναν
εύκολο και εµπειρικό τρόπο που αποτελεί παραλλαγή της µεθόδου
επανάληψης.
Η γενική µορφή της αναδροµής για κάθε a, b, f(n) είναι εκτός ύλης.
5. Β. Μεθοδολογία Ασκήσεων
1. Η αναδροµή T(n)=aT(n-b)+c
5∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 1.5: T(n)=T(n/a)+T(n/b)+f(n) και T(n)=aT(n-b)+f(n)
Η αναδροµική σχέση T(n)=aT(n-b)+c λύνεται µε την µέθοδο επανάληψης
ΒΗΜΑΤΑ ΤΗΣ ΜΕΘΟ∆ΟΥ ΕΠΑΝΑΛΗΨΗΣ
1. Κάνουµε 3 εφαρµογές της αναδροµικής σχέσης (Μέχρι να φτάσουµε στην
µορφή )
2. Εκτίµηση της σειράς που προκύπτει µετά από k επαναλήψεις (Μας
( ) ....3...)( +−⋅= bnTnT
( )+−⋅=καθοδηγεί ο όρος )
3. Υπολογίζουµε πότε σταµατάει η αναδροµή (Θέτω όπου n0 η
συνθήκη τερµατισµού της αναδροµής και λύνουµε ως προς k). Π.χ. αν n0=0
τότε n/b
4. Αντικατάσταση του k στον αναδροµικό τύπο του βήµατος 2.
5. Υπολογισµός του αθροίσµατος που προέκυψε.
( ) .......)( +−⋅= kbnTnT
0nkbn =−
6. B. Μεθοδολογία Ασκήσεων
1. Η αναδροµή T(n)=aT(n-b)+c
1. Επίλυση µε την µέθοδο επανάληψης (Βήµα 1: 3 εφαρµογές του κανόνα)
6∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 1.5: T(n)=T(n/a)+T(n/b)+f(n) και T(n)=aT(n-b)+f(n)
Στο 1ο βήµα εφαρµόζουµε τον αναδροµικό κανόνα 3 φορές και κάνουµε τις
πράξεις που προκύπτουν.
ΠΑΡΑ∆ΕΙΓΜΑ:
Να λύσετε την αναδροµή:
Λύση:
( )
=
>+−
=
0,1
0,225
)(
n
nnT
nT
αν
αν
Λύση:
( )
( )[ ] ( )
( )[ ] ( ) 22525652252655
2254522455
225)(
232
2
+⋅+⋅+−=+⋅++−=
+⋅+−=++−=
+−=
nTnT
nTnT
nTnT
7. B. Μεθοδολογία Ασκήσεων
1. Η αναδροµή T(n)=aT(n-b)+c
1. Επίλυση µε την µέθοδο επανάληψης (Βήµα 2: Εκτίµηση στο βήµα k)
7∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 1.5: T(n)=T(n/a)+T(n/b)+f(n) και T(n)=aT(n-b)+f(n)
Στο 2ο βήµα εκτιµάµε την σειρά που θα προκύψει µετά από k επαναλήψεις
(Μας καθοδηγεί ο όρος
(…συνέχεια…)
( ) .......)( +−⋅= kbnTnT
( )
...
2252565)( 23
==
=+⋅+⋅+−= nTnT
( ) 22525...2525
...
21
+⋅+⋅++⋅+−=
==
−kk
knT
8. B. Μεθοδολογία Ασκήσεων
1. Η αναδροµή T(n)=aT(n-b)+c
1. Επίλυση µε την µέθοδο επανάληψης (Βήµα 3: Υπολογισµός του k)
8∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 1.5: T(n)=T(n/a)+T(n/b)+f(n) και T(n)=aT(n-b)+f(n)
Υπολογίζουµε πότε σταµατάει η αναδροµή (Θέτω όπου n0 η
συνθήκη τερµατισµού της αναδροµής και λύνουµε ως προς k).
(…συνέχεια…)
0nkbn =−
(…συνέχεια…)
Η αναδροµή σταµατά όταν
2/
2
02
nk
kn
kn
=
⇒=
⇒=−
9. B. Μεθοδολογία Ασκήσεων
1. Η αναδροµή T(n)=aT(n-b)+c
1. Επίλυση µε την µέθοδο επανάληψης (Βήµα 4: Αντικατάσταση του k)
9∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 1.5: T(n)=T(n/a)+T(n/b)+f(n) και T(n)=aT(n-b)+f(n)
Αντικαθιστούµε το k που βρήκαµε στην παράσταση που προέκυψε στο βήµα
2. Θα πρέπει να απαλειφθεί ο αναδροµικός όρος µε την συνθήκη
τερµατισµού της αναδροµής.
(…συνέχεια…)
Θέτοντας k=n/2 στην Τ(n) έχουµε:
( )
22525...255
22525...2505)(
212/2/
212/2/
+⋅+⋅++⋅+=
+⋅+⋅++⋅+=
−
−
nn
nn
TnT
10. B. Μεθοδολογία Ασκήσεων
1. Η αναδροµή T(n)=aT(n-b)+c
1. Επίλυση µε την µέθοδο επανάληψης (Βήµα 5: Υπολογισµός αθροίσµατος)
10∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 1.5: T(n)=T(n/a)+T(n/b)+f(n) και T(n)=aT(n-b)+f(n)
Το άθροισµα που προκύπτει υπολογίζεται µε τον γνωστό τύπο του
υπολογισµού αθροίσµατος όρων γεωµετρικής προόδου:
(…συνέχεια…)
∑=
+
−
−
=
n
i
n
i
x
x
x
0
1
1
1
Θέτοντας k=n/2 στην Τ(n) έχουµε:
5,055,1
)15(5,05
15
15
25
525
]5...551[25
]25...25252[5
22525...255)(
2/
2/2/
112/
2/
12/
0
2/
12/22/
12/22/
212/2/
−⋅=
=−+=
=
−
−
+=
=+=
=+++++=
=⋅++⋅+⋅++=
=+⋅+⋅++⋅+=
+−
−
=
−
−
−
∑
n
nn
n
n
n
i
in
nn
nn
nn
nT
11. Β. Μεθοδολογία Ασκήσεων
2. Η αναδροµή T(n)=T(n-b)+f(n)
11∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 1.5: T(n)=T(n/a)+T(n/b)+f(n) και T(n)=aT(n-b)+f(n)
Η αναδροµική σχέση T(n)=T(n-1)+f(n) λύνεται µε την µέθοδο επανάληψης
ΒΗΜΑΤΑ ΤΗΣ ΜΕΘΟ∆ΟΥ ΕΠΑΝΑΛΗΨΗΣ
1. Γράφουµε όλους τους αναδροµικούς όρους T(n), T(n-1),… µέχρι και την
οριακή περίπτωση της αναδροµής
2. Προσθέτουµε τις εξισώσεις κατά µέλη
3. Υπολογίζουµε το άθροισµα που προκύπτει
12. B. Μεθοδολογία Ασκήσεων
2. Η αναδροµή T(n)=aT(n-b)+c
1. Επίλυση µε την µέθοδο επανάληψης (Βήµα 1: Γράψιµο των όρων)
12∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 1.5: T(n)=T(n/a)+T(n/b)+f(n) και T(n)=aT(n-b)+f(n)
Στο 1ο βήµα γράφουµε όλους τους αναδροµικούς όρους από το T(n) µέχρι
και τον όρο T(n0) όπου n0 είναι η οριακή περίπτωση της αναδροµής
ΠΑΡΑ∆ΕΙΓΜΑ:
Να λύσετε την αναδροµή:
Λύση:
( )1 3 , 0
( )
1, 0
T n n n
T n
n
αν
αν
− + >
=
=
Λύση:
1)0(
13)0()1(
23)1()2(
...
)2(3)3()2(
)1(3)2()1(
3)1()(
=
⋅+=
⋅+=
−+−=−
−+−=−
+−=
T
TT
TT
nnTnT
nnTnT
nnTnT
13. B. Μεθοδολογία Ασκήσεων
2. Η αναδροµή T(n)=aT(n-b)+c
1. Επίλυση µε την µέθοδο επανάληψης (Βήµα 2: Πρόσθεση κατά µέλη)
13∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 1.5: T(n)=T(n/a)+T(n/b)+f(n) και T(n)=aT(n-b)+f(n)
Στο 2ο βήµα προσθέτουµε κατά µέλη τις σχέσεις που έχουµε γράψει στο
προηγούµενο βήµα:
3)1()( +−= nnTnT
1)0(
13)0()1(
23)1()2(
...
)2(3)3()2(
)1(3)2()1(
3)1()(
=
⋅+=
⋅+=
−+−=−
−+−=−
+−=
T
TT
TT
nnTnT
nnTnT
nnTnT
)(+
11323...)2(3)1(33)( +⋅+⋅++−+−+= nnnnT
14. B. Μεθοδολογία Ασκήσεων
2. Η αναδροµή T(n)=aT(n-b)+c
1. Επίλυση µε την µέθοδο επανάληψης (Βήµα 3: Υπολογισµός του αθροίσµατος)
14∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 1.5: T(n)=T(n/a)+T(n/b)+f(n) και T(n)=aT(n-b)+f(n)
Στο 3ο βήµα υπολογίζουµε το άθροισµα που προκύπτει που συνήθως θα
είναι αριθµητική πρόοδος. Χρήσιµα θα φανούν τα εξής αθροίσµατα:
∑=
+
=
n
i
nn
i
1 2
)1(
∑=
++
=
n
i
nnn
i
1
2
6
)12)(1(
∑=
+
Θ=
n
i
kk
ni
1
1
)(
(µόνο µε υπόδειξη)
(συνέχεια…)
15,15,1
2
)1(
3131
])1()2(...21[31
3)1(3)2(3...23131
11323...)2(3)1(33)(
2
1
++=
=
+
+=+=
+−+−++++=
+−+−++⋅+⋅+=
+⋅+⋅++−+−+=
∑=
nn
nn
i
nnn
nnn
nnnnT
n
i
15. B. Μεθοδολογία Ασκήσεων
Η αναδροµή T(n)=T(n/a)+T(n/b)+f(n)
15∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 1.5: T(n)=T(n/a)+T(n/b)+f(n) και T(n)=aT(n-b)+f(n)
H επίλυση της αναδροµικής σχέσης T(n)=T(n/a)+T(n/b)+f(n) γίνεται:
Με εφαρµογή της δραστηριότητας 3.6 (αν )
Με το δένδρο αναδροµής (Αν )
1
11
≤+
ba
1
11
>+
ba
Με το δένδρο αναδροµής (Αν )
Υπάρχει και η µέθοδος υπολογισµού φραγµάτων την οποία δεν θα
εφαρµόζουµε ποτέ, παρά µόνο αν µας το ζητάνε ρητά!
1>+
ba
16. Β. Μεθοδολογία Ασκήσεων
3. Η αναδροµή T(n)=T(n/a)+T(n/b)+f(n)
16∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 1.5: T(n)=T(n/a)+T(n/b)+f(n) και T(n)=aT(n-b)+f(n)
Η αναδροµική σχέση T(n)=T(n/a)+Τ(n/b)+f(n) λύνεται µε την µέθοδο του
δένδρου αναδροµής
ΒΗΜΑΤΑ ΤΟΥ ∆ΕΝ∆ΡΟΥ ΑΝΑ∆ΡΟΜΗΣ
1. Ανάπτυξη του ∆ένδρου Αναδροµικών Κλήσεων µέχρι και µε το 2ο επίπεδο
2. Σε κάθε κόµβο σηµειώνουµε πόσες πράξεις γίνονται (από το f(n))2. Σε κάθε κόµβο σηµειώνουµε πόσες πράξεις γίνονται (από το f(n))
3. Υπολογισµός πράξεων ανά επίπεδο (συνήθως γεωµετρική πρόοδος)
4. Υπολογισµός του ύψους του δένδρου (Είναι logcn µε c το ελάχιστο από τα
a,b)
5. T(n)=το άθροισµα των πράξεων όλων των επιπέδων
17. B. Μεθοδολογία Ασκήσεων
3. Η αναδροµή T(n)=T(n/a)+T(n/b)+f(n)
1. Επίλυση µε το δένδρο αναδροµής (Βήµα 1: Ανάπτυξη δένδρου µέχρι 2ο επίπεδο)
17∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 1.5: T(n)=T(n/a)+T(n/b)+f(n) και T(n)=aT(n-b)+f(n)
Στο 1ο βήµα αναπτύσσουµε το δένδρο αναδροµικών κλήσεων εµφανίζοντας µόνο
τους αναδροµικούς όρους (όπως θα γινόντουσαν οι κλήσεις στον αντίστοιχο
αναδροµικό κώδικα).
ΠΑΡΑ∆ΕΙΓΜΑ:
Να λύσετε την αναδροµή:
=
>+
+
=
1,1
1,
32)(
n
nn
n
T
n
T
nT
αν
αν
Λύση:
=1,1 nαν
)(nT
2
n
T
3
n
T
4
n
T
3963
2642
32
)(
nn
T
n
T
n
T
nn
T
n
T
n
T
n
n
T
n
TnT
+
+
=
+
+
=
+
+
=
ΠΡΟΧΕΙΡΟ
6
n
T
6
n
T
9
n
T
N N N NO O O O
18. B. Μεθοδολογία Ασκήσεων
3. Η αναδροµή T(n)=T(n/a)+T(n/b)+f(n)
1. Επίλυση µε το δένδρο αναδροµής (Βήµα 2: Πράξεις σε κάθε κόµβο)
18∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 1.5: T(n)=T(n/a)+T(n/b)+f(n) και T(n)=aT(n-b)+f(n)
Στο 2ο βήµα σηµειώνουµε σε κάθε κόµβο πόσες πράξεις γίνονται σε αυτήν την
αναδροµική κλήση (καθορίζεται από τον όρο που έχουµε εµφανίσει αντικαθιστώντας
το f(n) )
(…συνέχεια…)
)(nT
2
n
T
3
n
T
4
n
T
6
n
T
6
n
T
9
n
T
n
2
n
3
n
4
n
6
n
6
n
9
n
3963
2642
32
)(
nn
T
n
T
n
T
nn
T
n
T
n
T
n
n
T
n
TnT
+
+
=
+
+
=
+
+
=
ΠΡΟΧΕΙΡΟ
N N N NO O O O
19. B. Μεθοδολογία Ασκήσεων
3. Η αναδροµή T(n)=T(n/a)+T(n/b)+f(n)
1. Επίλυση µε το δένδρο αναδροµής (Βήµα 3: Πράξεις ανα επίπεδο)
19∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 1.5: T(n)=T(n/a)+T(n/b)+f(n) και T(n)=aT(n-b)+f(n)
Στο 3ο βήµα προσθέτουµε ανά επίπεδο τις πράξεις για να µας βγει ένα κλάσµα.
Προσοχή ότι πάντα θα µας βγαίνει ότι είναι µια γεωµετρική πρόοδος. Εκτιµάµε πόσες
πράξεις γίνονται στο επίπεδο i.
(…συνέχεια…)
)(nT
2
n
T
3
n
T
4
n
T
6
n
T
6
n
T
9
n
T
n
2
n
3
n
4
n
6
n
6
n
9
n
Επιπεδο 0: n
Επιπεδο 1:
6
5
6
2
6
3
32
nnnnn
=+=+
Επιπεδο 2: 2
2
6
5
...
9664
nnnnn
==+++
Άρα στο επίπεδο i γίνονται πράξειςi
i
n
6
5
20. B. Μεθοδολογία Ασκήσεων
3. Η αναδροµή T(n)=T(n/a)+T(n/b)+f(n)
1. Επίλυση µε το δένδρο αναδροµής (Βήµα 4: Υπολογισµός ύψους δένδρου)
20∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 1.5: T(n)=T(n/a)+T(n/b)+f(n) και T(n)=aT(n-b)+f(n)
Στο 4ο βήµα υπολογίζουµε το ύψος του δένδρου.
Το ύψος του δένδρου καθορίζεται από ποιος όρος από τους n/a kai n/b θα φτάσει πιο
αργά να γίνει ίσος µε το n0, δηλαδή λύνοντας την εξίσωση n/min{a,b}=n0
Εµπειρικά το ύψος του δένδρου καθορίζεται από τον µικρότερο από τους δύο
παρονοµαστές και συγκεκριµένα είναι αν c είναι ο µικρότερος από τους δύο
παρονοµαστές (δηλ. c=min{a,b} ) έπεται ότι το ύψος του δένδρου είναι logcn.παρονοµαστές (δηλ. c=min{a,b} ) έπεται ότι το ύψος του δένδρου είναι logcn.
(…συνέχεια…)
Το ύψος του δένδρου είναι log2n
21. B. Μεθοδολογία Ασκήσεων
2. Η αναδροµή T(n)=T(n/a)+T(n/b)+f(n)
1. Επίλυση µε το δένδρο αναδροµής (Βήµα 5: Υπολογισµός αθροίσµατος)
21∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 1.5: T(n)=T(n/a)+T(n/b)+f(n) και T(n)=aT(n-b)+f(n)
Στο 5ο βήµα υπολογίζουµε την πολυπλοκότητα ως το άθροισµα των πράξεων όλων
των επιπέδων. Θα είναι πάντα µια γεωµετρική πρόοδος. Άρα θα χρησιµοποιήσουµε
τον τύπο:
(…συνέχεια…)
∑=
+
−
−
=
n
i
n
i
x
x
x
0
1
1
1
Συνεπώς οι πράξεις είναι:
( )
log log
0 0
log 1
log
0
log 1
5
( ) 5
6 6
5
1
5 6
56 1
6
6 0,83 6
i
n ni
i ii i
n
i
n
i
n
n
T n n
n n
n n
= =
+
=
+
= = =
−
= = =
−
= ⋅ −
∑ ∑
∑
22. Β. Μεθοδολογία Ασκήσεων
3. Η αναδροµή T(n)=T(n/a)+T(n/b)+f(n)
2. Επίλυση µε τα φράγµατα
22∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 1.5: T(n)=T(n/a)+T(n/b)+f(n) και T(n)=aT(n-b)+f(n)
Η αναδροµική σχέση T(n)=T(n/a)+Τ(n/b)+f(n) λύνεται µε την µέθοδο των
φραγµάτων
ΒΗΜΑΤΑ ΤΗΣ ΜΕΘΟ∆ΟΥ ΤΩΝ ΦΡΑΓΜΑΤΩΝ
1. Υπολογισµός κάτω φράγµατος µε το µεγαλύτερο από τα a και b και το
θεώρηµα κυριαρχίας.
2. Υπολογισµός άνω φράγµατος µε το µικρότερο από τα a και b και το θεώρηµα
κυριαρχίας.
3. Αν το κάτω φράγµα είναι ίσο µε το άνω φράγµα έχουµε ασυµπτωτική
εκτίµηση της συνάρτησης πολυπλοκότητας. Αλλιώς η µέθοδος
23. Β. Μεθοδολογία Ασκήσεων
3. Η αναδροµή T(n)=T(n/a)+T(n/b)+f(n)
2. Επίλυση µε τα φράγµατα
23∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 1.5: T(n)=T(n/a)+T(n/b)+f(n) και T(n)=aT(n-b)+f(n)
Αρχικά γράφουµε τις δύο αναδροµικές σχέσεις µέσω των οποίων θα υπολογίσουµε
το άνω και το κάτω φράγµα. Το άνω φράγµα θα προκύψει µε το µικρότερο από τα
a,b και το κάτω φράγµα θα προκύψει µε το µεγαλύτερο από τα a,b
ΠΑΡΑ∆ΕΙΓΜΑ:
Να υπολογίσετε µια ασυµπτωτική εκτίµηση της αναδροµής: 2
43
)( n
n
T
n
TnT +
+
=
Λύση:
Το άνω φράγµα θα προκύψει από την επίλυση της αναδροµικής σχέσης:
Και το κάτω φράγµα θα προκύψει από την επίλυση της αναδροµικής σχέσης:
2
( ) 2
3
n
n n
Α = Α +
2
( ) 2
4
n
n n
Κ = Κ +
24. Β. Μεθοδολογία Ασκήσεων
3. Η αναδροµή T(n)=T(n/a)+T(n/b)+f(n)
2. Επίλυση µε τα φράγµατα (1. Υπολογισµός του άνω φράγµατος)
24∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 1.5: T(n)=T(n/a)+T(n/b)+f(n) και T(n)=aT(n-b)+f(n)
Ο υπολογισµός του άνω φράγµατος θα γίνει µε το θεώρηµα κυριαρχίας.
Υπολογισµός άνω φράγµατος 2
3
2)( n
n
AnA +
=
63,02loglog,)(,3,2 2
===== annfbaΈχω:
Ισχύει: για κάποια σταθερά ε>0
Ελέγχω αν υπάρχει c<1 τέτοιο ώστε:
Άρα ισχύει για 2/9 ≤ c < 1.
Άρα από την Γ’ περίπτωση του Θεωρήµατος Κυριαρχίας έπεται ότι:
Άρα
63,02loglog,)(,3,2 3
2
===== annfba b
)()( 63,02 ε+
Ω== nnnf
)()( 2
nnA Θ=
ccn
n
cn
n
ncf
n
fncf
b
n
af ≤⇔≤⇔≤
⇔≤
⇔≤
9
2
3
2
3
2)(
2
4)( 2
2
2
2
2
)()( 2
nnT Ο=
25. Β. Μεθοδολογία Ασκήσεων
3. Η αναδροµή T(n)=T(n/a)+T(n/b)+f(n)
2. Επίλυση µε τα φράγµατα (2. Υπολογισµός του κάτω φράγµατος)
25∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 1.5: T(n)=T(n/a)+T(n/b)+f(n) και T(n)=aT(n-b)+f(n)
Ο υπολογισµός του άνω φράγµατος θα γίνει µε το θεώρηµα κυριαρχίας.
Υπολογισµός κάτω φράγµατος 2
4
2)( n
n
KnK +
=
5,02loglog,)(,4,2 2
===== annfbaΈχω:
Ισχύει: για κάποια σταθερά ε>0
Ελέγχω αν υπάρχει c<1 τέτοιο ώστε:
Άρα ισχύει για 1/8 ≤ c < 1.
Άρα από την Γ’ περίπτωση του Θεωρήµατος Κυριαρχίας έπεται ότι:
Άρα
5,02loglog,)(,4,2 4
2
===== annfba b
)()( 5,02 ε+
Ω== nnnf
)()( 2
nnK Θ=
cccn
n
cn
n
ncf
n
fncf
b
n
af ≤⇔≤⇔≤⇔≤
⇔≤
⇔≤
8
1
16
2
4
2
4
2)(
2
4)( 3
2
2
3
2
)()( 2
nnT Ω=
26. Β. Μεθοδολογία Ασκήσεων
3. Η αναδροµή T(n)=T(n/a)+T(n/b)+f(n)
2. Επίλυση µε τα φράγµατα (3. Συµπέρασµα για την ασυµπτωτική πολ/τα)
26∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 1.5: T(n)=T(n/a)+T(n/b)+f(n) και T(n)=aT(n-b)+f(n)
Αν το άνω φράγµα και το κάτω φράγµα είναι ίδια, τότε έχουµε ασυµπτωτική εκτίµηση
της πολυπλοκότητάς του.
(...συνέχεια…)
Συνεπώς από τα προηγούµενα:
)()( 2
nnT Ο=
Αν τα φράγµατα είναι διαφορετικά, η µέθοδος των φραγµάτων έχει αποτύχει!
Ισχύει:
και
Συνεπώς
)()( 2
nnT Ο=
)()( 2
nnT Ω=
)()( 2
nnT Θ=
27. Β. Μεθοδολογία Ασκήσεων
3. Η αναδροµή T(n)=T(n/a)+T(n/b)+f(n)
3. Επίλυση µε την δραστηριότητα 3.6
27∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 1.5: T(n)=T(n/a)+T(n/b)+f(n) και T(n)=aT(n-b)+f(n)
Η αναδροµική σχέση T(n)=T(n/a)+Τ(n/b)+f(n) λύνεται και µε την
δραστηριότητα 3.6 του βιβλίου
ΒΗΜΑΤΑ ΤΗΣ ∆ΡΑΣΤΗΡΙΟΤΗΤΑΣ 3.6
Υπολογίζουµε την ποσότητα
ba
11
+
1. Αν τότε
2. Αν τότε
3. Αν τότε η δραστηριότητα 3.6 έχει αποτύχει και πάµε υποχρεωτικά
µε δένδρο αναδροµής
ba
+
1
11
<+
ba
))(()( nfnT Θ=
1
11
=+
ba
)log)(()( nnfnT ⋅Θ=
1
11
>+
ba
28. B. Μεθοδολογία Ασκήσεων
3. Η αναδροµή T(n)=T(n/a)+T(n/b)+f(n)
3. Επίλυση µε την δραστηριότητα 3.6 (Παραδείγµατα)
28∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 1.5: T(n)=T(n/a)+T(n/b)+f(n) και T(n)=aT(n-b)+f(n)
Η εφαρµογή της δραστηριότητας 3.6 είναι πολύ εύκολη διότι µας δίνει έτοιµη την
λύση σε κάποιες αναδροµές.
ΠΑΡΑ∆ΕΙΓΜΑ:
Να υπολογίσετε µια ασυµπτωτική εκτίµηση της αναδροµής:
Λύση:
2
43
)( n
n
T
n
TnT +
+
=
Λύση:
Ισχύει: άρα από την δραστ.3.6 ισχύει:
ΠΑΡΑ∆ΕΙΓΜΑ:
Να υπολογίσετε µια ασυµπτωτική εκτίµηση της αναδροµής:
Λύση:
Ισχύει: άρα από την δραστ.3.6 ισχύει:
1
12
7
12
3
12
4
4
1
3
1
<=+=+ )()( 2
nnT Θ=
n
n
T
n
TnT +
+
=
3
2
3
)(
1
3
3
3
2
3
1
==+ )log()( nnnT ⋅Θ=
29. Γ. Ασκήσεις
Εφαρµογή 1
Υπολογίστε την ακριβή λύση των αναδροµών µε την µέθοδο επανάληψης:
29∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 1.5: T(n)=T(n/a)+T(n/b)+f(n) και T(n)=aT(n-b)+f(n)
( )4 3 5, 0
) ( )
0, 0
T n n
A T n
n
αν
αν
− + >
=
=
2
0, 0
( 1) 2 , 0
) ( )
1, 0
n
T n n n
B T n
n
αν
αν
αν
=
− + >
=
=
30. Γ. Ασκήσεις
Εφαρµογή 2
Υπολογίστε ασυµπτωτική εκτίµηση των αναδροµών χρησιµοποιώντας το
δένδρο αναδροµής:
30∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 1.5: T(n)=T(n/a)+T(n/b)+f(n) και T(n)=aT(n-b)+f(n)
=
>+
+
=
1,1
1,
43)()
2
n
nn
n
T
n
T
nTA
αν
αν
=
>+
+
=
=
1,1
1,
3
2
3)()
1,1
n
nn
n
T
n
T
nTB
n
αν
αν
αν
31. Γ. Ασκήσεις
Εφαρµογή 3
Χρησιµοποιείστε την µέθοδο υπολογισµού φραγµάτων για την επίλυση της
αναδροµής
31∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 1.5: T(n)=T(n/a)+T(n/b)+f(n) και T(n)=aT(n-b)+f(n)
2
3
2
2
)( n
n
T
n
TnT +
+
=
32. Γ. Ασκήσεις
Εφαρµογή 4
Υπολογίστε µια ασυµπτωτική εκτίµηση των αναδροµών
32∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 1.5: T(n)=T(n/a)+T(n/b)+f(n) και T(n)=aT(n-b)+f(n)
log
44
3
)() n
n
T
n
TnTA +
+
=
2
3
23
2
)()
65
2
)()
n
n
T
n
TnTC
n
n
T
n
TnTB
+
+
=
+
+
=
33. Γ. Ασκήσεις
Εφαρµογή 5
Για την επίλυση ενός προβλήµατος έχουµε στην διάθεσή µας τρείς αλγόριθµούς.
• (A1) Ο πρώτος αλγόριθµος για επιλύσει ένα πρόβληµα µεγέθους n, επιλύει
αναδροµικά επτά υποπροβλήµατα µεγέθους n/3 το καθένα και συνδυάζει τις λύσεις
τους σε χρόνο n3.
33∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 1.5: T(n)=T(n/a)+T(n/b)+f(n) και T(n)=aT(n-b)+f(n)
• (A2) Ο δεύτερος αλγόριθµος για να επιλύσει ένα πρόβληµα µεγέθους n, επιλύει
αναδροµικά δέκα υποπροβλήµατα µεγέθους n/2 το καθένα και συνδυάζει τις λύσεις
τους σε χρόνο n.
• (A3) Ο τρίτος αλγόριθµος επιλύει ένα υποπρόβληµα µεγέθους n-1 και βρίσκει την
λύση του αρχικού προβλήµατος σε χρόνο n3.
Να βρεθούν οι ασυµπτωτικοί χρόνοι επίλυσης του προβλήµατος για τον κάθε
αλγόριθµο, και να επιλέξετε τον ταχύτερο αλγόριθµο για την επίλυση του προβλήµατος.
ΥΠΟ∆ΕΙΞΗ: Μπορείτε να χρησιµοποιήσετε ότι ∑=
Θ=
n
i
ni
1
43
)(