Δυναµικός Προγραµµατισµός (ΔΠ)

Σχετικά έγγραφα
Μάθημα 20: Δυναμικός Προγραμματισμός (DP)

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

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

Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ -4ο εξάμηνο 1

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

Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα)

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

ΠΛΗ111. Ανοιξη Μάθηµα 10 ο. Γράφοι. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης

Επίλυση Προβληµάτων µε Greedy Αλγόριθµους

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

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

Εθνικό Μετσόβιο Πολυτεχνείο Τομέας Υδατικών Πόρων και Περιβάλλοντος. Διαχείριση Υδατικών Πόρων

Εθνικό Μετσόβιο Πολυτεχνείο Τομέας Υδατικών Πόρων και Περιβάλλοντος. Τεχνολογία Συστημάτων Υδατικών Πόρων

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

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

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

Αλγόριθµοι Τύπου Μείωσης Προβλήµατος

ΑΛΓΟΡΙΘΜΟΙ Άνοιξη I. ΜΗΛΗΣ

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

Επιχειρησιακή Έρευνα

Λυσεις προβλημάτων τελικής φάσης Παγκύπριου Μαθητικού Διαγωνισμού Πληροφορικής 2007

Διάλεξη 29: Γράφοι. Διδάσκων: Παναγιώτης Ανδρέου

ΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι Άννα Φιλίππου,

Ανάλυση Αλγορίθµων. Σύντοµη επανάληψη (ΕΠΛ 035).

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

ΔΥΝΑΜΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Αλγόριθµοι Brute-Force και Διεξοδική Αναζήτηση

Μοντελοποίηση προβληµάτων

Ν!=1*2*3* *(N-1) * N => N! = (Ν-1)! * N έτσι 55! = 54! * 55

Αφηρημένες Δομές Δεδομένων. Στοίβα (Stack) Υλοποίηση στοίβας

Σχεδίαση & Ανάλυση Αλγορίθμων

Επίλυση Προβλημάτων 1

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

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

ΕΠΛ 231 Δοµές Δεδοµένων και Αλγόριθµοι 11-1

Επίλυση προβλημάτων με αναζήτηση

Αλγόριθµοι Divide-and- Conquer

Αναζήτηση Κατά Πλάτος

Graph Algorithms. Παρουσίαση στα πλαίσια του μαθήματος «Παράλληλοι Αλγόριθμοι» Καούρη Γεωργία Μήτσου Βάλια

Επιχειρησιακή Έρευνα I

Σύνθεση Data Path. ιασύνδεσης. Μονάδες. Αριθµό Μονάδων. Τύπο Μονάδων. Unit Selection Unit Binding. λειτουργιών σε. Μονάδες. Αντιστοίχιση µεταβλητών &

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

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

6 η ΕΝΟΤΗΤΑ ΔΥΝΑΜΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

I student. Μεθοδολογική προσέγγιση και απαιτήσεις για την ανάπτυξη των αλγορίθμων δρομολόγησης Χρυσοχόου Ευαγγελία Επιστημονικός Συνεργάτης ΙΜΕΤ

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

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

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

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

Προγραµµατισµός. Αναδροµή (1/2)

Συντομότερες Διαδρομές

Συντομότερες ιαδρομές

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

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

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

Κεφάλαιο 10 ο Υποπρογράµµατα

Κεφάλαιο 4ο: Δικτυωτή Ανάλυση

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

Αλγόριθμοι και Δομές Δεδομένων (Ι) (εισαγωγικές έννοιες)

Στοιχεία Θεωρίας Γράφων (Graph Theory)

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

Κεφάλαιο 3. Γραφήµατα v1.0 ( ) Χρησιµοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

Αναζήτηση στους γράφους. - Αναζήτηση η κατά βάθος Συνεκτικές Συνιστώσες - Αλγόριθμος εύρεσης συνεκτικών συνιστωσών

Συντομότερες Διαδρομές

