02 Dynamic Programming
02 Dynamic Programming
Dept. of Mathematics
Faculty of Science and Mathematics
Sam Ratulangi University
Dynamic Programming
f0 (X0) = 0
fj* (Xj) = opt {Rj(kj) f j -1* (Xj kj)}
Ciri-ciri Pokok Masalah DP
Backward recursive equation
(perhitungan mundur)
fn (Yn) = 0
fj*(Yj) = opt {Rj(kj) f j+1* (Xj kj), j = 1, 2, … n
Keterangan:
- f *(X) atau f *(Y) optimum return function
- X atau Y = state
- X k atau Y k = fungsi transisi
- j = tahap ke-
Penerapan DP
Jam Kerja
Kegiatan
0 1 2 3 4
1 0 1 3 6 9
2 0 2 5 8 11
3 0 3 7 10 12
4 0 2 5 8 10
Penerapan DP….
Penyelesaian :
■ Misalkan
4 keputusan 4 state (perumusan DP)
■ Variable keputusan Xj (j = 1, 2, 3, 4) jam kerja yang
dialokasikan pada tahap ke j.
Penerapan DP….
■ Misalkan
Pj (Xj) keuntungan dari alokasi X jam kerja kepada kegiatan j.
Linear Programmingnya seperti berikut:
■ Misalkan
Y1 = jumlah jam kerja yang dialokasikan pada tahap 1, 2, 3, 4
Y2 = jumlah jam kerja yang dialokasikafl pada tahap 2, 3, 4
Y3 = jumlah jam kerja yang dialokasikan pada tahap 3, 4
Y4 = jumlah jam kerja yang dialokasikan pada tahap 4
P4(X4)
X4
0 1 2 3 4 f4*(Y4) X4*
Y4
0 0 - - - - 0 0
1 - 2 - - - 2 1
2 - - 5 - - 5 2
3 - - - 8 - 8 3
4 - - - - 10 10 4
Penerapan DP….
P3(X3) + f4*(Y4)
X3
0 1 2 3 4 f3*(Y3) X3*
Y3
0 0+0 = 0 - - - - 0 0
1 0+2 = 2 3+0 = 3 - - - 3 1
2 0+5 = 5 3+2 = 5 7+0 = 7 - - 7 2
3 0+8 = 8 3+5 = 8 7+2 = 9 10+0 = 10 - 10 3
4 0+10 =10 3+8 = 11 7+5 = 12 10+2 = 12 12+0 = 12 12 2,3,4
Penerapan DP….
P2(X2) + f3*(Y3)
X2 f2*(Y2) X2*
0 1 2 3 4
Y2
0 0+0 = 0 - - - - 0 0
1 0+3 = 3 2+0 = 2 - - - 3 0
2 0+7 = 7 2+3 = 5 5+0 = 5 - - 7 0
3 0+10 = 10 2+7 = 9 5+3 = 8 8+0 = 8 - 10 0
4 0+12 = 12 2+10 = 12 5+7 = 12 8+3 = 11 11+0 =11 12 0,1,2
Penerapan DP….
P1(X1) + f2*(Y2)
X1
0 1 2 3 4 f1*(Y1) X1*
Y1
0 0+0 = 0 - - - - 0 0
1 0+3 = 3 1+0 = 1 - - - 3 0
2 0+7 = 7 1+3 = 4 3+0 = 3 - - 7 0
3 0+10 = 10 1+7 = 8 3+3 = 6 6+0 = 6 - 10 0
4 0+12 = 12 1+10 = 11 3+7 = 10 6+3 = 9 9 +0 = 9 12 0
Penerapan DP….
Penyelesaian
■ Formulasi dynamic programming dibentuk dengan lebih
dahulu mengidentifikasikan tiga unsur dasarnya yaitu:
1. Tahap (j). Masing-masing barang merupakan tahap.
Jika ada n barang maka j = 1,2,3,…,n
2. State (Y) adalah jumlah berat angkut yang disediakan
tahap ke n, n-1, …,j. Di mana Yj+1 = Yj - Wj kj
Jadi Y1 = W dan Yj = 0, 1…, W untuk j = 2,3, … n
3. Variabel keputusan (kj) adalah banyak barang pada
tahap j. Nilai kj dapat sekecil nol atan sebesar (W/wj)
dan kj integer
Penerapan DP….
■ Jika fj (Yj) = penerimaan optimum pada tahap n, n-1,…, j,
maka backward recursive equation-nya adalah:
30 k 3
k3
0 1 2 3 4 5 f3*(Y3) k3*
Y3
0 0 - - - - - 0 0
1 0 30 - - - - 30 1
2 0 30 60 - - - 60 2
3 0 30 60 90 - - 90 3
4 0 30 60 90 120 - 120 4
5 0 30 60 90 120 150 150 5
Penerapan DP….
80 k2 + f3*(Y3)
k2
0 1 f2*(Y2) k2*
Y2
0 0+0 = 0 - 0 0
1 0+30 = 30 - 30 0
2 0+60 = 60 - 60 0
3 0+90 = 90 80+0 = 80 90 0
4 0+120 = 120 80+30 = 110 120 0
5 0+150 = 150 80+60 = 140 150 0
Penerapan DP….
■ Tahap 1: f1*(Y1)= max{65 k1 + f2*(Y2)}
k1 = 0, 1, 2
Y1 = 5
65k1 + f2*(Y2)
k1
0 1 2 f1*(Y1) k1*
Y1
0 0+0=0 - -
1 0+30 =30 -
2 0+60=60 65+0=65 -
3 0+90=90 65+30=95 -
Penyelesaian
Misalkan masing-masing pabrik merupakan suatu tahap, sehingga
ada 3 tahap dan masalah ini akan diselesaikan dengan backward
recursive equation approach.
Misalkan :
Y1 = jumlah dana yang dialokasikan pada tahap 1, 2, 3.
Y2 = jumlah dana yang dialokasikan pada tahap 2 dan 3.
Y3 = jumlah dana yang dialokasikan pada tahap 3.
f4 (Y4) = 0
fj*(Yj) = max{Rj(kj) + fj+1*(Yj -Cj(kj))},
j = 1,2,3
Cj(kj) ≤ Yj
Penerapan DP….
R3 (k3)
k3
Y3 1 2 f3*(Y3) k3*
0 0 - 0 1
1 0 3 3 2
2 0 3 3 2
3 0 3 3 2
4 0 3 3 2
5 0 3 3 2
Penerapan DP….
{R1(k1)+f*2(Y2)}
k1 f1*(Y1) k1*
Y1 1 2 3
5 0+15 = 15 5+12=17 6+11=17 17 2,3
Penerapan DP….