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