Anda di halaman 1dari 29

PAPER

RISET OPERASI

Oleh

IRWANSYAH

G1D007018

PROGRAM STUDI MATEMATIKA

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

UNIVERSITAS MATARAM

2009
Program Dinamik 2

PROGRAM DINAMIK

A. Pendahuluan

A.1. Definisi Program Dinamik.

Program dinamik merupakan 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. Sehingga seringkali dikatakan bahwa program
dinamik merupakan teknik matematis yang sangat berguna untuk membuat
serangkaian keputusan yang saling berkaitan.

Program dinamik membagi masalah yang akan dipecahkan ke dalam beberapa


tahap ( stage ) kemudian diselesaikan tahap demi tahap, dimana setiap tahapnya
melibatkan tepat 1 buah variabel yang dioptimasi. Perhitungan – perhitungan yang
telah dilakukan pada tahap – tahap yang berbeda tadi dihubungkan melalui suatu
perhitungan rekursif dengan tujuan untuk memperoleh solusi optimal yang feasibel (
layak ) untuk masalah secara keseluruhan.

A.2. Karakteristik Program Dinamik.

Beberapa karakteristik dari program dinamik adalah sebagai berikut :

a. Masalah yang akan diselesaikan, dapat dibagi ke dalam beberapa tahap ( stage )
penyelesaian dan dalam setiap tahap hanya diambil satu keputusan terbaik ( policy
decision ).
Di dalam penyelesaiannya, program dinamik membutuhkan serangkaian
keputusan yang saling berkaitan, dimana setiap keputusan berkorespondensi dengan
sebuah stage dari masalah.

b. Masing – masing stage terdiri dari sejumlah state ( status ) yang berkaitan dengan
permulaan ( beginning ) dari stage tersebut.
Secara umum, state dari suatu stage merupakan berbagai macam kemungkinan
input yang ada pada stage tersebut. State menggambarkan rpautan ( link ) antara
Program Dinamik 3

beberapa stage yang ada. Sehingga ketika stage tersebut dioptimasi secara terpisah,
maka keputusan terbaik yang diambil dari stage tadi otomatis layak ( feasibel ) untuk
masalah secara keseluruhan.

c. Pengambilan keputusan terbaik pada setiap stage sangat berperan dalam


mentransformasikan state yang sekarang ke state lainnya yang terkait dengan
permulaan dari stage berikutnya ( kemungkinan juga terkait dengan distribusi
peluang ).
Prosedur penyelesaian masalah dengan program dinamik dapat
diinterpretasikan dalam bentuk network ( jaringan ), dimana setiap node ( simpul )
berkorespondensi dengan suatu state. Network akan terdiri dari beberapa kolom
node, dimana setiap kolom ini berkorespondensi dengan suatu stage. Sehingga,
pergerakan dari satu node ke node yang lain yang berada pada kolom berikutnya
selalu dengan arah ke kanan. Tautan antara node yang satu dengan node lainnya pada
kolom berikutnya menunjukkan kemungkinan keputusan terbaik berkaitan dengan
state mana yang akan dilalui berikutnya. Nilai yang menandai setiap tautan ini
diinterpretasikan sebagai kontribusi langsung ( immediate contribution ) pada fungsi
objektif jika keputusan tersebut dipilih. Dalam sebagian besar masalah yang
diselesaikan dengan program dinamik, tujuan penyelesaian masalah selalu terkait
dengan penentuan jalur terpendek atau jalur terpanjang dari network.

d. Prosedur penyelesaian dirancang untuk menentukan kebijakan terbaik yang


optimum untuk keseluruhan masalah yakni berupa usulan ( prescription ) keputusan
optimal pada setiap stage dari setiap kemungkinan state .
Untuk suatu masalah yang akan diselesaikan, program dinamik memberikan
usulan kebijakan yang berupa apa yang harus dilakukan dengan segala kemungkinan
keadaan yang ada. Pemberian informasi tambahan ini, yang lebih dari sekedar
menspesifikasi penyelesaian optimum ( serangkaian keputusan optimum ) akan
sangat memberikan berbagai macam kemudahan dalam penyelesaian masalah,
termasuk dalam analisis sensitivitas.
Program Dinamik 4

e. Keputusan optimal terbaik yang diambil pada semua stage berikutnya tidak
bergantung pada keputusan optimal yang telah diambil pada stage sebelumnya. Oleh
karena itu, keputusan optimal terbaik yang diambil hanya bergantung pada state yang
berkorespondensi dengan stage tersebut. Prinsip ini disebut sebagai prinsip
optimalitas dari program dinamik.
Secara umum, pengetahuan tentang state yang berkorespondensi dengan stage
yang sedang berjalan ( current stage ) dapat memberikan semua informasi tentang
stage sebelumnya yang nantinya sangat dibutuhkan untuk pengambilan keputusan
terbaik berikutnya. Persoalan yang tidak memiliki sifat yang seperti ini tidak dapat
diformulasikan ke dalam program dinamik.

f. Prosedur penyelesaian diawali dengan mencari keputusan terbaik optimum untuk


stage yang paling akhir.
Keputusan optimal pada stage paling akhir menentukan keputusan optimal
terbaik yang diambil untuk setiap kemungkinan state pada stage tersebut. Solusi dari
persoalan pada stage paling akhir ini biasanya trivial.

g. Jika keputusan optimal untuk stage n + 1 diketahui, maka terdapat hubungan rekursif
antara keputusan optimal yang diketahui tadi dengan keputusan optimal pada stage
ke- n.
Notasi – notasi yang digunakan dalam program dinamik adalah sebagai
berikut ;
N = Banyaknya stage.
n = Label untuk stage yang sedang berjalan.
𝑠𝑠𝑛𝑛 = State yang sedang berlaku pada stage ke n.
𝑥𝑥𝑛𝑛 = Variabel keputusan untuk stage ke n.
𝑥𝑥𝑛𝑛∗ = Nilai optimal untuk 𝑥𝑥𝑛𝑛 ( pada state 𝑠𝑠𝑛𝑛 yang diberikan ).
𝑓𝑓𝑛𝑛 (𝑠𝑠𝑛𝑛 , 𝑥𝑥𝑛𝑛 ) = Kontribusi dari stage n, n+1, ... ,N pada fungsi objektif apabila
sistem penyelesaian dimulai dari state 𝑠𝑠𝑛𝑛 pada stage ke n,
keputusan 𝑥𝑥𝑛𝑛 untuk kemudian keputusan terbaik yang optimal
dapat dibuat.
𝑓𝑓𝑛𝑛 ∗ (𝑠𝑠𝑛𝑛 ) = 𝑓𝑓𝑛𝑛 (𝑠𝑠𝑛𝑛 , 𝑥𝑥𝑛𝑛 ∗ )
Program Dinamik 5

