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

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

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

Transcript

1 Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Αλγόριθμοι και Πολυπλοκότητα Παραδείγματα Δυναμικού Προγραμματισμού Προσαρμογή από διαφάνειες Σταύρου Νικολόπουλου (Παν. Ιωαννίνων)

2 Δυναμικός Προγραμματισμός Αλγοριθμική Τεχνική Δυναμικός Προγραμματισμός Αλγόριθμοι και Πολυπλοκότητα 7-8!!!!!

3 Δυναμικός Προγραμματισμός Αλγοριθμική Τεχνική Δυναμικός Προγραμματισμός!!!!! ΕΊΝΑΙ Τεχνική Σχεδίασης Αλγορίθμων!!! με ευρύτατο πεδίο εφαρμογών! και με χρήση εκεί όπου άλλες πιο ειδικευμένες τεχνικές αποτυγχάνουν! και, όχι Τεχνική Προγραμματισμού!!! Αλγόριθμοι και Πολυπλοκότητα 7-8

4 Δυναμικός Προγραμματισμός Γιατί αυτός ο όρος και η ονομασία?? Δυναμικός Προγραμματισμός?????? Επινοήθηκε από τον Richard Bellman το Τότε ο προγραμματισμός ήταν μια απόκρυφη, σπάνια δραστηριότητα την οποία ασκούσαν τόσο πολύ λίγοι που δεν άξιζε καν να την αναφέρουν. Ο όρος «προγραμματισμός» την εποχή εκείνη σήμαινε «σχεδιασμός ενεργειών» (planning), ενώ ο όρος «δυναμικός προγραμματισμός» σήμαινε «πολυεπίπεδο, χρονικά μεταβαλλόμενο σχεδιασμό πολλαπλών διεργασιών»!!! Αλγόριθμοι και Πολυπλοκότητα 7-8

5 Δυναμικός Προγραμματισμός Ας θυμηθούμε δύο γνωστά μας προβλήματα! Ακολουθία Fibonacci Ελάχιστες διαδρομές σε DAG r s Αλγόριθμοι και Πολυπλοκότητα 7-8 u - v - x t 8

6 Δυναμικός Προγραμματισμός Ακολουθία Fibonacci Αλγόριθμοι και Πολυπλοκότητα 7-8

7 Δυναμικός Προγραμματισμός Ακολουθία Fibonacci fib(n) if n = then return if n = then return return fib(n-) + fib(n-) Αλγόριθμοι και Πολυπλοκότητα 7-8 7

8 Δυναμικός Προγραμματισμός Ακολουθία Fibonacci fib(n) if n = then return if n = then return return fib(n-) + fib(n-) Αλγόριθμοι και Πολυπλοκότητα 7-8 8

9 Δυναμικός Προγραμματισμός Ακολουθία Fibonacci fib(n) if n = then return if n = then return return fib(n-) + fib(n-) Αλγόριθμοι και Πολυπλοκότητα 7-8

10 Δυναμικός Προγραμματισμός Ακολουθία Fibonacci fib(n) if n = then return if n = then return return fib(n-) + fib(n-) Αλγόριθμοι και Πολυπλοκότητα 7-8

11 Δυναμικός Προγραμματισμός Ακολουθία Fibonacci fib(n) = fib(n-) + fib(n-) Αλγόριθμοι και Πολυπλοκότητα 7-8

12 Δυναμικός Προγραμματισμός Ακολουθία Fibonacci fib() = fib() + fib() fib(n) = fib(n-) + fib(n-) Αλγόριθμοι και Πολυπλοκότητα 7-8

13 Δυναμικός Προγραμματισμός Ακολουθία Fibonacci fib() = fib() + fib() fib(n) = fib(n-) + fib(n-) Αλγόριθμοι και Πολυπλοκότητα 7-8

14 Δυναμικός Προγραμματισμός Ακολουθία Fibonacci fib() = fib() + fib() fib(n) = fib(n-) + fib(n-) Αλγόριθμοι και Πολυπλοκότητα 7-8

15 Δυναμικός Προγραμματισμός Ακολουθία Fibonacci 8 fib() = fib() + fib() fib(n) = fib(n-) + fib(n-) Αλγόριθμοι και Πολυπλοκότητα 7-8

16 Δυναμικός Προγραμματισμός Ακολουθία Fibonacci i i- i- fib(i) = fib(i-) + fib(i-) Μπορώ να λύσω ένα υποπρόβλημα εύκολα εάν έχω «βρει» και «κρατήσει» τις λύσεις «μικρότερων» υποπροβλημάτων!!! Αλγόριθμοι και Πολυπλοκότητα 7-8

17 Δυναμικός Προγραμματισμός Ακολουθία Fibonacci Αλγόριθμος FIBONACCI i i- i- fib(n). if n = then return. if n = then return. F() =, F() = {F πίνακας μήκους n}. for i =,,, n F(i) = F(i-) + F(i-). return F(n) Κρατήστε αυτά τα στοιχεία του Αλγόριθμου!!! Αλγόριθμοι και Πολυπλοκότητα 7-8 7

18 Δυναμικός Προγραμματισμός Ελάχιστες διαδρομές σε DAG Χαρακτηριστικό ενός DAG: Τοπολογική Ταξινόμηση r s Αλγόριθμοι και Πολυπλοκότητα 7-8 u v x t 8 8

19 Δυναμικός Προγραμματισμός Ελάχιστες διαδρομές σε DAG Χαρακτηριστικό ενός DAG: Τοπολογική Ταξινόμηση r s u v x t 8 Γιατί αυτό το χαρακτηριστικό βοηθάει στον υπολογισμό των ε.δ από ένα κόμβο, έστω τον s? Αλγόριθμοι και Πολυπλοκότητα 7-8

20 Δυναμικός Προγραμματισμός Ελάχιστες διαδρομές σε DAG Χαρακτηριστικό ενός DAG: Τοπολογική Ταξινόμηση r s u v x t 8 Ας εστιάσουμε σε ένα κόμβο, έστω στον κόμβο x Ο μόνος τρόπος για να φθάσουμε στον x είναι μέσω των προκατόχων του: v ή u!!! Αλγόριθμοι και Πολυπλοκότητα 7-8

21 Δυναμικός Προγραμματισμός Ελάχιστες διαδρομές σε DAG Χαρακτηριστικό ενός DAG: Τοπολογική Ταξινόμηση r s u v x t 8 Επομένως, για να βρούμε την ε.δ από τον s μέχρι τον x, αρκεί μόνο να συγκρίνουμε τις δύο διαδρομές: d(x) = min{d(v) +, d(u) + } Αλγόριθμοι και Πολυπλοκότητα 7-8

22 Δυναμικός Προγραμματισμός Ελάχιστες διαδρομές σε DAG Μια τέτοια σχέση ισχύει για κόμβο!!! π.χ., για τον κόμβο t : r s u v x t 8 d(t) = min{ d(x)+, d(v)+, d(u)+8 } Αν υπολογίσουμε τις τιμές d(.) με τη σειρά της Τοπoλογικής Ταξινόμησης τότε: Όταν φθάσουμε στον κόμβο x θα έχουμε όλες τις πληροφορίες για τον υπολογισμό του d(x). Αλγόριθμοι και Πολυπλοκότητα 7-8

23 Δυναμικός Προγραμματισμός Ελάχιστες διαδρομές σε DAG Αλγόριθμος SP-DAG r. Initialize(G,s). Topological-Sorting(G) s u v x t 8. για κάθε κόμβο x V-{s} σε τοπολογική σειρά: d(x) = min(u,x) E{d(u) + w(u,x)}. return d(.) Κρατήστε αυτά τα στοιχεία του Αλγόριθμου!!! Αλγόριθμοι και Πολυπλοκότητα 7-8

24 Δυναμικός Προγραμματισμός Ελάχιστες διαδρομές σε DAG Παρατηρήσεις!!! r s Ο αλγόριθμος SP-DAG επιλύει υποπροβλήματα, της μορφής: u v x t 8 { d(x) x V-{s} } Αρχίζει από το «μικρότερο» υποπρόβλημα και προχωράει σε «μεγαλύτερα» υποπροβλήματα!!! Ένα υποπρόβλημα το θεωρούμε «μεγάλο» εάν πρέπει να λύσουμε πολλά άλλα υποπροβλήματα πριν φθάσουμε σε αυτό!!! Αλγόριθμοι και Πολυπλοκότητα 7-8

25 Δυναμικός Προγραμματισμός Ελάχιστες διαδρομές σε DAG Παρατηρήσεις!!! r s u v x t Σε κάθε κόμβο x ο αλγόριθμος SP-DAG υπολογίζει μια συνάρτηση των τιμών των ε.δ των προκατόχων του κόμβου x 8 Εδώ, η συνάρτηση μας είναι ένα ελάχιστο αθροισμάτων! Θα μπορούσε κάλλιστα να είναι μια συνάρτηση: μεγίστου οπότε θα υπολογίζαμε τις max διαδρομές, ή ελαχίστου γινομένων οπότε θα υπολογίζαμε την διαδρομή με το ελάχιστο γινόμενο ακμών Αλγόριθμοι και Πολυπλοκότητα 7-8

26 Δυναμικός Προγραμματισμός Χαρακτηριστικά Δυναμικού Προγραμματισμού Η Βασική Ιδέα!!! Αλγόριθμοι και Πολυπλοκότητα 7-8!!!!!

27 Δυναμικός Προγραμματισμός Χαρακτηριστικά Δυναμικού Προγραμματισμού Η Βασική Ιδέα!!!... Λύσης προβλήματος Π με ΔΠ: Yπολογίζουμε ένα σύνολο υποπροβλημάτων του Π Eπινοούμε μια σχέση για την λύση ενός υποπροβλήματος Λύνουμε τα υποπρ/ματα ξεκινώντας από «μικρότερα», αποθηκεύουμε τις λύσεις τους, και προχωράμε προς «μεγαλύτερα» χρησιμοποιώντας τις αποθηκευμένες λύσεις των μικρότερων!!! Παίρνουμε τη λύση του αρχικού μας προβλήματος Π, λύνοντας όλα τα υποπ/ματα με καθορισμένη σειρά!!! Αλγόριθμοι και Πολυπλοκότητα 7-8 7

28 Δυναμικός Προγραμματισμός Χαρακτηριστικά Δυναμικού Προγραμματισμού Προσοχή!!! Στο ΔΠ το «μοντέλο της τεχνικής» θα μπορούσαμε να το θεωρήσουμε ότι είναι ένα γράφημα G τύπου DAG!!! Οι κόμβοι του G αντιστοιχούν στα υποπροβλήματα και οι ακμές του στις εξαρτήσεις ανάμεσα σε αυτά: Α Β Το Α θεωρείται «μικρότερο» υποπρόβλημα από το Β, ή Για να λύσουμε το Β χρειαζόμαστε την λύση του Α!!! Αλγόριθμοι και Πολυπλοκότητα 7-8 8

29 Δυναμικός Προγραμματισμός Χαρακτηριστικά Δυναμικού Προγραμματισμού Θεμελιώδης Ιδιότητα του ΔΠ!!! Υπάρχει διάταξη των υποπροβλημάτων και μια σχέση που δείχνει πως θα λυθεί ένα υποπρόβλημα έχοντας τις λύσεις «μικροτέρων» υποπρ/των, δηλαδή, υποπρ/των που εμφανίζονται νωρίτερα στη διάταξη! Διάταξη: Σχέση: Α Β C D E Μεγάλο-ΥΠ = f(μικρότερα-υπ) Αλγόριθμοι και Πολυπλοκότητα 7-8

30 Δυναμικός Προγραμματισμός Χαρακτηριστικά Δυναμικού Προγραμματισμού Διαίρει-και-Βασίλευε vs ΔΠ!!! Αλγόριθμοι και Πολυπλοκότητα 7-8

31 Δυναμικός Προγραμματισμός Χαρακτηριστικά Δυναμικού Προγραμματισμού Διαίρει-και-Βασίλευε vs ΔΠ!!! Στην τεχνική Δ-και-Β ένα Π μεγέθους n εκφράζεται συναντήσει υποπροβλημάτων Π(), Π(),, Π(k) που είναι σημαντικά μικρότερα, για παράδειγμα n/, και δεν επικαλύπτονται!!! Λόγω αυτής της απότομης μείωσης του μεγέθους του Π, το δένδρο της αναδρομής έχει: O(logn) βάθος O(n) πλήθος κόμβων!!! Αλγόριθμοι και Πολυπλοκότητα 7-8

32 Δυναμικός Προγραμματισμός Χαρακτηριστικά Δυναμικού Προγραμματισμού Διαίρει-και-Βασίλευε vs ΔΠ!!! Αντίθετα, στην τεχνική του ΔΠ τα υποπροβλημάτων Π(), Π(),, Π(k) είναι ελάχιστα μικρότερα, για παράδειγμα το Π(i) βασίζεται στο Π(i-), και επικαλύπτονται!!! Π() Εδώ συνήθως, το δένδρο της αναδρομής έχει: Π() Π() Π() O(n) βάθος O(cn) πλήθος κόμβων, c> Π() Π() Π() Εκθετικό πλήθος κόμβων!!! Π() Αλγόριθμοι και Πολυπλοκότητα 7-8

33 Δυναμικός Προγραμματισμός Χαρακτηριστικά Δυναμικού Προγραμματισμού Ο ΔΠ είναι μια πολύ ισχυρή αλγοριθμική τεχνική!!! με ευρύτατο πεδίο εφαρμογών!!! Συνοπτικά, στο ΔΠ: υπολογίζουμε ένα σύνολο υποπροβλημάτων του Π, λύνουμε κάθε υποπρόβλημα μία μόνο φορά, αποθηκεύουμε τη λύση του, και χρησιμοποιούμε αυτή, εάν χρειαστεί να το ξαναλύσουμε!!! Αποφεύγουμε έτσι να λύνουμε ξανά-και-ξανά πολλές φορές τα ίδια-και-ίδια υποπροβλήματα!!! Αλγόριθμοι και Πολυπλοκότητα 7-8

