Στην ενότητα αυτή θα µελετηθούν τα εξής θέµατα:

Σχετικά έγγραφα
Στην ενότητα αυτή θα µελετηθούν τα εξής θέµατα:

(CLR, κεφάλαιο 32) Στην ενότητα αυτή θα µελετηθούν τα εξής θέµατα: Παραστάσεις πολυωνύµων Πολυωνυµική Παρεµβολή ιακριτός Μετασχηµατισµός Fourier

ΕΠΛ 232 Αλγόριθµοι και Πολυπλοκότητα 2-1

ΕΠΛ 232: Αλγόριθµοι και Πολυπλοκότητα. Κατ οίκον Εργασία 1 Σκελετοί Λύσεων

Αλγόριθµοι και Πολυπλοκότητα

Κατ οίκον Εργασία 1 Σκελετοί Λύσεων

Αλγόριθµοι. Παράδειγµα. ιαίρει και Βασίλευε. Παράδειγµα MergeSort. Τεχνικές Σχεδιασµού Αλγορίθµων

Αλγόριθµοι και Πολυπλοκότητα

Άπληστοι Αλγόριθµοι (CLR, κεφάλαιο 17)

Αλγόριθµοι και Πολυπλοκότητα

Θέματα Εφαρμογών Βάσεων Δεδομένων: Ιδιωτικότητα Δεδομένων

Δομές Δεδομένων & Αλγόριθμοι

Βραχύτερα Μονοπάτια σε Γράφους (CLR, κεφάλαιο 25)

ΓΡΑΜΜΙΚΗ ΑΛΓΕΒΡΑ Ι (ΠΕΡΙΤΤΟΙ) Λυσεις Ασκησεων - Φυλλαδιο 2

Δυναμικός Προγραμματισμός

Αλγόριθµοι και Πολυπλοκότητα

Δυναμικός Προγραμματισμός

Τεχνικές Σχεδιασμού Αλγορίθμων

υναμικός Προγραμματισμός

υναμικός Προγραμματισμός

Κατ οίκον Εργασία 2 Σκελετοί Λύσεων

Παράλληλοι Αλγόριθµοι

Αλγόριθµοι και Πολυπλοκότητα

Αλγοριθμικές Τεχνικές

Κατ οίκον Εργασία 1 Σκελετοί Λύσεων

Δυναμικός Προγραμματισμός

ΓΡΑΜΜΙΚΗ ΑΛΓΕΒΡΑ Ι (ΑΡΤΙΟΙ) Λυσεις Ασκησεων - Φυλλαδιο 2

Αλγοριθμικές Τεχνικές. Brute Force. Διαίρει και Βασίλευε. Παράδειγμα MergeSort. Παράδειγμα. Τεχνικές Σχεδιασμού Αλγορίθμων

υναμικός Προγραμματισμός

Αλγεβρικες οµες Ι Ασκησεις - Φυλλαδιο 2

Ορισµός. Εστω συναρτήσεις: f : N R και g : N R. η f(n) είναι fi( g(n) ) αν υπάρχουν σταθερές C 1, C 2 και n 0, τέτοιες ώστε:

ΕΠΛ 232 Φροντιστήριο 2

Διαίρει-και-Βασίλευε. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 2

Αλγόριθµοι και Πολυπλοκότητα

2 Αποδείξεις. 2.1 Εξαντλητική µέθοδος. Εκδοση 2005/03/22. Υπάρχουν πολλών ειδών αποδείξεις. Εδώ ϑα δούµε τις πιο κοινές:

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ Ασκησεις - Φυλλαδιο 3

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ Λυσεις Ασκησεων - Φυλλαδιο 1

Ενότητα 1: Εισαγωγή Ασκήσεις και Λύσεις

ΠΑΡΑΓΩΓΟΣ ΣΥΝΑΡΤΗΣΗ. Εφαπτοµένη ευθεία

Διωνυµικοί Συντελεστές. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Δυναµικός Προγραµµατισµός 1

ΠΡΟΓΡΑΜΜΑ ΣΠΟΥ ΩΝ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ΜΑΘΗΜΑΤΙΚΑ Ι (ΘΕ ΠΛΗ 12) ΕΡΓΑΣΙΑ 1 η Ηµεροµηνία Αποστολής στον Φοιτητή: 12 Οκτωβρίου 2007

Γεωµετρικοί Αλγόριθµοι (CLR, κεφάλαιο 35)

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ. Λυσεις Ασκησεων - Φυλλαδιο 4

