0% menganggap dokumen ini bermanfaat (0 suara)
311 tayangan34 halaman

02 Dynamic Programming

Dokumen tersebut membahas tentang dynamic programming yang merupakan teknik pemecahan masalah secara bertahap dengan memecah masalah menjadi submasalah yang lebih kecil. Dynamic programming diterapkan untuk masalah alokasi sumber daya dan masalah knapsack dengan menggunakan prinsip backward recursion.

Diunggah oleh

Yunia Dwiyani
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PPTX, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
311 tayangan34 halaman

02 Dynamic Programming

Dokumen tersebut membahas tentang dynamic programming yang merupakan teknik pemecahan masalah secara bertahap dengan memecah masalah menjadi submasalah yang lebih kecil. Dynamic programming diterapkan untuk masalah alokasi sumber daya dan masalah knapsack dengan menggunakan prinsip backward recursion.

Diunggah oleh

Yunia Dwiyani
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PPTX, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 34

DYNAMIC PROGRAMMING

Dept. of Mathematics
Faculty of Science and Mathematics
Sam Ratulangi University
Dynamic Programming

■ Dynamic programming (DP) atau juga disebut multi stage


programmning bertipe memecah persoalan menjadi bagian
yang lebih kecil (sub problem atau stage) di mana keputusan
dibuat secara berurutan.
■ Dynamic programming memperlakukan persoalan di mana
keputusan pada satu tahap mempengaruhi keputusan tahap
berikutnya. Sehingga, setiap submasalah, yang dapat berubah
dan tahap ke tahap, adalah suatu fungsi dan keputusan tahap
sebelumnya.
Ciri-ciri Pokok Masalah DP
a) Dalam DP, keputusan tentang suatu masalah ditandai
dengan optimisasi pada tahap berikutnya, bukan
keserentakan. Ini berarti, jika suatu masalah akan
diselesaikan , dengan dynamic programming harus
dipisahkan menjadi n subproblem.
b) DP berkaitan dengan masalah-masalah di mana pilihan
keputusan dibuat pada masing-masing tahap. Seluruh
kemungkinan pilihan dicerminkan atau diatur oleh
sistem status atau state
Ciri-ciri Pokok Masalah DP ….

c) Berkaitan dengan setiap keputusan pada setiap tahap adalah


return function yang mengevaluasi pilihan yang dibuat sebagai
sumbangan yang diberikan pada tujuan keseluruhan (maksimisasi
atau minimisasi).
d) Pada setiap tahap proses keputusan dihubungkan dengan tahap
yang berdekatan melalui fungsi transisi. Fungsi ini dapat berupa
kuantitas yang diskrit maupun kontinu tergantung pada sifat-sifat
masalah.
e) Suatu hubungan rekursif digunakan untuk menghubungkan
kebijaksanaan optimum pada tahap n dengan n -1.
Ciri-ciri Pokok Masalah
■ Ada dua macam prosedur rekursif yaitu forward dan
backward.

Forward recursive equation


(perhitungan maju)

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

■ Pada masalah dynamic programming tak ada


formulasi matematik yang baku seperti model linear
programming (LP).
■ Karena itu akan ditunjukkan metode penyelesaian
masalah dynamic programming dengan bantuan
beberapa contoh.
Contoh 1 (Masalah Alokasi)
Keuntungan pada empat macam kegiatan merupakan fungsi
jam kerja yang dialokasikan pada masing-masing kegiatan
seperti tabel berikut. Jika setiap hari tersedia 4 jam kerja,
bagaimana alokasi waktu sehingga keuntungan perhari
maksimum ?
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:

Max Z = P1 (X1) + P2 (X2) + P3 (X3) + P4 (X4)


s.t X1+ X2 + X3 + X4 = 4
X1, X2, X3, X4 ≥ 0
Penerapan DP….

■ 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

f4* (Y4) = optimum profit pada tahap 4 dengan Y4 tertentu


f3* (Y3) = optimum profit pada tahap 3 dan 4 dengan Y3
tertentu
f2* (Y2) = optimum profit pada tahap 2, 3 dan 4 dengan Y2
tertentu
f1* (Y1) = optimum profit pada tahap 1, 2, 3 dan 4, dengan
Y1 tertentu
Penerapan DP….

■ Tahap 4 : f4*(Y4) = max{P4 (X4)} dimana f5 (Y5) = 0

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….

■ Tahap 3 : f3*(Y3) = max{P3(X3) + f4*(Y4)}

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….

■ Tahap 2 : f2*(Y2) = max{P2(X2) + f3*(Y3)}

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….

■ Tahap 1 : f1*(Y1) = max{P1(X1) + f2*(Y2)}

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….

■ Keuntungan maksimum adalah 12 yang dapat dicapai


melalui beberapa alternatif seperti berikut:

Tahap 1 Tahap 2 Tahap 3 Tahap 4


Kegiatan 1 Kegiatan 2 Kegiatan 3 Kegiatan 4
0 0 2 2
0 0 3 1
0 0 4 0
0 1 3 0
0 2 2 0
Penerapan DP….

Contoh 2: Masalah Muatan (Knapsack)


Misalkan sebuah perusahaan angkutan sedang
mempertimbangkan untuk mengangkut 3 macam barang.
Berat masing-masing barang dan biaya angkutnya seperti
tabel berikut. Jika armada perusahaan tersebut memiliki
kapasitas maksimum W = 5 ton. Barang apa yang harus
diangkut dan berapa banyaknya agar diperoleh penerimaan
maksimum?

Barang Berat per item Biaya per item


(i) (wi) (vi)
1 2 65
2 3 80
3 1 30
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:

fn*(Yn) = max {vn kn} karena fn+1*(Yn+1) = 0

fj*(Yj) = max {vj kj + fj+1*(Yj+1)}


kj = 0,1, …, (Yj / wj)
Yj = 0,1,…, W
Penerapan DP….

■ Tahap 3 : f3*(Y3)= max{30 k3}


k3 = 0,1,…,5
Y3 = 0,1,…,5

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….

■ Tahap 2: f2*(Y2) = max{80k2 + f3*(Y3)}


k2 = 0,1
Y2 = 0,1,…,5

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 -

4 0+120=120 65+60=125 130+0=130

5 0+150 = 150 65+90= 155 130+30= 160 160 2


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
5 0+150 = 150 65+90= 155 130+30= 160 160 2

Solusi optimumnya adalah:


mengangkut barang 1 sebanyak 2 (k1* = 2)
barang 2 sebanyak 0 (k2* = 0)
barang 3 sebanyak 1 (k3* = 1)
dengan penerimaan total 160
Penerapan DP….

Contoh 3 (Masalah Capital Budgeting)


Sebuah perusahaan memiliki beberapa usulan proyek dari
ketiga pabriknya guna kemungkinan pengembangan sarana
produksinya. Masing-masing pabrik memasukkan
proposalnya beserta biaya dan penerimaannya seperti tabel
berikut. Proposal dengan biaya nol berarti tidak ada dana
yang dialokasikan pada suatu pabrik. Tujuan perusahaan
adalah memaksimumkan seluruh penerimaan dari
pengalokasian dana yang dimiliki sebesar Rp 5 miliar.
Penerapan DP….

Pabrik 1 Pabrik 2 Pabrik 3


Proposal Cost Revenue Cost Revenue Cost Revenue
ke (C1) (R1) (C2) (R2) (C3) (R3)
1 0 0 0 0 0 0
2 1 5 2 8 1 3
3 2 6 3 9 - -
4 - - 4 12 - -
Penerapan DP….

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.

f3 (Y3) = penerimaan optimum tahap 3 dengan Y3 tertentu


f2 (Y2) = penerimaan optimum tahap 2 dan 3 dengan Y2 tertentu
f1 (Y1) = penerimaan optimum tahap 1, 2 dan 3 dengan Y1
tertentu.
Penerapan DP….

■ Backward recursive equationnya adalah

f4 (Y4) = 0
fj*(Yj) = max{Rj(kj) + fj+1*(Yj -Cj(kj))},
j = 1,2,3
Cj(kj) ≤ Yj
Penerapan DP….

■ Tahap 3: f3*(Y3) = max{R3 (k3)}


C3 (k3) ≤ Y3
k3 = 1, 2

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….

■ Tahap 2: f2*(Y2) = max {R2 (k2) + f3* (Y2-C2 (k2))}


= max {R2 (k2) + f3* (Y3)}
C2 (k2) ≤ Y2
k2 = 1, 2, 3, 4
{R2(k2)+f3*(Y3)}
k2
Y2 1 2 3 4 f2*(Y2) k2*
0 0 - - - 0 1
1 0+3=3 - - - 3 1
2 0+3=3 8+0=8 - - 8 2
3 0+3=3 8+3=11 9+0=9 - 11 2
4 0+3=3 8+3=11 9+3=12 12+0=12 12 3 ,4
5 0+3=3 8+3=11 9+3=12 12+3=15 15 4
Penerapan DP….

■ Tahap 1 : f1*(Y1) = max {R1 (k1) + f2*(Y1-C1(k1))}


= max {R(k1) + f2* (Y2)}
C1 (k1) ≤ Y1
k1 = 1, 2, 3

{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….

■ Jadi penerimaan maksimum sebesar 17 melalui tiga


alternatif, yaitu: (proposal, pabrik).
1. (2, 1); (3, 2); (2, 3)
2. (2, 1); (4, 2); (1, 3)
3. (3, 1); (2, 2); (2, 3)

Anda mungkin juga menyukai