Dan relasi rekursif antar stage akan selalu berbentuk :

𝑓𝑓𝑛𝑛 ∗ (𝑠𝑠𝑛𝑛 ) = max{𝑓𝑓𝑛𝑛 (𝑠𝑠𝑛𝑛 , 𝑥𝑥𝑛𝑛 )}


𝑥𝑥 𝑛𝑛

Atau
𝑓𝑓𝑛𝑛 ∗ (𝑠𝑠𝑛𝑛 ) = min{𝑓𝑓𝑛𝑛 (𝑠𝑠𝑛𝑛 , 𝑥𝑥𝑛𝑛 )}
𝑥𝑥 𝑛𝑛

h. Dengan menggunakan hubungan rekursif, prosedur penyelesaian dimulai dari stage


paling akhir dan bergerak mundur melalui stage demi stage – dan di setiap stage
diperoleh keputusan optimal untuk stage tersebut – sampai diperoleh keputusan
optimal pada stage paling awal ( initial stage ). Sehingga serangkaian keputusan
terbaik optimal untuk keseluruhan masalah diperoleh. Yaitu 𝑥𝑥1 ∗ untuk state awal 𝑠𝑠1 ,
𝑥𝑥2 ∗ untuk menghasilkan state 𝑠𝑠2 , 𝑥𝑥3 ∗ untuk menghasilkan state 𝑠𝑠3 , begitupula yang
ke 4 dan seterusnya hingga 𝑥𝑥𝑁𝑁 ∗ untuk menghasilkan state 𝑠𝑠𝑁𝑁 .
Program Dinamik 6

B. Program Dinamik Probabilistik.

Program dinamik probabilistik merupakan program dinamik dimana state pada


tahap berikutnya tidak ditentukan secara penuh oleh keputusan terbaik dan state pada
tahap yang sebelumnya ( state saat ini ). Hal ini ditandai dengan adanya distribusi peluang
untuk state yang mana selanjutnya akan dipilih. Akan tetapi, distribusi peluang tersebut
ditentukan oleh keputusan dan state pada tahap sebelumnya. Hal ini yang kemudian
menjadi pembeda antara program dinamik deterministik dengan program dinamik
probabilistik.

Perhatikan ilustrasi struktur dasar dari pemrograman dinamik probabilistik berikut,

Misalkan S merupakan banyaknya kemungkinan state pada stage ke- n + 1. Jika pada
p ke n diberikan state sn dan keputusan xn , maka sistem akan bergerak ke state i dengan
peluang pi ( i = 1, 2, ... , S ). Dan apabila sistem bergerak ke state i, maka Ci menunjukkan
kontribusi langsung dari tahap ke n terhadap fungsi objektif dari masalah.

Ketika ilusrasi di atas dilengkapi dengan semua kemungkinan state dan keputusan (
Decission ) yang akan diambil untuk setiap tahap penyelesaian, maka ilustasi tersebut
sering kali disebut dengan pohon keputusan.
Program Dinamik 7

Karena adanya struktur probabilistik di dalam program dinamik probabilistik,


akibatnya hubungan antara fn(sn , xn) dengan fn+1*( sn+1 ) cukup rumit. Dan bentuk
hubungannya akan sangat bergantung pada bentuk dari fungsi objektif dari masalah secara
keseluruhan. Contoh kasusnya, misalkan tujuan dari pemrograman dinamik yang
dilakukan adalah untuk meminimumkan total-kontibusi-harapan dari setiap tahap
penyelesaian. Pada kasus ini, fn(sn , xn) menunjukkan total-harapan minimum dari tahap ke
n dan seterusnya, dan diberikan sn dan xn berturut – turut merupakan state dan keputusan
yang diambil ( policy decission ) pada tahap ke n. Akibatnya,

𝑆𝑆

𝑓𝑓𝑛𝑛 (𝑠𝑠𝑛𝑛 , 𝑥𝑥𝑛𝑛 ) = � 𝑝𝑝𝑖𝑖 [𝐶𝐶𝑖𝑖 + 𝑓𝑓𝑛𝑛∗+1 (𝑖𝑖)]


𝑖𝑖=1

Dengan
∗ (𝑖𝑖)
𝑓𝑓𝑛𝑛+1 = min 𝑓𝑓𝑛𝑛 +1 (𝑖𝑖, 𝑥𝑥𝑛𝑛+1 )
𝑥𝑥 𝑛𝑛 +1

Dimana peminimuman diperoleh melalui pemilihan nilai – nilai yang feasible ( layak )
dari 𝑥𝑥𝑛𝑛+1 .

Untuk mempermudah pendalaman konsep program dinamik probabilistik, perhatikan


contoh berikut.

Contoh

Perusahaan manufaktur HIT-AND-MISS mendapatkan pesanan untuk mensuplai


sebuah item produk dengan tipe tertentu. Pemesan telah menentukan spesifikasi dari item
produk yang dipesannya, seperti persyaratan kualitas barang. Yang mengakibatkan
perusahaan manufaktur tersebut harus mempoduksi lebih dari satu item produk untuk
mendapatkan item produk sesuai dengan keinginan pemesan. Total item tambahan yang
diproduksi untuk mendapatkan item produk sesuai keinginan pemesan ini disebut dengan
reject allowance atau besarnya total penolakan item produk oleh pemesan.

Perusahaan tersebut memprediksi bahwa setiap item yang mereka produksi dengan
tipe sesuai pesanan tadi memiliki peluang memenuhi syarat pemesan sebesar 1/2 , dan
akan rusak ( tanpa kemungkinan untuk diperbaiki ) dengan peluang sebesar 1/2. Dengan
demikian, total item produk yang memenuhi syarat pemesan dari keseluruhan total item
Program Dinamik 8

yang diproduksi sebanyak L akan mengikuti Distribusi peluang berbentuk Binomial ; i.e.
peluang untuk gagal memproduksi item yang memenuhi syarat pemesan dari total
1
produksi sebanyak L adalah (2)𝐿𝐿 .

Biaya marjinal untuk produksi item tersebut diprediksi sebesar $100 per item (
termasuk juga yang rusak ), dan kelebihan item produksi tidak berharga. Kemudian,
karena produk yang dipesan memiliki spesifikasi tertentu sehingga membutuhkan biaya
untuk pengaturan (set up ) produksi sebesar $300. Dan set up dengan biaya yang sama
akan terus dilakukan pada proses produksi berikutnya apabila dari proses sebelumnya
belum dapat diproduksi item produk yang memenuhi syarat pemesan.

Produsen memiliki kesempatan untuk memproduksi item yang diinginkan oleh


pemesan tidak lebih dari 3 kali produksi. Dan apabila sampai 3 kali produksi produsen
belum mampu menghasilkan item produk yang diharapkan, maka produsen akan
mengalami kerugian dan memperoleh biaya penalty sebesar $1,600.

