∆ηµήτρης Ψούνης – ΠΛΗ30, Επανάληψη 2 1
ΠΛΗ30 – ΕΠΑΝΑΛΗΨΗ 2
Αναδροµή και Αλγόριθµοι
Ο∆ΗΓΙΕΣ ΓΙΑ ΤΗΝ ΕΠΑΝΑΛΗΨΗ
Επαναλάβετε τα µαθήµατα:
• Ανάλυση Αλγορίθµων – Μάθηµα 4: Η αναδροµή T(n)=aT(n/b)+f(n)
• Ανάλυση Αλγορίθµων – Μάθηµα 5: Η αναδροµή T(n)=aT(n-b)+f(n), T(n)=T(n/a)+T(n/b)+f(n)
• Ανάλυση Αλγορίθµων – Μάθηµα 6: Περισσότερα για τον Υπολογισµό Αθροισµάτων
Πρώτη προτεραιότητα και πάλι το Master Theorem από το µάθηµα 4, η αναδροµή Τ(n)=T(n-1)+f(n)
που λύνεται µε επανάληψη και κατά µέλη και επίσης από το µάθηµα 5 οι εµπειρικοί κανόνες. Να
ξέρουµε και την ασκηση που λύνεται στο µάθηµα 6 µε υπολογισµό αθροισµάτων.
Η ενότητα 2 να µελετηθεί µόνο από αυτούς που θέλουν να επιτύχουν µια πολύ υψηλή επίδοση στο
µάθηµα.
Ο∆ΗΓΙΕΣ ΓΙΑ ΤΟΝ ΧΡΟΝΟ ΕΠΙΛΥΣΗΣ ΑΣΚΗΣΕΩΝ:
Έπειτα προχωρήστε στην επίλυση των ασκήσεων. Οι ασκήσεις αναδροµών πρέπει να βγαίνουν
ολόσωστα σε περίπου 25’-30’ η κάθε µία. Οι υπόλοιπες ασκήσεις πρέπει να ολοκληρώνονται σε το
πολύ µισή ώρα. Έπειτα συµβουλευτείτε τις αντίστοιχες ηχογραφήσεις για να δείτε ολοκλήρωµένα τις
λύσεις των ασκήσεων.
Συνιστώµενοι Χρόνοι για την επανάληψη:
Χρόνος Επανάληψης: 2.00’
Χρόνος Απάντησης Ασκήσεων: 3.00’
Ηχογραφήσεις Ασκήσεων: 2.00’
∆ηµήτρης Ψούνης – ΠΛΗ30, Επανάληψη 2 2
Ασκήσεις
Άσκηση 1
Υποθέτουµε ότι έχουµε να επιλέξουµε για ένα πρόβληµα Π από τους εξής αλγόριθµους:
• Ο αλγόριθµος Α λύνει ένα στιγµιότυπο µεγέθους n επιλύοντας αναδροµικά δύο υποπροβλήµατα
µισού µεγέθους του αρχικού και συνδυάζοντας τις λύσεις σε γραµµικό χρόνο ως προς n.
• Ο αλγόριθµος Β λύνει ένα στιγµιότυπο µεγέθους n επιλύοντας αναδροµικά ένα υποπρόβληµα
µεγέθους n/4 και ένα υποπρόβληµα µεγέθους 3n/4 και συνδυάζοντας τις λύσεις των
υποπροβληµάτων σε χρόνο ߆ሺ݊ଷ
ሻ
• Ο αλγόριθµος Γ λύνει ένα στιγµιότυπο µεγέθους n επιλύοντας αναδροµικά ένα υποπρόβληµα
µεγέθους n-1 και συνδυάζοντας τις τελικές λύσεις σε χρόνο 4n.
Ποιοι είναι οι ασυµπτωτικοί χρόνοι εκτέλεσης για κάθε έναν από τους τρεις αλγόριθµους και ποιον θα
επιλέγατε µε βάση την ασυµπτωτική του πολυπλοκότητα.
Άσκηση 2
Υποθέτουµε ότι έχουµε να επιλέξουµε για ένα πρόβληµα Π από τους εξής αλγόριθµους:
• Ο αλγόριθµος Α λύνει ένα στιγµιότυπο µεγέθους n επιλύοντας αναδροµικά ένα υποπρόβληµα
µεγέθους n/2 και ένα υποπρόβληµα µεγέθους 3n/4 και συνδυάζοντας τις λύσεις σε χρόνο
ߗሺ݊ଷ
ሻ.
• Ο αλγόριθµος Β λύνει ένα στιγµιότυπο µεγέθους n επιλύοντας αναδροµικά ένα υποπρόβληµα
µεγέθους n/4 και ένα υποπρόβληµα µεγέθους 3n/4 και συνδυάζοντας τις λύσεις σε χρόνο
ߍሺ݊ଶ
ሻ.
• Ο αλγόριθµος Γ λύνει ένα στιγµιότυπο µεγέθους n επιλύοντας αναδροµικά ένα υποπρόβληµα
µεγέθους n/3 και ένα υποπρόβληµα µεγέθους n/2 και συνδυάζοντας τις λύσεις σε χρόνο ߆ሺ݊ଷ
ሻ.
Ποιοι είναι οι ασυµπτωτικοί χρόνοι εκτέλεσης για κάθε έναν από τους τρεις αλγόριθµους και ποιον θα
επιλέγατε µε βάση την ασυµπτωτική του πολυπλοκότητα.
Άσκηση 3
Υποθέτουµε ότι έχουµε να επιλέξουµε για ένα πρόβληµα Π από τους εξής αλγόριθµους:
• Ο αλγόριθµος Α λύνει ένα στιγµιότυπο µεγέθους n επιλύοντας αναδροµικά ένα υποπρόβληµα
µεγέθους n-1 και συνάγοντας την τελική λύση σε χρόνο ݈݃ଶ
݊.
• Ο αλγόριθµος Β λύνει ένα στιγµιότυπο µεγέθους n επιλύοντας αναδροµικά πέντε
υποπροβλήµατα µεγέθους n-1 και εξάγοντας την τελική λύση κάνοντας 3 πράξεις.
Ποιοι είναι οι ασυµπτωτικοί χρόνοι εκτέλεσης για κάθε έναν από τους δυο αλγόριθµους και ποιον θα
επιλέγατε µε βάση την ασυµπτωτική του πολυπλοκότητα.
∆ηµήτρης Ψούνης – ΠΛΗ30, Επανάληψη 2 3
Άσκηση 4
Μια ακολουθία υπολογίζεται από την εξής αναδροµική σχέση: ܽ ൌ 2ܽିଵ 3ܽିଶ 4 µε ܽଵ ൌ 1 και
ܽଶ ൌ 4
1. Υπολογίστε τους όρους της ακολουθίας: ܽଵ, ܽଶ, ܽଷ, ܽସ
2. ∆ιατυπώστε έναν αναδροµικό αλγόριθµο που υπολογίζει τον n-o αριθµό της ακολουθίας και
υπολογίστε την πολυπλοκότητα
3. ∆ιατυπώστε έναν αλγόριθµο δυναµικού προγραµµατισµού για το ίδιο πρόβληµα και υπολογίστε
την πολυπλοκότητα του.
Άσκηση 5
Το ܥሺ݊, ݇ሻ, δηλαδή ο τύπος των συνδυασµών υπολογίζεται και µέσω της αναδροµικής σχέσης:
ܥሺ݊, ݇ሻ ൌ ൝
ܥሺ݊ െ 1, ݇ሻ ܥሺ݊ െ 1, ݇ െ 1ሻ, ݊ 1, 1 ൏ ݇ ൏ ݊
݊ , ݊ 1, ݇ ൌ 1
1 , ݊ 1, ݇ ൌ ݊
1. Υπολογίστε το C(3,2) µε χρήση της αναδροµικής σχέσης.
2. ∆ιατυπώστε έναν αναδροµικό αλγόριθµο που υπολογίζει το C(n,k) και υπολογίστε ένα κάτω
φράγµα της πολυπλοκότητάς του.
3. ∆ιατυπώστε έναν επαναληπτικό αλγόριθµο για το ίδιο πρόβληµα και υπολογίστε την
πολυπλοκότητά του.
Άσκηση 6
∆ίδεται ένα γράφηµα G=(V, E) µε θετικά βάρη στις ακµές του. ∆ώστε άπληστο αλγόριθµο κατασκευής
µη-κυκλικού υπογραφήµατος G’ ⊆ G που έχει µέγιστο συνολικό βάρος (συνολικό βάρος ενός
γραφήµατος είναι το άθροισµα των βαρών στις ακµές του).