1. PROGRAM DINAMIK 1.1 PENDAHULUAN
Definisi 1.1:
Program dinamik adalah suatu teknik matematik untuk menentukan serangkaian keputusan yang saling terkait, serta memberikan suatu prosedur yang sistematik untuk menentukan kombinasi optimal dari keputusan yang hendak ditentukan itu. Perbedaan antara program dinamik dengan program linear adalah :
! Pada masalah program dinamik tidak terdapat rumusan matematika secara baku
! Progam dinamik adalah suatu tipe penyelesaian masalah yang didekati secara umum.
1.2 CONTOH PROTOTYPE
Contoh 1.2:
Ada seorang pengembara yang hendak berjalan dari Kota A menuju Kota J, ditangannya terbentang sehelai peta yang mengambarkan arah perjalanan beserta jaraknya. Jalan-jalan yang manakah yang harus dipilih oleh pengembara ini agar jarak tempuh yang akan dilaluinya sependek mungkin.
7 4 1 6 4 3 2 3 6 4 2 4 3 3 4 3 state 4 1 3 5
stage1 stage2 stage3 stage4
Gb.1.1 Peta dari kota A menuju ke Kota J A B E H J C D F G I
Penyelesaian
Permasalahan di atas dapat dibagi menjadi 4 tahapan (stage) seperti terlihat pada gambar. Pada tiap tahapan ini akan ditentukan :
! Peubah keputusan : xn (n = 1,2,3,4) adalah tujuan langsung pada stage n ! Jalur yang dipilih : A x1 x2 x3 x4 = J
! Misalkan fn(s,xn) adalah total jarak yang terpendek ditempuh dari seluruh kebijakan (polcy) untuk tahapan-tahapan yang tersisa, pada saat pengembara ini berada di state s dan siap untuk memulai tahapan ke-n serta memilih xn sebagai tujuan berikutnya.
! Diberikan s dan n
Misalkan xn* menunjukkan nilai xn yang meminimumkan fn(s,xn) dan fn*(s) adalah nilai minimumnya, yaitu :
fn*(s) =
min
n X
fn(s,xn) = fn(s,xn*) dimana
fn(s,xn) = Biaya pada tahapan ke-n + Biaya minimum pada tahapan ke-n+1 =
n sx
C + f*n+1(xn)
karena tujuan akhir (state J) dicapai pada tahapan terakhir yaitu tahapan ke-4, maka f*5(J) = 0
! Tujuan : mendapatkan f*1(A) dan jalur-jalur yang bersesuaian. Ada dua kemungkinan, yaitu :
- Mundur : f*5(J) f*4(s) f*3(s) f*2(s) f*1(A) - Maju :f*1(A) f*2(s) f*3(s) f*4(s) f*5(J) Prosedur Penyelesaian n=4 S f4*(s) x4* H 3 J I 4 J n=3 f3(s,x3)=csx3 + f4*(x3) x3 s H I f3*(s) x3* E 1+3=4 4+4=8 4 H F 6+3=9 3+4=7 7 I G 3+3=6 3+4=7 6 H
n=2 f2(s,x2)=csx2 + f3*(x2) x2 S E F G f2*(s) x2* B 7+4=11 4+7=11 6+6=12 11 E/F C 3+4=7 2+7=9 4+6=10 7 E D 4+4=8 1+7=8 5+6=11 8 E/F n=1 f1(s,x1)=csx1 + f2*(x1) x1 S B C D f1*(s) x1* A 2+11=13 4+7=11 3+8=11 11 C/D
Biaya minimum adalah 11
Jalur yang ditempuh adalah : A C E H J atau A D E H J
F I J
1.3 KARAKTERISTIK DARI MASALAH-MASALAH PADA PROGRAM DINAMIK
(1) Masalah tersebut dapat dibagi ke dalam tahapan-tahapan, serta membutuhkan sebuah keputusan kebijakan (policy decision) pada tiap tahapan.
(2) Tiap tahapan memiliki sejumlah state yang bersesuaian dengannya. Secara umum, state memiliki berbagai macam kemungkinan kondisi tergantung pada sistem yang ada pada tahapan masalah tersebut. Jumlah dari state mungkin terbatas mungkin pula tak terbatas.
(3) Efek dari kebijakan keputusan yang diambil pada tiap tahapan adalah untuk mentransformasikan state pada saat itu ke state yang bersesuaian pada tahapan berikutnya (dimungkinkan juga sebuah sebuah distribusi probabilitas)
(4) Prosedur penyelesaian dirancang untuk mendapatkan kebijakan optimal untuk seluruh permasalahan, yaitu, suatu perumusan dari keputusan kebijakan optimal pada tiap tahapan untuk tiap state yang mungkin.
(5) Diberikan state saat ini, kebijakan optimal untuk tahapan yang tersisa independen terhadap kebijakan yang diambil pada tahapan-tahapan sebelumnya. (Principle of optimality for dinamic programming)
(6) Prosedur penyelesaian diambil dengan mendapatkan kebijakan optimal pada tahapan terakhir.
(8) Jika relasi rekursif ini digunakan, prosedur penyelesaian berpindah mundur tahapan demi tahapan. Tiap kali mendapatkan kebijakan optimal untuk tahapan tersebut hingga didapat kebijakan optimal yang diawali pada tahapan mula-mula.
1.4 PROGRAM DINAMIK DETERMINISTIK
Pada masalah-masalah deterministik, state yang berada pada tahapan berikutnya ditentukan seluruhnya berdasarkan state dan kebijakan keputusan pada tahapan saat ini. Sedangkan pada masalah probabilistik, state berikutnya ditentukan pada distribusi probabilitas yang berlaku pada masalah tersebut.
Program Dinamik Deterministik
Tahapan ke-n Tahapan ke-n+1 State :
Kontribusi dari xn
fn(sn,xn) f*n+1(sn+1)
Salah satu cara untuk mengkatagorikan program dinamik deterministik adalah melalui bentuk fungsi obyektifnya. Sebagai contoh, fungsi obyektif tersebut mungkin saja merupakan minimum dari jumlahan kontribusi-kontribusi dari tiap-tiap tahapan.
Secara khusus, state sn mungkin saja berupa peubah diskrit, kontinu atau mungkin saja berupa suatu vektor.
Contoh 1.3:
WHO bermaksud untuk menyempurnakan pelayanan kesehatan di negara-negara yang sedang berkembang. Saat ini WHO mempunyai 5 team kesehatan yang harus ditempatkan di 3 negara. WHO harus menentukan berapa team yang harus ditempatkan di tiap-tiap negara, sehingga keefektifan total dari kelima tim ini dapat dimaksimumkan. Sebagai alat ukur dari keefektifan ini ialah pertambahan umur (ribuan orang/tahun) jika tim ini datang ke negara itu.
Tabel 1.1 pertambahan umur
Pertambahan Umur(Ribuan Orang/Tahun) Jumlah Team yang
dialokasikan 1 2 3 0 0 0 0 1 45 20 50 2 70 45 70 3 90 75 80 4 105 110 100 5 120 150 130 Sn Sn
Penyelesaian
! Tahapan : Negara (1,2,3)
Peubah keputusan : xn = jumlah team yang akan dialokasikan di negara n (n = 1,2,3)
State dari sistem : sn = jumlah team medis yang masih tersedia untuk dialokasikan pada negara-negara yang belum menerima bantuan, yaitu n,…,3
! Membangun fungsi obyektif, berupa fungsi rekursif
Misalnya : pI(xi) : ukuran performansi dari pengalokasian xi team medis ke negara-i.
Fungsi obyektif : max
∑
= 3 1 ) ( i i i x p Kendala :
∑
= = 3 1 5 i i x , xi nonnegatif integerdengan menggunakan stuktur dasar program dinamik, dibentuk : fn(sn,xn) = pn(xn) + max
∑
+ = 3 1 ) ( n i i i x pdimana nilai max diambil untuk seluruh xn+1, … , x3 sedemikian hingga
∑
= = 3 1 i n i s x , xi nonnegatif integer, n = 1,2,3 selanjutnya : f*n(sn) =max
,..., 1 , 0 n n s x = fn(sn,xn) karena itu : fn(sn,xn) = pn(xn) + f *n+1(sn-xn) dengan f*4 = 0 berarti relasi rekursifnya adalah :f*n(sn) =
max
,..., 1 , 0 n n s x = { pn(xn) + f *n+1(sn-xn)}, n=1,2Tahapan ke-n Tahapan ke-n+1
state xn
fn(sn,xn) pn(xn) f *n+1(sn-xn) = pn(xn) + f *n+1(sn-xn)
Sn
Prosedur n=3 s3 f3*(s3) x3* 0 0 0 1 50 1 2 70 2 3 80 3 4 100 4 5 130 5 n=2 f2(s2,x2) = p2(x2) + f *3(s2-x2) x2 s2 0 1 2 3 4 5 f2*(s2) x2* 0 0 - - - 0 0 1 50 20 - - - - 50 0 2 70 70 15 - - - 70 0/1 3 80 90 95 75 - - 95 2 4 100 100 115 125 110 - 125 3 5 130 120 125 145 160 150 160 4 n=1 f1(s1,x1) = p1(x1) + f *2(s1-x1) x1 s1 0 1 2 3 4 5 f1*(s1) x1* 5 160 170 165 160 155 120 170 1 Penyelesaian optimal : x1* = 1, s2 = 5 -1 = 4 x2* = 3, s2 = 4 -3 = 1 x3* = 1, dengan f1*(s) = 170 Contoh 1.4:
Nasa sedang mengadakan riset untuk mengatasi masalah rekayasa tertentu yang harus diselesaikan sebelum orang dapat terbang ke planet Mars dengan selamat. Tiga team ilmuwan sedang mencoba tiga pendekatan untuk menyelesaikan masalah ini. Diberikan tabel estimasi probabilitas yang menyatakan kegagalan bila ditambahkan 0,1,2 ilmuwan pada team tersebut.
Probabilitas Kegagalan Team Jumlah ilmuwan baru 1 2 3 0 0.40 0.60 0.80 1 0.20 0.40 0.50 2 0.15 0.20 0.30
Bagaimana cara mengalokasikan ilmuwan-ilmuwan baru ini agar didapat probabilitas kegagalan minimum.
Penyelesaian
Tahapan : Team peneliti (n = 1,2,3)
State Sn : Jumlah ilmuwan baru yang masih tersedia untuk dialokasikan pada team yang tersisa.
Peubah keputusan :
xn : jumlah ilmuwan tambahan yang dialokasikan pada team n Mis : pi(xi) = probabilitas kegagalan dari team I jika diberi tambahan xI ilmuwan Fungsi obyektif : Min
∏
= 3 1 i pi(xi) Kendala :∑
= 3 1 i xi =2, xi nonnegatif integer Fungsi rekursifnya : fn(sn,xn) = pn(xn) = Min∏
= 3 1 i pi(xi)dimana nilai minimum diambil atas xn+1, … , x3 sedemikian hingga :
∑
= 3 1 i xi = sn , xi nonnegatif integerTahapan ke-n Tahapan ke-n+1
state xn fn(sn,xn) pn(xn) f *n+1(sn-xn) = pn(xn) . f *n+1(sn-xn) Jadi untuk n = 1,2,3 : fn*(sn) =
Min
n n s x≤ fn(sn,xn) fn(sn,xn) = pn(xn) f*n+1(sn-xn) fn*(sn) =Min
n n s x≤ { pn(xn) f*n+1(sn-xn)} n = 1,2 f3*(s3) =Min
s x3≤3 p3(x3) Sn Sn - XnProsedur n=3 s3 f3*(s3) x3* 0 0.80 0 1 0.50 1 2 0.30 2 n=2 f2(s2,x2) = p2(x2) . f3*(s2 – x2) x2 s2 0 1 2 f2*(s2) x2* 0 0.6*0.8=0.48 - - 0.48 0 1 0.6 *0.5=0.30 0.4*0.8=0.32 - 0.30 0 2 0.6*0.3=0.18 0.4*0.5=0.20 0.2*0.8=0.16 0.16 2 n=1 F1(s1,x1) = p1(x1) . f2*(s1 – x1) x1 s1 0 1 2 f1*(s1) x1* 2 0.4*0.16=0.064 0.2*0.3=0.06 0.15*0.48=0.072 0.060 1 x1*= 1, s2 = 2-1 = 1 x2*= 0, s3 = 1-0 = 1 x3*= 1, f1*(s1) = 0.060 Contoh 1.5
Beban kerja pada suatu perusahaan yang menerapkan local job shop berfluktuasi secara musiman. Namun demikian, terdapat kesulitan untuk mempekerjakan operator-operator mesin dan biaya trainingnya mahal. Karena itu pihak manajer agak segan untuk mengurangi jumlah pekerja selama jumlah permintaan sedikit. Dia lebih menyukai untuk mengeluarkan pembayaran seperti pada saat jumlah permintaan banyak walaupun hal ini tidak diperlukan. Dia juga tidak menyukai kerja lembur. Karena seluruh pekerjaan dilakukan dengan cara-cara biasa, tidaklah dimungkinkan adanya inventori selama jumlah permintaan sedikit. Bagaimana kebijakan yang harus diambil oleh manajer ini ?
Diberikan estimasi jumlah tenaga kerja minimum adalah sbb :
Musim Semi Panas Gugur Dingin Semi
Kebutuhan 255 220 240 200 255
Jumlah pekerja tidak boleh lebih rendah dari kebutuhan di atas. Jika jumlah pekerja melebihi kebutuhan, akan terjadi pemborosan sebesar $2000/orang/musim. Estimasi dari biaya mengangkat dan memecat pegawai sedemikian hingga total biaya dari perubahan jumlah pekerja dari satu musim ke musim berikutnya adalah $200 kali kuadrat beda jumlah / level pekerja. Jumlah pekerja ini mungkin berupa pecahan, karena adanya pekerja paruh waktu, demikian juga dengan upahnya.