pemrograman dinamis dynamic programming · • tentukan solusi optimal dengan backtracking. ti3131...

53
10/8/2009 1 TI3131 Penelitian Operasional II 1 Pemrograman Dinamis (Dynamic Programming) Kuliah 04-05 TI3131 Penelitian Operasional II 2 Materi Pengantar Masalah pemrograman dinamis deterministik Masalah pemrograman dinamis probabilistik

Upload: phungtuong

Post on 05-May-2018

355 views

Category:

Documents


13 download

TRANSCRIPT

Page 1: Pemrograman Dinamis Dynamic Programming · • Tentukan solusi optimal dengan backtracking. TI3131 Penelitian Operasional II 20 Beberapa Contoh Masalah Pemrograman Dinamis Deterministik

10/8/2009

1

TI3131 Penelitian Operasional II 1

Pemrograman Dinamis

(Dynamic Programming)

Kuliah 04-05

TI3131 Penelitian Operasional II 2

Materi

• Pengantar

• Masalah pemrograman dinamis deterministik

• Masalah pemrograman dinamis probabilistik

Page 2: Pemrograman Dinamis Dynamic Programming · • Tentukan solusi optimal dengan backtracking. TI3131 Penelitian Operasional II 20 Beberapa Contoh Masalah Pemrograman Dinamis Deterministik

10/8/2009

2

TI3131 Penelitian Operasional II 3

Pendahuluan

• Pemrograman dinamis (dynamic programming)

merupakan teknik matematis yang dapat berguna

untuk membuat suatu urutan keputusan yang saling

berkaitan.

• Pemrograman dinamis tidak mempunyai rumusan

yang baku.

• Tiap permasalahan memerlukan perumusan tertentu.

• Teknik pemrograman dinamis dikenal juga dengan

multistage programming.

TI3131 Penelitian Operasional II 4

Klasifikasi Pemrograman Dinamis

Status diskret Status kontinyu

Tunggal Majemuk Tunggal Majemuk

Deterministik

Probabilistik

Page 3: Pemrograman Dinamis Dynamic Programming · • Tentukan solusi optimal dengan backtracking. TI3131 Penelitian Operasional II 20 Beberapa Contoh Masalah Pemrograman Dinamis Deterministik

10/8/2009

3

TI3131 Penelitian Operasional II 5

Karakteristik

Masalah Pemrograman Dinamis (1)

• Masalah dapat dibagi atas tahap (stage)

dimana keputusan (decision) harus dibuat pada

tiap tahap.

• Tiap tahap mempunyai sejumlah status (state).

• Efek dari keputusan pada tiap tahap adalah

mengubah status saat ini menjadi status yang

berkaitan dengan tahap berikutnya.

TI3131 Penelitian Operasional II 6

Karakteristik

Masalah Pemrograman Dinamis (2)

• Prosedur pemecahan didesain untuk

mendapatkan kebijakan optimal (optimal

policy) untuk keseluruhan masalah.

• Diberikan status saat ini, kebijakan optimal

untuk tahap tersisa adalah independen terhadap

kebijakan yang diambil dalam tahap

berikutnya (disebut principle of optimality

dari pemrograman dinamis).

Page 4: Pemrograman Dinamis Dynamic Programming · • Tentukan solusi optimal dengan backtracking. TI3131 Penelitian Operasional II 20 Beberapa Contoh Masalah Pemrograman Dinamis Deterministik

10/8/2009

4

Karakteristik

Masalah Pemrograman Dinamis (3)

• Associated with each stage, there is a return function

that evaluates the choice made at each decision in

term of contribution that the decision can make to the

overall objective

• Each stage N the total decision process is related to its

adjoining stage by a quantitative relationship called a

transition function

• A recursive relationship is always used to relate the

optimal policy at stage n to the (n-1) stage.

TI3131 Penelitian Operasional II 7

TI3131 Penelitian Operasional II 8

Pengambilan Keputusan (1)

• Tahap (Stage)

– Titik dimana suatu keputusan dibuat

• Status (State)

– Parameter masukan

• Transformasi (Transformation)

– Aturan yang mengarahkan keputusan

Page 5: Pemrograman Dinamis Dynamic Programming · • Tentukan solusi optimal dengan backtracking. TI3131 Penelitian Operasional II 20 Beberapa Contoh Masalah Pemrograman Dinamis Deterministik

10/8/2009

5

TI3131 Penelitian Operasional II 9

Pengambilan Keputusan (2)

Tahap

Keputusan

Transformasi

KeluaranMasukan

TI3131 Penelitian Operasional II 10

Suatu Tahap Tunggal

nnnn xSrg ,

nx

nS nnS

~

nS = status input (input state)

nS~

= status ouput (output state)

nx = keputusan (decision)

ng = fungsi pengembalian

(return function)

Page 6: Pemrograman Dinamis Dynamic Programming · • Tentukan solusi optimal dengan backtracking. TI3131 Penelitian Operasional II 20 Beberapa Contoh Masalah Pemrograman Dinamis Deterministik

10/8/2009

6

TI3131 Penelitian Operasional II 11

Sistem Banyak-Tahap

(Multi-Stage System)

//

ng

nx

nSn

nS~

//

1g

1S1

1

~S

1x

Ng

Nx

NSN

NS~

1

~ ii SS 1,,2,1 Ni

TI3131 Penelitian Operasional II 12

Prosedur Pemecahan

• Prosedur pemecahan

– Rekursi maju (forward recursion)

– Rekursi mundur (backward recursion)

• Perbedaan prosedur

– Cara mendefinisikan status dalam sistem.

• Prosedur rekursi mundur secara umum lebih

efisien.

Page 7: Pemrograman Dinamis Dynamic Programming · • Tentukan solusi optimal dengan backtracking. TI3131 Penelitian Operasional II 20 Beberapa Contoh Masalah Pemrograman Dinamis Deterministik

10/8/2009

7

TI3131 Penelitian Operasional II 13

Rekursi Maju

//

ng

nx

nSn

nS~

//

1g

1S1

1

~S

1x

