Anda di halaman 1dari 23

3/16/2021

MATEMATIKA ITS

Pemrograman Dinamis
(Dynamic Programming)
 Daryono Budi Utomo

MATEMATIKA ITS

Bab 1. Pemrograman Dinamis


(Dynamic Programming)
 1.1 CONTOH PROTOTIPE UNTUK PEMROGRAMAN DINAMIS
1.2 PEMROGRAMAN DINAMIS DETERMINISTIS
1.3 PEMROGRAMAN DINAMIS PROBABILISTIK

Daryono, Riset Operasi 2: Bab 1 Pemrograman Dinamis 2

1
3/16/2021

Program Dinamis (dynamic programming): MATEMATIKA ITS


Program Dinamis(dynamic programming):
 Metode pemecahan masalah dengan cara menguraikan solusi menjadi sekumpulan tahapan (stage)
sedemikian sehingga solusi dari persoalan dapat dipandang dari serangkaian keputusan yang saling
berkaitan.
 Istilah “program dinamis” muncul karena perhitungan solusi menggunakan tabel-tabel.

Karakteristik penyelesaian persoalan dengan Program Dinamis:


1. Terdapat sejumlah berhingga pilihan yang mungkin,
2. Solusi pada setiap tahap dibangun dari hasil solusi tahap sebelumnya,
3. Menggunakan persyaratan optimasi dan kendala untuk membatasi sejumlah pilihan yang harus
dipertimbangkan pada suatu tahap

Perbedaan Algoritma Greedy dengan Program Dinamis:


 Greedy: hanya satu rangkaian keputusan yang dihasilkan dan belum tentu optimum
 Program dinamis: lebih dari satu rangkaian keputusan yang dipertimbangkan.
Daryono, Riset Operasi 2: Bab 1 Pemrograman Dinamis 3

Struktur dan Sistem Notasi Dynamic Progamming


Ada tiga hal yang penting diketahui tentang programa dinamis : MATEMATIKA ITS
STAGE : (Tahapan) dari persoalan yang dihadapi dan ingin dicari solusinya
STATE : (Kondisi) yang menjadi faktor penentu keputusan dari tiap tahapan
DECISION : (Keputusan) yang harus diambil dari tiap tahap untuk sampai kepada solusi keseluruhan

Daryono, Riset Operasi 2: Bab 1 Pemrograman Dinamis 4

2
3/16/2021

MATEMATIKA ITS
2.1 CONTOH PROTOTIPE UNTUK PEMROGRAMAN DINAMIS
Pemrograman dinamis adalah teknik matematika yang berguna untuk membuat urutan keputusan yang saling
terkait. Ini memberikan prosedur sistematis untuk menentukan optimal kombinasi keputusan.

MASALAH STAGECOACH
MASALAH STAGECOACH adalah masalah yang dibuat untuk mengilustrasikan fitur dan untuk
memperkenalkan terminologi pemrograman dinamis. Ini menyangkut mitos pencari keberuntungan di Missouri
yang memutuskan untuk pergi ke barat untuk bergabung dengan Tambang emas di California selama pertengahan
abad ke-19. Kemungkinan rute ditunjukkan pada Gambar 1, di mana setiap negara bagian diwakili oleh huruf
yang dilingkari dan arah perjalanan selalu dari kiri ke kanan dalam diagram. Jadi, empat tahap (kereta pos
berjalan) harus melakukan perjalanan dari titik embarkasinya di negara bagian A (Missouri) ke tujuannya di
negara bagian J (California). Setelah beberapa pemikiran, untuk menentukan rute terpendek, sehingga biayanya
menjadi termurah.

Ini merupakan masalah shortest path yang dapat diselesaiakan dengan Algoritma Dijkstra, perbedaannya
penyelesaian dengan program dinamis dapat ditemukan beberapa lintasan yang terpendek sebagai alternatif
penyelesaian

Daryono, Riset Operasi 2: Bab 1 Pemrograman Dinamis 5

MATEMATIKA ITS

Gambar 2. Biaya untuk kereta pos yang dijalankan


Gambar 1. Sistem jalan dan biaya dari negara bagian i ke negara bagian j, dinyatakan
untuk masalah kereta pos dengan 𝑐𝑖𝑗

Daryono, Riset Operasi 2: Bab 1 Pemrograman Dinamis 6

3
3/16/2021

MATEMATIKA ITS

Perhatikan bahwa pendekatan Greedy dalam memilih jalur termurah (tependek) yang ditawarkan
oleh masing-masing tahap berikutnya, tidak perlu menghasilkan keputusan yang optimal secara
keseluruhan.
Mengikuti strategi ini akan berikan rute:
• Pilihan awal : A ke B didapat rute A B
• Pilihan berikutnya : B ke F didapat rute A B F
• Pilihan berikutnya : F ke I didapat rute A B F I
• Pilihan berikutnya : I ke J didapat rute A B F I J
Total biaya 13.
Namun, mengorbankan sedikit satu tahap kemungkinkan penghematan yang lebih besar setelahnya.
Misalnya, A D F lebih murah secara keseluruhan dari A B F.

Daryono, Riset Operasi 2: Bab 1 Pemrograman Dinamis 7

Solusi MATEMATIKA ITS


Misalkan variabel keputusan 𝑥𝑛 (𝑛 = 1, 2, 3, 4) menjadi tujuan langsung di tahap n (perjalanan kereta pos
ke-n yang akan diambil). Dengan demikian, rute yang dipilih adalah:
𝐴 → 𝑥1 → 𝑥2 → 𝑥3 → 𝑥4 (𝐽)

