ΔΥΝΑΜΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 1. 2 Αλληλεπικαλυπτόμενα Υποπροβλήματα Όπως η Διαίρεση και Κυριαρχία, ο Δυναμικός Προγραμματισμός συνδυάζει λύσεις σε υποπροβλήματα.

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Δένδρα van Emde Boas TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Μελετάμε την περίπτωση όπου αποθηκεύουμε.
Advertisements

1 ΥΠΟΛΟΓΙΣΤΙΚΉ ΓΕΩΜΕΤΡΊΑ. 2 Πρόβλημα:  Δυναμική διατήρηση N διαστημάτων με διαφορετικά ανά δύο σημεία αρχής και τέλους (σύνορα) έτσι ώστε να απαντάμε.
Αλγόριθμοι Αναζήτησης
ΔΙΔΑΚΤΙΚΕΣ ΔΥΣΚΟΛΙΕΣ ΣΤΟΥΣ ΠΙΝΑΚΕΣ ΠΕΚ ΠΕΙΡΑΙΑ Α΄φάση Επιμόρφωσης Εκπ/κών κλάδου ΠΕ19 Διδακτική της Πληροφορικής Ρόδος, Νοέμβρης 2007.
Πολυπλοκότητα Παράμετροι της αποδοτικότητας ενός αλγόριθμου:
Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές
Γιάννης Σταματίου Μη αποδοτική αναδρομή και η δυναμική προσέγγιση Webcast 8.
Ο Αλγόριθμος FP-Growth. Αλγόριθμος FP-Growth Ο αλγόριθμος χρησιμοποιεί μια συμπιεσμένη αναπαράσταση της βάσης των συναλλαγών με τη μορφή ενός FP-δέντρου.
Αλγόριθμοι και Πολυπλοκότητα
Εισαγωγικές Έννοιες Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο.
Γραφήματα & Επίπεδα Γραφήματα
Διαίρει και Βασίλευε πρόβλημα μεγέθους Ν διάσπαση πρόβλημα μεγέθους Ν-k πρόβλημα μεγέθους k.
Κοντινότεροι Κοινοί Πρόγονοι α βγ θ δεζ η π ν ι κλμ ρσ τ κκπ(λ,ι)=α, κκπ(τ,σ)=ν, κκπ(λ,π)=η κκπ(π,σ)=γ, κκπ(ξ,ο)=κ ξο κκπ(ι,ξ)=β, κκπ(τ,θ)=θ, κκπ(ο,μ)=α.
Διαίρει-και-Βασίλευε
Δυναμικός Προγραμματισμός
Προσεγγιστικοί Αλγόριθμοι
Τυχαιοκρατικοί Αλγόριθμοι TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA Πιθανότητες και Αλγόριθμοι Ανάλυση μέσης.
ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Δευτέρα, 12 Ιανουαρίου 2015Δευτέρα, 12 Ιανουαρίου 2015Δευτέρα, 12 Ιανουαρίου 2015Δευτέρα, 12 Ιανουαρίου.
ΕΠΛ 231 – Δομές Δεδομένων και Αλγόριθμοι12-1 Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Ο αλγόριθμος του Prim και ο αλγόριθμος του Kruskal.
Σχεδιαση Αλγοριθμων - Τμημα Πληροφορικης ΑΠΘ - Κεφαλαιο 9ο1 Άπληστοι αλγόριθμοι βελτιστοποίησης Προβλήματα βελτιστοποίησης λύνονται με μια σειρά επιλογών.
Ενεργή επιλογή αλγορίθμου, Active Algorithm Selection, Feilong Chen and Rong Jin Εύα Σιταρίδη.
Συντομότερες Διαδρομές
Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης
Ο αλγόριθμος Bellman-Ford (επανεξετάζεται)
1 Βέλτιστη δρομολόγηση (optimal routing) Αντιμετώπιση της δρομολόγησης σαν «συνολικό» πρόβλημα βελτιστoποίησης. Γιατί: Η αλλαγή της δρομολόγησης μιας συνόδου.
ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Τμ.
Γραμμικός Προγραμματισμός TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A AA A A Μια εταιρεία παράγει κέικ δύο κατηγοριών,
Γιώργος Γεωργιάδης (σύμφωνα με τις παραδόσεις του Λευτέρη Κυρούση)
Υπολογιστική Πολυπλοκότητα Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό.
Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές
Χρονική Πολυπλοκότητα και Μοντέλα
Κεφάλαιο 10 – Υποπρογράμματα
ΗΥ150 – ΠρογραμματισμόςΚώστας Παναγιωτάκης ΗΥ-150 Προγραμματισμός Αναδρομή (1/2)
Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ - 4ο εξάμηνο1 Ανάλυση Αλγορίθμων b Θέματα: Ορθότητα Χρονική αποδοτικότητα Χωρική αποδοτικότητα Βελτιστότητα b Προσεγγίσεις:
Μέγιστη ροή TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A AA A A Συνάρτηση χωρητικότητας Κατευθυνόμενο γράφημα.
Ασυμπτωτικός Συμβολισμός
ΕΠΛ 231 – Δομές Δεδομένων και Αλγόριθμοι13-1 Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Ο αλγόριθμος Dijkstra για εύρεση βραχυτέρων μονοπατιών.
Δομές Δεδομένων 1 Θέματα Απόδοσης. Δομές Δεδομένων 2 Οργανώνοντας τα Δεδομένα  Η επιλογή της δομής δεδομένων και του αλγορίθμου επηρεάζουν το χρόνο εκτέλεσης.
Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές TSP, Μέτρα κεντρικότητας, Dijkstra Data Engineering Lab.
Ελαφρύτατες διαδρομές TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A AA A A.
ΗΥ150 – ΠρογραμματισμόςΞενοφών Ζαμπούλης ΗΥ-150 Προγραμματισμός Αναδρομή (1/2)
Μέγιστη ροή TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A AA A A Συνάρτηση χωρητικότητας Κατευθυνόμενο γράφημα.
Συνδετικότητα γραφήματος (graph connectivity). α β Υπάρχει μονοπάτι μεταξύ α και β; Παραδείγματα: υπολογιστές ενός δικτύου ιστοσελίδες ισοδύναμες μεταβλητές.
ΤΕΙ ΙΟΝΙΩΝ ΝΗΣΩΝ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ ΠΑΡΆΡΤΗΜΑ ΛΕΥΚΑΔΑΣ ΥΠΕΥΘΥΝΗ ΚΑΘΗΓΉΤΡΙΑ Δρ. ΤΣΙΝΤΖΑ ΠΑΝΑΓΙΩΤΑ Οι παρουσιάσεις του μαθήματος βασίζονται στο.
ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ Παραδείγματα BP.
Για μτ από ατ μέχρι ττ [με_βήμα β] εντολές Τέλος_επανάληψης : περιοχή εντολών μτ : η μεταβλητή της οποίας η τιμή θα περάσει από την αρχική.
ΔΥΑΔΙΚΗ ΑΝΑΖΗΤΗΣΗ & ΤΑΞΙΝΟΜΗΣΗ ΜΕ ΣΥΓΧΩΝΕΥΣΗ. Δυαδική αναζήτηση (Binary search) ΔΕΔΟΜΕΝΟ: ένα μεγάλο αρχείο που περιέχει τιμές z [0,1,…,n-1] ταξινομημένες.
Ηλεκτρική Οικονομία Σταμάτης Νικολόπουλος ΑΜ: 868 ΑΣΠΑΙΤΕ, 2015.
Γράφημα Συνδυαστικό αντικείμενο που αποτελείται από 2 σύνολα:
ΕΥΡΕΣΗ ΕΛΑΧΙΣΤΩΝ ΜΟΝΟΠΑΤΙΩΝ & ΚΑΤΗΓΟΡΙΕΣ ΑΛΓΟΡΙΘΜΩΝ
Δυναμικός Κατακερματισμός
Επίλυση Προβλημάτων με Αναζήτηση
ΑΛΓΟΡΙΘΜΟΣ ΠΡΟΒΛΗΜΑ ΑΛΓΟΡΙΘΜΟΣ ΛΥΣΗ
Μέγιστη ροή Κατευθυνόμενο γράφημα 12 Συνάρτηση χωρητικότητας
Βέλτιστη δρομολόγηση (optimal routing)
Διδάσκων: Δρ. Τσίντζα Παναγιώτα
Αρχεσ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η/Υ ΤΑξη Β΄
Αρχεσ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η/Υ ΤΑξη Β΄
Ισοδυναμία ΠΑ - ΚΕ Για να δείξουμε ότι οι κανονικές γλώσσες - εκφράσεις και τα πεπερασμένα αυτόματα είναι ισοδύναμα σε εκφραστική δυνατότητα έχουμε να.
Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο
Μέγιστη ροή Κατευθυνόμενο γράφημα 12 Συνάρτηση χωρητικότητας
Δυναμικός Προγραμματισμός
ENOTHTA 2. ΘΕΜΑΤΑ ΘΕΩΡΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΚΕΦΑΛΑΙΟ 2
Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον ΑΕΠΠ
19η Διάλεξη Εξωτερική Αναζήτηση και Β-δέντρα Ε. Μαρκάκης
ΗΥ-150 Προγραμματισμός Αναδρομή (1/2).
Δυναμικός Κατακερματισμός
Αναδρομή Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα:
Μη Γραμμικός Προγραμματισμός
Μεταγράφημα παρουσίασης:

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

