Anda di halaman 1dari 32

SA-6021 Analisis Sistem dan

Pengambilan Keputusan SDA


Pemograman Dinamik &
Aplikasi pada Operasi Waduk
19 Oktober 2021
Minggu-9
1. Pemograman dinamik
• Pemograman dinamik menentukan solusi optimum untuk masalah n-
variabel dengan mengaturnya kedalam n tahapan dengan masing-masing
tahap merupakan sub masalah variabel tunggal.

• Keuntungan perhitungan adalah pemograman dinamik mengoptimasikan


submasalah variabel tunggal.

• Pehitungan dalam Pemograman dinamik dilakukan secara rekursi, dalam


arti bahwa solusi optimum satu submasalah digunakan sebagai input
untuk submasalah berikut.

• Misalkan kita ingin memilih rute jalan terpendek antara dua kota. Jaringan
dibawah menyediakan rute yang mungkin antara kota awal pada node 1
dan kota tujuan pada node 7. Rute melewati kota antara yang ditandai
dengan node 2 sampai 6.
2
12

7
5
8 9
8
Mulai 1 3 7
9

5 6
7 6
13

4
• Masalah diatas dapat diselesaikan dengan menghitung lengkap semua rute
antara node 1 dan 7 (ada 5 rute). Untuk jaringan yang besar perhitungan
ini tidak efisien.

• Untuk penyelesaian masalah diatas, pertama kali jaringan diatas disusun


kedalam beberapa tahap yang ditandai dengan garis putus-putus vertikal
seperti pada gambar dibawah. Selanjutnya, dilakukan perhitungan untuk
masing-masing tahap secara terpisah.

• Secara umum adalah menghitung jarak komulatif terpendek untuk semua


node terminal sebuah tahapan dan selanjutnya menggunakan jarak2 ini
sebagai data input untuk tahap berikutnya. Tahap 1 meliputi 3 node
tujuan (2,3,4).

• Hasil summary tahap 1.


Jarak terdekat ke node 2 = 7 miles (dari node 1)
Jarak terdekat ke node 3 = 8 miles (dari node 1)
Jarak terdekat ke node 4 = 5 miles (dari node 1)
f1 f1
7 7
f2 f2
2 2 12 12 12
f0 f3
7
8 5 5 21
0 8 9
8
8
1 3 3 7
9 17 17
5 6
7 6 6
5 5

13
4 4
• Selanjutnya, tahap 2 terdapat dua node tujuan (5 dan 6). Tinjau node 5 ,
terdapat 3 kemungkinan rute mencapai node 5 (2,5), (3,5), dan (4,5).
Informasi ini dengan jarak terdekat menuju node 2,3, dan 4, menentukan
jarak terpendek (komulatif) menuju node 5 sebagai

Jarak terpendek = min Jarak terpendek + Jarak dari


i = 2,3,4
ke node 5 ke node i node i ke node 5

7 + 12 = 19
= min 8 + 8 = 16 = 12 (dari node 4)
5 + 7 = 12

Dengan cara yg sama, untuk node 6 didapat

Jarak terpendek = min Jarak terpendek + Jarak dari


ke node 6 i = 3,4 ke node i node i ke node 6

= min 8 + 9 = 17 = 17 (dari node 3)


5 + 13 = 18
• Hasil summary tahap 2
Jarak terpendek ke node 5 = 12 miles (dari node 4)
Jarak terpendek ke node 6 = 17 miles (dari node 3)

Node tujuan 7 dapat dicapai dari node 5 atau 6. Gunakan hasil summary
dari tahap 2 dan jarak dari node 5 dan 6 menuju node 7, didapat

Jarak terpendek = min 12 + 9 = 21 = 21 (dari node 5)


ke node 7 17 + 6 = 23

• Hasil summary tahap 3


Jarak terpendek ke node 7 = 21 miles (dari node 5)

Jadi perhitungan akhir memberikan jarak terpendek antara node 1 dan 7