Yang menjadi permasalahan adalah kebijakan seperti apa yang akan diambil oleh
pimpinan pabrik yang menyangkut ukuran produksi item ( 1 + reject allowance ) untuk
batasan kesempatan produksi yang diberikan sehingga dapat meminimumkan biaya
produksi.

Perumusan masalah

Perumusan program dinamik untuk masalah di atas adalah sebagai berikut :

Tahap ke – n = Produksi ke – n ( n = 1, 2, 3 )

xn = Banyaknya item yang diproduksi pada tahap ke – n

state sn = Banyaknya item produk yang memenuhi syarat pemesan yang masih
dibutuhkan ( 1 atau 0 ) pada awal dari tahap ke – n.

Dengan demikian, pada tahap 1, state s1 = 1. Jika paling sedikit 1 item produk yang
memenuhi syarat pemesan diperoleh pada tahap produksi berikutnya, maka state berubah
menjadi sn = 0, sehingga setelah itu tidak ada lagi biaya tambahan yang harus dikeluarkan.
Program Dinamik 9

Berdasarkan tujuan utama masalah, maka

fn( sn , xn ) = Biaya total yang diharapkan untuk tahap ke – n, ... , 3 apabila sistem dimulai
dari state sn pada tahap ke – n, dengan keputusan xn , dan keputusan optimal
diambil setelah itu.

𝑓𝑓𝑛𝑛∗ (𝑠𝑠𝑛𝑛 ) = min𝑥𝑥 𝑛𝑛 =0,1 ,… 𝑓𝑓𝑛𝑛 (𝑠𝑠𝑛𝑛 , 𝑥𝑥𝑛𝑛 )

Dimana 𝑓𝑓𝑛𝑛∗ (0) = 0 . Dengan menggunakan $100 sebagai satuan uang, biaya dari tahap ke
– n adalah [𝐾𝐾(𝑥𝑥𝑛𝑛 ) + 𝑥𝑥𝑛𝑛 ] tanpa memperhatikan tahap produksi berikutnya, dimana K(xn)
adalah fungsi dalam xn sedemikian hingga :

0, 𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎 𝑥𝑥𝑛𝑛 = 0
𝐾𝐾(𝑥𝑥𝑛𝑛 ) = �
3 , 𝑎𝑎𝑎𝑎𝑎𝑎𝑏𝑏𝑏𝑏𝑏𝑏𝑏𝑏 𝑥𝑥𝑛𝑛 > 0

Oleh karean itu, untuk sn = 1,

1 𝑥𝑥 𝑛𝑛 1 𝑥𝑥 𝑛𝑛
𝑓𝑓𝑛𝑛 (1, 𝑥𝑥𝑛𝑛 ) = 𝐾𝐾(𝑥𝑥𝑛𝑛 ) + 𝑥𝑥𝑛𝑛 + �2� 𝑓𝑓𝑛𝑛∗+1 (1) + �1 − �2� � 𝑓𝑓𝑛𝑛∗+1 (0)

1 𝑥𝑥 𝑛𝑛 ∗ (1)
= 𝐾𝐾(𝑥𝑥𝑛𝑛 ) + 𝑥𝑥𝑛𝑛 + �2� 𝑓𝑓𝑛𝑛+1

[ dimana 𝑓𝑓4∗ (1) didefinisikan bernilai 16, biaya akhir apabila tidak diperoleh item produk
yang memenuhi syarat pemesan ]. Ilustrasi dasar dari hubungan di atas, terlihat pada
gambar berikut :
Program Dinamik 10

Akibatnya, hubungan rekursif untuk perhitungan dalam program dinamik adalah

1 𝑥𝑥 𝑛𝑛
𝑓𝑓𝑛𝑛∗ (1) = min𝑥𝑥 𝑛𝑛 =0,1 ,… �𝐾𝐾(𝑥𝑥𝑛𝑛 ) + 𝑥𝑥𝑛𝑛 + �2� 𝑓𝑓𝑛𝑛∗+1 (1)�

Untuk n = 1, 2, 3.

Prosedur penyelesaian

Hasil perhitungan menggunakan hubungan rekursif di atas, dapat dilihat pada tabel berikut
;

𝟏𝟏 𝒙𝒙𝟑𝟑
𝒇𝒇𝟑𝟑 (𝟏𝟏, 𝒙𝒙𝟑𝟑 ) = 𝑲𝑲(𝒙𝒙𝟑𝟑 ) + 𝒙𝒙𝟑𝟑 + 𝟏𝟏𝟏𝟏 � �
x3 𝟐𝟐
𝒇𝒇𝟑𝟑∗ (𝒔𝒔𝟑𝟑 ) 𝒙𝒙∗𝟑𝟑

s3 0 1 2 3 4 5
n=3
0 0 0 0

1
1 16 12 9 8 8 8 8 3 atau 4
2

𝟏𝟏 𝒙𝒙𝟐𝟐 ∗
𝒇𝒇𝟐𝟐 𝒙𝒙𝟐𝟐 = 𝑲𝑲(𝒙𝒙𝟐𝟐 + 𝒙𝒙𝟐𝟐 + � � 𝒇𝒇𝟑𝟑 (𝟏𝟏)
(𝟏𝟏, ) )
x2 𝟐𝟐
𝒇𝒇𝟐𝟐∗ (𝒔𝒔𝟐𝟐 ) 𝒙𝒙∗𝟐𝟐

s2 0 1 2 3 4 -
n=2
0 0 - 0 0

1
1 8 8 7 7 7 - 7 2 atau 3
2

Dimana 𝑓𝑓3∗ (1) = 8.


Program Dinamik 11

𝟏𝟏 𝒙𝒙𝟏𝟏
𝒇𝒇𝟏𝟏 (𝟏𝟏, 𝒙𝒙𝟏𝟏 ) = 𝑲𝑲(𝒙𝒙𝟏𝟏 ) + 𝒙𝒙𝟏𝟏 + � � 𝒇𝒇∗𝟐𝟐 (𝟏𝟏)
x1 𝟐𝟐
𝒇𝒇𝟏𝟏∗ (𝒔𝒔𝟏𝟏 ) 𝒙𝒙∗𝟏𝟏
n=1 s1 0 1 2 3 4 -

1 3 7 7 3
1 7 7 6 6 7 - 6 2
2 4 8 16 4

Dimana 𝑓𝑓2∗ (1) = 7.

Dengan demikian, keputusan optimal yang diambil adalah memproduksi 2 item


produk pada produksi pertama ; apabila belum diperoleh item produk yang memenuhi
syarat pemesan, maka diproduksi 2 atau 3 item produk pada produksi kedua ; dan apabila
pada produksi kedua, juga belum diperoleh item produk yang memenuhi syarat tadi, maka
pabrik memproduksi 3 atau 4 item produk pada produksi ketiga. Biaya total pada
keputusan yang diambil ini adalah $675.

