Anda di halaman 1dari 14

PROGRAMA DINAMIS

DEFINISI PROGRAMA DINAMIS

Programa dinamis adalah suatu teknik matematis yang biasanya digunakan


untuk membuat suatu keputusan dari serangkaian keputusan yang saling
berkaitan

Tujuan utama model ini adalah untuk mempermudah penyelesaian persoalan


optimasi yang mempunyai karateristik tertentu.

Ide dasar programa dinamis ini ialah membagi persoalan menjadi beberapa
bagian yang lebih sehingga memudahkan penyelesaiannya,namun pada
programa dinamis ini tidak ada formulasi matematis yang standar sehingga
persamaan yang terpilih harus dikembangkan agar dapat memenuhi masing
masing situasi yang dihadapi.

ILUSTRASI PROGRAMA DINAMIS

Seorang salesman harus berangkat dari satu kota ke kota lain nya,diantara kota
asal dan kota tujuan itu terdapat beberapa kota lain yang dapat digunakan
sebagai tempat persinggahan sementara kota kota yang dapat dilewati itu dapat
digambarkan sebagai berikut

1 1
1

1
1 1 1

1 1

Meskipun kota awal dan kota akhir diketahui,untuk setiap kota yang akan
ditempuhnya salesman tersebut memiliki beberapa alternatif dengan ongkos
yang berbeda
Dari persoalan diatas ada 4 tahap yang harus dijalani untuk melakukan
perjalanan dari kota asal di 1 ke tujuan di 10 untuk dapat menyelesaikan
persoalan ini ,pertama harus diingat bahwa keputusan terbaik yang dibuat pada
suatu stage belum tentu menghasilkan keputusan optimum secara menyeluruh
berdasarkan strategi pemilihan ini maka rute yang akan memberikan ongkos
terkecil ialah 1→2→6→9→10 dengan ongkos 13 akan tetapi jika dia mau sedikit
berkorban pada salah satu stage maka akan diperoleh penghematan yang lebih
besar sebagai contoh:1→4→6 lebih murah dari pada 1→2→6.

Salah satu pendekatan yang dapat dilakukan untuk menyelesaikan persoalan ini
ialah dengan menggunakan cara coba coba akan tetapi jumlah rute yang dapat
dillalui cukup banyak sehingga menghitung ongkos total untuk masing masing
rute itu dapat diselesaikan dengan sederhana.

Pemecahan persoalan dengan program dinamis ini dimulai dengan


menggunakan bagian kecil dari suatu persoalan dan mencari solusi optimumnya
kemudian bagian persoalan itu di perluas sedikit demi sedikit dan dicari solusi
optimumnya yang baru

Demikian seterusnya hingga persoalan asal terpecahkan secara lengkap

Tetapkan variabel variabel keputusan xn sebagai tempat tempat


persinggahan pada stage n(n=1,2,3,4)

Maka rute yang dijalani adalah 1→x1→x2→x3→x4,dimana x4 adalah kota 10 atau


x4 =10 selanjut nya tentukan variabel berikut:

1.fn (s,xn)=ongkos yang harus dibayar jika salesman itu berada dikota s dan
memilih xn sebagai tempat persinggahan berikutnya.

2.untuk s dan n tertentu xn adalah nilai xn yang meminimumkan dari fn(s,xn).

3.fn (s)nilai minimum dari fn(s,xn)sehingga fn(s)=fn(s,xn)

Tujuannya adalah untuk mendapatkan f1(1)dengan cara mencari


f4(s),f3(s)f2(s)terlebih dahulu,jadi programa dinamis menyelesaikan suatu
persoalan dengan melakukan perhitungan mundur walaupun untuk persoalan
tertentu bisa dengan perhitungan maju.

Jika hanya dengan satu stage lagi yang harus dijalani oleh salesman itu maka ute
sepenuhnya ditentenukan oleh tujuan akhirnya
Jika salesman itu masih mempunyai 2 stage lagi yang harus dijalani maka
solusinya memerlukan sedikit perhitungan sebagai contoh asumsikan bahwa
salesman itu berada pada kota 5 selanjutnya dia harus pergi apakah ke stage 8 /
state 9 dengan ongkos masing masing 1 dan 4 jika ia memilih state 8
penambahan ongkos minimumnya adalah seperti pada tabel diatas yaitu 3 maka
dengan demikian maka ongkos total untuk keputusan ini adalah 1±3=4 begitu
juga jika ia memilih state 9 maka ongkos totalnya adalah 4+4=8

Dengan cara yang sama kita hitung untuk s=6 dan s =7 sehingga hasil
keseluruhan dari persoalan dengan dua stage ini adalah :

Solusi untuk persoalan dengan 3 stage dapat diperoleh dengan cara yang sama
dalam kasus ini f2(s,x2)=cs1x2+f3(x2) sebagai contoh jika salesman berada
pada state 2 dan akan ke state 5 maka ongkos total minimum f2(2,5) adalah
ongkos pada stsge pertama (c25=7) ditambah dengan ongos minimum dari
stage 5 ke depan yaitu f3(5) =4sehingga f2(2,5)=7+4=11

