DETERMINISTIC DYNAMIC
PROGRAMMING
Dynamic programming problems adalah
masalah multi tahap(multistage) dimana keputusan dibuat secara berurutan (in sequence)
Beberapa aplikasi dari dynamic programming
antara lain:
Network
Resource allocation
NETWORK PROBLEM
Untuk menemukan shortest (longest) path yang
menghubungkan dua titik dalam network
Contoh:
Joe tinggal di new York dan akan pergi ke LA. Dia berencana menginap di rumah temannya dalam perjalanan tersebut. Joe punya teman di Columbus, Nashville, Louisville, Kansas,
Omaha, Dallas, San Antonio, dan Denver. Joe tahu setelah satu hari perjalanan dia akan mencapai Columbus, Nashville atau Louisville. Setelah perjalanan 2 hari akan mencapai
Kansas, Omaha, atau Dallas. Setelah 3 hari perjalanan akan mencapai Denver atau San Antonio. Setelah 4 hari akan
THE RECURSION
Ide bekerja secara backward adalah kita mulai
menyelesaikan masalah dari yang paling sederhana untuk menyelesaikan masalah yang kompleks.
Jadi kita mulai dari kota yang hanya membutuhkan perjalanan satu hari ke LA yaitu kota Denver dan San Antonio (kota pada stage 4)
Kemudian kita gunakan informasi dari stage 4 untuk menemukan jarak terpendek dari kota pada stage 3 ( yang membutuhkan 2 hari) ke LA
SOLUSI
Tentukan Cij = jarak kota i ke kota j
Tentukan Ft(i) = panjang shortest path
dari kota i ke kota LA dimana kota i adalah kota pada stage t
Tentukan shortest path ke LA dari
STAGE 4 COMPUTATION
Karena hanya ada satu path dari kota pada stage 4 ke LA maka kita dapat langsung menentukan
Jarak terpendek dari kota Denver ke kota LA adalah
F4(8) = 1030
STAGE 3 COMPUTATION
Terdapat tiga kota pada stage 3 yaitu
kota Kansas, Omaha dan Dallas
Dari kota Kansas terdapat 2 path
menuju kota LA yaitu
Path 1. Kansas – Denver – kemudian
mengambil shortest path dari Denver ke LA
Path 2. Kansas – San Antonio – kemudian mengambil shortest path dari San
Panjang Path 1 didapatkan dari C58 + F4(8)
Panjang Path 2 didapatkan dari C59 + F4(9)
Sehingga Jarak terpendek dari kota 5 ke kota 10 adalah
Dengan cara yang sama, jarak terpendek dari kota Omaha(6) ke LA adalah
Jarak terpendek dari kota Dallas ke LA adalah
STAGE 2 COMPUTATION
Pada stage 2 terdapat 3 kota yaitu Columbus, Nashville, dan Louisville
Terdapat 3 path dari Coulumbus ke LA yaitu Path 1. Columbus – Kansas – kemudain
mengambil shortest path dari Kansas
Panjang Path 1. adalah
C25+F3(5)
Panjang Path 2. adalah
C26+F3(6)
Panjang Path 3. adalah
C27+F3(7)
Sehingga Jarak terpendek dari kota 2(Columbus ) ke LA adalah
Dengan cara yang sama, jarak
terpendek dari kota Nashville(3) ke LA adalah
Jarak terpendek dari kota Louisville(4) ke LA adalah
STAGE 1 COMPUTATION
Dari kota 1(New York) terdapat 3 Path
ke kota LA yaitu
Path 1. New York – Columbus – kemudian mengikuti shortest path dari Columbus
Path 2. new York – Nashville – kemudian mengikuti shortest pat dari Nashville
Jarak terpendek dari kota New york (1) ke LA (10) adalah
Penentuan Path optimal Dari Stage 1 kota 1: 1 – 2 Dari Stage 2 kota 2 : 2 – 5
Dari Stage 3 kota 5 : 5 – 8 – 10
Jadi Path Optimal adalah 1 – 2 – 5 – 8 – 10 dengan jarak 2870
KARAKTERISTIK APLIKASI DYNAMIC PROGRAMMING
Karakteristik 1
Problem dapat dibagi menjadi beberapa stage dan
dibutuhkan sebuah keputusan pada setiap stage. Karakteristik 2
Setiap stage memiliki beberapa state.
state, adalah informasi yang dibutuhkan pada setiap stage untuk membuat keputusan optimal.
Karakteristik 3
Keputusan yang dipilih pada setiap stage
Karakteristik 4
Diberikan state sekarang, keputusan optimal untuk
setiap stage yang tersisa harus tidak tergantung pada state yang dicapai sebelumnya atau keputusan yang diambil sebelumnya.
Ide ini dikenal sebagai the principle of optimality.
Karakteristik 5
Jika state untuk suatu problem telah diklasifikasikan ke
PRODUCTION AND INVENTORY
PROBLEM
Dynamic programming dapat digunakan
untuk menyelesaikan masalah inventory dengan karakteristik berikut:
1. Waktu dibagi menjadi beberapa periode. Periode
sekarang adalah periode 1, berikutnya periode 2 dan terakhir adalah periode T. Pada awal periode 1, permintaan selama setiap periode diketahui.
2. Pada awal setiap periode, perusahaan harus
3. Permintaan pada setiap periode harus dipenuhi
tepat waktu dari inventory ataau produksi sekarang. Selama setiap periode dimana dilakukan produksi maka akan timbul fixed cost dan variabel cost.
4. Perusahaan memiliki kapasitas penyimpanan yang
terbatas. Hal ini mencerminkan batas pada end-of-period inventory. Holding cost per unit timbul pada setiap period’s ending inventory.
5. Tujuan perusahaan adalah menentukan jadwal
produksi untuk meminimumkan total cost dari
Pada model ini, posisi inventory perusahaan
direview pada akhir setiap periode dan kemudian keputusan produksi dibuat.
Model seperti ini dinamakan periodic
review model.
Model ini berlawanan dengan the continuous
review model dimana perusahaan
mengetahui posisi inventory setiap saat dan memesan order atau memulai produksi
21
PRODUCTION AND INVENTORY
PROBLEMS
MJ berencana memproduksi 15 mobil
22
Maximum level produksi adalah 3 untuk Juli, dan 4 untuk setiap bulan yang lain.
Kapasitas penyimpanan adalah 2 mobil dengan
holding cost adalah $2,500 per bulan ($3,000 untuk Mei).
Fixed costs (untuk asuransi dan lain – lain) hanya terjadi jika mobil benar – benar diproduksi
23
Membuat jadwal produksi yang
meminimumkan total cost
24
Stage variable j: Bulan ke - j.
State variable Xj: Banyaknya
mobil di inventory pada awal bulan ke - j
Decision variable Dj: Jumlah
produksi untuk bulan ke – j
25
• Production costs PCj(Dj) dalam bulan j proporsional
dengan jumlah mobil yang diproduksi
PCj(Dj) = PjDj
• Holding (storage) costs HCj(Dj) dalam bulan ke j
dibayarkan untuk mobil yang tidak terjual di akhir bulan ke j.
Untuk bulan j =1: HC1(D1) = 3000(X1 + D1 - C1)= 3000D1 – 9000
Untuk bulan j = 2, 3, 4, 5: HCj(Dj ) =2500(Xj+Dj - Cj)
Stage cost function:
Fixed costs FCj(Dj) terjadi jika dalam bulan ke j terdapat produksi
mobil. Sehingga
FCj(Dj) = Sj jika Dj > 0
FCj(0) = 0 jika Dj = 0
MJ - DEFINISI
26
The optimal value function Fj(Xj) dalam bulan j
adalah minimum total cost yang terjadi dari bulan ke
j sampai 5( September), jika terdapat Xj mobil pada
inventory di awal bulan ke-j
Boundary conditions F5(X5):
F5(0) = 2,000 + 23,000(4) = $94,000; D5 = 4
F5(1) = 2,000 + 23,000(3) = $71,000; D5 = 3
F5(2) = 2,000 + 23,000(2) = $48,000; D5 = 2
Optimal solution F1(0) adalah minimum total cost dari bulan Mei sampai September jika tidak ada inventory awal
27
Fj(Xj) = Min{FCj(Dj) + PCj(Dj) + HCj(Dj) + Fj+1(Xj +Dj - Cj)},
Dj feasible hanya jika memenuhi kondisi berikut :
Dj + Xj Cj ;
D3 3 for July; Dj 4 for j = 1, 2, 4, 5; Dj + Xj - Cj 2;
Dj 0
Pada semua Dj yang feasible.
28
RECURSIVE CALCULATIONS – STAGE 4: AUGUST
29
RECURSIVE CALCULATIONS – STAGE 3:
JULY
Bulan Fixed Production Holding Permintaan Kap Produksi Kap inv
jJulyCosts Sj ($) Costs Pj ($) Cost s Hc ($) Cj4000 9,000 2,500 1 3
RECURSIVE CALCULATIONS – STAGE 2: JUNI
Cost Optimal Value
RECURSIVE CALCULATIONS – STAGE 1: MEI
Cost Optimal Value
SOLUSI
Jadwal Produksi MJ yang meminimumkan total cost
- Bulan May : 3 Mobil
- Bulan Juni : 2 Mobil
- Bulan Juli : 3 Mobil
- Bulan Agustus: 4 Mobil
- Bulan September : 3 Mobil
33
Kementrian tenaga kerja memiliki dana
sebesar 5 juta dollar untuk digunakan oleh kementrian – kementrian yang lain untuk menciptakan tenaga kerja
Terdapat 4 kementrian yang mengajukan
permohonan dana untuk kepentingan penciptaan tenaga kerja.
Kementrian tenaga kerja ingin
mengalokasikan dana untuk memaksimalkan banyaknya tenaga kerja yang diciptakan
RESOURCE ALLOCATION PROBLEM
34
Data
35
SOLUSI
Kementrian tenaga kerja ingin :
Memaksimumkan total banyaknya
tenaga kerja baru
36
Notasi
Dj = jumlah dana yang dialokasikan ke kementrian j, di mana j adalah :
1 - Pendidikan, 2 - Keuangan, 3 – Perhubungan , 4 - Pertanian.
Rj(Dj) = banyaknya pekerjaan baru yang tercipta jika Kementrian j dibiayai sebesar $Dj juta.
37
Definisikan F
j(Xj) adalah maksimum
banyaknya pekerjaan baru yang
diciptakan oleh kementrian (stage)
j,j+1,…, 4, jika tersedia dana sebesar $Xj juta (state) untuk kementrian j
sampai 4.
THE BACKWARD DYNAMIC PROGRAMMING
38
Stage 4: Kementrian Pertanian,(KPt)
Mulailah dengan tahap terakhir j = 4 (Kementrian
Pertanian, KPt).
Alokasikan dana yang memaksimalkan jumlah
pekerjaan baru yang diciptakan untuk kementrian ini.
Jelas, solusi optimal untuk kementrian terakhir
adalah menggunakan semua jumlah yang tersedia pada stage ini).
Solusi optimal untuk stage terakhir disebut “The
boundary condition”
THE BACKWARD DYNAMIC PROGRAMMING
39
Stage 4: Tabel Kementrian Pertanian
States
Ingat: untuk Kementrian Pertanian
40
Stage 3: Kementrian Perhubungan, (KPh)
Pada stage ini kita mempertimbangkan
pendanaan untuk Kementrian Perhubungan dan Kementrian Pertanian
Untuk jumlah dana tertentu yang tersedia untuk kedua kementrian ini, keputusan
besarnya dana yang diberikan untuk
kementrian KPh akan berpengaruh pada dana yang tersedia untuk KPt
41
Stage 3: Tabel Kementrian Perhubungan
42
SOLUSI
43
Stage 2: Kementrian Keuangan, (KKu)
Pada stage ini kita memikirkan pendanaan
untukKementrian Keuangan dan dua Kementrian sebelumnya yaitu Kementrian Perhubngan dan Pertanian
Untuk state tertentu (jumlah dana yang tersedia
untuk ketiga Kementrian ), keputusan mengalokasikan sejumlah dana untuk
Kementrian Keuangan berpengaruh pada jumlah dana yang tersedia untuk Kementrian
Perhubungan dan Pertanian (state pada stage j = 3).
44
45
Stage 1: Kementrian Pendidikan (KPd)
Pada stage ini kita memikirkan pendanaan untuk Kementrian Pendidikan dan semua kementrian sebelumnya.
Perhatikan bahwa pada stage 1 masih
terdapat $5 juta untuk dialokasikan (X1 = 5).
46
Stage 1: Kementrian Pendidikan hanya
mengusulkan satu proposal yaitu sebesar $4 juta, sehingga
(D1 = 0, 4).
Tidak didanai Proposal didanai
47 Alokasi pendanaan optimal untuk memaksimalkan
banyaknya pekerjaan yang diciptakan adalah :
Pendidikan = $0
Keuangan = $3 million
Perhubungan = $2 million
Pertanian = $0
Maximum banyaknya pekerjaan yang diciptakan= 290
Alokasi pendanaan optimal untuk memaksimalkan banyaknya pekerjaan yang diciptakan adalah :
Pendidikan = $0
Keuangan = $3 million
Perhubungan = $2 million Pertanian = $0
Maximum banyaknya pekerjaan yang diciptakan= 290
48
49
Dynamic programming adalah proses rekursif
Recursive relationship berikut menggambarkan proses untuk resource allocation
Definisikan F
j(Xj) sebagai maksimum banyaknya
pekerjaan baru yang diciptakan oleh kementrian (stage j, j+1, …, 4, jika tersedia $Xj juta untuk pendanaan
kementrian (stage) j sampai 4.
Fj(Xj) = Max {(Rj(Xj) + Fj+1(Xj - Dj)}
Untuk semua Xj yang feasible
50
Bentuk dari recursion relation berbeda beda dari satu problem ke problem yang lain, tapi secara umum idenya sama :
Lakukan yang terbaik untuk stage yang tersisa dengan resource sisa yang tersedia.
51
Jaringan (Networks) dapat digunakan untuk
memodelkan multistage decision problems yang
diselesaikan dengan dynamic programming approach.
Setiap node merepresentasikan nilai state variable pada
setiap stage.
Setiap arc merepresentasikan keputusan yang mungkin
pada state tertentu.
Stage return adalah nilai (panjang) pada setiap arc.
Tujuannya adalah menemukan path terpanjang(terpendek).
52
NETWORK
FORMULATING DYNAMIC PROGRAMMING RECURSIONS
Pada banyak dynamic programming problems,
stage tertentu terdiri atas semua state yang mungkin
Jika kasusnya adalah seperti ini maka dynamic
programming recursion dapat dituliskan dalam bentuk berikut:
Ft(i) = min{(cost during stage t) + ft+1 (new stage at stage t +1)}
dimana minimum pada persamaan di atas
Formulasi yang benar menghasruskan kita
mengidentifikasi tiga aspek penting dari masalah tersebut :
Aspect 1: Sekumpulan keputusan yang feasible untuk
state dan stage tertentu.
Aspect 2: Kita harus menentukan bagaimana biaya
selama periode waktu sekarang (stage t) tergantung pada nilai t, state yang sekarang dan keputusan yang dipilih pada stage t.
Aspect 3: Kita harus menentukan bagaimana state pada
stage t+1 tergantung pada nilai t, state pada stage t dan keputusan yang diambil pada stage t.
Tidak semua recursi merupakan bentuk dari yang
A FISHERY EXAMPLE
Pemilik danau harus memutuskan berapa
banyak bass yang harus ditangkap dan dijual setiap tahun.
Jika dia menjual x bass selama tahun t, maka
pendapatan r(x) didapatkan.
Biaya menangkap x bass selama setahun
adalah fungsi c(x, b) dari banyaknya bass
A FISHERY EXAMPLE
Untuk memodelkan masalah ini, kita
asumsikan bahwa banyaknya bass didalam danau pada awal tahun adalah 20% lebih banyak dari banyaknya bass yang tersisa didanau pada akhir tahun sebelumnya.
Asumsikan bahwa terdapat 10,000 bass di
danau pada awal tahun pertama.
Bentuklah dynamic programming recursion
A FISHERY EXAMPLE
Dalam suatu masalah dimana keputusan harus
dibuat pada beberapa titik waktu. Seringkali terdapat trade off dari keuntungan sekarang dan keuntungan masa datang.
Pada awal tahun T, pemilik danau tidak perlu
khawatir tentang efek bahwa penangkapan bass akan berpengaruh pada populasi di danau pada masa datang.
Jadi, masalah pada awal tahun T relative lebih
mudah diselesaikan. Untuk alasan ini, kita pilih waktu sebagai stage.
Pada setiap stage, pemilik danau harus memutuskan
A FISHERY EXAMPLE
Kita tentukan xt adalah banyaknya bass yang
ditangkap selama tahun t.
Untuk menentukan nilai optimal dari xt, pemilik
danau hanya perlu tahu berapa banyak bass
(sebut sebagai bt) di danau pada awal tahun ke-
t. sehinggastate pada awal tahun t adalah bt.
Kita tentukan ft (bt) adalah maximum net profit
yang dapat diperoleh dari bass yang ditangkap
selama tahun t, t+1, …T jika terdapat bt bass di
A FISHERY EXAMPLE
Sekarang kita bahas aspek 1-3 dari rekursi.
Aspect 1: apakah keputusan yang diijinkan?
Selama setiap tahun kita tidak dapat menangkap
Bass lebih banyak dari yang ada di danau.
Sehungga, dalam setiap state dan untuk semua t 0 ≤ xt ≤ bt harus terpenuhi.
Aspect 2: berapakah net profit yang didapatkan
selama tahun t ? Jika xt bass ditangkap selama
satu tahunyang dimulai bt bass di danau, maka
net profit adalah r(xt) – c(xt, bt).
Aspect 3: Apakah state selama t+1? State tahun
A FISHERY EXAMPLE
Setelah tahun T, tidak ada future profit yang
harus dipertimbangkan, sehingga ft(bt)=max{r(xt)
– c(xt,bt)+ft+1[1.2(bt-xt)]} dimana 0 ≤ xt ≤ bt.
Kita gunakan persamaan ini untuk bekerja
backward sampai f1(10,000) selesai dihitung.
Kemudian untuk menentukan optimal fishing
policy, kita pilih x1 adalah nilai yang mencapai
maksimum dalam persamaan untuk f1(10,000).
Kemudian tahun 2 akan mulai dengan 1.2(10,000
A FISHERY EXAMPLE
Artinya x2 harus dipilih nilai yang
mencapai maximum di persamaan untuk f2(1.2(10,000-x1)).
Lanjutkan terus sampai nilai optimal x3,
62
Dynamic programming problems
biasanya diselesaikan menggunakan program komputer.
Karena dynamic problem berbeda -
beda, tidak ada universal code untuk menyelesaikan semua masalah
tersebut.
63
DYNAMIC PROGRAMMING - EXAMPLES
Dalam setiap permasalahan dynamic
programming kita harus dapat menentukan / mengidentifikasi hal – hal berikut: :
The stage variable. The state variable.
The decision variable.
The stage return or cost function(s). The optimal value function.
The boundary conditions.