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

Σχετικά έγγραφα
Αλγόριθµοι και Πολυπλοκότητα

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

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

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

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

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

Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 1

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

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

Εισαγωγή στους Αλγορίθμους Ενότητα 11η Άσκηση - Σταθμισμένος Χρονοπρογραμματισμός Διαστημάτων

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 9: Αναδρομή

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 5: ΚΑΤΗΓΟΡΙΕΣ ΑΛΓΟΡΙΘΜΙΚΩΝ ΠΡΟΒΛΗΜΑΤΩΝ-ΑΝΑΓΩΓΗ

Εισαγωγή στους Υπολογιστές

Θερμοδυναμική. Ανοικτά Ακαδημαϊκά Μαθήματα. Πίνακες Νερού σε κατάσταση Κορεσμού. Γεώργιος Κ. Χατζηκωνσταντής Επίκουρος Καθηγητής

Προγραμματισμός Η/Υ. Βασικές Προγραμματιστικές Δομές. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

Επιστηµονικός Υπολογισµός Ι Ενότητα 5 - Επίλυση Γραµµικών Συστηµάτων. Ευστράτιος Γαλλόπουλος

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

Διοικητική Λογιστική

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

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

Λογιστική Κόστους Ενότητα 12: Λογισμός Κόστους (2)

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 7: Αλγόριθμοι γραμμικής άλγεβρας

Λογιστική Κόστους Ενότητα 8: Κοστολογική διάρθρωση Κύρια / Βοηθητικά Κέντρα Κόστους.

Διδακτική των εικαστικών τεχνών Ενότητα 1

Έλεγχος και Διασφάλιση Ποιότητας Ενότητα 4: Μελέτη ISO Κουππάρης Μιχαήλ Τμήμα Χημείας Εργαστήριο Αναλυτικής Χημείας

Εισαγωγή στους Η/Υ. Ενότητα 2β: Αντίστροφο Πρόβλημα. Δημήτρης Σαραβάνος, Καθηγητής Πολυτεχνική Σχολή Τμήμα Μηχανολόγων & Αεροναυπηγών Μηχανικών

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 2

Βέλτιστος Έλεγχος Συστημάτων

Βέλτιστος Έλεγχος Συστημάτων

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 6: Αποτελεσματικότητα αλγορίθμων

Υπολογιστική άλγεβρα Ενότητα 10: Βάσεις Groebner ενός ιδεώδους ΙΙΙ

P (B) P (B A) = P (AB) = P (B). P (A)

Πρακτική Άσκηση σε σχολεία της δευτεροβάθμιας εκπαίδευσης

Πιθανότητες και Στατιστική Ενότητα 2: Δεσμευμένη πιθανότητα και στοχαστική ανεξαρτησία Αντώνιος Οικονόμου Σχολή Θετικών Επιστημών Τμήμα Πληροφορικής κ

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 6

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

Διεθνείς Οικονομικές Σχέσεις και Ανάπτυξη

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

Θεατρικές Εφαρμογές και Διδακτική της Φυσικής Ι

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 3: Έλεγχοι στατιστικών υποθέσεων

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 1: Καταχώρηση δεδομένων

Ψηφιακή Επεξεργασία Εικόνων

Διδακτική των εικαστικών τεχνών Ενότητα 3

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Βέλτιστος Έλεγχος Συστημάτων

Διδακτική των εικαστικών τεχνών Ενότητα 2

ΑΛΓΟΡΙΘΜΟΙ. Ενότητα 8: Δυναμικός Προγραμματισμός. Ιωάννης Μανωλόπουλος, Καθηγητής Αναστάσιος Γούναρης, Επίκουρος Καθηγητής Τμήμα Πληροφορικής ΑΠΘ

Διδακτική των εικαστικών τεχνών Ενότητα 2

Ενότητα. Εισαγωγή στις βάσεις δεδομένων

Διδακτική των εικαστικών τεχνών Ενότητα 2

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 2: Περιγραφική στατιστική

Διδακτική των εικαστικών τεχνών Ενότητα 2

Εισαγωγή στους Αλγορίθμους Ενότητα 9η Άσκηση - Αλγόριθμος Prim

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

Κβαντική Επεξεργασία Πληροφορίας

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 3: Συναρτήσεις

Κβαντική Επεξεργασία Πληροφορίας

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 6: Πίνακες [2/2] (Δισδιάστατοι)

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Το Εικονογραφημένο Βιβλίο στην Προσχολική Εκπαίδευση

Βέλτιστος Έλεγχος Συστημάτων

Ηλεκτρομαγνητισμός - Οπτική - Σύγχρονη Φυσική Ενότητα: Οπτική. Βαρουτάς Δημήτρης Σχολή Θετικών Επιστημών Τμήμα Πληροφορικής και Τηλεπικοινωνιών

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 4: ΑΝΑΠΑΡΑΣΤΑΣΗ ΔΕΔΟΜΕΝΩΝ - ΔΕΝΤΡΑ