HY118- ιακριτά Μαθηµατικά. Θεωρία γράφων / γραφήµατα. Τι έχουµε δει µέχρι τώρα. Υπογράφηµα Γράφοι

On line αλγόριθμοι δρομολόγησης για στοχαστικά δίκτυα σε πραγματικό χρόνο

Βασικές Δοµές Δεδοµένων. Σύντοµη επανάληψη (ΕΠΛ 035).

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

Τι είναι αλγόριθμος; Υποπρογράμματα (υποαλγόριθμοι) Βασικές αλγοριθμικές δομές

καθ. Βασίλης Μάγκλαρης

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

Διάλεξη 18: Γράφοι I Εισαγωγή

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

4.3. Γραµµικοί ταξινοµητές

ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ Φεβρουάριος 2005 Σύνολο μονάδων: 91

Αναδρομή Ανάλυση Αλγορίθμων

Γραµµικός Προγραµµατισµός (ΓΠ)

ΕΡΩΤΗΜΑΤΑ σε ΑΝΑΖΗΤΗΣΗ

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Γραφήματα. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Αναζήτηση Κατά Βάθος. Επιµέλεια διαφανειών:. Φωτάκης διαφάνειες για SCC: A. Παγουρτζής. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Παρουσίαση 2 ης Άσκησης:

Προβλήµατα Μεταφορών (Transportation)

Heapsort Using Multiple Heaps

Σχεδιαση Αλγοριθμων -Τμημα Πληροφορικης ΑΠΘ - Κεφαλαιο 9ο

ιακριτά Μαθηµατικά και Μαθηµατική Λογική ΠΛΗ20 Ε ρ γ α σ ί α 3η Θεωρία Γραφηµάτων

ΑΛΓΟΡΙΘΜΟΙ & ΣΤΟΙΧΕΙΑ ΠΟΛΥΠΛΟΚΟΤΗΤΑΣ

Διάλεξη 21: Γράφοι IV - Βραχύτερα Μονοπάτια σε Γράφους

ΥΣ02 Τεχνητή Νοημοσύνη Χειμερινό Εξάμηνο

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

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

Υπολογιστικό Πρόβληµα

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

Αλγόριθµοι δροµολόγησης µε µέσα µαζικής µεταφοράς στο µεταφορικό δίκτυο των Αθηνών

Αναδροµή (Recursion) ύο παρεξηγήσεις. Σκέψου Αναδροµικά. Τρίγωνο Sierpinski Μη αναδροµικός ορισµός;

6η Διάλεξη Διάσχιση Γράφων και Δέντρων

Κεφάλαιο 3. Αλγόριθµοι Τυφλής Αναζήτησης. Τεχνητή Νοηµοσύνη - Β' Έκδοση. Ι. Βλαχάβας, Π. Κεφαλάς, Ν. Βασιλειάδης, Φ. Κόκκορας, Η.

(elementary graph algorithms)

Ελαφρύτατες διαδρομές

Παράδειγµα: Προσοµοίωση µιας ουράς FIFO Οι λειτουργίες που υποστηρίζονται από µια ουρά FIFO είναι: [enq(q,x), ack(q)] [deq(q), return(q,x)] όπου x είν

Αλγόριθµοι Εκτίµησης Καθυστέρησης και

Transcript:

Δυναµικός Προγραµµατισµός (ΔΠ)

Περίληψη Δυναµικός Προγραµµατισµός Αρχή του Βέλτιστου Παραδείγµατα

