Backtracking
Backtracking
TEKNIK BACKTRACKING
Pertama kali diperkenalkan oleh DH Lehmer (1950), dirumuskan dalam
suatu algortima oleh RJ Walker (1960), aplikasinya dikembangkan oleh
Golomb dan Baumert.
Dasar dari teknik Backtracking adalah searching.
Backtracking merupakan salah satu algotritma yang didasarkan pada
pencarian ruang solusi.
Pencarian ruang solusi dalam algoritma backtracking menggunakan
teknik pencarian Depth First Search (DFS).
Masalah-masalah yang dapat diselesaikan dengan menggunakan
algoritma Backtracking adalah :
The 8-Queen Problem
The 4-Queen Problem
Sum of Subsets
Graph Coloring
Hamilton Cycles
Knapsack Problem
The Travelling Salesman Problem
Masalah utama dari SUM of SUBSETS adalah jika terdapat n bilangan real dan
ingin dihitung semua kombinasi yang mungkin dari himpunan bilangan
tersebut. Kombinasi yang didinginkan adalahkombinasi yang jumlah seluruh
elemen-elemennya sama dengan M (tertentu).
print(x(j),j 1 to k)
else
if s + w(k) + w(k+1) ≤ M then
call sumofsub(s+w(k), k+1, r-w(k))
endif
endif
if s + r-w(k) ≥ M and s + w(k+1) ≤ M then
x(k) 0
call sumofsub(s, k+1, r-w(k))
endif
end sumofsub
Permasalahan :
Suatu himpunan terdiri dari 6 bilangan yaitu {5, 10, 12, 13, 15, 18} yang disusun
secara tidak turun. Akan ditentukan himpunan-himpunan bagiannya yang
jumlah seluruh elemennya adalah 30
Penyelesaian :
n=6
W(1:6) = {5,10,12,13,15,18}
M = 30
Diasumsikan bahwa w(1) ≤ M dan ∑ w(i) ≥ M
j=k
0, 1, 73
x(1)=1 x(1)=0
TEKNIK BACKTRACKING
Dini Sundani, ST., MMSI 2
LOGIKA ALGORITMA D3 MI GRAF dan ANALISIS ALGORITMA S1 SK
5, 2, 68 0, 2, 68
15, 3, 58 5, 3, 58 10, 3, 58 0, 3, 58
x(3)=1 x(3)=0
x(3)=0 x(3)=1 x(3)=0 x(3)=0
A
12, 6, 18 13, 6, 18
x(6)=1
A = {1,1,0,0,1} = 5+10+15=30
B = {1,0,1,1} = 5+12+13 = 30
C = {0,0,1,0,0} = 12+18 = 30
TEKNIK BACKTRACKING
Dini Sundani, ST., MMSI 3