(DYNAMIC PROGRAMMING)
PENGANTAR
• Pemrograman dinamis (dynamic programming - DP)
merupakan teknik matematis yang dapat berguna
untuk memecahkan masalah dengan suatu urutan
keputusan yang saling berkaitan
• DP tidak mempunyai rumusan yang baku
• Tiap permasalahan memerlukan perumusan tertentu
• Teknik pemrograman dinamis dikenal juga dengan
multistage programming technique
Klasifikasi Pemrograman Dinamis
Ciri Masalah Pemrograman Dinamis
𝒇𝟑 𝟖 = 𝒈𝟑 𝟖 = 53
𝒅𝟑 𝟖 = 𝟖
𝒇𝟑 𝒙 = 𝒈𝟑 𝒙 untuk x = 0, 1, 2, ……7
merupakan perolehan optimal untuk alternatif program
investasi pada saat x dialokasikan pada alternatif 3
g2(0) + f3(8) = 53
g2(1) + f3(7) = 57
g2(2) + f3(6) = 66
g2(3) + f3(5) = 90
g2(4) + f3(4) = 105
g2(5) + f3(3) = 110
g2(6) + f3(2) = 99
g2(7) + f3(1) = 78
g2(8), + f3(0) = 75
[g2(0) + f3(1)]
= max
[g2(1) + f3(0)]
0+ 4
= max
5+ 0
=5
d2(1) = 1
[g2(0) + f3(2)]
[g2(2) + f3(0)]
0 + 26
= max 5 + 4
15 + 0
= 26
d2(2) = 0
[g2(0) + f3(3)]
[g2(1) + f3(2)]
= max
[g2(2) + f3(1)]
[g2(3) + f3(0)]
0 + 40
5 + 26
= max = 40
15 + 4
40 + 0
d2(3) = 0 atau 3
Apabila terdapat 2 nilai optimal dan hanya dapat menekankan
salah satu saja maka dapat dipilih d2(3) = 0 atau d2(3) = 3,
tetapi tidak dapat memilih kedua-duanya mengingat belum
menyelesaikan seluruh langkah
x 0 1 2 3 4 5 6 7 8
f3(x) 0 4 26 40 45 50 51 52 53
d3(x) 0 1 2 3 4 5 6 7 8
f2(x) 0 5 26 40 60 70 86 100 110
d2(x) 0 1 0 0 4 5 4 4 5
x 0 1 2 3 4 5 6 7 8
f3(x) 0 4 26 40 45 50 51 52 53
d3(x) 0 1 2 3 4 5 6 7 8
f2(x) 0 5 26 40 60 70 86 100 110
d2(x) 0 1 0 0 4 5 4 4 5
f1(x) 0 5 26 40 80 90 106 120 140
d1(x) 0 0 0 0 4 5 4 4 4
f2(x) = g3(x)
x = 0, 1, 2, ....8
d3(x) = x
550 1050
540
580
900 760 1390
NY Nashville Omaha SA LA
1 3 6 940 9 10
660
770 790
510
700
Louisville Dallas 270
4 830 7
1. Stages : t = 1,…..,5
2. States : kota ke-i
3. Keputusan pada tiap state pada stage t
4. Plilih stage kota t+1 menuju stage kota t
5. Nilai dari Fungsi Optimal : Ft(i), panjang lintasan terpendek
dari kota stage t menuju LA
6. Nilai yang diinginkan : F1(1)
7. Batasan Kondisi : F5(10) = 0
8. Recursion pada Pemrograman Dinamis :
F4(i) = Ci,10 untuk seluruh kota stage 4 ke I
Ft (i) = minj ; j adalah stage kota ke-( t+1) { Ci,j + Ft+1 ( j ) }
untuk semua kota stage t