Branch and Bound Algorithms - Simulation...

17
1 Branch and Bound Algorithms

Transcript of Branch and Bound Algorithms - Simulation...

Page 1: Branch and Bound Algorithms - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2016/04/M17Branch... · • Branch and bound adalah algoritma yang berbasis pada

1

Branch and Bound Algorithms

Page 2: Branch and Bound Algorithms - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2016/04/M17Branch... · • Branch and bound adalah algoritma yang berbasis pada

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.

Page 3: Branch and Bound Algorithms - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2016/04/M17Branch... · • Branch and bound adalah algoritma yang berbasis pada

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.

Page 4: Branch and Bound Algorithms - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2016/04/M17Branch... · • Branch and bound adalah algoritma yang berbasis pada

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)

Page 5: Branch and Bound Algorithms - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2016/04/M17Branch... · • Branch and bound adalah algoritma yang berbasis pada

5

Application1: Assignment Problem

Gambar berikut menunjukkan level 0 dan 1 dari pohon ruang statrus.

Page 6: Branch and Bound Algorithms - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2016/04/M17Branch... · • Branch and bound adalah algoritma yang berbasis pada

6

Application1: Assignment Problem

Gambar berikut menunjukkan level 0,1, dan 2 dari pohon ruang statrus.

Page 7: Branch and Bound Algorithms - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2016/04/M17Branch... · • Branch and bound adalah algoritma yang berbasis pada

7

Application1: Assignment Problem

Page 8: Branch and Bound Algorithms - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2016/04/M17Branch... · • Branch and bound adalah algoritma yang berbasis pada

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)

Page 9: Branch and Bound Algorithms - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2016/04/M17Branch... · • Branch and bound adalah algoritma yang berbasis pada

9

Application2: Knapsack Problem

• Perhatikan tabel knapsack berikut ini. Kapasitas

knapsack W adalah 10.

Page 10: Branch and Bound Algorithms - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2016/04/M17Branch... · • Branch and bound adalah algoritma yang berbasis pada

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

Page 11: Branch and Bound Algorithms - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2016/04/M17Branch... · • Branch and bound adalah algoritma yang berbasis pada

11

Application2: Knapsack Problem

Page 12: Branch and Bound Algorithms - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2016/04/M17Branch... · • Branch and bound adalah algoritma yang berbasis pada

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

Page 13: Branch and Bound Algorithms - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2016/04/M17Branch... · • Branch and bound adalah algoritma yang berbasis pada

13

Application3: TSP Problem

• Perhatikan graf berbobot berikut ini

Page 14: Branch and Bound Algorithms - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2016/04/M17Branch... · • Branch and bound adalah algoritma yang berbasis pada

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

Page 15: Branch and Bound Algorithms - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2016/04/M17Branch... · • Branch and bound adalah algoritma yang berbasis pada

15

Application3: TSP Problem

Page 16: Branch and Bound Algorithms - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2016/04/M17Branch... · • Branch and bound adalah algoritma yang berbasis pada

16

Exercises

• Terapkan algoritma branch and bound untuk

persoalan knapsack berikut ini.

Page 17: Branch and Bound Algorithms - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2016/04/M17Branch... · • Branch and bound adalah algoritma yang berbasis pada

17

Exercises

• Terapkan algoritma branch and bound untuk

persoalan TSP dari graph berikut ini.