Ng

Nx

NSN

NS~

Proses perhitungan mulai dari tahap n = 1

hingga tahap n = N

TI3131 Penelitian Operasional II 14

Rekursi Mundur

//

ng

nx

nSn

nS~

//

1g

1S1

1

~S

1x

Ng

Nx

NSN

NS~

Proses perhitungan mulai dari tahap n = N

hingga tahap n = 1

Page 8: Pemrograman Dinamis Dynamic Programming · • Tentukan solusi optimal dengan backtracking. TI3131 Penelitian Operasional II 20 Beberapa Contoh Masalah Pemrograman Dinamis Deterministik

10/8/2009

8

TI3131 Penelitian Operasional II 15

Fungsi Transisi

(Transition Function)

nnn xSS 1

Rekursi maju :

nnn xSS 1

Rekursi mundur :

TI3131 Penelitian Operasional II 16

Beberapa Contoh Fungsi Transisi

Fungsi Transisi

Maju Mundur

+

-

×

nnn xSS 1

nnn xSS 1

nnn xSS 1

nnn xSS 1

nnn xSS 1

nnn xSS 1

nnn xSS 1

nnn xSS 1

Page 9: Pemrograman Dinamis Dynamic Programming · • Tentukan solusi optimal dengan backtracking. TI3131 Penelitian Operasional II 20 Beberapa Contoh Masalah Pemrograman Dinamis Deterministik

10/8/2009

9

TI3131 Penelitian Operasional II 17

Hubungan Rekursif Maju

NnSfxSrSf nnnnnx

nn

n

,,1 ,,opt 1

*

1

*

nnn xSS 1

00

*

0 Sf

NnSfxSrxSf nnnnnnnn ,,1 ,,, 1

*

1

NnxSfSf nnnn ,,1 ,, **

TI3131 Penelitian Operasional II 18

Hubungan Rekursif Mundur

1,, ,,opt 1

*

1

* NnSfxSrSf nnnnnx

nn

n

1,, ,1 NnxSS nnn

01

*

1 NN Sf

1,, ,,, 1

*

1 NnSfxSrxSf nnnnnnnn

1,, ,, ** NnxSfSf nnnn

Page 10: Pemrograman Dinamis Dynamic Programming · • Tentukan solusi optimal dengan backtracking. TI3131 Penelitian Operasional II 20 Beberapa Contoh Masalah Pemrograman Dinamis Deterministik

10/8/2009

10

TI3131 Penelitian Operasional II 19

Langkah-langkah Pemecahan

• Tentukan prosedur pemecahan (maju atau mundur).

• Tentukan tahap (stage).

• Definisikan variabel status (state) pada tiap tahap.

• Definisikan variabel keputusan pada tiap tahap.

• Definisikan fungsi pengembalian pada tiap tahap.

• Definisikan fungsi transisi.

• Definisikan fungsi rekursif.

• Perhitungan.

• Tentukan solusi optimal dengan backtracking.

TI3131 Penelitian Operasional II 20

Beberapa Contoh Masalah Pemrograman

Dinamis Deterministik

• Stagecoach problem

• Cargo loading problem

• Inventory problem

• Reliability problem

• Nonlinear programming problem

• Linear programming problem

Single-state discrete

deterministic DP

Single-state continuous

deterministic DP

Multiple-state continuous

deterministic DP

Page 11: Pemrograman Dinamis Dynamic Programming · • Tentukan solusi optimal dengan backtracking. TI3131 Penelitian Operasional II 20 Beberapa Contoh Masalah Pemrograman Dinamis Deterministik

10/8/2009

11

TI3131 Penelitian Operasional II 21

Stagecoach problem

A

B

D

E

C

G

F

H

I

J

2

3

3

7

4

6

3

2

4

4

1

5

1

4

6

3

3

3

3

4

TI3131 Penelitian Operasional II 22

A

B

D

E

C

G

F

H

I

J

1 2 3 4

Tahap

n = region (n = 1, 2, 3, 4)

Page 12: Pemrograman Dinamis Dynamic Programming · • Tentukan solusi optimal dengan backtracking. TI3131 Penelitian Operasional II 20 Beberapa Contoh Masalah Pemrograman Dinamis Deterministik

10/8/2009

12

TI3131 Penelitian Operasional II 23

Status:

Sn = simpul saat ini pada tahap n

Variabel keputusan

xn = simpul tujuan berikutnya pada tahap n