Misalkan 𝑓𝑛 (𝑆, 𝑥𝑛 ) menjadi total biaya dari keseluruhan polis terbaik untuk tahapan yang tersisa, diberikan
bahwa pencari keberuntungan berada di negara bagian S, siap untuk memulai tahap n, dan memilih 𝑥𝑛 sebagai
tujuan. Diberikan S dan n, misalkan 𝑥𝑛∗ menunjukkan nilai apa pun dari 𝑥𝑛 (tidak harus unik) hal ini
meminimalkan 𝑓𝑛 (𝑆, 𝑥𝑛 ), dan misalkan 𝑓𝑛∗ (𝑆) menjadi nilai minimum yang sesuai dari 𝑓𝑛 (𝑆, 𝑥𝑛 ).
Jadi,
𝑓𝑛∗ 𝑆 = min 𝑓𝑛 𝑆, 𝑥𝑛 = 𝑓𝑛 (𝑆, 𝑥𝑛∗ )
𝑥𝑛
Dimana
𝑓𝑛 𝑆, 𝑥𝑛 = 𝑏𝑖𝑎𝑦𝑎 𝑙𝑎𝑛𝑔𝑠𝑢𝑛𝑔 𝑡𝑎ℎ𝑎𝑝 𝑛
+ 𝑏𝑖𝑎𝑦𝑎 𝑚𝑎𝑠𝑎 𝑑𝑒𝑝𝑎𝑛 𝑚𝑖𝑛𝑖𝑚𝑢𝑚 𝑡𝑎ℎ𝑎𝑝 𝑛 + 1 𝑑𝑎𝑛 𝑠𝑒𝑡𝑒𝑟𝑢𝑠𝑛𝑦𝑎

𝑓𝑛 𝑆, 𝑥𝑛 = 𝑐𝑆𝑥𝑛 + 𝑓𝑛+1 (𝑥𝑛 )
Nilai 𝑐𝑆𝑥𝑛 diberikan oleh tabel sebelumnya untuk 𝑐𝑖𝑗 dengan menetapkan 𝑖 = 𝑆 (keadaan saat ini) dan 𝑗 = 𝑥𝑛
(tujuan langsung). Karena tujuan akhir (negara bagian J) tercapai pada akhir tahap 4, 𝑓5∗ 𝐽 = 0.

Daryono, Riset Operasi 2: Bab 1 Pemrograman Dinamis 8

4
3/16/2021

MATEMATIKA ITS
Tujuannya adalah untuk menemukan 𝑓1∗ (𝐴)
dan rute yang sesuai. Pemrograman dinamis
menemukannya dengan secara berurutan mencari jarak minimum:
𝑓4∗ 𝑆 , 𝑓3∗ 𝑆 , 𝑓2∗ 𝑆 → 𝑃𝑟𝑜𝑠𝑒𝑠 𝑑𝑎𝑟𝑖 𝑡𝑢𝑗𝑢𝑎𝑛 𝑘𝑒 𝑡𝑖𝑡𝑖𝑘 𝑎𝑤𝑎𝑙
untuk masing-masing kemungkinan status S dan lalu gunakan 𝑓2∗ (𝑆) untuk menyelesaikan 𝑓1∗ (𝐴).
Prosedur Solusi.
Saat pencari keberuntungan hanya memiliki satu tahap lagi (𝑛4 ), rutenya setelah itu ditentukan
sepenuhnya oleh keadaannya saat ini (baik H atau I) dan finalnya tujuan 𝑥4 = 𝑗, jadi rute perjalanan
kereta pos terakhir ini adalah 𝑆 → 𝐽. Oleh karena itu, sejak 𝑓4∗ 𝑆 = 𝑓4 𝑆, 𝐽 = 𝑐𝑆,𝐽 solusi langsung
untuk n = 4 masalah adalah
H 3
J
4
I

Daryono, Riset Operasi 2: Bab 1 Pemrograman Dinamis 9

MATEMATIKA ITS
Saat pencari keberuntungan memiliki dua tahap lagi (n =3), prosedur solusi membutuhkan beberapa
kalkulasi. Misalkan pencari keberuntungan berada di negara bagian F. Kemudian, seperti yang
digambarkan di bawah, selanjutnya harus pergi ke salah satu negara bagian H atau I dengan biaya
langsung sebesar 𝑐𝐹𝐻 = 6 atau 𝑐𝐹𝑗 = 3. Jika memilih negara bagian H, biaya tambahan minimum
setelahnya mencapai disana diberikan dalam tabel sebelumnya sebagai 𝑓4∗ 𝐻 = 3, seperti yang
ditunjukkan di atas H. simpul dalam diagram. Oleh karena itu, total biaya untuk keputusan ini adalah
6 + 3 = 9. Jika dia memilih sebutkan saya sebagai gantinya, total biaya adalah 3 + 4 = 7, yang lebih
kecil. Oleh karena itu, pilihan yang optimal adalah yang terakhir ini, 𝑥3∗ = 𝐼, karena memberikan
biaya minimum 𝑓3∗ 𝐹 = 7

Daryono, Riset Operasi 2: Bab 1 Pemrograman Dinamis 10

5
3/16/2021

MATEMATIKA ITS

Perhitungan serupa perlu dilakukan ketika Anda memulai dari dua kemungkinan keadaan lainnya
S = E dan S = G dengan dua tahap lagi. Cobalah, lanjutkan keduanya secara grafis (Gbr. 10.1)
dan secara aljabar [menggabungkan nilai 𝑐𝑖𝑗 dan 𝑓4∗ (𝑆)], untuk memverifikasi hasil lengkap
berikut untuk masalah n = 3.

Daryono, Riset Operasi 2: Bab 1 Pemrograman Dinamis 11

MATEMATIKA ITS
Solusi untuk masalah tahap kedua (n = 2), di mana ada tiga tahap pergi, diperoleh dengan cara
yang sama. Dalam hal ini, 𝑓2 𝑆, 𝑥2 = 𝑐𝑆𝑥2 + 𝑓3∗ (𝑥2 ). Sebagai contoh, misalkan pencari
keberuntungan berada di negara bagian C, seperti yang digambarkan di bawah ini.

Daryono, Riset Operasi 2: Bab 1 Pemrograman Dinamis 12