34 Προβλήματα Δυναμικού Προγραμματισμού Μέγιστες Αύξουσες Υποακολουθίες Διορθωτική Απόσταση Πολλαπλασιασμός Ακολουθίας Πινάκων Ελάχιστες Αξιόπιστες Διαδρομές Πανζευκτικές Ελάχιστες Διαδρομές Σακίδιο (Knapsack) Αλγόριθμοι και Πολυπλοκότητα 7-8

35 Προβλήματα - Δυναμικός Προγραμματισμός Μέγιστες Αύξουσες Υποακολουθίες Πρόβλημα Μας δίδεται μια ακολουθία n αριθμών Α = (a, a,, an) και μας ζητείται να υπολογίσουμε μία αύξουσα υπακολουθία της Α με το μέγιστο μήκος. Μια ακολουθία Α = (ai, ai,, aik) είναι αύξουσα υπακολουθία της Α εάν: ai < ai < < aik και i < i < < ik n Αλγόριθμοι και Πολυπλοκότητα 7-8

36 Προβλήματα - Δυναμικός Προγραμματισμός Μέγιστες Αύξουσες Υποακολουθίες Παράδειγμα Η μέγιστη αύξουσα υπακολουθία της Α = (,, 8,,,,, 7) είναι η Α = (,,, ) με μήκος. Οι υπακολουθίες Β = (,,, ) και C = (,,, 7) της Α δεν είναι ζητούμενες διότι δεν είναι γνησίως αύξουσες. Αλγόριθμοι και Πολυπλοκότητα 7-8

37 Μέγιστες Αύξουσες Υποακολουθίες Θα χρησιμοποιήσουμε ΔΠ Α = (,, 8,,,,, 7) 8 7 Δημιουργούμε ένα γράφημα G με ΟΛΕΣ τις επιτρεπτές μεταβάσεις!!! Αλγόριθμοι και Πολυπλοκότητα 7-8 7

38 Μέγιστες Αύξουσες Υποακολουθίες Θα χρησιμοποιήσουμε ΔΠ 8 7 Παρατηρήστε ότι: () Το γράφημα G είναι DAG!!! () Υπάρχει - αντιστοιχία ανάμεσα στις αύξουσες υπακολουθίες και στις διαδρομές αυτού του DAG!!! 8 Αλγόριθμοι και Πολυπλοκότητα

39 Μέγιστες Αύξουσες Υποακολουθίες Θα χρησιμοποιήσουμε ΔΠ 8 7 Παρατηρήστε ότι: () Το γράφημα G είναι DAG!!! () Υπάρχει - αντιστοιχία ανάμεσα στις αύξουσες υπακολουθίες και στις διαδρομές αυτού του DAG!!! 8 Αλγόριθμοι και Πολυπλοκότητα 7-8 7

40 Μέγιστες Αύξουσες Υποακολουθίες Θα χρησιμοποιήσουμε ΔΠ 8 7 Παρατηρήστε ότι: () Το γράφημα G είναι DAG!!! () Υπάρχει - αντιστοιχία ανάμεσα στις αύξουσες υπακολουθίες και στις διαδρομές αυτού του DAG!!! Επομένως, το πρόβλημά μας ανάγεται στον υπολογισμό της μεγαλύτερης διαδρομής στο γράφημα G!!! Υπολογισμός: Μεγαλύτερης διαδρομής σε DAG!!! Αλγόριθμοι και Πολυπλοκότητα 7-8

41 Μέγιστες Αύξουσες Υποακολουθίες Θα χρησιμοποιήσουμε ΔΠ 8 7 Αλγόριθμοι και Πολυπλοκότητα 7-8

42 Μέγιστες Αύξουσες Υποακολουθίες Θα χρησιμοποιήσουμε ΔΠ 8 Αλγόριθμοι και Πολυπλοκότητα 7-8 7

43 Μέγιστες Αύξουσες Υποακολουθίες Θα χρησιμοποιήσουμε ΔΠ 8 Αλγόριθμοι και Πολυπλοκότητα 7-8 7

44 Μέγιστες Αύξουσες Υποακολουθίες Θα χρησιμοποιήσουμε ΔΠ 8 Αλγόριθμοι και Πολυπλοκότητα 7-8 7

45 Μέγιστες Αύξουσες Υποακολουθίες Θα χρησιμοποιήσουμε ΔΠ 8 Αλγόριθμοι και Πολυπλοκότητα 7-8 7

46 Μέγιστες Αύξουσες Υποακολουθίες Θα χρησιμοποιήσουμε ΔΠ 8 Αλγόριθμοι και Πολυπλοκότητα 7-8 7

47 Μέγιστες Αύξουσες Υποακολουθίες Θα χρησιμοποιήσουμε ΔΠ 8 Αλγόριθμοι και Πολυπλοκότητα

48 Μέγιστες Αύξουσες Υποακολουθίες Θα χρησιμοποιήσουμε ΔΠ 8 7 Αλγόριθμοι και Πολυπλοκότητα 7-8 8

49 Μέγιστες Αύξουσες Υποακολουθίες Θα χρησιμοποιήσουμε ΔΠ 8 i L(i) L(i) = + max{l(j) : (j,i) E(G)} Αλγόριθμοι και Πολυπλοκότητα 7-8

50 Μέγιστες Αύξουσες Υποακολουθίες Θα χρησιμοποιήσουμε ΔΠ 8 7 Ορίστε ο αλγόριθμος:. για i =,,, n: L(i) = + max{l(j) : (j,i) E(G)}. return max i n{l(i)} L(i) = είναι το μήκος της μεγαλύτερης διαδρομής, ή ισοδύναμα, της μέγιστης αύξουσας υπακολουθίας, που τελειώνει στον κόμβο i =,,, n Αλγόριθμοι και Πολυπλοκότητα 7-8

51 Μέγιστες Αύξουσες Υποακολουθίες Μέγιστη Αύξουσα Υπακολουθία: Α = (,, 8,,,,, 7) 8 7 Η μέγιστη αύξουσα υπακολουθία έχει μήκος Αλγόριθμοι και Πολυπλοκότητα 7-8

52 Μέγιστες Αύξουσες Υποακολουθίες Μέγιστη Αύξουσα Υπακολουθία: Α = (,, 8,,,,, 7) Ποια είναι η υπακολουθία? Αλγόριθμοι και Πολυπλοκότητα 7-8

53 Μέγιστες Αύξουσες Υποακολουθίες Μέγιστη Αύξουσα Υπακολουθία: Α = (,, 8,,,,, 7) Ποια είναι η υπακολουθία? Αλγόριθμοι και Πολυπλοκότητα 7-8

54 Μέγιστες Αύξουσες Υποακολουθίες Μέγιστη Αύξουσα Υπακολουθία: Α = (,, 8,,,,, 7) Ποια είναι η υπακολουθία? Αλγόριθμοι και Πολυπλοκότητα 7-8

55 Μέγιστες Αύξουσες Υποακολουθίες Μέγιστη Αύξουσα Υπακολουθία: Α = (,, 8,,,,, 7) Λύση! (,,, 7) Ποια είναι η υπακολουθία? Αλγόριθμοι και Πολυπλοκότητα 7-8

56 Μέγιστες Αύξουσες Υποακολουθίες Γιατί είναι ΔΠ? για i =,,, n: L(i) = + max{l(j) : (j,i) E(G)} Ορίσαμε, υποπροβλήματα: {L(i) : i n} που έχουν τη Θεμελιώδη Ιδιότητα του ΔΠ!!! Υπάρχει μια διάταξη των υποπροβλημάτων, και μια σχέση που δείχνει πως θα λυθεί ένα υποπρόβλημα έχοντας τις λύσεις «μικροτέρων» υποπροβλημάτων!!! Αλγόριθμοι και Πολυπλοκότητα 7-8

57 Μέγιστες Αύξουσες Υποακολουθίες Πολυπλοκότητα για i =,,, n: L(i) = + max{l(j) : (j,i) E(G)} Το αρχικό μας πρόβλημα λύνεται με ένα «πέρασμα» των n = A κόμβων Ο υπολογισμός του L(i) απαιτεί χρόνο ανάλογο του βαθμού εισόδου του κόμβου i του G Συνολικά, χρόνο τάξης Ε(G) O(n) Αλγόριθμοι και Πολυπλοκότητα 7-8 7

58 Προβλήματα - Δυναμικός Προγραμματισμός Διορθωτική Απόσταση Κίνητρο Όταν ένας ελεγκτής ορθογραφίας συναντά μια πιθανή ανορθόγραφη λέξη Λεξικό αα αn εξετάζει το λεξικό του για άλλες λέξεις που είναι «κοντά» στην ανορθόγραφη!! ββ βm γγ γk ωω ωp Ποια είναι η κατάλληλη έννοια της εγγύτητας δύο λέξεων ή συμβολοσειρών? Αλγόριθμοι και Πολυπλοκότητα 7-8 8

59 Προβλήματα - Δυναμικός Προγραμματισμός Διορθωτική Απόσταση Κίνητρο Ένα μέτρο της εγγύτητας ανάμεσα σε δύο λέξεις ή συμβολοσειρές α και β, είναι οι διορθώσεις που πρέπει να κάνουμε, έτσι ώστε α β ή β α Ποιες διορθώσεις μπορούμε να κάνουμε? Εισαγωγή συμβόλου Διαγραφή συμβόλου πράξεις σε συμβολοσειρές Αντικατάσταση συμβόλου Αλγόριθμοι και Πολυπλοκότητα 7-8

60 Προβλήματα - Δυναμικός Προγραμματισμός Διορθωτική Απόσταση Παράδειγμα Έστω οι δύο λέξεις SNOWY και SUNNY. Μπορούμε να πάρουμε την μία από την άλλη με διαφορετικά σύνολα αλλαγών/πράξεων S U N N - Y S U N - - N Y S N O W Y - S N O W - Y Αλγόριθμοι και Πολυπλοκότητα 7-8

61 Προβλήματα - Δυναμικός Προγραμματισμός Διορθωτική Απόσταση Παράδειγμα Έστω οι δύο λέξεις SNOWY και SUNNY. Μπορούμε να πάρουμε την μία από την άλλη με διαφορετικά σύνολα αλλαγών/πράξεων S U N N - Y S U N - - N Y - Y S U N O N W - U S N O W- S N Y Αλγόριθμοι και Πολυπλοκότητα 7-8

62 Προβλήματα - Δυναμικός Προγραμματισμός Διορθωτική Απόσταση Παράδειγμα Έστω οι δύο λέξεις SNOWY και SUNNY. Μπορούμε να πάρουμε την μία από την άλλη με διαφορετικά σύνολα αλλαγών/πράξεων W Y S U N NO S N O W Y Αλγόριθμοι και Πολυπλοκότητα 7-8 W S S U N O - N Y - S N O W - Y

63 Προβλήματα - Δυναμικός Προγραμματισμός Διορθωτική Απόσταση Ορίζουμε ως κόστος διόρθωσης δύο συμβολοσειρών α και β, το πλήθος των πράξεων που πρέπει να κάνουμε για να πάρουμε από την μία στην άλλη!!! S U N N - Y S U N - - N Y S N O W Y - S N O W - Y Κόστος Αλγόριθμοι και Πολυπλοκότητα 7-8 Κόστος

64 Προβλήματα - Δυναμικός Προγραμματισμός Διορθωτική Απόσταση To ελάχιστο κόστος διόρθωσης δύο συμβολοσειρών ονομάζεται διορθωτική απόσταση (edit distance) αυτών. S U N N - Y S U N - - N Y S N O W Y - S N O W - Y Κόστος Αλγόριθμοι και Πολυπλοκότητα 7-8 Κόστος

65 Προβλήματα - Δυναμικός Προγραμματισμός Διορθωτική Απόσταση To ελάχιστο κόστος διόρθωσης δύο συμβολοσειρών ονομάζεται διορθωτική απόσταση (edit distance) αυτών. S U N N - Y S N O W Y Ε(SUNNY, SNOWY) = Κόστος Αλγόριθμοι και Πολυπλοκότητα 7-8

66 Προβλήματα - Δυναμικός Προγραμματισμός Διορθωτική Απόσταση Πρόβλημα Μας δίνονται δύο συμβολοσειρές α και β με n και m σύμβολα, αντίστοιχα, α, α,, αn και β, β,, βm και μας ζητείται να υπολογίσουμε την διορθωτική απόσταση Ε(α, β) αυτών. Αλγόριθμοι και Πολυπλοκότητα 7-8

67 Διορθωτική Απόσταση Στο ΔΠ το πιο κρίσιμο ερώτημα είναι το εξής: Ποια είναι τα υποπροβλήματα? Όταν αυτά επιλέγονται ώστε να έχουν την Θεμελιώδη Ιδιότητα του ΔΠ!!! Υπάρχει μια διάταξη των υποπροβλημάτων, και μια σχέση που δείχνει πως θα λυθεί ένα υποπρόβλημα έχοντας τις λύσεις «μικροτέρων» υποπροβλημάτων!!! η διατύπωση ενός αλγόριθμου είναι εύκολη υπόθεση!!! Τότε, επαναληπτικά επιλύουμε τα υποπροβλήματα κατά σειρά αυξανόμενου μεγέθους! Αλγόριθμοι και Πολυπλοκότητα 7-8 7

68 Διορθωτική Απόσταση Ποιο είναι ένα καλό υποπρόβλημα? Θέλουμε την Ε(α,β) ανάμεσα στις δύο συμβολοσειρές α[..n]=(α, α,, αn) και β[..m]= (β, β,, βm) Είναι αυτό που «προχωράει» τη λύση του συνολικού προβλήματος!!! Πρέπει να επινοήσουμε κάτι έξυπνο! Τι θα λέγατε να εξετάσουμε την Ε( ) σε προθέματα (prefix) των α και β! Αλγόριθμοι και Πολυπλοκότητα 7-8!!!!!! 8

69 Διορθωτική Απόσταση Ας πάρουμε δύο προθέματα (prefix) των α και β, μήκους i n και j m : α[..i]=(α, α,, αi) και β[..j]= (β, β,, βj) και ας συμβολίσουμε Ε(i,j) την διορθωτική απόσταση αυτού του υποπροβλήματος Παράδειγμα: E X P O N E N T I A L α[..7] P O L Y N O M I A L β[..] Το υποπρόβλημα: Ε(7,) Αλγόριθμοι και Πολυπλοκότητα 7-8

