Anda di halaman 1dari 2

06/04/2020

PENDAHULUAN
• Program dinamik merupakan suatu pendekatan solusi bukan suatu teknik
– Tidak terbatas pada golongan masalah tertentu
RISET OPERASI • Pendekatan solusi adalah merinci suatu masalah menjadi masalah-masalah yang lebih
PROGRAM DINAMIS DETERMINISTIK DISKRIT kecil  tahapan (stages)
– Penyelesaian tahapan secara berurutan
STAGECOACH
• Hasil dari suatu keputusan (solusi) pada suatu tahap akan mempengaruhi keputusan
tahap berikutnya

• Pemrograman dinamik merupakan teknik matematis yang dapat berguna untuk


membuat suatu urutan keputusan yang saling berkaitan

• Pemrograman dinamis adalah suatu teknik matematis untuk pembuatan serangkaian


keputusan yang saling berhubungan; merupakan prosedur sistematis untuk
menentukan kombinasi keputusan yang optimal

• Pemrograman dinamis tidak mempunyai rumusan yang baku

• Tiap permasalahan memerlukan perumusan tertentu

Dr. Rini Mulyani Sari, MT. • Teknik pemrograman dinamis dikenal juga dengan multistage programming

CIRI-CIRI MASALAH PEMROGRAMAN DINAMIS CIRI-CIRI MASALAH PEMROGRAMAN DINAMIS


1. Permasalahan dapat dibagi dalam tahap-tahap (stages), dengan suatu keputusan 7. Tersedia hubungan rekursif yang mengidentifikasi kebijakan optimal pada tahap n, bila
kebijaksanaan diperlukan di setiap tahap. diketahui kebijakan optimal untuk tahap (n + 1).
Bentuk pasti dari hubungan rekursif berbeda-bedadiantara masalah-masalah pemrograman
2. Setiap tahap memiliki sejumlah keadaan (states) yang bersesuaian. dinamis, tetapi secara umum notasi yang dipakai aalah:
N = banyaknya tahap
3. Pengaruh keputusan kebijakan pada setiap tahap adalah untuk mengubah n = label untuk tahap sekarang (n = 1, 2, …, N)
sn = keadaan sekarang untuk tahap n
keadaan sekarang yang berkaitan dengan tahap berikutnya (mungkin menurut
xn = peubah keputusan untuk tahap n
suatu distribusi peluang tertentu).
xn* = nilai optimal xn (diketahui sn)
fn(sn,xn) = kontribusi tahap n, n+1, …, N kepada fungsi tujuan bila sistem dimulai dari
4. Prosedur penyelesaian dirancang untuk menemukan suatu kebijakan optimal keadaan sn pada tahap n, keputusan sekarang adalah xn dan keputusan optimal dibuat
untuk keseluruhan masalah, yaitu pemberian keputusan kebijakan optimal pada sesudahnya.
setiap tahap untuk setiap kemungkinan keadaan. fn*(sn) = fn(sn,xn*)
Hubungan rekursif akan selalu memiliki bentuk
5. Bila diketahui keadaan sekarang, kebijakan optimal untuk tahap-tahap yang
f n sn   max f n sn , xn  atau f n sn   min f n sn , xn 
* *
tersisa adalah bebas terhadap kebijakan yang dipakai pada tahap-tahap xn xn
sebelumnya. (Ini adalah prinsip keoptimalan dalam pemrograman dinamis).
8. Bila kita gunakan hubungan rekursif ini, prosedur penyelesaian bergerak mundur tahap
demi tahap – setiap kali menemukan kebijakan optimal untuk tahap tersebut – sampai
6. Prosedur penyelesaian dimulai dengan menemukan kebijakan optimal untuk ditemukan kebijakan optimal yang dimulai dari tahap awal.
tahap terakhir.

KLASIFIKASI PROGRAM Diskret Kontinyu PEMROGRAMAN DINAMIS DETERMINISTIK (PDD)