2 Αλληλεπικαλυπτόμενα Υποπροβλήματα Όπως η Διαίρεση και Κυριαρχία, ο Δυναμικός Προγραμματισμός συνδυάζει λύσεις σε υποπροβλήματα. Ο Δυναμικός Προγραμματισμός χρησιμοποιείται κυρίως όταν οι λύσεις των ίδιων υποπροβλημάτων χρειάζονται πολλές φορές.

ΜΕΤΡΩΝΤΑΣ ΡΕΣΤΑ 3

4 Μετρώντας Ρέστα Πρόβλημα : Εύρεση του ελάχιστου πλήθους νομισμάτων από ένα σετ νομισμάτων ώστε να φτάσουμε σε συγκεκριμένο ποσό. – Για 31 λεπτά : ή ( βέλτιστο ) Πώς το λύνουμε ;

5 Παράδειγμα Σετ Νομισμάτων Θα θεωρήσουμε το εξής σετ νομισμάτων : 1¢ 5¢ 10¢ 21¢ 25¢ Έστω ότι ο στόχος μας είναι τα 63¢

6 Μία Απλή Λύση Χρειαζόμαστε πάντα ένα νόμισμα 1¢, διαφορετικά δεν θα υπάρχει λύση για το 1 λεπτό. Για να κάνουμε K λεπτά : – Αν υπάρχει ένα νόμισμα των Κ λεπτών, τότε το ένα νόμισμα είναι το ελάχιστο – Διαφορετικά, για κάθε i < K, Εύρεση του ελάχιστου πλήθους νομισμάτων για i λεπτά Εύρεση του ελάχιστου πλήθους νομισμάτων για K – i λεπτά – Επιλογή του i που ελαχιστοποιεί το άθροισμα

