1
Branch and Bound Algorithms
2
Branch and Bound
• Branch and bound adalah algoritma yang berbasis pada BFS untuk mencari solusi persoalan secara lebih efisien dengan membentuk pohon ruang status (state-space tree).
• Basis penerapan Branch and Bound adalah untuk persoalan optimasi. Terminologi yang digunakan dalam persoalan optimasi:– Feasible solution point-point dalam ruang pencarian yang
memenuhi constraint
– Optimal solution feasible solution yang memenuhi fungsi objektif.
3
Branch and bound
Dibandingkan dengan backtracking, branch and bound membutuhkan dua properti tambahan:
1. Untuk setiap node pada pohon ruang status, tambahkan bound value.
2. Nilai terbaik saat ini dari solusi yang diperoleh.
4
Application1: Assignment Problem
• Memberikan n jobs kepada n people sedemikian rupa sehingga meminimumkan cost.
• Assignment problem dinyatakan dalam matriks cost n x n, perhatikan cost matrix di bawah ini.
• Hitung lower bound (lb): 2+3+1+4=10 (lb untuk root)
5
Application1: Assignment Problem
Gambar berikut menunjukkan level 0 dan 1 dari pohon ruang statrus.
6
Application1: Assignment Problem
Gambar berikut menunjukkan level 0,1, dan 2 dari pohon ruang statrus.
7
Application1: Assignment Problem
8
Application2: Knapsack Problem
• Diberikan n items yang diketahui weights wi
dan profit vi, i=1,2,…,n, dan kapasitas knapsack W.
• Langkah pertama mengurutkan density vi / wi
secara descending:
v1/w1≥v2/w2≥…≥vn/wn
• Langkah kedua, menghitung upper bound (ub):
ub = v + (W-w)(vi+1/wi+1)
9
Application2: Knapsack Problem
• Perhatikan tabel knapsack berikut ini. Kapasitas
knapsack W adalah 10.
10
Application2: Knapsack Problem
• Setiap level dari pohon ruang status
menyatakan subsets dari n items.
• Path dari root memiliki dua cabang,
masing-masing menyatakan:
– Cabang kiri inclusion item
– Cabang kanan exclusion item
• Hitung ub root 0 + 10.10 = 100
11
Application2: Knapsack Problem
12
Application3: TSP
• Tentukan lb dengan panjang l dari
setiap tour dengan formula:
– Untuk setiap kota i, 1≤i≤n, hitung hasil
penjumlahan jarak si dari kota i ke dua kota
terdekatnya.
– Lakukan penjumlahan tersebut sebanyak
n, kemudian hasilnya bagi dengan 2.
Lb = s/2
13
Application3: TSP Problem
• Perhatikan graf berbobot berikut ini
14
Application3: TSP Problem
• Sebagai contoh, lb awal menghasilkan
Lb = [(1+3)+(3+6)+(1+2)+(3+4)+(2+3)]/2 =
14
• Persamaan lb tersebut dimodifikasi
untuk edge(a,d) dan (d,a) atau tour
lainnya:
[(1+5)+(3+6)+(1+2)+(3+5)+(2+3)]/2 = 16
15
Application3: TSP Problem
16
Exercises
• Terapkan algoritma branch and bound untuk
persoalan knapsack berikut ini.
17
Exercises
• Terapkan algoritma branch and bound untuk
persoalan TSP dari graph berikut ini.
Top Related