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 dari tahap k ke

12 

Loading.... (view fulltext now)

Loading....

Loading....

Loading....

Loading....

Teks penuh

(1)

PROGRAM DINAMIS

(DYNAMIC PROGRAMMING)

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.

Program Dinamis

(lebih dr 1 Greedy

Lintasan terpendek dari 1 ke 10.

3

1 3

2

4

5

6

7

8

9

10

7

2

4

3

1

3

4

5

3 3

3 6 4

1 4 6

4 3

2

4

Greedy: 1 – 2 – 6 – 9 – 10 dengan cost= 2 + 4 + 3 + 4 = 13

Program Dinamis: akan dijelaskan kemudian

Karakteristik penyelesaian persoalan

terdapat sejumlah berhingga pilihan yang mungkin,

solusi pada setiap tahap dibangun

dari hasil solusi tahap sebelumnya,

menggunakan persyaratan optimasi dan kendala untuk membatasi sejumlah

pilihan yang harus dipertimbangkan pada suatu tahap.

(2)

5

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 kke tahap k+ 1, kita dapat menggunakan hasil optimal dari tahap ktanpa harus kembali ke tahap awal. ongkos pada tahap k+1 = (ongkos yang dihasilkan pada tahap k) + (ongkos dari tahap kke tahap k+ 1)

Dengan prinsip optimalitas ini dijamin bahwa pengambilan keputusan pada suatu tahap adalah keputusan yang benar untuk tahap-tahap

selanjutnya.

Pada metode greedyhanya 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

Bagi persoalan menjadi beberapa tahap (stage), yang dapat diambil satu keputusan.

Tiap tahap terdiri dari sejumlah status (state) yang merupakan bermacam kemungkinan masukan yang ada pada tahap tersebut.

Keputusan yang diambil pada setiap tahap ditransformasikan dari status yang bersangkutan ke status berikutnya pada tahap berikutnya.

Ongkos (cost) pada suatu tahap meningkat secara teratur (steadily) dengan bertambahnya jumlah tahapan sehinggga bergantung pada ongkos tahap sebelumnya dan tahap tersebut.

Keputusan terbaik pada suatu tahap bersifat independen terhadap keputusan yang dilakukan pada tahap sebelumnya.

Adanya hubungan rekursif yang

mengidentifikasikan keputusan terbaik untuk setiap status pada tahapkmemberikan keputusan terbaik untuk setiap status pada tahapk+ 1.

(3)

Graf multitahap(multistage graph).

1

3 2

4

6

7

8

9

11 10

5

12

V1 V2 V3 V4 V5

Tiap simpul di dalam graf tersebut menyatakan status, sedangkanV1, V2, … menyatakan tahap.

Dua pendekatan PD

• Program dinamis bergerak mulai dari tahap 1, terus maju ke tahap 2, 3, dan seterusnya sampai tahap

n. Runtunan peubah keputusan adalahx1, x2, …, xn.

Maju

(

forward

)

• Program dinamis bergerak mulai dari tahapn, terus mundur ke tahap

n– 1, n– 2, dan seterusnya sampai tahap 1. Runtunan peubah keputusan adalahxn, xn-1, …, x1.

Mundur

(

backward

).

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.

Penyelesaian dengan Program Dinamis Mundur

Misalkan x1, x2, …, x4 adalah simpul-simpul yang dikunjungi pada tahap k(k= 1, 2, 3, 4).

(4)

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.

Kasus 1:

Cari waktu/jarak terpendek

1 2 3 4

Time to 4 prior time Total Time Best Time

R4

Time to 3 prior time Total Time Best Time

(5)

Stage 2 (state)

Alternative route

Time to 3 Best time Total Time Best Time

Base Base

Waktu tercepat adalah 7 jam

KASUS-KASUS PROGRAM

DINAMIS

Tinjau graf di bawah ini. Kita ingin menemukan lintasan terpendek dari 1 ke 10.

1 3

(6)

Tahap 4:

(7)

Solusi optimum dapat dibaca pada tabel di bawah ini:

x1 x2 x3 x4 Panjang Lintasan

Terpendek

1 3

4 5

5

6 8

8

9 10

10

10 11

11

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.

Kasus 2

Sebuah kapal mempertimbangkan untuk memuat barang dimana setiap barang i memiliki berat wi dan nilai vi seperti terlihat dalam tabel dibawah. Beban muatan maksimum adalah 5 ton.

Tentukan barang yang akan dimuat sedemikian hingga dapat memaksimumkan nilai barang yang diangkut

i wi vi

1 2 65

2 3 80

3 1 30

Maksimumkan k1v1 + k2v2 + k3v3 ki integer non negatif

Batasan k1w1 + k2w2 + k3w3≤ 5

Persamaan rekursif mundur

fj(yj) = nilai optimal tahap j, j+1,…,N jika keadaannya yj fj(yn) = max (vjkj+fj+1(yj - wjkj ), j=1,2,….N-1

kj = 0, 1,…yj/wj yj= 0,1,….W

Tahap 3 f3(y3)=30k3, max k3=[5/1]=5

y3 30 k3 Pemecahan

optimum

K3=0 1 2 3 4 5 F3(y3) K3*

V3k3=0 30 60 90 120 150

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

(8)

Tahap 2

f2(y2)=max [80k2+f3(y2-3k2)], max k2=[5/3]=1

y2 80k2+f3(y2-3k2) Pemecahan optimum

K2=0 1 f2(y2) K2*

V2k2=0 80

0 0+0=0 0 0

1 0+30=30 30 0*

2 0+60=60 60 0

3 0+90=90 80+0=80 90 0

4 0+120=12

0

80+30=110 120 0

5 0+150=15

0

80+60=140 150 0

Tahap 1: max [65k1 + f2(y1-2k1)], max k1= [5/2]=2

y1 65k1 + f2(y1-2k1)

K1=0 1 2 f1(y1) k1

V1k1=0 65 130

0 0+0=0 0 0

1 0+30=30 30 0

2 0+60=60 65+0=65 65 1 3 0+90=90 65+30=95 95 1 4 0+120=12

0

65+60=12 5

130+0=13

0 130 2

5 0+150=15 0

65+90=15 5

130+30=1

60 160 2*

Pemecahan optimal yang berhubungan adalah (k1*,k2*,k3*)=(2,0,1)

Penganggaran Modal

(

Capital Budgeting

)

Sebuah perusahaan berencana akan

mengembangkan usaha (proyek) melalui ketiga buah pabrik (plant) yang dimilikinya. Setiap pabrik diminta mengirimkan proposal (boleh lebih dari satu) ke perusahaan untuk proyek yang akan dikembangkan. Setiap proposal memuat total biaya yang dibutuhkan (c) dan total keuntungan (revenue) yang akan

(9)

Tabel berikut meringkaskan nilai cdan Runtuk masing-masing proposal proyek. Proposal proyek bernilai-nol sengaja dicantumkan yang berarti tidak ada alokasi dana yang diberikan ntuk setiap pabrik. Tujuan Perusahaan adalah memperoleh keuntungan yang maksimum dari pengalokasian dana sebesar Rp 5 milyar tersebut. Selesaikan persoalan ini dengan program dinamis.

Peubah status yang terdapat pada tahap 1, 2, dan 3:

x1 = ∑ modal yang dialokasikan pada tahap 1

x2 = ∑ modal yang dialokasikan pada tahap 1 dan 2

x3 = ∑ modal yang dialokasikan pada tahap 1, 2, dan 3

x3

x2 x1

Tahap 1 Tahap 2 Tahap 3

Kemungkinan nilai-nilai untuk x1 dan x2 adalah 0, 1, 2, 3, 4, 5 (milyar), sedangkan nilai untuk x3 adalah 5

Pabrik 1 Pabrik 2 Pabrik 3 Proyek c1 R1 c2 R2 c3 R3

1 0 0 0 0 0 0

2 1 5 2 8 1 3

3 2 6 3 9 - -

4 - - 4 12 - -

Penyelesaian dengan Program Dinamis Maju.

Misalkan,

Rk(pk) = keuntungan dari alternatif pkpada tahap k

(10)

Relasi rekurens keuntungan optimal:

Relasi rekurens keuntungan optimal menjadi

(11)

Tahap 3

2 , 1) ( 3 3

3 3 3 3 max ) (

= ≤

=

p p x c x

f {R3(p3) + f2[(x3 – c3(p3)]},

R3(p3) + f2[(x3 – c3(p3)] Solusi Optimal

x3 p3 = 1 p3 = 2 f3(x3) p3 *

5 0 + 17 = 17 3 + 14 = 17 17 1 atau 2

Rekonstruksi solusi:

x3 p3* x2 p2* x1 p1* (p1*, p2*,

p3*)

1 1

2

(5 – 0 = 5)

(5 – 1 = 4) 4

2

3

(5 – 4 = 1)

(4 – 2 = 2)

(4 – 3 = 1) 2

3

3

(2, 4, 1)

(3, 2, 2)

(2, 3, 2) Pabrik 1 Pabrik 2 Pabrik 3

Proyek c1 R1 c2 R2 c3 R3

1 0 0 0 0 0 0

2 1 5 2 8 1 3

3 2 6 3 9 - -

4 - - 4 12 - -

Kasus 3

Diketahui permintaan produk A dalam 3 bulan kedepan adalah 3, 7, dan 5 unit. Persediaan saat ini tercatat sebanyak 2 dan persediaan yang sama juga harus ada setelah 3 bulan.

tentukan jumlah produksi yang meminimalkan biaya total jika :

biaya inventori per bulan adalah 3 + 2 Xi biaya produksi per bulan adalah 16 pi –pi^2

Dimana xi produk yang tersedia dan pi adalah banyaknya produk yang dihasilkan pada i

Tentukan biaya total minimal dari kasus berikut:

Batas: 2≤p≤7,

P1 P2 P3

X0=2 X1 X2 X3=2

S1=3 S2=7 S2=5

(12)

Montly inventory cost (ICi) = 3 + 2Xi Montly production cost (PCi)= 16Pi – Pi^2 Montly Total Cost TC =ICi + PCi

Xi-1 + Pi = Si+Xi Xi-1 = Xi - Pi + Si

Fungsi Tujuan Min{Ci + Pci-1 }

Xi ICi Pi PCi

0 3 2 28

1 5 3 39

2 7 4 48

3 9 5 55

4 11 6 60

5 13 7 63

6 15

7 17

Pi Xi

2 3 4 5 6 7 TC3 Pi* S3 X3*

0 66 66 7 5 2

1 65 65 6 5 2

2 62 62 5 5 2

3 57 57 4 5 2

4 50 50 3 5 2

5 41 41 2 5 2

Stage 3

Pi Xi

2 3 4 5 6 7 TC2 Pi* S2 X2*

1 131 133 131 6 7 0

2 128 132 132 128 5 7 0

3 123 129 131 129 123 4 7 0

4 116 124 128 128 123 116 3 7 0

5 107 117 123 125 123 117 107 2 7 0

6 108 116 120 120 116 - 108 2 7 1

Pi Xi

2 3 4 5 6 7 TC1 Pi* S1 X1*

2 166 174 178 178 174 178 166 2 3 1

Stage 2

Stage 1

Solusi

Stage Xi-1* pI* Si* Xi* ICi PCi Ci*

1 2 2 3 1 7 28 35

2 1 6 7 0 5 60 65

3 0 7 5 2 3 63 66

Total Cost

Figur

Memperbarui...

Referensi

Memperbarui...