1
Algoritma Branch and Bound
2
• Untuk mempercepat pencarian ke simpul solusi,
maka setiap simpul diberi sebuah nilai ongkos
(cost).
3
• Nilai ongkos pada setiap simpul i menyatakan
taksiran ongkos termurah lintasan dari simpul i ke
simpul solusi (goal node):
4
Tinjau kembali persoalan 4-ratu yang
diselesaikan dengan skema BFS (murni).
1
x1 =1 x1 =2 x 1=3 x1=4
2 3 4 5
6 7 8 9 10 11 12 13 14 15 16 17
B B B B B
x3=2 x3 =3 x3=2 x3 =4 x3=1 x3 =3
x 3=2 x3=4 x3 =1 x 3=3 x3 =2 x 3=3
18 19 20 21 22 23 24 25 26 27 28 29
B B B B B B B B B
x4 =3
30
5
• Solusi pertama dicapai pada simpul 30, yaitu X = (2,
4, 1, 3).
6
• Setiap simpul hidup diasosiasikan dengan
sebuah ongkos yang menyatakan nilai batas
(bound).
7
• Untuk setiap simpul X, nilai batas ini dapat
berupa [HOR78]:
1. jumlah simpul dalam upapohon X yang perlu
dibangkitkan sebelum simpul solusi ditemukan, atau
2. panjang lintasan dari simpul X ke simpul solusi
terdekat (dalam upapohon X ybs)
8
1
4
x1=1 x1=2 x1=3 x1=4
2 3 4 5
∞ ∞
3
3
B x2=1 x2=4 B
x1=1
9 10 11
∞ ∞ 2
B B
x3=1 x3=3
22 23
1 ∞
x4=3 B
30
simpul solusi
9
• Pemberian nilai batas seperti pada persoalan
N-Ratu di atas adalah nilai batas yang ideal,
karena letak simpul solusi diketahui.
cˆ(i ) = fˆ (i ) + gˆ (i )
11
Algoritma B&B:
1. Masukkan simpul akar ke dalam antrian Q. Jika
simpul akar adalah simpul solusi (goal node), maka
solusi telah ditemukan. Stop.
2. Jika Q kosong, tidak ada solusi. Stop.
3. Jika Q tidak kosong, pilih dari antrian Q simpul i yang
mempunyai cˆ(i ) paling kecil. Jika terdapat beberapa
simpul i yang memenuhi, pilih satu secara sembarang.
4. Jika simpul i adalah simpul solusi, berarti solusi sudah
ditemukan, stop. Jika simpul i bukan simpul solusi,
maka bangkitkan semua anak-anaknya. Jika i tidak
mempunyai anak, kembali ke langkah 2.
5. Untuk setiap anak j dari simpul i, hitung cˆ( j ) , dan
masukkan semua anak-anak tersebut ke dalam Q.
12
6. Kembali ke langkah 2.
Permainan 15-Puzzle
1 3 4 15 1 2 3 4
2 5 12 5 6 7 8
7 6 11 14 9 10 11 12
8 9 10 13 13 14 15
13
1
1 2 3 4
5 6 8
9 10 7 11
13 14 15 12
up
left
right down
2 3 4 5
1 2 4 1 2 3 4 1 2 3 4 1 2 3 4
5 6 3 8 5 6 8 5 6 7 8 5 6 8
9 10 7 11 9 10 7 11 9 10 11 9 10 7 11
13 14 15 12 13 14 15 12 13 14 15 12 13 14 15 12
6 7 8 9 10 11 12 13 14 15
1 2 4 1 2 4 1 2 3 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 3 4 1 2 3 4 1 2 3 4
5 6 3 8 5 6 3 8 5 6 8 4 5 6 8 11 5 6 7 8 5 6 7 8 5 6 7 8 5 7 6 8 5 10 6 8 5 6 8
9 10 7 11 9 10 7 11 9 10 7 11 9 10 7 9 10 11 9 10 15 11 9 10 11 9 10 7 11 9 7 11 9 10 7 11
13 14 15 12 13 14 15 12 13 14 15 12 13 14 15 12 13 14 15 12 13 14 12 13 14 15 12 13 14 15 12 13 14 15 12 13 14 15 12
up down
down left
16 19 down left 22 23
down left
1 2 4 8 1 2 3 1 2 3 4 1 2 3 4
5 6 3 5 6 8 4 5 6 7 5 6 7 8
9 10 7 11 9 10 7 11 9 10 11 8 9 10 11 12
13 14 15 12 13 14 15 12 13 14 15 12 13 14 15
17 18 20 21
1 6 2 4 1 2 4 1 2 3 4 1 2 3 4
5 3 8 5 6 3 8 5 6 8 11 5 6 8 11
9 10 7 11 9 10 7 11 9 10 7 12 9 10 7 14
13 14 15 12 13 14 15 13 14 15 13 14 15 12
• Sebelum menelusuri ruang status untuk
mencapai susunan akhir, kita patut
menentukan apakah status tujuan dapat dicapai
atau tidak dari status awal.
2 5 12 5 6 7 8
7 6 11 14 9 10 11 12
8 9 10 13 13 14 15
∑ KURANG (i ) + X
i =1
bernilai genap.
16
• Pada Gambar 7.2a mempunyai X = 0 dan
16
17
• Algoritma B&B:
Nilai ongkos untuk simpul P: cˆ( P) = f ( P ) + gˆ ( P )
18
• Salah satu cara menghitung gˆ ( P ) :
19
1
1 2 3 4
5 6 8
9 10 7 11
13 14 15 12
up left
right down
2 3 4 5
1 2 4 1 2 3 4 1 2 3 4 1 2 3 4
5 6 3 8 5 6 8 5 6 7 8 5 6 8
9 10 7 11 9 10 7 11 9 10 11 9 10 7 11
13 14 15 12 13 14 15 12 13 14 15 12 13 14 15 12
5 5 3 5
right down left
10 11 12
1 2 3 4 1 2 3 4 1 2 3 4
5 6 7 8 5 6 7 8 5 6 7 8
9 10 11 9 10 15 11 9 10 11
13 14 15 12 13 14 12 13 14 15 12
3 5 5
up down
22 23
1 2 3 4 1 2 3 4
5 6 7 5 6 7 8
9 10 11 8 9 10 11 12
13 14 15 12 13 14 15
simpul 20
solusi
Persoalan Pedagang Keliling
(Travelling Salesperson Problem - TSP)
Misalkan
(i) G=(V,E) adalah graf lengkap TSP
(ii) V=n = jumlah simpul dalam graf G.
Simpul- simpul diberi nomor 1, 2, …, n.
(iii) cij = bobot sisi (i, j)
(iv) perjalanan (tur) berawal dan berakhir di simpul 1.
(v) S adalah ruang solusi, yang dalam hal ini
S = { (1, π, 1) π adalah permutasi (2, 3, ..., n) }
12
1 2 1
5 9
8
x1=2 x1=4
x1=3
4 3
15
2 3 4
5 6 7 8 9 10
11 12 13 14 15 16
22
• Ongkos atau nilai batas untuk setiap simpul
dihitung dengan menggunakan matriks ongkos-
tereduksi (reduced cost matrix) dari graf G.
23
Contoh: tinjau graf lengkap berarah TSP dengan n = 5
∞ 20 30 10 11
15 ∞ 16 4 2
3 5 ∞ 2 4
19 6 18 ∞ 3
16 4 7 16 ∞
24
Lakukan reduksi baris:
∞ 20 30 10 11 R − 10 ∞ 10 20 0 1
1
15 ∞ 16 4 2 R − 2 13 ∞ 14 2 0
2
3 5 ∞ 2 4 R − 2 1 3 ∞ 0 2
3
19 6 18 ∞ 3 R − 3 16 3 15 ∞ 0
4
16 4 7 16 ∞ R − 4 12 0 3 12 ∞
5
∞ 10 20 0 1 ∞ 10 17 0 1
13 ∞ 14 2 0 12 ∞ 11 2 0
1 3 ∞ 0 2 C −1 0 3 ∞ 0 2 = A
1
16 3 15 ∞ 0 C − 3 15 3 12 ∞ 0
3
12 0 3 12 ∞ 11 0 0 12 ∞
cˆ(root ) = 25
25
26
Selanjutnya, misalkan A adalah matriks tereduksi untuk
simpul R.
27
(a) ubah semua nilai pada baris i dan kolom j menjadi ∞.
Ini untuk mencegah agar tidak ada lintasan yang
keluar dari simpul i atau masuk pada simpul j;
28
Secara umum, persamaan fungsi pembatas adalah:
1. Simpul 2; Lintasan: 1, 2
∞ ∞ ∞ ∞ ∞
∞ ∞ 11 2 0
0 ∞ ∞ 0 2 = B
15 ∞ 12 ∞ 0
11 ∞ 0 12 ∞
30
2. Simpul 3; Lintasan: 1, 3
∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞
12 ∞ ∞ 2 0 1 ∞ ∞ 2 0
∞ 3 ∞ 0 2 C − 11 0 3 ∞ 0 2 = B
1
15 3 ∞ ∞ 0 4 3 ∞ ∞ 0
11 0 ∞ 12 ∞ 0 0 ∞ 12 ∞
31
3. Simpul 4; Lintasan: 1, 4
∞ ∞ ∞ ∞ ∞
12 ∞ 11 ∞ 0
0 3 ∞ ∞ 2 = B
∞ 3 12 ∞ 0
11 0 0 ∞ ∞
32
4. Simpul 5; Lintasan: 1, 5
∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞
12 ∞ 11 2 ∞ 10 ∞ 9 0 ∞
R −2
0 3 ∞ 0 ∞ 0 3 ∞ 0 ∞ = B
2
15 3 12 ∞ R −3
∞ 4
12 0 9 ∞ ∞
∞ 0 0 12 ∞ ∞ 0 0 12 ∞
33
Pohon ruang status yang terbentuk sampai saat ini adalah:
1
25
x 1= 2 x1=5
x 1=3 x 1=4
2 3 4 5
35 53 25 31
34
5. Simpul 6; Lintasan: 1, 4, 2
∞ ∞ ∞ ∞ ∞
∞ ∞ 11 ∞ 0
0 ∞ ∞ ∞ 2 = C
∞ ∞ ∞ ∞ ∞
11 ∞ 0 ∞ ∞
35
6. Simpul 7; Lintasan: 1, 4, 3
∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞
12 ∞ ∞ ∞ 0 12 ∞ ∞ ∞ 0 1 ∞ ∞ ∞ 0
∞ 3 ∞ ∞ 2 R3 − 2 ∞ 1 ∞ ∞ 0 C1 − 11 ∞ 1 ∞ ∞ 0 = C
∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞
11 0 ∞ ∞ ∞ 11 0 ∞ ∞ ∞ 0 0 ∞ ∞ ∞
36
7. Simpul 8; Lintasan: 1, 4, 5
∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞
12 ∞ 11 ∞ ∞ 1 ∞ 0 ∞ ∞
0 3 ∞ ∞ 2 R2 − 11 0 3 ∞ ∞ 2 = C
∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞
∞ 0 0 ∞ ∞ ∞ 0 0 ∞ ∞
37
Pohon ruang status yang terbentuk sampai saat ini adalah:
1
25
x 1=2 x1=5
x1=3 x 1=4
2 3 4 5
25
35 53 31
x 2=2 x 2=5
x2=3
6 7 8
28 50 36
38
8. Simpul 9; Lintasan: 1, 4, 2, 3
∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞
∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞
R −2
∞ ∞ ∞ ∞ 2 ∞ ∞ ∞ ∞ 0 = D
3
R − 11
∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞
5
11 ∞ ∞ ∞ ∞ 0 ∞ ∞ ∞ ∞
39
9. Simpul 10; Lintasan: 1, 4, 2, 5
∞ ∞ ∞ ∞ ∞
∞ ∞ ∞ ∞ ∞
0 ∞ ∞ ∞ ∞ = D
∞ ∞ ∞ ∞ ∞
∞ ∞ 0 ∞ ∞
40
Pohon ruang status yang terbentuk sampai saat ini adalah:
1
25
x 1=2 x1=5
x1=3 x1=4
2 3 4 5
25
35 53 31
x2=2 x 2=5
x2=3
6 7 8
28
50 36
x3=3 x3=5
9 10
52 28
41
10. Simpul 11; Lintasan: 1, 4, 2, 5, 3
∞ ∞ ∞ ∞ ∞
∞ ∞ ∞ ∞ ∞
∞ ∞ ∞ ∞ ∞ = E
∞ ∞ ∞ ∞ ∞
∞ ∞ ∞ ∞ ∞
42
Pohon ruang status yang terbentuk sampai saat ini adalah:
25
x 1=2 x1=5
x 1=3 x 1=4
2 3 4 5
25
35 53 31
x 2=2 x 2= 5
x2=3
6 7 8
28
50 36
x3=3 x3 =5
9 10
28
52
x4= 3
11
28
43
1
25
x1=2 x1=5
x1=3 x1=4
2 3 4 5
25
35 53 31
B B x2=5 B
x2=2
x2=3
6 7 8
28
50 36
B B
x3=3 x3=5
9 10
28
52
B
x4=3
11
28