Pertemuan 22 BACKTRACKING Matakuliah : T0034 / Perancangan & Analisis Algoritma Tahun : 2008 Pertemuan 22 BACKTRACKING
SEARCH TREE Untuk beberapa kasus algoritma, dalam setiap langkah terdapat beberapa pilihan dan algoritma harus memutuskan untuk memilih salah satunya. Keputusan yang dibuat akan mempengaruhi pilihan berikutnya, di mana algoritma harus membuat keputusan lagi, demikian seterusnya hingga solusi akhir dicapai. Teknik pencarian solusi seperti ini dapat digambarkan sebagai sebuah Search Tree Hubungan antara sebuah parent node dengan anak-anaknya adalah pilihan yang harus diputuskan dalam menyelesaikan sebuah masalah. Solusi yang benar ada di salah satu node tree, tapi kita belum tahu yang mana. Algoritma yang dibuat bertujuan untuk mencari node yang merupakan solusi tersebut. [buku utama, bab 9.1] Bina Nusantara
N-QUEEN PROBLEM Misalkan kita memiliki sebuah papan catur berukuran N x N. Papan catur ini harus diisi dengan N buah Queen sedemikian rupa sehingga keempat Queen tersebut tidak saling mengancam. 1 2 3 4 5 6 7 8 Q1 Bina Nusantara
MODELING N-QUEEN PROBLEM Bagaimana penyelesaian N-Queen Problem dapat digambarkan dengan sebuah Search Tree? N buah Queen harus diletakkan, berarti terdapat N keputusan Setiap baris papan catur hanya mungkin diisi oleh 1 Queen Berarti setiap keputusan akan meletakkan sebuah Queen di baris ke-N Yang harus diputuskan adalah : di kolom ke berapa Queen harus diletakkan Bina Nusantara
N-QUEEN SEARCH TREE [buku utama, ilustrasi 9.4] Bina Nusantara
COMPLETE vs PARTIAL SEARCH TREE Complete Search Tree bisa berukuran sangat besar Kompleksitas algoritma tinggi Diperlukan waktu cukup lama Memerlukan memori penyimpanan yang besar Sering kali dalam sebuah Search Tree, tidak semua node perlu ditelusuri Node-node yang jelas tidak memenuhi syarat dapat langsung diabaikan Node-node yang memiliki kemungkinan lebih tinggi menuju solusi dapat dibuka terlebih dahulu Kendala (constraint) sebuah problem dijadikan patokan untuk meneusuri sebuah node atau tidak Bina Nusantara
BACKTRACKING Backtracking adalah teknik untuk mencari solusi dengan Partial Search Tree Search Tree tidak sekaligus dibentuk secara utuh melainkan satu per satu. Pada setiap keputusan, algoritma akan menghitung apakah ”jalur tertentu” dalam tree memungkinkan terjadinya sebuah solusi atau tidak. Jika memungkinkan, proses akan diteruskan. Jika tidak memungkinkan, algoritma akan membatalkan jalur keputusan yang sudah dibuat, maka lakukan langkah mundur (backtrack) dan mencari jalur yang lain. Contoh populer penerapan teknik dasar algoritma Backtracking adalah N-Queen Problem Sebagai contoh, akan digunakan nilai N=4 (4-Queen Problem) [buku utama, bab 9.3] Bina Nusantara
LANGKAH BACKTRACKING Bangun node awal sebagai active node (E-node) Dengan E-node, jalani node berikut dengan metode Depth First Search Periksa constraint, jika constraint dipenuhi maka nyatakan node tersebut sebagai active node (E-node) Jika contraint tidak dipenuhi, nyatakan node tersebut sebagai dead node (D-node) Jika yang didapat D-node, backtrack ke E-node di atasnya, kemudian jalani cabang lain dan seterusnya hingga didapat solusi yang diinginkan Bina Nusantara
SEARCH TREE WITH BACKTRACKING [buku utama, ilustrasi 9.17] Bina Nusantara
HASIL 4-QUEEN PROBLEM Q1 Q2 Q3 Q4 Akhirnya didapat node P sebagai solusi. Node P ini mewakili pilihan Q1 (1,2), Q2 (2,4), Q3 (3,1) dan Q4 (4,3). [buku utama, ilustrasi 9.17] Bina Nusantara
LATIHAN Lakukan pencarian solusi 5-Queen Problem dengan menggunakan teknik Bactracking ! Bina Nusantara
Apa yang sudah dipahami? Apa yang akan dibahas selanjutnya? REVIEW Apa yang sudah dipahami? Apa yang akan dibahas selanjutnya? Bina Nusantara