Δυναµικός Προγραµµατισµός ΔΠ (Dynamic Programming DP) Μέθοδος σχεδιασµού αλγορίθµων Είναι µια γενική µεθοδολογία και δεν υπάρχει ένα πρότυπο διατύπωσης /επίλυσης προβληµάτων Αρχικά ξεκίνησε σαν µαθηµατική µέθοδος για τη λήψη σειράς αλληλοσυνδεόµενων αποφάσεων (sequence of interrelated decisions) Εξελίχτηκε σε µέθοδο επίλυσης προβληµάτων µε «επικαλυπτόµενα» (overlapping) υποπροβλήµατα. Το πρόβληµα υποδιαιρείται σε ένα αριθµό σταδίων (stages). Το αποτέλεσµα του ΔΠ είναι µια «πολιτική» (policy) η οποία προσδιορίζει τι πρέπει να γίνει σε κάθε στάδιο. Η µέθοδος µπορεί να χρησιµοποιηθεί για γραµµικά καθώς και µη-γραµµικά προβλήµατα. Επίσης για προβλήµατα των οποίων οι παράµετροι είναι γνωστοί µε βεβαιότητα καθώς και για στοχαστικά προβλήµατα.

Δυναµικός Προγραµµατισµός ΔΠ Πολλές φορές η επίλυση προβληµάτων χρησιµοποιώντας αναδροµικές σχέσεις δεν είναι αποδοτική. Επιλύει το ίδιο πρόβληµα πολλές φορές Παράδειγµα: Fibonacci Numbers Fib(n) if n=0 return 0; if n= return ; return Fib(n-)+Fib(n-); Υπενθύµιση: ο αλγόριθµος αυτός καλεί τον εαυτό του

Δυναµικός Προγραµµατισµός ΔΠ Βασική ιδέα του ΔΠ είναι η χρήση της µνήµης για να αποθηκεύονται οι λύσεις των υπο-προβληµάτων έτσι ώστε να µην είναι αναγκαία η επίλυση τους πολλαπλές φορές Θυµηθείτε την λύση του προβλήµατος χρησιµοποιώντας πίνακα η οποία είναι Ο(n)! Fib(n) F[0]=0; F[]=; for i= to n F[i]=F[i-]+F[i-]; return F[n];

Transitive Closure Το Transitive Closure ενός κατευθυνόµενου γράφου είναι ένας δυαδικός nxn πίνακας του οποίου τα στοιχεία Πρόβληµα: Σχεδιάστε ένα αλγόριθµο που να υπολογίζει το Transitive Closure T.

Transitive Closure Πρώτη Λύση: Ξεκινώντας από κάθε κόµβο, τρέχουµε ένα αλγόριθµο «εξερεύνησης» γράφου (BFS: Breadth First Search, DFS: Depth-First Search) για να συµπληρώσουµε την κάθε σειρά του πίνακα 8 9

Transitive Closure Λύση ΔΠ: Ορίζουµε τον πίνακα Τ (k) ο οποίος µας δίνει τη λύση στο πρόβληµα εάν επιτρέψουµε µόνο k βήµατα (στάδια). Δηλαδή τα στοιχεία του πίνακα θα δίνονται από: ( ) T ij k = κόµβων if there µέχρι is a k path from i to j 0 Εάν δεν υπάρχει othewise µονοπάτι Εάν υπάρχει µονοπάτι από τον i στον j µέσω των Σπάζουµε έτσι το πρόβληµα σε υποπροβλήµατα τα οποία θα πρέπει να λυθούν σταδιακά. T ( 0),T ( ),T ( ),,T ( k ),T ( k),,t ( n). Πως βρίσκουµε τις λύσεις στα πιο πάνω υποπροβλήµατα;

Transitive Closure To αρχικό στάδιο Τ (0) δίνεται από τον πίνακα γειτνίασης (Adjacency Matrix), A. Γιατί; Εάν στο στάδιο n- έχουµε βρει µονοπάτι από τον κόµβο v i στον κόµβο v j, τότε το µονοπάτι θα υπάρχει και στο στάδιο n. Εάν στο στάδιο n- έχουµε βρει µονοπάτι από τον κόµβο v i στον κόµβο v k και από τον κόµβο v k στον κόµβο v j. Τότε συνεπάγετε ότι υπάρχει και µονοπάτι από τον κόµβο v i στον κόµβο v j το οποίο εισάγετε στον πίνακα του σταδίου n. Οι πιο πάνω δύο κανόνες, περιγράφονται µε τη σχέση