7 Άλλη Αντίστοιχη Λύση Μειώνουμε το πρόβλημα αναδρομικά επιλέγοντας το 1 ο νόμισμα και έπειτα λύνοντας για το ποσό που απομένει Για 63¢: – Ένα 1¢ νόμισμα συν τη βέλτιστη λύση για 62¢ – Ένα 5¢ νόμισμα συν τη βέλτιστη λύση για 58¢ – Ένα 10¢ νόμισμα συν τη βέλτιστη λύση για 53¢ – Ένα 21¢ νόμισμα συν τη βέλτιστη λύση για 42¢ – Ένα 25¢ νόμισμα συν τη βέλτιστη λύση για 38¢ Επιλογή της βέλτιστης λύσης από τις 5 παραπάνω – Αντί για 62 αναδρομές έχουμε μόνο 5 – αλλά παραμένει ακριβό...

8 Δυναμικός Προγραμματισμός Ιδέα : Λύσε για 1 λεπτό, έπειτα για 2 λεπτά, έπειτα για 3 λεπτά κοκ., μέχρι το ποσό που επιθυμούμε. – Αποθήκευσε κάθε λύση σε έναν πίνακα ! Για κάθε νέο ποσό N, υπολόγισε όλα τα δυνατά ζεύγη προηγούμενων λύσεων που είναι ίσα με N – Παράδειγμα : για 13 λεπτά, Αρχικά λύνουμε για 1¢, 2¢, 3¢,..., 12¢ Έπειτα επιλέγουμε την καλύτερη λύση μεταξύ : – 1¢ + λύση για 12¢ – 5¢ + λύση για 8¢ – 10¢ + Λύση για 3¢ Πόσο χρόνο για τελικό ποσό Ν και # διαφορετικών νομισμάτων Κ ;

