CSG3F3/ Desain dan Analisis Algoritma Branch and Bound Intelligence, Computing, Multimedia (ICM)
Branch and bound Basic idea and particularities It is a method to solve combinatorial optimization problems It is based on the same idea as backtracking: it constructs a state space tree and stop developing a branch in this tree as soon as we can decide that it cannot lead to a solution Backtracking: - search for configurations which satisfy some constraints Branch and Bound: - search for configurations which satisfy some constraints and optimize a criterion (objective function) CSG523/ Desain dan Analisis Algoritma
What is Branch and Bound ? Branch and Bound (B&B):explore all solutions using constraints (bounds) Lower Bound: min. possible value of solution Upper Bound: max. possible value of solution The problem is split into sub-problems Each sub-problems is expanded until a solution is obtained as long as its cost doesn’t exceed the bounds Its cost must be greater than the lower bound CSG523/ Desain dan Analisis Algoritma
Application: 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) CSG523/ Desain dan Analisis Algoritma
Application: Knapsack Problem Perhatikan tabel knapsack berikut ini. Kapasitas knapsack W adalah 10. CSG523/ Desain dan Analisis Algoritma
Application: 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 CSG523/ Desain dan Analisis Algoritma
Application: Knapsack Problem CSG523/ Desain dan Analisis Algoritma
Application: TSP Problem 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 CSG523/ Desain dan Analisis Algoritma
Application: TSP Problem Perhatikan graf berbobot berikut ini CSG523/ Desain dan Analisis Algoritma
Application: 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 CSG523/ Desain dan Analisis Algoritma
Application: TSP Problem CSG523/ Desain dan Analisis Algoritma
Exercises Terapkan algoritma branch and bound untuk persoalan knapsack berikut ini. CSG523/ Desain dan Analisis Algoritma
Exercises Terapkan algoritma branch and bound untuk persoalan TSP dari graph berikut ini. CSG523/ Desain dan Analisis Algoritma
BFS with Branch and Bound Pruning pi wi pi /wi 1 $40 2 $20 $30 5 $6 3 $50 10 $5 4 $10 $2 W=16, n=4 CSG523/ Desain dan Analisis Algoritma
BFS with Branch and Bound Pruning CSG523/ Desain dan Analisis Algoritma
BFS with Branch and Bound Pruning Algorithm CSG523/ Desain dan Analisis Algoritma
CSG523/ Desain dan Analisis Algoritma
CSG523/ Desain dan Analisis Algoritma
Best-first search with Branch and Bound Pruning CSG523/ Desain dan Analisis Algoritma
Best first search algorithm CSG523/ Desain dan Analisis Algoritma