Δοµές Δεδοµένων και Αλγόριθµοι - Εισαγωγή

Αλγόριθµοι Οπισθοδρόµησης

Διάλεξη 04: Παραδείγματα Ανάλυσης

Διάλεξη 04: Παραδείγματα Ανάλυσης Πολυπλοκότητας/Ανάλυση Αναδρομικών Αλγόριθμων

Αλγόριθμοι και Πολυπλοκότητα

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ. Ασκησεις - Φυλλαδιο 4. ιδασκων: Α. Μπεληγιάννης Ιστοσελιδα Μαθηµατος :

Μάθηµα Θεωρίας Αριθµών Ε.Μ.Ε

ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 4. Παραδείγματα Ανάλυσης Πολυπλοκότητας Ανάλυση Αναδρομικών Αλγόριθμων

Κεφάλαιο 4. Διαίρει και Βασίλευε (Divide and Conquer) Χρησιµοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

Γενικό πλάνο. Μαθηµατικά για Πληροφορική. Παράδειγµα αναδροµικού ορισµού. οµική επαγωγή ΠΑΡΑ ΕΙΓΜΑ. 3ο Μάθηµα

Διδάσκων: Καθηγητής Νικόλαος Μαρμαρίδης, Καθηγητής Ιωάννης Μπεληγιάννης

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥ ΩΝ: ΠΛΗΡΟΦΟΡΙΚΗ ΘΕ: ΜΑΘΗΜΑΤΙΚΑ ΓΙΑ ΤΗΝ ΠΛΗΡΟΦΟΡΙΚΉ Ι (ΠΛΗ 12) ΛΥΣΕΙΣ ΕΡΓΑΣΙΑΣ 3

Επιπλέον Ασκήσεις. Μαθηµατική Επαγωγή. ιαιρετότητα. Προβλήµατα ιαιρετότητας.

Μαθηµατικά για Πληροφορική

Παρουσίαση 1 ΙΑΝΥΣΜΑΤΑ

ΑΛΓΕΒΡΙΚΕΣ ΟΜΕΣ Ι. Ασκησεις - Φυλλαδιο 2

ΛΥΣΕΙΣ ΑΣΚΗΣΕΩΝ ΕΞΕΤΑΣΤΙΚΗΣ ΠΕΡΙΟ ΟΥ ΙΟΥΝΙΟΥ 2004., η οποία όµως µπορεί να γραφεί µε την παρακάτω µορφή: 1 e

Χαρακτηριστικά Δυναμικού Προγραμματισμού. Εισαγωγικά. 2 Δυναμικός Προγραμματισμός

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Μαθηµατική Επαγωγή. Ορέστης Τελέλης. Τµήµα Ψηφιακών Συστηµάτων, Πανεπιστήµιο Πειραιώς

11. Η έννοια του διανύσµατος 22. Πρόσθεση & αφαίρεση διανυσµάτων 33. Βαθµωτός πολλαπλασιασµός 44. Συντεταγµένες 55. Εσωτερικό γινόµενο

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ Ασκησεις - Φυλλαδιο 4

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ Ασκησεις - Φυλλαδιο 3

ΓΡΑΜΜΙΚΗ ΑΛΓΕΒΡΑ ΙΙ (ΠΕΡΙΤΤΟΙ) Ασκησεις - Φυλλαδιο 5

Αλγεβρικες οµες Ι Ασκησεις - Φυλλαδιο 2

Αναδρομικοί Αλγόριθμοι

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ Ασκησεις - Φυλλαδιο 6

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ Ασκησεις - Φυλλαδιο 4

1.5 ΑΞΙΟΣΗΜΕΙΩΤΕΣ ΤΑΥΤΟΤΗΤΕΣ

(Γραμμικές) Αναδρομικές Σχέσεις

ιαχείριση Εφοδιαστικής Αλυσίδας

Σχεδίαση Αλγορίθμων -Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο

Αλγόριθμοι και πολυπλοκότητα Δυναμικός Προγραμματισμός

(Γραμμικές) Αναδρομικές Σχέσεις

Γραµµικη Αλγεβρα Ι Επιλυση Επιλεγµενων Ασκησεων Φυλλαδιου 4

11.1 Συναρτήσεις. ΚΕΦΑΛΑΙΟ 11: Θεωρία υπολογισµών

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ. Λυσεις Ασκησεων - Φυλλαδιο 7