9 Σύγκριση με Διαίρεση και Κυριαρχία Στη Διαίρεση και Κυριαρχία ένα πρόβλημα διαιρείται σε υποπροβλήματα των οποίων η λύση συνδυάζεται για την λύση στο αρχικό πρόβλημα Είναι κυρίως αλγόριθμοι με φορά από επάνω προς τα κάτω (top-down) Ένα αλγόριθμος δυναμικού προγραμματισμού επιλύει μικρά προβλήματα τα οποία τα συνδυάζει για να βρει τη λύση σε μεγαλύτερα Μπορεί κανείς να την σκεφτεί σαν μία από κάτω προς τα επάνω διαδικασία

10 Η Αρχή της Βελτιστότητας Ο δυναμικός προγραμματισμός είναι μία τεχνική για εύρεση βέλτιστης λύσης Η αρχή της βελτιστότητας εφαρμόζεται αν η βέλτιστη λύση σε ένα πρόβλημα περιέχει βέλτιστες λύσεις σε όλα τα υποπροβλήματα Παράδειγμα : Πρόβλημα ψιλών για N λεπτά με το μικρότερο πλήθος νομισμάτων Είτε υπάρχει ένα νόμισμα των N λεπτών ή Το σύνολο των νομισμάτων για τη βέλτιστη λύση για N λεπτά διαιρείται σε δύο μη κενά σύνολα n 1 και n 2 Αν κάποιο από τα υποσύνολα n 1 ή n 2, μπορεί να γίνει με λιγότερα νομίσματα, τότε προφανώς και για N λεπτά μπορεί να γίνει με λιγότερα νομίσματα - άτοπο

11 Η αρχή της βελτιστότητας δεν λέει ότι : – Αν έχεις βέλτιστες λύσεις σε όλα τα υποπροβλήματα... –... τότε μπορούν να συνδυαστούν σε μία βέλτιστη λύση Παράδειγμα : – Η βέλτιστη λύση για 7¢ είναι 5¢+1¢+1¢, και – Η βέλτιστη λύση για 6¢ είναι 5¢+1¢, αλλά – Η βέλτιστη λύση για 13¢ δεν είναι 5¢+1¢+1¢+5¢+1¢ Η Αρχή της Βελτιστότητας Αλλά υπάρχει κάποιος τρόπος διαίρεσης των 13¢ σε υποσύνολα με βέλτιστες λύσεις (π.χ. 11¢ + 2¢) που δίνει βέλτιστη λύση για 13¢ Άρα η αρχή της βελτιστότητας ισχύει για αυτό το πρόβλημα

12 Η Αρχή της Βελτιστότητας Έστω k μία ενδιάμεση κορυφή σε ένα ελάχιστο από i σε j μονοπάτι i, a, b, …, k, l, m, …, j. Το μονοπάτι i, a, b, …, k θα πρέπει να είναι ελάχιστο από i σε k, και το μονοπάτι k, l, m, …, j θα πρέπει να είναι ελάχιστο από k σε j i ab k l m j

13 Παράδειγμα Αποτυχίας ΔΠ : Μακρύτερο Απλό Μονοπάτι Το μακρύτερο απλό μονοπάτι (χωρίς κύκλους) από το A στο D είναι το A B C D Όμως, το υπομονοπάτι A B δεν είναι το μακρύτερο μονοπάτι από το A στο B (το A C B είναι μακρύτερο) Η αρχή της βελτιστότητας δεν ικανοποιείται σε αυτό το πρόβλημα Άρα, το πρόβλημα αυτό δεν μπορεί να λυθεί με δυναμικό προγραμματισμό A CD B

ΔΡΟΜΟΛΟΓΗΣΗ ΕΡΓΑΣΙΩΝ ΜΕ ΒΑΡΗ 14

15 Δρομολόγηση Εργασιών με Βάρη Η εργασία j ξεκινά στην s j, τελειώνει στην f j, και έχει τιμή v j. Δύο εργασίες είναι συμβατές αν δεν επικαλύπτονται. Στόχος : εύρεση μεγίστου βάρους υποσύνολο συμβατών εργασιών. Χρόνος f g h e a b c d

