Bound
Teknik Informatika
Universitas Ahmad Dahlan
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
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
x3=2 x3=4 x3=1 x3=3 x3=2 x3=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). Dengan skema BFS murni /
FIFO, kita harus memperluas dulu simpul 12,
simpul 15, dan simpul 16 sebelum
memperluas simpul 22 yang melahirkan
simpul solusi, yaitu simpul 30.
6
Setiap simpul hidup diasosiasikan dengan
sebuah ongkos yang menyatakan nilai batas
(bound).
7
Untuk setiap simpul X, nilai batas ini dapat
berupa [HOR78]:
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.
10
Fungsi heuristik untuk menghitung taksiran cost:
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.
6. Kembali ke langkah 2. 12
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.
15
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
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
down
up
23
22
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
solusi 20
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.
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
1
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
R 3
15 3 12 12 0 9
4
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
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
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
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
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