ΘΕΑΝΩ ΕΡΙΦΥΛΗ ΜΟΣΧΟΝΑ ΣΥΜΠΛΗΡΩΜΑΤΙΚΕΣ ΣΗΜΕΙΩΣΕΙΣ ΤΟΥ ΜΑΘΗΜΑΤΟΣ ΕΠΙΧΕΙΡΗΣΙΑΚΗ ΕΡΕΥΝΑ

Αριθµοθεωρητικοί Αλγόριθµοι και το. To Κρυπτοσύστηµα RSA

Διδάσκων: Παναγιώτης Ανδρέου

ΚΕΦΑΛΑΙΟ 2 ΜΗ ΓΡΑΜΜΙΚΕΣ ΕΞΙΣΩΣΕΙΣ

Kεφάλαιο 5. µετασχηµατισµού Laplace.

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ. Λυσεις Ασκησεων - Φυλλαδιο 3

ΓΡΑΜΜΙΚΗ ΑΛΓΕΒΡΑ Ι (ΑΡΤΙΟΙ) Ασκησεις - Φυλλαδιο 1

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΘΕΩΡΗΤΙΚΗ ΑΣΚΗΣΗ 1 ΛΥΣΕΙΣ Ανάλυση Πολυπλοκότητας

3.3 ΑΛΓΕΒΡΙΚΗ ΕΠΙΛΥΣΗ ΓΡΑΜΜΙΚΟΥ

ΓΡΑΜΜΙΚΑ ΣΥΣΤΗΜΑΤΑ ΕΞΙΣΩΣΕΩΝ

Συναρτησιακές Εξαρτήσεις. Βάσεις εδοµένων Ευαγγελία Πιτουρά 1

Εισαγωγή στους Αλγορίθμους Ενότητα 11η

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ

ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ ΜΑΘΗΜΑΤΙΚΑ ΚΑΤΕΥΘΥΝΣΗΣ Γ ΛΥΚΕΙΟΥ 2008

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ

6 Εφαρµογές των παραγώγων στον υπολογισµό ορίων α- προσδιόριστων µορφών - Κανόνες L Hôpital

2 Ο ΓΕΛ ΣΤΑΥΡΟΥΠΟΛΗΣ ΣΧΟΛΙΚΟ ΕΤΟΣ ΑΛΓΕΒΡΑ Α ΛΥΚΕΙΟΥ ΠΡΑΓΜΑΤΙΚΟΙ ΑΡΙΘΜΟΙ ΕΠΙΜΕΛΕΙΑ : ΧΑΛΑΤΖΙΑΝ ΠΑΥΛΟΣ

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΦΡΟΝΤΙΣΤΗΡΙΟ ΑΛΓΟΡΙΘΜΩΝ ΒΟΗΘΟΣ: ΒΑΓΓΕΛΗΣ ΔΟΥΡΟΣ

Αλγόριθµοι Ροής σε Γράφους (CLR, κεφάλαιο 27)

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥ ΩΝ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ΜΑΘΗΜΑΤΙΚΑ Ι (ΘΕ ΠΛΗ 12)

Transcript:

υναµικός Προγραµµατισµός Στην ενότητα αυτή θα µελετηθούν τα εξής θέµατα: Σχεδιασµός αλγορίθµων µε υναµικό Προγραµµατισµό Το πρόβληµα του πολλαπλασιασµού πινάκων ΕΠΛ 3 Αλγόριθµοι και Πολυπλοκότητα 3-

υναµικός Προγραµµατισµός Αν η λύση ενός προβλήµατος µπορεί να εκφραστεί µαθηµατικά µε αναδροµικό τρόπο, τότε το πρόβληµα µπορεί να λυθεί από ένα αναδροµικό αλγόριθµο. Συχνά οι µεταγλωττιστές γλωσσών προγραµµατισµού συντείνουν ώστε η εκτέλεση πολλών αναδροµικών προγραµµάτων να µην είναι αποδοτική. Σε τέτοιες περιπτώσεις µπορούµε να βοηθήσουµε τον µεταγλωττιστή µετατρέποντας τον αλγόριθµο σε µη-αναδροµικό αλγόριθµο ο οποίος συστηµατικά φυλάει απαντήσεις υποπροβληµάτων σε ένα πίνακα. Μια τεχνική η οποία χρησιµοποιεί αυτή τη µέθοδο είναι γνωστή ως δυναµικός προγραµµατισµός (dyamic programmig). ΕΠΛ 3 Αλγόριθµοι και Πολυπλοκότητα 3-