16 Δρομολόγηση Εργασιών με Βάρη Βάζουμε σε σειρά τις εργασίες με βάση το χρόνο ολοκλήρωσης : f 1  f 2 ...  f n. p ( j ) = μέγιστος δείκτης i < j έτσι ώστε η εργασία i να είναι συμβατή με j. π. χ. p (8) = 5, p (7) = 3, p (2) = 0. Χρόνος

17 Μία Δυαδική Επιλογή OPT(j) = τιμή της βέλτιστης λύσης στο πρόβλημα που αποτελείται από τις εργασίες 1, 2,..., j. – Περίπτωση 1: η OPT επιλέγει την εργασία j. Κέρδος v j Δεν μπορούμε να χρησιμοποιήσουμε τις ασύμβατες εργασίες { p(j)+1, p(j)+2,..., j– 1 } Βέλτιστη λύση για το εναπομείναν πρόβλημα 1, 2,..., p(j) – Περίπτωση 2 : η OPT δεν επιλέγει την εργασία j. Θα περιλαμβάνει τη βέλτιστη λύση στις υπόλοιπες εργασίες 1, 2,..., j-1 Βέλτιστο υποπρόβλημα

18 Είσοδος: n, s 1,…,s n, f 1,…,f n, v 1,…,v n Ταξινόμησε τις εργασίες με βάση το χρόνο ολοκλήρωσης f 1  f 2 ...  f n. Υπολόγισε τα p(1), p(2), …, p(n) Υπολόγισε-OPT(j) { if (j = 0) return 0 else return max(v j +Compute-OPT(p(j)),Compute-OPT(j-1)) } Εξαντλητική Αναζήτηση

19 Εξαντλητική Αναζήτηση Ο αναδρομικός αλγόριθμος αποτυγχάνει μιας και πρέπει να επανα - υπολογίζει με ίδια υποπροβλήματα  εκθετικός αλγόριθμος. Στην παρακάτω περίπτωση η πολυπλοκότητα χρόνου εκφράζεται από μία ακολουθία Fibonacci ( δηλαδή εκθετικό ) p(1) = 0, p(j) = j

20 Είσοδος: n, s 1,…,s n, f 1,…,f n, v 1,…,v n Ταξινόμησε τις εργασίες με βάση το χρόνο ολοκλήρωσης f 1  f 2 ...  f n. Υπολόγισε τα p(1), p(2), …, p(n) for j = 1 to n M[j] = empty M[0] = 0 M-Compute-OPT(j) { if (M[j] is empty) M[j]=max(v j +M-Compute-OPT(p(j)), M-Compute-OPT(j-1)) return M[j] } Απομνημόνευση σε πίνακα Η Τεχνική της Απομνημόνευσης (Memoization) Αποθήκευση του αποτελέσματος κάθε υποπροβλήματος. Αναζήτηση όταν τα χρειαζόμαστε.

21 Χρόνος Εκτέλεσης Η χρονική πολυπλοκότητα είναι O(nlogn). – Ταξινόμηση ως προς χρόνο ολοκλήρωσης : O(nlogn) – Υπολογισμός p(  ) : O(nlogn) με ταξινόμηση ως προς το χρόνο έναρξης. – M-Compute-OPT(j): κάθε κλήση απαιτεί O(1) χρόνο και : 1.είτε επιστρέφει την υπάρχουσα τιμή M[j] 2.είτε γεμίζει ένα κελί του M[j] και εκτελεί 2 αναδρομικές κλήσεις – Μετρική προόδου :  = # γεμάτων κελιών του M[]. Αρχικά  = 0, ενώ ισχύει πάντα   n Αυξάνει την  κατά 1  το πολύ 2 n αναδρομικές κλήσεις. – Ο χρόνος για την M-Compute-OPT(n) είναι O(n). ▪

22 Εύρεση Λύσης ;;; Βρίσκουμε την τιμή αλλά τι γίνεται την ίδια τη λύση ; Κάνουμε μία προεπεξεργασία. – # αναδρομικών κλήσεων  n  O ( n ) R un M-Compute-Opt(n) Run Find-Solution(n) Find-Solution(j) { if (j = 0) output nothing else if (v j + M[p(j)] > M[j-1]) print j Find-Solution(p(j)) else Find-Solution(j-1) }

