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

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

  • Upload
    sirvat

  • View
    52

  • Download
    8

Embed Size (px)

DESCRIPTION

Δυναμικός Προγραμματισμός Ι. Στους αλγορίθμους διαίρει και βασίλευε έχουμε: διάσπαση της προς επίλυση περίπτωσης σε μικρότερες υποπεριπτώσεις του ίδιου προβλήματος, διαδοχική και ανεξάρτητη επίλυση αυτών, - PowerPoint PPT Presentation

Citation preview

Page 1: Δυναμικός Προγραμματισμός Ι

Παρασκευή, 21 Απριλίου 2023Παρασκευή, 21 Απριλίου 2023 Τμ. Πληροφορικής, Α.Π.Θ.Τμ. Πληροφορικής, Α.Π.Θ. 11

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ

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

Στους αλγορίθμους διαίρει και βασίλευε έχουμε: διάσπαση της προς επίλυση περίπτωσης σε μικρότερες

υποπεριπτώσεις του ίδιου προβλήματος, διαδοχική και ανεξάρτητη επίλυση αυτών, συνδυασμό των επί μέρους λύσεων με τέτοιο τρόπο, ώστε να σχηματισθεί η λύση της αρχικής περίπτωσης.Τι γίνεται αν η διάσπαση της περίπτωσης οδηγεί αλληλοεπικαλυπτό-μενες υποπεριπτώσεις;Αν εφαρμοσθεί διαίρει και βασίλευε, τότε οδηγούμαστε στην επίλυση της ίδιας υποπερίπτωσης περισσότερες από μία φορές.

Page 2: Δυναμικός Προγραμματισμός Ι

Παρασκευή, 21 Απριλίου 2023Παρασκευή, 21 Απριλίου 2023 Τμ. Πληροφορικής, Α.Π.Θ.Τμ. Πληροφορικής, Α.Π.Θ. 22

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ

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

Αντί γι΄ αυτό, αν επιδιώξουμε κάθε υποπερίπτωση να επιλύεται μόνο μία φορά και να κρατείται η λύση της για να επαναχρησιμοποιηθεί, τότε ουσιαστικά έχουμε μια πιο αποδοτική λύση του προβλήματος. Αυτό επιτυγχάνεται διατηρώντας τα αποτελέσματα σε έναν πίνακα, ο οποίος σε κάθε βήμα του αλγορίθμου συμπληρώνεται με τις λύσεις νέων υποπεριπτώσεων.Ο δυναμικός προγραμματισμός είναι μία ανοδική τεχνική σχεδίασης: ξεκινάει με την επίλυση των μικρότερων και απλούστερων υποπεριπτώσεων, τις οποίες στη συνέχεια συνδυάζει στην επίλυση πιο σύνθετων υποπεριπτώσεων, μέχρι τελικά να φθάσει στη λύση του προβλήματος. Η τεχνική διαίρει και βασίλευε είναι μία καθοδική τεχνική σχεδίασης αλγορίθμου (χρησιμοποιείται αναδρομή).

Page 3: Δυναμικός Προγραμματισμός Ι

Παρασκευή, 21 Απριλίου 2023Παρασκευή, 21 Απριλίου 2023 Τμ. Πληροφορικής, Α.Π.Θ.Τμ. Πληροφορικής, Α.Π.Θ. 33

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ

Δυναμικός Προγραμματισμός ΙΙΙΠαράδειγμαΑς θεωρήσουμε το πρόβλημα του υπολογισμού της

Στο συγκεκριμένο πρόβλημα υπάρχει μια αντικειμενική δυσκολία στην αναπαράσταση του n!, επειδή 13!=6227020800>232, αν και

Εναλλακτικά, μπορεί ο υπολογισμός να γίνει χρησιμοποιώντας την αναδρομική σχέση:

