Anda di halaman 1dari 18

Pascasarjana Undiksha

UAS DESAIN DAN


ANALISA ALGORITMA
Dr. I Made Gede Sunarya, S.Kom., M.Cs.
Algoritma Backtraking
Oleh: Nyoman Juli Budiartawan
2329101024

Kelas A Singaraja
Pascasarjana Undiksha

Apa itu Backtraking?


Backtracking adalah teknik algoritmik untuk menyelesaikan masalah
secara rekursif dengan mencoba membangun solusi secara bertahap,
satu per satu, menghilangkan solusi yang gagal memenuhi kendala
masalah di setiap titik waktu (saat ini, disebut waktu berlalu hingga
mencapai level pohon pencarian mana saja).
Pascasarjana Undiksha

Apa itu Backtraking?


Algoritma runut-balik atau backtracking adalah algoritma perbaikan
dari algoritma brute-force yang secara sistematis mencoba seluruh
cara untuk mencari solusi dari sebuah masalah. Algoritma runut-balik
berbasis pada algoritma DeepFirst Search (DFS), Pada algoritma DFS
pencarian solusi dilakukan dengan cara menelusuri node-node dari
sebuah tree secara pre-order.
Pascasarjana Undiksha
Dead end
?
Ilustrasi:
Dimana kita diminta untuk mengambil Dead end
Keputusan dari sejumlah pilihan yang
tersedia, Dimana kondisinya seperti Start ? ? ? Dead end
misanya:

• Kita tidak memiliki informasi yang Dead end


cukup dengan apa yang harus dipilih
• Tiap Keputusan mengarah pada ? Dead end
pilihan-pilihan yang baru
• Suatu sekuens pilihan mungkin
merupakan Solusi atas persoalan Success!
yang kita hadapi
Pascasarjana Undiksha

Prinsip Pencarian Backtraking


pencarian solusi dengan menggunakan
algoritma backtracking digunakan pohon
ruang status. Cara kerjanya adalah
dengan membentuk lintasan dari akar ke
daun.
Pascasarjana Undiksha

Langkah-langkah pencarian solusi pada


pohon ruang status yang dibangun
secara dinamis:

Solusi dicari dengan membentuk lintasan dari akar


ke daun. Aturan pembentukan yang dipakai adalah
mengikuti metode pencarian mendalam (DFS).
Simpul-simpul yang sudah dilahirkan dinamakan
simpul hidup (live node). Simpul hidup yang
sedang diperluas dinamakan simpul-E (Expand-
node). Simpul dinomori dari atas ke bawah sesuai
dengan urutan kelahirannya.
Pascasarjana Undiksha

Langkah-langkah pencarian solusi pada


pohon ruang status yang dibangun
secara dinamis:

Tiap kali simpul-E diperluas, lintasan yang


dibangun olehnya bertambah panjang. Jika
lintasan yang sedang dibentuk tidak mengarah ke
solusi maka simpul-E tersebut “dibunuh” sehingga
menjadi simpul mati (dead node). Fungsi yang
digunakan untuk membunuh simpul-E adalah
dengan menerapkan fungsi pembatas (bounding
function). Simpul yang sudah mati tidak akan
pernah diperluas lagi.
Pascasarjana Undiksha

Langkah-langkah pencarian solusi pada


pohon ruang status yang dibangun
secara dinamis:

Jika pembentukan lintasan berakhir dengan simpul


mati, maka proses pencarian diteruskan dengan
membangkitkan simpul anak yang lainnya. Bila
tidak ada lagi simpul anak yang dapat
dibangkitkan, maka pencarian solusi dilanjutkan
dengan melakukan backtracking ke simpul hidup
terdekat (simpul orang tua). Selanjutnya simpul ini
menjadi simpul-E yang baru. Lintasan baru
dibangun kembali sampai lintasan tersebut
membentuk solusi.
Pascasarjana Undiksha

Langkah-langkah pencarian solusi pada


pohon ruang status yang dibangun
secara dinamis:

Pencarian dihentikan bila kita telah menemukan


solusi atau tidak ada simpul hidup untuk
backtracking atau simpul yang dapat di diperluas.
Analisis Algoritma Backtraking

Analisis efisiensi waktu algoritma Backtracking melibatkan penilaian terhadap parameter, operasi dasar,
serta kasus terbaik (best case), kasus terburuk (worst case), dan kasus rata-rata (average case).

Kasus Soduku
Permainan Sudoku melibatkan pengisian kotak
berukuran N x N dengan beberapa aturan tertentu.
Pada setiap baris atau kolom, angka yang diisi
tidak boleh sama. Pada kotak 3 x 3 di dalam kotak
N x N, angka yang sama juga tidak boleh terdapat.
Misalnya, pada Sudoku 9 x 9, hanya boleh
menggunakan angka 1 sampai 9, dan satu kotak
hanya bisa berisi satu angka. Beberapa kotak sudah
diisi sebagai petunjuk untuk pemain.
Algoritma
Penggunaan algoritma backtracking ini akan
terlihat dalam proses pengisian sel dengan sebuah
angka dimana terdapat beberapa kemungkinan
angka yang sesuai untuk sel tersebut. Pada
pengisian selanjutnya, angka yang diisikan akan
dicocokkan dengan angka-angka pada sel dalam
baris, kolom dan subgrid yang bersesuaian.
Metode membandingkan dan pencarian angka
yang menuju ke solusi dilakukan secara rekursif.
Parameter Algoritma
Backtraking