70 Διορθωτική Απόσταση Ας πάρουμε δύο προθέματα (prefix) των α και β, μήκους i n και j m : α[..i]=(α, α,, αi) και β[..j]= (β, β,, βj) και ας συμβολίσουμε Ε(i,j) την διορθωτική απόσταση αυτού του υποπροβλήματος Παράδειγμα: E X P O N E N T I A L α[..] P O L Y N O M I A L β[..] Το υποπρόβλημα: Ε(,) Αλγόριθμοι και Πολυπλοκότητα 7-8 7

71 Διορθωτική Απόσταση Ας πάρουμε δύο προθέματα (prefix) των α και β, μήκους i n και j m : α[..i]=(α, α,, αi) και β[..j]= (β, β,, βj) και ας συμβολίσουμε Ε(i,j) την διορθωτική απόσταση αυτού του υποπροβλήματος Παράδειγμα: E X P O N E N T I A L α[..] P O L Y N O M I A L β[..] Το υποπρόβλημα: Ε(,) Αλγόριθμοι και Πολυπλοκότητα 7-8 7

72 Διορθωτική Απόσταση Ας πάρουμε δύο προθέματα (prefix) των α και β, μήκους i n και j m : α[..i]=(α, α,, αi) και β[..j]= (β, β,, βj) και ας συμβολίσουμε Ε(i,j) την διορθωτική απόσταση αυτού του υποπροβλήματος Παράδειγμα: E X P O N E N T I A L α[..] P O L Y N O M I A L β[..] ΤΕΛΙΚΟΣ ΣΤΟΧΟΣ: Αλγόριθμοι και Πολυπλοκότητα 7-8 E(, ) 7

73 Διορθωτική Απόσταση Ας πάρουμε δύο προθέματα (prefix) των α και β, μήκους i n και j m : α[..i]=(α, α,, αi) και β[..j]= (β, β,, βj) και ας συμβολίσουμε Ε(i,j) την διορθωτική απόσταση αυτού του υποπροβλήματος Λύση: E X P O N E N - T I A L - - P O L Y N O M I A L ΒΕΛΤΙΣΤΗ ΛΥΣΗ: Αλγόριθμοι και Πολυπλοκότητα 7-8 E(, ) = 7

74 Διορθωτική Απόσταση Θα πρέπει να εκφράσουμε το υποπρόβλημα Ε(i,j) συναρτήσει μικρότερων υποπροβλημάτων!!! Τι γνωρίζουμε για την καλύτερη διόρθωση (στοίχιση) ανάμεσα στις συμβολοσειρές α[..i] και β[..j]? Γνωρίζουμε ότι για την δεξιότερη στήλη ισχύει μία από τις ακόλουθες τρεις περιπτώσεις : α[i] Αλγόριθμοι και Πολυπλοκότητα 7-8 ή - β[j] ή α[i] β[j] 7

75 Διορθωτική Απόσταση Κόστος σε κάθε περίπτωση : α[i] - Αλγόριθμοι και Πολυπλοκότητα 7-8 ή β[j] ή α[i] β[j] 7

76 Διορθωτική Απόσταση Κόστος σε κάθε περίπτωση : α[i] η Περίπτωση: ή β[j] ή α[i] β[j] Επιφέρει κόστος Και απομένει να διορθώσουμε (στοιχίσουμε) τις συμβολοσειρές α[..i-] και β[..j] Όμως, αυτό είναι ακριβώς το υποπρόβλημα Ε(i-, j) Αλγόριθμοι και Πολυπλοκότητα 7-8 7

77 Διορθωτική Απόσταση Κόστος σε κάθε περίπτωση : α[i] η Περίπτωση: ή β[j] ή α[i] β[j] Επιφέρει κόστος Και απομένει να διορθώσουμε (στοιχίσουμε) τις συμβολοσειρές α[..i] και β[..j-] Όμως, αυτό είναι ακριβώς το υποπρόβλημα Ε(i, j-) Αλγόριθμοι και Πολυπλοκότητα

78 Διορθωτική Απόσταση Κόστος σε κάθε περίπτωση : α[i] η Περίπτωση: ή β[j] ή α[i] β[j] Επιφέρει κόστος (εάν α[i] β[j]) ή κόστος (εάν α[i]=β[j]) Και απομένει να διορθώσουμε τις α[..i-] και β[..j-] Τώρα, το υποπρόβλημα είναι ακριβώς το Ε(i-, j-) Αλγόριθμοι και Πολυπλοκότητα

79 Διορθωτική Απόσταση Επομένως, έχουμε εκφράσει το Ε(i, j) συναρτήσει τριών μικροτέρων υποπροβλημάτων: Ε(i-, j) Ε(i, j-) Ε(i-, j-) Όμως, δεν γνωρίζουμε ποιο από αυτά είναι σωστό!!! Οπότε θα τα δοκιμάσουμε όλα και θα επιλέξουμε το καλύτερο: Ε(i,j) = min {+Ε(i-,j), +Ε(i,j-), { } +Ε(i-,j-)} Αλγόριθμοι και Πολυπλοκότητα 7-8 7

80 Διορθωτική Απόσταση Αλγόριθμος Edit-distance(a[..n],b[..m]). Initialize(). for i to n for j to m for i to n E(i,) = i for j to m E(,j) = j E(i,j) min {+E(i-,j), +E(i,j-), { } +E(i-,j-)}. return E(n,m) Αλγόριθμοι και Πολυπλοκότητα 7-8 8

81 Διορθωτική Απόσταση Αλγόριθμος Edit-distance(a[..n],b[..m]). Initialize(). for i to n for j to m Συνολική Πολυπλοκότητα O(nm) E(i,j) min {+E(i-,j), +E(i,j-), { } +E(i-,j-)}. return E(n,m) Αλγόριθμοι και Πολυπλοκότητα 7-8 8

82 Διορθωτική Απόσταση Παράδειγμα Ας πάρουμε τις συμβολοσειρές E X P O N E N T I A L και το υποπρόβλημα Ε(, ) P O L Y N O M I A L Το Ε(,) αντιστοιχεί στις συμβολοσειρές EXPO και POL Εδώ, θέσαμε το Ερώτημα!!! Τι ισχύει για την δεξιότερη στήλη σε μια βέλτιστη λύση του υποπροβλήματος Ε(,)? Αλγόριθμοι και Πολυπλοκότητα 7-8 8

83 Διορθωτική Απόσταση Παράδειγμα Ας πάρουμε τις συμβολοσειρές και το υποπρόβλημα Ε(, ) E X P O N E N T I A L P O L Y N O M I A L Τρεις περιπτώσεις μπορούν να ισχύουν: O - ή - L ή O L Άρα, Ε(,) = min{+ε(,), +Ε(,), +Ε(,)} Αλγόριθμοι και Πολυπλοκότητα 7-8 8

84 Διορθωτική Απόσταση Παράδειγμα Οι λύσεις όλων των υποπρ/μάτων Ε(i,j) σχηματίζουν ένα διδιάστατο πίνακα ΛΥΣΗ P O L Y N O M I A L 7 8 E 7 8 X 7 8 P 7 8 O 7 8 N 7 8 E 7 8 N T I A L Ε(,) = Αλγόριθμοι και Πολυπλοκότητα 7-8 8

85 Διορθωτική Απόσταση Παράδειγμα Συνολικά, τα υποπροβλήματα Ε(i,j) σχηματίζουν ένα n m διδιάστατο πίνακα E X P O L Y N O j- j j+ M I A L m- m P O N i- E i N i+ Ε(i,j) T I ΛΥΣΗ A n- L n Ε(n,m) Διορθωτική απόσταση = Ε(n, m) Αλγόριθμοι και Πολυπλοκότητα 7-8 8

86 Διορθωτική Απόσταση Παράδειγμα Αλγόριθμος Edit-distance(a[..],b[..]) a[..] = E X P O N E N T I A L b[..] = P O L Y N O M I A L return E(,) = E X P O N E N - T I A L - - P O L Y N O M I A L Αλγόριθμοι και Πολυπλοκότητα 7-8 8

87 Προβλήματα - Δυναμικός Προγραμματισμός Πολλαπλασιασμός Ακολουθίας Πινάκων Έστω ότι θέλουμε να πολλαπλασιάσουμε πίνακες Α B C D διαστάσεων,, και Ο πολλαπλασιασμός πινάκων δεν είναι αντιμεταθετικός (Α B B Α), αλλά είναι προσεταιριστικός, που σημαίνει: (Α B) C = Α (B C) Μπορούμε να υπολογίσουμε το γινόμενο των πινάκων μας με πολλούς διαφορετικούς τρόπους! Αλγόριθμοι και Πολυπλοκότητα

88 Προβλήματα - Δυναμικός Προγραμματισμός Πολλαπλασιασμός Ακολουθίας Πινάκων Έστω ότι θέλουμε να πολλαπλασιάσουμε πίνακες Α B C D διαστάσεων,, και Ερώτημα!!! Υπάρχει διαφορά? Εάν ΝΑΙ!!! Αλγόριθμοι και Πολυπλοκότητα 7-8 Ποιος τρόπος είναι ο καλύτερος? 88

89 Προβλήματα - Δυναμικός Προγραμματισμός Πολλαπλασιασμός Ακολουθίας Πινάκων Πολλαπλασιασμός Α B C D O πολλ/σμός δύο πινάκων Α B διαστάσεων n m και m p απαιτεί n m p πολλαπλασιασμούς Διάταξη Παρενθέσεων Α Β C D Υπολογισμός Κόστους Κόστος Α ((B C) D) + +. (Α (B C)) D (Α B) (C D) + +. Αλγόριθμοι και Πολυπλοκότητα

90 Προβλήματα - Δυναμικός Προγραμματισμός Πολλαπλασιασμός Ακολουθίας Πινάκων Πρόβλημα Μας δίδεται μια ακολουθία n πινάκων (συμβατών διαστάσεων) Α, Α,, Αn και μας ζητείται να υπολογίσουμε το γινόμενο Α Α Αn κάνοντας το ελάχιστο πλήθος πολλαπλασιασμών. Αλγόριθμοι και Πολυπλοκότητα 7-8

91 Πολλαπλασιασμός Ακολουθίας Πινάκων Από το εισαγωγικό παράδειγμα είδαμε ότι η σειρά των πολλαπλασιασμών επηρεάζει πολύ τον χρόνο επίλυσης του προβλήματος!!!! Διάταξη Παρενθέσεων Υπολογισμός Κόστους Κόστος Α ((B C) D) + +. (Α (B C)) D (Α B) (C D) Να ακολουθήσουμε άπληστη προσέγγιση? επιλέγοντας πάντοτε το φθηνότερο διαθέσιμο πολλ/σμό! Αλγόριθμοι και Πολυπλοκότητα 7-8 Αποτυχία!!!

92 Πολλαπλασιασμός Ακολουθίας Πινάκων Πως θα βρούμε τη βέλτιστη σειρά των πολλ/μών? όταν θέλουμε να υπολογίσουμε το γινόμενο n πινάκων Α Α Α Αn- Αn διαστάσεων m m, m m, m m,, mn- mn-, mn- mn. Παρατήρηση Μια σειρά πολλ/μών μπορεί να αναπαρασταθεί πολύ φυσικά με ένα δυαδικό δένδρο: οι πίνακες αντιστοιχούν στα φύλλα οι ενδιάμεσοι κόμβοι είναι τα ενδιάμεσα γινόμενα η ρίζα είναι το τελικό αποτέλεσμα Αλγόριθμοι και Πολυπλοκότητα 7-8

93 Πολλαπλασιασμός Ακολουθίας Πινάκων Παράδειγμα ((Α B) C) D) D Α ((B C) D) Α D D C Α Β Αλγόριθμοι και Πολυπλοκότητα 7-8 (Α (B C)) D Β C Α Β C

94 Πολλαπλασιασμός Ακολουθίας Πινάκων Δένδρα - Διατάξεις ((Α B) C) D) D Α ((B C) D) Α D D C Α Β (Α (B C)) D Β C Α Β C Οι δυνατές διατάξεις με τις οποίες μπορεί να εκτελεστεί ο πολλ/σμός n πινάκων αντιστοιχούν στα διαφορετικά πλήρη δυαδικά δένδρα n κόμβων Πόσα είναι τα δένδρα αυτά? Ω(n) Δυστυχώς, το πλήθος τους είναι εκθετικό!!! Αλγόριθμοι και Πολυπλοκότητα 7-8

95 Πολλαπλασιασμός Ακολουθίας Πινάκων Δένδρα - Διατάξεις ((Α B) C) D) D Α ((B C) D) Α D D C Α Β (Α (B C)) D Β Α C Β C Ένα από τα δένδρα αυτά είναι βέλτιστο!! Εάν το δένδρο T είναι βέλτιστο, τότε είναι βέλτιστα και τα υποδένδρα Τ και Τ της ρίζας του. Ερώτηση! Αλγόριθμοι και Πολυπλοκότητα 7-8 Ποια είναι τα υποπροβλήματα που αντιστοιχούν στα υποδένδρα Τ και Τ του βέλτιστου δένδρου T?

96 Πολλαπλασιασμός Ακολουθίας Πινάκων Tα υποπροβλήματα που αντιστοιχούν στα υποδένδρα Τ και Τ της ρίζας ενός βέλτιστου δένδρου T είναι γινόμενα της μορφής: Α Α Αk Αk Αk+ Αn (Τ) (Τ) Γενικά, το υποπρόβλημα που αντιστοιχεί σε ένα υποδένδρο ενός βέλτιστου δένδρου T είναι γινόμενο της μορφής: Αi Αi+ Αj = Αi..j Αλγόριθμοι και Πολυπλοκότητα 7-8

97 Πολλαπλασιασμός Ακολουθίας Πινάκων Ορίζουμε C[i,j] = min κόστος του πολλ/σμού Αi Αi+ Αj όπου κόστος είναι το πλήθος των πολλαπλασιασμών αυτού του υποπροβλήματος Το μικρότερο υποπρόβλημα το παίρνουμε όταν i = j, όπου σε αυτή την περίπτωση δεν έχουμε κάτι να πολλαπλασιάσουμε, οπότε C[i,j]= Αλγόριθμοι και Πολυπλοκότητα 7-8 7