Transitive Closure:Αλγόριθµος Warshall j k j k T ( k ) = k i 0 T ( k) = k i Warshall(A) T(0)= A; for k= to n for i= to n for j= to n T(k)[i,j]=T(k-)[i,j]OR(T(k-)[i,k]AND T(k-)[k,j])

Transitive Closure: Παράδειγµα T ( 0) = A = 0 0 0 0 0 0 0 0 0 0 0 0 T ( ) = 0 0 0 0 0 0 0 0 0 0 0 T ( ) = 0 0 0 0 0 0 0 0 0 T ( ) = 0 0 0 0 0 0 0 0 0 T ( ) = 0 0 0 0

Ελάχιστα Μονοπάτια Πρόβληµα: Υπολογίστε το ελάχιστο µονοπάτι από κάθε σε κόµβο σε όλους του υπόλοιπους κόµβους. Πιθανή Λύση: Πρόβληµα Απόδοσης: Ορισµένα µονοπάτια θα υπολογίζονται πολλαπλές φορές.

Ελάχιστα Μονοπάτια Λύση ΔΠ: Ορίζουµε τον πίνακα D(k) ο οποίος µας δίνει τη λύση στο πρόβληµα εάν επιτρέψουµε µόνο k βήµατα (στάδια). Δηλαδή τα στοιχεία του πίνακα δίνουν το ελάχιστο µονοπάτι από τον κόµβο i στον j, εάν επιτρέψουµε µονοπάτια µέχρι k κόµβους. Σπάζουµε έτσι το πρόβληµα σε υποπροβλήµατα τα οποία θα πρέπει να λυθούν σταδιακά. D ( 0), D ( ), D ( ),, D ( k ), D ( k),, D ( n). Πως βρίσκουµε τις λύσεις στα πιο πάνω υποπροβλήµατα; Η βασική ιδέα του αλγορίθµου είναι η ίδια µε αυτή του Transitive Closure.

Ελάχιστα Μονοπάτια To πρώτο στάδιο D (0) δίνεται από τον πίνακα κόστους. 0 ( ) D ij = w ij if there is a path from i to j Εάν δεν υπάρχει othewise ακµή Υποθέστε πως στο στάδιο k- έχουµε βρει µονοπάτι από τον κόµβο v i στον κόµβο v j µε κόστος c ij. Υποθέστε πως στο στάδιο k- έχουµε βρει µονοπάτι από τον κόµβο v i στον κόµβο v k µε κόστος c ik και από τον κόµβο v k στον κόµβο v j µε κόστος c kj. Τότε, απλά συγκρίνουµε τα c ij και c ik + c kj. Δηλαδή έχουµε τη σχέση Εάν υπάρχει ακµή από τον i στον j

Ελάχιστα Μονοπάτια: Αλγόριθµος Floyd j k j k D ( k ) = k i d kj d ij d ik D ( k) = k i d kj d d ik Floyd(W) D(0)= W; for k= to n for i= to n for j= to n D(k)[i,j]=min{D(k-)[i,j],D(k-)[i,k]+D(k-)[k,j])}

Ελάχιστα Μονοπάτια: Παράδειγµα D ( 0) = A = 0 0 0 0 D ( ) = 0 0 0 0 D ( ) = 0 0 0 0 D ( ) = 0 0 0 0 D ( ) = 0 0 0 0

Αρχή του Βέλτιστου (Optimality Principle) A D G B E H J C F I Ποια η βέλτιστη διαδροµή E J? Αρχή του Βέλτιστου (Optimality Principle): Η βέλτιστη διαδροµή από µια κατάσταση (state) σε όλα τα υπόλοιπα στάδια είναι ανεξάρτητη από όλες τις αποφάσεις που λήφθηκαν στο παρελθόν.

