BAB 1
PENDAHULUAN
1.1 Latar Belakang
Masalah dalam menentukan lintasan terpendek di antara titik tertentu dalam suatu graph telah banyak menarik perhatian. Persoalan dirumuskan sebagai kasus khusus dan
algoritma efisien yang tersedia untuk menghitung lintasan terpendek dan biaya minimum. Lintasan terpendek yang diperoleh akan meminimumkan fungsi linear yang khusus
fungsi dari lintasan seperti biaya dan jarak waktu. Persoalan ini akan menjadi salah satu kegunaan dari lintasan dengan waktu diminimumkan terhadap biaya yang
dianggarkan. Beberapa masalah dalam menentukan lintasan terpendek dalam suatu graph antara
lain: masalah transportasi, jaringan komunikasi, serta masalah pengiriman barang tidak bisa lepas dari permasalahan jarak waktu dan tentunya juga masalah biaya.
Permasalahan dituntut untuk meminimisasi jarak waktu ke tujuan yaitu dengan memilih lintasan tersingkat dengan biaya yang telah dianggarkan sehingga dapat dicapai hasil
yang optimal. Sebagai contoh masalah transportasi, pilihan lintasan perjalanan dari Kota A sumber ke Kota J tujuan, untuk sampai ke Kota J ada beberapa lintasan berbeda
yang dapat dilalui dan juga biaya perjalanan yang berbeda, permasalahan yang terjadi adalah lintasan terpendek mana yang harus dipilih yang sesuai dengan biaya yang
dianggarkan untuk perjalanan tersebut agar hasil yang optimal diperoleh.
Permasalahan ini dapat dicontohkan seperti penjualan beberapa jenis peralatan rumah tangga oleh pedagang keliling dengan menggunakan gerobak ataupun alat
pengangkut lainnya. Keperluan rumah tangga yang akan dijual hanya berjumlah satu
Universitas Sumatera Utara
untuk tiap jenisnya dan tiap jenis barang memiliki berat dan keuntungan. Tidak semua jenis keperluan rumah tangga yang akan dijual oleh pedagang keliling tersebut dapat
dimasukkan ke dalam alat pengangkut. Tentu saja dikarenakan alat pengangkutnya memiliki kapasitas maksimum sehingga si pedagang tidak bisa memasukkan seluruh
dagangannya. Pedagang tersebut harus memilih barang-barang mana saja yang harus diangkut dengan pertimbangan berat dari barang yang dibawanya tidak melebihi kapasitas
maksimum gerobak dan memaksimalkan keuntungan dari barang-barang yang di bawa.
Terdapat beberapa variasi Persoalan Knapsack: 1.
Fractional Knapsack Problem Barang boleh dibawa sebagian saja unit dalam pecahan.
2. 0-1 Knapsack Problem
Setiap barang hanya tersedia satu unit, diambil atau tinggalkan. 3.
Bounded Knapsack Problem Setiap barang tersedia sebanyak N unit jumlah barang terbatas.
4. Unbounded Knapsack Problem
Setiap barang tersedia lebih dari satu unit, jumlahnya tidak terbatas.
Pada prinsipnya persoalan Knapsack ini adalah persoalan optimisasi sehingga Algoritma harus mencari sebuah solusi paling optimal sebagai jawabannya.
Masalah khusus dari persoalan graph ini adalah mendapatkan suatu lintasan dengan jarak minimum yang memenuhi terhadap subject to kendala anggaran
budgetary. Kemungkinan masalah lainnya adalah minimimasi biaya yang harus memenuhi kendala jarak waktu. Andaikan diberikan sebuah graph G dengan titik -
N = 1,2,…,i dan garis F = 1,2,…,j serta ax,y dan bx,y adalah jarak waktu dan biaya. yang dihubungkan dengan tiap garis i,j dalam graph G. Masalahnya adalah menentukan
lintasan terpendek dari titik 1 sumber ke titik n tujuan dalam graph G yang memenuhi terhadap kendala biaya yang dianggarkan. Jarak waktu dan biaya dari lintasan adalah
jumlah nilai-nilai yang terdapat pada tiap garis dalam lintasan.
Universitas Sumatera Utara
Menentukan lintasan terpendek yang memenuhi kendala biaya yang dianggarkan pada suatu graph adalah merupakan salah satu tipe persoalan Integer Knapsack, yaitu memilih
bobot minimum yang akan dimasukkan ke dalam Knapsack yang mempunyai bobot maksimum tertentu. Persoalan ini disebut Integer Knapsack karena tiap objek hanya memiliki
dua status yaitu terpilih atau tidak. Untuk persoalanan Knapsack pada suatu graph, bobot minimum yang dipilih adalah merupakan lintasan terpendek yang harus dilewati dari titik
sumber ke titik tujuan. Sedangkan biaya adalah sebagai kendala yang harus dipenuhi dalam menentukan lintasan terpendek.
Permasalahan Combinatorial Optimization dikenal sebagai NP Hard Problem. Persoalan Knapsack tidak dapat diselesaikan dalam waktu singkat hanya dapat
diselesaikan dengan waktu yang lama disebabkan karena banyak data yang digunakan sebagai data input. Semakin besar data yang digunakan, semakin lama waktu yang
dibutuhkan suatu Algoritma untuk menyelesaikannya.
Banyak Algoritma yang dapat digunakan untuk menyelesaikan persoalan Knapsack ini, misalnya Algoritma Brute Force, Branch and Bound, Greedy, Genetika dan
lain-lain. Dalam tulisan ini, penulis membahas mengenai persoalan Knapsack dengan menggunakan Algoritma Pemrograman Dinamik.
Pemrograman Dinamik merupakan sebuah 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. Penemu dan orang yang bertanggung jawab atas kepopuleran
Pemrograman Dinamik adalah Richard Bellman 1957.
Pada Pemrograman Dinamik, rangkaian keputusan optimal yang dibuat dengan menggunakan prinsip optimalitas. Prinsip optimalitas: jika solusi total optimal, maka
bagian solusi sampai tahap ke-k juga optimal. Dengan prinsip optimalitas ini dijamin bahwa pengambilan keputusan pada suatu tahap adalah keputusan yang benar untuk
tahap-tahap selanjutnya. Inti dari Pemrograman Dinamik adalah membuang suatu bagian
Universitas Sumatera Utara
kecil dari sebuah persoalan dalam setiap langkahnya, kemudian menyelesaikan persoalan yang lebih kecil tersebut dan menggunakan solusi hasil penyelesaian ini untuk
ditambahkan kembali ke bagian persoalan dalam langkah berikutnya.
Pemrograman Dinamik mencoba untuk memberikan solusi yang memiliki konsekuensi yang ditimbulkan dari pengambilan keputusan pada suatu tahap.
Pemrograman Dinamik mampu mengurangi pengenumerasian keputusan yang tidak mengarah ke solusi. Penerapan pendekatan Pemrograman Dinamik telah banyak
diperlihatkan mampu utnuk menyelesaikan aneka masalah seperti: alokasi, muatan Knapsack, capital budgeting, pengawasan persediaan, dan lain-lain.
1.2 Perumusan Masalah