Program Dinamis
• Program dinamis (dynamic programming):
• metode pemecahan masalah dengan cara menguraikan
solusi menjadi sekumpulan langkah (step) atau tahapan
(stage)
• sehingga solusi dari persoalan dapat dipandang dari
serangkaian keputusan yang saling berkaitan.
IN053 – Strategi • solusi pada setiap tahap dibangun dari hasil solusi tahap
sebelumnya,
STRATEGIALGO/S1IF/FIT/UKM/MA/2014
1
Optimalitas
Lintasan Terpendek
• Prinsip Optimalitas:
• jika solusi total optimal, maka bagian solusi sampai tahap ke-k juga optimal.
• jika kita bekerja dari tahap k ke tahap k + 1, kita dapat menggunakan hasil optimal
dari tahap k tanpa harus kembali ke tahap awal.
7
2 5
1 • Jika pada setiap tahap kita menghitung ongkos (cost), maka dapat dirumuskan bahwa
2 4 3 4
6 8 3 ongkos pada tahap k +1 = (ongkos yang dihasilkan pada tahap k ) +
6
4
2 (ongkos dari tahap k ke tahap k + 1)
1 3 6 3 10
3 4
STRATEGIALGO/S1IF/FIT/UKM/MA/2014 STRATEGIALGO/S1IF/FIT/UKM/MA/2014
5 6
STRATEGIALGO/S1IF/FIT/UKM/MA/2014 STRATEGIALGO/S1IF/FIT/UKM/MA/2014
1
5/12/2016
3
• Program dinamis mundur (backward)
7
1
10 12
• Program dinamis bergerak mulai dari tahap n, terus mundur ke
tahap n – 1, n – 2, dan seterusnya sampai tahap 1.
4
8 • Runtunan peubah keputusan adalah xn, xn-1, …, x1.
11
5
7 8
STRATEGIALGO/S1IF/FIT/UKM/MA/2014 STRATEGIALGO/S1IF/FIT/UKM/MA/2014
9 10
STRATEGIALGO/S1IF/FIT/UKM/MA/2014 STRATEGIALGO/S1IF/FIT/UKM/MA/2014
f ( s ) min{c
k sx k
f ( x )}
k 1 k
8 3 10
xk (rekurens), k = 1, 2, 3 9 4 10
• xk : peubah keputusan pada tahap k (k = 1, 2, 3).
7
• : bobot (cost) sisi dari s ke xk
c sx k
2
4 3
5
1
2 4
6 8 3
• fk(s, xk) : total bobot lintasan dari s ke xk
6
4
• fk(s) : nilai minimum dari fk(s, xk) 1 3 2 6 3 10
STRATEGIALGO/S1IF/FIT/UKM/MA/2014 STRATEGIALGO/S1IF/FIT/UKM/MA/2014
2
5/12/2016
Tahap 3 Tahap 2
f ( s ) min{c f ( x )}
3 x3 sx 3 4 3 f ( s ) min{c f ( x )}
2 x2 sx 2 3 2
3 9 4
4 3 9 4
3 1 4
4 3 1
4
3
4 7 3
13 4 7 14
5
5
STRATEGIALGO/S1IF/FIT/UKM/MA/2014 STRATEGIALGO/S1IF/FIT/UKM/MA/2014
7
6 9 10 11
2 5
1
2 4 3 4
6 8 3
6
4
2 Jadi ada tiga lintasan terpendek dari 1 ke 10, yaitu
1 3 6 3 10
1 3 5 8 10
3 9 4 1 4 5 8 10
4
3 1
4 1 4 6 9 10
3
4 7 Dengan panjang lintasan 11
5
15 16
STRATEGIALGO/S1IF/FIT/UKM/MA/2014 STRATEGIALGO/S1IF/FIT/UKM/MA/2014
17 18
STRATEGIALGO/S1IF/FIT/UKM/MA/2014 STRATEGIALGO/S1IF/FIT/UKM/MA/2014
3
5/12/2016
19 20
STRATEGIALGO/S1IF/FIT/UKM/MA/2014 STRATEGIALGO/S1IF/FIT/UKM/MA/2014
Contoh Persoalan
Tahap 1
• Diberikan n = 3, dengan M = 5
• f1(y) = max{f0(y), p1 + f0(y – w1)}
21 22
STRATEGIALGO/S1IF/FIT/UKM/MA/2014 STRATEGIALGO/S1IF/FIT/UKM/MA/2014
Tahap 2 Tahap 3
• f2(y) = max{f1(y), p2 + f1(y – w2)} • f3(y) = max{f2(y), p3 + f2(y – w3)}
23 24
STRATEGIALGO/S1IF/FIT/UKM/MA/2014
STRATEGIALGO/S1IF/FIT/UKM/MA/2014
4
5/12/2016
• X = (1,1,0) w2 = 5; p2 = 5
w3 = 4; p3 = 6
w4 = 2; p4 = 4
w5 = 1; p5 = 2
w6 = 1; p6 = 3
Kapasitas knapsack W = 7
• Temukan solusinya dgn Program Dinamis
25 26
STRATEGIALGO/S1IF/FIT/UKM/MA/2014 STRATEGIALGO/S1IF/FIT/UKM/MA/2014
Referensi
• Materi kuliah IF 2251 Strategi Algoritmik :
• http://kur2003.if.itb.ac.id/
• Mata kuliah IF 2251 Strategi Algoritmik (sem.4)
• Anany Levitin, Introduction to The Design and
Analysis of Algorithms, Pearson, 2012.
• S.Dasgupta, et al. Algorithms, 2006.
• Cormen, et al. Algorithms, MGH,2009.
27
STRATEGIALGO/S1IF/FTI/UKM/MA/2014