adalah 21 miles. Kota-kota yang menentukan rute optimum ditentukan
sebagai berikut. Dari summary tahap 3, node 7 dihubungkan menuju node
5. Selanjutnya, dari summary tahap 2, node 4 dihubungkan menuju node
5. terakhir, dari summary tahap 1, node 4 dihubungkan menuju node 1.
Jadi rute terpendek ditetapkan 1  4  5  7.
• Perhitungan rekursi pemograman dinamis bisa diekspresikan secara
matematik. Misalkan fi(xi) merupaka jarak terdekat menuju node xi pada
tahap i, dan tetapkan d(xi-1, xi) sebagai jarak dari node xi-1 menuju node
xi; selanjutnya, fi dihitung dari fi-1 menggunakan persamaan rekursi
berikut:

fi(xi) = min {d(xi-1, xi) + fi-1(xi-1)} , i = 1, 2, 3


Semua rute
(xi-1, xi) fisibel

Mulai untuk i = 1, set rekursi f0(x0) = 0. Persamaan menunjukkan bahwa


jarak terdekat fi(xi) pada tahap i harus dinyatakan dalam bentuk node
berikutnya, xi. Dalam terminologi pemograman dinamis, xi diarahkan
sebagai pernyataan/state dari sistem pada tahap i. Pengaruhnya,
pernyataan sistem pada tahap i berkenaan dengan informasi yang
menghubungkan tahapan secara bersamaan, seperti bahwa keputusan
optimal untuk tahapan selanjutnya dapat dibuat tanpa memeriksa kembali
bagaimana keputusan untuk tahap sebelumnya dicapai. Definisi yang
sesuai dari state membolehkan kita meninjau masing-masing tahap secara
terpisah dan menjamin bahwa solusi adalah fisibel untuk semua tahap.
• Prinsip optimalitas adalah keputusan yang akan datang untuk tahap-tahap
selanjutnya akan merupakan kebijaksanaan optimal berkenaan dengan
kebijaksanaan yang digunakan pada tahap2 sebelumnya.
• Pemograman dinamik dapat dilakukan dengan cara rekursi ke depan
(forward recursion) dan rekursi ke belakang (backward recursion).

• Cara rekursi ke depan adalah proses perhitungan dimulai dari tahap awal
sampai tahap akhir, sementara cara rekursi ke belakang proses
perhitungn dimulai dari tahap akhir dan berakhir pada tahap awal.

• Kedua cara diatas memberikan solusi yang sama. Walaupun prosedur ke


depan adalah cara yang lebih logis, secara umum rekursi ke belakang
memberikan perhitungan yang lebih efisien.

• Misalkan, diberikan rute sebagai berikut:


d(1,2) = 5, d(1,3) =9, d(1,4) = 8
d(2,5) = 10, d(2,6) = 17
d(3,5) = 4, d(3,6) = 10
d(4,5) = 9, d(4,6) = 9
d(5,7) = 8
d(6,7) = 9
Selesaikan rute diatas dengan menggunakan rekursi ke depan dan ke
belakang
2
10

5
17 5
8
4
9
Mulai 1 3 7
10

8 9
9 6
9

Gambar 1 - Rute-rute yang mungkin antara kota pada node


1 dan kota tujuan pada node 2
• Untuk penyelesaian masalah diatas, pertama kali jaringan diatas disusun
kedalam beberapa tahap yang ditandai dengan garis putus-putus vertikal
seperti pada gambar dibawah. Selanjutnya, dilakukan perhitungan untuk
masing-masing tahap secara terpisah.

• Persamaan rekusi ke depan diberikan sebagai

fi(xi) = min {d(xi-1, xi) + fi-1(xi-1)} , i = 1, 2, 3


Semua rute
(xi-1, xi) fisibel

dimana f0(x0) = 0 untuk x0 = 1. Urutan perhitungan f1  f2  f3

• Tahap 1. Dari node 1, terdapat tiga alternatif rute: (1,2),(1,3), dan (1,4)

d(x0, x1) + f0(x0) Solusi optimum

x1 x0 = 1 f1(x1) x 0*

2 5 5 1
3 9 9 1
4 8 8 1
f1 f1
5 5
f2 f2
2 2 10 13 13
f0 f3
5
9 9 17 5 5 21
0 8
4
9
1 3 3 7
10 17 17
8 9
9 6 6
8 8

