Branch and Bound Algorithms - Simulation...

Post on 16-Mar-2019

279 views 0 download

Transcript of Branch and Bound Algorithms - Simulation...

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.