98 Πολλαπλασιασμός Ακολουθίας Πινάκων Θεωρούμε το βέλτιστο υποδένδρο Τij, j > i, για το γινόμενο Αi Αi+ Αj Η ρίζα του υποδένδρου Τij χωρίζει το γινόμενο Αi Αi+ Αj Α Αi Αi+ Αk Β C Αk+ Αk+ Αj σε δύο τμήματα, για κάποιο k, i k j. Αλγόριθμοι και Πολυπλοκότητα 7-8 8

99 Πολλαπλασιασμός Ακολουθίας Πινάκων Τότε, το κόστος C[i,j] του υποδένδρου Τij θα είναι: το κόστος υπολογισμού των μερικών γινομένων Αi Αi+ Αk και Αk+ Αk+ Αj συν το κόστος του πολλ/σμού των πινάκων Αi..k και Αk+..j που είναι mi- mk mj. Διάσταση Αi mi- mi Πρέπει απλώς να βρούμε το σημείο χωρισμού k για το οποίο το κόστος C[i,j] είναι το μικρότερο!!! Αλγόριθμοι και Πολυπλοκότητα 7-8

100 Πολλαπλασιασμός Ακολουθίας Πινάκων Τότε, το κόστος C[i,j] του υποδένδρου Τij θα είναι: το κόστος υπολογισμού των μερικών γινομένων Αi Αi+ Αk και Αk+ Αk+ Αj συν το κόστος του πολλ/σμού των πινάκων Αi..k και Αk+..j που είναι mi- mk mj. C[i,j] = min i k j {C[i,k] + C[k+,j] + mi- mk mj} Αλγόριθμοι και Πολυπλοκότητα 7-8

101 Πολλαπλασιασμός Ακολουθίας Πινάκων Σχέση που δίδει τη λύση ενός υποπροβλήματος από «μικρότερα» υποπροβλήματα C[i,j] = min i k j {C[i,k] + C[k+,j] + mi- mk mj} Αναδρομή? ΌΧΙ, ευχαριστώ!!! Ω(n) Αλγόριθμοι και Πολυπλοκότητα 7-8

102 Πολλαπλασιασμός Ακολουθίας Πινάκων Σχέση που δίδει τη λύση ενός υποπροβλήματος από «μικρότερα» υποπροβλήματα C[i,j] = min i k j {C[i,k] + C[k+,j] + mi- mk mj} Δυναμικός Προγραμματισμός? ΝΑΙ, θα πάρω!!! Ερώτηση: Πόσα υποπροβλήματα έχω? Ένα για κάθε ζεύγος (i, j) O(n) Αλγόριθμοι και Πολυπλοκότητα 7-8

103 Πολλαπλασιασμός Ακολουθίας Πινάκων Αλγόριθμος Matrix-Chain(). for i to n: C(i,i)=. for s to n- for i to n-s j i + s for k i to j Συνολική Πολυπλοκότητα O(n) C[i,j] min{c[i,k]+c[k+,j]+mi- mk mj}. return C[,n] Αλγόριθμοι και Πολυπλοκότητα 7-8

104 Πολλαπλασιασμός Ακολουθίας Πινάκων Παράδειγμα Α Α Α Α Α Α,7 7,87,7,87,,,7 7,, 7,,7,,, C[,] = C[,] =... C[,] = Αλγόριθμοι και Πολυπλοκότητα 7-8

105 Πολλαπλασιασμός Ακολουθίας Πινάκων Παράδειγμα Α Α Α Α Α Α,7 7,87,7,87,,,7 7,, 7,,7,,, C[,] = =,7 C[,] = =,... C[,] = =, Αλγόριθμοι και Πολυπλοκότητα 7-8

106 Πολλαπλασιασμός Ακολουθίας Πινάκων Παράδειγμα Α Α Α Α Α Α Αλγόριθμοι και Πολυπλοκότητα 7-8,7 7,87,7,87,,,7 7,, 7,,7,,,

107 Πολλαπλασιασμός Ακολουθίας Πινάκων Παράδειγμα Α Α Α Α Α Α,7 7,87,7,87,,,7 7,, 7,,7,,, C[,]+C[,]+ m m m =, C[,] = min C[,]+C[,]+ m m m = 7, C[,]+C[,]+ m m m =,7 Αλγόριθμοι και Πολυπλοκότητα 7-8 7

108 Πολλαπλασιασμός Ακολουθίας Πινάκων Παράδειγμα Α Α Α Α Α Α,7 7,87,7,87,,,7 7,, 7,,7,,, Τελικό Αποτέλεσμα: C[,] =, Αλγόριθμοι και Πολυπλοκότητα 7-8 8

109 Πολλαπλασιασμός Ακολουθίας Πινάκων Παράδειγμα Α Α Α Α Α Α,7 7,87,7,87,,,7 7,, 7,,7,,, Ποια είναι η βέλτιστη λύση της Α Α Α? Αλγόριθμοι και Πολυπλοκότητα 7-8

110 Πολλαπλασιασμός Ακολουθίας Πινάκων Παράδειγμα Α Α Α Α Α Α,7 7,87,7,87,,,7 7,, 7,,7,,, C[,]+C[,]+ m m m =, C[,] = min C[,]+C[,]+ m m m = 7, C[,]+C[,]+ m m m =,7 Αλγόριθμοι και Πολυπλοκότητα 7-8

111 Πολλαπλασιασμός Ακολουθίας Πινάκων Παράδειγμα Α Α Α Α Α Α,7 7,87,7,87,,,7, 7,,7,,, C[,]+C[,]+ m m m =, C[,] = min C[,]+C[,]+ m m m = 7, C[,]+C[,]+ m m m =,7 Αλγόριθμοι και Πολυπλοκότητα 7-8

112 Πολλαπλασιασμός Ακολουθίας Πινάκων Παράδειγμα Α Α Α Α Α Α C[,] =, Α Α Α Α Α Α ( Α Α Α ) ( Α Α Α ) ( Α ( Α Α ) ) ( ( Α Α ) Α ) Αλγόριθμοι και Πολυπλοκότητα 7-8

113 Προβλήματα - Δυναμικός Προγραμματισμός Ελάχιστες Αξιόπιστες Διαδρομές Κίνητρο Σε εφαρμογές συμβαίνει συχνά τα βάρη των ακμών και οι ελάχιστες διαδρομές να μην απεικονίζουν ολόκληρη την αλήθεια!!! Για παράδειγμα, σε ένα δίκτυο επικοινωνιών, ακόμα και αν τα βάρη των ακμών απεικονίζουν πιστά τις καθυστερήσεις μετάδοσης, μπορεί να υπάρχουν άλλοι παράγοντες που εμπλέκονται σε μια ε.δ!!! Αλγόριθμοι και Πολυπλοκότητα 7-8

114 Προβλήματα - Δυναμικός Προγραμματισμός Ελάχιστες Αξιόπιστες Διαδρομές Κίνητρο Θα μπορούσε, για παράδειγμα, κάθε επιπλέον ακμή στην ε.δ να είναι ένας παράγοντας «αβεβαιότητας» που ελλοχεύει κίνδυνους απώλειας πακέτων! Τότε, θα θέλαμε να αποφύγουμε διαδρομές με πάρα πολλές ακμές! Αλγόριθμοι και Πολυπλοκότητα 7-8 s u v x t y

115 Προβλήματα - Δυναμικός Προγραμματισμός Ελάχιστες Αξιόπιστες Διαδρομές d(s,t)=(s,u,x,y,t) Κόστος Πλήθος ακμών s Κόστος Πλήθος ακμών Αλγόριθμοι και Πολυπλοκότητα 7-8 s v u v t y x x δ(s,t)=(s,y,t) u t y

116 Προβλήματα - Δυναμικός Προγραμματισμός Ελάχιστες Αξιόπιστες Διαδρομές Πρόβλημα Έστω ένα έμβαρο γράφημα G, δύο κόμβοι του s και t, και ένας ακέραιος k. Θέλουμε να υπολογίσουμε μια ε.δ στο G s t η οποία να χρησιμοποιεί το πολύ k ακμές!!! Αλγόριθμοι και Πολυπλοκότητα 7-8

117 Ελάχιστες Αξιόπιστες Διαδρομές Υπάρχει κάποιος αποτελεσματικός τρόπος να προσαρμόσουμε τον αλγόριθμο του Dijkstra στο νέο μας πρόβλημα? Μάλλον Όχι!!! Ο αλγόριθμος του Dijkstra εστιάζει στο μήκος κάθε ε.δ χωρίς να «θυμάται» το πλήθος των ακμών στη διαδρομή! Ακόμα και να το θυμόταν, δεν θα μπορούσε να επιλέξει την ελάχιστη με το πολύ k ακμές!!! Αλγόριθμοι και Πολυπλοκότητα 7-8 7

118 Ελάχιστες Αξιόπιστες Διαδρομές Μήπως ο Δυναμικός Προγραμματισμός μας λύσει το πρόβλημα? Ας ορίσουμε για κάθε κόμβο v και κάθε ακέραιο i k d(s,v,i) = d(v,i) να είναι το κόστος της ελάχιστης διαδρομής s η οποία να χρησιμοποιεί το πολύ i ακμές v Προφανώς, ισχύει: d(s,) = d(v,) = Αλγόριθμοι και Πολυπλοκότητα 7-8 v V-{s} 8

119 Ελάχιστες Αξιόπιστες Διαδρομές Πολύ φυσικά, η γενική εξίσωση ενημέρωσης, είναι: d(v,i) = min{d(v,i-), min (u,v) E {d(u,i-)+ w(u,v)}} Αυτό ήταν Τελειώσαμε!!! Ο αλγόριθμος πλέον γράφεται πολύ εύκολα, σχεδόν μόνος του!!! Αλγόριθμοι και Πολυπλοκότητα 7-8

120 Ελάχιστες Αξιόπιστες Διαδρομές Αλγόριθμος K-shortest-path(G,w, k). Initialize(). for i to k for each v V-{s} for each u Adj(v) for i to n C(i,) = C(s,) = d(v,i) min {C(v, i-), C(u, i-) + w(u,v)}. return C(k) Αλγόριθμοι και Πολυπλοκότητα 7-8

121 Ελάχιστες Αξιόπιστες Διαδρομές Παράδειγμα p - s - d(v,) = s p r x y t Αλγόριθμοι και Πολυπλοκότητα 7-8 r -7 x t y

122 Ελάχιστες Αξιόπιστες Διαδρομές Παράδειγμα p - s - d(v,) = d(v,) = s p r x y t - Αλγόριθμοι και Πολυπλοκότητα 7-8 r -7 x t y

123 Ελάχιστες Αξιόπιστες Διαδρομές Παράδειγμα p - s - d(v,) = d(v,) = d(v,) = s p r x y t - - r -7 x t y d(y,) = min {d(y,), min (u,y) E {d(u,) + w(u,y)}} = min{, min{+, +, +}} = Αλγόριθμοι και Πολυπλοκότητα 7-8

124 Ελάχιστες Αξιόπιστες Διαδρομές Παράδειγμα p - s - s p r x y t d(v,) = d(v,) = d(v,) = - - d(v,) = - d(y,) r -7 x t y = min{, min{+, +, +}} = Αλγόριθμοι και Πολυπλοκότητα 7-8

125 Ελάχιστες Αξιόπιστες Διαδρομές Παράδειγμα p - s - s p r x y t d(s,v,) d(s,v,) d(s,v,) - - d(s,v,) d(s,v,) - - Αλγόριθμοι και Πολυπλοκότητα 7-8 r -7 x t y

126 Προβλήματα - Δυναμικός Προγραμματισμός Πανζευκτικές Ελάχιστες Διαδρομές Κίνητρο Σε πολλές εφαρμογές, χρειαζόμαστε να έχουμε όχι μόνο την ε.δ μεταξύ s t ενός G τάξης n, αλλά μεταξύ κάθε ζεύγους κόμβων του!!! Μπορούμε να λύσουμε το πρόβλημα? Φυσικά ΝΑΙ!!! Εφαρμόζοντας n φορές τον αλγόριθμο των BellmanFord (επιτρέπονται αρνητικά βάρη) Αλγόριθμοι και Πολυπλοκότητα 7-8

127 Προβλήματα - Δυναμικός Προγραμματισμός Πανζευκτικές Ελάχιστες Διαδρομές Σε πόσο χρόνο? Ο Bellman-Ford εκτελείται σε O(nm) χρόνο, και επομένως: O(nm) Μπορούμε καλύτερα? ΝΑΙ!!! με τον αλγόριθμο των Floyd-Watshall ο οποίος βασίζεται σε ΔΠ, σε χρόνο: O(n) Αλγόριθμοι και Πολυπλοκότητα 7-8 7

128 Προβλήματα - Δυναμικός Προγραμματισμός Πανζευκτικές Ελάχιστες Διαδρομές Πρόβλημα Έστω ένα έμβαρο γράφημα G (με αρνητικά ακμικά βάρη) τάξης n και μεγέθους m. Θέλουμε να υπολογίσουμε τις ε.δ στο G x y για κάθε ζεύγος κόμβων (x, y), x, y V(G)!!! Αλγόριθμοι και Πολυπλοκότητα 7-8 8

129 Πανζευκτικές Ελάχιστες Διαδρομές Το να λύσουμε το πρόβλημα υπολογίζοντας όλο και περισσότερα ζεύγη κόμβων δε βοηθά, καθώς οδηγεί πίσω στον αλγόριθμο O(nm)!!! Κρίσιμο Ερώτημα ΔΠ Υπάρχει κάποιο καλό υποπρόβλημα για τον υπολογισμό των αποστάσεων μεταξύ κάθε ζεύγους κόμβων? Πρέπει να επινοήσουμε κάτι έξυπνο! να βρούμε μια νέα ιδέα! Αλγόριθμοι και Πολυπλοκότητα 7-8!!!!!!

130 Πανζευκτικές Ελάχιστες Διαδρομές Να μια ιδέα!!! Ας πάρουμε μια ε.δ x x u u y u uk y Ενδιάμεσοι Κόμβοι Υποθέστε ότι δεν επιτρέπουμε ενδιάμεσους κόμβους!!! Τότε, μπορούμε να λύσουμε το πρόβλημα των π.ε.δ, καθώς για κάθε ζεύγος κόμβων x, y του G: η ε.δ x y είναι η ακμή (x, y), εάν υπάρχει!!! Αλγόριθμοι και Πολυπλοκότητα 7-8

