Penerapan Algoritma BFS dalam Kasus Knapsack (Pemilihan Barang ke Tas)
Narasi Cerita Bayangkan kamu hendak pergi berkemah dengan sebuah tas berkapasitas 10 kg . Kamu memiliki 5 barang dengan berat dan nilai yang berbeda: Barang 1: (6 kg, nilai 30) Barang 2: (3 kg, nilai 14) Barang 3: (4 kg, nilai 16) Barang 4: (2 kg, nilai 9) Barang 5: (5 kg, nilai 20) Tujuanmu adalah membawa barang-barang yang total nilainya paling besar, tanpa melebihi kapasitas tas (10 kg) . Masalah ini dapat diselesaikan dengan algoritma BFS (Breadth-First Search) . Ide utamanya adalah: Setiap node menyatakan kondisi (index barang, berat saat ini, nilai saat ini, daftar barang yang dipilih). Dari setiap node, ada dua kemungkinan : mengambil barang atau melewatkannya. BFS akan menelusuri semua kemungkinan kombinasi secara level demi level. Di akhir, kita pilih kombinasi dengan nilai terbesar . Kode Program : import java.util.*; class state { int index; int totalWeight; int totalValue; String chosen; ...