Μυελού των Οστών Ενότητα #1: Ερωτήσεις κατανόησης και αυτόαξιολόγησης

Λειτουργία και εφαρμογές της πολιτιστικής διαχείρισης

Διδακτική των εικαστικών τεχνών Ενότητα 2

Μικροοικονομική Ανάλυση της Κατανάλωσης και της Παραγωγής

Φιλοσοφία της Ιστορίας και του Πολιτισμού

Τίτλος Μαθήματος. Ενότητα 1: Γενικά περί λογικού προγραμματισμού

Θερμοδυναμική. Ανοικτά Ακαδημαϊκά Μαθήματα. Πίνακες Νερού Υπέρθερμου Ατμού. Γεώργιος Κ. Χατζηκωνσταντής Επίκουρος Καθηγητής

Γενικά Μαθηματικά Ι. Ενότητα 12: Κριτήρια Σύγκλισης Σειρών. Λουκάς Βλάχος Τμήμα Φυσικής ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Γενική Φυσική Ενότητα: Ταλαντώσεις

Ενδεικτικές λύσεις ασκήσεων διαχείρισης έργου υπό συνθήκες αβεβαιότητας

Λογικός Προγραμματισμός Ασκήσεις

Αλγόριθμοι και πολυπλοκότητα Συγχωνευτική Ταξινόμηση

ΔΙΑΧΕΙΡΙΣΗ ΕΦΟΔΙΑΣΤΙΚΗΣ ΑΛΥΣΙΔΑΣ

Γενική Φυσική Ενότητα: Εισαγωγή στην Ειδική Θεωρία της Σχετικότητας

Τίτλος Μαθήματος: Μαθηματική Ανάλυση Ενότητα Γ. Ολοκληρωτικός Λογισμός

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

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Δομές Δεδομένων Ενότητα 1

Μεθοδολογία Έρευνας Κοινωνικών Επιστημών Ενότητα 2: ΣΥΓΚΕΝΤΡΩΣΗ ΠΛΗΡΟΦΟΡΙΩΝ ΜΑΡΚΕΤΙΝΓΚ Λοίζου Ευστράτιος Τμήμα Τεχνολόγων Γεωπόνων-Kατεύθυνση

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 4: Συναρτήσεις

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

Ορισμός κανονικής τ.μ.

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 8: Συστήματα αρίθμησης

Γραμμική Άλγεβρα και Μαθηματικός Λογισμός για Οικονομικά και Επιχειρησιακά Προβλήματα

Εισαγωγή στις Επιστήμες της Αγωγής

Παιδαγωγική ή Εκπαίδευση ΙΙ

Εισαγωγή στην Διοίκηση Επιχειρήσεων

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

Γραμμική Άλγεβρα και Μαθηματικός Λογισμός για Οικονομικά και Επιχειρησιακά Προβλήματα

ΑΛΓΟΡΙΘΜΟΙ. Ενότητα 12: Αντιμετώπιση Περιορισμών Αλγοριθμικής Ισχύος

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 5

Γενική Φυσική Ενότητα: Δυναμική Άκαμπτου Σώματος

Ποιοτική μεθοδολογία έρευνας στη Διδακτική των Μαθηματικών Ενότητα 7: Συγγραφή μιας εργασίας

Transcript:

Αλγόριθµοι και Πολυπλοκότητα Ενότητα 5 υναµικός Προγραµµατισµός Ν. Μ. Μισυρλής Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 5 1 / 49

Εισαγωγή Ο δυναµικός προγραµµατισµός (dynamic programming), αποτελεί ένα ισχυρό εργαλείο, για την επίλυση συνδυαστικών προβληµάτων ϐελτιστοποίησης. Στον δυναµικό προγραµµατισµό, η επίλυση ενός προβλήµατος, προκύπτει από την λύση µικρότερων υποπροβληµάτων τα οποία αλληλοεπικαλύπτονται (overlapping subproblems). Κάθε υποπρόβληµα λύνεται µια µόνο ϕορά και η ϐέλτιστη λύση αποθηκεύεται σ ένα πίνακα. Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 5 2 / 49

Εισαγωγή Τέσσερα είναι τα ϐασικά ϐήµατα για την ανάπτυξη ενός αλγορίθµου δυναµικού προγραµµατισµού. 1 Χαρακτηρισµός της δοµής της ϐέλτιστης λύσης. 2 Αναδροµικός ορισµός της τιµής της ϐέλτιστης λύσης. 3 Υπολογισµός της τιµής της ϐέλτιστης λύσης από κάτω προς τα πάνω. 4 Κατασκευή της ϐέλτιστης λύσης µε χρήση πίνακα. Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 5 3 / 49