131 Πανζευκτικές Ελάχιστες Διαδρομές Να μια ιδέα!!! Ας πάρουμε μια ε.δ x x u u y u uk y Ενδιάμεσοι Κόμβοι Αν διευρύνουμε σταδιακά το σύνολο των ενδιάμεσων κόμβων, έναν κάθε φορά, ενημερώνοντας τα μήκη των ε.δ σε κάθε διεύρυνση, τι μπορούμε να πετύχουμε!!! Αλγόριθμοι και Πολυπλοκότητα 7-8

132 Πανζευκτικές Ελάχιστες Διαδρομές Να μια ιδέα!!! Ας πάρουμε μια ε.δ x x u u y u uk y Ενδιάμεσοι Κόμβοι Μπορούμε να διευρύνουμε το σύνολο των ενδιάμεσων κόμβων έως να γίνει όλο το σύνολο κόμβων V!!! Τότε όμως έχουμε λύσει το πρόβλημα των π.ε.δ!!! Αλγόριθμοι και Πολυπλοκότητα 7-8

133 Πανζευκτικές Ελάχιστες Διαδρομές Τυποποίηση της ιδέας!!! Αριθμούμε τους κόμβους του V ως {,,,n} d(i,j,k) συμβολίζουμε το μήκος της ε.δ i j με ενδιάμεσους κόμβους ΜΟΝΟ από το σύνολο {,,,k} Επομένως, d(i,j,) = w(i,j) εάν υπάρχει η ακμή (i,j) Αλγόριθμοι και Πολυπλοκότητα 7-8

134 Πανζευκτικές Ελάχιστες Διαδρομές Τι πρέπει να ελέγξουμε όταν επεκτείνουμε το ενδιάμεσο σύνολο κατά ένα κόμβο? {,,,k-} {,,,k} Πρέπει να επανεξετάσουμε όλα τα ζεύγη κόμβων i, j και να ελέγξουμε εάν η χρήση του k ως ενδιάμεσου κόμβου μας δίνει μια συντομότερη διαδρομή i j αυτό είναι d(k,j,k-) εύκολο!!! k d(i,k,k-) j i d(i,j,k-) Αλγόριθμοι και Πολυπλοκότητα 7-8

135 Πανζευκτικές Ελάχιστες Διαδρομές Μια ε.δ i j η οποία χρησιμοποιεί τον k μαζί με άλλους κόμβους χαμηλότερης αρίθμησης {,,,k-}, περνάει από τον k μία μόνο φορά!!! γιατί δεν υπάρχουν αρνητικοί κύκλοι d(i,k,k-) k d(k,j,k-) j i d(i,j,k-) Αλγόριθμοι και Πολυπλοκότητα 7-8

136 Πανζευκτικές Ελάχιστες Διαδρομές Έτσι, η χρήση του k ως ενδιάμεσου κόμβου μας δίνει μια συντομότερη διαδρομή i j εάν και μόνο εάν: d(i,k,k-) + d(k,j,k-) < d(i,j,k-) d(i,k,k-) k d(k,j,k-) j i d(i,j,k-) οπότε η τιμή: d(i,j,k) θα πρέπει να ενημερωθεί ανάλογα!!! Αλγόριθμοι και Πολυπλοκότητα 7-8

137 Πανζευκτικές Ελάχιστες Διαδρομές Σχέση Επίλυσης Υποπροβλημάτων d(i,j,) = w(i,j) εάν υπάρχει η ακμή (i,j) Αναδρομική σχέση: w(i,j) if k = min {d(i,j,k-), d(i,k,k-) + d(k,j,k-)} if k d(i,j,k) = Αλγόριθμοι και Πολυπλοκότητα 7-8 7

138 Πανζευκτικές Ελάχιστες Διαδρομές Αλγόριθμος Floyd-Warshall All-pair-Shortest-Paths(G,w). Initialize(G). for k to n for i to n for j to k for i to n for j to n C(i,i) = for all (i,j) E d(i,j,) = w(i,j) d(i,j,k) min {d(i,j,k-), d(i,k,k-) + d(k,j,k-)}. return d(i,j,n) Αλγόριθμοι και Πολυπλοκότητα 7-8 8

139 Πανζευκτικές Ελάχιστες Διαδρομές Πολυπλοκότητα Το πιο χρονοβόρο βήμα:. for k to n for i to n for j to k d(i,j,k) min {d(i,j,k-), d(i,k,k-) + d(k,j,k-)} Συνολική Πολυπλοκότητα Αλγόριθμου: O(n) Αλγόριθμοι και Πολυπλοκότητα 7-8

140 Πανζευκτικές Ελάχιστες Διαδρομές Παράδειγμα d(i,j,) Αλγόριθμοι και Πολυπλοκότητα 7-8

141 Πανζευκτικές Ελάχιστες Διαδρομές Παράδειγμα d(i,j,) d(,,) = min {d(,,), d(,,) + d(,,)} = min {, + } = Αλγόριθμοι και Πολυπλοκότητα 7-8

142 Πανζευκτικές Ελάχιστες Διαδρομές Παράδειγμα d(i,j,) d(,,) d(,,) = min {d(,,), d(,,) + d(,,)} = min {, + } = Αλγόριθμοι και Πολυπλοκότητα 7-8

143 Πανζευκτικές Ελάχιστες Διαδρομές Παράδειγμα d(i,j,) d(,,) d(,,) = min {d(,,), d(,,) + d(,,)} = min {, + } = Αλγόριθμοι και Πολυπλοκότητα 7-8

144 Πανζευκτικές Ελάχιστες Διαδρομές Παράδειγμα d(i,j,) d(,,) d(,,) = min {d(,,), d(,,) + d(,,)} = min {, + 7} = Αλγόριθμοι και Πολυπλοκότητα 7-8

145 Πανζευκτικές Ελάχιστες Διαδρομές Παράδειγμα d(i,j,) Αλγόριθμοι και Πολυπλοκότητα 7-8

146 Προβλήματα - Δυναμικός Προγραμματισμός Σακίδιο Κατά την διάρκεια μιας κλοπής, ένας διαρρήκτης βρίσκει περισσότερα λάφυρα απ όσα περίμενε και πρέπει να αποφασίσει τι θα πάρει!!! Το «σακίδιό» του (knapsack) μπορεί να μεταφέρει W κιλά!!! Υπάρχουν n είδη με βάρη w, w,, wn και αξία v, v,, vn Αλγόριθμοι και Πολυπλοκότητα 7-8

147 Προβλήματα - Δυναμικός Προγραμματισμός Σακίδιο Το ερώτημα που τον απασχολεί!!! Ποιος είναι ο πλέον πολύτιμος συνδυασμός ειδών που μπορεί να βάλει στο σακίδιό του? Το «σακίδιό» του (knap-sack) μπορεί να μεταφέρει W κιλά!!! Υπάρχουν n είδη με βάρη w, w,, wn και αξία v, v,, vn Αλγόριθμοι και Πολυπλοκότητα 7-8 7

148 Προβλήματα - Δυναμικός Προγραμματισμός Σακίδιο Παράδειγμα Έστω ότι το σακίδιο χωράει W = κιλά, και Είδος Βάρος Τιμή Α Β Γ Δ Αλγόριθμοι και Πολυπλοκότητα 7-8?????? 8

149 Προβλήματα - Δυναμικός Προγραμματισμός Σακίδιο Παράδειγμα Δύο Εκδοχές Έστω W = κιλά, και Υπάρχουν απεριόριστες ποσότητες από κάθε είδος Είδος Βάρος Τιμή Α Β Γ Δ Αλγόριθμοι και Πολυπλοκότητα 7-8 Υπάρχει μία μόνο ποσότητα από κάθε είδος

150 Προβλήματα - Δυναμικός Προγραμματισμός Σακίδιο Παράδειγμα Δύο Εκδοχές Έστω W = κιλά, και Υπάρχουν απεριόριστες ποσότητες από κάθε είδος Είδος Βάρος Τιμή Α Β Γ Δ Αλγόριθμοι και Πολυπλοκότητα 7-8 Βέλτιστη Επιλογή από είδος Α w= από είδος Δ w= 8 Συνολική Τιμή 8

151 Προβλήματα - Δυναμικός Προγραμματισμός Σακίδιο Παράδειγμα Δύο Εκδοχές Έστω W = κιλά, και Είδος Βάρος Τιμή Α Β Γ Δ Αλγόριθμοι και Πολυπλοκότητα 7-8 από είδος Α από είδος Γ Βέλτιστη Επιλογή Υπάρχει μία μόνο ποσότητα από κάθε είδος

152 Προβλήματα - Δυναμικός Προγραμματισμός Σακίδιο (Knapsack) Πρόβλημα Μας δίδεται ένα σύνολο n αντικειμένων S = {a, a,, an} με ακέραια βάρη wi και αξίες vi ( i n), και μία τιμή W, και μας ζητείται να υπολογίσουμε ένα υποσύνολο αντικειμένων S S με μέγιστη συνολική αξία C και με συνολικό βάρος W, δηλαδή, max C = Σai S vi Αλγόριθμοι και Πολυπλοκότητα 7-8 και Σa S wi W i

153 Σακίδιο : Με επανάληψη Ας δούμε την εκδοχή που επιτρέπει επανάληψη! Και, όπως πάντα, το κρίσιμο ερώτημα στο ΔΠ είναι: Ποια είναι τα υποπροβλήματα? Μπορούμε να «συρρικνώσουμε» το αρχικό πρόβλημα με δύο τρόπους: () Μπορούμε να εξετάσουμε την περίπτωση σακιδίων μικρότερης χωρητικότητας w W ή () Την περίπτωση λιγότερων ειδών,,, i n Αλγόριθμοι και Πολυπλοκότητα 7-8

154 Σακίδιο : Με επανάληψη Ο πρώτος περιορισμός επιβάλει να έχουμε μικρότερες χωρητικότητες! Ορίζουμε: C(w) = Μax Τιμή που παίρνουμε με σακίδιο χωρητικότητας w Ερώτημα!!! Μπορούμε να εκφράσουμε το υποπρόβλημα C(w) συναρτήσει μικρότερων υποπροβλημάτων? Αλγόριθμοι και Πολυπλοκότητα 7-8??????

155 Σακίδιο : Με επανάληψη Έστω μια βέλτιστη λύση του υποπροβλήματος C(w), που περιλαμβάνει : p,, i,, q τα είδη τέτοια ώστε wp+ + wi+ + wq w με max τιμή C(w)= vp+ + vi+ + vq Εάν η βέλτιστη λύση του C(w) περιλαμβάνει το είδος i βάρους wi, τότε η αφαίρεση του i από το σακίδιο δίδει μια βέλτιστη λύση για το υποπρόβλημα C(w-wi)!!! Με άλλα λόγια: Το υποπρ/μα C(w) είναι απλώς το C(w- wi) + vi, για κάποιο i Αλγόριθμοι και Πολυπλοκότητα 7-8

156 Σακίδιο : Με επανάληψη Με άλλα λόγια: Το υποπρ/μα C(w) είναι απλώς το C(w- wi) + vi, για κάποιο i. Ποιο είναι αυτό το i? δεν γνωρίζουμε!!! Τότε, δεν έχουμε παρά να πάρουμε όλες τις δυνατότητες! Ορίστε πως!!! C(w) = max i : w i w {C(w-wi) + vi} όπου, ως συνήθως, η σύμβασή μας είναι ότι η μέγιστη τιμή του κενού συνόλου είναι!!! Αλγόριθμοι και Πολυπλοκότητα 7-8

157 Σακίδιο : Με επανάληψη Τελειώσαμε! ο αλγόριθμος τώρα γράφεται μόνος του και είναι ιδιαιτέρα κομψός!!! Αλγόριθμος Κnapsack(w[..n], v[..n], W). C()=. for w to W Συνολική Πολυπλοκότητα O(nW) C(w) max {C(w-w(i)) + v(i) : w(i) w} i. return C(W) Αλγόριθμοι και Πολυπλοκότητα 7-8 7

158 Σακίδιο : Με επανάληψη Ας μείνουμε λίγο ακόμα σε αυτή την εκδοχή του προβλήματος! Γνωρίζουμε ότι ένα πρόβλημα ΔΠ εκφράζεται με ένα γράφημα G τύπου DAG!!! Εύλογο ερώτημα!!! Ποιο είναι το DAG του προβλήματος του σακιδίου με επανάληψη? Αλγόριθμοι και Πολυπλοκότητα 7-8?????? 8

159 Σακίδιο : Με επανάληψη Το DAG του προβλήματος Είδος Βάρος Τιμή Χωρητικότητα W = A B Γ Δ 7 8 Κόμβοι DAG Χωρητικότητα Σακιδίου W Αλγόριθμοι και Πολυπλοκότητα 7-8

160 Σακίδιο : Με επανάληψη Το DAG του προβλήματος Είδος Βάρος Τιμή Χωρητικότητα W = A B Γ Δ C(w)= max {C(w-w(i))+v(i): w(i) w} 8 C() C() C() C() C() Αλγόριθμοι και Πολυπλοκότητα 7-8 {,, } 7 8 C() = C(-) + = C() = C(-) + = C() = C(-) + =

161 Σακίδιο : Με επανάληψη Το DAG του προβλήματος Είδος Βάρος Τιμή Χωρητικότητα W = A B Γ Δ C(w)= max {C(w-w(i))+v(i): w(i) w} 8 C() C() C() C() C() C() {,,, } 7 8 C() = C(-) + = 7 C() = C(-) + = 8 C() = C(-) + = Αλγόριθμοι και Πολυπλοκότητα 7-8 C() = C(-) + =

162 Σακίδιο : Με επανάληψη Το DAG του προβλήματος Είδος Βάρος Τιμή Χωρητικότητα W = A B Γ Δ C(w)= max {C(w-w(i))+v(i): w(i) w} {,,, } Σακίδιο με επανάληψη Max διαδρομή σε DAG Αλγόριθμοι και Πολυπλοκότητα 7-8

