DYNAMIC PROGRAMMING

advertisement
DYNAMIC PROGRAMMING
Beberapa istilah yang digunakan dalam pemrograman dinamis adalah :
 Stages. Langkah pertama yang harus dilakukan dalam memformulasikan program dinamis
adalah mengidentifikasikan stages atau tahapan dalam proses keputusan. Misalnya,
terdapat (n) tahapan yang diberi label 1,2,3, …, n-1, n.
 States. Diidentifikasikan berdasarkan setiap stages atau tahapan yang menggambarkan
status semua informasi dalam membuat keputusan. Misalnya, jika dalam stages 3 terdapat
states 5, maka ditulis s3 = 5.
 Decisions. Variabel keputusan atas stage i ditulis dengan di. Misalnya, dalam stage 3
terdapat states 5, maka d3 mungkin sama dengan 7 atau 8 (menuju states 7 atau 8).
 Return functions. Untuk menghitung efektifitas digunakan fungsi dengan notasi f yang
dapat berupa biaya, laba, jarak atau beberapa hitungan yang lain. Fungsi f tersebut
dinamakan return function, misalnya, fi(si,di). Apabila nilai fi optimum ditulis dengan fi*(si)
atau dikenal dengan istilah optimum return function. Misalnya, dalam stage 2 terdapat
states 2 atau i = 2, dan si = 2, maka fungsinya ditulis :
f2 = min f2(2,d2)
d2
= min {f2(2,4), f2(2,5), f2(2,6)} Lihat contoh gambar dibawah
 Recursions. Adalah persamaan yang menyatakan fungsi optimum, misalnya
fi*(si) = min {D(si,di) + fi+1*(di)}
Masalah Rute Terpendek
Dynamic Programming ~ Eko Hartanto
1
Masalah dari gambar tersebut adalah bagaimana menentukan rute yang harus dilalui mulai dari
kota 1 ke kota tujuan 9, agar diperoleh total jarak minimum. Hal ini dapat diselelesaikan dengan
dua cara :
1. Mengambil rute yang terpendek dari satu kota ke kota berikutnya dalam setiap tahapan.
Jika hal ini dilakukan maka rute yang ditempuh adalah mulai dari 1-3-6-8-9 dengan total
jarak 520 km. Tetapi, rute terpendek yang sebenarnya adalah rute 1-3-5-7-9 dengan
jarak 510 km.
2. Dengan cara menghitung satu-persatu setiap rute dan memilih rute terpendek
diantaranya.
 1-2-4-7-9
560 km
 1-2-4-8-9
650 km
 1-2-5-7-9
550 km
 1-2-5-8-9
590 km
 1-2-6-7-9
600 km
 1-2-6-8-9
580 km
 1-3-5-7-9
510 km  terpendek
 1-3-5-8-9
550 km
 1-3-6-7-9
540 km
 1-3-6-8-9