C. Contoh Penggunaan Program Dinamik.

1. Pekalian Mariks - Berantai

Masalah perkalian matriks berantai dapat dipandang sebagai berikut :

“ Diberikan sekumpulan atau serangkaian matriks yang akan dihitung hasil kali
titiknya ( Dot Product ), rangkaian matriks diatur sedemikian hingga proses perkalian
titik dapat berlangsung dalam serangkaian operasi perkalian skalar yang minimum “.

Motivasi. Jumlah total dari berapa kali perkalian skalar yang dilakukan di dalam proses
perkalian matriks akan sangat bergantung pada bagaimana pengaturan rangkaian
matriks yang akan dikalikan atau dengan kata lain, pengaturan rangkaian yang berbeda
dapat memberikan jumlah operasi kali skalar yang berbeda pula. Sebagai contoh, akan
dilakukan perkalian matriks berantai b1 dengan ordo 300 x 10, b2 berordo 10 x 300 dan
b3 yang berordo 300 x 10 seperti terlihat dalam sintaks mathematica berikut :
Program Dinamik 12

Ada dua pengaturan rangkaian berbeda untuk melakukan perkalian matriks


berantai di atas, yaitu menghitung b1.b2.b3 dengan cara (b1.b2).b3 atau dengan
b1.(b2.b3). dan keduanya tetap memberikan hasil yang sama. Perlu dicatat bahwa,
jumlah total perkalian skalar yang dilakukan untuk menghitung dot product suatu
matriks berukuran p x q dengan matriks berukuran q x r adalah sebanyak pqr kali.
Sehingga untuk pengaturan rangkaian perkalian (b1.b2).b3, total operasi perkalian
skalar yang dilakukan adalah ;

Sedangkan untuk pengaturan rangkaian perkalian berantai b1.(b2.b3) ;

Hasil terakhir 30 kali lebih sedikit daripada pengaturan yang pertama. Sehingga jelas
terlihat perbedaan yang terjadi dengan pengaturan rangkaian perkalian yang berbeda.

Kemudian, fungsi Built-in Dot ternyata bukanlah pilihan yang tepat untuk
melakukan pekalian berantai matriks untuk mendapatkan urutan perkalian yang
optimal. Berikut adalah berapa besar waktu yang diperlukan untuk menyelesaikan
perkalian berantai pada contoh di atas ;

Tetapi apabila dilakukan pemanggilan fungsi Dot secara eksplisit, akan memberikan

Yang merupakan jangka waktu yang sangat singkat ( 0.00.. detik ).


Program Dinamik 13

Contoh ini memberikan motivasi bahwa ternyata dibutuhkan suatu algoritma


tertentu agar perkalian matriks berantai dapat dilakukan dengan urutan yang optimal (
dalam arti, meminimalkan total perkalian skalar yang dilakukan ).

Masalah. Misalkan rangkaian ( rantai ) matriks yang akan dikalikan adalah A1, A2, . . . ,
An. Dimana Ai berukuran pi x pi+1 . Masalah yang akan diselesaikan adalah menentukan
ongkos ( cost ) perkalian matriks berantai dengan menggunakan pengaturan rangkaian
yang optimum apabila diberikan daftar ukuran matriks 𝑝𝑝 = { 𝑝𝑝1 , … , 𝑝𝑝𝑛𝑛+1 } . Pada
contoh di atas, daftar ukuran matriksnya adalah { 300, 10, 300, 10 }, ongkos dari
evaluasi optimalnya adalah 60000, dan pengaturan rangkaian optimalnya adalah {1,
{2,3}}.

Penghampiran kasar dari masalah ini, yaitu dengan cara menghitung ongkos
untuk setiap kemungkinan pegaturan rangkaian matriks, akan memakan waktu yang
berbentuk fungsi berpangkat n = panjang rantai matriks ( tepatnya, paling sedikit
sebesar 4𝑛𝑛 /𝑛𝑛3/2 ). Pendekatan dengan cara seperti ini sangatlah tidak layak secara
komputasi kecuali jika n nya kecil.

Langkah awal dalam pencarian solusi adalah, harus dipastikan bahwa masalah
perkalian berantai dari matriks memenuhi sifat memiliki substruktur atau subproblem
yang optimal. Substruktur optimal berarti bahwa solusi optimal dari masalah dibangun
dari solusi optimum dari masalah yang lebih sederhana tetapi memiliki struktur yang
sama dengan struktur masalah aslinya. Contohnya, untuk mencari urutan perkalian
yang optimum dari rantai matriks A1A2A3A4A5 haruslah dipandang empat cara
alternatif dalam split masalah awal menjadi : 𝐴𝐴1 (𝐴𝐴2 𝐴𝐴3 𝐴𝐴4 𝐴𝐴5 ), (𝐴𝐴1 𝐴𝐴2 )(𝐴𝐴3 𝐴𝐴4 𝐴𝐴5 ) ,
(𝐴𝐴1 𝐴𝐴2 𝐴𝐴3 )(𝐴𝐴4 𝐴𝐴5 ), dan (𝐴𝐴1 𝐴𝐴2 𝐴𝐴3 𝐴𝐴4 )𝐴𝐴5 . ( Hanya terdapat n-1 buah pecahan dari
masalah awal yang memiliki panjang rangkaian sebanyak n atau dalam contoh adalah
5, sebagai akibat dari tidak berlakunya sifat komutatif pada perkalian matriks ). Jika
diberikan split tertentu dari masalah awal ( salah satu dari alternatif di atas ), Solusi
optimal yang diperoleh ternyata dibangun oleh solusi optimal dari dua subproblem
lainnya. Oleh karena itu, subproblem memiliki struktur yang sama dengan masalah
aslinya yaitu solusi optimumnya dibangun oleh solusi optimum dari subproblem , tetapi
dalam skala yang lebih sederhana.
Program Dinamik 14

Pengamatan ini memberikan suatu rumusan rekursif untuk masalah yang akan
diselesaikan. Misalkan m(i,j) adalah ongkos untuk perkalian matriks berantai Ai ,...,Aj
dengan urutan yang optimal, maka definisi secara rekursif dari m(i,j) adalah

0 𝑗𝑗𝑗𝑗𝑗𝑗𝑗𝑗 𝑖𝑖 = 𝑗𝑗
𝑚𝑚(𝑖𝑖, 𝑗𝑗) = � (1)
min𝑖𝑖≤𝑘𝑘<𝑗𝑗 [𝑚𝑚(𝑖𝑖, 𝑘𝑘) + 𝑚𝑚(𝑘𝑘 + 1, 𝑗𝑗) + 𝑝𝑝𝑖𝑖 𝑝𝑝𝑘𝑘+1 𝑝𝑝𝑗𝑗 +1 ] 𝑗𝑗𝑗𝑗𝑗𝑗𝑗𝑗 𝑖𝑖 < 𝑗𝑗