DINAMIS Single Majemuk Single Majemuk • Rangkaian keputusan yang optimal dibuat dengan menggunakan prinsip optimalisasi,
yaitu jika solusi memiliki kebijakan yang optimal apapun keadaan awal dan keputusan
Deterministik awalnya, maka keputusan yang tersisa harus mendapatkan kebijakan optimal yang sesuai
Probabilistik dengan keadaan yang dihasilkan dari keputusan awal
• Keadaan pada tahap berikut ditentukan sepenuhnya oleh keadaan dan keputusan
PROSEDUR PEMECAHAN Prosedur pemecahan kebijakan pada tahap sekarang. Tahap n Tahap n+1
MASALAH • Rekursi maju (forward recursion)
sn+1
• Rekursi mundur (backward recursion) • PDD dapat diuraikan dengan diagram berikut: Keadaan: sn
Kontribusi
Perbedaan prosedur
LANGKAH PPD fn(sn, xn) dari xn fn+1 (sn+1) *
• Cara mendefinisikan status dalam sistem. • Pada tahap n, proses akan berada pada suatu keadaan sn.
Prosedur rekursi mundur secara umum efisien
• Pembuatan keputusan kebijakan xn selanjutnya menggerakkan proses ke keadaan sn+1
pada tahap (n+1).
• Tentukan prosedur pemecahan (maju atau mundur).
LANGKAH-LANGKAH • Tentukan tahap (stage).
• Kontribusi sesudahnya terhadap fungsi tujuan di bawah kebijakan optimal telah dihitung
PEMECAHAN sebelumnya sebagai fn+1*(sn+1).
• Definiskan variabel status (state) pada tiap tahap
• Keputusan kebijakan xn juga memberi beberapa kontribusi kepada fungsi tujuan.
• Definisikan variabel keputusan pada tiap tahap
• Definisikan fungsi pengembalian pada tiap tahap • Kombinasi kedua nilai ini dengan benar akan memberikan fn(sn,xn), yaitu kontribusi n tahap
ke depan kepada fungsi.
• Definsikan fungsi transisi
• Definisikan fungsi rekursif • Pengoptimalan terhadap xn dan fn*(sn,xn) = fn (sn,xn*).
• Perhitungan • Setelah ditemukan xn* dan fn*(sn) untuk setiap nilai sn, prosedur penyelesaian sekarang siap
• Tentukan solusi optimal dengan backtracking bergerak mundur satu tahap.
• Fungsi tujuan: meminimumkan atau memaksimumkan.

1
06/04/2020

