Contoh Soal Knapsack Problem

Pendahuluan

Knapsack problem adalah salah satu permasalahan yang sering dijumpai dalam ilmu komputer dan matematika terapan. Masalah ini dikenal sebagai permasalahan optimisasi, di mana kita harus memilih sejumlah item dengan nilai tertentu agar muatan yang dimasukkan ke dalam tas memiliki nilai maksimum. Dalam artikel ini, kami akan memberikan contoh soal knapsack problem beserta solusinya.

Deskripsi Soal

Misalkan kita memiliki sebuah tas dengan kapasitas W dan sejumlah item dengan bobot dan nilai yang berbeda-beda. Tugas kita adalah memilih item-item mana yang harus dimasukkan ke dalam tas sehingga total nilai yang dimiliki adalah maksimal.

Contoh soalnya adalah sebagai berikut:

Terdapat 5 item dengan bobot dan nilai sebagai berikut:

Item Bobot Nilai
Item 1 2 5
Item 2 3 8
Item 3 4 9
Item 4 5 10
Item 5 9 15

Solusi

Untuk menyelesaikan masalah knapsack ini, kita dapat menggunakan pendekatan algoritma dinamis. Dalam algoritma dinamis, kita akan memecahkan masalah menjadi submasalah yang lebih kecil, kemudian menggabungkan solusi dari submasalah tersebut untuk mendapatkan solusi akhir.

Langkah-langkah untuk menyelesaikan contoh soal knapsack problem di atas adalah sebagai berikut:

Artikel Lain:  Mars Murojaah Lirik: Mengenal Lebih Dekat Lagu Mars Murojaah dan Liriknya

Langkah 1: Membangun Tabel

Pertama, kita perlu membangun tabel yang berukuran (jumlah item + 1) x (kapasitas tas + 1). Tabel ini akan digunakan untuk menyimpan solusi dari submasalah yang lebih kecil.

Contoh tabel untuk soal di atas adalah sebagai berikut:

Bobot/Nilai 0 1 2 3 4 5 6 7 8 9 10
0 0 0 0 0 0 0 0 0 0 0 0
2 0
3 0
4 0
5 0
9 0

Langkah 2: Mengisi Nilai Tabel

Setelah tabel terbentuk, kita dapat mulai mengisi nilainya. Kita akan menggunakan rumus berikut untuk mengisi setiap sel dalam tabel:

tabel[i][j] = max(tabel[i-1][j], tabel[i-1][j-bobot] + nilai)

Dalam rumus di atas, i merupakan indeks item dan j merupakan kapasitas tas yang sedang dipertimbangkan.

Contoh isi tabel untuk soal di atas adalah sebagai berikut:

Bobot/Nilai 0 1 2 3 4 5 6 7 8 9 10
0 0 0 0 0 0 0 0 0 0 0 0
2 0 0 5 5 5 5 5 5 5 5 5
3 0 0 5 8 8 8 8 8 8 8 8
4 0 0 5 8 9 9 9 9 9 9 9
5 0 0 5 8 9 10 10 10 10 10 10
9 0 0 5 8 9 10 10 10 10 10 15

Setelah tabel terisi, maka nilai maksimal yang dapat kita dapatkan adalah 15.

Kesimpulan

Contoh soal knapsack problem di atas mengilustrasikan bagaimana kita dapat menggunakan algoritma dinamis untuk menyelesaikan masalah optimisasi ini. Dengan membangun tabel dan mengisi nilainya, kita dapat menentukan kombinasi item yang harus dimasukkan ke dalam tas agar nilai totalnya maksimal.

Artikel Lain:  Cara Membuat Pompa Air Tanpa Listrik

Knapsack problem memiliki banyak aplikasi dalam kehidupan sehari-hari, seperti dalam perencanaan investasi, pengaturan jadwal, dan lainnya. Dengan memahami konsep dasar dari knapsack problem, kita dapat mengembangkan solusi yang lebih kompleks untuk masalah-masalah yang serupa.

Demikianlah contoh soal knapsack problem beserta solusinya. Semoga artikel ini dapat memberikan pemahaman yang lebih baik tentang konsep dan aplikasi dari knapsack problem.

Leave a Comment