ΠΛΗ30 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2

Dimitris Psounis
Dimitris PsounisTeacher & Manager at Δημήτρης Ψούνης - Υπηρεσίες Εκπαίδευσης
ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝΔΥΝΑΜΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ
Σχεδιάζουμε αλγόριθμο δυναμικού προγραμματισμού σε
προβλήματα που έχουν τα εξής χαρακτηριστικά:
• Ιδιότητα των Βέλτιστων Επιμέρους Δομών: Οτί για να
λύσουμε το πρόβλημα αρκεί να υπολογίσουμε την
βέλτιστη λύση σε κάποια υποπροβλήματα, συνήθως με
αναδρομή.
• Μικρός Αριθμός Υποπροβλημάτων: Το πλήθος των
υποπροβλημάτων που πρέπει να λύσουμε είναι μικρό
(δηλαδή πολυωνυμικό ως προς το μέγεθος του
προβλήματος)
• Επικαλυπτόμενα Επιμέρους Προβλήματα: Ότι λύνουμε
πολλές φορές τα ίδια υποπροβλήματα με αποτέλεσμα να
χάνουμε χρόνο
Αλγόριθμοι Δυναμικού Προγραμματισμού:
1. Υπολογισμός Αριθμού Fibonacci. Πολυπλοκότητα: O(n)
2. Αλυσιδωτός Πολλαπλασιασμός Πινάκων. Πολυπλοκότητα O(n3)
3. Μέγιστη Κοινή Υπακολουθία. Πολυπλοκότητα: Θ(nm).
4. Συντομότερο Μονοπάτι σε Άκυκλο Κατευθυνόμενο Γράφημα (DAG). Πολυπλοκότητα: Ο(n2).
Βήματα Σχεδίασης Αλγόριθμου Δυναμικού Προγ/μού
1. Περιγράφουμε έναν αναδρομικό αλγόριθμο που
λύνει το πρόβλημα
2. Δίνουμε την αναδρομική σχέση που υπολογίζει την
βέλτιστη λύση (επίλυση από πάνω προς τα κάτω)
3. Διαπιστώνουμε ότι ισχύουν οι τρεις συνθήκες για την
κατασκευή του αλγορίθμου δυναμικού
προγραμματισμού.
4. Με βάση την αναδρομική σχέση, κατασκευάζουμε
την διαδικασία επίλυσης από τα μικρά προβλήματα
σε όλο και μεγαλύτερα (επίλυση από κάτω προς τα
πάνω)
5. Δίνουμε τον επαναληπτικό αλγόριθμο που κάνει την
επίλυσή του προβλήματος
6. Υπολογίζουμε την πολυπλοκότητα του
επαναληπτικού αλγορίθμου
Άνω Φράγμα:
ΠΟΛΥΠΛΟΚΟΤΗΤΑ ΑΝΑΔΡΟΜΙΚΟΥ ΑΛΓΟΡΙΘΜΟΥ:
Κάτω Φράγμα:
Μέθοδος Επανάληψης
ΠΑΡΑΔΕΙΓΜΑ ΕΚΤΕΛΕΣΗΣ:
ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝΑΚΟΛΟΥΘΙΑ FIBONACCI
ΨΕΥΔΟΚΩΔΙΚΑΣ (ΜΕ ΑΝΑΔΡΟΜΗ)
procedure FibRec(n)
if n=1 or n=2 then
return 1
else
a=FibRec(n-1)
b=FibRec(n-2)
c=a+b
return c
end if
end procedure
ΕΙΣΟΔΟΣ: Φυσικός n
ΕΞΟΔΟΣ: Ο n-οστός Fibonacci
ΔΥΝΑΜΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ:
• Υπολόγισε την λύση επαναληπτικά από 1…n
Κ 2Κ 2 Θ 1
…