6
3/16/2021

MATEMATIKA ITS

Selanjutnya harus menyatakan E, F, atau G dengan biaya langsung 𝑐𝐶,𝐸 = 3, 𝑐𝐶,𝐹 = 2, atau 𝑐𝐶,𝐺 = 4,
Setelah sampai di sana, biaya tambahan minimal untuk tahap 3 ke ujung diberikan oleh tabel n = 3
sebagai 𝑓3∗ (𝐸) = 4, 𝑓3∗ (𝐹) = 7, atau 𝑓3∗ (𝐺) = 6, sebagai ditunjukkan di atas node E dan F dan di
bawah node G pada diagram sebelumnya. Hasilnya perhitungan untuk ketiga alternatif dirangkum di
bawah ini.

𝑥2 = 𝐸 ; 𝑓2 𝐶, 𝐸 = 𝑐𝐶,𝐸 + 𝑓3∗ 𝐸 = 3 + 4 = 7
𝑥2 = 𝐹 ; 𝑓2 𝐶, 𝐹 = 𝑐𝐶,𝐹 + 𝑓3∗ 𝐹 = 2 + 7 = 9
𝑥2 = 𝐺 ; 𝑓2 𝐶, 𝐺 = 𝑐𝐶,𝐺 + 𝑓3∗ 𝐺 = 4 + 6 = 10

Minimal ketiga angka ini adalah 7, jadi total biaya minimum dari negara bagian C ke ujungnya
adalah 𝑓2∗ 𝐶 = 7, dan tujuan langsungnya harus 𝑥2∗ = 𝐸.

Daryono, Riset Operasi 2: Bab 1 Pemrograman Dinamis 13

MATEMATIKA ITS
Membuat kalkulasi serupa ketika Anda memulai dari keadaan B atau D (mencobanya)
menghasilkan yang berikut ini hasil untuk masalah n = 2:

Pada baris pertama dan ketiga tabel ini, perhatikan bahwa E dan F sama sebagai nilai minimalisasi
𝑥2 , jadi tujuan langsung dari salah satu negara bagian B atau D harus 𝑥2∗ = 𝐸 𝑎𝑡𝑎𝑢 𝐹.

Daryono, Riset Operasi 2: Bab 1 Pemrograman Dinamis 14

7
3/16/2021

MATEMATIKA ITS

Pindah ke masalah tahap pertama (n = 1), dengan keempat tahap yang harus dilalui, kita melihat
bahwa perhitungan serupa dengan yang baru saja ditampilkan untuk masalah tahap kedua (n = 2),
kecuali sekarang hanya ada satu kemungkinan status awal S = A, seperti yang digambarkan di
bawah ini.

Daryono, Riset Operasi 2: Bab 1 Pemrograman Dinamis 15

MATEMATIKA ITS
Perhitungan ini diringkas selanjutnya untuk tiga alternatif untuk segera tujuan:
𝑥1 = 𝐵 ; 𝑓2 𝐴, 𝐵 = 𝑐𝐴,𝐵 + 𝑓2∗ 𝐵 = 2 + 11 = 13
𝑥1 = 𝐶 ; 𝑓1 𝐴, 𝐶 = 𝑐𝐴,𝐶 + 𝑓2∗ 𝐶 = 4 + 7 = 11
𝑥1 = 𝐷 ; 𝑓1 𝐴, 𝐷 = 𝑐𝐴,𝐷 + 𝑓2∗ 𝐷 = 3 + 8 = 11

Karena 11 adalah minimum, 𝑓1∗ 𝐴, 𝐵 = 11 dan 𝑥1∗ = 𝐶 𝑎𝑡𝑎𝑢 𝐷, seperti yang ditunjukkan pada tabel berikut

Daryono, Riset Operasi 2: Bab 1 Pemrograman Dinamis 16

8
3/16/2021

MATEMATIKA ITS

Solusi optimal untuk seluruh masalah sekarang dapat diidentifikasi dari empat tabel.Hasil untuk
masalah n = 1 menunjukkan bahwa pencari keberuntungan harus pergi terlebih dahulu baik
menyatakan C atau keadaan D. Misalkan dia memilih 𝑥1∗ = 𝐶. Untuk n = 2, hasil untuk S = C adalah
𝑥2∗ = 𝐸. Hasil ini mengarah ke masalah n = 3, yang menghasilkan 𝑥3∗ = 𝐻 untuk S = E, dan n = 4
masalah menghasilkan 𝑥4∗ = 𝐽 untuk S = H. Oleh karena itu, satu rute optimal adalah A C E H J.

Memilih 𝑥1∗ = 𝐷 mengarah ke dua rute optimal lainnya A D E H J dan A D F I J. Semuanya


menghasilkan biaya total 𝑓1∗ 𝐴 = 11. Hasil analisis pemrograman dinamis ini juga dirangkum pada
Gambar 10.2. Perhatikan bagaimana dua panah untuk tahap 1 berasal dari kolom pertama dan
terakhir dari n = 1. tabel dan biaya yang dihasilkan berasal dari kolom berikutnya-ke-terakhir.
Masing-masing panah lainnya (dan biaya yang dihasilkan) berasal dari satu baris di salah satu tabel
lain secara tepat cara yang sama

Daryono, Riset Operasi 2: Bab 1 Pemrograman Dinamis 17

MATEMATIKA ITS
Tampilan grafis dari file pemrograman dinamissolusi kereta pos masalah. Setiap panah menunjukkan keputusan
kebijakan yang optimal (langsung terbaiktujuan) dari negara bagian itu, dimana nomor dengannegara adalah
biaya yang dihasilkan dari sana sampai akhir.Mengikuti huruf tebal panah dari A ke T memberikantiga solusi
optimal (file tiga rute memberikan total biaya minimal 11).

1. A C E H J(T)
2. A D E H J(T)
3. A D F I J(T)

Daryono, Riset Operasi 2: Bab 1 Pemrograman Dinamis 18