Persamaan di atas menyatakan bahwa, untuk suatu pemilihan dimana rantai


matriks akan displit ( ditandai dengan indeks k ), ongkos total adalah sama dengan
ongkos optimum dari perkalian matriks berantai di sebelah kiri dari split rantai matriks
awal (𝑚𝑚(𝑖𝑖, 𝑘𝑘)), ditambah dengan ongkos optimum dari perkalian matriks berantai di
sebelah kanan pecahan matriks awal (𝑚𝑚(𝑘𝑘 + 1, 𝑗𝑗)), ditambah ongkos untuk mengalikan
kedua hasil perkalian tadi (𝑝𝑝𝑖𝑖 𝑝𝑝𝑘𝑘+1 𝑝𝑝𝑗𝑗 +1 ). Ongkos optimum adalah ongkos minimum
dari semua kemungkinan pilihan untuk k, yakni j,...,i. Hal inilah yang kemudian
menyebabkan pada masalah perkalian matriks berantai akan terjadi overlapping
subproblem. Sebagai contoh, setiap subproblem 𝐴𝐴1 𝐴𝐴2 𝐴𝐴3 𝐴𝐴4 dan 𝐴𝐴2 𝐴𝐴3 𝐴𝐴4 𝐴𝐴5
memerlukan solusi dari subproblem 𝐴𝐴2 𝐴𝐴3 𝐴𝐴4 . Begitupula, 𝐴𝐴2 𝐴𝐴3 𝐴𝐴4 𝐴𝐴5 memerlukan
solusi dari subproblem 𝐴𝐴3 𝐴𝐴4 𝐴𝐴5 ,yang telah dihitung sebagai bagian dari subproblem
(𝐴𝐴1 𝐴𝐴2 )(𝐴𝐴3 𝐴𝐴4 𝐴𝐴5 ) . keseluruhan masalah dapat dipandang sebagai graf berarah
berbentuk piramida seperti ilustrasi berikut.

Gambar. Struktur masalah perkalian matriks berantai.


Program Dinamik 15

Total banyaknya jalur dari puncak ke suatu simpul lainnya pada graf
menunjukkan berapa kali solusi dari subproblem itu akan diperlukan. [ Cormen, et all,
1990 ] telah menunjukkan bahwa kompleksitas waktu dari proses ini adalah 2𝑛𝑛 .

Pendekatan penyelesaian masalah ini dengan program dinamik adalah dengan


menghitung baris paling bawah dari piramida, 𝑚𝑚(𝑖𝑖, 𝑖𝑖 + 1), untuk i = 1, . . . , n-1;
kemudian menghitung baris kedua dari bawah , 𝑚𝑚(𝑖𝑖, 𝑖𝑖 + 2), untuk i = 1, . . . , n-2 ; dan
seterusnya, sampai akhirnya pada puncak piramida 𝑚𝑚(1, 𝑛𝑛). Kompleksitas waktu ( time
complexity ) dari pendekatan ini adalah 𝑛𝑛3 .

Selain pendekatan backward rekursif seperti di atas, ada juga pendekatan


penyelesaian dengan forward process ( top – down approach ). Berikut adalah hasil
dari proses pedekatan penyelesaian tersebut. Perlu dicatat sebelumnya, bahwa bentuk
penyelesaian adalah terjemahan langsung dari persamaan rekursif pada persamaan (1)
ke dalam bahasa mathematica.

(m[__] digunakan ketika kasus seperti m[i,i] dievaluasi ).

Hasil dari proses ini dapat dilihat pada ilustrasi berikut ;

Gambar. Pola keputusan optimum yang diperoleh dari masalah perkalian matriks
berantai.
Program Dinamik 16

Contoh

Diberikan daftar ukuran matriks berantai yang akan dikalikan sebagai berikut ;

Pemanggilan m[1,6] memberikan jumlah minimum dari proses perkalian skalar yang
dilakukan pada perkalian berantai matriks pada kasus ini. Yaitu

Berikut adalah daftar semua hasil perhitungan dari contoh kasus di atas ;

Algoritma di atas memberikan gambaran tentang ongkos dari urutan optimal


perkalian berantai matriks, tetapi belum memberikan apa urutan perkaliannya. Untuk
mengkonstruksi solusi lengkapnya, fungsi m haruslah sedikit dimodifikasi sintaks
programnya.

Versi modifikasi dari m akan terlihat seperti berikut ;


Program Dinamik 17

Dimana tabel dari ongkos alternatif disimpan dalam suatu variabel lokal bernama
choices , dan indeks matriks dengan ongkos minimum ( dari bagian masalah awal )
yang pada bagian awal tadi dinamakan k, disimpan dalam suatu variabel global
bernama s[i,j] . Apabila bentuk modifikasi ini dijalankan, diperoleh ;

Yang memberikan hasil yang sama dengan bentuk fungsi m semula.

Berikut adalah tabel keseluruhan untuk s ( ditambahkan s[__] untuk penyesuaian ),

Tabel di atas menunjukkan bahwa optimal split untuk masalah utama ( awal ) berada
antara matriks ke-3 dan ke-4 atau k = 3 dan k = 4 ( s[1,6]=3 ). Optimal split untuk
subproblem 𝐴𝐴1 𝐴𝐴2 𝐴𝐴3 berada antara matriks ke 1 dan 2 ( s[1,3]=1 ), dan optimal split
untuk subproblem 𝐴𝐴4 𝐴𝐴5 𝐴𝐴6 berada antara matriks ke 5 dan 6 ( s[4,6]=5 ).
Program Dinamik 18

Jika dibuat dalam bentuk list, maka

Dengan demikian telah diperoleh keputusan yang optimal untuk persoalan perkalian
matriks-berantai di atas.

Metode penyelesaian perkalian matrik berantai dengan panjang rantai dan ukuran
berbeda adalah sama dengan penyelesaian contoh di atas, tinggal dilakukan beberapa
penyesuaian.

2. Model knapsack / Model Muatan - kargo

Model Knapsack pada dasarnya sejalan dengan situasi dimana seorang prajurit
( atau seorang pejalan kaki ) harus memutuskan barang – barang apa saja yang harus ia
masukkan dalam ranselnya. Masalah ini pada umumnya menjelaskan tentang model
alokasi sumber daya dimana suatu sumber daya terbatas yang harus digunakan untuk
sejumlah alternatif tertentu ( misalnya, dana yang terbatas dalam pelaksanaan suatu
proyek ) dengan tujuan untuk memaksimumkan pencapaian target yang telah
ditentukan.

Pada knapsack model, persamaan rekursif dibangun untuk menyelesaikan