520 km
PENYELESAIAN DENGAN METODE PROGRAM DINAMIS
Tahap 4
Jika dimulai dari tahap 4, terdapat dua rute submasalah yaitu dimulai dari state 7 ke node 9 dan
dimulai dari state 8 ke node 9. Berarti hanya terdapat satu pilihan, rute manakah yang memiliki
jarak terpendek ? Sudah selayaknya rute 7-9 adalah rute terpendek yaitu 50 km, dan keputusan
optimum adalah rute 7-9. Hasil analisa tahap 4 adalah sebagai berikut :
Keputusan
9
Keputusan
optimum
Jarak terpendek
ke node 9
7
50
9
50 km
8
60
9
60 km
State
Tahap 3
Jika dimulai dari tahap 3, terdapat tiga rute submasalah yaitu dimulai dari state 4,5 dan 6. Rute
manakah yang terpendek untuk menuju node 9 ? Untuk mencapai node 9 harus melewati node
7 atau node 8. Berarti hanya tersedia dua keputusan. Jika keputusannya adalah rute 4-7 maka
jarak tempuhnya adalah 60 km, sedangkan jarak node 7 ke node 9 adalah 50 km sehingga total
jaraknya adalah 110 km (terpendek). Jika yang ditempuh adalah rute 4-8, maka total jaraknya
adalah 140 + 60 = 200 km. Ikhtisar analisa jarah tahap tiga adalah seperti tabel berikut :
Keputusan
7
9
Keputusan
optimum
4
110
200
7
110 km
5
220
260
7
220 km
6
260
240
8
240 km
State
Dynamic Programming ~ Eko Hartanto
Jarak terpendek
ke node 9
2
Tahap 2
Dengan cara yang sama seperti dalam tahap 4 dan 3, maka ikhtisar analisa tahap 2 adalah
sebagai berikut :
Keputusan
4
5
6
Keputusan
optimum
2
360
350
380
5
350 km
3
-
270
380
5
270 km
State
Jarak terpendek
ke node 9
Tahap 1
Ikhtisar analisa tahap 1 adalah sebagai berikut :
State
1
Keputusan
2
3
Keputusan
optimum
550
510
3
Jarak terpendek
ke node 9
510 km
Dari tahap 1 dapat disimpulkan jika kita mengambil rute 1-2, maka jarak tempuk menuju node 9
adalah 550 km dan apabila kita mengambil rute 1-2 maka jarak tempuhnya adalah 510 km yang
berarti merupakan jarak terpendek menuju node 9.
Rute terpendek 1-3-5-7-9 = 510 km
PRINSIP DASAR DALAM MENENTUKAN KEBIJAKAN OPTIMUM
Prinsip dasar yang digunakan dalam program dinamis adalah prinsip optimality, yaitu dengan
menentukan keputusan optimum untuk setiap tahap (i). Misalnya, dalam masalah rute terpendek
keputusan optimum tahap 3 adalah state 5 yang tidak tergantung atas keputusan dalam
membuat tahap 2. Kebijakan optimum adalah keputusan yang akan membuat setiap tahap
menjadi minimum atau maksimum (fi*). Kebijakan optimum untuk masalah rute terpendek dapat
dinyatakan seperti berikut :
Dynamic Programming ~ Eko Hartanto
3
Tahap 1, ditunjukkan oleh state 1, d1* = 3 (menuju node 3)
Tahap 2, ditunjukkan oleh state 3, d2* = 5 (menuju node 5)
Tahap 3, ditunjukkan oleh state 5, d3* = 7 (menuju node 7)
Tahap 4, ditunjukkan oleh state 7, d4* = 9 (menuju node 9)
Kebijakan ini akan meminimumkan jarak dari node 1 ke node 9 dengan hasil f1*(1).
APLIKASI KE DALAM MASALAH RUTE TERPENDEK
Apabila prinsip dasar optimality digunakan dalam menyelesaikan program dinamis untuk
masalah rute terpendek, maka proses penyelesaiannya dimulai dari submasalah tahap 4, 3, 2
dan 1. Untuk menyelesaikan submasalah tahap 3 berdasarkan hasil dari tahap 4, untuk
menyelesaikan submasalah tahap 2 didasarkan pada hasil tahap 3, dan untuk menyelesaikan
submasalah tahap 1 diperlukan hasil dari tahap 2. Dengan tujuan adalah untuk mendapatkan
f1*(1) atau meminimumkan rute terpendek dari node 1 ke node 9.
Tahap 4
Jika didefinisikan f5* = 0, dan kemungkinan keputusan dalam tahap 4 adalah d4 = 9, maka
dengan menggunakan persamaan recursions maka didapat hasil :
f4*(7) = min D(7,d4) = min D(7,9) = 9
d4
f4*(8) = min D(8,d4) = min D(8,9) = 9
d4
7
f4(s4,d4)
d4
9
50
8
60
s4
d4*
f4*(s4)
9
50
9
60
Tahap 3
Yang akan diselesaikan adalah mencari rute terpendek dari node 4, 5 dan 6 ke node 9 atau
menghitung f3*(4), f3*(5) dan f3*(6) dan yang berkorespodensi dengan keputusan optimum
d3*(4), d3*(5) dan d3*(6). Prinsip optimality adalah menyelesaikan masalah ini tanpa
menghubungkannya dengan penyelesaian masalah tahap 2. Prinsip ini harus diterapkan secara
nyata dalam masalah rute terpendek. Dengan menggunakan persamaan recursions akan
diperoleh :
f3*(s3) = min {D(s3,d3) + f4*(d3)}
d3
Untuk state 4 atau s3 = 4, akan diperoleh :
f3*(4) = min
D(4,7) + f4*(7) d3 = 7
D(4,8) + f4*(8) d3 = 8
Dynamic Programming ~ Eko Hartanto
4
= min
60 + 50 = (110)
d3 = 7
140 + 60 = (220)
d3 = 8
= 110 dengan d3* = 7
Untuk state 5 atau s3 = 5, akan diperoleh :
f3*(5) = min
= min
D(5,7) + f4*(7) d3 = 7
D(5,8) + f4*(8) d3 = 8
170 + 50 = (220)
d3 = 7
200 + 60 = (260)
d3 = 8
= 220 dengan d3* = 7
Untuk state 6 atau s3 = 6, akan diperoleh :
f3*(6) = min
= min
D(6,7) + f4*(7) d3 = 7
D(6,8) + f4*(8) d3 = 8
210 + 50 = (260)
d3 = 7
180 + 60 = (240)
d3 = 8
= 240 dengan d3* = 8
s3
f3(s3,d3)
d3
d3*
f3*(s3)
7
110
4
7
110
8
200
5
220
260
7
220
6
260
240
8
240
Tahap 2
Menghitung f2*(2) dan f2*(3) yang berkorespondensi dengan keputusan optimum d2*(2) dan
d2*(3).
Untuk state 2 atau s2 = 2, akan diperoleh :
f2*(2) = min
= min
D(2,4) + f3*(4) d2 = 4
D(2,5) + f3*(5) d2 = 5
D(2,6) + f3*(6) d2 = 6
250 + 110 = (360)
130 + 220 = (350)
140 + 240 = (380)
d2 = 4
d2 = 5
d2 = 6
= 350 dengan d2* = 5
Dynamic Programming ~ Eko Hartanto
5
Untuk state 3 atau s2 = 3, akan diperoleh :
f2*(3) = min
= min
D(3,5) + f3*(5) d2 = 5
D(3,6) + f3*(6) d2 = 6
150 + 220 = (370)
d2 = 5
140 + 240 = (380)
d2 = 6
= 370 dengan d2* = 5
2
4
360
f2(s2,d2)
d2
5
350
6
380
3
-
370
380
s2
d2*
f2*(s2)
5
350
5
370
Tahap 1
Menghitung f1*(1) yang berkorespodensi dengan keputusan optimum d1*(1), berdasarkan hasil
tahap 2 untuk nilai f2*, adalah sebagai berikut :
Untuk state 1 atau s2 = 1, akan diperoleh :
f1*(1) = min
= min
D(1,2) + f2*(2) d1 = 2
D(1,3) + f2*(3) d1 = 3
200 + 350 = (550)
d1 = 2
140 + 370 = (510)
d1 = 3
= 510 dengan d1* = 3
s1
1
f1(s1,d1)
d1
2
550
3
510
d1*
f1*(s1)
3
510
PERENCANAAN INVESTASI
Misalnya kita memiliki dana sebesar Rp100 juta yang akan diinvestasikan ke dalam obligasi,
saham A dan saham B. Masing-masing investasi memeiliki harga per lembar Rp 200.000,00, Rp
250.000,00 dan Rp 320.000,00. Setiap investasi memberikan rate of return sebesar Rp
20.000,00 untuk obligasi, Rp 35.000,00 untuk saham A dan Rp 56.000,00 untuk saham B.
Berapa banyak uang Rp 100 juta akan diinvestasikan agar memaksimumkan total rate of return.
Dengan catatan bahwa lembar obligasi dan saham yang dibeli (lot pembelian) setiap kelipatan
100 lembar.
Formulasi program dinamis masalah tersebut, dapat dibuat dalam tiga tahap (stages). Dalam
tahap 3, keputusan yang harus diambil adalah berapa lembar saham B yang harus dibeli. Dalam
Dynamic Programming ~ Eko Hartanto
6
tahap 2, keputusan yang harus diambil adalah berapa lembar saham A yang harus dibeli. Dan
tahap 1, keputusan yang harus diambil adalah berapa lembar obligasi yang harus dibeli. Jika s1
didefinisikan sebagai jumlah dana yang diinvestasikan dalam tahap (i), maka fi(si,di) adalah total
rate of return dari tahap (i) sampai tahap 3
Tahap 3
Jika dimulai dengan tahap 3 dengan s3 Rupiah, berapa lembar saham B yang harus dibeli agar
memaksimumkan rate of return ? Setiap lembar saham B memiliki harga Rp 320.000,00, berarti
terdapat empat (4) variabel keputusan (s3) yaitu :
1.
2.
3.
4.
0
32.000.000
64.000.000
96.000.000
 s3 <
 s3 <
 s3 <
 s3 