9
3/16/2021

MATEMATIKA ITS
Cargo Loading
Misalkan sebuah perusahaan angkutan mendapat order mengirimkan barang dari satu tempat
ketempat lainnya dengan menggunakan truk besar dengan kapasitas 15 ton. Barang yang diangkut
harus utuh tidak boleh mengangkut setengah atau seperemaptnya. Jenis barang yang diangkut, berat
dan biaya nya adalah sebagai berikut:

Jenis Barang Berat (ton) Biaya (Juta/item)


A 2 66
B 5 155
C 3 96

Penyelesaian
Stage dalam persoalan ini adalah jumlah barang yang harus diangkut tidak melebih kapasitas truk
(15 ton) dan mendapat hasil yang optimal. Berarti ada 3 tahapan (stage)

Daryono, Riset Operasi 2: Bab 1 Pemrograman Dinamis 19

Tahap 3: 𝑀𝑎𝑘𝑠 𝑓3 (𝑥3 )


MATEMATIKA ITS
 Karena berat barang C 𝑥3 = 3 𝑡𝑜𝑛 , berarti  Pada C = 2, berarti jumlah pendapatan:
jumlah maksimum yang dapat diangkut adalah 2 x 96 =192 juta, dan seterusnya
5 buah  Baris kapasitas cukup diringkas untuk:
 Siapkan kolom untuk C = 0 (tanpa barang C), 0, 3, 6, 9, 12 dan 15
C = 1, C = 2, C = 3, C = 4 dan C = 5  Nilai 𝑓3∗ (𝑥3 ) berarti jawab terbaik pada tahap 3
 Perhatikan kapasitasnya,cantumkan pendapat pada kapasitas yag terpakai
yang diperoleh

Kapasitas C=0 C=1 C=2 C=3 C=4 C=5 𝒇∗𝟑 (𝒙𝟑 ) 𝒙∗𝟑
0 0 0 0
3 0 96 96 1
6 0 96 192 192 2
9 0 96 192 288 288 3
12 0 96 192 288 384 384 4
15 0 96 192 288 384 480 480 5

Daryono, Riset Operasi 2: Bab 1 Pemrograman Dinamis 20

10
3/16/2021

MATEMATIKA ITS
Tahap 2: 𝑀𝑎𝑘𝑠 𝑓2 𝑥2 + 𝑓3∗ (𝑘𝑎𝑝𝑎𝑠𝑖𝑡𝑎𝑠 − 𝑥3 )
 Karena berat barang B 𝑥2 = 5 𝑡𝑜𝑛 , berarti jumlah maksimum yang dapat diangkut
adalah 3 buah
 Siapkan kolom untuk B = 0 (tanpa barang B), B = 1, B = 2 dan C = 3
 Perhatikan kapasitasnya, cantumkan pendapat yang diperoleh
 Formula diatas berarti:
Rupiah yang diharapkan adalah barang B ditambah dengan sisa kapasitas yang
tersedia untuk tahap 3 (tanda *) yang terbaik
𝑀𝑎𝑘𝑠 𝑓2 𝑥2 + 𝑓3∗ 𝑘𝑎𝑝𝑎𝑠𝑖𝑡𝑎𝑠 − 𝑥3
𝑚𝑖𝑠𝑎𝑙 𝑥2 = 2 → 𝐾𝑎𝑝𝑎𝑠𝑖𝑡𝑎𝑠 = 10 𝑡𝑜𝑛
→ 𝑀𝑎𝑘𝑠 𝑓2 2 + 𝑓3∗ 2 − 1 = (2 × 155) + (1 × 96) = 406
 Hasil terbaik tahap 2 sudah mencakup hasil terbaik tahap 3

Daryono, Riset Operasi 2: Bab 1 Pemrograman Dinamis 21

Kapasitas B=0 B=1 B=2 B=3 𝒇∗𝟐 (𝒙𝟐 ) 𝒙∗𝟐


0 0 0 0
1 0 0 0 MATEMATIKA ITS
2 0 0 0 𝑥3 = 3 → 𝐶3 = 96;
3 96 96 0 𝑥2 = 5 → 𝐶2 = 155
4 96 96 0
5 96 155 155 1 𝑥3 = 2 𝑖𝑡𝑒𝑚
𝑥2 = 1 𝑖𝑡𝑒𝑚
6 192 155 192 0
7 192 155 192 0
8 192 251 251 1  Pada kolom 𝑓2∗ (𝑥2 ) tercantum nilai
rupiah terbaiknya
9 288 251 288 0
 Kolom 𝑥2∗ menunjukkan jumlah
10 288 251 310 310 2 barang B yang harus diangkut pada
11 288 347 310 347 1 tahap 2
 Jumlah barang B yang dapat diangkut
12 384 347 310 384 0
0, 1 atau 2 tergantung kapasitasnya
13 384 347 406 406 2
14 384 443 406 443 1 𝑥3 = 1 𝑖𝑡𝑒𝑚
15 480 443 406 465 480 0 𝑥2 = 2 𝑖𝑡𝑒𝑚
Daryono, Riset Operasi 2: Bab 1 Pemrograman Dinamis 22

11
3/16/2021

Tahap 1: 𝑀𝑎𝑘𝑠 𝑓1 𝑥1 + 𝑓1∗ (𝑘𝑎𝑝𝑎𝑠𝑖𝑡𝑎𝑠 − 𝑥1 ) MATEMATIKA ITS


 Pada tahap akhir cukup dicantumkan kapasitas maksimum (15 ton)
 Karena barang A (𝑥1 ) adalah 2 ton (maksimum jumlah barang yang bisa diangkut adalah 7 buah
dengan sisa 1 ton)
 Nilai rupiah terbaik dihitung dari jumlah barang A yang diangkut ditambah rupiah terbaik dari