!)!(

!

kkn

n

k

n

322233360622017

34

Page 4: Δυναμικός Προγραμματισμός Ι

Παρασκευή, 21 Απριλίου 2023Παρασκευή, 21 Απριλίου 2023 Τμ. Πληροφορικής, Α.Π.Θ.Τμ. Πληροφορικής, Α.Π.Θ. 44

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ

Δυναμικός Προγραμματισμός ΙVΠαράδειγμα (συνέχεια)

Ποια είναι όμως η αποδοτικότητα του συγκεκριμένου αλγορίθμου;

άk

n

k

nnk

k

k

n

1

111

01

άknTknT

kn

k

knT

)1(0)1,1(),1(

)1(0

0)1(0

),(

Page 5: Δυναμικός Προγραμματισμός Ι

Παρασκευή, 21 Απριλίου 2023Παρασκευή, 21 Απριλίου 2023 Τμ. Πληροφορικής, Α.Π.Θ.Τμ. Πληροφορικής, Α.Π.Θ. 55

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ

Δυναμικός Προγραμματισμός VΠαράδειγμα (συνέχεια)Δηλαδή η αποδοτικότητα του αναδρομικού αλγορίθμου είναι τελικά

που δεν είναι και πολύ καλή, επειδή συχνά η ίδια παράσταση υπολογίζεται περισσότερες από μία φορές.Η κατάσταση βελτιώνεται αν χρησιμοποιήσουμε το τρίγωνο του Pascal, όπου οι λύσεις των προηγούμενων βημάτων διατηρούνται σε έναν πίνακα και επαναχρησιμοποιούνται στην επίλυση των επόμενων βημάτων.

)(

k

n

Page 6: Δυναμικός Προγραμματισμός Ι

Παρασκευή, 21 Απριλίου 2023Παρασκευή, 21 Απριλίου 2023 Τμ. Πληροφορικής, Α.Π.Θ.Τμ. Πληροφορικής, Α.Π.Θ. 66

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ

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

Παράδειγμα (συνέχεια)

Χρειάζεται μόνο ένας πίνακας διαστάσεως k και η αποδοτικότητα του αλγορίθμου είναι O(nk), θεωρώντας ως βασικές πράξεις τις προσθέσεις.

),(

),1()1,1(1

.

.

1212

111

10

1...210

knCn

knCknCn

kk

Page 7: Δυναμικός Προγραμματισμός Ι

Παρασκευή, 21 Απριλίου 2023Παρασκευή, 21 Απριλίου 2023 Τμ. Πληροφορικής, Α.Π.Θ.Τμ. Πληροφορικής, Α.Π.Θ. 77

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ

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

Page 8: Δυναμικός Προγραμματισμός Ι

Παρασκευή, 21 Απριλίου 2023Παρασκευή, 21 Απριλίου 2023 Τμ. Πληροφορικής, Α.Π.Θ.Τμ. Πληροφορικής, Α.Π.Θ. 88

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ

Δυναμικός Προγραμματισμός VΙΙΙΠαράδειγμα (Δυαδικό πρόβλημα του σάκου)Στο δυαδικό πρόβλημα του σάκου θέλουμε να γεμίσουμε ένα σάκο που έχει χωρητικότητα c. Από μία λίστα με n αντικείμενα πρέπει να επιλέξουμε τα αντικείμενα που πρόκειται να τοποθετηθούν στο σάκο. Κάθε αντικείμενο έχει ένα βάρος wi και ένα κέρδος pi. Σε μια εφικτή πλήρωση του σάκου το άθροισμα των βαρών των αντικειμένων που έχουν εισαχθεί δεν ξεπερνά τη χωρητικότητα του σάκου. Μία βέλτιστη πλήρωση επιτυγχάνει το βέλτιστο κέρδος.

και

nixxp i

n

i

ii

1 ],1,0[ μεmax1

n

i

ii cxw1

Page 9: Δυναμικός Προγραμματισμός Ι

Παρασκευή, 21 Απριλίου 2023Παρασκευή, 21 Απριλίου 2023 Τμ. Πληροφορικής, Α.Π.Θ.Τμ. Πληροφορικής, Α.Π.Θ. 99

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ

Δυναμικός Προγραμματισμός ΙΧΠαράδειγμα - συνέχεια (Δυαδικό πρόβλημα του σάκου)Έστω ότι αποφασίζουμε για τις τιμές των xi με τη σειρά 1, 2, ..., n. Αν θέσουμε x1=0, τότε η διαθέσιμη χωρητικότητα του σάκου για τα υπόλοιπα αντικείμενα είναι c. Αν θέσουμε x1=1 τότε η διαθέσιμη χωρητικότητα του σάκου είναι c-w1. Έστω ότιΜετά την πρώτη απόφαση έχουμε φθάσει στο πρόβλημα της πλήρωσης του σάκου με χωρητικότητα r.Υποθέστε ότι n=3, w=[100,14,10], p=[20,18,15] και c=116. Αν θέσουμε x1=1, τότε μετά από αυτή την απόφαση, η απομένουσα χωρητικότητα του σάκου είναι 16. Το [x2,x3]=[0,1] είναι μία λύση στο πρόβλημα των δύο αντικειμένων που απομένουν και επιστρέφει κέρδος 15. Ωστόσο δεν είναι η βέλτιστη λύση στο υπόλοιπο πρόβλημα των δύο αντικειμένων, επειδή των [x2,x3]=[1,0] είναι μία εφικτή λύση που επιστρέφει μεγαλύτερο κέρδος, 18. Έτσι, το x=[1,0,1] μπορεί να βελτιωθεί στο [1,1,0].

1, wccr

Page 10: Δυναμικός Προγραμματισμός Ι

Παρασκευή, 21 Απριλίου 2023Παρασκευή, 21 Απριλίου 2023 Τμ. Πληροφορικής, Α.Π.Θ.Τμ. Πληροφορικής, Α.Π.Θ. 1010

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ

Δυναμικός Προγραμματισμός ΧΠαράδειγμα - συνέχεια (Δυαδικό πρόβλημα του σάκου)Όταν οι βέλτιστες ακολουθίες αποφάσεων περιέχουν βέλτιστες υποακολουθίες αποφάσεων, μπορούμε να χρησιμοποιήσουμε αναδρομικές εξισώσεις, που ονομάζονται αναδρομικές εξισώσεις δυναμικού προγραμματισμού.Αν το f(i,y) δηλώνει την τιμή μιας βέλτιστης λύσης στο στιγμιότυπο του σάκου με απομένουσα χωρητικότητα y και απομένοντα αντικείμενα i, i+1, . . ., n, τότε

και

nwy0 αν 0

αν ),( nn wypynf

iwy0 αν ),1(

αν ),1( ),,1(ax ),(

yif

wypwyifyifmyif iii

Page 11: Δυναμικός Προγραμματισμός Ι

Παρασκευή, 21 Απριλίου 2023Παρασκευή, 21 Απριλίου 2023 Τμ. Πληροφορικής, Α.Π.Θ.Τμ. Πληροφορικής, Α.Π.Θ. 1111

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ

Δυναμικός Προγραμματισμός ΧΙΠαράδειγμα - συνέχεια (Δυαδικό πρόβλημα του σάκου)Η λύση του προβλήματος δίνεται τελικά από το f(1,c), που μπορεί να υπολογισθεί είτε με αναδρομή είτε με επανάληψη. Στην επαναληπτική λύση ξεκινάμε με το f(n,*), όπως δίνεται από την αρχική συνθήκη και μετά παίρνουμε το f(i,*) με τη σειρά i=n-1, n-2, …, 2 χρησιμοποιώντας την αναδρομική εξίσωση.

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

Page 12: Δυναμικός Προγραμματισμός Ι

Παρασκευή, 21 Απριλίου 2023Παρασκευή, 21 Απριλίου 2023 Τμ. Πληροφορικής, Α.Π.Θ.Τμ. Πληροφορικής, Α.Π.Θ. 1212

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ

Δυναμικός Προγραμματισμός ΧΙΙΈστω ένας διαγωνισμός στον οποίο δύο ομάδες A και B παίζουν όχι περισσότερα από 2n-1 παιχνίδια και ο νικητής είναι αυτός που πρώτος θα κερδίσει n νίκες. Δεν υπάρχουν ισοπαλίες και η πιθανότητα να κερδίσει η A είναι p, ενώ η πιθανότητα να κερδίσει η Β είναι q.

Έστω P(i,j) η πιθανότητα ο τελικός νικητής να είναι η Α αν αυτή χρειάζεται i νίκες ακόμη, ενώ η B χρειάζεται j νίκες. Τότε η πιθανότητα να κερδιθεί το πρώτο παιχνίδι είναι P(n,n). Η πιθανότητα να είναι νικητής η A είναιP(0,i)=1, 1in και ισχύει επίσης P(i,0)=0, 1in.

Page 13: Δυναμικός Προγραμματισμός Ι

Παρασκευή, 21 Απριλίου 2023Παρασκευή, 21 Απριλίου 2023 Τμ. Πληροφορικής, Α.Π.Θ.Τμ. Πληροφορικής, Α.Π.Θ. 1313

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ

Δυναμικός Προγραμματισμός XΙΙΙΤελικά ισχύει

double P(i,j) {if (i=0) return 1else if (j=0) return 0

else return pP(i-1,j)+qP(i,j-1)}Ο συγκεκριμένος αλγόριθμος δίνει την P(n,n) σεκαι επειδή έχει αποδειχθεί ότι

συνεπάγεται ότι η αποδοτικότητα είναι O(4n) και Ω(4n /n)

1,1)1,(),1(),( jijiqPjipPjiP

)2