masalah yang kaitannya dengan bawaan sejumlah n-item dengan berat W-lb.

Misalkan mi adalah banyaknya unit dari item i dalam bawaan ( knapsack ). ri


dan wi berturut – turut menyatakan daya guna / bayaran ( revenue ) dan berat per unit
item i. Masalah knapsack secara umum dapat ditulis dalam bentuk model matematis
berikut :

𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚 𝑧𝑧 = 𝑟𝑟1 𝑚𝑚1 + ⋯ + 𝑟𝑟𝑛𝑛 𝑚𝑚𝑛𝑛


Program Dinamik 19

Terhadap

𝑤𝑤1 𝑚𝑚1 + ⋯ + 𝑤𝑤𝑛𝑛 𝑚𝑚𝑛𝑛 ≤ 𝑊𝑊

𝑚𝑚1 , 𝑚𝑚2 , … , 𝑚𝑚𝑛𝑛 ≥ 0 𝑑𝑑𝑑𝑑𝑑𝑑 𝑚𝑚1 , 𝑚𝑚2 , … , 𝑚𝑚𝑛𝑛 ∈ ℤ

Stage, state dan alternatif keputusan pada model di atas adalah sebagai berikut :

1. Tahap ke – i digambarkan oleh item ke-i, i = 1, 2, 3, ... , n.


2. Alternatif keputusan pada stage ke – i digambarkan oleh mi , banyaknya item i
yang termasuk ke dalam knapsack ( bawaan ). rimi menyatakan besarnya daya guna
𝑊𝑊
/ keuntungan yang diperoleh terkait dengan mi yang ada. Didefinisikan �𝑤𝑤 �
𝑖𝑖

𝑊𝑊
merupakan bilangan bulat terbesar yang kurang dari atau sama dengan 𝑤𝑤 𝑖𝑖
. Dengan
𝑊𝑊
demikian, mi = 0, 1, 2, ... , �𝑤𝑤 �.
𝑖𝑖

3. State pada stage ke – i dilambangkan dengan xi , berat total yang ditentukan untuk
item ( stage ) ke – i, i+1, ... , n.

Definisikan

𝑓𝑓𝑖𝑖 (𝑥𝑥𝑖𝑖 ) = Manfaat maksimum ( maksimum return ) dari stage ke – i, i+1 dan n ,
apabila diberikan state xi .

Berikut adalah ringkasan langkah dalam penentuan persamaan rekursif dari


masalah knapsack ;

1. Tulis ,
𝑓𝑓𝑖𝑖 (𝑥𝑥𝑖𝑖 ) = min {𝑟𝑟𝑖𝑖 𝑚𝑚𝑖𝑖 + 𝑓𝑓𝑖𝑖+1 (𝑥𝑥𝑖𝑖+1 )} , 𝑖𝑖 = 1,2, … , 𝑛𝑛
𝑊𝑊
𝑚𝑚 𝑖𝑖 =0,1,…,� �
𝑤𝑤 𝑖𝑖
𝑥𝑥 𝑖𝑖 ≤𝑊𝑊

𝑓𝑓𝑛𝑛 +1 (𝑥𝑥𝑛𝑛+1 ) ≡ 0

2. Tulis xi+1 sebagai suatu fungsi dalam xi, agar persamaan untuk 𝑓𝑓𝑖𝑖 (𝑥𝑥𝑖𝑖 ) pada langkah
1 hanya merupakan fungsi dalam xi . Berdasarkan definisi, 𝑥𝑥𝑖𝑖 − 𝑥𝑥𝑖𝑖+1 = 𝑤𝑤𝑖𝑖 𝑚𝑚𝑖𝑖
menyatakan besarnya massa barang yang digunakan pada stage ke – i. Sehingga,
Program Dinamik 20

𝑥𝑥𝑖𝑖+1 = 𝑤𝑤𝑖𝑖 𝑚𝑚𝑖𝑖 − 𝑥𝑥𝑖𝑖 , dan diperoleh bentuk persamaan rekursif untuk masalah
knapsack :
𝑓𝑓𝑖𝑖 (𝑥𝑥𝑖𝑖 ) = min {𝑟𝑟𝑖𝑖 𝑚𝑚𝑖𝑖 + 𝑓𝑓𝑖𝑖+1 (𝑤𝑤𝑖𝑖 𝑚𝑚𝑖𝑖 − 𝑥𝑥𝑖𝑖 )} , 𝑖𝑖 = 1,2, … , 𝑛𝑛
𝑊𝑊
𝑚𝑚 𝑖𝑖 =0,1,…,� �
𝑤𝑤 𝑖𝑖
𝑥𝑥 𝑖𝑖 ≤𝑊𝑊

Contoh kasus
Suatu kapal dengan kapasitas muatan 4 ton, dapat memuat 1 atau lebih item dari 3 jenis
item barang yang ada. Berikut daftar massa wi ( dalam Ton ) dan besarnya bayaran
muatan ri dalam ( dalam ribuan dolar ) untuk item barang ke – i.

Item ke – i 𝒘𝒘𝒊𝒊 𝒓𝒓𝒊𝒊


1 2 31
2 3 47
3 1 14

Permasalahannya adalah : Bagaimana muatan kapal diatur sedemikian hingga bayaran


yang akan didapat maksimum ? .
Berikut langkah penyelesaian per stage – nya ( dengan backward process ) ;

Stage 3
Berikut adalah persamaan yang menjadi dasar dalam membandingkan alternatif –
alternatif keputusan pada stage 3,
𝑓𝑓3 (𝑥𝑥3 ) = max {14𝑚𝑚3 }
𝑚𝑚 3 =0,1,…,4

Tabel berikut merupakan hasil dari perhitungan dengan menggunakan persamaan di


atas
Program Dinamik 21

𝟏𝟏𝟏𝟏𝒎𝒎𝟑𝟑 Solusi optimal


𝒙𝒙𝟑𝟑 𝒎𝒎𝟑𝟑 𝒎𝒎𝟑𝟑 𝒎𝒎𝟑𝟑 𝒎𝒎𝟑𝟑 𝒎𝒎𝟑𝟑
𝒇𝒇𝟑𝟑 (𝒙𝒙𝟑𝟑 ) 𝒎𝒎∗𝟑𝟑
= 𝟎𝟎 = 𝟏𝟏 = 𝟐𝟐 = 𝟑𝟑 = 𝟒𝟒
0 0 - - - - 0 0
1 0 14 - - - 14 1
2 0 14 28 - - 28 2
3 0 14 28 42 - 42 3
4 0 14 28 42 56 56 4

Kolom – kolom yang tidak terisi merupakan nilai yang tak-feasibel ( 𝑤𝑤3 𝑚𝑚3 > 𝑥𝑥3 ).

Stage 2
4
𝑚𝑚𝑚𝑚𝑚𝑚{𝑚𝑚2 } = �3� = 1 atau 𝑚𝑚2 = 0,1