sisa kapasitas di tahap 2
 Siapkan kolom A = 0, A = 1, A = 3, A = 4, A = 5, A = 6, A = 7
 Hasil terbaik tahap 1 secara keseluruhan adalah 492 juta dengan membawa 6 buah barang A
(6 x 96 juta = 396 juta)
 Dari tahap 2, tambahan 96 juta dari kolom B = 0 (artinya tidak ada barang B yang diangkut)
 Tahap 3, Nilai 96 dari kolom C = 1 (berarti membawa barang C = 1)
 Maksimum (A, B, C) = (6, 0, 1)

Daryono, Riset Operasi 2: Bab 1 Pemrograman Dinamis 23

MATEMATIKA ITS

Kapasitas A=0 A=1 A=2 A=3 A=4 A=5 A=6 A=7 𝒇∗𝟑 (𝒙𝟑 ) 𝒙∗𝟑
15 0 66 132 198 264 330 396 462
+ + + + + + + + 492 6
480 406 347 288 192 155 96 0
Jumlah Nilai 480 472 479 486 456 486 492 462 96
𝑥3 = 1 𝑖𝑡𝑒𝑚 𝑥3 = 1 𝑖𝑡𝑒𝑚
𝑥2 = 2 𝑖𝑡𝑒𝑚 𝑀𝑎𝑘𝑠: 𝑥2 = 0 𝑖𝑡𝑒𝑚
𝑥1 = 1 𝑖𝑡𝑒𝑚 𝑥1 = 6 𝑖𝑡𝑒𝑚
Ringkasan
Tahap 1 2 3 Jumlah
Bawa Barang A=6 B=0 C=1
Tonase 12 0 3 15 Ton
Rupiah 396 0 96 492 Juta

Daryono, Riset Operasi 2: Bab 1 Pemrograman Dinamis 24

12
3/16/2021

MATEMATIKA ITS

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 = cost) dan total keuntungan (revenue) yang akan diperoleh (R) dari pengembangan
usaha itu. Perusahaan menganggarkan Rp 5 milyar untuk alokasi dana bagi ketiga pabriknya itu.

Daryono, Riset Operasi 2: Bab 1 Pemrograman Dinamis 25

MATEMATIKA ITS
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 untuk setiap
pabrik. Tujuan Perusahaan adalah memperoleh keuntungan yang maksimum dari pengalokasian
dana sebesar Rp 5 milyar tersebut. Selesaikan persoalan ini dengan program dinamis.

Pabrik 1 Pabrik2 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 - -

Catatan
 0 artinya tidak ada alokasi dana
 " − “ tidak mengajukan proposal
Daryono, Riset Operasi 2: Bab 1 Pemrograman Dinamis 26

13
3/16/2021

MATEMATIKA ITS

Penyelesaian dengan Program Dinamis


 Tahap (k) adalah proses mengalokasikan dana untuk setiap pabrik (ada 3 tahap, tiap pabrik
mendefinisikan sebuah tahap).
 Status (xk) menyatakan jumlah modal yang dialokasikan pada pada setiap tahap (namun terikat
bersama semua tahap lainnya).
 Alternatif (p) menyatakan proposal proyek yang diusulkan setiap pabrik. Pabrik 1, 2, dan 3
masing-masing memiliki 3 , 4 dan 2 alternatif proposal.

Pabrik 1 alternatif proposal: proyek 1, 2 dan 3


Pabrik 2 alternatif proposal: proyek 1, 2, 3 dan 4
Pabrik 3 alternatif proposal: proyek 1 dan 2

Daryono, Riset Operasi 2: Bab 1 Pemrograman Dinamis 27

MATEMATIKA ITS
Peubah status yang terdapat pada tahap 1, 2, dan 3:
𝑥1 =  modal yang dialokasikan pada tahap 1
𝑥2 =  modal yang dialokasikan pada tahap 1 dan 2
𝑥3 =  modal yang dialokasikan pada tahap 1, 2, dan 3

𝑥3
𝑥2
𝑥1

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

Daryono, Riset Operasi 2: Bab 1 Pemrograman Dinamis 28

14
3/16/2021

MATEMATIKA ITS
Penyelesaian dengan Program Dinamis Maju.
Misalkan,
𝑅𝑘 (𝑝𝑘 ) = keuntungan dari alternatif pk pada tahap k
𝑓𝑘 (𝑥𝑘 ) = keuntungan optimal dari tahap 1, 2, …, dan k yang diberikan oleh status xk

Relasi rekurens keuntungan optimal:


𝑓1 𝑥1 = max 𝑅1 (𝑝1 )
𝑓𝑒𝑎𝑠𝑏𝑙𝑒
𝑝𝑟𝑜𝑝𝑜𝑠𝑎𝑙_𝑝1

𝑓𝑘 𝑥𝑘 = max 𝑅𝑘 (𝑝𝑘 )
𝑓𝑒𝑎𝑠𝑏𝑙𝑒
𝑝𝑟𝑜𝑝𝑜𝑠𝑎𝑙_𝑝𝑘
Catatan:
1. 𝑥𝑘−1 = 𝑥𝑘 − 𝑐𝑘 𝑝𝑘
𝑐(𝑝𝑘 ) adalah biaya untuk alternatif pk pada tahap k.
2. Proposal pk dikatakan layak (feasible) jika biayanya, c(pk), tidak melebihi nilai
status xk pada tahap k.
Daryono, Riset Operasi 2: Bab 1 Pemrograman Dinamis 29

Relasi rekurens keuntungan optimal menjadi


𝑓1 𝑥1 = max 𝑅1 (𝑝1 ) (𝐵𝑎𝑠𝑖𝑠) MATEMATIKA ITS
𝑓𝑒𝑎𝑠𝑏𝑙𝑒
𝑝𝑟𝑜𝑝𝑜𝑠𝑎𝑙_𝑝1
𝑓𝑘 𝑥𝑘 = max 𝑅𝑘 𝑝𝑘 + 𝑓𝑘−1 𝑥𝑘 − 𝑐𝑘 (𝑝𝑘 ) (𝑅𝑒𝑘𝑢𝑟𝑒𝑛𝑠𝑖)
𝑓𝑒𝑎𝑠𝑏𝑙𝑒
𝑝𝑟𝑜𝑝𝑜𝑠𝑎𝑙_𝑝𝑘

