Pemrograman Dinamis
Deterministik
TUJUAN PEMBELAJARAN
OUTLINE
Pendahuluan
Struktur Masalah PD
• Dua langkah Pemrograman Dinamis
• Langkah-langkah pemecahan masalah
Contoh Penerapan
• Minimasi Cost
• Maksimasi Income
• Maksimasi Alokasi
Latihan Soal
4
PENDAHULUAN
5
PENDAHULUAN
PENDAHULUAN
• Pertama kali dikembangkan oleh ilmuwan bernama Richard Bellman pada 1975.
• Apabila dalam metode OR lain memiliki formulasi yang standar untuk memecahkan
masalah, pada pemrograman dinamis tidak ada formulasi yang standar.
• Setiap masalah pada pemrograman dinamis memerlukan pola pendekatan atau
penyelesaian yang berbeda satu dengan lainnya.
• Terdapat kesamaan dari setiap penyelesaian masalah, yaitu setiap keputusan
optimal yang diambil diperoleh dari banyak tahap.
• Hasil dari sebuah tahap akan berdampak atau menjadi masukan bagi tahap
berikutnya; state dan stage berikutnya sepenuhnya ditentukan oleh state dan
keputusan pada stage saat itu.
7
PENDAHULUAN
KARAKTERISTIK
1. Persoalan dapat dibagi menjadi beberapa tahap (stage), dimana masing-masing tahap memiliki policy
decision yang merupakan kebijakan yang mengarahkan pada keputusan yang akan diambil dan pada
setiap tahap hanya diambil satu keputusan.
2. Masing-masing tahap terdiri dari sejumlah status (state) yang berhubungan dengan tahap tersebut. Secara
umum, status merupakan bermacam kemungkinan masukan yang ada pada tahap tersebut.
3. Policy decision pada suatu tahap berfungsi untuk mentransformasi status. Hasil dari keputusan yang
diambil pada setiap tahap ditransformasikan dari status yang bersangkutan ke status berikutnya pada
tahap berikutnya.
4. Ongkos (cost) pada suatu tahap meningkat secara teratur (steadily) dengan bertambahnya jumlah
tahapan.
5. Ongkos pada suatu tahap bergantung pada ongkos tahap-tahap yang sudah berjalan dan ongkos
pada tahap tersebut.
6. Keputusan terbaik pada suatu tahap bersifat independen terhadap keputusan yang dilakukan pada
tahap sebelumnya.
7. Adanya hubungan rekursif yang mengidentifikasikan keputusan terbaik untuk setiap status pada
tahap k memberikan keputusan terbaik untuk setiap status pada tahap k + 1.
9
DUA PENDEKATAN PD
DUA PENDEKATAN PD
FUNGSI KONTRIBUSI:
gn = r(Sn,Xn)
Fungsi transisi:
17
HUBUNGAN REKURSIF:
HUBUNGAN REKURSIF:
CONTOH PENERAPAN 1
23
tahap (n)
Komponen .
fungsi kontribusi
Maju
Prosedur
fungsi transisi
Pemecahan
Pemrograman Mundur
Dinamis
Deterministik hubungan rekursif
Minimasi Ongkos
Penugasan/Alokasi
24
MINIMASI COST/JARAK/WAKTU
25
• Besar biaya dan rute jalan dari A menuju J disajikan dengan gambar berikut :
3 3
B 4 E H 2
5 4
1
3 3
2
A C 2 J
F
3 2
3
3
4 5
2
D G 6 I
1
• Definisi Masalah:
1. Tentukan prosedur penyelesaian: Maju/Mundur
2. Tahap n = daerah simpul
3. Status/kondisi tahap n Sn = kota pada tahap n
4. Keputusan pada tahap n Xn = kota yang harus ditempuh
5. Fungsi transisi Sn+1 = Xn
6. Fungsi kontribusi pada tahap n gn = Cs (Xn)
7. Hubungan rekursif fn*(sn) = min fn(sn,Xn)
dengan
fn (Sn,Xn) = cs (Xn) ; n = 4
fn (Sn,Xn) = cs (Xn) + fn+1*(Xn) ; n = 1, 2, 3
Sn+1 = Xn
28
• Pilih variabel keputusan Xn (n= 1,2,3,4) sebagai kota yang harus ditempuh pada
tahap n, sehingga rute seluruhnya adalah X1→X2→X3→X4, dengan X1 = A dan X4
= J.
• Pilih fn (Sn,Xn) sebagai biaya total untuk kebijakan keseluruhan dari tahapan
selanjutnya dengan truk sampai pada kondisi S, siap berangkat ke tahap n, dengan
memilih Xn sebagai kota tujuan berikut.
• Pada kondisi S dan tahap n, gunakan Xn* sebagai sembarang nilai yang
meminimumkan fn(Sn,Xn), gunakan fn*( Sn) sebagai nilai minimum dari fn(Sn,Xn).
• fn*( Sn) = min fn(Sn,Xn) = fn(Sn,Xn*) dengan fn(Sn,Xn) adalah biaya sekarang (tahap
n) + minimum biaya yad (tahap n+1 dan selanjutnya) atau fn(sn,Xn) = cs (Xn) +
fn+1*(Xn)
29
Tahap 4
H 2
• Pada tahap akhir n = 4, maka
perjalanannya hanya ditentukan
sepenuhnya oleh kondisi kondisi S
sekarang (yaitu H atau I) dan tujuan akhir J
J sehingga f4*(s) = f4 (s,J) = cs (J).
• S4 = H,I 3
• X4 = J
• g4 = cs (J) I
• f4*(s) = f4 (s,J) = cs (J).
n=4
30
Tahap 4 H 2
Pada tahap akhir n = 4 hasil ditabelkan sebagai berikut :
Tahap 3
• Pada tahap n = 3, maka perjalanannya
perlu melakukan beberapa hitungan.
Misalkan dia sudah sampai di kota F, maka
dia bisa melaju ke kota H atau I, dengan
biaya pada tahap ini adalah Cf (H) = 3 atau
Cf (I) = 2
• S3 = E,F,G
• X3 = H,I
• *
f3(s) = cs (X3) + f4 (s,J)
32
Tahap 3
Pada tahap akhir n = 3 hasil ditabelkan sebagai berikut :
f3 = c3 + f4*
S H I f3*(s) X3*
c3 f4* f3 c3 f4* f3
E 3 2 5 4 3 7 5 H
F 3 2 5 2 3 5 5 H,I
G 5 2 7 6 3 9 7 H
33
Tahap 3
Pada tahap akhir n = 3 hasil ditabelkan sebagai berikut :
f3 = c3 + f4*
S H I f3*(s) X3*
c3 f4* f3 c3 f4* f3
E 3 2 5 4 3 7 5 H
F 3 2 5 2 3 5 5 H,I
G 5 2 7 6 3 9 7 H
34
Tahap 2
Pada tahap akhir n = 2 hasil ditabelkan sebagai berikut :
f2 = c2 + f3*
S E F G f2*(s) X2*
c2 f3* f2 c2 f3* f2 c2 f3* f2
B 3 5 8 4 5 9 5 7 12 8 E
C 3 5 8 2 5 7 3 7 10 7 F
S3 f3*(s) X3*
D 4 5 9 2 5 7 1 7 8 7 F E 5 H
F 5 H,I
G 7 H
35
Tahap 2
Pada tahap akhir n = 2 hasil ditabelkan sebagai berikut :
f2 = c2 + f3*
S E F G f2*(s) X2*
c2 f3* f2 c2 f3* f2 c2 f3* f2
B 3 5 8 4 5 9 5 7 12 8 E
C 3 5 8 2 5 7 3 7 10 7 F
S3 f3*(s) X3*
D 4 5 9 2 5 7 1 7 8 7 F E 5 H
F 5 H,I
G 7 H
36
Tahap 1
Pada tahap akhir n = 1 hasil ditabelkan sebagai berikut :
f1 = c1 + f2*
S B C D X1 *
f1*(s)
c1 f2 * f1 c1 f2* f1 c1 f2* f1
A 1 8 9 2 7 9 3 7 10 9 B,
C
S2 f2*(s) X2*
B 8 E
C 7 F
D 7 F
37
Tahap 1
Pada tahap akhir n = 1 hasil ditabelkan sebagai berikut :
f1 = c1 + f2*
S B C D X1 *
f1*(s)
c1 f2 * f1 c1 f2* f1 c1 f2* f1
A 1 8 9 2 7 9 3 7 10 9 B,C
S2 f2*(s) X2*
B 8 E
C 7 F
D 7 F
38
3 3
B 4 E H 2
5 4
1
3 3
2
A C 2 J
F
3 2
3
3
4 5
2
D G 6 I
1
hasil optimum tercapai yaitu 9
Lintasan 1 : A→ B→ E→ H→ J.
Lintasan 2 : A→ C→ F→ H→ J.
Lintasan 3 : A→ C→ F→ I→ J.
40
CONTOH PENERAPAN 2
41
tahap (n)
Komponen .
fungsi kontribusi
Maju
Prosedur
fungsi transisi
Pemecahan
Pemrograman Mundur
Dinamis
Deterministik hubungan rekursif
Minimasi Ongkos
Penugasan/Alokasi
42
MAKSIMASI KEUNTUNGAN
43
dimana n=2,3,4,...
• Sebuah perusahaan memiliki kapasitas produksi sebesar 400 ton per bulan. Distribusi produk
dilakukan melakukan transportasi darat dan untuk menghemat biaya pengirimannya. Pasar yang
dituju adalah pasar A, B, dan C. Dari pengalaman yang ada, return dari setiap pasar dilihat pada tabel
berikut ini:
Jumlah produk
yang Return dari Kota Return dari Kota Return dari Kota
didistribusikan A (Rp) B (Rp) C (Rp)
(ratusan ton)
0 0 0 0
1 10 5 5
2 25 15 18
3 30 25 30
4 35 30 40
• Bagaimana distribusi produk harus dilakukan oleh perusahaan agar diperoleh hasil atau return yang
optimal?
45
• Definisi Masalah:
1. Tentukan prosedur penyelesaian: Maju/Mundur
2. Tahap n = pasar yang dituju (A,B,C)
3. Status/kondisi tahap n Sn = jumlah hasil produksi yang masih tersisa pada tahap n
4. Keputusan pada tahap n Xn = jumlah (dalam ton) barang yang didistribusikan untuk tahap n
5. Fungsi transisi Sn-1 = Sn - Xn
6. Fungsi kontribusi pada tahap n gn = rn (Xn); rn = return pada tahap n
7. Hubungan rekursif fn*(sn) = max fn(sn,Xn)
dengan
fn (Sn,Xn) = rs (Xn) ; n = 1
fn (Sn,Xn) = rs (Xn) + fn-1*( Sn-1) ; n = 2, 3
46
• Perhitungan akan dimulai dari pasar A, B, dan diakhiri dengan perhitungan return di
pasar C. Dengan persamaan dasar di atas, berarti nilai f1(X) akan menentukan nilai
f2(X), dan nilai f2(X) ini akan menentukan nilai f3(X).
47
ILUSTRASI
TAHAP 1 (pasar A)
Bila semua produk hanya dipasarkan di Kota A, maka return Jumlah produk
atau penghasilan yang diperoleh mulai dari tidak ada yang Return dari
pengiriman hingga 4 kiriman (setiap pengiriman berisi 100 didistribusikan Kota A (Rp)
ton), adalah: (ratusan ton)
0 0
Jika 0 ton pengiriman ke A f1(0) = r1 = 0 1 10
Jika ada 1 ton pengiriman ke A f1(1) = r1(1) = 10 2 25
Jika ada 2 ton pengiriman ke A f1(2) = r1(2) = 25 3 30
Jika ada 3 ton pengiriman ke A f1(3) = r1(3) = 30 4 35
Jika ada 4 ton pengiriman ke A f1(4) = r1(4) = 35
48
x1 f1 (s) = r1 (x)
S f1* x1*
0 1 2 3 4
0 0 - - - - 0 0
1 0 10 - - - 10 1
2 0 10 25 - - 25 2
3 0 10 25 30 - 30 3
4 0 10 25 30 35 35 4
49
ILUSTRASI
TAHAP 2 (Pasar B)
Apabila diperhitungkan pengiriman ke Kota A dan Kota B. Atas dasar hasil f1(X)
di atas, nilai f2(X) dapat dicari dengan persamaan umum sebagai berikut: Jumlah produk
yang Return dari
• Apabila Sn=0, maka return f2(X) adalah juga 0, karena tidak ada (0) didistribusikan Kota B (Rp)
pengiriman (ratusan ton)
• Apabila Sn=1, maka return f2(X) adalah 0 0
1 5
r2(1) + f1(0) 5+0 = 5 2 15
Max 10 3 25
r2(0) + f1(1) 0+10 = 10 4 30
51
TAHAP 2 (Kota B)
x2 f2 (s) = r2 (x) + f1*(s-x2)
S f2* x2*
0 1 2 3 4
0 0 0 0
1 10 5 10 0
52
Jumlah produk
TAHAP 2 (Pasar B) yang Return dari
• Apabila Sn=2, maka return f2(X) adalah didistribusikan Kota B (Rp)
r2(0) + f1(2) 0+25 = 25 (ton)
Max r2(1) + f1(1) 5+10 = 15 25 0 0
r2(2) + f1(0) 15+0 = 15
1 5
x2 f2 (s) = r2 (x) + f1*(s-x2) 2 15
S f2* x2*
0 1 2 3 4 3 25
0 0 0 0 4 30
1 10 5 10 0
2 25 15 15 25 0
53
Jumlah produk
TAHAP 2 (Pasar B) yang Return dari
• Apabila Sn=3, maka return f2(X) adalah didistribusikan Kota B (Rp)
r2(0) + f1(3) 0+30 = 30 (ton)
Max r2(1) + f1(2) 5+25 = 30
30 0 0
r2(2) + f1(1) 15+10 = 25
r2(3) + f1(0) 25+0 = 25 1 5
2 15
x2 f2 (s) = r2 (x) + f1*(s-x2)
S f2* x2* 3 25
0 1 2 3 4
4 30
0 0 0 0
1 10 5 10 0
2 25 15 15 25 0
3 30 30 25 25 30 1,2
54
Jumlah produk
TAHAP 2 (Pasar B) yang Return dari
• Apabila Sn=4, maka return f2(X) adalah didistribusikan Kota B (Rp)
r2(0) + f1(4) 0+35 = 35 (ton)
r2(1) + f1(3) 5+30 = 35
0 0
Max r2(2) + f1(2) 15+25 = 40 40
1 5
r2(3) + f1(1) 25+10 = 35
r2(4) + f1(0) 30+0 = 30 2 15
TAHAP 2 (Kota B)
x2 f2 (s) = r2 (x) + f1*(s-x2)
S f2* x2*
0 1 2 3 4
0 0+0 0 0
1 0 + 10 =10 5+0=5 10 0
2 0 + 25 = 25 5+10 = 15 15 + 0 = 15 25 0
3 0 + 30 = 30 5 +25 = 30 15 + 10 = 25 25 + 0 = 25 30 0,1
4 0 + 35 = 35 5 + 30 = 35 15 + 25 = 40 25 + 10 = 35 30 + 0 = 30 40 2
Pasar A Jumlah produk yang Return dari Kota B
S
X1 f1(X) didistribusikan (ton) ( Rp)
0 0 0 0 0
1 1 10 1 5
2 2 25 2 15
3 3 30 3 25
4 4 35 4 30
56
2 2 25 0 25
3 3 30 0,1 30
4 4 35 2 40
57
Jumlah produk
TAHAP 3 (Pasar C)
yang Return dari
Apabila diperhitungkan pengiriman ke Kota A, Kota B, dan Kota C. Atas dasar hasil f2(X) di
atas, nilai f3(X) dapat dicari dengan persamaan umum sebagai berikut: didistribusikan Kota C (Rp)
f3(X) = r3(X) + f2(S-X) (ton)
• Apabila Sn=0, maka return f3(X) adalah juga 0, karena tidak ada (0) pengiriman
0 0
• Apabila Sn=1, maka return f2(X) adalah
1 5
TAHAP 3 (Kota C)
x3 f3 (s) = r3 (x) + f2*(s-x3)
S f3* x3*
0 1 2 3 4
0 0+0 0 0
1 0 + 10 =10 5+0=5 10 0
2 0 + 25 = 25 5+10 = 15 18 + 0 = 18 25 0
3 0 + 30 = 30 5 +25 = 30 18+ 10 = 28 30 + 0 = 30 30 0,1,3
4 0 + 40 = 40 5 + 30 = 35 18 + 25 = 43 30+ 10 = 40 40 + 0 = 40 43 2
0 0 0
0 10
0 0
1
1 5
2 0 25 2 18
0,1 30
3 30
3
4 40
4 2 40
59
2 2 25 0 25 0 25
3 3 30 0,1 30 0,1,3 30
4 4 35 2 40 2 43
60
PENGAMBILAN KEPUTUSAN
• Pengambilan keputusan dilakukan dengan melihat mulai dari tahap terakhir yang dilakukan, yaitu
tahap 3 (pasar C). Pada tahap ini, seluruh jumlah pengiriman masih dapat dipergunakan, sehingga
status sistemnya adalah S = 4. Pada pasar C, untuk S = 4, nilai optimalnya adalah 43. Nilai x
optimal untuk f(x) = 43 adalah 2 pengiriman.
• Dilakukannya 2 pengiriman ke kota C menyebabkan perubahan status di tahap 2 (pasar B).
Penggunaan 2 pengiriman di Kota C menyebabkan sisa pengiriman menjadi 4 – 2 = 2. Dengan
demikian, status di Kota B adalah S = 2. Bila S = 2 di Kota B, maka nilai f(x) optimal adalah 25
dengan nilai x optimal adalah 0. Dengan demikian, penggunaan 0 pengiriman di Kota B
menyebabkan status di Kota A adalah S = 2.
• Dengan demikian, status di kota A adalah S = 2. Bila S = 2 di Kota A, maka nilai f(x) optimal adalah
25 dengan nilai x optimal adalah 2. Dengan demikian, penggunaan 2 pengiriman di Kota C dan 2
kiriman di Kota A menjadi solusi optimal.
• Untuk mengetahui nilai keuntungan max yang diperoleh, dapat dilihat pada tabel awal. Keuntungan
karena melakukan 2 pengiriman di Kota C adalah 18 dan keuntungan karena melakukan 2
pengiriman di Kota A adalah 25. sehingga, total nilai optimalnya adalah 18 + 25 = 43.
62
tahap (n)
Komponen .
fungsi kontribusi
Maju
Prosedur
fungsi transisi
Pemecahan
Pemrograman Mundur
Dinamis
Deterministik hubungan rekursif
Minimasi Ongkos
Penugasan/Alokasi
64
• Keuntungan pada 4 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 per hari maksimum.
Keuntungan /Kegiatan
Jam kerja
1 2 3 4
0 0 0 0 0
1 1 2 3 2
2 3 5 7 5
3 6 8 10 8
4 9 11 12 10
65
Solusi:
• Misalkan 4 keputusan merupakan 4 stage dalam perumusan progam dinamis.
Variabel keputusan Xj (j=1,2,3,4) adalah banyaknya jam kerja yang dialokasikan
pada tahap ke j.
• Misalkan Pj (Xj) adalah keuntungan dari alokasi X jam kerja kepada kegiatan j.
Sehingga masalah itu dapat diformulasikan sebagai suatu LP seperti berikut:
• Karena hanya ada satu kendala, teknik LP hanya akan memberikan satu
variabel dalam solusinya. Karena itu LP tak dapat diterapkan di sini,
sehingga persoalan ini akan diselesaikan dengan teknik Pemrograman
Dinamis.
67
• Cara penyelesaian:
P4(X4)
Tahap 4: f4*(X4)=maks{P4X4} dimana f5(X5)=0
X4 Jam Keuntungan /Kegiatan
0 1 2 3 4 f4*(X4) X4 *
S4 kerja 1 2 3 4
0 0 - - - - 0 0 0 0 0 0 0
1 0 2 - - - 2 1 1 1 2 3 2
2 0 2 5 - - 5 2 2 3 5 7 5
3 0 2 5 8 - 8 3 3 6 8 10 8
4 0 2 5 8 10 10 4
4 9 11 12 10
69
P3(X3)+f4*(S4)
Jam Keuntungan /Kegiatan
X3
0 1 2 3 4 f3*(X3) X3* kerja 1 2 3 4
S3 Tahap 3: f3*(X3)=maks{P3(X3) + f4*(X4)}
0 0+0=0 0 0 0 0 0 0 0
1 0+2=2 3+0=3 3 1 1 1 2 3 2
2 0+5=5 3+2=5 7+0=7 7 2
2 3 5 7 5
3 0+8=8 3+5=8 7+2=9 10+0=10 10 3
3 6 8 10 8
4 0+10=10 3+8=11 7+5=12 10+2=12 12+0=12 12 2,3,4
4 9 11 12 10
untuk kegiatan (3), bila bila waktu yang tersedia adalah 4 jam (s3=4) dan yang
mengalokasikan 1 jam, digunakan kegiatan 3 adalah 1 jam (x3=1), maka sisa waktu
keuntungannya adalah 3 adalah 3 jam lihat nilai f4* saat s4=3 8
70
untuk kegiatan 2, bila bila waktu yang tersedia adalah 3 jam (s2=3) dan yang
mengalokasikan 2 jam, digunakan kegiatan 2 adalah 2 jam (x2=2), maka sisa waktu
keuntungannya adalah 5 adalah 1 jam lihat nilai f3* saat s3=1 3
71
Tahap 1: P (X )+f
f1*(X1)=maks{P1(X1)
1 1 2 *(S2 ) + f2*(S2)} Jam Keuntungan /Kegiatan
X1 kerja 1 2 3 4
0 1 2 3 4 f1*(X1) X1*
S1
0 0 0 0 0
0 0+0=0 0 0
1 1 2 3 2
1 0+3=3 1+0=1 3 0
2 0+7=7 1+3=4 3+0=3 7 0 2 3 5 7 5
3 0+10=10 1+7=8 3+3=6 6+0=6 10 0 3 6 8 10 8
4 0+12=12 1+10=11 3+7=10 6+3=9 9+0=9 12 0
4 9 11 12 10
untuk kegiatan 1, bila bila waktu yang tersedia adalah 2jam (s1=2) dan yang
mengalokasikan 2 jam, digunakan kegiatan 1 adalah 2 jam (x1=2), maka sisa waktu
keuntungannya adalah 3 adalah 0 jam lihat nilai f2* saat s2=0 0
1. Pada tahap ini diketahui bahwa x1* = 0 alokasi kegiatan 1 adalah 0 jam.
2. Penggunaan 0 jam pada tahap 1 menyebabkan status pada tahap 2 adalah 4 jam. Pada s2
= 4, nilai x2 * = 0, 1, 2 alokasi kegiatan 2 adalah 0, 1, atau 2 jam.
3. Bila tahap 2 menggunakan 0 jam, maka status pada tahap 3 adalah 4 jam. Pada s3 = 4,
nilai x3* = 2, 3, 4 alokasi kegiatan 3 adalah 2, 3, atau 4 jam.
4. Bila tahap 3 menggunakan 2 jam, maka status pada tahap 4 adalah 2 jam. Pada s4 = 2,
nilai x4* = 2 alokasi kegiatan 4 adalah 2 jam
5. Dst.
73
Beberapa alternatif alokasi yang menimbulkan keuntungan maksimum adalah (nilai keuntungan
dari jam yang dialokasikan untuk tiap kegiatan lihat tabel awal) :
TERIMA KASIH
74