Latar Belakang Pendekatan Algoritma Pemrograman Dinamik Dalam Menyelesaikan Persoalan Knapsack 0/1

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