>+
==
=
−− 2,
21,1
21 nff
nήn
f
nn
n
(1), 1 2
( )
( 1) ( 2) (1), 2
n ή n
T n
T n T n n
Θ = =
=
− + − +Θ >
ΨΕΥΔΟΚΩΔΙΚΑΣ (ΜΕ ΕΠΑΝΑΛΗΨΗ)
procedure FibSeq(n)
A[1]=1
A[2]=1
for i=3 to n
A[i]=A[i-1]+A[i-2]
end for
return A[n]
end procedure
ΠΟΛΥΠΛΟΚΟΤΗΤΑ Αλγόριθμου Δ.Π.:
T(n)=Θ(n)
Ω 2
Μέθοδος Επανάληψης
Α 2Α 1 Θ 1
…
O 2
ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝΑΛΥΣΙΔΩΤΟΣ ΠΟΛΛΑΠΛΑΣΙΑΣΜΟΣ ΠΙΝΑΚΩΝ
ΠΑΡΑΔΕΙΓΜΑ ΕΚΤΕΛΕΣΗΣ: για τον πολλαπλασιασμό πινάκων
Α1Α2Α3Α4, όταν
Α1: 5x3, A2: 3x4, A3: 4x8, A4:8x2, A5: 2x3
ΑΝΑΔΡΟΜΙΚΗ ΣΧΕΣΗ (υπολογισμού της βέλτιστης λύσης):
ΕΙΣΟΔΟΣ: Α1,Α2,…,Αn όπου ο πίνακας Ai είναι
διάστασης di-1 x di.
ΕΞΟΔΟΣ: Η σειρά που πολλαπλασιασµών του
γινοµένου Α1 x Α2 x … x Αn
ΔΥΝΑΜΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ:
• Υπολόγισε την αναδρομή επαναληπτικά με βάση τη σειρά
σύμφωνα με το ακόλουθο σχήμα:
ΨΕΥΔΟΚΩΔΙΚΑΣ (ΜΕ ΕΠΑΝΑΛΗΨΗ)
procedure DP_MatMult(A1,A2,…,An)
for i=1 to n
m[i,i]=0
end for
for p=2 to n
for i=2 to n-p+1
j=i+p-1
m[i,j]=+∞
for k=1 to j-1
q=M[i,k]+M[k+1,j]+d[i-1]*d[k]*d[j]
if (q>M[i,j]) then M[i,j]=q ,
s[i,j]=k
end for
end for
end for
return M[1,n]
end procedure
ΠΟΛΥΠΛΟΚΟΤΗΤΑ Αλγόριθμου Δ.Π.:
T(n)=Ο(n3)
{ }