υναµικός Προγραµµατισµός Όπως και η µέθοδος διαίρει και βασίλευε ο δυναµικός προγραµµατισµός επιλύει προβλήµατα συνδυάζοντας λύσεις υποπροβλήµατων. Σηµαντική διαφορά των δύο µεθόδων: Η διαίρει και βασίλευε χωρίζει ένα πρόβληµα σε ανεξάρτητα υποπροβλήµατα. Ο δυναµικός προγραµµατισµός είναι εφαρµόσιµος και εκεί όπου τα υποπροβλήµατα επικαλύπτονται, και έχουν κοινά υποπροβλήµατα. Ενώ ένας διαίρει και βασίλευε αλγόριθµος θα έλυνε κοινά υποπροβλήµατα ξανά και ξανά, ένας αλγόριθµος δυναµικού προγραµµατισµού λύνει κάθε υποπρόβληµα ακριβώς µια φορά και καταχωρεί τη λύση σε ένα πίνακα από όπου µπορεί να την διαβάσει κάθε φορά που το πρόβληµα ξανασυναντιέται. ΕΠΛ 3 Αλγόριθµοι και Πολυπλοκότητα 3-3

Φάσεις στη σχεδίαση ενός αλγόριθµου Π. Χαρακτήρισε τη δοµή µιας βέλτιστης λύσης.. Όρισε αναδροµικά την τιµή µιας βέλτιστης λύσης. 3. Υπολόγισε τη βέλτιστη λύση και την τιµή της από κάτω προς τα πάνω. ΕΠΛ 3 Αλγόριθµοι και Πολυπλοκότητα 3-4

Πολλαπλασιασµός πινάκων οθέντων πινάκων Α, Β, Γ,, ποιος είναι ο πιο αποδοτικός τρόπος για να υπολογίσουµε το γινόµενο Α Β Γ ; Υπάρχουν διάφορες επιλογές που αντιστοιχούν στους διαφορετικούς τρόπους τοποθέτησης παρενθέσεων: ((ΑΒ)Γ), (ΑΒ)(Γ ), (Α(ΒΓ)), Α((ΒΓ) ), Όλοι οι τρόποι οδηγούν στο ίδιο αποτέλεσµα λόγω της επιµεριστικότητας της πράξης του πολλαπλασιασµού πινάκων Όµως το κόστος (ο συνολικός αριθµός βηµάτων) κάθε παρενθεσιοποίησης είναι διαφορετικός και εξαρτάται από τις διαστάσεις των πινάκων. ΕΠΛ 3 Αλγόριθµοι και Πολυπλοκότητα 3-5

Πολλαπλασιασµός πινάκων Κόστος πολλαπλασιασµού: Αν ο πίνακας Α έχει a σειρές και b στήλες και ο πίνακας Β έχει b σειρές και c στήλες, τότε o πίνακας ΑΒ έχει a σειρές και c στήλες και υπολογισµός του απαιτεί a b c πολλαπλασιασµούς. AB[ i][ j] = b = A[ i][ ] B[ ][ j] Παράδειγµα: Έστω πίνακες Α, Β, Γ,, διαστάσεων 0 0, 0 5, 5 40, 40 0. Τότε Κόστος του γινοµένου ((ΑΒ) Γ) είναι 7000 Κόστος του γινοµένου (ΑΒ)(Γ ) είναι 3500 ΕΠΛ 3 Αλγόριθµοι και Πολυπλοκότητα 3-6

Το πρόβληµα Έστω πίνακες Α, Α,.., Α όπου ο i-στός πίνακας έχει c i- σειρές και c i στήλες Στόχος: εύρεση σειράς πολλαπλασιασµών για υπολογισµό του γινοµένου Γ = i= A i η οποία να ελαχιστοποιεί τον συνολικό αριθµό πολλαπλασιασµών. ΕΠΛ 3 Αλγόριθµοι και Πολυπλοκότητα 3-7

Λύση Εξαντλητική ανάλυση όλων των δυνατών παρενθεσιοποιήσεων. εν οδηγεί σε αποδοτικό αλγόριθµο: Έστω P() ο αριθµός των παρενθεσιοποιήσεων µιας αλυσίδας µήκους. Αφού η αλυσίδα µπορεί να σπάσει µεταξύ της και της θέσης για οποιοδήποτε, -, και οι προκύπτουσες µικρότερες αλυσίδες να παρενθεσιοποιηθούν αναδροµικά και ανεξάρτητα, έχουµε = P( ) =, [ P( ) P( )], Μπορεί να αποδειχθεί ότι η λύση της πιο πάνω αναδροµική εξίσωσης είναι ( ) 4 P( ) = Ω 3 if if = ΕΠΛ 3 Αλγόριθµοι και Πολυπλοκότητα 3-8