Fungsi pengembalian

),( nn xSn cg

nnxS xScnn

simpul ke simpul darijarak ),(

TI3131 Penelitian Operasional II 24

Fungsi transisi (mundur):

Hubungan rekursif (mundur)

nn xS 1

1,,4 ,min 1

*

1),(

* nSfcSf nnxSx

nn nnn

05

*

5 Sf

1,,4 ,min *

1),(

* nxfcSf nnxSx

nn nnn

Page 13: Pemrograman Dinamis Dynamic Programming · • Tentukan solusi optimal dengan backtracking. TI3131 Penelitian Operasional II 20 Beberapa Contoh Masalah Pemrograman Dinamis Deterministik

10/8/2009

13

TI3131 Penelitian Operasional II 25

Tahap n = 4

x4

S4

f4*(S4) x4*

J

H 3 3 J

I 4 4 J

44 ,444 , xScxSf

Perhitungan

05

*

5Sf

TI3131 Penelitian Operasional II 26

Tahap n = 3

x3

S3

f3*(S3) x3*

H I

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

3

*

4,333 33, xfcxSf xS

Page 14: Pemrograman Dinamis Dynamic Programming · • Tentukan solusi optimal dengan backtracking. TI3131 Penelitian Operasional II 20 Beberapa Contoh Masalah Pemrograman Dinamis Deterministik

10/8/2009

14

TI3131 Penelitian Operasional II 27

Tahap n = 2

x2

S2

f2*(S2) x2*E F G

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

2

*

3,222 22, xfcxSf xS

TI3131 Penelitian Operasional II 28

Tahap n = 1

x1

S1

f1*(S1) x1*B C D

A 2 + 11 = 13 4 + 7 = 11 3 + 8 = 11 11 C, D

1

*

2,111 11, xfcdSf xS

Page 15: Pemrograman Dinamis Dynamic Programming · • Tentukan solusi optimal dengan backtracking. TI3131 Penelitian Operasional II 20 Beberapa Contoh Masalah Pemrograman Dinamis Deterministik

10/8/2009

15

TI3131 Penelitian Operasional II 29

n = 1 n = 2 n = 3 n = 4(x1*, x2*, x3*,x4*)

S1 x1* S2 x2* S3 x3* S4 x4*

A C C E E H H J (C, E, H, J)

A D D E E H H J (D, E, H, J)

A D D F F I I J (D, F, I, J)

A C E H J

A D E H J

A D F I J

Backtracking

TI3131 Penelitian Operasional II 30

Cargo Loading Problem

(Knapsack Problem)

Item i Berat wi Nilai, vi

1 2 65

2 3 80

3 1 30

Kapasitas karung = 5

Page 16: Pemrograman Dinamis Dynamic Programming · • Tentukan solusi optimal dengan backtracking. TI3131 Penelitian Operasional II 20 Beberapa Contoh Masalah Pemrograman Dinamis Deterministik

10/8/2009

16

TI3131 Penelitian Operasional II 31

n

i

ii xvZ1

Wxwn

i

ii 1

bulatbilangan dan 0ix

maksimisasi

Integer Linear Programming (ILP) Model

TI3131 Penelitian Operasional II 32

Tahap

n = item (n = 1, 2, 3)

Status:

Sn = pada tahap n, kapasitas yang tersedia

Variabel keputusan

xn = untuk tiap jenis item n, jumlah yang dimuat

Page 17: Pemrograman Dinamis Dynamic Programming · • Tentukan solusi optimal dengan backtracking. TI3131 Penelitian Operasional II 20 Beberapa Contoh Masalah Pemrograman Dinamis Deterministik

10/8/2009

17

TI3131 Penelitian Operasional II 33

Fungsi Pengembalian:

Fungsi Transisi:

Hubungan Rekursif:nnnn xwSS 1

1,2,3 ,max 1

*

1

* nSfxvSf nnnnd

nnn

04

*

4 Sf

1,2,3 ,max *

1

* nxwSfxvSf nnnnnnd

nnn

nnn xvg

TI3131 Penelitian Operasional II 34

Tahap n = 3

x3

S3

f3*(S3) x3*0 1 2 3 4 5

0 0 - - - - - 0 0

1 0 30 - - - - 30 1

2 0 30 60 - - - 60 2

3 0 30 60 90 - - 90 3

4 0 30 60 90 120 - 120 4

5 0 30 60 90 120 150 150 5

33333 , xvxSf

Perhitungan

04

*

4Sf

Page 18: Pemrograman Dinamis Dynamic Programming · • Tentukan solusi optimal dengan backtracking. TI3131 Penelitian Operasional II 20 Beberapa Contoh Masalah Pemrograman Dinamis Deterministik

10/8/2009

18

TI3131 Penelitian Operasional II 35

Tahap n = 2

x2

S2

f2*(S2) x2*0 1

0 0 - 0 0

1 30 - 30 0

2 60 - 60 0

3 90 80 90 0

4 120 110 120 0

5 150 140 150 0

222

*

322222 , xwSfxvxSf

TI3131 Penelitian Operasional II 36

Tahap n = 1

x1

S1

f1*(S1) x1*0 1 2

0 0 - - 0 0

1 30 - - 30 0

2 60 65 - 65 1

3 90 95 - 95 1

4 120 125 130 130 2

5 150 155 160 160 2

111

*

211111 , xwSfxvxSf

Page 19: Pemrograman Dinamis Dynamic Programming · • Tentukan solusi optimal dengan backtracking. TI3131 Penelitian Operasional II 20 Beberapa Contoh Masalah Pemrograman Dinamis Deterministik

10/8/2009

19

TI3131 Penelitian Operasional II 37

n = 1 n = 2 n = 3

(x1*, x2*, x3*)w1 = 2 w2 = 3 w3 = 1

S1 x1* S2 x2* S3 x3*

5 2 1 0 1 1 (2, 0, 1)

nnnn xwSS 1

Backtracking

TI3131 Penelitian Operasional II 38

Masalah Persediaan

(Inventory Problem)

Bulan Okt Nov Des Jan Feb Mar

Permintaan 40 20 30 40 30 20

Permintaan:

Biaya pembelian = $4/unit

Ukuran lot yang dibeli dari pemasok: 10, 20, 30, 40 dan 50

Page 20: Pemrograman Dinamis Dynamic Programming · • Tentukan solusi optimal dengan backtracking. TI3131 Penelitian Operasional II 20 Beberapa Contoh Masalah Pemrograman Dinamis Deterministik

10/8/2009

20

TI3131 Penelitian Operasional II 39

Ukuran lot Diskon (%)

10 4

20 5

30 10

40 20

50 25

Diskon harga

Biaya pesan: tetap = $2, variabel = $8/unit

Kapasitas gudang (persediaan) 40 unit

Biaya simpan = $0.2/unit/bulan (dihitung pada persediaan

pada akhir bulan)

TI3131 Penelitian Operasional II 40

Permasalahan

Menentukan jumlah produk yang dipesan (diorder)

pada tiap bulan yang meminimumkan biaya total

(mencakup biaya pembelian, biaya pesan dan biaya

simpan)

Asumsi:

Persediaan pada awal Oktober dan akhir Maret adalah

nol.

Page 21: Pemrograman Dinamis Dynamic Programming · • Tentukan solusi optimal dengan backtracking. TI3131 Penelitian Operasional II 20 Beberapa Contoh Masalah Pemrograman Dinamis Deterministik

10/8/2009

21

TI3131 Penelitian Operasional II 41

Tahap:

n = bulan (n = 1, 2, …, 6)

Status:

Sn = jumlah persediaan pada awal tahap n

Variabel keputusan:

xn = jumlah produk yang dipesan pada tahap n

TI3131 Penelitian Operasional II 42

Fungsi pengembalian:

(xn) = biaya pembelian dan pemesanan (fungsi dari xn)

hn = biaya simpan pada tahap n

Dn = permintaan pada tahap n

Fungsi transisi:

nnnn DxSS 1

nnnnnn DxShxg

Page 22: Pemrograman Dinamis Dynamic Programming · • Tentukan solusi optimal dengan backtracking. TI3131 Penelitian Operasional II 20 Beberapa Contoh Masalah Pemrograman Dinamis Deterministik

10/8/2009

22

TI3131 Penelitian Operasional II 43

Hubungan rekursif:

6,,1 ,min 1

*

1

* nSfDxShxSf nnnnnnnx

nnn

6,,1 ,min *

1

* nDxSfDxShxSf nnnnnnnnnx

nnn

07

*

7 Sf

TI3131 Penelitian Operasional II 44

Ukuran lotHarga

($/unit)

Diskon

(%)

Biaya

pembelian ($)

Biaya

pesan ($)

Biaya

pembelian

+ pesan ($)

10 4 4 38 10 48

20 4 5 76 10 86

30 4 10 108 10 118

40 4 20 128 10 138

50 4 25 150 10 160

Page 23: Pemrograman Dinamis Dynamic Programming · • Tentukan solusi optimal dengan backtracking. TI3131 Penelitian Operasional II 20 Beberapa Contoh Masalah Pemrograman Dinamis Deterministik

10/8/2009

23

TI3131 Penelitian Operasional II 45

Tahap n = 6

x6

S6

f6*(S6) x6*0 10 20

0 - - 86 86 20

10 - 48 - 48 10

20 0 - - 0 0

6666 , xxSf

06667 DxSS

Perhitungan:

07

*

7Sf

TI3131 Penelitian Operasional II 46

Tahap n = 5

x5

S5

f5*(S5) x5*

0 10 20 30 40 50

0 - - - 204 186 164 164 50

10 - - 172 168 142 - 142 40

20 - 134 136 122 - - 122 30

30 86 98 90 - - - 86 0

40 50 52 - - - - 50 0

555

*

655555555 , DxSfDxShxxSf

Page 24: Pemrograman Dinamis Dynamic Programming · • Tentukan solusi optimal dengan backtracking. TI3131 Penelitian Operasional II 20 Beberapa Contoh Masalah Pemrograman Dinamis Deterministik

10/8/2009

24

TI3131 Penelitian Operasional II 47

Tahap n = 4

x4

S4

f4*(S4) x4*

0 10 20 30 40 50

0 - - - - 302 304 302 40

10 - - - 282 282 286 282 30,40

20 - - 250 262 264 252 250 20

30 - 212 230 244 230 218 218 10

40 164 192 212 210 196 - 164 0

444

*

544444444 , DxSfDxShxxSf

TI3131 Penelitian Operasional II 48

Tahap n = 3

x3

S3

f3*(S3) x3*

0 10 20 30 40 50

0 - - - 420 422 414 414 50

10 - - 388 402 392 384 384 50

20 - 350 370 372 362 332 332 50

30 302 332 340 342 310 - 302 0

40 284 302 310 290 - - 284 0

333

*

433333333 , DxSfDxShxxSf

Page 25: Pemrograman Dinamis Dynamic Programming · • Tentukan solusi optimal dengan backtracking. TI3131 Penelitian Operasional II 20 Beberapa Contoh Masalah Pemrograman Dinamis Deterministik

10/8/2009

25

TI3131 Penelitian Operasional II 49

Tahap n = 2

x2

S2

f2*(S2) x2*

0 10 20 30 40 50

0 - - 500 504 474 468 474 50

10 - 462 472 454 446 452 446 40

20 414 434 422 426 430 - 414 0

30 386 384 394 410 - - 384 10

40 336 356 378 - - - 336 0

222

*

322222222 , DxSfDxShxxSf

TI3131 Penelitian Operasional II 50

Tahap n = 1

x1

S1

f1*(S1) x1*

0 10 20 30 40 50

0 - - - - 606 608 606 40

111

*

211121111 , DxSfDxShxxSf

Page 26: Pemrograman Dinamis Dynamic Programming · • Tentukan solusi optimal dengan backtracking. TI3131 Penelitian Operasional II 20 Beberapa Contoh Masalah Pemrograman Dinamis Deterministik

10/8/2009

26

TI3131 Penelitian Operasional II 51

n = 1 n = 2 n = 3 n = 4 n = 5 n = 6

xn*D1 = 40 D2 = 20 D3 = 30 D4 = 40 D5 = 30 D6 = 20

S1 x1* S2 x2* S3 x3* S4 x4* S5 x5* S6 x6*

0 40 0 50 30 0 0 40 0 50 20 0 (40, 50, 0, 40, 50, 0)

nnnn DxSS 1

Backtracking

TI3131 Penelitian Operasional II 52

Masalah Keandalan

(Reliability Problem)

Komponen I Komponen II Komponen III

Permasalahan: Menentukan jumlah unit paralel yang dipasang

pada tiap komponen agar diperoleh reliabilitas sistem yang maksimum

dengan mempertimbangkan dana yang tersedia.

Page 27: Pemrograman Dinamis Dynamic Programming · • Tentukan solusi optimal dengan backtracking. TI3131 Penelitian Operasional II 20 Beberapa Contoh Masalah Pemrograman Dinamis Deterministik

10/8/2009

27

TI3131 Penelitian Operasional II 53

Jumlah unit

paralel yang

dipasang, k

Komponen

I II III

r1 c1 r2 c2 r3 c3

1 0,6 1 0,7 3 0,5 2

2 0,8 2 0,8 5 0,7 4

3 0,9 3 0,9 6 0,9 5

ri = reliabilitas komponen i (diberikan jumlah unit paralel k)

ci = biaya pemasangan komponen i (diberikan jumlah unit paralel k)

[dalam jutaan rupiah]

Dana yang tersedia untuk perancangan sistem = Rp 10 juta

TI3131 Penelitian Operasional II 54

• Tahap

– Jenis komponen (n = 1, 2, 3)

• Status

– Untuk tiap tahap n, status Sn adalah banyaknya dana yang tersedia yang dapat dialokasikan pada tahap n

• Variabel keputusan

– Untuk tiap tahap (komponen) n, keputusan adalah xn adalah banyaknya unit paralel yang dipasang.

Page 28: Pemrograman Dinamis Dynamic Programming · • Tentukan solusi optimal dengan backtracking. TI3131 Penelitian Operasional II 20 Beberapa Contoh Masalah Pemrograman Dinamis Deterministik

10/8/2009

28

TI3131 Penelitian Operasional II 55

• Fungsi pengembalian:

• Fungsi transisi:

• Hubungan rekursif:

nnn xrg

nnnn xcSS 1

1,2,3 ,max 1

*

1

* nSfxrSf nnnnx

nnn

14

*

4 Sf

1,2,3 ,max *

1

* nxcSfxrSf nnnnnnx

nnn

TI3131 Penelitian Operasional II 56

Tahap n = 3

x3

S3

f3*(S3) x3*r3 = 0,5;

c3 = 2

r3 = 0,7;

c3 = 4

r3 = 0,9;

c3 = 5

1 2 3

2 0,5 - - 0,5 1

3 0,5 - - 0,5 1

4 0,5 0,7 - 0,7 2

5 0,5 0,7 0,9 0,9 3

6 0,5 0,7 0,9 0,9 3

33333 , xrxSf

Perhitungan

14

*

4Sf

Page 29: Pemrograman Dinamis Dynamic Programming · • Tentukan solusi optimal dengan backtracking. TI3131 Penelitian Operasional II 20 Beberapa Contoh Masalah Pemrograman Dinamis Deterministik

10/8/2009

29

TI3131 Penelitian Operasional II 57

Tahap n = 2

x2

S2

f2*(S2) x2*r2 = 0,7;

c2 = 3

r2 = 0,8;

c2 = 5

r2 = 0,9;

c2 = 6

1 2 3

5 0,35 - - 0,35 1

6 0,35 - - 0,35 1

7 0,49 0,40 - 0,49 1

8 0,63 0,40 0,45 0,63 1

9 0,63 0,56 0,45 0,63 1

222

*

322222 , xcSfxrxSf

TI3131 Penelitian Operasional II 58

Tahap n = 1

x1

S1

f1*(S1) x1*r1 = 0,6;

c1 = 1

r1 = 0,8;

c1 = 2

r1 = 0,9;

c1 = 3

1 2 3

6 0,210 - - 0,210 1

7 0,210 0,280 - 0,280 1

8 0,294 0,280 0,315 0,315 3

9 0,378 0,392 0,315 0,392 2

10 0,378 0,504 0,441 0,504 2

111

*

211111 , xcSfxrxSf

Page 30: Pemrograman Dinamis Dynamic Programming · • Tentukan solusi optimal dengan backtracking. TI3131 Penelitian Operasional II 20 Beberapa Contoh Masalah Pemrograman Dinamis Deterministik

10/8/2009

30

TI3131 Penelitian Operasional II 59

n = 1 n = 2 n = 3

(x1*, x2*, x3*)c3 = 2 c2 = 3 c1 = 1

S1 x1* S2 x2* S1 x1*

10 2 8 1 5 3 (2, 1, 3)

nnnn xcSS 1

TI3131 Penelitian Operasional II 60

Nonlinear Programming Problem (1)

32

2

1 32 xxxZ

iii xSS 31

ii Sx 0

maksimisasi

dengan pembatas-pembatas:

Page 31: Pemrograman Dinamis Dynamic Programming · • Tentukan solusi optimal dengan backtracking. TI3131 Penelitian Operasional II 20 Beberapa Contoh Masalah Pemrograman Dinamis Deterministik

10/8/2009

31

TI3131 Penelitian Operasional II 61

Nonlinear Programming Problem (2)

Tahap n = 3

3333 3, xxSf

30

*

3 3max33

xSfSx

3

*

3 Sx 33

*

3 3SSf

TI3131 Penelitian Operasional II 62

Nonlinear Programming Problem (3)

Tahap n = 2

3

*

32222 2, SfxxSf

22

*

320

*

3 32max22

xSfxSfSx

0*

2x

22

*

32 32 xSfx

2220

392max22

xSxSx

220

9max22

xSSx

22

*

2 9SSf

Page 32: Pemrograman Dinamis Dynamic Programming · • Tentukan solusi optimal dengan backtracking. TI3131 Penelitian Operasional II 20 Beberapa Contoh Masalah Pemrograman Dinamis Deterministik

10/8/2009

32

TI3131 Penelitian Operasional II 63

Nonlinear Programming Problem (4)

Tahap n = 1

2

*

2

2

1333 , SfxxSf

11

*

1

2

10

*

1 3max11

xSfxSfSx

11

*

2

2

1 3 xSfx

11

2

10

927max11

xSxSx

TI3131 Penelitian Operasional II 64

Nonlinear Programming Problem (5)

27S1

9/17

convex fungsi 279 11

2

1 Sxxf

Page 33: Pemrograman Dinamis Dynamic Programming · • Tentukan solusi optimal dengan backtracking. TI3131 Penelitian Operasional II 20 Beberapa Contoh Masalah Pemrograman Dinamis Deterministik

10/8/2009

33

TI3131 Penelitian Operasional II 65

Nonlinear Programming Problem (6)

Kebijakan keputusan optimal:

0*

11 xS

3

*

11 SxS

3

*

11 atau 0 SxS

Titik diperoleh melalui:

9 27927 11

2

11 SS

TI3131 Penelitian Operasional II 66

Nonlinear Programming Problem (7)

9 ,18

9 ,27

11

2

1

11

1

*

1SSS

SSSf

Kebijakan keputusan optimal tersedia untuk

sebarang status masukan S1.

Page 34: Pemrograman Dinamis Dynamic Programming · • Tentukan solusi optimal dengan backtracking. TI3131 Penelitian Operasional II 20 Beberapa Contoh Masalah Pemrograman Dinamis Deterministik

10/8/2009

34

TI3131 Penelitian Operasional II 67

Nonlinear Programming Problem (8)

S1 x1* x2* x3* f1*(S1)

3 27 0 0 81

6 54 0 0 162

9 81(54) 0 0(9) 243

12 72 0 12 360

Nilai solusi untuk beberapa nilai status masukan S1.

TI3131 Penelitian Operasional II 68

Pemrograman Linier

(Linear Programming)

21 53 xxZ

41 x

122 2 x

0, 21 xx

dengan pembatas-pembatas:

Maksimisasi

1823 21 xx

Page 35: Pemrograman Dinamis Dynamic Programming · • Tentukan solusi optimal dengan backtracking. TI3131 Penelitian Operasional II 20 Beberapa Contoh Masalah Pemrograman Dinamis Deterministik

10/8/2009

35

TI3131 Penelitian Operasional II 69

• Tahap:

n = aktivitas (n = 1, 2)

• Status:

Jumlah ketersediaan masing-masing sumber

pada tahap n (Pn, Qn, Rn) yang dapat

dialokasikan untuk tahap (aktivitas) n, n + 1,…

• Variabel keputusan

xn = jumlah dari aktivitas n

TI3131 Penelitian Operasional II 70

Tahap n = 2

22

*

222 ,min

RQx

2222222 ;,, xcxRQPf

2

2

2222

*

2 5max,,

22

22

xRQPf

Rx

Qx

Page 36: Pemrograman Dinamis Dynamic Programming · • Tentukan solusi optimal dengan backtracking. TI3131 Penelitian Operasional II 20 Beberapa Contoh Masalah Pemrograman Dinamis Deterministik

10/8/2009

36

TI3131 Penelitian Operasional II 71

Tahap n = 1

111111111222 ,,,, xaRxaQxaPRQP rqp

11 318,12,4 xx

2

318

212

22222

*

2122 ,min5,min5,,

xRQRQPf

222

*

21111111 ,,;,, RQPfxcxRQPf

TI3131 Penelitian Operasional II 72

2

318

212

1111111,min53;,

xxxRQPf

42 ,95

20 ,653

1123

1

1xx

xx

42 ,45

20 ,303

11215

1

1xx

xx

Page 37: Pemrograman Dinamis Dynamic Programming · • Tentukan solusi optimal dengan backtracking. TI3131 Penelitian Operasional II 20 Beberapa Contoh Masalah Pemrograman Dinamis Deterministik

10/8/2009

37

TI3131 Penelitian Operasional II 73

42 ,45

20 ,303max,,

11215

1

140

111

*

11 xx

xxRQPf

x

42 ,45

20 ,303max

1129

11

40 1 xx

xx

x

36,,

2

111

*

1

*

1

QRPf

x

TI3131 Penelitian Operasional II 74

2*

1 x

12)2(318

12

224

2

2

2

R

Q

P

6,min2

122

12*

2 x

Page 38: Pemrograman Dinamis Dynamic Programming · • Tentukan solusi optimal dengan backtracking. TI3131 Penelitian Operasional II 20 Beberapa Contoh Masalah Pemrograman Dinamis Deterministik

10/8/2009

38

TI3131 Penelitian Operasional II 75

Pemrograman Dinamis Probabilistik

• Dalam pemrograman dinamis probabilistik

(probabilistic dynamic programming), status

pada tahap berikutnya ditentukan oleh:

– Status dan keputusan saat ini

– Probabilitas dari status berikutnya

TI3131 Penelitian Operasional II 76

Struktur Dasar

Pemrograman Dinamis Probabilistik

Sn xn

1

2

S

.

.

.

p1

p2

pS nnn xSf ,

Status:Keputusan

Tahap n Tahap n + 1

C1

C2

CS

1*

1nf

2*

1nf

Sfn

*

1

Probabilitas

Page 39: Pemrograman Dinamis Dynamic Programming · • Tentukan solusi optimal dengan backtracking. TI3131 Penelitian Operasional II 20 Beberapa Contoh Masalah Pemrograman Dinamis Deterministik

10/8/2009

39

TI3131 Penelitian Operasional II 77

• Hubungan antara fn(Sn, xn) dengan f*n+1(Sn+1)

bergantung pada bentuk dari fungsi tujuan

secara keseluruhan.

• Contoh: tujuan adalah meminimumkan jumlah

ekspektasi kontribusi dari tahap individual

• fn(Sn, xn) menunjukkan jumlah ekspektasi

minimum dari tahap n ke depan, dengan

diberikan status dan keputusan pada tahap n

masing-masing Sn dan xn.

TI3131 Penelitian Operasional II 78

1,, ,,1

*

1 NnifCpdSfS

i

niinnn

11

*

1 ,min1

nnx

n xififn

dengan

• Akibatnya,

Page 40: Pemrograman Dinamis Dynamic Programming · • Tentukan solusi optimal dengan backtracking. TI3131 Penelitian Operasional II 20 Beberapa Contoh Masalah Pemrograman Dinamis Deterministik

10/8/2009

40

TI3131 Penelitian Operasional II 79

Beberapa Contoh Masalah Pemrograman

Dinamis Deterministik

• Reject allowance

• Permainan

TI3131 Penelitian Operasional II 80

Reject Allowances

• Perusahaan menerima order untuk membuat

satu item dari suatu jenis produk tertentu.

• Karena pemesan menetapkan standar kualitas

yang ketat, perusahaan harus memproduksi

lebih dari item agar produk dapat diterima.

• Jumlah tambahan item yang diproduksi disebut

reject allowance.

Page 41: Pemrograman Dinamis Dynamic Programming · • Tentukan solusi optimal dengan backtracking. TI3131 Penelitian Operasional II 20 Beberapa Contoh Masalah Pemrograman Dinamis Deterministik

10/8/2009

41

TI3131 Penelitian Operasional II 81

• Perusahaan mengestimasi bahwa tiap item yang

diproduksi dapat diterima dengan probabilitas sebesar 1/2 dan cacat (tanpa dapat dirework) dengan

probabilitas sebesar 1/2.

• Jumlah item yang diproduksi yang dapat diterima dari

suatu ukuran lot L mempunyai distribusi binomial.

• Probabilitas memproduksi item yang tak

diterima dari suatu lot adalah (½)L

TI3131 Penelitian Operasional II 82

• Biaya produksi satuan = $100 per item.

• Kelebihan item = tak bernilai.

• Biaya set-up = $300 per production run.

• Production run berikutnya dilakukan apabila belum dapat diperoleh item yang diterima

• Perusahaan mempunyai kesempatan untuk membuat item hingga tiga kali production run.

• Jika pada akhir production run belum diperoleh item yang dapat diterima maka perusahaan akan kehilangan pendapatan dan dikenakan biaya penalti sebesar $1600.

Page 42: Pemrograman Dinamis Dynamic Programming · • Tentukan solusi optimal dengan backtracking. TI3131 Penelitian Operasional II 20 Beberapa Contoh Masalah Pemrograman Dinamis Deterministik

10/8/2009

42

TI3131 Penelitian Operasional II 83

• Permasalahan: Menentukan kebijakan optimal

terhadap ukuran lot (1 + reject allowance)

untuk production run yang diperlukan yang

meminimasi ekspektasi biaya total bagi

perusahaan.

TI3131 Penelitian Operasional II 84

Perumusan Pemrograman Dinamis

• Tahap

n = production run (n = 1, 2, 3)

• Status

Sn = jumlah item yang acceptable yang masih

dibutuhkan (1 atau 0) jika mulai dari tahap n

• Variabel keputusan

xn = ukuran lot untuk tahap n

Page 43: Pemrograman Dinamis Dynamic Programming · • Tentukan solusi optimal dengan backtracking. TI3131 Penelitian Operasional II 20 Beberapa Contoh Masalah Pemrograman Dinamis Deterministik

10/8/2009

43

TI3131 Penelitian Operasional II 85

Pada tahap 1

• Status S1 = 1

• Jika paling sedikit satu item yang dapat

diterima diperoleh berikutnya, status berubah

ke Sn = 0, dimana tidak ada tambahan biaya

yang diperlukan.

TI3131 Penelitian Operasional II 86

fn(Sn, xn) = ekspektasi biaya total untuk tahap

n, …, 3 jika sistem mulai dalam

status Sn pada tahap n keputusan

xn

dengan

f*n(0) = 0

nnnx

nn xSfSfn

,min,1,0

*

Page 44: Pemrograman Dinamis Dynamic Programming · • Tentukan solusi optimal dengan backtracking. TI3131 Penelitian Operasional II 20 Beberapa Contoh Masalah Pemrograman Dinamis Deterministik

10/8/2009

44

TI3131 Penelitian Operasional II 87

Kontribusi biaya dari tahap n (tanpa memandang status

berikutnya)

= K(xn) + 100xn

dimana K(xn) adalah fungsi dari xn

K(xn) = 0 jika xn = 0

= 300 jika xn > 0

TI3131 Penelitian Operasional II 88

011100,1 *

121*

121*

n

x

n

x

nnnn ffxxKxf nn

Untuk Sn = 1,

f4*(1) = 1600, biaya akhir jika tidak ada item yang dapat

diterima yang diperoleh setelah tahap ke-3.

1100 *

121

n

x

nn fxxK n

Page 45: Pemrograman Dinamis Dynamic Programming · • Tentukan solusi optimal dengan backtracking. TI3131 Penelitian Operasional II 20 Beberapa Contoh Masalah Pemrograman Dinamis Deterministik

10/8/2009

45

TI3131 Penelitian Operasional II 89

11min1 *

121

,1,0

*

n

x

nx

n fxKf n

n

Hubungan rekursif

untuk n = 1, 2, 3

TI3131 Penelitian Operasional II 90

Tahap n = 3

x3

S3

f3* x3*

0 1 2 3 4 5

0 0 0 0

1 1600 1200 900 800 800 850 8003 atau

4

3

21

33333 1600100,x

xxKxSf

Page 46: Pemrograman Dinamis Dynamic Programming · • Tentukan solusi optimal dengan backtracking. TI3131 Penelitian Operasional II 20 Beberapa Contoh Masalah Pemrograman Dinamis Deterministik

10/8/2009

46

TI3131 Penelitian Operasional II 91

Tahap n = 2

x2

S2

f2*(x2) x2*

0 1 2 3 4

0 0 0 0

1 800 800 700 700 750 7002 atau

3

1100, *

321

222222 fxxKxSf

x

TI3131 Penelitian Operasional II 92

Tahap n = 1

x1

S1

f1*(x1) x1*

0 1 2 3 4

1 700 750 675 687.5 743.75 675 2

1100, *

221

111111 fxxKxSf

x

Page 47: Pemrograman Dinamis Dynamic Programming · • Tentukan solusi optimal dengan backtracking. TI3131 Penelitian Operasional II 20 Beberapa Contoh Masalah Pemrograman Dinamis Deterministik

10/8/2009

47

TI3131 Penelitian Operasional II 93

Production run Kebijakan optimal (optimal policy)

1 Memproduksi 2 item

2Jika tidak ada item yang acceptable maka produksi

sebanyak 2 atau 3 item

3Jika ada tidak ada item yang acceptable maka produksi

3 atau 4 item

Ekspektasi biaya dari kebijakan = $675

TI3131 Penelitian Operasional II 94

Permainan

• Diberikan suatu permainan mirip Russian Roulette

yang memutar sebuah lingkaran yang diberi n angka

berurutan, yaitu antara 1 hingga n.

• Probabilitas bahwa lingkaran akan berhenti pada

suatu angka j setelah satu putaran adalah pi.

• Seorang membayar $x untuk permainan sebanyak m

putaran.

• Payoff kepada pemain adalah dua kali angka yang

dihasilkan dalam putaran terakhir.

• Tentukan strategi optimal bagi pemain.

Page 48: Pemrograman Dinamis Dynamic Programming · • Tentukan solusi optimal dengan backtracking. TI3131 Penelitian Operasional II 20 Beberapa Contoh Masalah Pemrograman Dinamis Deterministik

10/8/2009

48

TI3131 Penelitian Operasional II 95

• Tahap n dinyatakan sebagai putaran (n = 1, ..,

m)

• Status j dari sistem pada tahap i dinyatakan

sebagai salah satu angka dari 1 hingga n yang

diperoleh pada putaran terakhir.

• Alternatif keputusan pada tiap tahap mencakup

baik pemutaran sekali lagi atau menghentikan

permainan.

TI3131 Penelitian Operasional II 96

Misal

fi(j) = Ekspektasi return untuk permainan pada

tahap (putaran) i dengan hasil putaran terakhir

adalah j

= 2j, jika permainan berakhir

jika permainan berlanjut)(1

1 kfpn

k

ik

Page 49: Pemrograman Dinamis Dynamic Programming · • Tentukan solusi optimal dengan backtracking. TI3131 Penelitian Operasional II 20 Beberapa Contoh Masalah Pemrograman Dinamis Deterministik

10/8/2009

49

TI3131 Penelitian Operasional II 97

Hubungan rekursif :

jjfm 21

n

k

k kfpf1

21 0

mi

kfp

j

jfn

k

kik

i ,,1,

berlanjutpermainan jika

berhentipermainan jika2

max

1

TI3131 Penelitian Operasional II 98

• Pada saat putaran pertama (i = 1), status sistem adalah

j = 0 (permainan dimulai)

• Maka f1(0) = p1f2(1) + p2f2(2) + ... + pnf2(n)

• Pada putaran terakhir (i = m), permainan harus

berhenti tanpa memandang bagaimana hasil j pada

putaran ke-m. Sehingga,

fm+1(j) = 2j

• f1(0) diperoleh dari perhitungan rekursif, yang

merupakan ekspektasi return dari m putaran.

• Net return adalah f1(0) - x

Page 50: Pemrograman Dinamis Dynamic Programming · • Tentukan solusi optimal dengan backtracking. TI3131 Penelitian Operasional II 20 Beberapa Contoh Masalah Pemrograman Dinamis Deterministik

10/8/2009

50

TI3131 Penelitian Operasional II 99

1 2

3

m-1

m

Berhenti

Berhenti

Berhenti

Putar

Putar

PutarBerhenti

Putar

m+1

TI3131 Penelitian Operasional II 100

• Contoh numerik

– Lingkaran diberi angka berurutan mulai dari 1

hingga 5.

– Probabilitas bahwa lingkaran akan berhenti pada

nomor j adalah sebagai berikut:

p1 = 0,3; p2 = 0,25; p3 = 0,20; p4 = 0,15; p5 = 0,10

– Pemain membayar $5 untuk permainan sebanyak 4

putaran.

– Tentukan strategi optimal dari empat putaran untuk

memaksimumkan net return.

Page 51: Pemrograman Dinamis Dynamic Programming · • Tentukan solusi optimal dengan backtracking. TI3131 Penelitian Operasional II 20 Beberapa Contoh Masalah Pemrograman Dinamis Deterministik

10/8/2009

51

TI3131 Penelitian Operasional II 101

Tahap n = 5

d5

S5

f5*(S5) d5*Berhenti

1 2 2 Berhenti

2 4 4 Berhenti

3 6 6 Berhenti

4 8 8 Berhenti

5 10 10 Berhenti

f5*(S5) = 2j

f5(S5,d5)

TI3131 Penelitian Operasional II 102

Tahap n = 4

d4

jf4*(S4) d3*

Berhenti Putar

1 2 5 5 Putar

2 4 5 5 Putar

3 6 5 6 Berhenti

4 8 5 8 Berhenti

5 10 5 10 Berhenti

f4*(S4) = max{2j, p1f5(1) + p2f5(2) + p3f5(3) + p4f5(4 + p5f5(5)}

= max{2j, 5}

f4(S4,d4)

Page 52: Pemrograman Dinamis Dynamic Programming · • Tentukan solusi optimal dengan backtracking. TI3131 Penelitian Operasional II 20 Beberapa Contoh Masalah Pemrograman Dinamis Deterministik

10/8/2009

52

TI3131 Penelitian Operasional II 103

d3

S3

f3*(S3) d3*

Berhenti Putar

1 2 6,15 6.15 Putar

2 4 6,15 6.15 Putar

3 6 6,15 6.15 Putar

4 8 6,15 8.00 Berhenti

5 10 6,15 10.00 Berhenti

Tahap n = 3

f3(S3,d3)

TI3131 Penelitian Operasional II 104

Tahap n = 2

d2

S2

f2*(S2) x2*

Berhenti Putar

1 2 6,8125 6,8125 Putar

2 4 6,8125 6,8125 Putar

3 6 6,8125 6,8125 Putar

4 8 6,8125 8,0000 Berhenti

5 10 6,8125 10,0000 Berhenti

f2(S2,d2)

Page 53: Pemrograman Dinamis Dynamic Programming · • Tentukan solusi optimal dengan backtracking. TI3131 Penelitian Operasional II 20 Beberapa Contoh Masalah Pemrograman Dinamis Deterministik

10/8/2009

53

TI3131 Penelitian Operasional II 105

Tahap n = 1

d1

S1

f1*(S1) d1*

Putar

0 7,31 7,31 Putar

f1(S1,d1)

TI3131 Penelitian Operasional II 106

Putaran Strategi optimal

1 Permainan mulai, putar

2Lanjutkan jika putaran 1 menghasilkan 1, 2 atau 3; jika tidak

berhenti

3Lanjutkan jika putaran 2 menghasilkan 1, 2 atau 3; jika tidak

berhenti.

4Lanjutkan jika putaran 3 menghasilkan 1 atau 2; jika tidak

berhenti

Ekspektasi pendapatan bersih = 7.31 – 5 = 2.31