Βασικά Στοιχεία υναµικού Προγραµµατισµού Βέλτιστα διασπώµενη δοµή (optimal substructure) Κάθε υποστρατηγική µιας ϐέλτιστης στρατηγικής είναι και η ίδια ϐέλτιστη. Η ϐέλτιστη λύση ενός προβλήµατος, εµπεριέχει ϐέλτιστες λύσεις υποπροβληµάτων του. Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 5 4 / 49

Βέλτιστα διασπώµενη δοµή (optimal substructure) Μια µεθοδολογία για να ανακαλύψουµε την ϐέλτιστα διασπώµενη δοµή 1 Αποδεικνύουµε ότι µια οποιαδήποτε λύση στο πρόβληµα, συνίσταται στο να κάνουµε µια επιλογή. Η επιλογή αυτή οδηγεί σε ένα ή περισσότερα υποπροβλήµατα τα οποια πρέπει να επιλυθούν. 2 Θεωρούµε τώρα ότι έχουµε δεδοµένη την επιλογή η οποία οδηγεί στην ϐέλτιστη λύση, χωρίς να µας απασχολεί προς το παρόν, πως ορίζεται αυτή. 3 εδοµένης λοιπόν της επιλογής αυτής, ορίζουµε τα νέα υποπροβλήµατα. 4 Τέλος αποδεικνύουµε ότι όντως οι ϐέλτιστες λύσεις των υποπροβληµάτων αυτών οδηγούν στη ϐέλτιστη λύση του αρχικού προβλήµατος. Η απόδειξη γίνεται συνήθως µε εις άτοπον απαγωγή. Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 5 5 / 49

Βέλτιστα διασπώµενη δοµή (optimal substructure) Η τεχνική του δυναµικού προγραµµατισµού χρησιµοποιεί τη ϐέλτιστα διασπώµενη δοµή, από κάτω προς τα πάνω (bottom-up). Στην ουσία χρησιµοποιούµε µια αναδροµική σχέση ώστε να υπολογίσουµε τη ϐέλτιστη λύση του αρχικού προβλήµατος. Κριτήριο ανεξαρτησίας (independency) των υποπροβληµάτων: διασφαλίζει τη ϐέλτιστα διασπώµενη δοµή, δηλ. ότι η λύση ενός προβλήµατος δεν επηρεάζει τα υπόλοιπα. Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 5 6 / 49

Βέλτιστα διασπώµενη δοµή (optimal substructure) Εστω το µέγιστο απλό µονοπάτι q t, δυο µέγιστα απλά µονοπάτια p 1 : q r και p 2 : r t. Οµως το p 1 είναι το q s t r. Ο συνδυασµός των λύσεων δίνει µέγιστο µονοπάτι που δεν είναι απλό. εν υπάρχει λύση για το δεύτερο υποπρόβληµα άρα το αρχικό µας πρόβληµα δεν έχει λύση. Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 5 7 / 49

Το γράφηµα του σχήµατος δείχνει ότι δεν υπάρχει ϐέλτιστα διασπώµενη δοµή για το πρόβληµα του µέγιστου απλού µονοπατιού q r t s Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 5 8 / 49

Επικαλυπτόµενα υποπροβλήµατα (Overlapping subproblems) Το δεύτερο κριτήριο είναι των επικαλυπτόµενων υποπροβληµάτων. Κάθε αλγόριθµος δυναµικού προγραµµατισµού, παράγει πολυωνυµικό, πλήθος διαφορετικών υποπροβληµάτων. Κάθε ένα από τα υποπροβλήµατα εµφανίζεται, πιθανόν, αρκετές ϕορές. Μόλις επιλυθεί ένα υποπρόβληµα, η τιµή της ϐέλτιστης λύσης του, αποθηκεύεται σ ένα πίνακα. Οταν απαιτηθεί να επιλυθεί ξανά, τότε απλά ανακαλείται η τιµή της ϐέλτισης λύσης του υποπροβλήµατος από τον πίνακα (σε σταθερό χρόνο). Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 5 9 / 49

Επικαλυπτόµενα υποπροβλήµατα (Overlapping subproblems) Παρατηρήσεις εν ϑα πρέπει να δηµιουργείται σύγχυση ανάµεσα στην ιδιότητα της επικάλυψης µε αυτή της ανεξαρτησίας. περίπτωση 1: Το ίδιο υποπρόβληµα που εµφανίζεται περισσότερες ϕορές κατά την διάρκεια της εκτέλεσης. περίπτωση 2: Ανεξαρτησία των δεδοµένων του υποπροβλήµατος. Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 5 10 / 49