Tahap 1
d (x1, x2) Solusi Optimal Tahap 3
x1 x2 = 2 x2 = 3 x2 = 4 f1(x1) x2* d (x3, x4) Solusi Optimal
1 5 9 8 5 2 x3 x4 = 7 f3(x3) x4*
5 8 8 7
Tahap 2 6 14 14 7
d (x2, x3) Solusi Optimal
REKURSI MAJU x2 x3 = 5 x3 = 6 f2(x2) CONTOH STAGECOACH (1)
x3*
REKURSI MAJU Tahap 2 CONTOH STAGECOACH (2)
Tahap 1 Solusi Optimal Tahap 1 Solusi Optimal d (x2, x3) Solusi Optimal
2 5 + 10 = 15 5 + 17 = 22 15 5
9 + 4 = 13 9 Di
+ 10sebuah 13daerah 5terdapat 7 kota. Seorang kurir x3 = 5 Suatu x3 = 6 jaringan
f2(x2) pengarahan perjalanan dimana
d (x1, x2) f1(x1) x2* d (x1, x2) f1(x1) x2* x2 x3*
5 x2 = 2
3 = 19 16 x2 = 2
4 8 + 9 = 17 ingin mengantarkan
8 + 9 = 17 17 5 ataubarang
6 dari kota 1 ke kota 7. 2 25 + 8 = 33 17 + 14 = 31 31 pengarah
seorang 6 jalan (abad 19) ingin
x1 = 1 9 x2 = 3 5 3 x1 = 1 35 x2 = 3 9 4
3 14 + 8 = 22 17 + 14 = 31 22 5
8 x2 = 4 kurir tersebut menginginkan rute terpendek yang 9 x2 = 4
4 menentukan
26 + 8 = 34 22 + 14 = 36 rute
34 terpendek
5 antara dua kota (1
Tahap 2 d (x2, x3) Tahap 3
Solusi Optimal Tahap 2 d (x2, x3) Solusi Optimal
dapat ia lewati. Tentukanlah rute terpendek dan 7) berdasarkan rute alternatif yang tersedia
x2 x3 = 5 x3 = 6 f2(x2) d (x3, x4)
x3* Solusi Optimal x2 x3 = 5 x3 = 6 f2(x2) x3*
x2 = 2 10 15 17 22 15x3 x4 = 7 f3(x3) x4* tersebut! x2 = 2 25 41 17 33 33
Tahap 1
x2 = 3 4 13 10 19 Tahap
13 3 5 x2 = 3 14 49 17 52 49 6 d (x1, x2) Solusi Optimal
5 13 + 8 = 21 21 7 x1 x2 = 2 x2 = 3 x2 = 4 f1(x1) x2*
x2 = 4 9 17 9 17 17 d (x3, x2 = 4 26 35 22 31 31
6 17 + 9 =x4)
26 Solusi
26 Optimal 7 Tahap
1 3 16 + 31 = 47 35 + 22 = 57 9 + 34 = 43 43 4
Tahap 3 d (x3, x4) Solusi Optimal x3 x4 = 7 f3(x3) x4* Tahap 3 d (x3, x4) Solusi Optimal d (x3, x4) Solusi Optimal
x3 x4 = 7 f3(x3) x4* 5 8 terpendek
8 yang dapat 7 ditempuh oleh kurir x3 x4 = 7 f3(x3) x4*
Sehingga rute x3 rutex4
Sehingga =7
terpendek f3(x3)dapat ditempuh
yang x4* oleh kurir adalah
x3 = 5 8 21 x3 = 5 8 43
21 7 6adalah Kota
9 1 - Kota93 - Kota 5 -7Kota 7 sejauh 21 km 43 7 5 8 8 7
x3 = 6 9 26 x3 = 6 14 45 Kota 1 - Kota 4 - Kota 5 - Kota 7 sejauh 43 km
6 14 14 7
Tahap 2
d (x2, x3) Solusi Optimal Tahap 2
REKURSI MUNDUR x2 x3 = 5 x3 = 6 f2(x2) x3*
REKURSI MUNDUR d (x2, x3) Solusi Optimal
Tahap 3 d (x3, x4) Solusi Optimal 2 10 + 8 = 18 17 + 9 = 26 18 5 Tahap 3 d (x3, x4) Solusi Optimal x2 x3 = 5 x3 = 6 f2(x2) x3*
x3 x4 = 7 f3(x3) x4* 3 4 + 8 = 12 10 + 9 = 19 12 5 x3 x4 = 7 f3(x3) x4* 2 25 + 8 = 33 17 + 14 = 31 31 6
x3 = 5 8 8 x3 = 5 8 8 3 14 + 8 = 22 17 + 14 = 31 22 5
8 7 4 9 + 8 = 17 9 + 9 = 18 17 5 8 7
x3 = 6 9 9 x3 = 6 14 14 4 26 + 8 = 34 22 + 14 = 36 34 5
Tahap 2 d (x2, x3) Solusi Optimal
Tahap 1 Tahap 2 d (x2, x3) Solusi Optimal
x2 x3 = 5 x3 = 6 f2(x2) x3* x2 x3 = 5 x3 = 6 f2(x2)Tahapx3*
1
d (x1, x2) Solusi Optimal x2 = 2 25 33 17 31 31
x2 = 2 10 18 17 26 18 d (x1, x2) Solusi Optimal
x2 = 3 4 12 10 19 12x1 5 x2 = 2 x2 = 3 x2 = 4 f1(x1) x2* x2 = 3 14 22 17 31 22 x1 5 x2 = 2 x2 = 3 x2 = 4 f1(x1) x2*
x2 = 4 9 17 9 18 17 1 5 + 18 = 23 9 + 12 = 21 8 + 17 = 25 21 3 x2 = 4 26 34 22 36 34
1 16 + 31 = 47 35 + 22 = 57 9 + 34 = 43 43 4
Tahap 1 d (x1, x2) Solusi Optimal Tahap 1 d (x1, x2) Solusi Optimal
x1 x2 = 3 f1(x1) x2* Sehingga rute terpendek yang dapat ditempuh oleh kurir x1 x2 = 3 f1(x1) x2* Sehingga rute terpendek yang dapat ditempuh oleh kurir adalah
5 12 17 adalah Kota 1 - Kota 3 - Kota 5 - Kota 7 sejauh 21 km 16 31 47
Kota 1 - Kota 4 - Kota 5 - Kota 7 sejauh 43 km
x1 = 1 9 0 9 3 x1 = 1 35 22 57 4
8 0 8 9 34 43

