Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Τμ.

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Τμ."— Μεταγράφημα παρουσίασης:

1 ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Τμ. Πληροφορικής, Α.Π.Θ.1 Δυναμικός Προγραμματισμός Ι Στους αλγορίθμους διαίρει και βασίλευε έχουμε: διάσπαση της προς επίλυση περίπτωσης σε μικρότερες υποπεριπτώσεις του ίδιου προβλήματος, διαδοχική και ανεξάρτητη επίλυση αυτών, συνδυασμό των επί μέρους λύσεων με τέτοιο τρόπο, ώστε να σχηματισθεί η λύση της αρχικής περίπτωσης. Τι γίνεται αν η διάσπαση της περίπτωσης οδηγεί αλληλοεπικαλυπτό- μενες υποπεριπτώσεις; Αν εφαρμοσθεί διαίρει και βασίλευε, τότε οδηγούμαστε στην επίλυση της ίδιας υποπερίπτωσης περισσότερες από μία φορές.

2 ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Τμ. Πληροφορικής, Α.Π.Θ.2 Δυναμικός Προγραμματισμός ΙΙ Αντί γι΄ αυτό, αν επιδιώξουμε κάθε υποπερίπτωση να επιλύεται μόνο μία φορά και να κρατείται η λύση της για να επαναχρησιμοποιηθεί, τότε ουσιαστικά έχουμε μια πιο αποδοτική λύση του προβλήματος. Αυτό επιτυγχάνεται διατηρώντας τα αποτελέσματα σε έναν πίνακα, ο οποίος σε κάθε βήμα του αλγορίθμου συμπληρώνεται με τις λύσεις νέων υποπεριπτώσεων. Ο δυναμικός προγραμματισμός είναι μία ανοδική τεχνική σχεδίασης: ξεκινάει με την επίλυση των μικρότερων και απλούστερων υποπεριπτώσεων, τις οποίες στη συνέχεια συνδυάζει στην επίλυση πιο σύνθετων υποπεριπτώσεων, μέχρι τελικά να φθάσει στη λύση του προβλήματος. Η τεχνική διαίρει και βασίλευε είναι μία καθοδική τεχνική σχεδίασης αλγορίθμου (χρησιμοποιείται αναδρομή).

3 ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Τμ. Πληροφορικής, Α.Π.Θ.3 Δυναμικός Προγραμματισμός ΙΙΙ Παράδειγμα Ας θεωρήσουμε το πρόβλημα του υπολογισμού της Στο συγκεκριμένο πρόβλημα υπάρχει μια αντικειμενική δυσκολία στην αναπαράσταση του n!, επειδή 13!=6227020800>2 32, αν και Εναλλακτικά, μπορεί ο υπολογισμός να γίνει χρησιμοποιώντας την αναδρομική σχέση:

4 ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Τμ. Πληροφορικής, Α.Π.Θ.4 Δυναμικός Προγραμματισμός ΙV Παράδειγμα (συνέχεια) Ποια είναι όμως η αποδοτικότητα του συγκεκριμένου αλγορίθμου;

5 ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Τμ. Πληροφορικής, Α.Π.Θ.5 Δυναμικός Προγραμματισμός V Παράδειγμα (συνέχεια) Δηλαδή η αποδοτικότητα του αναδρομικού αλγορίθμου είναι τελικά που δεν είναι και πολύ καλή, επειδή συχνά η ίδια παράσταση υπολογίζεται περισσότερες από μία φορές. Η κατάσταση βελτιώνεται αν χρησιμοποιήσουμε το τρίγωνο του Pascal, όπου οι λύσεις των προηγούμενων βημάτων διατηρούνται σε έναν πίνακα και επαναχρησιμοποιούνται στην επίλυση των επόμενων βημάτων.

6 ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Τμ. Πληροφορικής, Α.Π.Θ.6 Δυναμικός Προγραμματισμός VΙ Παράδειγμα (συνέχεια) Χρειάζεται μόνο ένας πίνακας διαστάσεως k και η αποδοτικότητα του αλγορίθμου είναι O(nk), θεωρώντας ως βασικές πράξεις τις προσθέσεις.