163 Σακίδιο : Με επανάληψη Το DAG του προβλήματος Είδος Βάρος Τιμή Χωρητικότητα W = A B Γ Δ {Δ} λύση για w = με C(w) = Σακίδιο με επανάληψη Max διαδρομή σε DAG Αλγόριθμοι και Πολυπλοκότητα 7-8

164 Σακίδιο : Με επανάληψη Το DAG του προβλήματος Είδος Βάρος Τιμή Χωρητικότητα W = A B Γ Δ {Β} λύση για w = με C(w) = Σακίδιο με επανάληψη Max διαδρομή σε DAG Αλγόριθμοι και Πολυπλοκότητα 7-8

165 Σακίδιο : Με επανάληψη Το DAG του προβλήματος Είδος Βάρος Τιμή Χωρητικότητα W = A B Γ Δ {Δ,Δ} λύση για w = με C(w) = Σακίδιο με επανάληψη Max διαδρομή σε DAG Αλγόριθμοι και Πολυπλοκότητα 7-8

166 Σακίδιο : Με επανάληψη Το DAG του προβλήματος Είδος Βάρος Τιμή Χωρητικότητα W = A B Γ Δ {Δ,Β} λύση για w = με C(w) = Σακίδιο με επανάληψη Max διαδρομή σε DAG Αλγόριθμοι και Πολυπλοκότητα 7-8

167 Σακίδιο : Με επανάληψη Το DAG του προβλήματος Είδος Βάρος Τιμή Χωρητικότητα W = A B Γ Δ {Α} λύση για w = με C(w) = Σακίδιο με επανάληψη Max διαδρομή σε DAG Αλγόριθμοι και Πολυπλοκότητα 7-8 7

168 Σακίδιο : Με επανάληψη Το DAG του προβλήματος Είδος Βάρος Τιμή Χωρητικότητα W = A B Γ Δ {Α,Δ,Δ} τελική λύση, C(w) = Σακίδιο με επανάληψη Max διαδρομή σε DAG Αλγόριθμοι και Πολυπλοκότητα 7-8 8

169 Αλγοριθμικές Τεχνικές & Προβλήματα Ποιες Αλγοριθμικές Τεχνικές έχουμε δει έως τώρα? Αλγοριθμικές Τεχνικές, όπως: Διαίρει-και-Βασίλευε Άπληστη Επιλογή Πρόσφατα, προσθέσαμε και την τεχνική Δυναμικός Προγραμματισμός Α S U N N - Y Β S N O W Y C Αλγόριθμοι και Πολυπλοκότητα 7-8 D

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

Σχεδίαση και Ανάλυση Αλγορίθμων Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα. Δυναμικός & Γραμμικός Προγραμματισμός Προβλήματα Ροές σε Δίκτυα Σταύρος Δ. Νικολόπουλος -7 Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Ιωαννίνων Webpage: www.cs.uoi.gr/~stavros

Διαβάστε περισσότερα

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

Σχεδίαση & Ανάλυση Αλγορίθμων Σχεδίαση & Ανάλυση Αλγορίθμων Ενότητα 4.2 Διαδρομές σε Γραφήματα Σταύρος Δ. Νικολόπουλος Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Ιωαννίνων Webpage: www.cs.uoi.gr/~stavros Πρόβλημα Οδικό Δίκτυο

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Δυναμικός Προγραμματισμός Τρίγωνο του Pascal Δυναμικός Προγραμματισμός Διωνυμικοί συντελεστές Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο

Διαβάστε περισσότερα

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

Αλγοριθμικές Τεχνικές. Brute Force. Διαίρει και Βασίλευε. Παράδειγμα MergeSort. Παράδειγμα. Τεχνικές Σχεδιασμού Αλγορίθμων Τεχνικές Σχεδιασμού Αλγορίθμων Αλγοριθμικές Τεχνικές Παύλος Εφραιμίδης, Λέκτορας http://pericles.ee.duth.gr Ορισμένες γενικές αρχές για τον σχεδιασμό αλγορίθμων είναι: Διαίρει και Βασίλευε (Divide and

Διαβάστε περισσότερα

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

υναμικός Προγραμματισμός υναμικός Προγραμματισμός ιδάσκοντες: Σ. Ζάχος,. Φωτάκης Επιμέλεια διαφανειών:. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο ιωνυμικοί Συντελεστές ιωνυμικοί

Διαβάστε περισσότερα

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

Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ -4ο εξάμηνο 1 Αλγόριθμοι Δυναμικός Προγραμματισμός http://delab.csd.auth.gr/courses/algorithms/ Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ -4ο εξάμηνο 1 Δυναμικός προγραμματισμός Ο Δυναμικός Προγραμματισμός προτάθηκε από τον

Διαβάστε περισσότερα

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

Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ -4ο εξάμηνο 1 Σχεδίαση Αλγορίθμων Δυναμικός Προγραμματισμός http://delab.csd.auth.gr/~gounaris/courses/ad Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ -4ο εξάμηνο 1 Δυναμικός προγραμματισμός Ο Δυναμικός Προγραμματισμός

Διαβάστε περισσότερα

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

Αλγοριθμικές Τεχνικές Αλγοριθμικές Τεχνικές Παύλος Εφραιμίδης, Λέκτορας http://pericles.ee.duth.gr Αλγοριθμικές Τεχνικές 1 Τεχνικές Σχεδιασμού Αλγορίθμων Ορισμένες γενικές αρχές για τον σχεδιασμό αλγορίθμων είναι: Διαίρει και

Διαβάστε περισσότερα

Outline. 6 Edit Distance

Outline. 6 Edit Distance Αλγόριθμοι και Πολυπλοκότητα Άπληστοι Αλγόριθμοι και Δυναμικός Προγραμματισμός Ασκήσεις CoReLab ΣΗΜΜΥ - Ε.Μ.Π. 16 Νοεμβρίου 216 (CoReLab - NTUA) Αλγόριθμοι - Ασκήσεις 16 Νοεμβρίου 216 1 / 52 Outline 1

Διαβάστε περισσότερα

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

υναμικός Προγραμματισμός υναμικός Προγραμματισμός ιδάσκοντες: Σ. Ζάχος,. Φωτάκης Επιμέλεια διαφανειών:. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο ιωνυμικοί Συντελεστές ιωνυμικοί

Διαβάστε περισσότερα

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

Συντομότερες Διαδρομές Συντομότερες Διαδρομές Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Συντομότερη Διαδρομή Κατευθυνόμενο G(V, E, w) με μήκη Μήκος διαδρομής

Διαβάστε περισσότερα

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

υναμικός Προγραμματισμός υναμικός Προγραμματισμός ημήτρης Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο ιακριτό Πρόβλημα Σακιδίου ίνονται n αντικείμενα και σακίδιο μεγέθους Β. Αντικείμενο

Διαβάστε περισσότερα

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

Συντομότερες ιαδρομές Συντομότερες ιαδρομές ημήτρης Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Συντομότερη ιαδρομή Κατευθυνόμενο G(V, E, w) με μήκη Μήκος διαδρομής Απόσταση d(u,

Διαβάστε περισσότερα

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων Άσκηση 1 α) Η δομή σταθμισμένης ένωσης με συμπίεση διαδρομής μπορεί να τροποποιηθεί πολύ εύκολα ώστε να υποστηρίζει τις

Διαβάστε περισσότερα

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

Συντομότερες Διαδρομές Συντομότερη Διαδρομή Συντομότερες Διαδρομές Διδάσκοντες: Σ Ζάχος, Δ Φωτάκης Επιμέλεια διαφανειών: Δ Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Κατευθυνόμενο G(V, E, w) με μήκη Μήκος

Διαβάστε περισσότερα

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

Συντομότερες ιαδρομές Συντομότερες ιαδρομές ιδάσκοντες: Σ. Ζάχος,. Φωτάκης Επιμέλεια διαφανειών:. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Άδεια Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

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

Δυναμικός Προγραμματισμός πρόβλημα μεγέθους Ν «Διαίρει και βασίλευε» : ανεξάρτητα υποπροβλήματα διάσπαση πρόβλημα μεγέθους k πρόβλημα μεγέθους Ν-k πρόβλημα μεγέθους Ν Σε κάποιες περιπτώσεις όμως τα υποπροβλήματα δεν είναι ανεξάρτητα

Διαβάστε περισσότερα

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

Μάθημα 20: Δυναμικός Προγραμματισμός (DP) Μάθημα 20: Δυναμικός Προγραμματισμός (DP) Γενικά Είναι μια γενική μεθοδολογία και δεν υπάρχει ένα πρότυπο διατύπωσης /επίλυσης προβλημάτων Αρχικά ξεκίνησε σαν μαθηματική μέθοδος για τη λήψη σειράς αλληλοσυνδεόμενων

Διαβάστε περισσότερα

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

Σχεδίαση και Ανάλυση Αλγορίθμων Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 4.0 Επιλογή Αλγόριθμοι Επιλογής Select και Quick-Select Σταύρος Δ. Νικολόπουλος 2016-17 Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Ιωαννίνων Webpage: www.cs.uoi.gr/~stavros

Διαβάστε περισσότερα

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

Αλγόριθμοι και πολυπλοκότητα Δυναμικός Προγραμματισμός ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Αλγόριθμοι και πολυπλοκότητα Δυναμικός Προγραμματισμός Ιωάννης Τόλλης Τμήμα Επιστήμης Υπολογιστών Δυναμικός Προγραμματισμός Δυναμικός Προγραμματισμός 1 Περίληψη

Διαβάστε περισσότερα

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

Δομές Δεδομένων & Αλγόριθμοι Θέματα Απόδοσης Αλγορίθμων 1 Η Ανάγκη για Δομές Δεδομένων Οι δομές δεδομένων οργανώνουν τα δεδομένα πιο αποδοτικά προγράμματα Πιο ισχυροί υπολογιστές πιο σύνθετες εφαρμογές Οι πιο σύνθετες εφαρμογές απαιτούν

Διαβάστε περισσότερα

3η Σειρά Γραπτών Ασκήσεων

3η Σειρά Γραπτών Ασκήσεων 1/48 3η Σειρά Γραπτών Ασκήσεων Αλγόριθμοι και Πολυπλοκότητα ΣΗΜΜΥ, Εθνικό Μετσόβιο Πολυτεχνείο 2/48 1 Άσκηση 1: Πομποί και Δέκτες 2 Άσκηση 2: Διακοπές στην Ικαρία 3 Άσκηση 3: Επιστροφή στη Γη 4 Άσκηση

Διαβάστε περισσότερα

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

Τεχνικές Σχεδιασμού Αλγορίθμων Τεχνικές Σχεδιασμού Αλγορίθμων Διαίρει και Βασίλευε Δυναμικός Προγραμματισμός Απληστία Π. Μποζάνης ΤHMMY - Αλγόριθμοι 2014-2015 1 Διαίρει και Βασίλευε Βασικά Βήματα Διαίρει: Κατάτμηση του αρχικού προβλήματος

Διαβάστε περισσότερα

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

Σχεδίαση και Ανάλυση Αλγορίθμων Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα.0 Αλγοριθμική Τεχνική Απληστίας Ελάχιστες Διαδρομές Dijkstra, Bllman-Ford Ελάχιστα Συνδετικά Δένδρα Kruskal, Prim Σταύρος Δ. Νικολόπουλος 0- Τμήμα Μηχανικών Η/Υ

Διαβάστε περισσότερα

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

Αλγόριθμοι και Πολυπλοκότητα 7ο εξάμηνο Σ.Η.Μ.Μ.Υ. & Σ.Ε.Μ.Φ.Ε. http://www.corelab.ece.ntua.gr/courses/ 4η εβδομάδα: Εύρεση k-οστού Μικρότερου Στοιχείου, Master Theorem, Τεχνική Greedy: Knapsack, Minimum Spanning Tree, Shortest Paths

Διαβάστε περισσότερα

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

Αλγόριθµοι και Πολυπλοκότητα Αλγόριθµοι και Πολυπλοκότητα Ν. Μ. Μισυρλής Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Πανεπιστήµιο Αθηνών Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 28 Μαΐου 2015 1 / 45 Εισαγωγή Ο δυναµικός

Διαβάστε περισσότερα

3η Σειρά Γραπτών Ασκήσεων

3η Σειρά Γραπτών Ασκήσεων 1/55 3η Σειρά Γραπτών Ασκήσεων Αλγόριθμοι και Πολυπλοκότητα ΣΗΜΜΥ, Εθνικό Μετσόβιο Πολυτεχνείο 2/55 1 Άσκηση 1: Πομποί και Δέκτες 2 Άσκηση 2: Διακοπές στην Ικαρία 3 Άσκηση 3: Επιστροφή στη Γη 4 Άσκηση

Διαβάστε περισσότερα

Προσεγγιστικοί Αλγόριθμοι

Προσεγγιστικοί Αλγόριθμοι Πολλά NP-πλήρη προβλήματα έχουν μεγάλο πρακτικό ενδιαφέρον. http://xkcd.com/287/ Πολλά NP-πλήρη προβλήματα έχουν μεγάλο πρακτικό ενδιαφέρον. Πως μπορούμε να αντιμετωπίσουμε το γεγονός ότι είναι απίθανη(;)

Διαβάστε περισσότερα

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

Εισαγωγή στους Αλγορίθμους Ενότητα 11η Εισαγωγή στους Αλγορίθμους Ενότητα 11η Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Δυναμικός Προγραμματισμός Σταθμισμένος Χρονοπρογραμματισμός

Διαβάστε περισσότερα

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

(Γραμμικές) Αναδρομικές Σχέσεις (Γραμμικές) Αναδρομικές Σχέσεις Διδάσκοντες: Φ. Αφράτη, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Αναδρομικές Σχέσεις

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

(Γραμμικές) Αναδρομικές Σχέσεις (Γραμμικές) Αναδρομικές Σχέσεις ιδάσκοντες:. Φωτάκης. Σούλιου Επιμέλεια διαφανειών:. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Αναδρομικές Σχέσεις Αναπαράσταση

Διαβάστε περισσότερα

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

Συντομότερες ιαδρομές Συντομότερες ιαδρομές ιδάσκοντες: Σ. Ζάχος,. Φωτάκης Επιμέλεια διαφανειών:. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Άδεια Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

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

