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

  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

  Program Dinamis Greedy

  (DYNAMIC PROGRAMMING) (lebih dr 1 3 Lintasan terpendek dari 1 ke 10.

  Program Dinamis

  7

  2

  1

  4

  3

  2

  4

5 Karakteristik penyelesaian persoalan

  8

  6

  3

  6

  4 menggunakan

  2

  1

  3

  6 10

  3 persyaratan solusi pada setiap optimasi dan

  9

  3

  4

  4 terdapat sejumlah

  3

  1

  4 tahap dibangun kendala untuk berhingga pilihan

  3

  4

  7 dari hasil solusi membatasi sejumlah

  5 yang mungkin, tahap sebelumnya, pilihan yang harus dipertimbangkan pada suatu tahap.

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

  Greedy cost

  Program Dinamis: akan dijelaskan kemudian

5 Program dinamis

  Dengan prinsip optimalitas ini dijamin bahwa Rangkaian keputusan yang optimal dibuat dengan pengambilan keputusan pada suatu tahap adalah menggunakan Prinsip Optimalitas. keputusan yang benar untuk tahap-tahap Prinsip Optimalitas: jika solusi total optimal, maka selanjutnya. bagian solusi sampai tahap ke-k juga optimal.

  Prinsip optimalitas berarti bahwa jika kita bekerja dari Pada metode greedy hanya satu rangkaian tahap k ke tahap k + 1, kita dapat menggunakan hasil keputusan yang pernah dihasilkan, sedangkan pada optimal dari tahap k tanpa harus kembali ke tahap awal. metode program dinamis lebih dari satu rangkaian ongkos pada tahap k +1 = (ongkos yang dihasilkan keputusan. Hanya rangkaian keputusan yang pada tahap k ) + (ongkos dari tahap k ke tahap k + 1) memenuhi prinsip optimalitas yang akan dihasilkan.

  Karakteristik Persoalan Program Dinamis Ongkos (cost) pada suatu tahap meningkat secara teratur B agi persoalan menjadi beberapa tahap (steadily) dengan bertambahnya jumlah tahapan sehinggga bergantung pada ongkos tahap sebelumnya

  (stage), yang dapat diambil satu keputusan. dan tahap tersebut.

  Keputusan terbaik pada suatu tahap bersifat independen terhadap keputusan yang dilakukan Tiap tahap terdiri dari sejumlah status (state) pada tahap sebelumnya. yang merupakan bermacam kemungkinan masukan yang ada pada tahap tersebut.

  Adanya hubungan rekursif yang mengidentifikasikan keputusan terbaik untuk setiap status pada tahap k memberikan keputusan terbaik untuk setiap status pada tahap k + 1. Keputusan yang diambil pada setiap tahap ditransformasikan dari status yang

  Prinsip optimalitas berlaku pada persoalan bersangkutan ke status berikutnya pada tersebut. tahap berikutnya.

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

  Mundur (backward).

  → x3

  → x2

  1 → x1

  Maka rute yang dilalui adalah

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

  4. Konstruksi solusi optimal.

  3. Hitung nilai solusi optimal secara maju atau mundur.

  2. Definisikan secara rekursif nilai solusi optimal.

  1. Karakteristikkan struktur solusi optimal.

  Langkah-langkah Pengembangan Algoritma Program Dinamis

  1 .

  Graf multitahap (multistage graph).

  , …, x

  , x n-1

  n – 1, n – 2, dan seterusnya sampai tahap 1. Runtunan peubah keputusan adalah x n

  Maju (forward)

  2 , …, x n .

  1 , x

  n. Runtunan peubah keputusan adalah x

  Dua pendekatan PD

  2 , … menyatakan tahap.

  1 , V

  1 3 2 4 6 7 8 9 11 10 5 12 V 1 V 2 V 3 V 4 V 5 Tiap simpul di dalam graf tersebut menyatakan status, sedangkan V

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

  4

  3 3*

  Stage 2 (state)

  Alternative route Time to 3 prior time Total Time Best Time

  R1 R2 R3 R1 R4 R1 R5 R2 R5 R2 R6 R3 R6

  2

  1

  2

  1

  2

  3

  3

  3

  3

  3

  6

  4

  5

  4

  5

  4 4*

  4

  3

  Kasus 1: Cari waktu/jarak terpendek

  Stage 3 (state)

  1

  2

  3

  4 Stage 4

  Rest stop Alternative route Time to peak B 1est time

  R7 R8 R7 Peak R8 Peak

  3

  2

  3 2*

  Alternative route Time to 4 prior time Total Time Best Time

  5

  R4 R5 R6 R4 R7 R5 R7 R5 R8 R6 R8

  1

  2

  1

  1

  3

  3

  2

  2

  4

  5

  1

  Waktu tercepat adalah 7 jam

  Stage 2 (state) Alternative route Time to 3 Best time Total Time Best Time

  4

  4

  3

  5

  dari status s ke x

  2

  4 pada tahap k: 4 ) ( 4 sx = c s f (basis) )} ( { min ) ( 1 k k sx x k x f c s f k k

  , (rekurens) k = 1, 2, 3

  KASUS-KASUS PROGRAM DINAMIS Tinjau graf di bawah ini. Kita ingin menemukan lintasan terpendek dari 1 ke 10.

  Hasil : Base – R2 – R6 – R8 - Peak

  7

  8 7*

  7

  8

  5

  4

  4

  3

  3

  4

  Base Base R1 Base R2 Base R3

  2

  • =

  10

  2

  2 (s) terlebih dahulu.

  3 (s), f

  4 (s), f

  1 (1) dengan cara mencari f

  d. f k (s) : nilai minimum dari f k (s, x k ) Tujuan program dinamis mundur: mendapatkan f

  ) : total bobot lintasan dari s ke x k

  (s, x k

  c. f k

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

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

  Keterangan:

  1

  3

  4

  6

  4

  7

  6

  4

  1

  8

  6

  3

  3

  3

  5

  4

  3

  9

  3

4 Relasi rekurens berikut menyatakan lintasan terpendek

  Tahap 3:

  f ( s ) min { c f ( x )} 3 = sx x 3 3 4 3 f ( s ) c 4 = sx 4 x f (s, x ) = c + f (x ) Solusi Optimum

  • Tahap 4:

  3

  3 3 s ,x3

  4

  3

  s

  • Solusi Optimum

  8 9 f (s) x

  3

  3

  • s f (s) x

  5 1+3=4 4+4=8

  4

  8

  4

  4 6 6+3=9 3+4=7

  7

  9

  8

  3

  10 7 3+3=6 3+4=7

  6

  8

  9

  4

  10

  • Catatan: x k adalah nilai x k yang meminimumkan f k (s, x k ).

  Tahap 2:

  • f ( s ) min { c f ( x )} 2 sx
  • 3 2 = x 2 2 Tahap 1
  • f ( s ) min { c f ( x )} 1 = sx
  • 2 1 x 2 f 2 (s, x 2 ) = c s ,x2 + f 3 (x 2 ) Solusi Optimum x 1 1<

    • s

  5

  6 7 f (s) x

  2

  2

  2 7+4=11 4+7=11 6+6=12 11 5 atau 6

  x 1 f 1 (s, x 1 ) = c s ,x1 + f 2 (x 1 ) Solusi Optimum

  3 3+4=7 2+7=9 4+6=10

  7

  5

  • 4 4+4=8 1+7=8 5+6=11

  8 5 atau 6

  s

  2

  3 4 f (s) x

  1

  1 1 2+11= 7+4=1 3+8=11 11 3 atau 4

  13

  1 Solusi optimum dapat dibaca pada tabel di bawah ini:

  x

  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.

  2 x

  3 x

  1 x

4 Panjang Lintasan

  3

  60

  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

  1

  30 30 1*

  2

  30

  60

  30 Maksimumkan k1v1 + k2v2 + k3v3

  30

  5

  60 90 120 150 150

  30

  5

  4

  60 90 120 120

  4

  2

  3

  90

  90

  60

  30

  3

  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+f j+1( yj - wjkj ), j=1,2,….N-1

  1

  4

  3

  5

  5

  6

  8

  8

  9

  10

  10

  10

  11

  11

  11 Jadi ada tiga lintasan terpendek dari 1 ke 10, yaitu

  1

  →

  →

  3

  Tentukan barang yang akan dimuat sedemikian hingga dapat memaksimumkan nilai barang yang diangkut i w i vi

  80

  Terpendek

  2

  65

  2

  1

  1

  5

  10 Panjang ketiga lintasan tersebut sama, yaitu 11.

  10 1 → 4 → 6 → 9 →

  10 1 → 4 → 5 → 8 →

  →

  8

  →

  3 Tahap 2 Tahap 1: max [65k1 + f2(y1-2k1)], max k1= f2(y2)=max [80k2+f3(y2-3k2)], max k2=[5/3]=1 [5/2]=2 y2 80k2+f3(y2-3k2) Pemecahan optimum y1 65k1 + f2(y1-2k1)

  K2=0 1 f2(y2) K2* K1=0

  1 2 f1(y1) k1 V2k2=0

  80 V1k1=0 65 130 0+0=0

  0+0=0

  1 0+30=30 30 0*

  0+30=30

  1

  30 2 0+60=60

  60

  0+60=60 65+0=65

  2

  65

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

  90

  0+90=90 65+30=95

  3

  95

  1 4 0+120=12 80+30=110 120

  0+120=12 65+60=12 130+0=13

  4 130

  2

  5 0+150=15 65+90=15 130+30=1

  5 0+150=15 80+60=140 150 5 160 2*

  5

  60 Penganggaran Modal (Capital Budgeting)

  Sebuah perusahaan berencana akan Pemecahan optimal yang berhubungan adalah mengembangkan usaha (proyek) melalui ketiga buah (k1*,k2*,k3*)=(2,0,1) 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 diperoleh (R) dari pengembangan usaha itu. Perusahaan menganggarkan Rp 5 milyar untuk alokasi dana bagi ketiga pabriknya itu. Tabel berikut meringkaskan nilai c dan R untuk 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: x

  1

  (x k

  ) = keuntungan dari alternatif p k pada tahap k f k

  (p k

  Misalkan, R k

  3 9 - - 4 - - 4 12 - - Penyelesaian dengan Program Dinamis Maju.

  6

  2

  3

  3

  1

  8

  2

  5

  2

  1 = ∑ modal yang dialokasikan pada tahap 1 x

  1

  3

  3 R

  2 c

  2 R

  1 c

  1 R

  Pabrik 1 Pabrik 2 Pabrik 3 Proyek c

  3 adalah 5

  1 Tahap 1 Tahap 2 Tahap 3 Kemungkinan nilai-nilai untuk x 1 dan x 2 adalah 0, 1, 2, 3, 4, 5 (milyar), sedangkan nilai untuk x

  2 x

  3 x

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

  2 = ∑ modal yang dialokasikan pada tahap 1 dan 2 x

  ) = keuntungan optimal dari tahap 1, 2, …, dan k yang diberikan oleh status x k

  ≤ =

  ) + f k

  (p k

  ) max ( {R k

  )} (basis) k k k x p c k k x f

  1

  (p

  1

  {R

  • – c
    • 1

  ≤ = ) (

  • – 1 = x
  • c

  ) c(p k ) adalah biaya untuk alternatif p k pada tahap k.

  Relasi rekurens keuntungan optimal menjadi 1 1 1 ) ( 1 1 ) max ( x p c x f

  k (p k

  k (p k

  k

  Catatan: 1. x k

  {R k (p k ) + f k -1 (x k -1 ) } (rekurens) k = 2, 3

  1 )} (basis) k p proposal feasible k k x f _ ) max ( =

  1 (p

  = {R

  Relasi rekurens keuntungan optimal: 1 _ 1 1 max ) ( p proposal feasible x f

  )] } (rekurens) k = 2, 3

  [x k

2. Proposal p k dikatakan layak (feasible) jika biayanya, c (p k ), tidak melebihi nilai status x k pada tahap k.

  2 p

  = p x p c x f

  {R 2 (p 2 ) + f 1 [(x 2 – c 2 (p 2 )]}, R

  2 (p 2 ) + f 1 [(x 2 – c 2 (p 2 )] Solusi Optimal x

  • 0 + 0 = 0 - - -

  2 3 0 + 6 = 6 8 + 5 = 13 9 + 0 = 9 -

  2 = 1 p

  6

  6

  3 Tahap 2 4 , 3 , 2 , 1 ) ( 2 2 2 2 2 2 ) max ( =

  4

  17

  2 4 0 + 6 = 6 8 + 6 = 14 9 + 5 = 14 12 + 0 = 12 14 2 atau 3 5 0 + 6 = 6 8 + 6 = 14 9 + 6 = 15 12 + 5 = 17

  13

  2 = 2 p

  8

  2 = 3 p

  2 = 4 f

  5

  2 (x 2 ) p

  2

  1 1 0 + 5 = 5 - - -

  5

  1 2 0 + 6 = 6 8 + 0 = 8 - -

  5

  3

  Tahap 1 3 , 2 , 1 ) ( 1 1 1 1 1 1 ) max (

  2

  = ≤ = p x p c x f {R

  1 (p

  1 )}

  R 1 (p 1 ) Solusi Optimal x

  1 p 1 = 1 p 1 = 2 p 1 = 3 f 1 (x 1 ) p

  1

  1

  1 5 -

  5

  2

  6

  6

  6

  3

  3

  5

  6

  6

  3

  4

  5

  6

  5

  Pabrik 1 Pabrik 2 Pabrik 3 Proyek

  c 1 R 1 c 2 R 2 c 3 R 3

  1

  2

  1

  5

  2

  8

  1

  3

  3

  2

  6

  3 9 - - 4 -

  • 4

  12 - -

  Rekonstruksi solusi: Tahap 3

  x p x p x p (p , p ,

  3

  3

  2

  2

  1

  1

  1

  2

  • p )

  3 ( ) max {R (p ) + f [(xc (p )]}, f x = 3 3 c ( p ) ≤ x 3 3 3

  3

  3

  2

  3

  3

  3

  1 (5 – 0 = 5) 4 (5 – 4 = 1) 2 (2, 4, 1) p 3 = 1 , 2

  1 R (p ) + f [(xc (p )] Solusi Optimal

  3

  3

  2

  3

  3

  3

  2 (4 – 2 = 2) 3 (3, 2, 2)

  • x

  3 p 3 = 1 p 3 = 2 f 3 (x 3 ) p

  3

  2 (5 – 1 = 4)

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

  3 (4 – 3 = 1) 3 (2, 3, 2)

  Tentukan biaya total minimal dari kasus berikut: Kasus 3

  Diketahui permintaan produk A dalam 3 bulan kedepan Batas: adalah 3, 7, dan 5 unit. Persediaan saat ini tercatat

  2≤p≤7, sebanyak 2 dan persediaan yang sama juga harus ada

  P1 P2 P3 setelah 3 bulan. tentukan jumlah produksi yang meminimalkan biaya total jika :

  Stage 1 Stage 2 Stage 3

  X0=2

  X1 X2 X3=2 biaya inventori per bulan adalah 3 + 2 Xi

  S1=3 S2=7 S2=5 biaya produksi per bulan adalah 16 pi –pi^2 Dimana xi produk yang tersedia dan pi adalah banyaknya produk yang dihasilkan pada i Montly inventory cost (ICi) = 3 + 2Xi Montly production cost (PCi)= 16Pi – Pi^2 Montly Total Cost TC =ICi + PCi

  Stage 3

  2

  3

  4

  5

  6

  7 TC3 Pi* S3 X3* Pi Xi-1 + Pi = Si+Xi

  Xi Xi

  ICi Pi PCi Xi-1 = Xi - Pi + Si

  66

  66

  7

  5

  2

  3

  2

  28

  1

  65

  65

  6

  5

  2

  1

  5

  3

  39

  2

  62

  62

  5

  5

  2

  2

  7

  4

  48 Fungsi Tujuan

  3

  57

  57

  4

  5

  2

  3

  9

  5

  55 Min{Ci + Pci-1 }

  4

  50

  50

  3

  5

  2

  4

  11

  6

  60

  5

  41

  41

  2

  5

  2

  5

  13

  7

  63

  6

  15

  7

17 Solusi

  Stage 2

  2

  3

  4

  5

  6

7 TC2 Pi* S2 X2* Stage Xi-1* pI* Si* Xi*

  ICi PCi Ci* Pi

  1

  2

  2

  3

  1

  7

  28

  35 Xi

  2

  1

  6

  7

  5

  60

  65 1 131 133 131

  6

  7

  3

  7

  5

  2

  3

  63

  66 2 128 132 132 128

  5

  7 Total 166 3 123 129 131 129 123

  4

  7 Cost 4 116 124 128 128 123 116

  3

  7 5 107 117 123 125 123 117 107

  2

  7 6 108 116 120 - 120 116 108

  2

  7

  1 Stage 1

  2

  3

  4

  5

  6

7 TC1 Pi* S1 X1* Pi Xi

  2 166 174 178 178 174 178 166

  2

  3

  1