7 ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Τμ. Πληροφορικής, Α.Π.Θ.7 Δυναμικός Προγραμματισμός VΙΙ Ο δυναμικός προγραμματισμός χρησιμοποιείται συχνά στη επίλυση προβλημάτων βελτιστοποίησης: η βέλτιστη λύση μιας σειράς επιλογών αποτελείται από βέλτιστες επί μέρους επιλογές (ΑΡΧΗ ΤΗΣ ΒΕΛΤΙΣΤΟΤΗΤΑΣ). Η αρχή αυτή δηλώνει ότι ανεξαρτήτως της πρώτης απόφασης, οι υπόλοιπες αποφάσεις πρέπει να είναι βέλτιστες σε σχέση με την κατάσταση που προκύπτει από αυτή την πρώτη απόφαση. Εκεί όπου η αρχή αυτή δε διατηρείται δεν μπορεί να εφαρμοσθεί ο δυναμικός προγραμματισμός. Όταν όμως η αρχή αυτή ισχύει τότε μία σχεδίαση δυναμικού προγραμματισμού μας δίνει πάντα τη βέλτιστη και σε καμία περίπτωση υποβέλτιστη λύση. Η δυσκολία στη σχεδίαση αλγορίθμων δυναμικού προγραμματισμού έγκειται στο ότι συνήθως δεν είναι προφανές ποιες επί μέρους λύσεις (υποπεριπτώσεις) χρησιμοποιούνται για τη λύση του προβλήματος, έτσι ώστε να σχηματισθεί μία αναδρομική εξίσωση για την τιμή της βέλτιστης λύσης.

8 ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Τμ. Πληροφορικής, Α.Π.Θ.8 Δυναμικός Προγραμματισμός VΙΙΙ Παράδειγμα (Δυαδικό πρόβλημα του σάκου) Στο δυαδικό πρόβλημα του σάκου θέλουμε να γεμίσουμε ένα σάκο που έχει χωρητικότητα c. Από μία λίστα με n αντικείμενα πρέπει να επιλέξουμε τα αντικείμενα που πρόκειται να τοποθετηθούν στο σάκο. Κάθε αντικείμενο έχει ένα βάρος w i και ένα κέρδος p i. Σε μια εφικτή πλήρωση του σάκου το άθροισμα των βαρών των αντικειμένων που έχουν εισαχθεί δεν ξεπερνά τη χωρητικότητα του σάκου. Μία βέλτιστη πλήρωση επιτυγχάνει το βέλτιστο κέρδος. και

9 ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Τμ. Πληροφορικής, Α.Π.Θ.9 Δυναμικός Προγραμματισμός ΙΧ Παράδειγμα - συνέχεια (Δυαδικό πρόβλημα του σάκου) Έστω ότι αποφασίζουμε για τις τιμές των x i με τη σειρά 1, 2,..., n. Αν θέσουμε x 1 =0, τότε η διαθέσιμη χωρητικότητα του σάκου για τα υπόλοιπα αντικείμενα είναι c. Αν θέσουμε x 1 =1 τότε η διαθέσιμη χωρητικότητα του σάκου είναι c-w 1. Έστω ότι Μετά την πρώτη απόφαση έχουμε φθάσει στο πρόβλημα της πλήρωσης του σάκου με χωρητικότητα r. Υποθέστε ότι n=3, w=[100,14,10], p=[20,18,15] και c=116. Αν θέσουμε x 1 =1, τότε μετά από αυτή την απόφαση, η απομένουσα χωρητικότητα του σάκου είναι 16. Το [x 2,x 3 ]=[0,1] είναι μία λύση στο πρόβλημα των δύο αντικειμένων που απομένουν και επιστρέφει κέρδος 15. Ωστόσο δεν είναι η βέλτιστη λύση στο υπόλοιπο πρόβλημα των δύο αντικειμένων, επειδή των [x 2,x 3 ]=[1,0] είναι μία εφικτή λύση που επιστρέφει μεγαλύτερο κέρδος, 18. Έτσι, το x=[1,0,1] μπορεί να βελτιωθεί στο [1,1,0].

10 ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Τμ. Πληροφορικής, Α.Π.Θ.10 Δυναμικός Προγραμματισμός Χ Παράδειγμα - συνέχεια (Δυαδικό πρόβλημα του σάκου) Όταν οι βέλτιστες ακολουθίες αποφάσεων περιέχουν βέλτιστες υποακολουθίες αποφάσεων, μπορούμε να χρησιμοποιήσουμε αναδρομικές εξισώσεις, που ονομάζονται αναδρομικές εξισώσεις δυναμικού προγραμματισμού. Αν το f(i,y) δηλώνει την τιμή μιας βέλτιστης λύσης στο στιγμιότυπο του σάκου με απομένουσα χωρητικότητα y και απομένοντα αντικείμενα i, i+1,..., n, τότε και

