Anda di halaman 1dari 14

Algoritma Backtracking (Runut-Balik)

• Algoritma backtracking pertama kali diperkenalkan oleh D.H Lehmer pada


tahun 1950.
• Algoritma backtracking merupakan algoritma yang digunakan untuk mencari
solusi persoalan secara lebih mangkus daripada menggunakan algoritma
brute force.
• Algoritma backtracking berbasis pada DFS (Depth First Search) sehingga
aturan pencariannya akan mengikut kepada aturan pencarian DFS yaitu
dengan mencari solusi dari akar ke daun (dalam pohon ruang solusi) dengan
pencarian mendalam.
Properti Umum Metode Backtracking (Runut-Balik)
Solusi persoalan.
Solusi dinyatakan sebagai vektor n-tuple:
X=(X1, X2, ..., Xn), Xi Є Si (Xi anggota himpunan berhingga Si) .
Mungkin saja S1 = 0S2 = ... = Sn.
Contoh: Si = {0,1}
Si = 0, atau Si = 1
Fungsi pembangkit nilai Xk
Dinyatakan sebagai:
T(k)
T(k) membangkitkan nilai untuk xk, yang merupakan komponen vektor solusi
Fungsi Pembatas (Fungsi Kriteria)
Dinyatakan sebagai:
B(X1, X2, ..., Xk)
Fungsi pembatas menentukan apakah (X1, X2, ..., Xk) mengarah ke solusi.
Jika ya, maka pembangkitan nilai untuk Xk+1 dilanjutkan, tetapi jika tidak, maka
(X1, X2, ..., Xk) dibuang dan tidak dipertimbangkan lagi dalam pencarian solusi.
Pengorganisasian Solusi
• Semua kemungkinan solusi dari persoalan disebut ruang solusi (solution
space). Jika xi Є Si, maka S1 x S2 x … x Sn disebut ruang solusi. Jumlah
anggota di dalam ruang solusi adalah | S1| . | S2| . … . | Sn |. Tinjau persoalan
Knapsack untuk n = 3. Solusi persoalan dinyatakan sebagai vektor (x1, x2, x3)
dengan xi Є {0,1}. Ruang solusinya adalah:
{0,1} x {0,1} x {0,1} = {(0,0,0), (0,0,1), (0,1,0), (0,1,1), (1,0,0), (1,0,1), (1,1,0),
(1,1,1)}.
Prinsip Pencarian Solusi dengan Metode
Backtracking (Runut-Balik)
1. Solusi dicari dengan membentuk lintasan dari akar ke daun. Aturan yang
dipakai adalah mengikuti metode DFS.
2. Jika lintasan yang diperluas yang sedang dibentuk tidak mengarah ke
solusi, maka simpul-E tersebut “dibunuh” sehingga menjadi simpul mati
(dead node). Simpul yang sudah mati ini tidak akan diperluas lagi.
3. Jika pembentukan lintasan berakhir dengan simpul mati, maka proses
pencarian diteruskan dengan membangkitkan simpul anak lainnya.
Persoalan N-Queen
• N-Queen merupakan salah satu bentuk permainan puzzle yang pertama kali
dibentuk pada tahun 1848 oleh seorang pemain catur Max Bezzel.
• N-Queen merupakan generalisasi dari masalah 4-Queen dan 8-Queen. N-
Queen ditempatkan pada sebuah papan catur berukuran NxN tanpa dua
serangan sekaligus, dan tanpa dua atau lebih queen dalam satu baris, kolom,
dan diagonal yang sama.
• N-Queen merupakan generalisasi dari masalah 4-Queen dan 8-Queen. N-
Queen ditempatkan pada sebuah papan catur berukuran NxN tanpa dua
serangan sekaligus, dan tanpa dua atau lebih queen dalam satu baris, kolom,
dan diagonal yang sama.
x x
x x x
x x x
x x Q x x x x x
x x x
x x x
x x
x x
Langkah-langkah pemecahan masalah 4-Queen

o Terdapat papan berukuran 4x4.


o Tempatkan queen pada A1.
o Satu queen sudah ditempatkan pada A1, selanjutnya penempatan queen pada baris
berikutnya.
o Penempatan queen pada baris ke-3 untuk langkah A tidak mungkin dilakukan, maka
dari itu backtracking untuk langkah A berakhir di A1, B3. Langkah yang memungkinkan
adalah B. Tempatkan queen pada baris ke-3 untuk langkah B.
o Setelah penempatan queen ke-3, untuk penempatan queen selanjutnya tidak dapat
dilakukan. Kemungkinan untuk A1, B4, C2 berakhir, maka dari itu kembali ke langkah
pertama dan tempatkan queen pada A2.
o Tempatkan queen pada baris ke-2.
o Tempatkan queen pada baris ke-3.
o Tempatkan queen pada baris ke-4.
oJadi, solusi untuk pemecahan masalah 4-Queen adalah A2, B4, C1, D3.
Proses backtracking secara lengkap:
Pohon solusi dari backtracking
Algoritma Backtracking vs Brute force
• algoritma backtracking merupakan penyempurnaan dari algoritma brute force.
• Penggunaan algoritma brute force untuk kasus N-Queen dengan cara
menempatkan seluruh queen pada semua kolom.
• Perhitungan untuk algoritma brute force tentu saja lebih lama dibandingkan
dengan backtracking.
Kelebihan dan Kelemahan Algoritma
Backtracking
• Kelemahan dari algoritma • backtracking dapat bekerja jauh
backtracking ini yaitu hanya bisa lebih cepat dari brute force karena
diaplikasikan terbatas pada tipe jumlah kandidat solusi yang dapat
permasalahan yang memiliki solusi dibuang dengan backtracking cukup
yang dapat dicari secara sistematis besar.
dan bertahap. Ada beberapa •
masalah yang tidak bisa
diselesaikan dengan menggunakan
backtracking