9
4 4

Gambar 2 –Rute terpendek dengan rekursi ke depan


• Tahap 2. Diberikan f1(x1) dari tahap 1, kita dapat membandingkan
alternatif fisibel seperti ditunjukkan pada tabel dibawah ini.

d(x1, x2) + f1(x1) Solusi optimum

x2 x1 = 2 x1 = 3 x1 = 4 f2(x2) x 1*

5 10+5=15 4+9 =13 9+8 =17 13 3


6 17+5=22 10+9=19 9+8 =17 17 4

Solusi optimum tahap 2 sebagai berikut: jika anda di kota 5, rute


terpendek melewati kota 3, dan jika berada di kota 6, rute terpendek
melewati kota 4.
• Tahap 3. Diberikan f2(x2) dari tahap 2, kita dapat membandingkan
alternatif fisibel seperti ditunjukkan pada tabel dibawah ini.

d(x2, x3) + f2(x2) Solusi optimum

x3 x2 = 5 x2 = 6 f3(x3) x 2*

7 13+8=21 17+9 =26 21 5

Solusi optimum tahap 3 dari kota 5 menuju kota 7. Jadi, rute komplit
diberikan sebagai 1  3  5  7, dengan jarak 21 miles.
• Persamaan rekursi ke belakang sebagai berikut

fi(xi) = min {d(xi, xi+1) + fi+1(xi+1)} , i = 1, 2, 3


Semua rute
(xi, xi+1) fisibel

dimana f4(x4) = 0 untuk x4 = 7. Urutan perhitungan adalah f3  f2  f1

• Tahap 3. Karena node 7 (x4 = 7) dihubungkan ke node 5 dan 6 (x3=5 dan


6) dengan masing satu rute, maka tidak ada alternatif untuk memilih asal,
dapat dilihat pada tabel dibawah

d(x3, x4) + f4(x4) Solusi optimum

x3 x4 = 7 f3(x3) x 4*

5 8 8 7
6 9 9 7
f2 f2
18 18
f3 f3
2 2 10 8 8
f1 f4
5 17
12 12 5 5 8 0
21
9 4
1 3 3 7
10 9 9 9
8 9
6 6
17 17 9

4 4

Gambar 3 –Rute terpendek dengan rekursi ke belakang


• Tahap 2. Diberikan f3(x3) dari tahap 3, perbandingan alternatif fisibel
ditunjukkan pada tabel dibawah

d(x2, x3) + f3(x3) Solusi optimum

x2 x3 = 5 x3 = 6 f2(x2) x 3*

2 10+8=18 17+9=26 18 5
3 4+8=12 10+9=19 12 5
4 9+8=17 9+9=18 17 5

Solusi optimum pada tahap 2: jika berada di kota 2,3, dan 4, rute
terpendek melalui kota 5.
• Tahap 1. Dari node 1, didapat tiga alternatif: (1,2), (1,3), dan (1,4).
Gunakan f2(x2) dari tahap 2, perhitungan diberikan pada tabel berikut.

d(x1, x2) + f2(x2) Solusi optimum

x1 x2 = 2 x2 = 3 x2 = 4 f1(x1) x 2*

1 5+18=23 9+12=21 8+17=25 21 3

Solusi optimum tahap 1 dari kota 1 dihubungkan ke kota 3. Jadi, rute


komplit diberikan sebagai 1  3  5  7, dengan jarak 21 miles.
2. Aplikasi pada Operasi Waduk
• Pemograman dinamik bukan algoritma terstruktur secara jelas seperti
pemograman linier, tetapi lebih kepada pendekatan umum untuk
menyelesaikan permasalahan optimisasi. Pemograman dinamis melibatkan
penyusunan suatu masalah yang kompleks kedalam sederetan sub
masalah yang lebih sederhana dimana diselesaikan secara berurutan,
sementara menghubungkan informasi dasar dari satu tahap perhitungan
ke tahap berikutnya menggunakan konsep state.

• Model pemograman dinamis mempunyai sifat berikut:


- Permasalahan dibagi kedalam tahapan-tahapan yang berurutan dengan
suatu keputusan yang disyaratkan pada masing-masing tahap.
Tahapan2 dapat mewakili parameter2 yang berbeda dalam waktu
(seperti dalam penentuan pelepasan reservoir untuk masing2 interval
waktu), parameter2 yang berbeda dalam ruang (pelepasan dari
reservoir2 yg berbeda), atau kegiatan yg berbeda (pelepasan untuk
pengguna2 air yg berbeda)

- Masing-masing tahapan permasalahan harus memiliki jumlah state


tertentu berkaitan dengan diatas. State2 menggambarkan kondisi
dimana sistem harus berada pada tahapan tersebut. Sebagai contoh
variabel state tipikal adalah jumlah air dalam tampungan.
- Pengaruh sebuah keputusan pada masing-masing tahap pemasalahan
adalah memindahkan state yang ditinjau dari sistem kedalam suatu
state yang berkaitan dengan tahapan berikut. Jika variabel keputusan
berapa banyak air yang dilepaskan dari reservoir selama periode waktu
yang ditinjau, keputusan ini akan memindahkan jumlah air yang
ditampung dalam reservoir (variabel state) dari jumlah yg ditinjau
menjadi jumlah baru untuk tahap berikutnya (periode waktu).

- Fungsi balikan menunjukkan penggunaan atau biaya dari pemindahan


berkaitan dengan masing-masing pemindahan state yang potensial.
Fungsi balikan membolehkan fungsi objektif untuk diwakili oleh tahapan-
tahapan.

- Optimalitas dari keputusan yang disyaratkan pada tahapan yang ditinjau


ditentukan dalam bentuk pengaruhnya pada fungsi balikan untuk tahapan
yang ditinjau dan seluruh subtahapan beurutan.
• Dua sifat terakhir dinyatakan dalam hubungan rekursi yang menentukan
fungsi objektif dalam bentuk tahapan-tahapan,

fi (si , xi) = maksimumkan atau minimumkan [ri (xi) + fi+1 (si+1)]

dimana i merupakan tahapan yang ditinjau dalam prosedur pemograman


dinamis. Persamaan diatas ditulis dalam format pemograman dinamis
kebelakang, dimana perhitungan diproses dari tahap i + 1 ke tahap i .
Untuk pemograman dinamis kedepan, suku fi+1(si+1) diganti dengan fi-1(si-
1) pada persamaan diatas, dan proses perhitungan dari tahap i – 1 ke
tahap i . Fungsi tujuan fi(si , xi) adalah sebuah fungsi pada keputusan (xi)
yang dibuat dalam tahap i . Pada penyelesaian perhitungan pemograman
dinamis, tahap demi tahap rekursi fi(si , xi) menyediakan nilai akhir dari
fungsi objektif.

• Strategi pemograman dinamis meliputi langkah-langkah umum berikut:


1. Formulasikan variabel keputusan, fungsi objektif rekursi, fungsi balikan,
batasan, tahapan-tahapan, dan variabel state.
2. Selesaikan permasalahan optimisasi tahap pertama
3. Selesaiakan permasalahan optimisasi tahap kedua
4. Selesaiakan permasalahan optimisasi tahap ketiga dan seterusnya
keempat sampai semua tahapan termasuk.
• Dalam beberapa kasus, permasalahan yang sama dapat diselesaikan
dengan formulasi dinamis atau pemograman linier. Secara umum,
pemograman linier mempunyai keuntungan dibanding pemograman
dinamis yaitu lebih jelas dan lebih mudah dimengerti.

• Sifat nonlinier dari suatu permasalahan dapat dinyatakan dalam suatu


formulasi pemograman dinamis. Hubungan fungsional dalam fungsi
objektif dan pembatas2 dapat berupa nonlinier, nonconvex, dan
diskontinu dalam pemograman dinamis. Namun, tentunya dengan
berbagai asumsi dan batasan aplikasi.

• Sebagai ilustrasi diberikan contoh dibawah.