KARATERISTIK PROGRAMA DINAMIS

Persoalan salesman pada ilustrasi diatas merupakan contoh model dasar


dari persoalan programa dinamis persoalan tersebut dirancang untuk
memberikan suatu interprestasi secara fisik dari struktur yang abstrak dari
persoalan programa dinamis oleh karna itu salah satu cara menggenal situasi
yang dapat diformulasikan sebagai persoalan programa dinamis ini ialah dengan
memperhatikan bahwa struktur dasar perasoalan programa dinamis ini
merupakan analogi dari persoalan salesman diatas.

Gambaran dasar yang menandai persoalan programa dinamis;

1.persoalan dapat dibagi menjadi beberapa tahap yang pada masing masing
stage diperlukan adanya satu keputusan .

2.masing- masing stage terdiri atas sejumlah state yang berhubungan dengan
stage yang bersangkutan.

3.hasil dari kepetusan yang diambil pada setiap state di tranpormasikan dari
state yang bersangkutan ke state berikutnya pula.

4.keputusan terbaik pada suatu state bersipat independen terhadap keputusan


yang dilakukan pada stage berikutnya

5.prosedur pemecahan persoalan dimulai dengan mendapatkan cara terbaik


untuk setiap stage dari state terakhir.
6.ada suatu hubungan timbal balik yang mengidenfitasikan keputusan terbaik
untuk setiap state pada setiap n

7.dengan menggunakan hubungan timbal balik ini ,prosedur penyelesain


persoalan bergerak mundur stage demi stage.

Suatu cara untuk mengategorikan persoalan programa dinamisdeterministik ini


adalah dengan melihat bentuk fungsi tujuannya,sebagai contoh mungkin
meminimumkan jumlah kontribusidari masing-masing stage,cara pengategorian
yang lain didasarkan pada keadaan dari kumpulan state pada suatu stage.

MAKALAH
TEKNIK RISET OPERASIONAL
II

Program Dinamis
(Dynamic Programming)

Disusun oleh:

NAMA :ROLAND ENGGARIO


NIM :0817.3004
FAKULTAS TEKNIK
INDUSTRI
UNIVERSITAS BINA DARMA
2010

Program Dinamis (dynamic programming): metode
pemecahan masalah dengan cara menguraikan solusi
menjadi sekumpulan langkah (step) atau tahapan (stage)
sedemikian sehingga solusi dari persoalan dapat
dipandang dari serangkaian keputusan yang saling
berkaitan.

• Pada penyelesaian persoalan dengan metode ini [3]:


(1) terdapat sejumlah berhingga pilihan yang mungkin,
(2) solusi pada setiap tahap dibangun dari hasil solusi
tahap sebelumnya,
(3) kita menggunakan persyaratan optimasi dan kendala
untuk membatasi sejumlah pilihan yang harus
dipertimbangkan pada suatu tahap.

• Tinjau graf pada Gambar 9.1. Kita ingin menemukan


lintasan terpendek dari 1 ke 10.
GAMBAR GRAF UNTUK PERSOALAN
LINTASAN TERPENDEK

• Pada program dinamis, rangkaian keputusan yang optimal


dibuat dengan menggunakan Prinsip Optimalitas.

• Prinsip Optimalitas: jika solusi total optimal, maka bagian


solusi sampai tahap ke-k juga optimal.

• Prinsip optimalitas berarti bahwa jika kita bekerja dari


tahap k ke tahap k + 1, kita dapat menggunakan hasil
optimal dari tahap k tanpa harus kembali ke tahap awal.

• Jika pada setiap tahap kita menghitung ongkos (cost),


maka dapat dirumuskan bahwa

2
ongkos pada tahap k +1 =

(ongkos yang dihasilkan pada tahap k ) +

(ongkos dari tahap k ke tahap k + 1)

• Dengan prinsip optimalitas ini dijamin bahwa pengambilan


keputusan pada suatu tahap adalah keputusan yang
benar untuk tahap-tahap selanjutnya.
Pada metode greedy hanya satu rangkaian keputusan yang
pernah dihasilkan, sedangkan pada metode program dinamis
lebih dari satu rangkaian keputusaN

Karakteristik Persoalan Program Dinamis

1. Persoalan dapat dibagi menjadi beberapa tahap (stage), yang


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.

Graf multitahap (multistage graph). Tiap simpul di dalam


graf tersebut menyatakan status, sedangkan V1, V2, …
menyatakan tahap.

V 1
Gambar 9.2 Graf yang menyatakan tahap (stage) dan status
(state)

3.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.

• Dua pendekatan yang digunakan dalam PD: maju (forward


atau up-down) dan mundur (backward atau bottom-up).
• Misalkan x1, x2, …, xn menyatakan peubah (variable)
keputusan yang harus dibuat masing-masing untuk tahap
1, 2, …, n. Maka,
a. Program dinamis maju. Program dinamis bergerak
mulai dari tahap 1, terus maju ke tahap 2, 3, dan
seterusnya sampai tahap n. Runtunan peubah
keputusan adalah x1, x2, …, xn.

