5. Exhaustive Search:
Teknik pencarian solusi secara brute force untuk masalah yang
melibatkan pencarian elemen dengan sifat khusus (objek-objek
kombinatorik atau himpunan bagian dari suatu himpunan)
6. Langkah-langkah:
1 Enumerasi (list) setiap solusi yang mungkin dengan cara yang sistematis.
2 Evaluasi setiap kemungkinan solusi satu per satu, mungkin saja beberapa
kemungkinan solusi yang tidak layak dikeluarkan, dan simpan solusi
terbaik yang ditemukan sampai sejauh ini (the best solusi found so far).
3 Bila pencarian berakhir, maka umumkan solusi terbaik.
7. Untuk bisa melihat strategi algoritma
Brute Force pada Exhaustive Search
mari kita lihat penerapannya.
8. Kasus:
Travelling Salesman Problem (TSP)
Persoalan:
Diberikan n buah kota serta diketahui jarak antara setiap kota satu
sama lain. Temukan perjalanan (tour) terpendek yang melalui setiap
kota lainnya hanya sekali dan kembali lagi ke kota asal keberangkatan
(sirkuit Hamilton dengan bobot minimum).
9. Langkah-langkah TSP:
1 Enumerasi (list) semua sirkuit Hamilton dari graph lengkap dengan n
buah simpul.
2 Hitung (evaluasi) bobot setiap sirkuit Hamilton yang ditemukan pada
langkah 1.
3 Pilih sirkuit Hamilton yang mempunyai bobot terkecil.
14. Perbaikan dari pola pikir tersebut adalah
memangkas setengah enumerasi yang
terbentuk karena hanya pencerminan
dari dari setengah enumerasi yang ada.
16. Kasus:
1/0 Knapsack
Persoalan:
Diberikan n buah objek dan sebuah knapsack dengan kapasitas
bobot K. Setiap objek memiliki properti bobot (weigth) wi dan
keuntungan(profit) pi.
Bagaimana memilih objek-objek yang akan dimasukkan ke
dalam knapsack agar memiliki keuntungan maksimum tanpa
melebihi bobot tampungan knapsack.
17. Tampilan Solusi:
! = {!$, !&, … , !(}
Dimana:
Xi = 1 jika objek ke-i dimasukkan ke dalam knapsack
Xi = 0 jika objek ke-i tidak dimasukkan ke dalam knapsack
18. Langkah-langkah 1/0 Knapsack:
1 Enumerasi (list) semua himpunan bagian dari himpunan dengan n objek.
2 Hitung (evaluasi) total keuntungan dari setiap himpunan bagian dari
langkah 1.
3 Pilih himpunan bagian yang memberikan total keuntungan terbesar.
19. Contoh Kasus:
n = 4.
w1 = 2; p1 = 20
w2 = 5; p2 = 30
w3 = 10; p3 = 50
w4 = 5; p4 = 10
Kapasitas knapsack K = 16
Cari kombinasi untuk mencari
keuntungan maksimum
menggunakan 1/0 knapsack!
20. Himpunan Bagian Total Bobot Total Keuntungan
{} 0 0
{1} 2 20
{2} 5 30
{3} 10 50
{4} 5 10
{1,2} 7 50
{1,3} 12 70
{1,4} 7 30
{2,3} 15 80
{2,4} 10 40
{3,4} 15 80
{1,2,3} 17 Tidak layak
{1,2,4} 12 60
{1,3,4} 17 Tidak layak
{2,3,4} 20 Tidak layak
{1,2,3,4} 22 Tidak layak
Himpunan bagian objek yang
memberikan keuntungan
maksimum adalah {2,3} dengan
total keuntungan adalah 80.
Solusi:
X = {0, 1, 1, 0}