Tahap 1
𝑓1 𝑥1 = max 𝑅1 (𝑝1 )
𝑐1 (𝑝𝑖)≤𝑥1
𝑝1 =1,2,3

𝑹𝟏 (𝒑𝟏 ) Solusi Optimal


𝒙𝟏
𝒑𝟏 = 𝟏 𝒑𝟏 = 𝟐 𝒑𝟏 = 𝟑 𝑓1 (𝑥1 ) 𝑝1∗
0 0 - - 0 1
1 0 5 - 5 2
2 0 5 6 6 3
3 0 5 6 6 3
4 0 5 6 6 3
5 0 5 6 6 3
Daryono, Riset Operasi 2: Bab 1 Pemrograman Dinamis 30

15
3/16/2021

MATEMATIKA ITS
Tahap 2

𝑓2 𝑥2 = max 𝑅2 𝑝1 + 𝑓1 𝑥2 − 𝑐2 (𝑝2 )
𝑐1 (𝑝𝑖 )≤𝑥1
𝑝1 =1,2,3

𝑅2 𝑝1 + 𝑓1 𝑥2 − 𝑐2 (𝑝2 ) Solusi Optimal


𝒙𝟐
𝒑𝟐 = 𝟏 𝒑𝟐 = 𝟐 𝒑𝟐 = 𝟑 𝒑𝟐 = 𝟑 𝑓2 (𝑥2 ) 𝑝2∗
0 0+0=0 - - - - 1
1 0+5=5 - - - - 1
2 0+6=6 8+0=8 6 - - 2
3 0+6=6 8 + 5 = 13 6 9+0=9 - 2
4 0+6=6 8 + 6 = 14 6 9 + 5 = 14 12 + 0 = 12 2 atau 3
5 0+6=6 8 + 6 = 14 6 9 + 6 = 15 12 + 5 = 17 4

Daryono, Riset Operasi 2: Bab 1 Pemrograman Dinamis 31

Tahap 3
𝑓3 𝑥3 = max 𝑅3 𝑝2 + 𝑓2 𝑥3 − 𝑐3 (𝑝3 ) MATEMATIKA ITS
𝑐1 (𝑝𝑖 )≤𝑥1
𝑝1 =1,2,3

𝑅3 𝑝2 + 𝑓2 𝑥3 − 𝑐3 (𝑝3 ) Solusi Optimal


𝒙𝟑
𝒑𝟑 = 𝟏 𝒑𝟑 = 𝟐 𝑓2 (𝑥2 ) 𝑝2∗
5 0 + 17 = 17 3 + 14 = 17 17 1 atau 2

Rekontruksi Solusi
𝒙𝟑 𝒑∗𝟑 𝒙𝟐 𝒑∗𝟐 𝒙𝟏 𝒑∗𝟏 𝒑∗𝟏 , 𝒑∗𝟐 , 𝒑∗𝟑
1 (5 – 0 = 5) 4 (5 – 4 = 1) 2 2, 4, 1 → 5 + 12 + 0 = 17
𝑐 = 1+4+0
1 2 (4 –2 = 2) 3 3, 2, 2 → 6 + 8 + 3 = 17
𝑐 = 2+2+1

2 (5 – 1 = 4)
𝑐 = 1+3+1
3 (4 – 3 = 1) 3 2, 3, 2 = 5 + 9 + 3 = 17

Daryono, Riset Operasi 2: Bab 1 Pemrograman Dinamis 32

16
3/16/2021

Integer(1/0) Knapsack MATEMATIKA ITS


Pada persoalan ini,
1. Tahap (k) adalah proses memasukkan barang ke dalam karung (knapsack) (ada 3 tahap).
2. Status (y) menyatakan kapasitas muat karung yang tersisa setelah memasukkan barang pada
tahap sebelumnya.
Dari tahap ke-1, kita masukkan objek ke-1 ke dalam karung untuk setiap satuan kapasitas karung
sampai batas kapasitas maksimumnya. Karena kapasitas karung adalah bilangan bulat, maka
pendekatan ini praktis.
 Misalkan ketika memasukkan objek pada tahap k, kapasitas muat karung sekarang adalah
𝑦 − 𝑤𝑘
 Untuk mengisi kapasitas sisanya, kita menerapkan prinsip optimalitas dengan mengacu pada