23 Δυναμικός Προγραμματισμός : Επαναληπτικά Ξεδιπλώνουμε την αναδρομή. Είσοδος: n, s 1,…,s n, f 1,…,f n, v 1,…,v n Ταξινόμησε τις εργασίες με βάση το χρόνο ολοκλήρωσης f 1  f 2 ...  f n Υπολόγισε τα p(1), p(2), …, p(n) Iterative-Compute-OPT { M[0] = 0 for j = 1 to n M[j] = max(v j + M[p(j)], M[j-1]) }

Πάλι Πίσω Στα Νομίσματα 24

Αλγόριθμος Υπολογισμού Τιμής 25

Ποια είναι τα Νομίσματα ; 26

Παράδειγμα ποσό # νομ. - Νόμισμα που χρησιμοποιήθηκε Ποια είναι τα νομίσματα;

1. ΜΕΤΑΒΑΤΙΚΗ ΚΛΕΙΣΤΟΤΗΤΑ 2. ΜΙΚΡΟΤΕΡΑ ΜΟΝΟΠΑΤΙΑ ΜΕΤΑΞΥ ΟΛΩΝ ΤΩΝ ΖΕΥΓΩΝ 28

29 Αλγόριθμος Warshall Υπολογίζει τη μεταβατική κλειστότητα μιας σχέσης, δηλ. όλα τα μονοπάτια ενός κατευθυνόμενου γράφου Παράδειγμα:

30 Κύρια ιδέα: υπάρχει ένα μονοπάτι μεταξύ των κορυφών i και j αν υπάρχει ακμή από την i στην j, υπάρχει μονοπάτι από την i στην j μέσω της κορυφής 1; υπάρχει μονοπάτι από την i στην j μέσω των κορυφών 1 ή/και 2;... υπάρχει μονοπάτι από την i στην j μέσω οποιασδήποτε από τις άλλες κορυφές R R R R R Αλγόριθμος Warshall – Ιδέα

31 Στο k-οστό στάδιο βρίσκουμε αν υπάρχει ένα μονοπάτι μεταξύ των κορυφών i, j χρησιμοποιώντας μόνο τις κορυφές 1,…,k i j k k-οστό στάδιο Αλγόριθμος Warshall – Σχέση

Παράδειγμα R (0) = R (1) = R (2) = R (3) = R (4) = 32

33 Algorithm Warshall(A[1..n,1..n]) R (0)  A for k  1 to n do for i  1 to n do for j  1 to n do R (k) [i,j]  R (k-1) [i,j] or R (k-1) [i,k] and R (k-1) [k,j] return R (k) Χρονική αποτελεσματικότητα: Θ(n 3 ) Χωρική αποτελεσματικότητα: Θ(n 2 ) – επαναχρησιμοποίηση χώρου Αλγόριθμος Warshall - ψευδοκώδικας

34 Συντομότερα Μονοπάτια Μεταξύ Όλων των Ζευγών (APSP) Να βρούμε τα συντομότερα μονοπάτια μεταξύ όλων των κορυφών ενός ζυγισμένου γράφου Ιδέα : να βρούμε τη λύση μέσω μιας σειράς πινάκων d(0), d(1), … χρησιμοποιώντας ένα αρχικό υποσύνολο κορυφών ως ενδιάμεσες Παράδειγμα :

Αλγόριθμος Floyd - Παράδειγμα 0 ∞ 3 ∞ 2 0 ∞ ∞ ∞ ∞ ∞ 0 D (0) = 0 ∞ 3 ∞ ∞ ∞ ∞ 9 0 D (1) = 0 ∞ 3 ∞ ∞ ∞ 9 0 D (2) = D (3) = D (4) =

36 Algorithm Floyd(W[1..n,1..n]) DWDW for k  1 to n do for i  1 to n do for j  1 to n do D[i,j]  min(D[i,j],D[i,k]+D[k,j]) return D Χρονική και Χωρική αποτελεσματικότητα Πότε δεν δουλεύει? Αλγόριθμος Floyd

ΤΟ ΠΡΟΒΛΗΜΑ ΤΟΥ ΣΑ K ΙΔΙΟΥ 37

