Heuristic Search adalah pencarian bersyarat (terbimbing). Artinya, solusi yang diperoleh adalah solusi yang terbaik, bukan solusi sekali ketemu. Bagian-bagiannya adalah [masalah]-[pencarian]-[syarat]-[solusi]. Misal contoh masalah pada kasus di atas, Ambillah kelereng merah yang tidak pecah dan tidak lonjong. Sehingga ketika ketemu kelereng merah dan ada pecahnya, itu masih bukan solusi karena tidak sesuai dengan syarat (tidak pecah dan tidak lonjong).
1. Generate-and-Test (GT)
GT adalah metode yang paling sederhana dalam teknik pencarian heuristik. Jika
pembangkitan sebuah solusi yang mungkin (a possible solution) dikerjakan secara sistematis,
maka prosedur ini menjamin akan menemukan solusinya. Tetapi jika ruang masalahnya sangat
luas, mungkin memerlukan waktu yang sangat lama. Di dalam GT, terdapat dua prosedur
penting yaitu pembangkit (membangkitkan sebuah solusi yang mungkin) dan tes (menguji
solusi yang dibangkitkan tersebut). Dengan penggunaan memori yang sedikit, DFS bisa
digunakan sebagai prosedur pembangkit untuk menghasilkan suatu solusi. Prosedur Tes bisa
menggunakan fungsi heuristik. Metode Generate-and-Test (GT) adalah metode yang paling
sederhana dalam teknik pencarian heuristic.
Di dalam GT, terdapat dua prosedur penting:
1. Pembangkit (generate), yang membangkitkan semua solusi yang mungkin.
2. Test, yang menguji solusi yang dibangkitkan tersebut.
Algoritma GT menggunakan prosedur Depth First Search karena suatu solusi harus
dibangkitkan secara lengkap sebelum dilakukan Test. Dengan penggunaan memori yang
sedikit, DFS bisa digunakan sebagai prosedur pembangkit yang menghasilkan suatu solusi.
Prosedur Test bisa menggunakan fungsi heuristik.
Algoritma Generate-and-Test
1. Bangkitkan sebuah solusi yang mungkin. Solusi bisa berupa suatu keadaan (state)
tertentu. Solusi juga bisa berupa sebuah jalur dari satu posisi asal ke posisi tujuan,
seperti dalam kasus pencarian rute dari satu kota asal ke kota tujuan.
2. Tes apakah solusi yang dibangkitkan tersebut adalah sebuah solusi yang bisa diterima
sesuai dengan kriteria yang diberikan.
3. Jika solusi telah ditemukan, keluar. Jika belum, kembali ke langkah 1.
Studi Kasus: Traveling Salesman Problem (TSP)
1. Seorang salesman ingin mengunjungi sejumlah n kota. Akan dicari rute
terpendek di mana setiap kota hanya boleh dikunjungi tepat 1 kali. Jarak antara tiap-tiap
kota sudah diketahui. Misalkan ada 4 kota dengan jarak antara tiap-tiap kota seperti
terlihat pada gambar berikut.
Penyelesaian :
Penyelesaian dengan menggunakan Generate-and-Test dilakukan dengan
membangkitkan solusi-solusi yang mungkin dengan menyusun kota-kota dalam urutan
abjad, yaitu:
A-B-C-D
A-B-D-C
A-C-B-D
A-C-D-B
dan seterusnya
Dari gambar diatas dapat dijelakan sebagai berikut.
1. Misalkan kita mulai dari node A. Kita pilih sebagai keadaan awal adalah
lintasan ABCD dengan panjang lintasan = 19.
2. Kemudian kita lakukan backtracking untuk mendapatkan lintasan ABDC
dengan panjang lintasan = 18.
3. Lintasan ini kita bandingkan dengan lintasan ABCD, ternyata ABDC < ABCD,
sehingga lintasan terpilih adalah ABDC.
4. Kita lakukan lagi backtracking untuk mendapatkan lintasan ACBD (=12),
ternyata ACBD < ABDC, maka lintasan terpilih sekarang adalah ACBD.
5. Demikian seterusnya hingga ditemukan solusi yang sebenarnya.
6. Salah satu kelemahan dari metode ini adalah perlunya dibangkitkan semua
kemungkinan solusi sehingga membutuhkan waktu yang cukup besar dalam
pencariannya.
2. Metode Hill Climbing Search
Metode Hill-climbing merupakan variasi dari depth-first search. Dengan metoda ini,
eksplorasi terhadap keputusan dilakukan dengan cara depth-first search dengan mencari path
yang bertujuan menurunkan cost untuk menuju kepada goal/keputusan. Sebagai contoh kita
mencari arah menuju Tugu Monas, setiap kali sampai dipersimpangan jalan kita berhenti dan
mencari arah mana yang kira-kira akan mengurangi jarak menuju Tugu Monas, Dengan cara
demikian sebetulnya kita berasumsi bahwa secara umum arah tertentu semakin dekat ke Tugu
Monas.
Terdapat dua jenis HC yang sedikit berbeda, yakni :
1. Simple HC (HC Sederhana)
a. Algoritma akan berhenti kalau mencapai nilai optimum
lokal
b. Urutan penggunaan operator akan sangat berpengaruh
pada penemuan solusi.
c. Tidak diijinkan untuk melihat satupun langkah
selanjutnya.
2. Steepest-Ascent HC (HC dengan memilih kemiringan yang paling tajam /
curam)
a. Hampir sama dengan Simple HC, hanya saja gerakan pencarian tidak dimulai
dari paling kiri. Gerakan selanjutnya dicari berdasarkan nilai heuristik terbaik.
Algoritma Simple HC
1. Evaluasi initial state. Jika state ini adalah goal state, maka kembalikan state ini sebagai
solusi dan keluar dari program. Jika state ini bukan goal state, lanjutkan proses dengan
initial state sebagai current state.
2. Ulangi sampai solusi ditemukan atau sampai tidak ada operator baru yang dapat
diaplikasikan terhadap current state:
a) Pilih sebuah operator yang belum diaplikasikan terhadap current state
dan aplikasikan operator tersebut sehingga menghasilkan new state.
b) Evaluasi new state:
· Jika state ini adalah goal state, maka kembalikan state ini
sebagai solusi dan keluar dari program.
· Jika state ini bukan goal state tetapi lebih baik daripada
current state, maka jadikan state ini sebagai current state.
· Jika state ini tidak lebih baik daripada current state,
kembali ke langkah 2.a.
Sebagai contoh perhatikan gambar berikut ini.
Dari gambar diatas dapat dijelaskan sebagai berikut.
1. S menyatakan intial state, sedangkan G menyatakan goal state.
2. Variable f di setiap state menyatakan biaya antara state tersebut dengan goal state. Nilai
f pada goal state = 0.
3. Simple HC langsung memilih state B sebagai next state karena nilai f pada state B lebih
kecil dibandingkan nilai f pada state S.
4. Di sini tidak dipertimbangkan nilai f pada state C.
5. Misalkan pada akhir iterasi, Simple HC mengembalikan solusi G yang berada di level
6, padahal ada solusi yang lebih baik pada level 2. Dengan demikian Simple HC tidak
optimal.
Studi Kasus : Game 8- Puzzle
Terdapat 4 operator yang dapat kita gunakan 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 atas
4. Ubin kosong digeser ke bawah
Dari gambar diatas dapat dijelaskan sebagai berikut.
1. Jumlah heuristic h(n)= 5 merupakan intial state, sedangkan heuristic h(n)= 0
menyatakan goal state.
2. Jumlah heuristic h(n) setiap state menyatakan jumlah langkah dari state tersebut untuk
mencapai goal state.
3. Simple HC langsung memilih berpindah ke bawah pada iterasi I sebagai next state
karena nilai h(n) pada state tersebut lebih kecil dibandingkan nilai h(n) pada initial
state, begitupun seterusnya hingga mencapai goal state.
4. Jadi urutan penyelesaian game 8-puzzle diatas dengan menggunakan metode Simple Hill Climbing dan menghitung nilai heuristik berupa jumlah langkah yang diperlukan untuk mencapai goal state adalah ubin kosong bergeser ke BAWAH, KIRI, ATAS KANAN, BAWAH dengan nilai heuristik terakhir adalah 0.
0 komentar:
Posting Komentar