<+++
=
=
−
<≤
jidddjkMkiM
ji
jiM
jki
jki
,],1[],[min
,0
],[
1
ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝΜΕΓΙΣΤΗ ΚΟΙΝΗ ΥΠΑΚΟΛΟΥΘΙΑ
ΠΑΡΑΔΕΙΓΜΑ ΕΚΤΕΛΕΣΗΣ: για τις συμβολοσειρές
Χ=abcdf και Y=dbdaf
ΑΝΑΔΡΟΜΙΚΗ ΣΧΕΣΗ (υπολογισμού της βέλτιστης λύσης):
ΕΙΣΟΔΟΣ: ∆ίδονται ακολουθίες χαρακτήρων
X=x1x2x3…xn και Y=y1y2…ym
ΕΞΟΔΟΣ: To µέγιστο µήκος κοινής τους υπακολουθίας
ΔΥΝΑΜΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ:
• Υπολόγισε την αναδρομή επαναληπτικά
με βάση τη σειρά σύμφωνα με το
ακόλουθο σχήμα:
ΨΕΥΔΟΚΩΔΙΚΑΣ (ΔΥΝΑΜΙΚΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ)
procedure LCS(Χ,Υ)
for i=1 to n : c[i,0]=0
for j=1 to m : c[0,j]=0
for i=1 to n
for j=1 to m
if xi=yj then
c[i,j]=c[i-1,j-1]+1
else
if (c[i-1,j]>c[i,j-1]) then
c[i,j]=c[i-1,j]
else
c[i,j]=c[i,j-1]
end if
end if
end for
end for
return c[n,m]
end procedure
ΠΟΛΥΠΛΟΚΟΤΗΤΑ Αλγόριθμου Δ.Π.:
T(n)=Ο(nm)





≠>−−
=>+−−
==
=
ji
jin
yxjijicjic
yxjijic
jήi
f
και
και
0,},],1[],1,[max{
0,,1]1,1[
00,0
ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝΣΥΝΤΟΜΟΤΕΡΟ ΜΟΝΟΠΑΤΙ ΣΕ ΑΚΥΚΛΟ ΓΡΑΦΗΜΑ
ΠΑΡΑΔΕΙΓΜΑ ΕΚΤΕΛΕΣΗΣ: για τον ακόλουθο γράφο:
ΑΝΑΔΡΟΜΙΚΗ ΣΧΕΣΗ (προϋποθέτει τοπολογική
ταξινόμηση των κόμβων 1,2,…,n):
0, 1
, 	 	 , ∈ 1
ΕΙΣΟΔΟΣ: Δίνεται άκυκλο κατευθυνόμενο γράφημα
G=(V,E,W)
ΕΞΟΔΟΣ: To συντομότερο μονοπάτι από την αφετηρία
στον προορισμό
ΔΥΝΑΜΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ:
• Αφού πρώτα γίνει μία ταξινόμηση των κόμβων ώστε στην
διάταξη τους κάθε ακμή να είναι (vi,vj) με i<j (τοπολογική
ταξινόμηση)
• Ο δυναμικός προγραμματισμός υπολογίζει επαναληπτικά
την αναδρομική σχέση για i=1,…,n.
1 2 3 4 5
OPT[1]=0
1: 0 + 2 = 2
OPT[2]=2
1: 0 + 5 = 5
2: 2 + 4 = 6
OPT[3]=5
1: 0 + 12 = 12
2: 2 + 7 = 9
3: 5 + 5 = 10
OPT[4]=9
3: 5 + 8 = 13
4: 9 + 5 = 14
OPT[5]=13
2 4 5 5
5
7
12
8
ΠΟΛΥΠΛΟΚΟΤΗΤΑ Αλγόριθμου Δ.Π.:
T(n)=Ο(n+m)
1 of 5

More Related Content

What's hot(20)

ΠΛΗ30 ΜΑΘΗΜΑ 2.1ΠΛΗ30 ΜΑΘΗΜΑ 2.1
ΠΛΗ30 ΜΑΘΗΜΑ 2.1
Dimitris Psounis7.7K views
ΠΛΗ30 ΚΑΡΤΑ 1.5ΠΛΗ30 ΚΑΡΤΑ 1.5
ΠΛΗ30 ΚΑΡΤΑ 1.5
Dimitris Psounis6.6K views
ΠΛΗ30 ΜΑΘΗΜΑ 1.4ΠΛΗ30 ΜΑΘΗΜΑ 1.4
ΠΛΗ30 ΜΑΘΗΜΑ 1.4
Dimitris Psounis10.9K views
ΠΛΗ30 ΤΕΣΤ 8ΠΛΗ30 ΤΕΣΤ 8
ΠΛΗ30 ΤΕΣΤ 8
Dimitris Psounis2.3K views
ΠΛΗ30 ΤΕΣΤ 12ΠΛΗ30 ΤΕΣΤ 12
ΠΛΗ30 ΤΕΣΤ 12
Dimitris Psounis1.5K views
ΠΛΗ30 ΤΕΣΤ 9ΠΛΗ30 ΤΕΣΤ 9
ΠΛΗ30 ΤΕΣΤ 9
Dimitris Psounis1.9K views
ΠΛΗ30 ΤΕΣΤ 5ΠΛΗ30 ΤΕΣΤ 5
ΠΛΗ30 ΤΕΣΤ 5
Dimitris Psounis2.1K views
ΠΛΗ30 ΜΑΘΗΜΑ 1.5ΠΛΗ30 ΜΑΘΗΜΑ 1.5
ΠΛΗ30 ΜΑΘΗΜΑ 1.5
Dimitris Psounis8.1K views
ΠΛΗ30 ΤΕΣΤ 10ΠΛΗ30 ΤΕΣΤ 10
ΠΛΗ30 ΤΕΣΤ 10
Dimitris Psounis1.7K views
ΠΛΗ30 ΤΕΣΤ 15ΠΛΗ30 ΤΕΣΤ 15
ΠΛΗ30 ΤΕΣΤ 15
Dimitris Psounis1.2K views
ΠΛΗ30 ΤΕΣΤ 7ΠΛΗ30 ΤΕΣΤ 7
ΠΛΗ30 ΤΕΣΤ 7
Dimitris Psounis1.9K views
ΠΛΗ30 ΤΕΣΤ 4ΠΛΗ30 ΤΕΣΤ 4
ΠΛΗ30 ΤΕΣΤ 4
Dimitris Psounis2.2K views
ΠΛΗ30 ΤΕΣΤ 18ΠΛΗ30 ΤΕΣΤ 18
ΠΛΗ30 ΤΕΣΤ 18
Dimitris Psounis844 views
ΠΛΗ31 ΤΕΣΤ 18ΠΛΗ31 ΤΕΣΤ 18
ΠΛΗ31 ΤΕΣΤ 18
Dimitris Psounis2.5K views
ΠΛΗ10 ΤΕΣΤ 27ΠΛΗ10 ΤΕΣΤ 27
ΠΛΗ10 ΤΕΣΤ 27
Dimitris Psounis893 views

Viewers also liked(19)

ΠΛΗ30 ΜΑΘΗΜΑ 2.3ΠΛΗ30 ΜΑΘΗΜΑ 2.3
ΠΛΗ30 ΜΑΘΗΜΑ 2.3
Dimitris Psounis5.8K views
ΠΛΗ30 ΚΑΡΤΑ 1.4 (4sl)ΠΛΗ30 ΚΑΡΤΑ 1.4 (4sl)
ΠΛΗ30 ΚΑΡΤΑ 1.4 (4sl)
Dimitris Psounis7.7K views
ΠΛΗ30 ΜΑΘΗΜΑ 1.4 (4in1)ΠΛΗ30 ΜΑΘΗΜΑ 1.4 (4in1)
ΠΛΗ30 ΜΑΘΗΜΑ 1.4 (4in1)
Dimitris Psounis8K views
ΠΛΗ30 ΜΑΘΗΜΑ 1.3 (4in1)ΠΛΗ30 ΜΑΘΗΜΑ 1.3 (4in1)
ΠΛΗ30 ΜΑΘΗΜΑ 1.3 (4in1)
Dimitris Psounis6.7K views
ΠΛΗ30 ΚΑΡΤΑ 1.3 (4sl)ΠΛΗ30 ΚΑΡΤΑ 1.3 (4sl)
ΠΛΗ30 ΚΑΡΤΑ 1.3 (4sl)
Dimitris Psounis6.5K views
ΠΛΗ30 ΚΑΡΤΑ ΜΑΘΗΜΑ 1.3ΠΛΗ30 ΚΑΡΤΑ ΜΑΘΗΜΑ 1.3
ΠΛΗ30 ΚΑΡΤΑ ΜΑΘΗΜΑ 1.3
Dimitris Psounis7.4K views
ΠΛΗ30 ΜΑΘΗΜΑ 1.3ΠΛΗ30 ΜΑΘΗΜΑ 1.3
ΠΛΗ30 ΜΑΘΗΜΑ 1.3
Dimitris Psounis9.1K views
ΠΛΗ30 ΚΑΡΤΑ 1.2 (4sl)ΠΛΗ30 ΚΑΡΤΑ 1.2 (4sl)
ΠΛΗ30 ΚΑΡΤΑ 1.2 (4sl)
Dimitris Psounis7.5K views
ΠΛΗ30 ΜΑΘΗΜΑ 1.2ΠΛΗ30 ΜΑΘΗΜΑ 1.2
ΠΛΗ30 ΜΑΘΗΜΑ 1.2
Dimitris Psounis16.2K views
ΠΛΗ30 ΜΑΘΗΜΑ 1.2 (4in1)ΠΛΗ30 ΜΑΘΗΜΑ 1.2 (4in1)
ΠΛΗ30 ΜΑΘΗΜΑ 1.2 (4in1)
Dimitris Psounis7.8K views
ΠΛΗ30 ΜΑΘΗΜΑ 1.1 (4in1)ΠΛΗ30 ΜΑΘΗΜΑ 1.1 (4in1)
ΠΛΗ30 ΜΑΘΗΜΑ 1.1 (4in1)
Dimitris Psounis12.3K views
ΠΛΗ30 ΜΑΘΗΜΑ 1.1 (4sl)ΠΛΗ30 ΜΑΘΗΜΑ 1.1 (4sl)
ΠΛΗ30 ΜΑΘΗΜΑ 1.1 (4sl)
Dimitris Psounis11.6K views

Similar to ΠΛΗ30 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2(8)

More from Dimitris Psounis(20)

ΠΛΗ31 - ΤΕΣΤ 33ΠΛΗ31 - ΤΕΣΤ 33
ΠΛΗ31 - ΤΕΣΤ 33
Dimitris Psounis2K views

Recently uploaded(20)

ΠΛΗ30 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2

  • 1. ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝΔΥΝΑΜΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Σχεδιάζουμε αλγόριθμο δυναμικού προγραμματισμού σε προβλήματα που έχουν τα εξής χαρακτηριστικά: • Ιδιότητα των Βέλτιστων Επιμέρους Δομών: Οτί για να λύσουμε το πρόβλημα αρκεί να υπολογίσουμε την βέλτιστη λύση σε κάποια υποπροβλήματα, συνήθως με αναδρομή. • Μικρός Αριθμός Υποπροβλημάτων: Το πλήθος των υποπροβλημάτων που πρέπει να λύσουμε είναι μικρό (δηλαδή πολυωνυμικό ως προς το μέγεθος του προβλήματος) • Επικαλυπτόμενα Επιμέρους Προβλήματα: Ότι λύνουμε πολλές φορές τα ίδια υποπροβλήματα με αποτέλεσμα να χάνουμε χρόνο Αλγόριθμοι Δυναμικού Προγραμματισμού: 1. Υπολογισμός Αριθμού Fibonacci. Πολυπλοκότητα: O(n) 2. Αλυσιδωτός Πολλαπλασιασμός Πινάκων. Πολυπλοκότητα O(n3) 3. Μέγιστη Κοινή Υπακολουθία. Πολυπλοκότητα: Θ(nm). 4. Συντομότερο Μονοπάτι σε Άκυκλο Κατευθυνόμενο Γράφημα (DAG). Πολυπλοκότητα: Ο(n2). Βήματα Σχεδίασης Αλγόριθμου Δυναμικού Προγ/μού 1. Περιγράφουμε έναν αναδρομικό αλγόριθμο που λύνει το πρόβλημα 2. Δίνουμε την αναδρομική σχέση που υπολογίζει την βέλτιστη λύση (επίλυση από πάνω προς τα κάτω) 3. Διαπιστώνουμε ότι ισχύουν οι τρεις συνθήκες για την κατασκευή του αλγορίθμου δυναμικού προγραμματισμού. 4. Με βάση την αναδρομική σχέση, κατασκευάζουμε την διαδικασία επίλυσης από τα μικρά προβλήματα σε όλο και μεγαλύτερα (επίλυση από κάτω προς τα πάνω) 5. Δίνουμε τον επαναληπτικό αλγόριθμο που κάνει την επίλυσή του προβλήματος 6. Υπολογίζουμε την πολυπλοκότητα του επαναληπτικού αλγορίθμου
  • 2. Άνω Φράγμα: ΠΟΛΥΠΛΟΚΟΤΗΤΑ ΑΝΑΔΡΟΜΙΚΟΥ ΑΛΓΟΡΙΘΜΟΥ: Κάτω Φράγμα: Μέθοδος Επανάληψης ΠΑΡΑΔΕΙΓΜΑ ΕΚΤΕΛΕΣΗΣ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝΑΚΟΛΟΥΘΙΑ FIBONACCI ΨΕΥΔΟΚΩΔΙΚΑΣ (ΜΕ ΑΝΑΔΡΟΜΗ) procedure FibRec(n) if n=1 or n=2 then return 1 else a=FibRec(n-1) b=FibRec(n-2) c=a+b return c end if end procedure ΕΙΣΟΔΟΣ: Φυσικός n ΕΞΟΔΟΣ: Ο n-οστός Fibonacci ΔΥΝΑΜΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ: • Υπολόγισε την λύση επαναληπτικά από 1…n Κ 2Κ 2 Θ 1 …    >+ == = −− 2, 21,1 21 nff nήn f nn n (1), 1 2 ( ) ( 1) ( 2) (1), 2 n ή n T n T n T n n Θ = = = − + − +Θ > ΨΕΥΔΟΚΩΔΙΚΑΣ (ΜΕ ΕΠΑΝΑΛΗΨΗ) procedure FibSeq(n) A[1]=1 A[2]=1 for i=3 to n A[i]=A[i-1]+A[i-2] end for return A[n] end procedure ΠΟΛΥΠΛΟΚΟΤΗΤΑ Αλγόριθμου Δ.Π.: T(n)=Θ(n) Ω 2 Μέθοδος Επανάληψης Α 2Α 1 Θ 1 … O 2
  • 3. ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝΑΛΥΣΙΔΩΤΟΣ ΠΟΛΛΑΠΛΑΣΙΑΣΜΟΣ ΠΙΝΑΚΩΝ ΠΑΡΑΔΕΙΓΜΑ ΕΚΤΕΛΕΣΗΣ: για τον πολλαπλασιασμό πινάκων Α1Α2Α3Α4, όταν Α1: 5x3, A2: 3x4, A3: 4x8, A4:8x2, A5: 2x3 ΑΝΑΔΡΟΜΙΚΗ ΣΧΕΣΗ (υπολογισμού της βέλτιστης λύσης): ΕΙΣΟΔΟΣ: Α1,Α2,…,Αn όπου ο πίνακας Ai είναι διάστασης di-1 x di. ΕΞΟΔΟΣ: Η σειρά που πολλαπλασιασµών του γινοµένου Α1 x Α2 x … x Αn ΔΥΝΑΜΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ: • Υπολόγισε την αναδρομή επαναληπτικά με βάση τη σειρά σύμφωνα με το ακόλουθο σχήμα: ΨΕΥΔΟΚΩΔΙΚΑΣ (ΜΕ ΕΠΑΝΑΛΗΨΗ) procedure DP_MatMult(A1,A2,…,An) for i=1 to n m[i,i]=0 end for for p=2 to n for i=2 to n-p+1 j=i+p-1 m[i,j]=+∞ for k=1 to j-1 q=M[i,k]+M[k+1,j]+d[i-1]*d[k]*d[j] if (q>M[i,j]) then M[i,j]=q , s[i,j]=k end for end for end for return M[1,n] end procedure ΠΟΛΥΠΛΟΚΟΤΗΤΑ Αλγόριθμου Δ.Π.: T(n)=Ο(n3) { }    <+++ = = − <≤ jidddjkMkiM ji jiM jki jki ,],1[],[min ,0 ],[ 1
  • 4. ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝΜΕΓΙΣΤΗ ΚΟΙΝΗ ΥΠΑΚΟΛΟΥΘΙΑ ΠΑΡΑΔΕΙΓΜΑ ΕΚΤΕΛΕΣΗΣ: για τις συμβολοσειρές Χ=abcdf και Y=dbdaf ΑΝΑΔΡΟΜΙΚΗ ΣΧΕΣΗ (υπολογισμού της βέλτιστης λύσης): ΕΙΣΟΔΟΣ: ∆ίδονται ακολουθίες χαρακτήρων X=x1x2x3…xn και Y=y1y2…ym ΕΞΟΔΟΣ: To µέγιστο µήκος κοινής τους υπακολουθίας ΔΥΝΑΜΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ: • Υπολόγισε την αναδρομή επαναληπτικά με βάση τη σειρά σύμφωνα με το ακόλουθο σχήμα: ΨΕΥΔΟΚΩΔΙΚΑΣ (ΔΥΝΑΜΙΚΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ) procedure LCS(Χ,Υ) for i=1 to n : c[i,0]=0 for j=1 to m : c[0,j]=0 for i=1 to n for j=1 to m if xi=yj then c[i,j]=c[i-1,j-1]+1 else if (c[i-1,j]>c[i,j-1]) then c[i,j]=c[i-1,j] else c[i,j]=c[i,j-1] end if end if end for end for return c[n,m] end procedure ΠΟΛΥΠΛΟΚΟΤΗΤΑ Αλγόριθμου Δ.Π.: T(n)=Ο(nm)      ≠>−− =>+−− == = ji jin yxjijicjic yxjijic jήi f και και 0,},],1[],1,[max{ 0,,1]1,1[ 00,0
  • 5. ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝΣΥΝΤΟΜΟΤΕΡΟ ΜΟΝΟΠΑΤΙ ΣΕ ΑΚΥΚΛΟ ΓΡΑΦΗΜΑ ΠΑΡΑΔΕΙΓΜΑ ΕΚΤΕΛΕΣΗΣ: για τον ακόλουθο γράφο: ΑΝΑΔΡΟΜΙΚΗ ΣΧΕΣΗ (προϋποθέτει τοπολογική ταξινόμηση των κόμβων 1,2,…,n): 0, 1 , , ∈ 1 ΕΙΣΟΔΟΣ: Δίνεται άκυκλο κατευθυνόμενο γράφημα G=(V,E,W) ΕΞΟΔΟΣ: To συντομότερο μονοπάτι από την αφετηρία στον προορισμό ΔΥΝΑΜΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ: • Αφού πρώτα γίνει μία ταξινόμηση των κόμβων ώστε στην διάταξη τους κάθε ακμή να είναι (vi,vj) με i<j (τοπολογική ταξινόμηση) • Ο δυναμικός προγραμματισμός υπολογίζει επαναληπτικά την αναδρομική σχέση για i=1,…,n. 1 2 3 4 5 OPT[1]=0 1: 0 + 2 = 2 OPT[2]=2 1: 0 + 5 = 5 2: 2 + 4 = 6 OPT[3]=5 1: 0 + 12 = 12 2: 2 + 7 = 9 3: 5 + 5 = 10 OPT[4]=9 3: 5 + 8 = 13 4: 9 + 5 = 14 OPT[5]=13 2 4 5 5 5 7 12 8 ΠΟΛΥΠΛΟΚΟΤΗΤΑ Αλγόριθμου Δ.Π.: T(n)=Ο(n+m)