11 ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Τμ. Πληροφορικής, Α.Π.Θ.11 Δυναμικός Προγραμματισμός ΧΙ Παράδειγμα - συνέχεια (Δυαδικό πρόβλημα του σάκου) Η λύση του προβλήματος δίνεται τελικά από το f(1,c), που μπορεί να υπολογισθεί είτε με αναδρομή είτε με επανάληψη. Στην επαναληπτική λύση ξεκινάμε με το f(n,*), όπως δίνεται από την αρχική συνθήκη και μετά παίρνουμε το f(i,*) με τη σειρά i=n-1, n-2, …, 2 χρησιμοποιώντας την αναδρομική εξίσωση. ΑΝ ΟΜΩΣ ΕΠΙΛΕΧΘΕΙ Η ΧΡΗΣΗ ΑΝΑΔΡΟΜΗΣ ΤΟΤΕ ΠΡΕΠΕΙ ΝΑ ΠΡΟΣΕΞΟΥΜΕ ΩΣΤΕ ΝΑ ΑΠΟΦΕΥΓΕΤΑΙ Ο ΕΠΑΝΑΥΠΟΛΟΓΙΣΜΟΣ ΗΔΗ ΥΠΟΛΟΓΙΣΜΕΝΩΝ ΤΙΜΩΝ ΓΙΑΤΙ ΤΟΤΕ ΤΟ ΠΡΟΓΡΑΜΜΑ ΘΑ ΕΧΕΙ ΑΠΑΓΟΡΕΥΤΙΚΗ ΠΟΛΥΠΛΟΚΟΤΗΤΑ.

12 ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Τμ. Πληροφορικής, Α.Π.Θ.12 Δυναμικός Προγραμματισμός ΧΙΙ Έστω ένας διαγωνισμός στον οποίο δύο ομάδες A και B παίζουν όχι περισσότερα από 2n-1 παιχνίδια και ο νικητής είναι αυτός που πρώτος θα κερδίσει n νίκες. Δεν υπάρχουν ισοπαλίες και η πιθανότητα να κερδίσει η A είναι p, ενώ η πιθανότητα να κερδίσει η Β είναι q. Έστω P(i,j) η πιθανότητα ο τελικός νικητής να είναι η Α αν αυτή χρειάζεται i νίκες ακόμη, ενώ η B χρειάζεται j νίκες. Τότε η πιθανότητα να κερδιθεί το πρώτο παιχνίδι είναι P(n,n). Η πιθανότητα να είναι νικητής η A είναι P(0,i)=1, 1  i  n και ισχύει επίσης P(i,0)=0, 1  i  n.

13 ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Τμ. Πληροφορικής, Α.Π.Θ.13 Δυναμικός Προγραμματισμός XΙΙΙ Τελικά ισχύει double P(i,j) { if (i=0) return 1 else if (j=0) return 0 else return pP(i-1,j)+qP(i,j-1)} Ο συγκεκριμένος αλγόριθμος δίνει την P(n,n) σε και επειδή έχει αποδειχθεί ότι συνεπάγεται ότι η αποδοτικότητα είναι O(4 n ) και Ω(4 n /n)