32.000.000
64.000.000
96.000.000
100.000.000
Dari keempat alternatif tersebut, nilai variabel keputusan (d3) untuk alternatif 1 = 0, untuk
alternatif 2 = 0 dan 100, untuk alternatif 3 = 0, 100 dan 200, untuk alternatif 4 = 0, 100, 200 dan
300. Tabel dibawah ini menunjukkan perhitungan (f3) dan (f3*), di mana f3(s3,d3) = 56.000 d3 +
f4*(s3 – 320.000 d3).
Dengan demikian fungsi rate of return optimum adalah :
f3*(s3) = max {f3(s3,d3)} untuk semua d3
= max {56.000 d3} untuk semua d3.
Dengan catatan bahwa d3 integer (0  d3  s3/320.000)
0
32
64
96
Tahap 3 Saham B (dalam jutaan Rupiah)
f3(s3,d3)
s3
d3*
d3
0
100
200
300
0
0
 s3 < 32
0
5,6
100
 s3 < 64
0
5,6
11,2
200
 s3 < 96
0
5,6
11,2
16,8
300
 s3  100
f3*(s3)
0
5,6
11,2
16,8
Tahap 2
Jika dimulai dengan tahap 2 dengan s2 Rupiah, berapa lembar saham A yang harus dibeli agar
memaksimumkan rate of return tahap 2 dan tahap 3 ?
f2(s2,d2) = 35.000 d2 + f3*(s2 – 250.000 d2), dimana 35.000 d2 adalah return apabila membeli
saham A. Dengan demikian fungsi rate of return optimum adalah :
f2*(s2) = max {35.000 d2 + f3*(s2 – 250.000)} untuk semua d2
dengan catatan bahwa d2 integer antara (0  d2  s2/250.000)
Sebagai contoh, jika s2 = 100 juta, atau semua dana diinvestasikan ke dalam saham A, dengan
harga per lembar Rp 250.000,00, maka variabel keputusan d2 (jumlah lembar) adalah 0, 100,
200, 300 dan 400.
f2*(s2) = max {35.000 d2 + f3*(s2 – 250.000 d2)} untuk semua d2
Dynamic Programming ~ Eko Hartanto
7
f2*(100.000.000) = max {35.000 d2 + f3*(100.000.000 – 250.000 d2)} untuk semua d2 =
0,100,200,300400. Atau dapat pula dibuat dengan cara persamaan :
f2 (100.000.000,d2) = 35.000 d2 + f3*(100.000.000 – 250.000 d2)
Jika d3 = 0, maka :
f2 (100.000.000,0)
= 35.000 (0) + f3*(100.000.000)
= 0 + 16.800.000 = 16.800.000
Nilai ini sama dengan tabel tahap 3 dengan f3* (100.000.000)
Jika d3 = 100, maka :
f2 (100.000.000,100) = 35.000 (100) + f3*(75.000.000)
= 3.500.000 + 11.200.000 = 14.700.000
Jika d3 = 200, maka :
f2 (100.000.000,200) = 35.000 (200) + f3*(50.000.000)
= 7.000.000 + 5.600.000 = 12.600.000
Jika d3 = 300, maka :
f2 (100.000.000,300) = 35.000 (300) + f3*(25.000.000)
= 10.500.000 + 0 = 10.500.000
Jika d3 = 400, maka :
f2 (100.000.000,400) = 35.000 (400) + f3*(0)
= 14.000.000 + = 14.000.000
Jika dana sebesar Rp 100.000.000,00 diinvestasikan semua pada tahap 2, maka dapat
disimpulkan bahwa :
f2*(100.000.000)
= max
16.800.000, jika d2 = 0
14.700.000, jika d2 = 100
12.600.000, jika d2 = 200
10.500.000, jika d2 = 300
14.000.000, jika d2 = 400
= 16.800.000 dengan d2* = 0
s2
25
50
75
100
Tahap 2 Saham A (dalam jutaan Rupiah)
f2(s2,d2)
d2*
d2
0
100
200
300
400
0
3,5
100
5,6
3,5
7,0
200
11,2
9,1
7,0
10,5
0
16,8
14,7
12,6
10,5
14,0
0
f2*(s2)
3,5
7,0
11,2
16,8
Tahap 1
Jika dimulai dengan tahap 1 dengan s1 rupiah, berapa lembar obligasi yang harus dibeli agar
memaksimumkan rate of return tahap 1, 2 dan tahap 3 ?
Dynamic Programming ~ Eko Hartanto
8
Sumber Rujukan :
1. Aminudin, 2005, Prinsip-Prinsip Riset Operasi, Penerbit Erlangga, Jakarta.
2. Frederick S. Hiller, Gerald J. Lieberman, 1990, Pengantar Riset Operasi, Edisi Kelima,
Penerbit Erlangga, Jakarta
3. Hamdy A. Taha, 1996, Riset Opersai – Suatu Pengantar, Edisi Kelima, Binarupa
Aksara, Jakarta.
4. Johanes Supranto, 2005, Riset Operasi Untuk Pengambilan Keputusan, Edisi Revisi,
Penerbit Universitas Indonesia, Jakarta
5. Siswanto, 2007, Operations Research, Penerbit Erlangga, Jakata.
6. Richard Bronson, 1993, Teori dan Soal-Soal Operations Research, Seri Buku
Schaum’s, Penerbit Erlangga, Jakarta.
7. Sri Mulyono, 2007, Riset Operasi, Edisi Revisi, Lembaga Penerbit Fakultas Ekonomi
Universitas Indonesia, Jakarta.
8. Zulian Yamit, 2003, Manajemen Kuantitatif Untuk Bisnis – Operations Research,
BPFE, Yogyakarta.
Dynamic Programming ~ Eko Hartanto
9
Download