Hill Climbing Best First Search A* Searching Hill Climbing Best First Search A*
manusia mempertimbangkan sejumlah alternatif strategi dalam menyelesaikan suatu problema. Dalam permainan catur misalnya, seorang pemain mempertimbangkan sejumlah kemungkinan tentang langkah langkah berikutnya, memilih yang terbaik menurut kriteria tertentu seperti kemungkinan respon lawannya. Aspek tingkah laku cerdas yang mendasari teknik penyelesaian problema seperti dalam permainan catur tersebut dinamakan proses pencarian ruang keadaan (space state search).
Exhaustive search – adalah proses pencarian terhadap seluruh ruang keadaan serangkaian langkah yang paling dimungkinkan untuk mencapai tujuan. Walaupun metode ini dapat diterapkan pada setiap ruang keadaan, namun ukuran ruang keadaan yang sangat besar membuat pendekatan ini secara praktis tidak dimungkinkan (dalam permainan catur terdapat 10120 keadaan) Bila diimplementasikan ke dalam sistem komputer, maka akan membutuhkan memori yang sangat besar, dan waktu pencarian yang sangat lama. Dengan kata lain metode exhaustive search ini tidak efisien dan tidak efektif, sehingga tidak praktis untuk diimplementasikan.
Solusi Blind Search Heuristik Search Breadth First Search Depth First Search Heuristik Search Pembangkit dan pengujian (generate and test) hill climbing Best first search A*
Metode Heuristik Pencarian buta tidak selalu dapat diterapkan dengan baik, karena waktu aksesnya yang cukup lama & besarnya memori yang diperlukan. Terutama untuk permasalah dengan ruang masalah yang besar. Heuristik adalah sebuah teknik yang mengembangkan efisiensi dalam proses pencarian, namun dengan kemungkinan mengorbankan kelengkapan (completeness). Metode heuristic search menggunakan suatu fungsi yang menghitung biaya perkiraan (estimasi) dari suatu simpul tertentu menuju ke simpul tujuan
Contoh : 8-puzzle Ada 4 operator yang dapat digunakan untuk menggerakkan dari satu keadaan ke keadaan yang baru 1. Ubin kosong digeser ke kiri 2. Ubin kosong digeser ke kanan 3. Ubin kosong digeser ke bawah 4. Ubin kosong digeser ke atas
Langkah awal
Pada pencarian heuristik perlu diberikan informasi khusus, yaitu jumlah ubin yang menempati posisi yang benar. Jumlah yang lebih tinggi adalah yang lebih diharapkan (lebih baik).
Untuk jumlah ubin yang menempati posisi yang salah Jumlah yang lebih kecil adalah yang diharapkan (lebih baik)
Generate and Test Gabungan dari Depth First Search dan backtracking, bergerak ke belakang menuju pada suatu keadaan awal. Algoritma : 1. Bangkitkan suatu kemungkinan solusi (membangkitkan suatu tititk tertentu atau lintasan tertentu dari keadaan awal). 2. Uji untuk melihat apakah node tersebut benar-benar merupakan solusinya dengan cara membandingkan node terebut atau node akhir dari suatu lintasan yang dipilih dengan kumpulan tujuan yang diharapkan. 3. Jika solusi ditemukan, keluar. Jika tidak, ulangi kembali langkah pertama.
Contoh : “Travelling Salesman Problem (TSP)” Seorang salesman ingin mengunjungi n kota. Jarak antara tiap-tiap kota sudah diketahui. Kita ingin mengetahui ruter terpendek dimana setaip kota hanya boleh dikkunjungi tepat 1 kali. Misalkan ada 4 kota dengan jarak antara tiap-tiap kota seperti berikut ini :
Hill Climbing Metode ini hampir sama dengan metode pembangkitan dan pengujian, hanya saja proses pengujian dilakukan dengan menggunakan fungsi heuristik. Pembangkitan keadaan berikutnya tergantung pada feedback dari prosedur pengetesan. Tes yang berupa fungsi heuristic ini akan menunjukkan seberapa baiknya nilai terkaan yang diambil terhadap keadaan-keadaan lainnya yang mungkin.
Algoritma Simple Hill Climbing Cari operator yang belum pernah digunakan; gunakan operator ini untuk mendapatkan keadaan yang baru. Kerjakan langkah-langkah berikut sampai solusinya ditemukan atau sampai tidak ada operator baru yang akan diaplikasikan pada keadaan sekarang : Cari operator yang belum digunakan; gunakan operator ini untuk mendapatkan keadaan yang baru. Evaluasi keadaan baru tersebut : Jika keadaan baru merupakan tujuan, keluar Jika bukan tujuan, namun nilainya lebih baik daripada keadaan sekarang, maka jadikan keadaan baru tersebut menjadi keadaan sekarang. Jika keadaan baru tidak lebih baik daripada keadaan sekarang, maka lanjutkan iterasi.
Pada simple hill climbing, ada 3 masalah yang mungkin: Algoritma akan berhenti kalau mencapai nilai optimum local Urutan penggunaan operator akan sangat berpengaruh pada penemuan solusi Tidak diijinkan untuk melihat satupun langkah sebelumnya.
Contoh : TSP dengan Simple Hill Climbing Operator digunakan untuk menukar posisi kota-kota yang bersebelahan. Apabila ada 4 kota, dan kita ingin mencari kombinasi lintasan dengan menukar posisi urutan 2 kota, maka kita akan mendapatkan sebanyak 6 kombinasi. (1,2) menukar posisi kota 1 dan 2 (1,3) menukar posisi kota 1 dan 3 (1,4) menukar posisi kota 1 dan 4 (2,3) menukar posisi kota 2 dan 3 (2,4) menukar posisi kota 2 dan 4 (3,4) menukar posisi kota 3 dan 4
Steepest Ascent Hill Climbing Hampir sama dengan simple hill climbing, hanya gerakan pencarian tidak dimulai dari posisi paling kiri. Gerakan selanjutnya dicari berdasarkan nilai heuristik terbaik. Dalam hal ini urutan operator tidak menentukan penemuan solusi.
Best First Search Kombinasi Depth-First search dan Breadth-First search Pada metode best-first search, pencarian diperbolehkan mengunjungi node yang ada di level yang lebih rendah, jika ternyata node pada level yang lebih tinggi ternyata memiliki nilai heuristic yang lebih buruk.
Algoritma Tempatkan node awal pada antrian OPEN Kerjakan langkah-langkah berikut hingga tujuan ditemukan atau antrian OPEN sudah kosong : Ambil node terbaik dari OPEN Bangkitkan semua successor Untuk tiap successor, lakukan : Jika node tersebut belum pernah dibangkitkan, evaluasi node tersebut dan masukkan ke OPEN Jika node sudah pernah dibangkitkan, ubah parent jika lintasan baru lebih menjanjikan dan hapus node dari antrian OPEN Asumsi : node terbaik memiliki nilai paling kecil nilai pada setiap node menyatakan estimasi jarak lurus dari node ke GOAL
START=A GOAL=E A B D C E F G H OPEN CLOSED [A(0)] [] A≠GOAL [D(1), B(3), C(5)] [A] D ≠GOAL [B(3), E(4), C(5), F(6)] [A,D] B ≠GOAL [E(4), C(5), H(5), F(6), G(7)] [A,D,B] E=GOAL Lakukan backtracking sehingga diperoleh jalur : ADE dengan A B D C E F 3 5 1 3 5 4 6 G H 5 7 5 4 6
A* Perbaikan dari metode Best-First search dengan memodifikasi fungsi heuristiknya A* meminimumkan total biaya lintasan. Pada kondisi yang tepat, A* akan memberikan solusi yang terbaik dalam waktu yang optimal.
Fungsi Heuristik yang digunakan merupakan prakiraan (estimasi) cost dari initial state ke goal state, yang dinyatakan dengan : f’(n) = g(n) + h’(n) dimana : f’ = Fungsi evaluasi g = cost dari initial state ke current state h’ = perkiraan cost dari current state ke goal state
Contoh Misalkan kita memiliki ruang pencarian seperti pada gambar berikut. Node M merupakan keadaan awal dan node T merupakan tujuannya. Biaya edge yang menghubungkan node M dengan node A adalah biaya yang dikeluarkan untuk bergerak dari kota M ke kota A. Nilai g diperoleh berdasarkan biaya edge minimal. Sedangkan nilai h’ di node A merupakan hasil perkiraan terhadap biaya yang diperlukan dari node A untuk sampai ke tujuan. h’(n) bernilai ~ jika sudah jelas tidak ada hubungan antara node n dengan node tujuan (jalan buntu). Kita bisa merunut nilai untuk setiap node.
Penelusuran dengan f’(n)=h’(n) Node diekspansi Antrian OPEN M C H T [M(6)] [C(2), A(3), B(4)] [H(2), A(3), B(4), I(~)] [T(0), A(3), B(4), L(~), I(~)] [A(3), B(4), L(~) , I(~)] Penelusuran dengan f’(n)=g(n)+h’(n) [C(6), B(7), A(8)] [H(7), B(7), A(8), I(~)] [T(7), B(7), A(8), L(~), I(~)] [B(7), A(8), L(~), I(~)]
Latihan – Blind Search Diketahui gambar pohon berikut : Implementasikan algoritma BFS dan DFS untuk pohon diatas jila GOAL=J S A B I D C J* H E F G
Latihan – Hill Climbing Carilah lintasan terpendek dari graph di bawah dengan metode simple hill climbing dan stepest hill climbing. Jika operator yang digunakan hanya 4, yaitu (1,2), (2,3), (3,4) dan (4,1)
Latihan – Best 1st Search & A* 4 4 Jika h’(n) sbb : A-G=10,4; B-G=6,7; C-G=4; D-G=8,9; E-G=6,9; F-G=3, S-G=11. Carilah lintasan terpendek dimulai dari S ke G! 3 G S 5 5 3 4 D E F 2 4