Αλγόριθµοι. Παράδειγµα. ιαίρει και Βασίλευε. Παράδειγµα MergeSort. Τεχνικές Σχεδιασµού Αλγορίθµων Τεχνικές Σχεδιασµού Αλγορίθµων Αλγόριθµοι Παύλος Εφραιµίδης pefraimi@ee.duth.gr Ορισµένες γενικές αρχές για τον σχεδιασµό αλγορίθµων είναι: ιαίρει και Βασίλευε (Divide and Conquer) υναµικός Προγραµµατισµός

Διαβάστε περισσότερα

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

Σχεδίαση & Ανάλυση Αλγορίθμων Σχεδίαση & Ανάλυση Αλγορίθμων Ενότητα 1 Αλγόριθμοι και Πολυπλοκότητα Σταύρος Δ. Νικολόπουλος Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Ιωαννίνων Webpage: www.cs.uoi.gr/~stavros Εισαγωγή Ας ξεκινήσουμε

Διαβάστε περισσότερα

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

Αλγόριθμοι και Πολυπλοκότητα Αλγόριθμοι και Πολυπλοκότητα Διαίρει και Βασίλευε Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Διαίρει και Βασίλευε Divide and Conquer Η τεχνική διαίρει και βασίλευε αναφέρεται

Διαβάστε περισσότερα

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

(Γραμμικές) Αναδρομικές Σχέσεις (Γραμμικές) Αναδρομικές Σχέσεις ιδάσκοντες: Φ. Αφράτη,. Φωτάκης Επιμέλεια διαφανειών:. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Αναδρομικές Σχέσεις Αναπαράσταση

Διαβάστε περισσότερα

Περιεχόμενα. Δομές δεδομένων. Τεχνικές σχεδίασης αλγορίθμων. Εισαγωγή στον προγραμματισμό. Υποπρογράμματα. Επαναληπτικά κριτήρια αξιολόγησης

Περιεχόμενα. Δομές δεδομένων. Τεχνικές σχεδίασης αλγορίθμων. Εισαγωγή στον προγραμματισμό. Υποπρογράμματα. Επαναληπτικά κριτήρια αξιολόγησης Περιεχόμενα Δομές δεδομένων 37. Δομές δεδομένων (θεωρητικά στοιχεία)...11 38. Εισαγωγή στους μονοδιάστατους πίνακες...16 39. Βασικές επεξεργασίες στους μονοδιάστατους πίνακες...25 40. Ασκήσεις στους μονοδιάστατους

Διαβάστε περισσότερα

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

Χαρακτηριστικά Δυναμικού Προγραμματισμού. Εισαγωγικά. 2 Δυναμικός Προγραμματισμός Δυναμικός Προγραμματισμός Τμήμα Ηλεκτρονικών Μηχ. & Μηχ. Υπολογιστών Φθινόπωρο 00 ΣΕΛ 40: Παράλληλοι Αλγόριθμοι και Software Διδάσκων: Τάσος Δημητρίου Δυναμικός Προγραμματισμός είχε υπολογιστεί προηγουμένως

Διαβάστε περισσότερα

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

Θέματα Εφαρμογών Βάσεων Δεδομένων: Ιδιωτικότητα Δεδομένων Θέματα Εφαρμογών Βάσεων Δεδομένων: Ιδιωτικότητα Δεδομένων 3. Δυναμικός Προγραμματισμός Ζαγορίσιος Παναγώτης Παπαοικονόμου Χριστίνα Δυναμικός Προγραμματισμός Μέθοδος επίλυσης σύνθετων προβλημάτων. Όπως

Διαβάστε περισσότερα

I 1 I 2 I 3 I 4 I 5 I 6 I 7 I 8 I 9 I 10 I 11

I 1 I 2 I 3 I 4 I 5 I 6 I 7 I 8 I 9 I 10 I 11 Αλγόριθμοι και Πολυπλοκότητα 2η Σειρά Γραπτών και Προγραμματιστικών Ασκήσεων CoReLab ΣΗΜΜΥ - Ε.Μ.Π. Δεκέμβριος 2016 (CoReLab - NTUA) Αλγόριθμοι - 2η σειρά ασκήσεων Δεκέμβριος 2016 1 / 65 Outline 1 Άσκηση

Διαβάστε περισσότερα

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

Σχεδίαση & Ανάλυση Αλγορίθμων Σχεδίαση & Ανάλυση Αλγορίθμων Ενότητα 3 Αλγόριθμοι Επιλογής Σταύρος Δ. Νικολόπουλος Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Ιωαννίνων Webpage: www.cs.uoi.gr/~stavros Αλγόριθμοι Επιλογής Γνωρίζουμε

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

ιαίρει-και-βασίλευε ημήτρης Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο

ιαίρει-και-βασίλευε ημήτρης Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο ιαίρει-και-βασίλευε ημήτρης Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο ιαίρει-και-βασίλευε Γενική μέθοδος σχεδιασμού αλγορίθμων: ιαίρεση σε ( 2) υποπροβλήματα

Διαβάστε περισσότερα

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

Εισαγωγή στην Ανάλυση Αλγορίθμων Εισαγωγή στην Ανάλυση Αλγορίθμων (4) Μεθοδολογία αναδρομικών σχέσεων (Ι) Με επανάληψη της αναδρομής Έστω όπου r και a είναι σταθερές. Βρίσκουμε τη σχέση που εκφράζει την T(n) συναρτήσει της T(n-) την T(n)

Διαβάστε περισσότερα

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Ενότητα 13: Αλγόριθμοι-Μεγάλων ακεραίων- Εκθετοποίηση- Πολλαπλασιασμός πινάκων -Strassen Μαρία Σατρατζέμη Τμήμα Εφαρμοσμένης Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

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

Αλγόριθµοι και Πολυπλοκότητα Αλγόριθµοι και Πολυπλοκότητα Ν. Μ. Μισυρλής Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Πανεπιστήµιο Αθηνών Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 30 Απριλίου 2015 1 / 48 Εύρεση Ελάχιστου

Διαβάστε περισσότερα

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

Σχεδίαση και Ανάλυση Αλγορίθμων Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 3.0 Σταύρος Δ. Νικολόπουλος 0-7 Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Ιωαννίνων Webpage: www.cs.uoi.gr/~stavros Διαίρει και Βασίλευε Quick-sort και Merge-sort

Διαβάστε περισσότερα

Αλγόριθμοι Γραφημάτων

Αλγόριθμοι Γραφημάτων Αλγόριθμοι Γραφημάτων 1. Συντομότατα μονοπάτια 2. Αλγόριθμος Bellman-Ford 3. Αλγόριθμος Dijkstra 4. Floyd-Warshall Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη Single-Source Shortest Path Πρόβλημα:

Διαβάστε περισσότερα

Άσκηση 1. Ψευδοκώδικας Kruskal. Παρακάτω βλέπουμε την εφαρμογή του στο παρακάτω συνδεδεμένο γράφημα.

Άσκηση 1. Ψευδοκώδικας Kruskal. Παρακάτω βλέπουμε την εφαρμογή του στο παρακάτω συνδεδεμένο γράφημα. Άσκηση 1 Ψευδοκώδικας Kruskal Παρακάτω βλέπουμε την εφαρμογή του στο παρακάτω συνδεδεμένο γράφημα. Αντιστοιχίζω τους κόμβους με αριθμούς από το 0 έως το 4. 2Η ΕΡΓΑΣΙΑ ΑΛΓΟΡΙΘΜΟΙ & ΠΟΛΥΠΛΟΚΟΤΗΤΑ - MAY 2018

Διαβάστε περισσότερα

Αριθμητική Ανάλυση και Εφαρμογές

Αριθμητική Ανάλυση και Εφαρμογές Αριθμητική Ανάλυση και Εφαρμογές Διδάσκων: Δημήτριος Ι. Φωτιάδης Τμήμα Μηχανικών Επιστήμης Υλικών Ιωάννινα 07-08 Αριθμητική Παραγώγιση Εισαγωγή Ορισμός 7. Αν y f x είναι μια συνάρτηση ορισμένη σε ένα διάστημα

Διαβάστε περισσότερα

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

Σχεδίαση και Ανάλυση Αλγορίθμων Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα.0 Σταύρος Δ. Νικολόπουλος 06-7 Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Ιωαννίνων Webpage: www.cs.uoi.gr/~stavros Ταξινόμηση Selection-Sort Bubble-Sort και

Διαβάστε περισσότερα

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

Σχεδίαση και Ανάλυση Αλγορίθμων Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 10.0 Μετασχηματισμοί Υπολογιστικών Προβλημάτων Αναγωγές NP-πληρότητα Σταύρος Δ. Νικολόπουλος 2016-17 Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Ιωαννίνων Webpage:

Διαβάστε περισσότερα

Παντελής Μπουμπούλης, M.Sc., Ph.D. σελ. 2 math-gr.blogspot.com, bouboulis.mysch.gr

Παντελής Μπουμπούλης, M.Sc., Ph.D. σελ. 2 math-gr.blogspot.com, bouboulis.mysch.gr VI Ολοκληρώματα Παντελής Μπουμπούλης, MSc, PhD σελ mth-grlogspotcom, ououlismyschgr ΜΕΡΟΣ Αρχική Συνάρτηση Ορισμός Έστω f μια συνάρτηση ορισμένη σε ένα διάστημα Δ Αρχική συνάρτηση ή παράγουσα της στο Δ

Διαβάστε περισσότερα

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

Κατ οίκον Εργασία 2 Σκελετοί Λύσεων Κατ οίκον Εργασία 2 Σκελετοί Λύσεων 1. Ο αλγόριθµος κτίζει όλες τις δυνατές αναθέσεις εργασιών στους φοιτητές (υπάρχουν n! διαφορετικές αναθέσεις) και επιστρέφει εκείνη µε το µέγιστο βαθµό καταλληλότητας.

Διαβάστε περισσότερα

Ορθότητα Χωρική αποδοτικότητα. Βελτιστότητα. Θεωρητική ανάλυση Εμπειρική ανάλυση. Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ -4ο εξάμηνο 1

Ορθότητα Χωρική αποδοτικότητα. Βελτιστότητα. Θεωρητική ανάλυση Εμπειρική ανάλυση. Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ -4ο εξάμηνο 1 Ανάλυση Αλγορίθμων Θέματα Θέματα: Ορθότητα Χρονική αποδοτικότητα Χωρική αποδοτικότητα Βελτιστότητα Προσεγγίσεις: Θεωρητική ανάλυση Εμπειρική ανάλυση Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ -4ο εξάμηνο 1 Θεωρητική

Διαβάστε περισσότερα

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

Αλγόριθµοι και Πολυπλοκότητα Αλγόριθµοι και Πολυπλοκότητα Ν. Μ. Μισυρλής Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Πανεπιστήµιο Αθηνών Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 6 Μαΐου 2015 1 / 42 Εύρεση Ελάχιστου Μονοπατιού

Διαβάστε περισσότερα

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

ΑΛΓΟΡΙΘΜΟΙ  Άνοιξη I. ΜΗΛΗΣ ΑΛΓΟΡΙΘΜΟΙ http://eclass.aueb.gr/courses/inf161/ Άνοιξη 216 - I. ΜΗΛΗΣ ΔΥΝΑΜΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΑΛΓΟΡΙΘΜΟΙ - ΑΝΟΙΞΗ 216 - Ι. ΜΗΛΗΣ 9 DP II 1 Dynamic Programming ΓΕΝΙΚΗ ΙΔΕΑ 1. Ορισμός υπο-προβλήματος/ων

Διαβάστε περισσότερα

Στοχαστικές Στρατηγικές. διαδρομής (1)

Στοχαστικές Στρατηγικές. διαδρομής (1) Στοχαστικές Στρατηγικές η ενότητα: Το γενικό πρόβλημα ελάχιστης διαδρομής () Τμήμα Μαθηματικών, ΑΠΘ Ακαδημαϊκό έτος 08-09 Χειμερινό Εξάμηνο Παπάνα Αγγελική Μεταδιδακτορική ερευνήτρια, ΑΠΘ & Πανεπιστήμιο

Διαβάστε περισσότερα

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

Εισαγωγή στους Αλγορίθμους Εισαγωγή στους Αλγορίθμους Ενότητα 7η Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Αλγόριθμοι Γραφημάτων Τοπολογική Διάταξη

Διαβάστε περισσότερα

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Ενότητα 3: Ασυμπτωτικός συμβολισμός Μαρία Σατρατζέμη Τμήμα Εφαρμοσμένης Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

Διαβάστε περισσότερα

ΒΟΗΘΗΤΙΚΕΣ ΣΗΜΕΙΩΣΕΙΣ ΣΤΑ ΓΕΝΙΚΑ ΜΑΘΗΜΑΤΙΚΑ

ΒΟΗΘΗΤΙΚΕΣ ΣΗΜΕΙΩΣΕΙΣ ΣΤΑ ΓΕΝΙΚΑ ΜΑΘΗΜΑΤΙΚΑ ΤΜΗΜΑ ΔΙΕΘΝΟΥΣ ΕΜΠΟΡΙΟΥ ΒΟΗΘΗΤΙΚΕΣ ΣΗΜΕΙΩΣΕΙΣ ΣΤΑ ΓΕΝΙΚΑ ΜΑΘΗΜΑΤΙΚΑ ΚΕΦΑΛΑΙΑ: ) ΠΙΝΑΚΕΣ ) ΟΡΙΖΟΥΣΕΣ ) ΓΡΑΜΜΙΚΑ ΣΥΣΤΗΜΑΤΑ 4) ΠΑΡΑΓΩΓΟΙ ΜΑΡΙΑ ΡΟΥΣΟΥΛΗ ΚΕΦΑΛΑΙΟ ΠΙΝΑΚEΣ ΠΡΑΓΜΑΤΙΚΩΝ ΑΡΙΘΜΩΝ ΟΡΙΣΜΟΣ Πίνακας

Διαβάστε περισσότερα

Δυναμικός προγραμματισμός για δέντρα

Δυναμικός προγραμματισμός για δέντρα ΘΕ5 Ιδιότητες Δέντρων και Αναδρομή για Δέντρα Δυναμικός προγραμματισμός για δέντρα Έστω ότι, για k=1,..., m, το γράφημα Γ k = (V k, E k ) είναι δέντρο. Έστω w V 1... V m, z k V k, για k=1,..., m. Συμβολίζουμε