Διατύπωση Στάδιο Αποφάσεις: Στάδιο n Στάδιο n+ x x n x n+ Στάδιο N x N d Κατάσταση στο στάδιο n s n d k Δυνατές καταστάσεις στο στάδιο n+ Κατάσταση στο στάδιο n+ µετά την απόφαση x n d K s n+ =x n

Διατύπωση Κόστος από s n µέχρι τον προορισµό εάν στο σκέλος n πάρουµε την απόφαση x n και βέλτιστες αποφάσεις σε όλα τα επακόλουθα σκέλη Βέλτιστο κόστος από s n έως τον προορισµό Βέλτιστη απόφαση στην κατάσταση n s n s n+ =x n Σε κάθε κατάσταση θα λύνουµε ένα πρόβληµα βελτιστοποίησης! Βέλτιστο κόστος από την κατάσταση s n+ µέχρι τον τελικό προορισµό

Δυναµικός Προγραµµατισµός (Βελτιστοποίηση) Ο αλγόριθµος εύρεσης της βέλτιστης στρατηγικής/πολιτικής ξεκινά από το τελευταίο στάδιο N (last stage). Η λύση είναι ένας επαναληπτικός αλγόριθµος και βασίζεται στην ακόλουθη επαναληπτική σχέση: Η βέλτιστη πολιτική στο σκέλος n δίνεται από τη βέλτιστη πολιτική στο σκέλος n+ και τη λύση ενός επιµέρους προβλήµατος βελτιστοποίησης

Πρόβληµα υπολογισµού νοµισµάτων Υποθέστε πως υπάρχουν κέρµατα c, c, 0c. Περιγράψτε ένα αλγόριθµο για τον υπολογισµό του συνδυασµού των νοµισµάτων που πρέπει κάποιος να επιστρέψει για ρέστα έτσι που να ελαχιστοποιείται ο αριθµός των κερµάτων. Παράδειγµα: Θέλετε να επιστρέψετε 8c. Πως θα το καταφέρεται; 8c= x0c + xc + xc Σύνολο κέρµατα. Υπάρχει καλύτερη λύση; Ο αλγόριθµος δουλεύει για οποιοδήποτε συνδυασµό κερµάτων; Τι θα συµβεί εάν έχουµε κέρµατα c, c και 0c;

Πρόβληµα υπολογισµού νοµισµάτων Διατύπωση (µεταβλητές/αποφάσεις): c το ποσό το οποίο θα πρέπει να συµπληρώσουµε d i αξία του κέρµατος i, π.χ. d =0c, d =c, d =c, s i κατάσταση: υπολειπόµενο ποσό µέχρι το c x i αριθµός κερµάτων αξίας d i (απόφαση που πρέπει να ληφθεί)

Πρόβληµα υπολογισµού νοµισµάτων Στάδιο Στάδιο Στάδιο c 0 c-d c-d c 0 c-d 0 c-d c??? Παράδειγµα: Θέλετε 8c. Κέρµατα c, c και 0c;

Πρόβληµα υπολογισµού νοµισµάτων Στάδιο Στάδιο Στάδιο Παράδειγµα: Θέλετε 8c. Kέρµατα c, c και 0c;

Λεωφορεία Λευκωσίας 0 9 8 9 8 9 Απόσταση µεταξύ στάσεων Αριθµός επιβατών. Ποια η πιο σύντοµη διαδροµή από το Α στο Β ;. Ποια διαδροµή εξυπηρετεί περισσότερους επιβάτες για Β ;

Λεωφορεία Λευκωσίας Συντοµότερη Διαδροµή 0 9 8 9 8 9

0 9 8 9 8 9 Λεωφορεία Λευκωσίας Μέγιστος Αριθµός Επιβατών

Πρόβληµα Ελάχιστης Απόστασης Βρέστε το µονοπάτι µε το µικρότερο κόστος από A στο H B F Α D E H C G Τι πήγε λάθος;