𝑓𝑓2 (𝑥𝑥2 ) = max {47𝑚𝑚2 + 𝑓𝑓3 (𝑥𝑥2 − 3𝑚𝑚2 )}


𝑚𝑚 2 =0,1

𝟒𝟒𝟒𝟒𝒎𝒎𝟐𝟐 + 𝒇𝒇𝟑𝟑 (𝒙𝒙𝟐𝟐 − 𝟑𝟑𝒎𝒎𝟐𝟐 ) Solusi optimal


𝒙𝒙𝟐𝟐
𝒎𝒎𝟐𝟐 = 𝟎𝟎 𝒎𝒎𝟐𝟐 = 𝟏𝟏 𝒇𝒇𝟐𝟐 (𝒙𝒙𝟐𝟐 ) 𝒎𝒎∗𝟐𝟐
0 0+0=0 - 0 0
1 0 + 14 = 14 - 14 0
2 0 + 28 = 28 - 28 0
3 0 + 42 = 42 47 + 0 = 47 47 1
4 0 + 56 = 56 47 + 14 = 61 61 1
Program Dinamik 22

Stage 1
4
max{𝑚𝑚1 } = �2� = 2 atau 𝑚𝑚1 = 0,1,2
4
𝑓𝑓1 (𝑥𝑥1 ) = max {31𝑚𝑚1 + 𝑓𝑓2 (𝑥𝑥1 − 2𝑚𝑚1 )} max{𝑚𝑚1 } = � � = 2
𝑚𝑚 1 =0,1,2 2

Solusi
𝟑𝟑𝟑𝟑𝒎𝒎𝟏𝟏 + 𝒇𝒇𝟐𝟐 (𝒙𝒙𝟏𝟏 − 𝟐𝟐𝒎𝒎𝟏𝟏 )
optimal
𝒙𝒙𝟏𝟏
𝒎𝒎𝟏𝟏 = 𝟎𝟎 𝒎𝒎𝟏𝟏 = 𝟏𝟏 𝒎𝒎𝟏𝟏 = 𝟐𝟐 𝒇𝒇𝟏𝟏 𝒎𝒎∗𝟏𝟏

0 0+0=0 - - 0 0
0 + 14 = 1
1 - - 0
14 4
0 + 28 = 31 + 0 = 3
2 - 1
28 31 1
0 + 47 = 31 + 14 4
3 - 0
47 = 45 7
0 + 61 = 31 + 28 62 + 0 = 6
4 2
61 = 59 62 2

Maka, solusi optimum ditentukan dengan cara berikut :


Diberikan W = 4 ton. Dari stage 1, 𝑥𝑥1 = 4 memberikan alternatif optimum
𝑚𝑚1∗ = 2, yang berarti 2 unit dari item 1 akan dimuat di kapal. Alokasi ini menyisakan,
𝑥𝑥2 = 𝑥𝑥1 − 2𝑚𝑚2∗ = 4 − 2 × 2 = 0. Dari stage 2, 𝑥𝑥2 = 0 menghasilkan 𝑚𝑚2∗ = 0 yang
selanjutnya memberikan 𝑥𝑥3 = 𝑥𝑥2 − 3𝑚𝑚2 = 0 − 3 × 0 = 0 . Selanjutnya, dari stage 3 ,
𝑥𝑥3 = 0 memberikan 𝑚𝑚3∗ = 0 . Dengan demikian, solusi optimal untuk keseluruhan
masalah adalah 𝑚𝑚1∗ = 2 , 𝑚𝑚2∗ = 0 , 𝑚𝑚3∗ = 0 . Bayaran yang diperoleh dari kebijakan ini
adalah 𝑓𝑓1 (4) = $62,000 .
Program Dinamik 23

3. Model Penggantian Peralatan ( Equipment Replacement )

Semakin lama mesin digunakan, maka akan memerlukan biaya perawatan yang
semakin besar dan produktivitasnya akan semakin menurun. Ketika mesin mencapai
umur tertentu, akan lebih ekonomis apabila mesin tersebut diganti dengan yang baru.
Permasalahan yang kemudian muncul adalah berapa umur paling ekonomis dari mesin
yang digunakan ?

Misalkan akan diselesaikan masalah penggantian mesin selama n tahun. Setiap


awal tahunnya, pengguna memutuskan untuk tetap menoperasikan mesin tersebut atau
menggantinya dengan yang baru. Misalkan 𝑟𝑟(𝑡𝑡), 𝑐𝑐(𝑡𝑡), 𝑠𝑠(𝑡𝑡) berturut - turut revenue
tahunan, biaya operasi, dan salvage value ( nilai dari komponen yang masih dapat
dipakai ) dari mesin yang berumur t tahun. Biaya untuk mendapatkan mesin yang baru
pada suatu tahun adalah I.

Elemen – elemen program dinamik untuk program dinamik dari masalah ini
adalah :
1. Stage ke i diwakili oleh tahun ke i, diaman i = 1, 2, …, n.
2. Alternatif pada stage ke i adalah salah satu dari pilihan : untuk tetap
menggunakan mesin yang lama atau mengganti dengan mesin yang baru
pada awal tahun ke – i.
3. State pada stage ke i adalah umur dari mesin pada awal tahun ke i.

Misalkan pada awal tahun ke i, umur mesin adalah t. kemudian definisikan :

𝑓𝑓𝑖𝑖 (𝑡𝑡) = 𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝 𝑏𝑏𝑏𝑏𝑏𝑏𝑏𝑏𝑏𝑏ℎ 𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚 𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝 𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎 𝑡𝑡𝑡𝑡ℎ𝑢𝑢𝑢𝑢 𝑖𝑖, 𝑖𝑖 + 1, … , 𝑛𝑛.

Maka persamaan rekursif dari masalah ini akan berbentuk :

𝑓𝑓𝑖𝑖 (𝑡𝑡) ≡
𝑟𝑟(𝑡𝑡) − 𝑐𝑐(𝑡𝑡) + 𝑓𝑓𝑖𝑖+1 (𝑡𝑡 + 1), 𝑗𝑗𝑗𝑗𝑗𝑗𝑗𝑗 𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚 𝑡𝑡𝑡𝑡𝑡𝑡𝑡𝑡𝑡𝑡 𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑
𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚 �
𝑟𝑟(0) + 𝑠𝑠(𝑡𝑡) − 𝐼𝐼 − 𝑐𝑐(0) + 𝑓𝑓𝑖𝑖+1 (1), 𝑗𝑗𝑗𝑗𝑗𝑗𝑗𝑗 𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚 𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑 𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑 𝑦𝑦𝑦𝑦𝑦𝑦𝑦𝑦 𝑏𝑏𝑏𝑏𝑏𝑏𝑏𝑏