Parameter algoritma: Parameter sudoku:


• n: Ukuran masalah atau jumlah keputusan yang • n: Jumlah sel di papan Sudoku, yaitu n x n
harus diambil. (biasanya 9x9 untuk Sudoku standar).
• b: Faktor bercabang, yaitu jumlah opsi atau • b: Jumlah opsi yang mungkin untuk diisi pada
keputusan yang dapat diambil pada setiap setiap langkah, tergantung pada aturan Sudoku
langkah. (misalnya, 1 hingga 9 untuk Sudoku standar).
• d: Kedalaman pencarian, yaitu jumlah langkah • d: Kedalaman pencarian, yang mencerminkan
atau keputusan yang diambil dalam satu jalur. jumlah sel yang harus diisi.
Basic Operation
Algoritma Backtraking

Basic Operation: Basic Operation pada Algoritma sudoku:


Basic operation dalam algoritma Backtracking adalah • Dalam penerapan algoritma backtracking
satu iterasi atau langkah dalam pemilihan, evaluasi, algoritma dasar dari sudoku ini adalah looping
dan mundur (backtrack) ke langkah sebelumnya. dalam hal ini adalah iterasi melalui setiap sel
papan sudoku
• Rekursif untuk mencoba setiap nilai pada sel
kosong.
• Kemudian pemanggilan fungsi untuk pengecekan
penempatan nilai pada sel kosong
Base Case
Algoritma Backtraking

Best Case: Best Case sudoku:


• Deskripsi: Kasus terbaik terjadi ketika algoritma • Deskripsi: Best case terjadi ketika algoritma
menemukan solusi pada langkah-langkah awal. berhasil menemukan solusi pada cabang rekursif
• Waktu Eksekusi: O(1) atau konstan, karena solusi pertama yang dicoba.
ditemukan dengan cepat. • Kompleksitas Waktu: O(1)
• Penjelasan: Algoritma berhasil menempatkan
nilai pada sel kosong pertama yang dicoba, dan
solusi ditemukan tanpa perlu mencoba nilai lain
atau melakukan backtracking lebih lanjut
Worst Case
Algoritma Backtraking

Worst Case: Worst Case sudoku:


• Deskripsi: Kasus terburuk terjadi ketika algoritma • Deskripsi: Worst case terjadi ketika algoritma
harus mencoba banyak opsi sebelum menemukan harus mencoba semua kemungkinan nilai pada
solusi. setiap sel kosong dan melakukan backtracking
• Waktu Eksekusi: Bergantung pada faktor hingga ke akar pohon rekursif.
bercabang dan kedalaman pencarian. Dapat • Kompleksitas Waktu: O(9^(N^2))
dihitung sebagai O(b^d), di mana b adalah jumlah • Penjelasan: Setiap sel kosong harus mencoba
opsi dan d adalah kedalaman pencarian. nilai dari 1 hingga 9, dan algoritma melakukan
rekursi untuk setiap percobaan nilai. Dengan
papan Sudoku berukuran 9x9, ini menghasilkan
eksponensial 9^(N^2) percobaan.
Average Case
Algoritma Backtraking

Average Case: Average Case sudoku:


• Deskripsi: Average case bergantung pada • Deskripsi: Kasus rata-rata mencerminkan
distribusi dan keberadaan solusi pada papan perkiraan kinerja algoritma pada situasi rata-rata.
Sudoku tertentu. • Waktu Eksekusi: Sulit untuk secara tepat
• Kompleksitas Waktu: Sulit diprediksi secara pasti menghitungnya, tetapi pada umumnya, algoritma
karena bergantung pada sifat distribusi nilai awal Backtracking pada Sudoku memiliki kompleksitas
pada papan dan sejauh mana solusi dapat dicapai waktu eksponensial pada kasus rata-rata.
dengan cepat.
• Penjelasan: Jika solusi dapat ditemukan dengan
cepat, rata-rata waktu eksekusi akan lebih baik.
Namun, jika solusi tersebar di seluruh papan dan
memerlukan banyak percobaan nilai, waktu
eksekusi dapat mendekati worst case.
Pascasarjana Undiksha

Kelebihan :
Kekurangan :
• Memiliki fungsi pembatas yang dapat
• Merupakan algoritma yang hanya
menentukan lanjutan pengembangan
dapat dilakukan untuk persoalan
solusi sehingga membuang solusi
tertentu
yang tidak sesuai dengan tujuan
utama. • Penyelesaian persoalan dapat
memerlukan waktu yang cukup lama
• Langkah demi langkah yang jelas
sehingga mudah untuk dimengerti.
• Mudah untuk dicari kesalahan dalam
pengaplikasiannya

Anda mungkin juga menyukai