Εφαρµογές Χρονοδροµολόγηση γραµµής παραγωγής Ζητάµε να αποφασίσουµε από ποιούς σταθµούς ϑα περάσει το αυτοκίνητο έτσι ώστε να ελαχιστοποιήσουµε το χρόνο κατασκευής του. Εργοστάσιο κατασκευής αυτοκινήτων µε δύο γραµµές παραγωγής. e 1 S 1,1 S 1,2 S 1,3 S 1,n 1 S 1,n a 1,1 a 1,2 a 1,3 a a 1,n 1,n 1 t 1,1 t 1,2 t 1,3 t 1,n 1 x 1 Entrance e 2 t 2,1 t 2,2 t 2,3 t 2,n 1 a 2,1 a 2,2 a 2,3 a 2,n 1 a 2,n S 2,1 S 2,2 S 2,3 S 2,n 1 S 2,n x 2 Exit Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 5 11 / 49

Εφαρµογές Βήµα 1: Βέλτιστα διασπώµενη δοµή: Η ϐέλτιστη λύση του προβλήµατος της εύρεσης του συντοµότερου µονοπατίου µέχρι τον S 1j εµπεριέχει τις ϐέλτιστες λύσεις στα υποπροβλήµατα των συντοµότερων µονοπατιών προς τους σταθµούς S 1j 1 και S 2j 1. Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 5 12 / 49

