Anda di halaman 1dari 14

14/08/2020

Program Dinamis
(Dynamic Programming)
AMT 21-466

Ratna Herdiana

CAPAIAN:
• Mahasiswa mampu mengaplikasikan teori pemrograman dinamik
deterministik dan probabilistik dan
• memecahkan masalah nyata serta mengusulkan solusi penyelesaian suatu
masalah

DESKRIPSI SINGKAT:
• Mata kuliah ini berisi materi tentang cara menyelesaikan masalah-masalah
nyata menggunakan pendekatan progam dinamik yang diklasifikasikan
menjadi program dinamik deterministik dan program dinamik probabilistik.
Buku: Wayne L. Winston: Operations Research Applications and Algorithm 4th
edition (Bab 18, 19)

1
14/08/2020

Rencana Pembahasan (Minggu 1 – 7)


1. Pendahuluan Program Dinamis
Pemilihan jalur terpendek/ termurah (Shortest path)
2. Pendistribusian tenaga kerja optimal
3. Penjadwalan produksi barang
4. Model ukuran tenaga kerja (Workforce size)
5. Model Investasi
6. Masalah 0/1 Knapsack
7. Presentasi tugas

Minggu 1

Program Dinamis

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

2
14/08/2020

Program Dinamik
Pada penyelesaian persoalan dengan metode ini:

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 di bawah ini. Kita ingin menemukan lintasan


terpendek dari simpul 1 ke simpul 10.

7
2 5
1
2 4 3 4
6 8 3
6
4
1 3 2 6 3 10

3 9 4
4
3 1
4
3
4 7
5

3
14/08/2020

Prinsip Optimalitas
• 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.

• ongkos pada tahap k +1 = (ongkos yang dihasilkan pada


tahap k ) + (ongkos proses dari tahap k ke tahap k + 1)

4
14/08/2020

• 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. Hanya
rangkaian keputusan yang memenuhi prinsip optimalitas
yang akan dihasilkan.

Karakteristik Persoalan Program Dinamis

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


pada setiap tahap hanya diambil satu keputusan (decision).

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.

10

5
14/08/2020

Graf multitahap (multistage graph). Tiap simpul di dalam graf tersebut


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

V1 V2 V3 V4 V5

9
6

7 10 12
1

4
8
11

11

3. Hasil dari keputusan yang diambil pada setiap tahap


ditransformasikan dari status yang bersangkutan ke status
berikutnya pada tahap berikutnya.