• Sebuah reservoir menyuplai air selama tiga bulan musim kering selama
dimana saat itu tidak ada debit masuk. Keuntungan bersih berasal dari
menyuplai berbagai jumlah air selama masing-masing dari tiga bulan
seperti ditunjukkan pada Tabel 1. Permasalahan keputusan adalah untuk
mengalokasikan air yang tersedia dalam tampungan pada permulaan
musim kering selama tiga bulan, berdasarkan pada memaksimumkan
keuntungan total. Alokasi diulang dengan mengasumsikan jumlah air yang
berbeda yang tersedia di tampungan pada permulaan musim kering.
Tabel 1 – Hubungan alokasi air dan keuntungan

Alokasi Air Keuntungan bersih ($100,000)


(106 m3) Bln-1 Bln-2 Bln-3

0 0 0 0
1 3 1 4
2 6 3 5
3 8 9 6

• Tahapan i adalah tiga bulan. Variabel2 state s1 , s2 , dan s3 adalah air


yang tersedia dalam tampungan pada permulaan masing-masing bulan.
Variabel2 keputusan x1 , x2 , dan x3 adalah jumlah air yang disuplai dalam
masing-masing tiga bulan. Variabel2 state dan keputusan ditentukan
sebagai nilai diskrit 0, 1, 2, atau 3 juta m3 . Jumlah air ang disuplai
selama bulan pertama (x1) menentukan state atau jumlah air yang
tersedia (s2) untuk alokasi (x2 dan x3) diantara dua bulan tersisa. Tahapan
pengembalian r(xi) adalah keuntungan bersih, dalam dolar, berkaitan
dengan alokasi air optimum untuk masing-masing bulan.
• Fungsi objektif fi(si , xi) dinyatakan dalam format persamaan rekursi
diatas.

• Dalam solusi persamaan dinamis ke belakang, langkah pertama adalah


menyederhanakan menjadi tabulasi jumlah air yang disuplai dalam bulan
3 untuk jumlah tertentu dalam tampungan pada permulaan bulan 3.
Jumlah air yang tersedia dalam bulan 3 bergantung pada bagaimana air
disuplai selama bulan 1 dan 2. Selanjutna adalah mengalokasikan air (s2)
yang tersedia pada permulaan bulan 2 antara bulan 2 dan 3 (x2 dan x3).
Kemudian air yang tersedia pada permulaan bulan pertama (s1)
dialokasikan diantara seluruh tiga bulan. Jumlah diskrit 0, 1, 2, atau 3 unit
air diasumsikan tersedia pada pemulaan masing-masing bulan. Hasil
untuk ketiga tahapan prosedur persamaan dinamis ke belakang
dirangkum dalam Tabel 2, Tabel 3, dan Tabel 4.

• Alokasi tahap 3 di tabulasi dalam Tabel 2. Total yang tersedia (s3) adalah
jumlah yang disuplai (x3) , dengan hasil keuntungan bersih (B3).

• Tahap 2 terdiri dari mengalokasikan air yang tersedia antara bulan 2 dan
3. Perhitungan diberikan pada Tabel 3. Jika air yang tersedia 1 x 106 m3
untuk penggunaan dalam bulan 2 dan 3, alokasi optimum adalah nol dan
1 x 106 m3 , dan sebaliknya untuk x2 dan x3 , dimana memberi
keuntungan (Btotal) = $ 400,000.
Tabel 2 – Alokasi PD Tahap 3 untuk Bulan 3

Tabel 3 – Alokasi PD Tahap 2 antara Bulan 2 dan 3


• Jika 3 unit tersedia untuk penggunaan dalam bulan 2 dan 3, alokasi
optimum adalah x2 = 3 dan x3 = 0 , dengan keuntungan Btotal = $900,000.

• Tahap 1 terdiri dari mengalokasikan jumlah total air ang tersedia antara
bulan 1 dan gabungan bulan 2 dan 3. Perhitungan ditunjukkan dalam
Tabel 4. Untuk alokasi yang mana saja untuk bulan yang digabungkan 2
dan 3 (s2 = x2 + x3) , alokasi optimum antara x2 dan x3 tersedia dari hasil
tahap 2 ditunjukkan pada Tabel 4.