Διαβάστε περισσότερα

4η Γραπτή Ασκηση Αλγόριθμοι και Πολυπλοκότητα CoReLab ΣΗΜΜΥ 7 Φεβρουαρίου 2017 CoReLab (ΣΗΜΜΥ) 4η Γραπτή Ασκηση 7 Φεβρουαρίου / 38

4η Γραπτή Ασκηση Αλγόριθμοι και Πολυπλοκότητα CoReLab ΣΗΜΜΥ 7 Φεβρουαρίου 2017 CoReLab (ΣΗΜΜΥ) 4η Γραπτή Ασκηση 7 Φεβρουαρίου / 38 4η Γραπτή Άσκηση Αλγόριθμοι και Πολυπλοκότητα CoReLab ΣΗΜΜΥ 7 Φεβρουαρίου 2017 CoReLab (ΣΗΜΜΥ) 4η Γραπτή Άσκηση 7 Φεβρουαρίου 2017 1 / 38 Άσκηση 1 Πρέπει να βρούμε όλες τις καλές προτάσεις φίλων για τον

Διαβάστε περισσότερα

4η Γραπτή Ασκηση Αλγόριθμοι και Πολυπλοκότητα CoReLab ΣΗΜΜΥ 3/2/2019 CoReLab (ΣΗΜΜΥ) 4η Γραπτή Ασκηση 3/2/ / 37

4η Γραπτή Ασκηση Αλγόριθμοι και Πολυπλοκότητα CoReLab ΣΗΜΜΥ 3/2/2019 CoReLab (ΣΗΜΜΥ) 4η Γραπτή Ασκηση 3/2/ / 37 4η Γραπτή Άσκηση Αλγόριθμοι και Πολυπλοκότητα CoReLab ΣΗΜΜΥ 3/2/2019 CoReLab (ΣΗΜΜΥ) 4η Γραπτή Άσκηση 3/2/2019 1 / 37 Άσκηση 1 Πρέπει να βρούμε όλες τις καλές προτάσεις φίλων για τον i ανάμεσα σε όλους

Διαβάστε περισσότερα

Θεωρία Γραφημάτων 5η Διάλεξη

Θεωρία Γραφημάτων 5η Διάλεξη Θεωρία Γραφημάτων 5η Διάλεξη Α. Συμβώνης Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Εφαρμοσμένων Μαθηματικών και Φυσικών Επιστημών Τομέας Μαθηματικών Φεβρουάριος 2017 Α. Συμβώνης (ΕΜΠ) Θεωρία Γραφημάτων 5η Διάλεξη

Διαβάστε περισσότερα

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

Αλγόριθµοι και Πολυπλοκότητα Αλγόριθµοι και Πολυπλοκότητα Ν. Μ. Μισυρλής Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Πανεπιστήµιο Αθηνών Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 31 Μαΐου 2019 1 / 10 Ελάχιστα τετράγωνα

Διαβάστε περισσότερα

Διαίρει-και-Βασίλευε. Διαίρει-και-Βασίλευε. MergeSort. MergeSort. Πρόβλημα Ταξινόμησης: Είσοδος : ακολουθία n αριθμών (α 1

Διαίρει-και-Βασίλευε. Διαίρει-και-Βασίλευε. MergeSort. MergeSort. Πρόβλημα Ταξινόμησης: Είσοδος : ακολουθία n αριθμών (α 1 Διαίρει-και-Βασίλευε Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Διαίρει-και-Βασίλευε Γενική μέθοδος

Διαβάστε περισσότερα

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

Δυναµικός Προγραµµατισµός (ΔΠ) Δυναµικός Προγραµµατισµός (ΔΠ) Περίληψη Δυναµικός Προγραµµατισµός Αρχή του Βέλτιστου Παραδείγµατα Δυναµικός Προγραµµατισµός ΔΠ (Dynamic Programming DP) Μέθοδος σχεδιασµού αλγορίθµων Είναι µια γενική µεθοδολογία

Διαβάστε περισσότερα

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

Αλγόριθμοι και Πολυπλοκότητα Αλγόριθμοι και Πολυπλοκότητα Άπληστοι Αλγόριθμοι Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Άπληστοι Αλγόριθμοι Είναι δύσκολο να ορίσουμε ακριβώς την έννοια του άπληστου

Διαβάστε περισσότερα

I 1 I 2 I 3 I 4 I 5 I 6 I 7 I 8 I 9 I 10 I 11

I 1 I 2 I 3 I 4 I 5 I 6 I 7 I 8 I 9 I 10 I 11 Αλγόριθμοι και Πολυπλοκότητα 2η Σειρά Γραπτών και Προγραμματιστικών Ασκήσεων CoReLab ΣΗΜΜΥ - Ε.Μ.Π. Δεκέμβριος 2018 (CoReLab - NTUA) Αλγόριθμοι - 2η σειρά ασκήσεων Δεκέμβριος 2018 1 / 64 Outline 1 Άσκηση

Διαβάστε περισσότερα

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

Δομές Δεδομένων και Αλγόριθμοι Δομές Δεδομένων και Αλγόριθμοι Χρήστος Γκόγκος ΤΕΙ Ηπείρου Χειμερινό Εξάμηνο 2014-2015 Παρουσίαση 18 Dijkstra s Shortest Path Algorithm 1 / 12 Ο αλγόριθμος εύρεσης της συντομότερης διαδρομής του Dijkstra

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Έστω ένας πίνακας με όνομα Α δέκα θέσεων : 1 η 2 η 3 η 4 η 5 η 6 η 7 η 8 η 9 η 10 η

Έστω ένας πίνακας με όνομα Α δέκα θέσεων : 1 η 2 η 3 η 4 η 5 η 6 η 7 η 8 η 9 η 10 η Μονοδιάστατοι Πίνακες Τι είναι ο πίνακας γενικά : Πίνακας είναι μια Στατική Δομή Δεδομένων. Δηλαδή συνεχόμενες θέσεις μνήμης, όπου το πλήθος των θέσεων είναι συγκεκριμένο. Στις θέσεις αυτές καταχωρούμε

Διαβάστε περισσότερα

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

ΑΛΓΟΡΙΘΜΟΙ  Άνοιξη I. ΜΗΛΗΣ ΑΛΓΟΡΙΘΜΟΙ http://eclass.aueb.gr/courses/inf161/ Άνοιξη 2016 - I. ΜΗΛΗΣ ΔΥΝΑΜΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΑΛΓΟΡΙΘΜΟΙ - ΑΝΟΙΞΗ 2016 - Ι. ΜΗΛΗΣ 08 DP I 1 Dynamic Programming Richard Bellman (1953) Etymology (at

Διαβάστε περισσότερα

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

Επιμέλεια διαφανειών: Δ. Φωτάκης Τροποποιήσεις-προσθήκες: Α. Παγουρτζής. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Διαίρει-και-Βασίλευε Επιμέλεια διαφανειών: Δ. Φωτάκης Τροποποιήσεις-προσθήκες: Α. Παγουρτζής Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Διαίρει-και-Βασίλευε Γενική

Διαβάστε περισσότερα

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

Βραχύτερα Μονοπάτια σε Γράφους (CLR, κεφάλαιο 25) Βραχύτερα Μονοπάτια σε Γράφους (CLR, κεφάλαιο 25) Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Ο αλγόριθµος των BellmanFord Ο αλγόριθµος του Dijkstra ΕΠΛ 232 Αλγόριθµοι και Πολυπλοκότητα 61

Διαβάστε περισσότερα

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

Αλγόριθµοι και Πολυπλοκότητα Αλγόριθµοι και Πολυπλοκότητα Ν. Μ. Μισυρλής Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Πανεπιστήµιο Αθηνών Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου 2017 1 / 20 Επιλογή Το πρόβληµα

Διαβάστε περισσότερα

* * * ( ) mod p = (a p 1. 2 ) mod p.

* * * ( ) mod p = (a p 1. 2 ) mod p. Θεωρια Αριθμων Εαρινο Εξαμηνο 2016 17 Μέρος Α: Πρώτοι Αριθμοί Διάλεξη 1 Ενότητα 1. Διαιρετότητα: Διαιρετότητα, διαιρέτες, πολλαπλάσια, στοιχειώδεις ιδιότητες. Γραμμικοί Συνδυασμοί (ΓΣ). Ενότητα 2. Πρώτοι

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Αναδρομικοί Αλγόριθμοι Αναδρομικός αλγόριθμος (recursive algorithm) Επιλύει ένα πρόβλημα λύνοντας ένα ή περισσότερα στιγμιότυπα του ίδιου προβλήματος. Αναδρομικός αλγόριθμος (recursive algorithm) Επιλύει ένα πρόβλημα λύνοντας

Διαβάστε περισσότερα

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ Τελικές εξετάσεις Πέμπτη 27 Ιουνίου 2013 10:003:00 Έστω το πάζλ των οκτώ πλακιδίων (8-puzzle)

Διαβάστε περισσότερα

Μη γράφετε στο πίσω μέρος της σελίδας

Μη γράφετε στο πίσω μέρος της σελίδας Διακριτά Μαθηματικά Ενδιάμεση εξέταση 1 Φεβρουάριος 2014 Σελ. 1 από 7 Στη σελίδα αυτή γράψτε μόνο τα στοιχεία σας. Γράψτε τις απαντήσεις σας στις επόμενες σελίδες, κάτω από τις αντίστοιχες ερωτήσεις. Στις

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Θεωρία Γραφημάτων 6η Διάλεξη

Θεωρία Γραφημάτων 6η Διάλεξη Θεωρία Γραφημάτων 6η Διάλεξη Α. Συμβώνης Εθνικο Μετσοβειο Πολυτεχνειο Σχολη Εφαρμοσμενων Μαθηματικων και Φυσικων Επιστημων Τομεασ Μαθηματικων Φεβρουάριος 2016 Α. Συμβώνης (ΕΜΠ) Θεωρία Γραφημάτων 6η Διάλεξη

Διαβάστε περισσότερα

viii 20 Δένδρα van Emde Boas 543

viii 20 Δένδρα van Emde Boas 543 Περιεχόμενα Πρόλογος xi I Θεμελιώδεις έννοιες Εισαγωγή 3 1 Ο ρόλος των αλγορίθμων στις υπολογιστικές διαδικασίες 5 1.1 Αλγόριθμοι 5 1.2 Οι αλγόριθμοι σαν τεχνολογία 12 2 Προκαταρκτικές έννοιες και παρατηρήσεις

Διαβάστε περισσότερα

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Ενότητα 4: Αναδρομικές σχέσεις και ανάλυση αλγορίθμων Μαρία Σατρατζέμη Τμήμα Εφαρμοσμένης Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης

Διαβάστε περισσότερα

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

Αλγόριθμοι και Δομές Δεδομένων (Ι) (εισαγωγικές έννοιες) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2015-16 Αλγόριθμοι και Δομές Δεδομένων (Ι) (εισαγωγικές έννοιες) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Τι είναι

Διαβάστε περισσότερα

Σημειωματάριο Δευτέρας 4 Δεκ. 2017

Σημειωματάριο Δευτέρας 4 Δεκ. 2017 Σημειωματάριο Δευτέρας 4 Δεκ. 2017 Ο αλγόριθμος Floyd-Warshall για την έυρεση όλων των αποστάσεων σε ένα γράφημα με βάρη στις ακμές Συνεχίσαμε σήμερα το θέμα της προηγούμενης Τετάρτης. Έχουμε ένα γράφημα

Διαβάστε περισσότερα

Γραμμικός Προγραμματισμός Μέθοδος Simplex

Γραμμικός Προγραμματισμός Μέθοδος Simplex ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ Επιχειρησιακή Έρευνα Γραμμικός Προγραμματισμός Μέθοδος Simplex Η παρουσίαση προετοιμάστηκε από τον Ν.Α. Παναγιώτου Περιεχόμενα Παρουσίασης 1. Πρότυπη Μορφή ΓΠ 2. Πινακοποίηση

Διαβάστε περισσότερα

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

Βραχύτερα Μονοπάτια σε Γράφους (CLR, κεφάλαιο 25) Βραχύτερα Μονοπάτια σε Γράφους (CLR, κεφάλαιο 5) Στην ενότητα αυτή θα µελετηθούν τα εξής θέµατα: Βραχύτερα Μονοπάτια για όλα τα Ζεύγη Λύση υναµικού Προγραµµατισµού Ο αλγόριθµος των Floyd-Warshal ΕΠΛ 3

Διαβάστε περισσότερα

Υπολογιστικά & Διακριτά Μαθηματικά

Υπολογιστικά & Διακριτά Μαθηματικά Υπολογιστικά & Διακριτά Μαθηματικά Ενότητα 4: Διατάξεις Μεταθέσεις Συνδυασμοί Στεφανίδης Γεώργιος Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό

Διαβάστε περισσότερα

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

Δομές Δεδομένων και Αλγόριθμοι Δομές Δεδομένων και Αλγόριθμοι Χρήστος Γκόγκος ΤΕΙ Ηπείρου Χειμερινό Εξάμηνο 2014-2015 Παρουσίαση 9 P vs NP 1 / 13 Δυσκολία επίλυσης υπολογιστικών προβλημάτων Κάποια προβλήματα είναι εύκολα να λυθούν με

Διαβάστε περισσότερα

i=1 i=1 i=1 (x i 1, x i +1) (x 1 1, x k +1),

i=1 i=1 i=1 (x i 1, x i +1) (x 1 1, x k +1), Κεφάλαιο 6 Συμπάγεια 6.1 Ορισμός της συμπάγειας Οπως θα φανεί στην αμέσως επόμενη παράγραφο, υπάρχουν διάφοροι τρόποι με τους οποίους μπορεί κανείς να εισάγει την έννοια του συμπαγούς μετρικού χώρου. Ο

Διαβάστε περισσότερα

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

Σχεδίαση & Ανάλυση Αλγορίθμων Σχεδίαση & Ανάλυση Αλγορίθμων Ενότητα 6 Γραμμικός Προγραμματισμός Σταύρος Δ. Νικολόπουλος Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Ιωαννίνων Webpage: www.cs.uoi.gr/~stavros Γραμμικός Προγραμματισμός

Διαβάστε περισσότερα