nilai optimum dari tahap sebelumnya untuk kapasitas sisa
𝑦 − 𝑤𝑘 (𝑦𝑎𝑖𝑡𝑢: 𝑓𝑘−1 (𝑦 − 𝑤𝑘 ).

Daryono, Riset Operasi 2: Bab 1 Pemrograman Dinamis 33

MATEMATIKA ITS
 Selanjutnya, kita bandingkan nilai keuntungan dari objek pada tahap k (yaitu pk) plus nilai
𝑓𝑘−1 (𝑦 − 𝑤𝑘 ) dengan keuntungan pengisian hanya k–1 macam objek, 𝑓𝑘−1 (𝑦).
 Jika 𝑝𝑘 + 𝑓𝑘−1 (𝑦 − 𝑤𝑘 ) lebih kecil dari 𝑓𝑘−1 (𝑦), maka objek yang ke-kt idak dimasukkan ke
dalam karung, tetapi jika lebih besar, maka objek yang ke-k dimasukkan.
 Relasi rekurens untuk persoalan ini adalah
𝑓0 𝑦 = 0, 𝑦 = 0, 1, 2, … , 𝑀 (basis)
𝑓𝑘 𝑦 = −∞, 𝑦 < 0 (basis)
𝑓𝑘 𝑦 = 𝑚𝑎𝑥 𝑓𝑘−1 𝑦 , 𝑝𝑘 + 𝑓𝑘−1 𝑦 − 𝑤𝑘 , 𝑘 = 1,2, … , 𝑛 (rekurens)
 𝑓𝑘 𝑦 adalah keuntungan optimum dari persoalan 0/1 Knapsack pada tahap k untuk kapasitas
karung sebesar y.
 𝑓0 𝑦 = 0 adalah nilai dari persoalan knapsack kosong (tidak ada persoalan knapscak) dengan
kapasitas y,
 𝑓𝑘 𝑦 = −∞ adalah nilai dari persoalan knapsack untuk kapasitas negatif. Solusi optimum dari
persoalan 0/1 Knapsack adalah 𝑓𝑛 𝑀 .
Daryono, Riset Operasi 2: Bab 1 Pemrograman Dinamis 34

17
3/16/2021

Contoh MATEMATIKA ITS

M=5
Barang ke-i 𝒘𝒊 𝒑𝒊
1 2 65
2 3 80
3 1 30

Daryono, Riset Operasi 2: Bab 1 Pemrograman Dinamis 35

Tahap 1
MATEMATIKA ITS
𝑓1 𝑦 = 𝑚𝑎𝑥 𝑓0 𝑦 , 𝑝1 + 𝑓0 (𝑦 − 𝑤1 )
= 𝑚𝑎𝑥 𝑓0 𝑦 , 65 + 𝑓0 (𝑦 − 2)

Solusi Optimum
y
𝑓0 (𝑦) 65 + 𝑓0 (𝑦 − 2) 𝑓1 (𝑦) 𝑥1∗ , 𝑥2∗ , 𝑥3∗
0 0 −∞ 0 (0, 0, 0)
1 0 −∞ 0 (0, 0, 0)
2 0 65 65 (1, 0, 0)
3 0 65 65 (1, 0, 0)
4 0 65 65 (1, 0, 0)
5 0 65 65 (1, 0, 0)

Daryono, Riset Operasi 2: Bab 1 Pemrograman Dinamis 36

18
3/16/2021

Tahap 2
MATEMATIKA ITS
𝑓2 𝑦 = 𝑚𝑎𝑥 𝑓1 𝑦 , 𝑝2 + 𝑓1 (𝑦 − 𝑤2 )
= 𝑚𝑎𝑥 𝑓1 𝑦 , 80 + 𝑓1 (𝑦 − 3)

Solusi Optimum
y
𝑓0 (𝑦) 65 + 𝑓0 (𝑦 − 2) 𝑓1 (𝑦) 𝑥1∗ , 𝑥2∗ , 𝑥3∗
0 0 80 + −∞ = −∞ 0 (0, 0, 0)
1 0 80 + −∞ = −∞ 0 (0, 0, 0)
2 65 80 + −∞ = −∞ 65 (1, 0, 0)
3 65 80 + 0 = 80 80 (0, 1, 0)
4 65 80 + 0 = 80 80 (0, 1, 0)
5 65 80 + 65 = 145 145 (1, 1, 0)

Daryono, Riset Operasi 2: Bab 1 Pemrograman Dinamis 37

Tahap 3
MATEMATIKA ITS
𝑓3 𝑦 = 𝑚𝑎𝑥 𝑓2 𝑦 , 𝑝3 + 𝑓2 (𝑦 − 𝑤3 )
= 𝑚𝑎𝑥 𝑓2 𝑦 , 30 + 𝑓2 (𝑦 − 1)
Solusi Optimum
y
𝑓0 (𝑦) 65 + 𝑓0 (𝑦 − 2) 𝑓1 (𝑦) 𝑥1∗ , 𝑥2∗ , 𝑥3∗
0 0 33 + −∞ = −∞ 0 (0, 0, 0)
1 0 30 + −∞ = −∞ 0 (0, 0, 0)
2 65 30 + 0 = 30 65 (1, 0, 0)
3 80 30 + 65 = 95 95 (1, 0, 1)
4 80 30 + 80 = 110 110 (0, 1, 1)
5 145 30 + 80 = 110 145 (1, 1, 0)
Solusi Optimum
𝑥 = 1, 1, 0 𝑑𝑒𝑛𝑔𝑎𝑛 ෍ 𝑝 = 𝑓 = 145

Daryono, Riset Operasi 2: Bab 1 Pemrograman Dinamis 38

19
3/16/2021

MATEMATIKA ITS
Travelling Salesperson Problem (TSP)
Diberikan sejumlah kota dan diketahui jarak antar kota. Tentukan tur terpendek yang harus dilalui
oleh seorang pedagang bila pedagang itu berangkat dari sebuah kota asal dan menyinggahi setiap
kota tepat satu kali dan kembali lagi ke kota asal keberangkatan (masalah sirkuit Hamilton).

Daryono, Riset Operasi 2: Bab 1 Pemrograman Dinamis 39

MATEMATIKA ITS

 Misalkan G = (V, E) adalah graf lengkap berarah dengan sisi-sisi yang diberi harga 𝑐𝑖𝑗 > 0.
 Misalkan |V| = n dan n > 1. Setiap simpul diberi nomor 1, 2, …, n.
 Asumsikan perjalanan (tur) dimulai dan berakhir pada simpul 1.
 Setiap tur pasti terdiri dari sisi (1, k) untuk beberapa 𝑘 ∈ 𝑉 − {1} dan sebuah lintasan dari simpul
k ke simpul 1.
 Lintasan dari simpul k ke simpul 1 tersebut melalui setiap simpul di dalam V – {1, k} tepat hanya
sekali.
 Prinsip Optimalitas: jika tur tersebut optimal maka lintasan dari simpul k ke simpul 1 juga
menjadi lintasan k ke 1 terpendek yang melalui simpul-simpul di dalam V – {1, k}.
 Misalkan f(i, S) adalah bobot lintasan terpendek yang berawal pada simpul i, yang melalui semua
simpul di dalam S dan berakhir pada simpul 1.
 Nilai f(1, V–{1}) adalah bobot tur terpendek.

Daryono, Riset Operasi 2: Bab 1 Pemrograman Dinamis 40

20
3/16/2021

MATEMATIKA ITS
Hubungan rekursif:

𝑓 1, 𝑉 − 1 = min 𝑐1𝑘 + 𝑓 𝑘, 𝑉 − {1, 𝑘} (1)


2≤𝑘≤𝑛

Dengan merampatkan persamaan (1), diperoleh


𝑓 𝑖, ∅ = 𝑐𝑖,1 ; 2≤𝑖≤𝑛 (𝑏𝑎𝑠𝑖𝑠)
𝑓 𝑖, 𝑆 = min 𝑐𝑖𝑗 + 𝑓 𝑗, 𝑆 − {𝑗} ; 𝑟𝑒𝑘𝑢𝑟𝑒𝑛𝑠𝑖 (2)
𝑗𝜖𝑆

Gunakan persamaan (2) untuk memperoleh f (i,S) untuk |S| = 1, f (i,S) untuk |S| = 2, dan seterusnya
sampai untuk |S| = n – 1

Daryono, Riset Operasi 2: Bab 1 Pemrograman Dinamis 41

MATEMATIKA ITS
Contoh 20
Tinjau persoalan TSP untuk n = 4: 8
2
1 2 3 4 10 10
1 0 10 15 20 5 8
2 5 0 9 10 1 4
3 6 13 0 12 9
4 8 8 9 0 13
15
9
6 12
Tahap 1: 𝑓 𝑖, ∅ = 𝑐𝑖𝑗 , 2≤𝑖≤𝑛
3
Diperoleh:
𝑓 2, ∅ = 𝑐21 = 5 ;
𝑓 3, ∅ = 𝑐31 = 6 ;
𝑓 4, ∅ = 𝑐41 = 8 ;

Daryono, Riset Operasi 2: Bab 1 Pemrograman Dinamis 42

21
3/16/2021

MATEMATIKA ITS
Tahap 2:
𝑓 𝑖, 𝑆 = min 𝑐𝑖𝑗 + 𝑓 𝑗, 𝑆 − 𝑗 , 𝑢𝑛𝑡𝑢𝑘 𝑆 = 1
𝑗𝜖𝑆

Diperoleh:
𝑓 2, {3} = min 𝑐23 + 𝑓 3, ∅ = min 9 + 6 = min 15 = 15 ;
𝑓 2, {4} = min 𝑐24 + 𝑓 4, ∅ = min 10 + 8 = min 18 = 18 ;
𝑓 3, {2} = min 𝑐32 + 𝑓 2, ∅ = min 13 + 5 = min 18 = 18 ;
𝑓 3, {4} = min 𝑐34 + 𝑓 4, ∅ = min 12 + 8 = min 20 = 20 ;
𝑓 4, {2} = min 𝑐42 + 𝑓 2, ∅ = min 8 + 5 = min 13 = 13 ;
𝑓 4, {3} = min 𝑐43 + 𝑓 3, ∅ = min 9 + 6 = min 15 = 15 ;

Daryono, Riset Operasi 2: Bab 1 Pemrograman Dinamis 43

Tahap 3: MATEMATIKA ITS


𝑓 𝑖, 𝑆 = min 𝑐𝑖𝑗 + 𝑓 𝑗, 𝑆 − 𝑗 , 𝑢𝑛𝑡𝑢𝑘 𝑆 = 2 𝑑𝑎𝑛 𝑖 ≠ 1, 1 ∉ 𝑆 𝑑𝑎𝑛 𝑖 ∉ 𝑆
𝑗𝜖𝑆

Diperoleh:
𝑓 2, {3,4} = min 𝑐23 + 𝑓 3, 4 , 𝑐24 + 𝑓 4, 3
= min 9 + 20,10 + 15
= min 29,25 = 25

𝑓 3, {2,4} = min 𝑐32 + 𝑓 2, 4 , 𝑐34 + 𝑓 4, 2


= min 13 + 18,12 + 13
= min 31,25 = 25

𝑓 4, {2,3} = min 𝑐42 + 𝑓 2, 3 , 𝑐43 + 𝑓 3, 2


= min 8 + 15,9 + 18
= min 23,27 = 23

Daryono, Riset Operasi 2: Bab 1 Pemrograman Dinamis 44

22
3/16/2021

Dengan menggunakan persamaan (1) diperoleh:


MATEMATIKA ITS
f(1, {2, 3, 4}) = min{c12 + f (2, {3, 4}), c13 + f (3, {2, 4}), c14 + f (4, {2, 3})}
= min{10 + 25, 15 + 25, 20 + 23}
= min{35, 40, 43} = 35
Jadi, bobot tur yang berawal dan berakhir di simpul 1 adalah 35.

Menentukan lintasan yang dilalui


 Tinjau pada setiap f (i, S) nilai j yang meminimumkan persamaan (2)
 Misalkan J(i, S) adalah nilai yang dimaksudkan tersebut. Maka, J(1, {2, 3, 4}) = 2.
Jadi, tur mulai dari simpul 1 selanjutnya ke simpul 2.
 Simpul berikutnya dapat diperoleh dari f (2, {3, 4}), yang mana J(2, {3, 4}) = 4.
Jadi, simpul berikutnya adalah simpul 4.
 Simpul terakhir dapat diperoleh dari f (4, {3}), yang mana J(4, {3}) = 3.
Jadi, tur yang optimal adalah 1, 2, 4, 3, 1 dengan bobot (panjang) = 35.

Daryono, Riset Operasi 2: Bab 1 Pemrograman Dinamis 45

MATEMATIKA ITS

 PEMROGRAMAN DINAMIS DETERMINISTIS

Daryono, Riset Operasi 2: Bab 1 Pemrograman Dinamis 46

23

Anda mungkin juga menyukai