• Solusi akhir untuk permasalahan alokasi air ditentukan dengan


penelusuran ke belakang melalui Tabel 4 dan Tabel 3. Alokasi optimum
untuk alternatif tingkat diskrit dari air dalam tampungan ditabulasikan
dalam Tabel 5. Jika tiga unit air tersedia dalam tampungan untuk
penggunaan selama tiga bulan musim kering, alokasi optimum adalah
menggunakan 2, 0, dan 1 unit dalam bulan satu, dua, dan tiga, yang
memberikan keuntungan $1,000,000. Alokasi optimum juga ditabulasikan
dalam Tabel 5, sebagai alternatif mengasumsikan total tampungan
tersedia adalah satu atau dua unit.
Tabel 4 – Alokasi PD Tahap 1 antara Bulan 1 versus Bulan 2 dan 3

Tabel 5 – Solusi Akhir


• Dalam bentuk format lain:

• Tahap 3.

f3(s3,x3) = max {r3(x3)}


x3
Tabel berikut membandingkan alternatif fisibel untuk masing2 nilai x3.

r3(x3) Solusi optimum


s3 x3 = 0 x3 = 1 x3 = 2 x3 = 3 f3(x3) x 3*

0 0 - - - 0 0
1 0 4 - - 4 1
2 0 4 5 - 5 2
3 0 4 5 6 6 3
• Tahap 2.

f2(s2,x2) = max {r2(x2) + f3(s3)}


x2

r2(x2) + f3(s3) Solusi optimum

s2 x2 = 0 x2 = 1 x2 = 2 x2 = 3 f2(s2,x2) x 2*

0 0+0=0 - - - 0 0
1 0+4=4 1+0=1 - - 4 0
2 0+5=5 1+4=5 3+0=3 - 5 0,1
3 0+6=6 1+5=6 3+4=7 9+0=9 9 3
• Tahap 1

f1(s1,x1) = max {r1(x1) + f2(s2)}


x1

r1(x1) + f2(s2) Solusi optimum

s1 x1 = 0 x1 = 1 x1 = 2 x1 = 3 f1(s1,x1) x 1*

0 0+0=0 - - - 0 0
1 0+4=4 3+0=0 - - 4 0
2 0+5=5 3+4=7 6+0=6 - 7 1
3 0+9=9 3+5=8 6+4=10 8+0=0 10 2

Solusi optimum diberikan dalam cara sbb. Jika 3 unit yang tersedia dalam
tampungan untuk penggunaan selama bulan musim kering, alokasi
optimum adalah untuk penggunaan 2 unit untuk bulan pertama, 0 unit
bulan dua, dan 1 unit bulan tiga, yang menghasilkan keuntungan sebesar
$ 1,000,000. Jika 2 unit tersedia dalam tampungan, alokasi optimum
adalan 1 unit bulan pertama, 0 unit bulan kedua, dan 1 unit bulan ketiga,
yg memberikan keuntungan $700,000. Jika 1 unit tersedia dalam
tampungan, alokasi optimum adalah 0 unit bulan pertama, 0 unit bulan
kedua, dan 1 unit bulan ketiga, uang memberikan keuntungan $400,000.
• Tugas 8
• Soal 1
Suatu reservoir mensuplai air selama tiga bulan musim kering dimana tidak
terdapat debit masuk. Keuntungan bersih berasal dari mensuplai berbagai
alokasi air selama masing-masing bulan yang ditunjukkan pada tabel
dibawah. Permasalahan keputusan adalah mengalokasikan air yang tersedia
dalam tampungan pada awal musim kering untuk selama tiga bulan,
berdasarkan keuntungan total maksimum. Gunakan pemograman dinamis
untuk mendapatkan solusi optimum.

Tabel 1 – Keuntungan berkaitan dengan alokasi air untuk masing-masing


bulan

Alokasi Air Keuntungan Bersih (Rp 1 milyar)


6 3
(10 m ) Bulan Mei Bulan Juni Bulan Agust
0 0 0 0
1 1 3 2
2 5 5 4
3 6 7 6
4 8 9 7

Anda mungkin juga menyukai