14 ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Τμ. Πληροφορικής, Α.Π.Θ.14 Δυναμικός Προγραμματισμός XΙV Εναλλακτικά, ο αλγόριθμος double series(n,p) { double P[n+1][n+1]; q=1-p; for (s=1;i<=n;s++) { P[0,s]=1; P[s,0]=0

15 ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Τμ. Πληροφορικής, Α.Π.Θ.15 Δυναμικός Προγραμματισμός XV for (k=1;k<=s-1;k++) P[k,s-k]  pP[k-1,s-k]+qP[k,s-k-1]; } for (s=1;s<=n;s++) { for (k=0;k<=n-s;k++) P[s+k,n-k]  pP[s+k-1,n-k]+qP[s+k,n-k-1] } return P[n,n] Ουσιαστικά τα στοιχεία μπαίνουν σε έναν πίνακα και υπολογίζονται συμπληρώνοντας τον διαγώνια. Πολυπλοκότητα θ(n 2 ).

16 ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Τμ. Πληροφορικής, Α.Π.Θ.16 Πολλαπλασιασμός αλυσίδας πινάκων Ι Έστω ότι θέλουμε να υπολογίσουμε το γινόμενο πινάκων Μ=Μ 1 Μ 2 …Μ n Επειδή ο πολλαπλασιασμός πινάκων είναι προσεταιριστικός αυτό μπορεί να γίνει με διάφορους τρόπους: και σε κάθε περίπτωση μπορούμε να έχουμε διαφορετικό αριθμό πολλαπλασιασμών.

17 ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Τμ. Πληροφορικής, Α.Π.Θ.17 Πολλαπλασιασμός αλυσίδας πινάκων ΙΙ ΠΑΡΑΔΕΙΓΜΑ Έστω πίνακες A 13X5, B 5X89, C 89X3 και D 3X34. Τότε(ΑΒ)5785 πολλαπλασιασμοί (ΑΒ)C3471 πολλαπλασιασμοί ((ΑΒ)C)D1326 πολλαπλασιασμοί σύνολο:10582 πολλαπλασιασμοί Άρα((ΑΒ)C)D10582 πολλαπλασιασμοί (AB)(CD)54201 πολλαπλασιασμοί (Α(BC))D2856 πολλαπλασιασμοί Α((BC)D)4055 πολλαπλασιασμοί Α(Β(CD))26418 πολλαπλασιασμοί

18 ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Τμ. Πληροφορικής, Α.Π.Θ.18 Πολλαπλασιασμός αλυσίδας πινάκων ΙΙΙ Μία λύση για να βρούμε την καλύτερη προσέγγιση θα ήταν να ερευνήσουμε όλες τις πιθανές περιπτώσεις. Αν n είναι όλες οι πιθανές περιπτώσεις τοποθέτησης παρενθέσεων, έστω ότι αρχικά αποφασίζουμε να τοποθετήσουμε παρενθέσεις μεταξύ του πίνακα i και i+1. Τότε, Μ=(Μ 1 Μ 2...Μ i )(Μ i+1 M i+2 …M n ) και ο συνολικός αριθμός περιπτώσεων είναι Μπορεί να αποδειχθεί ότι

19 ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Τμ. Πληροφορικής, Α.Π.Θ.19 Πολλαπλασιασμός αλυσίδας πινάκων ΙV Τελικά η πολυπλοκότητα είναι Ω(4 n /n 2 ). Θα πρέπει να εφαρμοστεί η αρχή της βέλτιστης υποπερίπτω-σης. Έτσι, ο βέλτιστος τρόπος υπολογισμού του γινομένου απαιτεί να διαχωρίσουμε τους i πρώτους πίνακες από τους επόμενους, δηλαδή τα υπογινόμενα M 1 M 2 …M i και M i+1 …M j. Tότε και τα συγκεκριμένα υπογινόμενα πρέπει να υπολογισθούν με βέλτιστο τρόπο. Αυτό σημαίνει εφαρμογή δυναμικού προγραμματισμού. Φτιάχνουμε έναν πίνακα με στοιχεία m ij, 1  i  j  n, όπου κάθε στοιχείο m ij δίνει τη βέλτιστη λύση, δηλαδή τον μικρότερο δυνατό αριθμό πολλαπλασιασμών για τον υπολογισμό του υπογινομένου M i M i+1 …M j. Η συνολική λύση του προβλήματος είναι το στοιχείο m 1n.

20 ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Τμ. Πληροφορικής, Α.Π.Θ.20 Πολλαπλασιασμός αλυσίδας πινάκων V Έστω ότι οι διαστάσεις των πινάκων M i δίνονται από τους αριθμούς d i, 0  i  n, έτσι ώστε η διάσταση του πίνακα M i είναι d i-1 επί d i. Φτιάχνουμε τον πίνακα m ij ξεκινώντας από τη βασική διαγώνιο και συμπληρώνοντας βήμα προς βήμα μια νέα μικρότερη διαγώνιο, έτσι ώστε j-i=s.

21 ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Τμ. Πληροφορικής, Α.Π.Θ.21 Πολλαπλασιασμός αλυσίδας πινάκων VI ΕΦΑΡΜΟΓΗ ΑΛΓΟΡΙΘΜΟΥ ΣΤΟ ΠΑΡΑΔΕΙΓΜΑ για s=2 το βέλτιστο είναι το m 13 άρα το (ABC)D για s=1 το βέλτιστο είναι το m 23 άρα το (A(BC))D

22 ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Τμ. Πληροφορικής, Α.Π.Θ.22 Συντομότερα μονοπάτια Ι Έστω G= ένας κατευθυνόμενος γράφος. Σε κάθε τόξο αντιστοιχεί ένα μη αρνητικό μήκος (ή βάρος). Θέλουμε να υπολογίσουμε το μήκος του συντομότερου μονοπατιού για κάθε ζεύγος κορυφών. Έστω ότι οι κορυφές του G αριθμούνται από το 1 μέχρι το n, Ν={1,2,…,n} και ο πίνακας L δίνει το μήκος του κάθε τόξου, με L[i,i]=0 και L[i,j]  0 αν i  j και L[i,j]=  αν το αντίστοιχο τόξο δεν υπάρχει. Εδώ βρίσκει εφαρμογή η αρχή της βελτιστότητας: αν υπάρχει η κορυφή k στο συντομότερο μονοπάτι από το i στο j, τότε το μέρος του μονοπατιού από το i στο k και αυτό από το k στο j, είναι επίσης βέλτιστα.

23 ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Τμ. Πληροφορικής, Α.Π.Θ.23 Συντομότερα μονοπάτια ΙΙ Χρησιμοποιούμε έναν πίνακα D που κάθε στοιχείο του δίνει το μήκος για το συντομότερο μονοπάτι μεταξύ των δύο κορυφών. Αρχικά ο D ταυτίζεται με τον L. Ακολουθούν n επαναλήψεις (όσες και οι κορυφές). Μετά από την επανάληψη k, ο D δίνει το μήκος του συντομότερου μονοπατιού που μπορεί να περνάει από τις κορυφές {1,2,…,k}. Άρα στο επαναληπτικό βήμα k ο αλγόριθμος ελέγχει για κάθε ζεύγος κορυφών (i,j) αν υπάρχει μονοπάτι που χρησιμοποιεί την κορυφή k και είναι καλύτερο από το ήδη υπολογισμένο βέλτιστο μονοπάτι που κάνει χρήση των κορυφών {1,2,…,k-1}. Αν συμβολίσουμε με D k τον πίνακα D μετά από το k επαναληπτικό βήμα, τότε

24 ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Τμ. Πληροφορικής, Α.Π.Θ.24 Συντομότερα μονοπάτια ΙΙΙ Δεχόμαστε ότι το βέλτιστο μονοπάτι που περνά από την κορυφή k δεν επισκέπτεται την κορυφή αυτή δύο φορές. Ο αλγόριθμος έχει ως εξής: int array[n][n] Floyd(L[n][n]) { int array D[n,n]; D  L; for (k=0;k<n;k++) { for (i=0;i<n;i++) for (j=0;j<n;j++) } return D

25 ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Τμ. Πληροφορικής, Α.Π.Θ.25 Συντομότερα μονοπάτια ΙV Ο συγκεκριμένος αλγόριθμος έχει πολυπλοκότητα Θ(n 3 ). Εναλλακτικά, θα μπορούσε να εφαρμοσθεί ο αλγόριθμος του Dijkstra n φορές επιλέγοντας κάθε φορά ως αφετηρία και μια διαφορετική κορυφή. Αυτή η προσέγγιση θα είχε πολυπλοκότητα n x Θ(n 2 )=Θ(n 3 ). Από την άλλη αν χρησιμοποιήσουμε την παραλλαγή του αλγορίθμου του Dijkstra που κάνει χρήση σωρού και λίστες με αποστάσεις για τους γειτονικούς κόμβους, τότε η αποδοτικότητα είναι n x O((α+n)logn)=O((αn+n 2 )logn), όπου α ο αριθμός των τόξων. Αν ο γράφος είναι αραιός (α<< n 2 ) ίσως είναι προτιμότερο να χρησιμοποιηθεί ο αλγόριθμος του Dijkstra n φορές, διαφορετικά είναι προτιμητέος ο αλγόριθμος του Floyd.

26 ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Τμ. Πληροφορικής, Α.Π.Θ.26 Συντομότερα μονοπάτια V Αν αυτό που μας ενδιαφέρει δεν είναι απλά το μήκος των συντομότερων μονοπατιών αλλά και από ποιες κορυφές αποτελούνται, τότε χρησιμοποιούμε ένα δεύτερο πίνακα P με αρχικές τιμές 0. Τότε ο εσωτερικός βρόχος γίνεται: if D[i,k]+D[k,j]<D[i,j] then D[i,j]  D[i,k]+D[k,j] P[i,j]  j Όταν ο αλγόριθμος σταματά το P[i,j] περιέχει τον αριθμό της τελευταίας επανάληψης όπου άλλαξε το D[i,j]. Έτσι, για να βρούμε πιο είναι το συντομότερο μονοπάτι μεταξύ των i και j βλέπουμε στο στοιχείο P[i,j]. Αν P[i,j]=0, τότε το συντομότερο μονοπάτι είναι το τόξο που τα συνδέει, διαφορετικά αν P[i,j]=k τότε το συντομότερο μονοπάτι περνά από την κορυφή k. Μετά βλέπουμε τα P[i,k] και P[k,j], κ.ο.κ.

27 ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Τμ. Πληροφορικής, Α.Π.Θ.27 Συντομότερα μονοπάτια VΙ ΠΑΡΑΔΕΙΓΜΑ

28 ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Τμ. Πληροφορικής, Α.Π.Θ.28 Συντομότερα μονοπάτια VΙΙ

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

30 ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Τμ. Πληροφορικής, Α.Π.Θ.30 Βέλτιστα δένδρα αναζήτησης ΙΙ Στο πρώτο δένδρο, για να βρεθεί το γράμμα Ε χρειάζονται δύο συγκρίσεις, ενώ στο δεύτερο δένδρο αρκεί μία σύγκριση. Αν για όλα τα στοιχεία του δένδρου υπάρχει η ίδια πιθανότητα αναζήτησης, τότε κατά μέσο όρο χρειάζονται συνολικά (2+3+1+3+2+4+3+4)/8=22/8 συγκρίσεις για το πρώτο δένδρο και (4+3+2+3+1+3+2+3)/8=21/8 συγκρίσεις για το δεύτερο δένδρο.

31 ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Τμ. Πληροφορικής, Α.Π.Θ.31 Βέλτιστα δένδρα αναζήτησης ΙΙΙ Έστω ότι έχουμε ένα διατεταγμένο σύνολο διακριτών κλειδιών c 1 <c 2 <…<c n. Ακόμη έστω η πιθανότητα το αντικείμενο της αναζήτησης να είναι το κλειδί c i ότι είναι p i, με Έστω ότι το βάθος της ρίζας ενός δένδρου είναι 0, το βάθος των απογόνων της είναι 1 κ.ο.κ. Αν ένα κλειδί c i βρίσκεται σε κόμβο με βάθος d i, τότε για να βρεθεί χρειάζονται d i +1 συγκρίσεις. Έτσι, για ένα δένδρο, ο μέσος αριθμός συγκρίσεων, που χρειάζονται είναι και μας ενδιαφέρει να επιλέξουμε τη ρίζα του δένδρου, έτσι ώστε ο αριθμός αυτός να ελαχιστοποιηθεί.

32 ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Τμ. Πληροφορικής, Α.Π.Θ.32 Βέλτιστα δένδρα αναζήτησης ΙV Αν θεωρήσουμε τα διαδοχικά κλειδιά c i, c i+1, …, c j, j  i, ας υποθέσουμε ότι στο βέλτιστο δένδρο που περιέχει τα n κλειδιά η σειρά αυτή των j-i+1 κλειδιών απαρτίζεται από τους κόμβους ενός υποδένδρου. Αν το κλειδί c k, i  k  j υπάρχει στον κόμβο με βάθος d k * στο υποδένδρο, τότε ο μέσος αριθμός συγκρίσεων, που εκτελούνται στο υποδένδρο όταν γίνεται αναζήτηση ενός κλειδιού του δένδρου είναι Παρατηρούμε ότι η έκφραση που δίνει τον μέσο αριθμό συγκρίσεων έχει την ίδια μορφή με την C και η όποια αλλαγή στο υποδένδρο δεν επηρεάζει τη συνεισφορά στο C άλλων διακριτών υποδένδρων από αυτό που θεωρήσαμε.

33 ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Τμ. Πληροφορικής, Α.Π.Θ.33 Βέλτιστα δένδρα αναζήτησης V Άρα: σε ένα βέλτιστο δένδρο, όλα τα υποδένδρο πρέπει επίσης να είναι βέλτιστα σε σχέση με τα κλειδιά που περιέχουν. Ας θεωρήσουμεκαι έστω C ij ο μέσος αριθμός συγκρίσεων που εκτελούνται σε ένα βέλτιστο υποδένδρο, που περιέχει τα κλειδιά c i, c i+1,…, c j, όταν αναζητείται ένα κλειδί του μεγάλου δένδρου (θεωρούμε C ij =0 για j=i-1). Ένα από τα κλειδιά έστω k πρέπει να βρίσκεται στη ρίζα του υποδένδρου. Στο σχήμα που ακολουθεί L είναι ένα βέλτιστο υποδένδρο που περιέχει τα κλειδιά c i, c i+1,…, c k-1 και R είναι ένα βέλτιστο υποδένδρο που περιέχει τα κλειδιά c k+1,…,c j.

34 ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Τμ. Πληροφορικής, Α.Π.Θ.34 Βέλτιστα δένδρα αναζήτησης VI Όταν λοιπόν ψάχνουμε για ένα κλειδί του δένδρου, η πιθανότητα αυτό να βρίσκεται στα c i, c i+1,…,c j είναι m jj. Τότε γίνεται μία το πολύ σύγκριση με το c k και ένας αριθμός συγκρίσεων για το υποδένδρο L και για το υποδένδρο R. Άρα, Εφόσον το k επιλέγεται έτσι ώστε να ελαχιστοποιείται το C ij, τότε C ij =m ij +min 1  k  j (C i,k-1 + C k+1,j )με C ii =p i

35 ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Τμ. Πληροφορικής, Α.Π.Θ.35 Βέλτιστα δένδρα αναζήτησης VII ΠΑΡΑΔΕΙΓΜΑ i12345 p i 0.300.050.080.450.12 Πρώτα υπολογίζουμε τον πίνακα m και στη συνέχεια και με παρόμοιο τρόπο C 23 =0.18, C 34 =0.61 και C 45 =0.69

36 ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Τμ. Πληροφορικής, Α.Π.Θ.36 Βέλτιστα δένδρα αναζήτησης VIII ΣΥΝΕΧΕΙΑ ΠΑΡΑΔΕΙΓΜΑΤΟΣ

37 ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Τμ. Πληροφορικής, Α.Π.Θ.37 Βέλτιστα δένδρα αναζήτησης IX ΣΥΝΕΧΕΙΑ ΠΑΡΑΔΕΙΓΜΑΤΟΣ Η πολυπλοκότητα του αλγορίθμου είναι Θ(n 3 )

38 ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Τμ. Πληροφορικής, Α.Π.Θ.38 Το πρόβλημα του πλανόδιου πωλητή I Σκοπός είναι η εύρεση του συντομότερου κλειστού κυκλώματος, έτσι ώστε το σχηματιζόμενο μονοπάτι να περνά ακριβώς μία φορά από όλες τις κορυφές του γράφου. Έστω G= ένας κατευθυνόμενος γράφος. Θεωρούμε ότι N={1, 2,..., n} και τα μήκη των τόξων συμβολίζονται με Lij, όπου L[i, i]=0, L[i, j]  0 αν i  j και L[i,j]=  αν η ακμή (i, j) δεν υπάρχει. Έστω χωρίς βλάβη της γενικότητας ότι το κύκλωμα αρχίζει και τελειώνει στην κορυφή 1. Άρα υπάρχει τόξο (1, j), j  1, που ακολουθείται από μονοπάτι από το j στο 1, που περνά μόνο μία φορά από κάθε κορυφή του συνόλου N\(1, j). Αν το κύκλωμα είναι βέλτιστο, τότε βέλτιστο είναι επίσης το μονοπάτι από το j στο 1.

39 ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Τμ. Πληροφορικής, Α.Π.Θ.39 Το πρόβλημα του πλανόδιου πωλητή IΙ Ας θεωρήσουμε το σύνολο των κόμβων S  N\{1} και έναν κόμβο i  N\S, με i=1 να επιτρέπεται μόνο όταν S=N\{1}. Ορίζουμε g(i,S) το μήκος του συντομότερου μονοπατιού από τον κόμβο i στον κόμβο 1, που περνά ακριβώς μία φορά από κάθε κόμβο του S. Τότε, σύμφωνα με τον ορισμό αυτό g(1,N\{1}) είναι το μήκος του βέλτιστου μονοπατιού. Για να είναι όμως βέλτιστο ισχύει Πιο γενικά, αν i  1, S , S  N\{1} και i  S,

40 ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Τμ. Πληροφορικής, Α.Π.Θ.40 Το πρόβλημα του πλανόδιου πωλητή IΙΙ Επιπλέον, Έτσι οι τιμές g(i,S), όταν το σύνολο S είναι κενό είναι γνωστές. Αρχικά εφαρμόζουμε τη σχέση για όλα τα σύνολα S που περιέχουν ακριβώς έναν κόμβο (διαφορετικό από τον 1). Μετά εφαρμόζουμε την ίδια σχέση για τον υπολογισμό των g για όλα τα σύνολα S που περιέχουν δύο κόμβους διαφορετικούς του 1, κ.ο.κ. Όταν γίνει γνωστή η τιμή g(j,N\{1,j}) για όλους τους κόμβους j εκτός από τον κόμβο 1, τότε μπορούμε να χρησιμοποιήσουμε την και να επιλύσουμε το πρόβλημα.

41 ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Τμ. Πληροφορικής, Α.Π.Θ.41 Το πρόβλημα του πλανόδιου πωλητή IV ΠΑΡΑΔΕΙΓΜΑ Έστω G ένας πλήρης γράφος με κορυφές όπως στο σχήμα

42 ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Τμ. Πληροφορικής, Α.Π.Θ.42 Το πρόβλημα του πλανόδιου πωλητή V ΠΑΡΑΔΕΙΓΜΑ (συνέχεια) αρχικές συνθήκες g(2,  )=5, g(3,  )=6, g(4,  )=8 και έχουμε g(2,{3})=L 23 +g(3,  )=15 g(2,{4})=L 24 +g(4,  )=18 και όμοια g(3,{2})=18g(3,{4})=20 g(4,{2})=13g(4,{3})=15

43 ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Τμ. Πληροφορικής, Α.Π.Θ.43 Το πρόβλημα του πλανόδιου πωλητή VI ΠΑΡΑΔΕΙΓΜΑ (συνέχεια) g(2,{3,4})=min (L 23 +g(3,{4}), L 24 +g(4,{3})) =min(29,25)=25 g(3,{2,4})=min(L 32 +g(2,{4}), L 34 +g(4,{2})) =min(31,25)=25 g(4,{2,3})=min(L 42 +g(2,{3}), L 43 +g(3,{2}) =min(23,27)=23 και τέλος g(1,{2,3,4})=min(L 12 +g(2,{3,4}), L 13 +g(3,{2,4}), L 14 +g(4,{2,3})) =min(35,40,43)=35

44 ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Τμ. Πληροφορικής, Α.Π.Θ.44 Το πρόβλημα του πλανόδιου πωλητή VII Για τον υπολογισμό των κορυφών από όπου περνά το βέλτιστο κύκλωμα χρειάζεται ακόμη μία συνάρτηση J(i,S) η οποία παίρνει κάθε φορά την τιμή j της κορυφής που ελαχιστοποιεί το εκάστοτε g ΣΥΝΕΧΕΙΑ ΠΑΡΑΔΕΙΓΜΑΤΟΣ 1  J(1,{2,3,4})=2  J(2,{3,4})=4  J(4,{3})=3  1 Η πολυπλοκότητα είναι Θ(n 2 2 n ) και είναι καλύτερη από ότι αν είχαμε δοκιμάσει όλα τα πιθανά μονοπάτια: n!

45 ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Τμ. Πληροφορικής, Α.Π.Θ.45 Το πρόβλημα του πλανόδιου πωλητή VIII int g(i,S) { if (S=  ) return L[i,1]; ans=  ; for (each j  S) { distviaj=L[i,j]+g(j,S\{j}); if (distviaj<ans) ans =distviaj; } return ans; } Top-down, μη αποδοτικός υπολογισμός Ω((n-1)!)

46 ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Τμ. Πληροφορικής, Α.Π.Θ.46 Το πρόβλημα του πλανόδιου πωλητή IX πιο αποδοτικός τρόπος υπολογισμού: έστω ότι αρχικά όλες οι τιμές του πίνακα gtab είναι -1 int g(i,S) { if (S=  ) return L[i,1]; if (gtab[i,S]  0) return gtab[i,S]; ans=  ; for (each j  S) { distviaj =L[i,j]+g(j,S\{j}); if (distviaj<ans) ans = distviaj; } gtab[i,S]=ans; return ans; }


Κατέβασμα ppt "ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Τμ."

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google