𝑓𝑓𝑛𝑛 +1 (. ) ≡ 0
Program Dinamik 24

Contoh

Sebuah perusahaan memerlukan kebijakan untuk menentukan kapan mesin


yang berumur 3 tahun yang saat ini mereka miliki akan digantikan dengan yang baru
dalam 4 tahun selanjutnya ( n = 4 ). Perusahaan tersebut mensyaratkan mesin
berumur 6 tahun yang akan diganti. Harga dari mesin baru adalah $100,000. Table
berikut menggambarkan masalah ini :

Umur Biaya Salvage


Revenue,
mesin operasional, value,
r(t) ( $ )
( t tahun ) c(t) ( $ ) s(t) ( $ )
0 20,000 200 -
1 19,000 600 80,000
2 18,500 1200 60,000
3 17,200 1500 50,000
4 15,500 1700 30,000
5 14,000 1800 10,000
6 12,200 2200 5000

Bentuk network dari masalah di atas dapat dilihat pada gambar berikut :
Program Dinamik 25

Pada awal tahun ke 1, perusahaan memiliki mesin berumur 3 tahun,


perusahaan dapat mengganti mesin tersebut ( R ) atau tetap menggunakannya ( K )
untuk tahun berikutnya. Pada awal tahun ke 2, apabila telah terjadi penggantian mesin
pada tahun ke 1, mesin yang baru akan berumur 1 tahun, sebaliknya apabila mesin tetap
dipakai maka mesin tersebut akan berumur 4 tahun. Logika yang sama digunakan pada
awal tahun ke 2 sampai dengan ke 4. Jika mesin berumur 1 tahun diganti pada awal
tahun ke 2, 3 atau 4, maka pengganti akan berumur 1 tahun pada awal tahun berikutnya.
Dan pada awal tahun ke 4, mesin berumur 6 tahun harus diganti dengan mesin baru,
serta di akhir tahun ke 4 ( akhir dari masa perencanaan ) mesin akan disimpan ( salvage,
S ).

Pada network, ditunjukkan bahwa pada awal tahun ke 2, kemungkinan umur


mesin adalah 1 tahun atau 4 tahun. Pada awal tahun ke 3 kemungkinan umur mesin
adalah 1, 2, atau 5 tahun. Dan pada awal tahun ke 4 kemungkinan umur mesi adalah 1,
2, 3, atau 6.

Solusi dari masalah adalah ekuivalen dengan menemukan rute terpanjang pada
network ( yaitu maksimum revenue ) dari awal tahun ke 1 sampai akhir tahun ke 4.
Berikut adalah penyelesaian dari masalah di atas. Namun, sebelumnya perlu dicatat
bahwa apabila penggantian mesin dilakukan pada tahun ke 4, maka revenue akan
termasuk juga nilai simpan mesin ( salvage value ) s(t) dari mesin yang telah diganti
dan nilai simpan untuk penggantian mesin ( s(1) ).
Program Dinamik 26

Stage 4

K R Solusi Optimum
t Kepu
r(t)+ s(t+1) – c(t) r(0) + s(t) + s(1) – c(0) - I f4(t)
tusan
1 19 + 60 – 0.6 = 20 + 80 + 80 – 0.2 – 100 = 79. R
78.4 79.8 8
2 18.5 + 50 – 1.2 = 20 + 60 + 80 – 0.2 – 100 = 67. K
67.3 59.8 3
3 17.2 + 30 – 1.5 = 20 + 50 + 80 – 0.2 – 100 = 49. R
45.7 49.8 8
4 ( mesin harus 20 + 5 + 80 – 0.2 – 100 = 4.8 R
diganti ) 4.8

Stage 3

K R Solusi Optimum
t r(t)+ s(t+1) – f3(t Kepu
r(0) + s(t) – c(0) – I + f4(1)
f4(t+1) ) tusan
1 19 – 0.6 + 67.3 20 + 80 – 0.2 – 100 + 79.8 = 85. K
= 85.7 79.6 7
2 18.5 - 1.2 + 49.8 20 + 60 – 0.2 – 100 + 79.8 = 67. K
= 67.1 59.6 1
5 14 – 1.8 + 4.8 = 20 + 10 – 0.2 – 100 + 79.8 = 19. R
17 19.6 6
Program Dinamik 27

Stage 2

K R Solusi Optimum
t r(t) - c(t) – f2(t Kepu
r(0) + s(t) – c(0) – I + f3(1)
f3(t+1) ) tusan
1 19 – 0.6 + 67.1 20 + 80 – 0.2 – 100 + 85.7 = 85. K
= 85.5 85.5 5 atau
R
4 15.5 – 1.7 + 19.6 20 + 10 – 0.2 – 100 + 85.7 = 35. R
= 33.4 35.5 5

Stage 1

K R Solusi Optimum
t r(t) - c(t) – f1(t Kepu
r(0) + s(t) – c(0) – I + f2(1)
f2(t+1) ) tusan
3 17.2 – 1.5 + 35.5 20 + 50 – 0.2 – 100 + 85.5 = 55. R
= 51.2 55.3 3

Solusi optimum dari masalah di atas dapat dilihat pada gambar berikut :
Program Dinamik 28

Gambar di atas menyimpulkan, pada awal tahun ke 1, diberikan t = 3, maka


keputusan optimal yang diambil adalah mengganti mesin. Dengan demikian, mesin
baru akan berumur 1 tahun pada awal tahun ke 2, dan t = 1 pada awal tahun ke 2
mengakibatkan dapat memungkinkan untuk mengganti ataupun tetap memakai mesin
yang lama. Jika mesin diganti, maka pada awal tahun ke 3 mesin baru akan berumur 1
tahun ; sebaliknya apabila mesin lama tetap dipakai maka mesin tersebut akan berumur
2 tahun. Proses akan berjalan dengan logika yang sama sampai pada tahun ke 4.
Kebijakan optimal alternatif mulai dari tahun ke 1 adalah R, K, K, R dan R, R,
K, K. Biaya total adalah $55,300.
Program Dinamik 29

Referensi

Hillier, Frederick S., Lieberman, Gerald J.. 2001. Introductions to Operation Research,
Seventh Edition. New York : McGraw Hill Company Inc.
Taha, Hamdy A.. 2007. Operation Research : An Introduction , 8th Edition. Upper Sadle
River : Pearson Education Inc.
Wagner, David B.. 1995. Dynamic Programming. Miller Freeman Publications.

Yulianti, Diah Eka, dan kawan – kawan. Penerapan Algoritma Pogram Dinamis Pada
Penyelesaian Persoalan Partisi. Sumber :
http://www.informatika.org/~rinaldi/Stmik/2005-
2006/Makalah2006/MakalahStmik2006-16.pdf. Download : tanggal 02 – 01 – 2010,
pukul 21:53.

Anda mungkin juga menyukai