4. Ongkos/bobot (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.

12

6
14/08/2020

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.

13

• Memiliki dua macam variabel yaitu :


1.Variabel Keputusan 𝑋𝑖 : keputusan yang diambil pada tahap 𝑖
𝑖 = 1, 2, 3, … , 𝑁
2.Variabel Keadaan 𝑆𝑖 : kedudukan pada saat memasuki tahap 𝑖
𝑖 = 1, 2, 3, … , 𝑁
• Dimana 𝑁 menyatakan banyaknya tahap atau disebut Horizon.

• Karena keputusan yang diambil pada tiap tahap tergantung pada


keadaannya pada tahap tersebut, pada tahap tersebut akan
diperoleh hasil yang nilainya merupakan fungsi dari 𝑋𝑖 dan 𝑆𝑖 .
14

7
14/08/2020

𝐶𝑖 𝑋𝑖 , 𝑆𝑖 atau Hasil yang diperoleh dari tahap 𝑖 karena mengambil


Cs,xi keputusan 𝑋𝑖 pada saat berada pada keadaan 𝑆𝑖
𝑖 = 1, 2, 3, … , 𝑁

𝑆1 𝑑𝑎𝑛 𝑆𝑁+1 syarat batas yang nilainya diketahui

𝑆 adalah Ruang Keadaan (State Space) yaitu himpunan semua


nilai yang dapat dimiliki oleh 𝑆𝑆1 , 𝑆2 , … . 𝑆𝑁 2 , … . 𝑆𝑁

Persoalannya adalah menentukan nilai 𝑋𝑖 sedemikian hingga


hasil total dari semua tahap adalah optimum.

15

Program Dinamik
Dapat diilustrasikan sebagai berikut:

diketahui 𝑋1 𝑋2 𝑋𝑖 𝑋𝑖+1 𝑋𝑁 diketahui

𝑆1 𝑆2 𝑆𝑖 𝑆𝑖+1 𝑆𝑁 𝑆𝑁+1
1 2 i i+1 N

𝐶1 (𝑋1 , 𝑆1 ) 𝐶2 (𝑋2 , 𝑆2 ) 𝐶𝑖 (𝑋𝑖 , 𝑆𝑖 ) 𝐶𝑖+1 (𝑋𝑖+1 , 𝑆𝑖+1 ) 𝐶𝑁 (𝑋𝑁 , 𝑆𝑁 )


𝑓𝑖 (𝑆𝑖 ) 𝑓𝑖+1 (𝑆𝑖+1 )

16

8
14/08/2020

𝑓𝑖 𝑆𝑖 Hasil total yang optimal dari tahap-


tahap 𝑖, 𝑖 + 1, … , 𝑁 bila pada tahap 𝑖 berada
pada keadaan 𝑆𝑖 .

𝑓𝑖 𝑆𝑖 = 𝑜𝑝𝑡 𝐶𝑖 𝑋𝑖 , 𝑆𝑖 + 𝑓𝑖+1 𝑆𝑖+1

yang merupakan persamaan rekursif mundur mulai dari 𝑖 = 𝑁 sampai


dengan 𝑖 = 1

Yang dicari adalah 𝑋1 , 𝑋2 , … , 𝑋𝑁


Hasil akhirnya adalah 𝑓1 (𝑆1 ) yaitu hasil akhir yang optimum
Syarat awal adalah 𝑓𝑁+1 𝑆𝑁+1 = 0
Yang diketahui adalah 𝑆1 , 𝑆𝑁+1 , 𝐶𝑖 𝑋𝑖 , 𝑆𝑖 untuk 𝑖 = 1, 2,.., N
17

Dua pendekatan PD

• Dua pendekatan yang digunakan dalam PD:


maju (forward atau up-down) dan
mundur (backward atau bottom-up).

18

9
14/08/2020

• Misalkan x1, x2, …, xn menyatakan peubah (variable) keputusan yang


harus dibuat masing-masing untuk tahap 1, 2, …, n.
Maka,

1. 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.
2. 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.

19

Langkah-langkah Pengembangan 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.

20

10
14/08/2020

Lintasan Terpendek (Shortest Path)


• Tentukan lintasan terpendek dari simpul 1 ke simpul 10:

7
2 5
1
2 4 3 4
6 8 3
6
4
1 3 2 6 3 10

3 9 4
4
3 1
4
3
4 7
5

21

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,


• Tahap (k) adalah proses memilih simpul tujuan berikutnya (ada 4 tahap).

• Status (s) yang berhubungan dengan masing-masing tahap adalah


simpul-simpul di dalam graf.

22

11
14/08/2020

Relasi rekurens berikut menyatakan lintasan terpendek


dari status s ke x4 pada tahap k:
f ( s)  c
4 sx4
(basis)
f ( s )  min{c  f ( x )} ,
k xk sx k k 1 k
(rekurens)
k = 1, 2, 3

Keterangan:
a. xk : peubah keputusan pada tahap k (k = 1, 2, 3).
b. c : bobot (cost) sisi dari s ke xk
sx k

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

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

24

12
14/08/2020

Tahap 3:
f ( s )  min{c  f ( x )}
3 x3 sx 3 4 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

25

Tahap 2:
f ( s )  min{c  f ( x )}
2 x2 sx 2 3 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

26

13
14/08/2020

Tahap 1:
f ( s )  min{c  f ( x )}
1 x1 sx1 2 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

27

Solusi optimum dapat dibaca pada tabel di bawah ini:

x1 x2 x3 x4 Panjang Lintasan
Terpendek
3 5 8 10 11
1
5 8 10 11
4
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
Panjang ketiga lintasan tersebut sama, yaitu 11.
28

14

Anda mungkin juga menyukai