38 Το Πρόβλημα του Σακιδίου Δίνονται n αντικείμενα με βάρη w 1,w 2,…,w n, αξίες v 1,v 2,…,v n και χωρητικότητα σάκου W. Να βρεθεί το πολυτιμότερο υποσύνολο των αντικειμένων που χωρούν στο σάκο Λύση με εξαντλητική αναζήτηση Έστω ότι το V[i,j] δίνει τη βέλτιστη λύση για τα πρώτα i αντικείμενα και χωρητικότητα j. Σκοπός είναι ο υπολογισμός του V[n,W]

39 Παράδειγμα n Αξία Βάρος Αντ  { 1, 2 } { 1, 2, 3 } { 1, 2, 3, 4 } { 1 } { 1, 2, 3, 4, 5 } W + 1 W = 11 Βέλτιστη λύση: {4,3} τιμή = = 40

40 Συναρτήσεις Μνήμης Ένα μειονέκτημα του δυναμικού προγραμμα- τισμού είναι ότι επιλύει υποπροβλήματα που δεν χρειάζονται τελικά Μια εναλλακτική τεχνική είναι ο συνδυασμός της top-down με την bottom-up προσέγγιση (δηλ. αναδρομή συν ένα πίνακα προσωρινών αποτελεσμάτων)

41 Παράδειγμα n Αξία Βάρος Αντ  { 1, 2 } { 1, 2, 3 } { 1, 2, 3, 4 } { 1 } { 1, 2, 3, 4, 5 } W + 1 W = 11 Βέλτιστη λύση: {4,3} τιμή = =

42 Απόδοση Χρόνος :  ( nW ). – Δεν είναι πολυωνυμικός ( γιατί ;) – « Ψευδο - πολυωνυμικός » – Το πρόβλημα απόφασης του Σακιδίου είναι NP- πλήρες. Προσέγγιση : υπάρχει ένας πολυωνυμικός αλγόριθμος Ο ( n 3 / ε ) που βρίσκει μία λύση το πολύ ε μακρυά από τη βέλτιστη.

ΕΥΘΥΓΡΑΜΜΙΣΗ ΑΚΟΛΟΥΘΙΩΝ (SEQUENCE ALIGNMENT) 43

44 Ομοιότητα Συμβολοσειρών Πόσο όμοιες είναι οι δύο συμβολοσειρές ; – εγοστεσιο – εργοστασιο εγοστεσιο ργοστασιοε - 6 αναντιστοιχίες, 1 κενό ε - οστεσιο ργοστασιοε γ 1 αναντιστοιχία, 1 κενό ε - οστσιο ργοστσιοε γ - ε α - 0 αναντιστοιχίες, 3 κενά

45 Εφαρμογές – Βάση για την Unix πράξη diff – Αναγνώριση Ομιλίας – Υπολογιστική Βιολογία Απόσταση Επεξεργασίας. [Levenshtein 1966, Needleman-Wunsch 1970] – Κόστος κενού :  - Κόστος αναντιστοιχίας :  pq – Κόστος Ευθυγράμμισης = άθροισμα κόστους αναντιστοιχιών και κενών. 2  +  CA CGACCTACCT CTGACTACAT TGACCTACCT CTGACTACAT - T C C C  TC +  GT +  AG + 2  CA - Απόσταση Επεξεργασίας

46 Να βρείτε την ελαχίστου κόστους ευθυγράμμιση μεταξύ δύο συμβολοσειρών X = x 1 x 2...x m και Y = y 1 y 2...y n. Μία ευθυγράμμιση M είναι ένα σύνολο από διατεταγμένα ζεύγη x i -y j έτσι ώστε κάθε σύμβολο να εμφανίζεται σε το πολύ ένα ζεύγος και να μην έχουμε διασταυρώσεις : Τα ζεύγη x i -y j και x i' -y j' διασταυρώνονται όταν i j ΄. Το Πρόβλημα CTACC- TACAT- G G y1y1 y2y2 y3y3 y4y4 y5y5 y6y6 x2x2 x3x3 x4x4 x5x5 x1x1 x6x6 M = x 2 -y 1, x 3 -y 2, x 4 -y 3, x 5 -y 4, x 6 -y 6.

