ΠΛΗ30
ΕΝΟΤΗΤΑ 1: ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ
Μάθηµα 1.6:
Περισσότερα για τον υπολογισµό αθροισµάτωνΠερισσότερα για τον υπολογισµό αθροισµάτων
∆ηµήτρης Ψούνης
ΠΕΡΙΕΧΟΜΕΝΑ
Α. Σκοπός του Μαθήµατος
B. Μεθοδολογία Ασκήσεων
1. Υπολογισµός Φραγµάτων Αθροισµάτων
1. Υπολογισµός Άνω Φράγµατος
2. Υπολογισµός Κάτω Φράγµατος
2. Υπολογισµός Κλειστού Τύπου Αθροίσµατος
2∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 1.6: Περισσότερα για τον υπολογισµό αθροισµάτων
Γ.Ασκήσεις
Α. Σκοπός του Μαθήµατος
Οι στόχοι του µαθήµατος είναι:
Επίπεδο Α
(-)
Επίπεδο Β
(-)
3∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 1.6: Περισσότερα για τον υπολογισµό αθροισµάτων
(-)
Επίπεδο Γ
Υπολογισµός Φραγµάτων Αθροισµάτων
Υπολογισµός Κλειστών Τύπων Αθροισµάτων
B. Μεθοδολογία Ασκήσεων
1. Υπολογισµός Φραγµάτων Αθροισµάτων
4∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 1.6: Περισσότερα για τον υπολογισµό αθροισµάτων
Ασχολούµαστε µε τον υπολογισµό περίπλοκων αθροισµάτων:
Σε κάποιες ασκήσεις είναι ανέφικτο να υπολογίσουµε το άθροισµα απ’
ευθείας µε κάποιον από τους γνωστούς τύπους.
Στις περίπτωση αυτή υπολογίζουµε φράγµατα για να εκτιµήσουµε την
πολυπλοκότητα της συνάρτησης.
Θα υπολογίσουµε ένα άνω φράγµα, αντικαθιστώντας τον όρο του
αθροίσµατος µε «κάτι» µεγαλύτερο που είναι δυνατόν να υπολογιστεί.
Θα υπολογίσουµε ένα κάτω φράγµα, αντικαθιστώντας τον όρο του
αθροίσµατος µε «κάτι» µικρότερο που είναι δυνατόν να υπολογιστει.
Αν τύχει τα άνω και κάτω φράγµατα που υπολογίσαµε να είναι ίσα τότε
έχουµε εξάγει ασυµπτωτική εκτίµηση της πολυπλοκότητας του αθροίσµατος.
Αφού αν f=O(g) και f=Ω(g) τότε f=Θ(g).
Αν τα φράγµατα δεν είναι ίσα τότε έχουµε µια εκτίµηση για την
πολυπλοκότητα του αλγορίθµου.
B. Μεθοδολογία Ασκήσεων
1. Υπολογισµός Φραγµάτων Αθροισµάτων
1. Υπολογισµός Άνω Φράγµατος
5∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 1.6: Περισσότερα για τον υπολογισµό αθροισµάτων
Ο υπολογισµός του άνω φράγµατος γίνεται κάνοντας αντικατάσταση του
όρου του αθροίσµατος µε «κάτι» µεγαλύτερο.
Όσο πιο κοντά στον όρο είναι το «κάτι», τόσο καλύτερη θα είναι και η
προσέγγιση που θα πάρουµε.
ΠΑΡΑ∆ΕΙΓΜΑ:
Εκτιµήστε ασυµπτωτικά την πολυπλοκότητα: ∑=
n
iinT log)(Εκτιµήστε ασυµπτωτικά την πολυπλοκότητα:
1η Λύση: Προφανώς ισχύει:
Συνεπώς: άρα έπεται:
2η Λύση: Προφανώς ισχύει:
Συνεπώς:
άρα έπεται:
∑=
=
n
i
iinT 1
log)(
2
log iii ≤
)(log)( 3
1
2
1
niiinT
n
i
n
i
Θ=≤= ∑∑ ==
)()( 3
nOnT =
niii loglog ≤
)log()(loglogloglog)( 22
111
nnnninniiinT
n
i
n
i
n
i
Θ=Θ⋅==≤= ∑∑∑ ===
)log()( 2
nnOnT =
B. Μεθοδολογία Ασκήσεων
1. Υπολογισµός Φραγµάτων Αθροισµάτων
2. Υπολογισµός Κάτω Φράγµατος
6∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 1.6: Περισσότερα για τον υπολογισµό αθροισµάτων
Ο υπολογισµός του κάτω φράγµατος γίνεται κάνοντας αντικατάσταση του
όρου του αθροίσµατος µε «κάτι» µικρότερο.
Όσο πιο κοντά στον όρο είναι το «κάτι», τόσο καλύτερη θα είναι και η
προσέγγιση που θα πάρουµε.
ΠΑΡΑ∆ΕΙΓΜΑ:
Εκτιµήστε ασυµπτωτικά την πολυπλοκότητα: ∑=
n
iinT log)(
∆εν µπορέσαµε να υπολογίσουµε ασυµπτωτική εκτίµηση για το άθροισµα
αλλά εκτιµήσαµε ότι είναι και
Εκτιµήστε ασυµπτωτικά την πολυπλοκότητα:
Λύση: Προφανώς ισχύει:
Συνεπώς: άρα έπεται:
∑=
=
n
i
iinT 1
log)(
iii ≥log
)(log)( 2
11
niiinT
n
i
n
i
Θ=≥= ∑∑ ==
)()( 2
nnT Ω=
)log()( 2
nnOnT =)()( 2
nnT Ω=
B. Μεθοδολογία Ασκήσεων
2. Υπολογισµός Κλειστού Τύπου Αθροίσµατος
7∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 1.6: Περισσότερα για τον υπολογισµό αθροισµάτων
Κλειστός τύπος ενός αθροίσµατος ονοµάζεται µια πολυωνυµική παράσταση
που προσεγγίζει το ακριβές αποτέλεσµα ενός αθροίσµατος.
Η κατασκευή του κλειστού τύπου γίνεται αν µπορέσουµε να υπολογίσουµε
άνω και κάτω φράγµατα που είναι ίσα µεταξύ τους.
Εφόσον τα καταφέρουµε προσεγίζουµε µέσω ενός πολυωνύµου το
αποτέλεσµα του αθροίσµατος.αποτέλεσµα του αθροίσµατος.
ΠΑΡΑ∆ΕΙΓΜΑ:
Να εξάγετε κλειστό τύπο για το άθροισµα :
Λύση:
Για το άνω φράγµα έχουµε: συνεπώς:
Για το κάτω φράγµα έχουµε:
συνεπώς )()( 3
nnT Ω=
∑=
=
n
ni
inT 2/
2
)(
)()( 3
1
2
2/
2
niinT
n
i
n
ni
Θ=≤= ∑∑ ==
)()( 3
nnT Ο=
)(
48
)1
2
(
4
)1
2
(
4
1
22
)(
3
2322
2/
2
2/
2
2/
2
n
nnnnn
n
n
nn
inT
n
ni
n
ni
n
ni
Θ=+=+=+−=
=
=
≥= ∑∑∑ ===
B. Μεθοδολογία Ασκήσεων
2. Υπολογισµός Κλειστού Τύπου Αθροίσµατος
8∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 1.6: Περισσότερα για τον υπολογισµό αθροισµάτων
(….συνέχεια….)
Άρα αφού και έπεται ότι:
Άρα µπορούµε µε ασφάλεια να ισχυριστούµε ότι το άθροισµα είναι ένα
πολυώνυµο τρίτου βαθµού, άρα γράφεται
Για να υπολογίσουµε τους συντελεστές κάνουµε αντικατάσταση στην σχέση:
)()( 3
nnT Ω= )()( 3
nnT Ο= )()( 3
nnT Θ=
∑=
=Τ
n
ni
in 2/
2
)(
dcnbnannT +++= 23
)(
Για να υπολογίσουµε τους συντελεστές κάνουµε αντικατάσταση στην σχέση:
θέτουµε διαδοχικά n=1,n=2,n=3,n=4 οπότε προκύπτει το εξής σύστηµα 4 εξισώσεων µε 4
αγνώστους:
Το σύστηµα έχει λύση
Άρα τελικά υπολογίσαµε τον κλειστό τύπο για το άθροισµα:
∑=
=+++
n
ni
idcnbnan 2/
223
2941664
143927
5248
1
=+++
=+++
=+++
=+++
dcba
dcba
dcba
dcba
0,16,0,5,0,33,0 ==== dcba
nnnnT 16,05,033,0)( 23
++=
Γ. Ασκήσεις
Εφαρµογή 1
Υπολογίστε µία ασυµπτωτική εκτίµηση για την συνάρτηση πολυπλοκότητας:
9∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 1.6: Περισσότερα για τον υπολογισµό αθροισµάτων
)!log()( nnT =
Γ. Ασκήσεις
Εφαρµογή 2
Υπολογίστε κλειστό τύπο για το άθροισµα
10∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 1.6: Περισσότερα για τον υπολογισµό αθροισµάτων
∑ =
=
n
ni
inT 3/
)(