Λύση Φάση : Χαρακτηρισµός δοµής βέλτιστης λύσης. Ι ΙΟΤΗΤΑ ΒΕΛΤΙΣΤΗΣ ΠΑΡΕΝΘΕΣΙΟΠΟΙΗΣΗΣ Έστω ότι η βέλτιστη παρενθεσιοποίηση σπάζει την αλυσίδα µεταξύ των θέσεων και. Τότε οι παρενθεσιοποιήσεις των υποαλυσιδών Α,, Α και Α,, Α είναι και αυτές βέλτιστες. ιαφορετικά, µια καλύτερη παρενθεσιοποίηση της υποαλυσίδας θα οδηγούσε σε παρενθεσιοποίηση ολόκληρης της αλυσίδας καλύτερης από τη βέλτιστη. ΕΠΛ 3 Αλγόριθµοι και Πολυπλοκότητα 3-9

Φάση : Αναδροµικός ορισµός βέλτιστης λύσης Γράφουµε A[i,j] για το γινόµενο Α i Α j και m[i,j] για τον ελάχιστο αριθµό πολλαπλασιασµών που απαιτούνται για τον υπολογισµό του πίνακα Α[i,j]. Αν l r, έχουµε m[ l, r] = mi l i r ( m[ l, i] m[ i, r] cl cicr ) Θέτουµε m[i,i]=0, και έτσι παίρνουµε ένα σύνολο αναδροµικών εξισώσεων. Το ελάχιστο κόστος υπολογισµού του γινοµένου Γ δίνεται από το m[,]. ΕΠΛ 3 Αλγόριθµοι και Πολυπλοκότητα 3-0

Αλγόριθµος Σε αυτό το σηµείο φαίνεται προφανής ο πιο κάτω αναδροµικός αλγόριθµος ο οποίος υπολογίζει το c[,m]. multiply(it l, it r){ if (l==r) retur 0; else m = ; for (i=; i<; i){ = multiply(l,i) multiply(i,r) c[l-] c[i] c[r]; m = mi(m,); } } Ποιος ο χρόνος εκτέλεσης της πιο πάνω διαδικασίας; ΕΠΛ 3 Αλγόριθµοι και Πολυπλοκότητα 3-