47 Η Αναδρομή OPT(i, j) = ελάχιστο κόστος ευθυγράμμισης των συμβολοσειρών x 1 x 2... x i και y 1 y 2... y j. – Περίπτωση 1: Ο OPT φτιάχνει το ζεύγος x i -y j Κόστος αναντιστοιχίας x i -y j + ελάχιστο κόστος ευθυγράμμισης των συμβολοσειρών x 1 x 2... x i-1 και y 1 y 2... y j-1 – Περίπτωση 2( α ): Ο OPT δεν ταιριάζει το x i Κόστος κενού για το x i + ελάχιστο κόστος ευθυγράμμισης των x 1 x 2... x i-1 και y 1 y 2... y j – Περίπτωση 2( β ): Ο OPT δεν ταιριάζει το y j Κόστος κενού για το y j + ελάχιστο κόστος ευθυγράμμισης των x 1 x 2... x i και y 1 y 2... y j-1

48 Ο Αλγόριθμος Sequence-Alignment(m, n, x 1 x 2...x m, y 1 y 2...y n, ,  ) { for i = 0 to m M[i, 0] = i  for j = 0 to n M[0, j] = j  for i = 1 to m for j = 1 to n M[i, j] = min(  [x i, y j ] + M[i-1, j-1],  + M[i-1, j],  + M[i, j-1]) return M[m, n] }

Παράδειγμα 49 - εγοστεσιο ε 1 ρ 2 γ 3 ο 4 σ 5 τ 6 α 7 σ 8 ι 9 ο 10 Έστω δ=1 και κάθε αναντιστοιχία κοστίζει 1 ενώ κάθε αντιστοιχία κοστίζει

Ένα Ωραίο Θέμα Έστω ότι είστε σύμβουλοι μίας εταιρείας κατασκευής ράβδων χαλκού, τους οποίους τους στέλνετε σε όλη τη χώρα. Για κάθε μία από τις επόμενες n ≥4 εβδομάδες, έχετε μία προβλεπόμενη παραγωγή s i κιλών ράβδων χαλκού ( για την εβδομάδα i ), η οποία θα πρέπει να μεταφερθεί στον τελικό της προορισμό αεροπορικώς. Η παραγωγή κάθε εβδομάδας μπορεί να μεταφερθεί μέσω δύο διαφορετικών εταιρειών αερομεταφοράς, τις Α και Β. Η Α χρεώνει r ευρώ για κάθε κιλό ( άρα κοστίζει r  s i για να μεταφέρει την παραγωγή της εβδομάδας i ) Η Β χρεώνει ανά εβδομάδα ένα σταθερό ποσό c ανεξαρτήτως συνολικού βάρους. Όμως, το συμβόλαιο με την εταιρία Β θα πρέπει να είναι διάρκειας ακριβώς τεσσάρων συνεχόμενων εβδομάδων. Ένα πρόγραμμα για την εταιρεία χαλκού είναι η επιλογή μίας εταιρείας αερομεταφοράς για κάθε μία από τις n εβδομάδες με τον περιορισμό ότι όταν επιλέγουμε την εταιρεία Β θα πρέπει το κάθε συμβόλαιο να αφορά 4 εβδομάδες. Κατά αυτόν τον τρόπο, πληρώνοντας το ποσό c στην εταιρεία Β μπορούμε για 4 εβδομάδες να στέλνουμε την παραγωγή χωρίς κάποιο περιορισμό στο βάρος. Το κόστος του προγράμματος είναι ίσο με το συνολικό πόσο προς και τις δύο εταιρείες Α και Β για την μεταφορά του χαλκού και τις n εβδομάδες. Παράδειγμα : Έστω r =1, c =10 και η ακολουθία παραγωγής είναι η 11, 9, 9, 12, 12, 12, 12, 9, 9, 11. Στο βέλτιστο πρόγραμμα θα επιλέγατε την Α για τις τρεις πρώτες εβδομάδες, την Β για τις επόμενες τέσσερις και την Α για τις τελευταίες τρεις με συνολικό κόστος 98. ( Α ) Δώστε λύση Δυναμικού Προγραμματισμού ( αναδρομική σχέση ) η οποία με είσοδο την παραγωγή κάθε εβδομάδας s 1, s 2,…, s n να επιστρέφει το ελάχιστο κόστος για τη μεταφορά της. Ποια είναι η χρονική πολυπλοκότητα του αλγόριθμού σας ; ( Β ) Να εφαρμόσετε το συγκεκριμένο αλγόριθμο για την είσοδο του παραδείγματος που έχει δοθεί παραπάνω δίνοντας τον πίνακα δυναμικού προγραμματισμού για κάθε βήμα. 50