KNAPSACK contoh 1 Sebuah bejana dengan berat (W) 4 ton dapat memuat satu atau KNAPSACK contoh 2 Permasalahan mengenai berapa jumlah tiap jenis barang yang
lebih 3 item barang. Diberikan tabel berat (wi) dalam ton dan berbeda dapat dimasukkan ke dalam sebuah ransel guna
Tahap 3 pembulatan
Tahap 3 pembulatan unit pendapatan (ri) dalam ribuan dolar. Carilah banyaknya unit m3 =5/3 = 1.7 1
memaksimumkan pengembalian dari barang-barang tersebut.
m3 = 4/3 =1.3 1
80m3 Solusi Optimal
item yang dapat memaksimalkan keuntungan! x3
80m3 Solusi Optimal Ransel mempunyai kapasitas tertentu (5 ruang)
x3 m3=0 m3= 1 f3(x3) m3*
m3=0 m3= 1 f3(x3) m3* item k - i wi ri item k - i wi ri item k - i wi ri
0 0 - 0 0
0 0 - 0 0 1 1 30 1 0 - 0 0 1 1 30 2 2 90
1 0 - 0 0 2 2 60 2 0 - 0 0 2 2 90 3 3 150
2 0 - 0 0 3 0 150 150 1 3 3 150
3 3 80 1 1 30
3 0 80 80 1 4 0 150 150 1
4 0 80 80 1 Mulai dari 60, sesuai pada soal dengan kapasitas Item ke 3 dengan 5 0 150 150 1
wi = 2 dan ri = 60
Tahap 2 Tahap 2
m2 = 4/2 = 2 m2 = 5/2 = 2.5
60𝑚2 + 𝑓3 𝑥2 − 2𝑚2
60m2 + f3(x2 - 2m2) Solusi Optimal 60m2 + f3(x2 - 2m2) Solusi Optimal
x2 x2
m2=0 m2= 1 m2= 2 f2(x2) m2* Terlebih dahulu hitung fungsi tahap sebelumnya: m2=0 m2= 1 m2= 2 f2(x2) m2*
0 0 - - 0 0 Ctt; apabila hasilnya negatif, maka solusi tidak visible (berhenti), 0 0 - - 0 0
1 0 - - 0 0 dan apabila hasilnya pasitif, maka lanjutkan ke tahap selanjutnya. 1 0 - - 0 0
60 - 𝑓3 𝑥2 − 2𝑚2 2 0 90 - 90 1
2 0 60 1
𝑓3 3 − 2.1 3 150 90 - 150 0
3 80 60 - 80 0 𝑓3 1 . → 𝐿𝑖ℎ𝑎𝑡 𝑡𝑎ℎ𝑎𝑝 3, 𝑘𝑜𝑙𝑜𝑚 𝑥3 𝑛𝑜 1 𝑝𝑎𝑑𝑎 𝑘𝑜𝑙𝑜𝑚 𝑓3 𝑥3 = 0 4 150 90 180 180 2
4 80 60 120 120 2 240 180 240
5 150 1
Hitung fungsi existing. Solusi optimal (m2*)
60𝑚2 + 0 Baris x2 = 2 adalah 60 Tahap 1
Tahap 1 60 . 1 + 0 = 60 Baris x2 = 4 adalah 120 m1 = 5/1 = 1 5
m1 = 4/1 = 1 4
30m1 + f2(x1 - 5m1) Solusi Optimal Kesimpulan:
30m1 + f2(x1 - 4m1) Solusi Optimal x1
x1 m3=0 m3= 1 m3= 2 m3= 3 m3= 4 m3= 5 f1(x1) m1* Laba optimal sebesar 240 (tahap 1, m3=0)
m3=0 m3= 1 m3= 2 m3= 3 m3= 4 f1(x1) m1* didapatkan dari penjumlahan antara 90 (item
0 0 - - - - - 0 0
0 0 - - - - 0 0 30 - - - - ke 2) dan 150 (item ke 3).
1 0 30 1
1 0 30 - - - 30 1 2 90 30 60 - - - 90 0
2 60 30 60 - - 60 0,2 Kesimpulan:
3 150 120 60 90 - - 150 0
Laba optimal sebesar 120 (tahap 2, m2=2) didapatkan
3 80 90 60 90 - 90 1,3 4 180 180 150 90 120 - 180 0,1
dari penjumlahan 60 (item ke 2) sebanyak 2 kali.
4 120 110 120 90 120 120 0,2,4 5 240 210 210 180 120 150 240 0

Anda mungkin juga menyukai