ΕΠΛ 3 Αλγόριθµοι και Πολυπλοκότητα 3- Αλγόριθµος Χρόνος Εκτέλεσης Έστω Τ() o χρόνος εκτέλεσης της διαδικασίας multiply(l,r), µε r-l =. Έχουµε την πιο κάτω αναδροµική σχέση: Αφού κάθε όρος Τ(ι) εµφανίζεται δύο φορές µέσα στο άθροισµα έχουµε ότι Επιλύουµε την αναδροµική ανισότητα µε τη µέθοδο της επαγωγής.. Προβλέπουµε ότι Τ() Ω( ).. Θα δείξουµε µε τη µέθοδο της επαγωγής ότι για κάθε Τ() -. if ), ) ( ) ( ( ) ( () > = T T T T = = = ) ( ) ( T() T T

ΕΠΛ 3 Αλγόριθµοι και Πολυπλοκότητα 3-3 Αλγόριθµος Χρόνος Εκτέλεσης Προφανώς η πρόταση ισχύει για =. Υποθέτουµε ότι ισχύει για κάθε <. Τότε όπως χρειάζεται. Συνεπώς ο αλγόριθµος είναι εκθετικός, και δεν αποτελεί βελτίωση από την εξαντλητική ανάλυση της λύσης. ) ( = = = T() T

Αλγόριθµος Χρόνος Εκτέλεσης Γιατί απέτυχε ο προφανής αλγόριθµος; m(,4) m(,) m(3,4) m(,3) m(4,4) m(,) m(,4) m(,) m(,) m(3,3) m(4,4) m(,) m(3,4) m(,3) m(4,4) m(,) m(,3) m(,) m(3,3) m(3,3) m(4,4) m(,) m(3,3) m(,) m(3,3) m(,) m(,) ΕΠΛ 3 Αλγόριθµοι και Πολυπλοκότητα 3-4

Φάση 3: Υπολογισµός βέλτιστης λύσης από κάτω προς τα πάνω Πόσα υποπροβλήµατα υπάρχουν; Όσα και τα ζεύγη i, j, i j, δηλαδή Θ( Θα υπολογίσουµε τις τιµές m[l,r], από κάτω και πηγαίνοντας προς τα πάνω : αρχικά το κόστος ακολουθιών µήκους 0, στη συνέχεια ακολουθιών µήκους,, ιατηρούµε τις τιµές στον πίνακα C, του οποίου αρχικά όλες οι θέσεις έχουν την τιµή 0. ) Ο πίνακας D περιέχει τις διαστάσεις των πινάκων, δηλαδή: D = [c 0, c,, c ] ΕΠΛ 3 Αλγόριθµοι και Πολυπλοκότητα 3-5

for (l = ; l <= ; l) C[l,l] = 0; Αλγόριθµος for (=; <=; ) for (l=; l<= -; l) r=l; C[l,r]= ; for (i=l; i<r; i) temp = C[l,i]C[i,r] D[l-] D[i] D[r]; if (C[l,r] > temp) C[l,r] = temp; ΕΠΛ 3 Αλγόριθµοι και Πολυπλοκότητα 3-6

Ανάλυση Αλγόριθµου Με τον πιο πάνω αλγόριθµο, το κάθε υποπρόβληµα λύνεται µόνο µια φορά. Η λύση του καταχωρείται στον πίνακα C από όπου µπορεί να χρησιµοποιηθεί κάθε φορά που το υποπρόβληµα καλείται από ένα µεγαλύτερο (υπο)πρόβληµα. Ανάλυση χρόνου εκτέλεσης: Υπάρχουν Θ(²) υποπροβλήµατα. Το κάθε ένα από αυτά απαιτεί χρόνο Ο() (για εύρεση του ελάχιστου από τα Ο() αθροίσµατα που αντιστοιχούν σε κάθε πιθανή διάσπαση της αλυσίδας). Άρα συνολικά απαιτείται χρόνος Ο(³) ΕΠΛ 3 Αλγόριθµοι και Πολυπλοκότητα 3-7

Παράδειγµα Εκτέλεσης Έστω πίνακες Α διαστάσεων 6 5 Α διαστάσεων 5 8 Α3 διαστάσεων 8 4 Α4 διαστάσεων 4 0 Α5 διαστάσεων 0 3 A6 διαστάσεων 3 7 π.χ. η θέση m[,5] υπολογίζεται ως εξής m[,5] = = m[,] m[3,5] cc m[,3] m[4,5] cc m[,4] m[5,5] cc 336 3 4 c c c 5 5 5 = 0 6 5 8 3 = 336, = 60 0 5 4 3 = 340, = 360 0 5 0 3 = 50 ΕΠΛ 3 Αλγόριθµοι και Πολυπλοκότητα 3-8

Παράδειγµα Εκτέλεσης Έστω A[6,5], A[5,8], A3[8,4], A4[4,0], A5[0,3], A6[3,7], i/j 3 4 5 6 0 40 80 50 46 55 0 60 360 336 44 3 0 30 6 384 4 0 0 04 5 0 0 6 0 ΕΠΛ 3 Αλγόριθµοι και Πολυπλοκότητα 3-9

Εύρεση βέλτιστης παρενθεσιοποίησης Mε τον πιο πάνω αλγόριθµο υπολογίζουµε τον ελάχιστο αριθµό πολλαπλασιασµών που απαιτούνται για τον υπολογισµό του Α Α Πως µπορούµε να υπολογίσουµε επίσης και τη συγκεκριµένη παρενθεσιοποίηση που αντιστοιχεί στον αριθµό αυτό; Χρησιµοποιώντας ένα δεύτερο πίνακα Β[,], όπου κατά την εκτέλεση του αλγόριθµο, φυλάγουµε, στη θέση B[l,r], το σηµείο της βέλτιστης διάσπασης για υπολογισµό του γινοµένου Α l Α r. Συγκεκριµένα προσθέτουµε στον κώδικα: if (C[l,r] > temp) C[l,r] = temp; B[l,r] = i; Ξεκινώντας από τη θέση B[,] µπορούµε να επιστρέψουµε όλα τα σηµεία τοποθέτησης παρενθέσεων από έξω προς τα µέσα ως εξής: Αν Β[,] = i, συµπεραίνουµε ότι παρενθέσεις υπάρχουν ανάµεσα στα Α Α i, A i A, και προχωρούµε στις θέσεις Β[,i] και Β[i,] για τις βέλτιστες παρενθεσιοποιήσεις των δύο κοµµατιών. ΕΠΛ 3 Αλγόριθµοι και Πολυπλοκότητα 3-0