(BACKTRACKING)
Pengertian
Algoritma Runut-balik (backtracking) adalah
algoritma yang berbasis pada DFS untuk mencari
solusi persoalan secara lebih mangkus.
Kelemahan :
Memungkinkan tidak ditemukan tujuan yang
diharapkan. Hal ini bisa terjadi apabila
level/kedalamannya tidak terhingga.
Tidak Optimal karena Hanya akan mendapatkan 1
solusi pada setiap pencarian. DFS tidak dapat
menemukan apabila solusi yang sama tetapi berada
pada level yang berbeda.
Pengorganisasian Solusi
Fungsi pembatas : wi M
Pohon dinamis yang dibentuk selama pencarian untuk persoalan
Knapsack 0/1 dengan n = 3,
M = 30 w , w = (35, 32, 25) dan p = (40, 25, 50)
A
x1 =1 x1 =0
B C
B
x2 =1 x2 =0
D E
B
x3 =1 x3 =0
F G
2 18 34 50
3 8 13 19 24 29 35 40 45 51 56 61
x3=2 x3=3 x3=3 x3=4 x3=2 x3=4 x3=1 x3=2 x3=1 x3=3
x3=3 x3=4 x3=2 x3=4 x3=3 x3=4 x3=1 x3=3 x3=2 x3=3
x3=1 x3=4 x3=1 x3=2
4 6 9 11 14 16 20 22 25 27 30 32 36 38 41 43 46 48 52 54 57 59 62 64
5 7 10 12 15 17 21 23 26 28 31 33 37 39 42 44 47 49 53 55 58 60 63 65
Pohon ruang-status persoalan 4-Ratu
Menggunakan DFS
1
x1=1 x1=2
2 18
3 8 13 19 24 29
B B B
x3=2 x3=3
x3=2 x3=4 x3=1
9 11 14 16 30
B B B
x4=3 x4=3
15 31
B
Solusi Runut-Balik Persoalan 4-Ratu
1 1 1 1
2 2 2
1 1 1 1
2 2 2
3 3