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
• Pemrograman Dinamis (PD) merupakan suatu Teknik matematis yang digunakan untuk menghasilkan
keputusan yang saling berhubungan.
• PD memecahkan masalah dengan cara menguraikan solusi menjadi sekumpulan langkah atau tahapan
sehingga solusi dari persoalan dapat dipandang sebagai serangkaian keputusan yang saling berkaitan
6
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, dimana 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
• Pendekatan pemrograman dinamik meliputi optimisasi proses keputusan multi tahap dengan
membagi suatu persoalan ke dalam tahapan-tahapan atau sub problem dan kemudian
menyelesaikan sub problem secara berurutan
• Kunci dari pendekatan program dinamik adalah optimalitas Bellman
• Prinsip optimalitas adalah suatu kebijaksanaan optimal mempunyai sifat bahwa apapun
keadaan awal atau keputusan awal, keputusan tersisa harus merupakan kebijaksanaan
optimal terhadap keadaan yang dihasilkan keputusan pertama
8
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.
8. Prinsip optimalitas berlaku pada persoalan tersebut.
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
Mundur
Pemrograman 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 tahan 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 sehingga f4*(s) = f4 (s,J) = cs (J). J
• S4 = H,I
• X4 = J 3
• 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
D 4 5 9 2 5 7 1 7 8 7 F
S3 f3*(s) X3*
E 5 H
F 5 H,I
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
D 4 5 9 2 5 7 1 7 8 7 F
S3 f3*(s) X3*
E 5 H
F 5 H,I
36
Tahap 2
Pada tahap akhir n = 2 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
37
Tahap 2
Pada tahap akhir n = 2 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
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
Mundur
Pemrograman 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 dan setiap pasar dilihat pada tabel
berikut ini:
Jumlah produk yg
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 tahan 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 atau Jumlah produk
penghasilan yang diperoleh mulai dari tidak ada pengiriman yg Return dari
hingga 4 kiriman (setiap pengiriman berisi 100 ton), adalah: didistribusikan kota A (Rp)
(ratusan ton)
Jika 0 ton pengiriman ke A f1(0) = r1 = 0 0 0
Jika ada 1 ton pengiriman ke A f1(1) = r1(1) = 10 1 10
Jika ada 2 ton pengiriman ke A f1(2) = r1(2) = 25 2 25
Jika ada 3 ton pengiriman ke A f1(3) = r1(3) = 30 3 30
Jika ada 4 ton pengiriman ke A f1(4) = r1(4) = 35 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
• Apabila Sn=0, maka return f2(X) adalah juga 0, karena tidak ada (0) pengiriman yg Return dari
didistribusikan kota B (Rp)
• Apabila Sn=1, maka return f2(X) adalah
(ratusan ton)
r2(1) + 5+0 = 5 0 0
f1(0) 1 5
Max 10
r2(0) + 0+10 = 10 2 15
f1(1) 3 25
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) yg 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) yg 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) yg 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 yg 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)
Apabila diperhitungkan pengiriman ke kota A, kota B, dan kota C. Atas dasar hasil f2(X) di atas, yg Return dari
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
r3(0) + f2(1) 0+10 = 10
Max 10 2 18
r3(1) + f2(0) 5+0 = 5
3 30
4 40
58
TAHAP 3 (Kota C)
x2 f3 (s) = r3 (x) + f2*(s-x3)
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 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 state 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 suatu
keinginan positif.
• 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
Mundur
Pemrograman 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 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: P1(X1)+f2*(S2)
f1*(X1)=maks{P1(X1) + f2*(S2)} Jam Keuntungan /Kegiatan
X1 F1* kerja 1 2 3 4
0 1 2 3 4 X1*
S1 (X1)
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 8+0=8 10 0 3 6 8 10 8
4 0+12=12 1+10=11 3+7=10 8+3=11 11+0=11 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