Εφαρµογές Βήµα 2: Αναδροµικός ορισµός της τιµής της ϐέλτιστης λύσης Ορίζουµε τον πίνακα f διάστασης 2 n, όπου στη ϑέση f ij (i = 1, 2 και j = 1, 2,..., n) αποθηκεύουµε τον ελάχιστο χρόνο µέχρι και τον σταθµό S ij. Η ϐέλτιστη λύση: f = min{f 1n + x 1, f 2n + x 2 } (1) ύο αναδροµικές σχέσεις που υπολογίζουν τις δύο γραµµές του πίνακα f. f 1j = { e1 + a 11 j = 1 min{f 1j 1 + a 1j, f 2j 1 + t 2j 1 + a 1j } j 2 (2) και όµοια: f 2j = { e2 + a 21 j = 1 min{f 2j 1 + a 2j, f 1j 1 + t 1j 1 + a 2j } j 2 (3) Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 5 13 / 49

Εφαρµογές Βήµα 3: Υπολογισµός του ελάχιστου χρόνου από (1), (2) ή (3) T 1 (n) = T 2 (n) = T 1 (n 1)+T 2 (n 1). Αρα T 1 (n) = T 2 (n) = Ω(2 n ). Μπορούµε να κάνουµε καλύτερα από εκθετικό χρόνο Ναι. Αποθηκεύουµε κάθε τιµή f ij σε ένα πίνακα (διαστάσεων 2 n) Ανακαλούµε κάθε ϕορά την τιµή από κάποιο προηγούµενο ϐήµα. Βέλτιστη διαδροµή σε χρόνοθ(n). Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 5 14 / 49

1. f 11 e 1 + a 1,1 2. f 21 e 2 + a 2,1 3. for j = 2 to n do 4. if f 1,j 1 + a 1,j f 2,j 1 + t 2,j 1 + a 1,j then 5. f 1j = f 1,j 1 + a 1,j 6. l 1j = 1 7. else 8. f 1j = f 2,j 1 + t 2,j 1 + a 1,j 9. l 1j = 2 10. end if 11. if f 2,j 1 + a 2,j f 1,j 1 + t 1,j 1 + a 2,j then 12. f 2j = f 2,j 1 + a 2,j 13. l 2j = 2 14. else 15. f 2j = f 1,j 1 + t 1,j 1 + a 2,j 16. l 2j = 1 17. end if 18. if f 1n + x 1 f 2n + x 2 then 19. f = f 1n + x 1 20. l = 1 21. else 22. f = f 2n + x 2 23. l = 2 24. end if Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 5 15 / 49

S 1,1 S 1,2 S 1,3 S 1,4 S 1,5 S 1,6 assembly line 1 7 9 3 4 8 4 enter 2 4 2 3 1 3 4 3 2 1 2 2 1 exit 2 assembly line 2 8 5 6 4 5 7 S 2,1 S 2,2 S 2,3 S 2,4 S 2,5 S 2,6 1 2 3 4 5 6 2 3 4 5 6 f 1 [j] 9 18 20 24 32 35 l 1 [j] 1 2 1 1 2 f 2 [j] 12 16 22 25 30 37 l 2 [j] 1 2 1 1 2 f = 38 l = 1 Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 5 16 / 49

Αλυσιδωτός πολλαπλασιασµός πινάκων Ζητάµε να υπολογίσουµε το γινόµενο A 1 A 2...A n (4) όσο το δυνατόν πιο αποδοτικά (µε το λιγότερο δυνατό κόστος). Το κόστος πολλαπλασιασµού δύο πινάκων A, B µε διαστάσεις p q και q r αντίστοιχα, είναι p q r. Το κόστος του πολλαπλασιασµόυ µεταβαλλεται ανάλογα µε τη σειρά που ϑα εκτελέσουµε τους πολλαπλασιασµούς. Παράδειγµα: Εστω το γινόµενο A 1 A 2 A 3 A 4. (A 1 ((A 2 A 3 ) A 4 )) ή ((A 1 A 2 ) (A 3 A 4 )) Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 5 17 / 49

Αλυσιδωτός πολλαπλασιασµός πινάκων Ασκηση: Να δειχθεί ότι ο υπολογισµός του αριθµού των παρενθετοποιήσεων δίδεται από την αναδροµή: T(n) = Επίσης να δειχθέι ότι η λύση είναιω(2 n ). { 1 αν, n = 1 n 1 k=1 T(k)T(n k), αν n 2 (5) Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 5 18 / 49

Αλυσιδωτός πολλαπλασιασµός πινάκων Βήµα 1: Βέλτιστα διασπώµενη δοµή Βήµα 1: Βέλτιστα διασπώµενη δοµή ϑα χρησιµοποιήσουµε τον συµβολισµό A ij εννοώντας το γινόµενο A i A i+1...a j όπου i j. Συµβολικά έχουµε: cost(a ij ) = cost(a ik )+cost(a k+1,j )+cost(a ik A k+1,j ) (6) Η ϐέλτιστη παρενθετοποίηση του γινοµένου A ij είναι αυτή που προκύπτει από την ϐέλτιστη παρενθετοποίηση των γινοµένων A ik και A k+1,j. Η ϐέλτιστη λύση του προβλήµατος µας, έγκειται στον υπολογισµό του ελαχίστου κόστους της παρενθετοποίησης του γινοµένου A 1n. Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 5 19 / 49

Αλυσιδωτός πολλαπλασιασµός πινάκων Βήµα 2: Αναδροµικός ορισµός της τιµής της ϐέλτιστης λύσης Ο πίνακας A ik έχει διαστάσεις p i 1 p k και αντίστοιχα ο A k+1,j, p k p j cost(a ik A k+1,j ) = p i 1 p k p j. 1 i k < j n Ορίζουµε τον πίνακα m διάστασης n n, όπου στη ϑέση m[i, j] αποθηκεύουµε το ελάχιστο κόστος που απαιτείται για τον υπολογισµό του γινοµένου A ij. Στη ϑέση m[1, n] αποθηκεύεται το ελάχιστο κόστος υπολογισµού του γινοµένου A 1n. m[i, j] = min i k<j {m[i, k]+m[k + 1, j]+p i 1 p k p j }. Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 5 20 / 49

Αλυσιδωτός πολλαπλασιασµός πινάκων Βήµα 2: Αναδροµικός ορισµός της τιµής της ϐέλτιστης λύσης Συνοπτικά λοιπόν έχουµε: { 0, i = j m[i, j] = { min i k<j m[i, k]+m[k + 1, j]+p i 1 p k p j }, i < j (7) Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 5 21 / 49

Αλυσιδωτός πολλαπλασιασµός πινάκων Η 7 υλοποιείται ως εξής: ΑΝΑ ΡΟΜΙΚΗ ΑΚΟΛΟΥΘΙΑ ΠΙΝΑΚΩΝ(p, i, j) 1. Αν i = j 2. τότε επιστροφή 0 3. m[i, j] = 4. Για k = i έως j 1 5. q =ΑΝΑ ΡΟΜΙΚΗ ΑΚΟΛΟΥΘΙΑ ΠΙΝΑΚΩΝ(p, i, k) 6. + ΑΝΑ ΡΟΜΙΚΗ ΑΚΟΛΟΥΘΙΑ ΠΙΝΑΚΩΝ(p, k + 1, n) 7. +p i 1 p k p j 8. αν q < m[i, j] 9. τότε m[i, j] = q 10. επιστροφή m[i, j] Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 5 22 / 49

Αλυσιδωτός πολλαπλασιασµός πινάκων T(1) 1 n 1 T(n) 1+ (T(k)+T(n k)+1), n > 1 k=1 n 1 T(n) 2 T(i)+ n k=1 Μέθοδος αντικατάστασης Θα δείξουµε ότι Βάση: n = 1 έχουµε T(n) 2 n 1 T(1) 2 0 = 1 το οποίο ισχύει. Βήµα: Για n 2 έχουµε Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 5 23 / 49

Αλυσιδωτός πολλαπλασιασµός πινάκων- Μέθοδος αντικατάστασης Εποµένως n 1 T(n) 2 2 i 1 + n i=1 n 2 = 2 2 i + n i=0 = 2(2 0 + 2 1 + +2 n 2 )+n ( ) 2 n 2 2 2 0 = + n 2 1 = 2(2 n 1 1)+n = 2 n + n 2 2 n 1 T(n) = Ω(2 n ). Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 5 24 / 49

Υποµνηµατισµός Η ϐασική ιδέα είναι να υποµνηµατίσουµε τον ϕυσικό, αλλά ϐραδύ, αναδροµικό αλγόριθµο. Τηρούµε έναν πίνακα µε λύσεις υποπροβληµάτων Ενας υποµνηµατικός αναδροµικός αλγόριθµος τηρεί ένα στοιχείο πίνακα για τη λύση του κάθε υποπροβλήµατος. Το κάθε στοιχείο πίνακα αρχικά περιέχει µια ειδική τιµή η οποία υποδεικνύει ότι το στοιχείο δεν έχει ακόµα συµπληρωθεί. Οταν το αντίστοιχο υποπρόβληµα απαντάται για πρώτη ϕορά κατά την εκτέλεση του αναδροµικού αλγορίθµου, υπολογίζεται η λύση του και κατόπιν αποθηκεύεται στον πίνακα. Στη συνέχεια, κάθε ϕορά που απαντάται ξανά το συγκεκριµένο υποπρόβληµα, απλώς ανακαλείται και επιστρέφεται η τιµή που είναι αποθηκευµένη στον πίνακα. Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 5 25 / 49

Υποµνηµατισµός ΥΠΟΜΝΗΜΑΤΙΚΗ ΑΚΟΛΟΥΘΙΑ ΠΙΝΑΚΩΝ(p) 1. n µήκος[p] 1 2. Για i 1 έως n 3. για j 1 έως n 4. m[i, j] 5. επιστροφή ΑΝΑΚΛΗΣΗ ΑΛΛΗΛΟΥΧΙΑΣ(p, 1, n) Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 5 26 / 49

Υποµνηµατισµός ΑΝΑΚΛΗΣΗ ΑΛΛΗΛΟΥΧΙΑΣ(p, i, j) 1. αν m[i, j] < 2. τότε επιστροφή m[i, j] 3. αν i = j 4. m[i, j] 0 5. άλλως για k i έως j 1 6. q ΑΝΑΚΛΗΣΗ ΑΛΛΗΛΟΥΧΙΑΣ(p, i, k) 7. +ΑΝΑΚΛΗΣΗ ΑΛΛΗΛΟΥΧΙΑΣ(p, k + 1, j)+p i 1 p k p j 8. αν q < m[i, j] 9. τότε m[i, j] q 10. επιστροφή m[i, j] Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 5 27 / 49

1 4 1 1 2 4 1 2 3 4 1 3 4 4 2 2 3 4 2 3 4 4 1 1 2 2 3 3 4 4 1 1 2 3 1 2 3 3 3 3 4 4 2 2 3 3 2 2 3 3 1 1 2 2 Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 5 28 / 49

Αλυσιδωτός πολλαπλασιασµός πινάκων Βήµα 3: Υπολογισµός του ελαχίστου κόστους Matrix Chain Order(p) 1. n = length[p] 1 2. for i = 1 to n do 3. m[i, i] = 0 4. end for 5. for l = 2 to n do 6. for i = 1 to n l + 1 do 7. j = i + l 1 8. m[i, j] = 9. for k = i to j 1 do 10. q = m[i, k]+m[k + 1, j]+p i 1 p k p j Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 5 29 / 49

Αλυσιδωτός πολλαπλασιασµός πινάκων 11. if q < m[i, j] then 12. m[i, j] = q 13. s[i, j] = k 14. end if 15. end for 16. end for 17. end for 18. return m, s Βήµα 4: Κατασκευή της ϐέλτιστης λύσης Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 5 30 / 49

Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 5 31 / 49

Print Optimal Parents(s, i, j) 1. if i = j then 2. τύπωσε Α i 3. else 4. τύπωσε ( 5. Print Optimal Parents(s, i, s[i, j]) 6. Print Optimal Parents(s, s[i, j]+1, j) 7. τύπωσε ) 8. end if Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 5 32 / 49

Το πρόβληµα του σακιδίου Ενα σύνολο X = {x 1, x 2,...,x n } από n αντικείµενα το καθένα έχει ϐάρος a i και ένα κέρδος c i, i = 1, 2,..., n. ίνεται ένας ακέραιος W. Ζητάµε να επιλέξουµε ένα υποσύνολο Y X τέτοιο ώστε x i Y c i = max και επιπλέον x i Y a i W. Το πρόβληµα αυτό είναι N P hard. Θα δώσουµε αλγόριθµο δυναµικού προγραµµατισµού, που επιλύει το πρόβληµα αυτό σε ψευδοπολυωνυµικό χρόνο. Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 5 33 / 49

Το πρόβληµα του σακιδίου Βήµα 1: Βέλτιστα διασπώµενη δοµή P k (y) = { max k c j x j, j=1 k j=1 } a j x j y, x j = 0 ή 1 (8) 0 y W, 1 k n Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 5 34 / 49

Το πρόβληµα του σακιδίου Βήµα 2: Αναδροµικός ορισµός της τιµής της ϐέλτιστης λύσης Εστω f k (y) η τιµή της ϐέλτιστης λύσης του υποπροβλήµατος P k (y). Τότε { fk (y) αν a k+1 > y f k+1 (y) = } max {f k (y), f k (y a k+1 )+c k+1, διαφορετικά (9) για 1 k n και 0 y W. Η ϐέλτιστη λύση του προβλήµατος P n (W) έχει την τιµή f n (W). Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 5 35 / 49

Αναδροµικός Αλγόριθµος ΚΟΣΤΟΣ(k, y) 1 αν k = 1 τότε 2 αν a 1 > y τότε 3 f(1, y) 0 4 άλλως 5 f(1, y) c 1 6 άλλως 7 αν a k+1 > y τότε 8 f(k, y) ΚΟΣΤΟΣ(k, y) 9 άλλως 10 f(k, y) max{κοστοσ(k, y), ΚΟΣΤΟΣ(k, y a k+1 )+c k+1 } 11 Επιστροφή f(k, y) Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 5 36 / 49

Απόδειξη Ορθότητας Επαγωγή Βάση. Για k = 1 έχουµε, λόγω των 1-5 ΚΟΣΤΟΣ(1, y) = { 0, αν a1 > y c 1, διαφορετικά ή, λόγω της (9) ΚΟΣΤΟΣ(1, y) = f 1 (y), 0 y W. Επαγωγικό Βήµα Υποθέτουµε ότι ισχύει και ϑα δείξουµε ότι ΚΟΣΤΟΣ(k, y) = f k (y), 0 y W. (10) ΚΟΣΤΟΣ(k + 1, y) = f k+1 (y), 0 y W. (11) Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 5 37 / 49

Ορθότητα Εχουµε, λόγω των 7-10, ότι { ΚΟΣΤΟΣ(k, y), αν a ΚΟΣΤΟΣ(k + 1, y) = k+1 > y max{κοστοσ(k, y), ΚΟΣΤΟΣ(k, y a k+1 )+c k+1 } (12) Λόγω της επαγωγικής υπόθεσης (10) έχουµε και ΚΟΣΤΟΣ(k, y) = f k (y) ΚΟΣΤΟΣ(k, y a k+1 ) = f k (y a k+1 ) (13) Η (12), λόγω της (13) δίνει την (11). Πολυπλοκότητα T(n) = Ω(2 n ) Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 5 38 / 49

Το πρόβληµα του σακιδίου Βήµα 3: Υπολογισµός της ϐέλτιστης λύσης 1. 2. 3. 4. 5. 6. 7. 8. 9. DYNAMIC KNAPSACK(A, C, W) n = length(c) for y = 0 to W do if a 1 > y then f 1(y) = 0 else f 1(y) = c 1 end if end for for k = 1 to n 1do Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 5 39 / 49

Το πρόβληµα του σακιδίου 10. for y = 0 to W do 11. if a k+1 > y then 12. f k+1(y) = f k(y) 13. x y k+1 = 0 14. else if f k(y) > f k(y a k+1)+c k+1 15. f k+1(y) = f k(y) 16. x y k+1 = 0 17. else 18. f k+1(y) = f k(y a k+1)+c k+1 19. x y k+1 = 1 20. end if 21. end for 22. end for 23. return f, x Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 5 40 / 49

Το πρόβληµα του σακιδίου Πολυπλοκότητα T(n) = O(nW) Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 5 41 / 49

Παράδειγµα Βήµα 4: Κατασκευή της ϐέλτιστης λύσης Αντικείµενα µε ϐάρη και αξίες (9, 20),(8, 16),(6, 11),(5, 9),(4, 7),(1, 1) 1 2 3 4 5 6 7 8 9 10 11 12 1 0(0) 0(0) 0(0) 0(0) 0(0) 0(0) 0(0) 0(0) 20(1) 20(1) 20(1) 20(1) 2 0(0) 0(0) 0(0) 0(0) 0(0) 0(0) 0(0) 16(1) 20(0) 20(0) 20(0) 20(0) 3 0(0) 0(0) 0(0) 0(0) 0(0) 11(1) 11(1) 16(0) 20(0) 20(0) 20(0) 20(0) 4 0(0) 0(0) 0(0) 0(0) 9(1) 11(0) 11(0) 16(0) 20(0) 20(0) 20(0) 20(0) 5 0(0) 0(0) 0(0) 7(1) 9(0) 11(0) 11(0) 16(0) 20(0) 20(0) 20(0) 23(1) 6 1(1) 1(1) 1(1) 7(0) 9(0) 11(0) 12(1) 16(0) 20(0) 21(1) 21(1) 23(0) Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 5 42 / 49

Το πρόβληµα του σακιδίου Βήµα 4: Κατασκευή της ϐέλτιστης λύσης Αλγόριθµος κατασκευής ϐέλτιστης λύσης από τον πίνακα Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 5 43 / 49

Το πρόβληµα του σακιδίου Construct Knapsack(x) 1. τύπωσε: αξία ϐέλτιστης λύσης: f n (W) 2. τύπωσε Αντικείµενα στην λύση: 3. while W > 0 do 4. if xk W = 1 then 5. τύπωσε: k 6. W = W a k 7. end if 8. k = k 1 9. end while Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 5 44 / 49

Το πρόβληµα του σακιδίου (9, 20),(8, 16),(6, 11),(5, 9),(4, 7),(1, 1) Βήµα 4: Κατασκευή της ϐέλτιστης λύσης 1 2 3 4 5 6 7 8 9 10 11 12 1 0(0) 0(0) 0(0) 0(0) 0(0) 0(0) 0(0) 0(0) 20(1) 20(1) 20(1) 20(1) 2 0(0) 0(0) 0(0) 0(0) 0(0) 0(0) 0(0) 16(1) 20(0) 20(0) 20(0) 20(0) 3 0(0) 0(0) 0(0) 0(0) 0(0) 11(1) 11(1) 16(0) 20(0) 20(0) 20(0) 20(0) 4 0(0) 0(0) 0(0) 0(0) 9(1) 11(0) 11(0) 16(0) 20(0) 20(0) 20(0) 20(0) 5 0(0) 0(0) 0(0) 7(1) 9(0) 11(0) 11(0) 16(0) 20(0) 20(0) 20(0) 23(1) 6 1(1) 1(1) 1(1) 7(0) 9(0) 11(0) 12(1) 16(0) 20(0) 21(1) 21(1) 23(0) Πίνακας: Παράδειγµα υπολογισµού της ϐέλτιστης λύσης. Με έντονα γράµµατα έχουν σηµειωθεί οι ϑέσεις του πίνακα που περνάει ο αλγόριθµος ώστε να τυπώσει την ϐέλτιστη λύση, που είναι η επιλογή των αντικειµένων 2, 5 µε συνολικό κέρδος 23. Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 5 45 / 49

Σηµειώµατα Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 5 46 / 49

Σηµείωµα Αναφοράς Copyright Εθνικόν και Καποδιστριακόν Πανεπιστήµιον Αθηνών 2015, Νικόλαος Μισυρλής, Αλγόριθµοι και Πολύπλοκότητα. Ενότητα 5 - υναµικός Προγραµµατισµός Εκδοση:1.01. Αθήνα 2015. ιαθέσιµο από τη δικτυακή διεύθυνση:http://opencourses.uoa.gr/courses/di13/. Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 5 47 / 49

Σηµείωµα Αδειοδότησης Το παρόν υλικό διατίθεται µε τους όρους της άδειας χρήσης Creative Commons Αναφορά, Μη Εµπορική Χρήση Παρόµοια ιανοµή 4.0 [1] ή µεταγενέστερη, ιεθνής Εκδοση. Εξαιρούνται τα αυτοτελή έργα τρίτων π.χ. ϕωτογραφίες, διαγράµµατα κ.λ.π., τα οποία εµπεριέχονται σε αυτό και τα οποία αναφέρονται µαζί µε τους όρους χρήσης τους στο «Σηµείωµα Χρήσης Εργων Τρίτων». [1] http://creativecommons.org/licenses/by-nc-sa/4.0/ Ως Μη Εµπορική ορίζεται η χρήση: που δεν περιλαµβάνει άµεσο ή έµµεσο οικονοµικό όφελος από την χρήση του έργου, για το διανοµέα του έργου και αδειοδόχο που δεν περιλαµβάνει οικονοµική συναλλαγή ως προϋπόθεση για τη χρήση ή πρόσβαση στο έργο που δεν προορίζει στο διανοµέα του έργου και αδειοδόχο έµµεσο οικονοµικό όφελος (π.χ. διαφηµίσεις) από την προβολή του έργου σε διαδικτυακό τόπο Ο δικαιούχος µπορεί να παρέχει στον αδειοδόχο ξεχωριστή άδεια να χρησιµοποιεί το έργο για εµπορική χρήση, εφόσον αυτό του Ϲητηθεί. Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 5 48 / 49

ιατήρηση Σηµειωµάτων Οποιαδήποτε αναπαραγωγή ή διασκευή του υλικού ϑα πρέπει να συµπεριλαµβάνει: το Σηµείωµα Αναφοράς το Σηµείωµα Αδειοδότησης τη δήλωση ιατήρησης Σηµειωµάτων το Σηµείωµα Χρήσης Εργων Τρίτων (εφόσον υπάρχει) µαζί µε τους συνοδευόµενους υπερσυνδέσµους. Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 5 49 / 49