b. Program dinamis mundur. Program dinamis bergerak


mulai dari tahap n, terus mundur ke tahap n – 1, n –
2, dan seterusnya sampai tahap 1. Runtunan peubah
keputusan adalah xn, xn-1, …, x1.

• Secara umum, ada empat langkah yang dilakukan dalam


mengembangkana algoritma program dinamis:
1. Karakteristikkan struktur solusi optimal.
2. Definisikan secara rekursif nilai solusi optimal.
3. Hitung nilai solusi optimal secara maju atau mundur.
4. Konstruksi solusi optimal.

Contoh Persoalan 1: Lintasan Terpendek (Shortest Path)

Tentukan lintasan terpendek dari simpul 1 ke simpul 10:


Penyelesaian dengan Program Dinamis Mundur

Misalkan x1, x2, …, x4 adalah simpul-simpul yang dikunjungi


pada tahap k (k = 1, 2, 3, 4).

Maka rute yang dilalui adalah 1→x1→x2→x3→x4 , yang dalam hal


ini x4 = 10.

Pada persoalan ini,

1. Tahap (k) adalah proses memilih simpul tujuan berikutnya


(ada 4 tahap).
2. Status (s) yang berhubungan dengan masing-masing tahap
adalah simpul-simpul di dalam graf.

Relasi rekurens berikut menyatakan lintasan terpendek dari


status s ke x4 pada tahap k:
f ( s) = c
4 sx4 (basis)

f s)( = m {c + f (xi ) n }
k xk s k x k + 1 k
, (rekurens)

k = 1, 2, 3

Keterangan:

a. xk : peubah keputusan pada tahap k (k = 1, 2, 3).

b. c sx k : bobot (cost) sisi dari s ke xk


c. fk(s, xk) : total bobot lintasan dari s ke xk

d. fk(s) : nilai minimum dari fk(s, xk)

Tujuan program dinamis mundur: mendapatkan f1(1) dengan cara mencari f4(s),
f3(s), f2(s) terlebih dahulu.

Tahap 4:
f ( s) = c
4 sx 4

Solusi Optimum

s f4(s) x4*

8 3 10
9 4 10

Catatan: xk* adalah nilai xk yang meminimumkan fk(s, xk).

Tahap 3:

(sf )= m {c + f (x )i n}
3 x s3 x 4 3
3

x3 f3(s, x3) = cs,x3 + f4(x3) Solusi Optimum

s 8 9 f3(s) x3*

5 4 8 4 8
6 9 7 7 9
7 6 7 6 8
Tahap 2:

(sf ) = m {c + f (x )i n}
2 x s2 x 3 2
2

x2 f2(s, x2) = cs,x2 + f3(x2) Solusi Optimum

s 5 6 7 f2(s) x2*

2 11 11 12 11 5 atau 6
3 7 9 10 7 5
4 8 8 11 8 5 atau 6

Tahap 1:

(sf ) = m {c + f (x )i n}
1 x s1 x 2 1
1

x1 f1(s, x1) = cs,x1 + f2(x1) Solusi Optimum

s 2 3 4 f1(s) x1*

1 13 11 11 11 3 atau 4

Solusi optimum dapat dibaca pada tabel di bawah ini:


x1 x2 x3 x4 Panjang Lintasan
Terpendek
3 5 8 10 11

5 8 10 11

6 9 10 11

Jadi ada tiga lintasan terpendek dari 1 ke 10, yaitu

1 → 3 → 5 → 8 → 10
1 → 4 → 5 → 8 → 10

1 → 4 → 6 → 9 → 10

yang mana panjang ketiga lintasan tersebut sama, yaitu 11.

Contoh soal programa dinamis diterministik


Badan kesehatan WHO bermaksud akan menyempurnakan pelayanan
kesehatan di negara-negara yang sedang berkembang,saat ini who mempenyai 5
team kesehatan yang harus ditempatkan di tempatkan di tiga negara untuk
menyempurnakan pelayanan kesehatan,pendidikan kesehatan dan programa
latihan dengan demikian maka who harus menentukan berapa team yang harus
ditempatkan di tiap –tiap negara sehigga keefektifan total dari kelima team itu
dapat dimaksimumkan sebagai ukuran dari keefektifan ini ialah pertambahan
umur
Tabel berikut ini adalah taksiran pertambahan umur dalam satuan ribu untuk
tiap negara dan tiap alokasi team yang mungkin dilakukan.

Persoalan ini memerlukan pembuatan tiga buah keputusan yang saling


berhubungan yaitu berapa jumlah team kesehatan yang harus dialokasikan pada
ketiga negara itu.
Karena nya walaupun tidak ada suatu rangkaian yang tetap ketiga negara ini
dapat di anggap sebagai 3 stage dalam formulasi programa dinamis dimana
variabel keputusan xn(n =1,2,3)merupakan jumlah team yang dialokasikan pada
stage negara n
Untuk menentukan statenya kita harus dapat menjawab pertanyaan berikuts