(

n

n

)12/(42

n

n

n n

Page 14: Δυναμικός Προγραμματισμός Ι

Παρασκευή, 21 Απριλίου 2023Παρασκευή, 21 Απριλίου 2023 Τμ. Πληροφορικής, Α.Π.Θ.Τμ. Πληροφορικής, Α.Π.Θ. 1414

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ

Δυναμικός Προγραμματισμός 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

P (i,j)

P (i-1 ,j) P (i,j-1 )

P (i-2 ,j) P (i-1 ,j-1 ) P (i,j-2 )

Page 15: Δυναμικός Προγραμματισμός Ι

Παρασκευή, 21 Απριλίου 2023Παρασκευή, 21 Απριλίου 2023 Τμ. Πληροφορικής, Α.Π.Θ.Τμ. Πληροφορικής, Α.Π.Θ. 1515

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ

Δυναμικός Προγραμματισμός 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]

Ουσιαστικά τα στοιχεία μπαίνουν σε έναν πίνακα και υπολογίζονται συμπληρώνοντας τον διαγώνια.Πολυπλοκότητα θ(n2).

Page 16: Δυναμικός Προγραμματισμός Ι

Παρασκευή, 21 Απριλίου 2023Παρασκευή, 21 Απριλίου 2023 Τμ. Πληροφορικής, Α.Π.Θ.Τμ. Πληροφορικής, Α.Π.Θ. 1616

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ

Πολλαπλασιασμός αλυσίδας πινάκων Ι

Έστω ότι θέλουμε να υπολογίσουμε το γινόμενο πινάκωνΜ=Μ1Μ2…Μn

Επειδή ο πολλαπλασιασμός πινάκων είναι προσεταιριστικός αυτό μπορεί να γίνει με διάφορους τρόπους:

και σε κάθε περίπτωση μπορούμε να έχουμε διαφορετικό αριθμό πολλαπλασιασμών.

)...))(((

)...)))...((((

))...(((...(

4321

1321

321

MMMM

MMMMM

MMMMM

nn

n

Page 17: Δυναμικός Προγραμματισμός Ι

Παρασκευή, 21 Απριλίου 2023Παρασκευή, 21 Απριλίου 2023 Τμ. Πληροφορικής, Α.Π.Θ.Τμ. Πληροφορικής, Α.Π.Θ. 1717

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ

Πολλαπλασιασμός αλυσίδας πινάκων ΙΙ

ΠΑΡΑΔΕΙΓΜΑΈστω πίνακες A 13X5, B 5X89, C 89X3 και D 3X34. Τότε (ΑΒ) 5785 πολλαπλασιασμοί

(ΑΒ)C 3471 πολλαπλασιασμοί((ΑΒ)C)D 1326 πολλαπλασιασμοίσύνολο: 10582 πολλαπλασιασμοί

Άρα ((ΑΒ)C)D 10582 πολλαπλασιασμοί(AB)(CD) 54201 πολλαπλασιασμοί(Α(BC))D 2856 πολλαπλασιασμοίΑ((BC)D) 4055 πολλαπλασιασμοίΑ(Β(CD)) 26418 πολλαπλασιασμοί

Page 18: Δυναμικός Προγραμματισμός Ι

Παρασκευή, 21 Απριλίου 2023Παρασκευή, 21 Απριλίου 2023 Τμ. Πληροφορικής, Α.Π.Θ.Τμ. Πληροφορικής, Α.Π.Θ. 1818

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ

Πολλαπλασιασμός αλυσίδας πινάκων ΙΙΙ

Μία λύση για να βρούμε την καλύτερη προσέγγιση θα ήταν να ερευνήσουμε όλες τις πιθανές περιπτώσεις. Αν n είναι όλες οι πιθανές περιπτώσεις τοποθέτησης παρενθέσεων, έστω ότι αρχικά αποφασίζουμε να τοποθετήσουμε παρενθέσεις μεταξύ του πίνακα i και i+1. Τότε,

Μ=(Μ1Μ2...Μi)(Μi+1Mi+2…Mn)

και ο συνολικός αριθμός περιπτώσεων είναι

Μπορεί να αποδειχθεί ότι

1

1

)()()(n

i

inTiTnT

26744404862145211)(

151054321

nT

n

1

221)(

n

n

nnT

Page 19: Δυναμικός Προγραμματισμός Ι

Παρασκευή, 21 Απριλίου 2023Παρασκευή, 21 Απριλίου 2023 Τμ. Πληροφορικής, Α.Π.Θ.Τμ. Πληροφορικής, Α.Π.Θ. 1919

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ

Πολλαπλασιασμός αλυσίδας πινάκων ΙV

Τελικά η πολυπλοκότητα είναι Ω(4n/n2).Θα πρέπει να εφαρμοστεί η αρχή της βέλτιστης υποπερίπτω-σης. Έτσι, ο βέλτιστος τρόπος υπολογισμού του γινομένου απαιτεί να διαχωρίσουμε τους i πρώτους πίνακες από τους επόμενους, δηλαδή τα υπογινόμενα M1M2…Mi και Mi+1…Mj . Tότε και τα συγκεκριμένα υπογινόμενα πρέπει να υπολογισθούν με βέλτιστο τρόπο. Αυτό σημαίνει εφαρμογή δυναμικού προγραμματισμού.

Φτιάχνουμε έναν πίνακα με στοιχεία mij, 1ijn, όπου κάθε στοιχείο mij δίνει τη βέλτιστη λύση, δηλαδή τον μικρότερο δυνατό αριθμό πολλαπλασιασμών για τον υπολογισμό του υπογινομένου MiMi+1…Mj. Η συνολική λύση του προβλήματος είναι το στοιχείο m1n.

Page 20: Δυναμικός Προγραμματισμός Ι

Παρασκευή, 21 Απριλίου 2023Παρασκευή, 21 Απριλίου 2023 Τμ. Πληροφορικής, Α.Π.Θ.Τμ. Πληροφορικής, Α.Π.Θ. 2020

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ

Πολλαπλασιασμός αλυσίδας πινάκων V

Έστω ότι οι διαστάσεις των πινάκων Mi δίνονται από τους αριθμούς di, 0in, έτσι ώστε η διάσταση του πίνακα Mi είναι di-1 επί di. Φτιάχνουμε τον πίνακα mij ξεκινώντας από τη βασική διαγώνιο και συμπληρώνοντας βήμα προς βήμα μια νέα μικρότερη διαγώνιο, έτσι ώστε j-i=s.

snidddmmmns

nidddms

nims

sikiikissiki

sii

iiiii

ii

,...,2,1),(min:1

1,...,2,1,:1

,...,2,1,0:0

11,1,

111,

Page 21: Δυναμικός Προγραμματισμός Ι

Παρασκευή, 21 Απριλίου 2023Παρασκευή, 21 Απριλίου 2023 Τμ. Πληροφορικής, Α.Π.Θ.Τμ. Πληροφορικής, Α.Π.Θ. 2121

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ

04

907803

1845133502

28561530578501

4321

i

j

Πολλαπλασιασμός αλυσίδας πινάκων VI

ΕΦΑΡΜΟΓΗ ΑΛΓΟΡΙΘΜΟΥ ΣΤΟ ΠΑΡΑΔΕΙΓΜΑ

για s=2 το βέλτιστο είναι το m13

άρα το (ABC)Dγια s=1 το βέλτιστο είναι το m23

άρα το (A(BC))D

Page 22: Δυναμικός Προγραμματισμός Ι

Παρασκευή, 21 Απριλίου 2023Παρασκευή, 21 Απριλίου 2023 Τμ. Πληροφορικής, Α.Π.Θ.Τμ. Πληροφορικής, Α.Π.Θ. 2222

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ

Συντομότερα μονοπάτια Ι

Έστω G=<N,A> ένας κατευθυνόμενος γράφος. Σε κάθε τόξο αντιστοιχεί ένα μη αρνητικό μήκος (ή βάρος). Θέλουμε να υπολογίσουμε το μήκος του συντομότερου μονοπατιού για κάθε ζεύγος κορυφών.Έστω ότι οι κορυφές του G αριθμούνται από το 1 μέχρι το n, Ν={1,2,…,n} και ο πίνακας L δίνει το μήκος του κάθε τόξου, με L[i,i]=0 και L[i,j]0 αν ij και L[i,j]= αν το αντίστοιχο τόξο δεν υπάρχει.Εδώ βρίσκει εφαρμογή η αρχή της βελτιστότητας: αν υπάρχει η κορυφή k στο συντομότερο μονοπάτι από το i στο j, τότε το μέρος του μονοπατιού από το i στο k και αυτό από το k στο j, είναι επίσης βέλτιστα.

Page 23: Δυναμικός Προγραμματισμός Ι

Παρασκευή, 21 Απριλίου 2023Παρασκευή, 21 Απριλίου 2023 Τμ. Πληροφορικής, Α.Π.Θ.Τμ. Πληροφορικής, Α.Π.Θ. 2323

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ

Συντομότερα μονοπάτια ΙΙ

Χρησιμοποιούμε έναν πίνακα D που κάθε στοιχείο του δίνει το μήκος για το συντομότερο μονοπάτι μεταξύ των δύο κορυφών. Αρχικά ο D ταυτίζεται με τον L. Ακολουθούν n επαναλήψεις (όσες και οι κορυφές). Μετά από την επανάληψη k, ο D δίνει το μήκος του συντομότερου μονοπατιού που μπορεί να περνάει από τις κορυφές {1,2,…,k}.Άρα στο επαναληπτικό βήμα k ο αλγόριθμος ελέγχει για κάθε ζεύγος κορυφών (i,j) αν υπάρχει μονοπάτι που χρησιμοποιεί την κορυφή k και είναι καλύτερο από το ήδη υπολογισμένο βέλτιστο μονοπάτι που κάνει χρήση των κορυφών {1,2,…,k-1}. Αν συμβολίσουμε με Dk τον πίνακα D μετά από το k επαναληπτικό βήμα, τότε

Page 24: Δυναμικός Προγραμματισμός Ι

Παρασκευή, 21 Απριλίου 2023Παρασκευή, 21 Απριλίου 2023 Τμ. Πληροφορικής, Α.Π.Θ.Τμ. Πληροφορικής, Α.Π.Θ. 2424

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ

Συντομότερα μονοπάτια ΙΙΙΔεχόμαστε ότι το βέλτιστο μονοπάτι που περνά από την κορυφή k δεν επισκέπτεται την κορυφή αυτή δύο φορές.

Ο αλγόριθμος έχει ως εξής:int array[n][n] Floyd(L[n][n]) {int array D[n,n];DL;for (k=0;k<n;k++) {

for (i=0;i<n;i++)for (j=0;j<n;j++)

}return D

]),[],[],,[min(],[ 111 jkDkiDjiDjiD kkkk

]) , [ ] , [ ], , [ min( ] , [j k D k i D j i D j i D

Page 25: Δυναμικός Προγραμματισμός Ι

Παρασκευή, 21 Απριλίου 2023Παρασκευή, 21 Απριλίου 2023 Τμ. Πληροφορικής, Α.Π.Θ.Τμ. Πληροφορικής, Α.Π.Θ. 2525

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ

Συντομότερα μονοπάτια ΙV

Ο συγκεκριμένος αλγόριθμος έχει πολυπλοκότητα Θ(n3).Εναλλακτικά, θα μπορούσε να εφαρμοσθεί ο αλγόριθμος του Dijkstra n φορές επιλέγοντας κάθε φορά ως αφετηρία και μια διαφορετική κορυφή. Αυτή η προσέγγιση θα είχε πολυπλοκότητα n x Θ(n2)=Θ(n3).Από την άλλη αν χρησιμοποιήσουμε την παραλλαγή του αλγορίθμου του Dijkstra που κάνει χρήση σωρού και λίστες με αποστάσεις για τους γειτονικούς κόμβους, τότε η αποδοτικότητα είναι n x O((α+n)logn)=O((αn+n2)logn), όπου α ο αριθμός των τόξων. Αν ο γράφος είναι αραιός (α<< n2) ίσως είναι προτιμότερο να χρησιμοποιηθεί ο αλγόριθμος του Dijkstra n φορές, διαφορετικά είναι προτιμητέος ο αλγόριθμος του Floyd.

Page 26: Δυναμικός Προγραμματισμός Ι

Παρασκευή, 21 Απριλίου 2023Παρασκευή, 21 Απριλίου 2023 Τμ. Πληροφορικής, Α.Π.Θ.Τμ. Πληροφορικής, Α.Π.Θ. 2626

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ

Συντομότερα μονοπάτια 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], κ.ο.κ.

Page 27: Δυναμικός Προγραμματισμός Ι

Παρασκευή, 21 Απριλίου 2023Παρασκευή, 21 Απριλίου 2023 Τμ. Πληροφορικής, Α.Π.Θ.Τμ. Πληροφορικής, Α.Π.Θ. 2727

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ

Συντομότερα μονοπάτια VΙ

ΠΑΡΑΔΕΙΓΜΑ1

2 3

415

15

5

155 5030

5

0515

15030

515050

50

0 LD

Page 28: Δυναμικός Προγραμματισμός Ι

Παρασκευή, 21 Απριλίου 2023Παρασκευή, 21 Απριλίου 2023 Τμ. Πληροφορικής, Α.Π.Θ.Τμ. Πληροφορικής, Α.Π.Θ. 2828

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ

Συντομότερα μονοπάτια VΙΙ

052015

1503530

515050

50

1D

052015

1503530

515050

102050

2D

052015

1503530

515045

102050

3D

052015

1503530

510020

101550

4D

Page 29: Δυναμικός Προγραμματισμός Ι

Παρασκευή, 21 Απριλίου 2023Παρασκευή, 21 Απριλίου 2023 Τμ. Πληροφορικής, Α.Π.Θ.Τμ. Πληροφορικής, Α.Π.Θ. 2929

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ

Βέλτιστα δένδρα αναζήτησης Ι

Ένα δυαδικό δένδρο είναι δένδρο αναζήτησης αν η τιμή κάθε εσωτερικού κόμβου είναι μεγαλύτερη ή ίση από τις τιμές των αριστερών απογόνων και μικρότερη ή ίση από τις τιμές των δεξιών απογόνων.

A

B

C

D

E

F

G

H

Page 30: Δυναμικός Προγραμματισμός Ι

Παρασκευή, 21 Απριλίου 2023Παρασκευή, 21 Απριλίου 2023 Τμ. Πληροφορικής, Α.Π.Θ.Τμ. Πληροφορικής, Α.Π.Θ. 3030

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ

Βέλτιστα δένδρα αναζήτησης ΙΙ

Στο πρώτο δένδρο, για να βρεθεί το γράμμα Ε χρειάζονται δύο συγκρίσεις, ενώ στο δεύτερο δένδρο αρκεί μία σύγκριση. Αν για όλα τα στοιχεία του δένδρου υπάρχει η ίδια πιθανότητα αναζήτησης, τότε κατά μέσο όρο χρειάζονται συνολικά(2+3+1+3+2+4+3+4)/8=22/8 συγκρίσεις για το πρώτο δένδρο και (4+3+2+3+1+3+2+3)/8=21/8 συγκρίσεις για το δεύτερο δένδρο.

A

B

C

D

E

F

G

H

Page 31: Δυναμικός Προγραμματισμός Ι

Παρασκευή, 21 Απριλίου 2023Παρασκευή, 21 Απριλίου 2023 Τμ. Πληροφορικής, Α.Π.Θ.Τμ. Πληροφορικής, Α.Π.Θ. 3131

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ

Βέλτιστα δένδρα αναζήτησης ΙΙΙ Έστω ότι έχουμε ένα διατεταγμένο σύνολο διακριτών κλειδιών

c1<c2<…<cn. Ακόμη έστω η πιθανότητα το αντικείμενο της αναζήτησης να είναι το κλειδί ci ότι είναι pi, με

Έστω ότι το βάθος της ρίζας ενός δένδρου είναι 0, το βάθος των απογόνων της είναι 1 κ.ο.κ. Αν ένα κλειδί ci βρίσκεται σε κόμβο με βάθος di, τότε για να βρεθεί χρειάζονται di+1 συγκρίσεις.

Έτσι, για ένα δένδρο, ο μέσος αριθμός συγκρίσεων, που χρειάζονται είναι

και μας ενδιαφέρει να επιλέξουμε τη ρίζα του δένδρου, έτσι ώστε ο αριθμός αυτός να ελαχιστοποιηθεί.

n

iip

1

1

n

iii dpC

1

)1(

Page 32: Δυναμικός Προγραμματισμός Ι

Παρασκευή, 21 Απριλίου 2023Παρασκευή, 21 Απριλίου 2023 Τμ. Πληροφορικής, Α.Π.Θ.Τμ. Πληροφορικής, Α.Π.Θ. 3232

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ

Βέλτιστα δένδρα αναζήτησης ΙV

Αν θεωρήσουμε τα διαδοχικά κλειδιά ci, ci+1, …, cj, ji, ας υποθέσουμε ότι στο βέλτιστο δένδρο που περιέχει τα n κλειδιά η σειρά αυτή των j-i+1 κλειδιών απαρτίζεται από τους κόμβους ενός υποδένδρου.

Αν το κλειδί ck, ikj υπάρχει στον κόμβο με βάθος dk*

στο υποδένδρο, τότε ο μέσος αριθμός συγκρίσεων, που εκτελούνται στο υποδένδρο όταν γίνεται αναζήτηση ενός κλειδιού του δένδρου είναι

Παρατηρούμε ότι η έκφραση που δίνει τον μέσο αριθμό συγκρίσεων έχει την ίδια μορφή με την C και η όποια αλλαγή στο υποδένδρο δεν επηρεάζει τη συνεισφορά στο C άλλων διακριτών υποδένδρων από αυτό που θεωρήσαμε.

j

ikkk dpC )1( **

Page 33: Δυναμικός Προγραμματισμός Ι

Παρασκευή, 21 Απριλίου 2023Παρασκευή, 21 Απριλίου 2023 Τμ. Πληροφορικής, Α.Π.Θ.Τμ. Πληροφορικής, Α.Π.Θ. 3333

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ

Βέλτιστα δένδρα αναζήτησης V

Άρα: σε ένα βέλτιστο δένδρο, όλα τα υποδένδρο πρέπει επίσης να είναι βέλτιστα σε σχέση με τα κλειδιά που περιέχουν.

Ας θεωρήσουμε και έστω Cij ο μέσος αριθμός συγκρίσεων που εκτελούνται σε ένα βέλτιστο υποδένδρο, που περιέχει τα κλειδιά ci, ci+1,…, cj, όταν αναζητείται ένα κλειδί του μεγάλου δένδρου (θεωρούμε Cij=0 για j=i-1).

Ένα από τα κλειδιά έστω k πρέπει να βρίσκεται στη ρίζα του υποδένδρου. Στο σχήμα που ακολουθεί L είναι ένα βέλτιστο υποδένδρο που περιέχει τα κλειδιά ci, ci+1,…, ck-1 και R είναι ένα βέλτιστο υποδένδρο που περιέχει τα κλειδιά ck+1,…,cj.

j

ikkij pm

Page 34: Δυναμικός Προγραμματισμός Ι

Παρασκευή, 21 Απριλίου 2023Παρασκευή, 21 Απριλίου 2023 Τμ. Πληροφορικής, Α.Π.Θ.Τμ. Πληροφορικής, Α.Π.Θ. 3434

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ

Βέλτιστα δένδρα αναζήτησης VI

Όταν λοιπόν ψάχνουμε για ένα κλειδί του δένδρου, η πιθανότητα αυτό να βρίσκεται στα ci, ci+1,…,cj είναι mjj. Τότε γίνεται μία το πολύ σύγκριση με το ck και ένας αριθμός συγκρίσεων για το υποδένδρο L και για το υποδένδρο R. Άρα,

Εφόσον το k επιλέγεται έτσι ώστε να ελαχιστοποιείται το Cij, τότε

Cij=mij+min1kj (Ci,k-1+ Ck+1,j) με Cii=pi

ck

RL

jkkiijkij CCmC ,11,

Page 35: Δυναμικός Προγραμματισμός Ι

Παρασκευή, 21 Απριλίου 2023Παρασκευή, 21 Απριλίου 2023 Τμ. Πληροφορικής, Α.Π.Θ.Τμ. Πληροφορικής, Α.Π.Θ. 3535

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ

Βέλτιστα δένδρα αναζήτησης VII

ΠΑΡΑΔΕΙΓΜΑi 1 2 3 4 5pi 0.30 0.05 0.08 0.45 0.12

Πρώτα υπολογίζουμε τον πίνακα m

και στη συνέχεια

και με παρόμοιο τρόπο C23=0.18, C34=0.61 και C45=0.69

12.0

57.045.0

65.053.008.0

70.058.013.005.0

00.188.043.035.030.0

m

40.0)30.0,05.0min(35.0

),min( 321122101212

CCCCmC

Page 36: Δυναμικός Προγραμματισμός Ι

Παρασκευή, 21 Απριλίου 2023Παρασκευή, 21 Απριλίου 2023 Τμ. Πληροφορικής, Α.Π.Θ.Τμ. Πληροφορικής, Α.Π.Θ. 3636

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ

Βέλτιστα δένδρα αναζήτησης VIII

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

61.0)40.0,38.0,18.0min(43.0

),,min( 4312331123101313

CCCCCCmC

76.0)18.0,50.0,61.0min(58.0

),,min( 5423442234212424

CCCCCCmC

85.0)61.0,20.0,69.0min(65.0

),,min( 6534553345323535

CCCCCCmC

49.1)61.0,85.0,91.0,76.0min(88.0

),,,min( 54134412341124101414

CCCCCCCCmC

00.1)76.0,30.0,74.0,85.0min(70.0

),,,min( 65245523452235212525

CCCCCCCCmC

Page 37: Δυναμικός Προγραμματισμός Ι

Παρασκευή, 21 Απριλίου 2023Παρασκευή, 21 Απριλίου 2023 Τμ. Πληροφορικής, Α.Π.Θ.Τμ. Πληροφορικής, Α.Π.Θ. 3737

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ

Βέλτιστα δένδρα αναζήτησης IX

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

Η πολυπλοκότητα του αλγορίθμου είναι Θ(n3)

73.1)49.1,73.0,09.1,15.1,00.1min(00.1

),,,,min( 651455134512351125101515

CCCCCCCCCCmC

Page 38: Δυναμικός Προγραμματισμός Ι

Παρασκευή, 21 Απριλίου 2023Παρασκευή, 21 Απριλίου 2023 Τμ. Πληροφορικής, Α.Π.Θ.Τμ. Πληροφορικής, Α.Π.Θ. 3838

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ

Το πρόβλημα του πλανόδιου πωλητή I

Σκοπός είναι η εύρεση του συντομότερου κλειστού κυκλώματος, έτσι ώστε το σχηματιζόμενο μονοπάτι να περνά ακριβώς μία φορά από όλες τις κορυφές του γράφου.

Έστω G=<N, A> ένας κατευθυνόμενος γράφος. Θεωρούμε ότι N={1, 2, . . ., n} και τα μήκη των τόξων συμβολίζονται με Lij, όπου L[i, i]=0, L[i, j]0 αν ij και L[i,j]= αν η ακμή (i, j) δεν υπάρχει.

Έστω χωρίς βλάβη της γενικότητας ότι το κύκλωμα αρχίζει και τελειώνει στην κορυφή 1. Άρα υπάρχει τόξο (1, j), j1, που ακολουθείται από μονοπάτι από το j στο 1, που περνά μόνο μία φορά από κάθε κορυφή του συνόλου N\(1, j). Αν το κύκλωμα είναι βέλτιστο, τότε βέλτιστο είναι επίσης το μονοπάτι από το j στο 1.

Page 39: Δυναμικός Προγραμματισμός Ι

Παρασκευή, 21 Απριλίου 2023Παρασκευή, 21 Απριλίου 2023 Τμ. Πληροφορικής, Α.Π.Θ.Τμ. Πληροφορικής, Α.Π.Θ. 3939

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ

Το πρόβλημα του πλανόδιου πωλητή IΙ

Ας θεωρήσουμε το σύνολο των κόμβων SN\{1} και έναν κόμβο iN\S, με i=1 να επιτρέπεται μόνο όταν S=N\{1}. Ορίζουμε g(i,S) το μήκος του συντομότερου μονοπατιού από τον κόμβο i στον κόμβο 1, που περνά ακριβώς μία φορά από κάθε κόμβο του S. Τότε, σύμφωνα με τον ορισμό αυτό g(1,N\{1}) είναι το μήκος του βέλτιστου μονοπατιού.

Για να είναι όμως βέλτιστο ισχύει

Πιο γενικά, αν i1, S , S N\{1} και iS,

})),1{\,((min})1{\,1( 12

jNjgLNg jnj

})){\,((min),( jSjgLSig ijSj

Page 40: Δυναμικός Προγραμματισμός Ι

Παρασκευή, 21 Απριλίου 2023Παρασκευή, 21 Απριλίου 2023 Τμ. Πληροφορικής, Α.Π.Θ.Τμ. Πληροφορικής, Α.Π.Θ. 4040

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ

Το πρόβλημα του πλανόδιου πωλητή IΙΙ

Επιπλέον, Έτσι οι τιμές g(i,S), όταν το σύνολο S είναι κενό είναι

γνωστές. Αρχικά εφαρμόζουμε τη σχέση

για όλα τα σύνολα S που περιέχουν ακριβώς έναν κόμβο (διαφορετικό από τον 1). Μετά εφαρμόζουμε την ίδια σχέση για τον υπολογισμό των g για όλα τα σύνολα S που περιέχουν δύο κόμβους διαφορετικούς του 1, κ.ο.κ. Όταν γίνει γνωστή η τιμή g(j,N\{1,j}) για όλους τους κόμβους j εκτός από τον κόμβο 1, τότε μπορούμε να χρησιμοποιήσουμε την

και να επιλύσουμε το πρόβλημα.

niLOig i ,...,3,2,),( 1

})){\,((min),( jSjgLSig ijSj

})),1{\,((min})1{\,1( 12

jNjgLNg jnj

Page 41: Δυναμικός Προγραμματισμός Ι

Παρασκευή, 21 Απριλίου 2023Παρασκευή, 21 Απριλίου 2023 Τμ. Πληροφορικής, Α.Π.Θ.Τμ. Πληροφορικής, Α.Π.Θ. 4141

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ

Το πρόβλημα του πλανόδιου πωλητή IV

ΠΑΡΑΔΕΙΓΜΑΈστω G ένας πλήρης γράφος με κορυφές όπως στο σχήμα

1 2

34

6

12

9

20 88

109 13 15

5

10

Page 42: Δυναμικός Προγραμματισμός Ι

Παρασκευή, 21 Απριλίου 2023Παρασκευή, 21 Απριλίου 2023 Τμ. Πληροφορικής, Α.Π.Θ.Τμ. Πληροφορικής, Α.Π.Θ. 4242

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ

Το πρόβλημα του πλανόδιου πωλητή V

ΠΑΡΑΔΕΙΓΜΑ (συνέχεια)

αρχικές συνθήκεςg(2,)=5, g(3,)=6, g(4,)=8

και έχουμεg(2,{3})=L23+g(3,)=15

g(2,{4})=L24+g(4,)=18και όμοια

g(3,{2})=18 g(3,{4})=20g(4,{2})=13 g(4,{3})=15

0988

120136

10905

2015100

L

Page 43: Δυναμικός Προγραμματισμός Ι

Παρασκευή, 21 Απριλίου 2023Παρασκευή, 21 Απριλίου 2023 Τμ. Πληροφορικής, Α.Π.Θ.Τμ. Πληροφορικής, Α.Π.Θ. 4343

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ

Το πρόβλημα του πλανόδιου πωλητή VI

ΠΑΡΑΔΕΙΓΜΑ (συνέχεια) g(2,{3,4}) =min (L23+g(3,{4}), L24+g(4,{3}))

=min(29,25)=25g(3,{2,4}) =min(L32+g(2,{4}), L34+g(4,{2}))

=min(31,25)=25 g(4,{2,3}) =min(L42+g(2,{3}), L43+g(3,{2})

=min(23,27)=23και τέλος

g(1,{2,3,4})=min(L12+g(2,{3,4}), L13+g(3,{2,4}), L14+g(4,{2,3}))

=min(35,40,43)=35

Page 44: Δυναμικός Προγραμματισμός Ι

Παρασκευή, 21 Απριλίου 2023Παρασκευή, 21 Απριλίου 2023 Τμ. Πληροφορικής, Α.Π.Θ.Τμ. Πληροφορικής, Α.Π.Θ. 4444

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ

Το πρόβλημα του πλανόδιου πωλητή VII

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

J(2,{3,4})=4 J(4,{3})=3 1

Η πολυπλοκότητα είναι Θ(n22n) και είναι καλύτερη από ότι αν είχαμε δοκιμάσει όλα τα πιθανά μονοπάτια: n!

Page 45: Δυναμικός Προγραμματισμός Ι

Παρασκευή, 21 Απριλίου 2023Παρασκευή, 21 Απριλίου 2023 Τμ. Πληροφορικής, Α.Π.Θ.Τμ. Πληροφορικής, Α.Π.Θ. 4545

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ

Το πρόβλημα του πλανόδιου πωλητή VIII

int g(i,S) {if (S=)

return L[i,1];ans=;for (each jS) {

distviaj=L[i,j]+g(j,S\{j});if (distviaj<ans)

ans =distviaj;}return ans;

}Top-down, μη αποδοτικός υπολογισμός Ω((n-1)!)

Page 46: Δυναμικός Προγραμματισμός Ι

Παρασκευή, 21 Απριλίου 2023Παρασκευή, 21 Απριλίου 2023 Τμ. Πληροφορικής, Α.Π.Θ.Τμ. Πληροφορικής, Α.Π.Θ. 4646

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ

Το πρόβλημα του πλανόδιου πωλητή 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 jS) {

distviaj =L[i,j]+g(j,S\{j});if (distviaj<ans)

ans = distviaj;}gtab[i,S]=ans;return ans;

}