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.
D 6 C
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.
3. Lintasan ini kita bandingkan dengan lintasan ABCD, ternyata ABDC < ABCD,
sehingga lintasan terpilih adalah ABDC.
6. Salah satu kelemahan dari metode ini adalah perlunya dibangkitkan semua
kemungkinan solusi sehingga membutuhkan waktu yang cukup besar dalam
pencariannya.
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.
Terdapat 4 operator yang dapat kita gunakan untuk menggerakkan dari satu keadaan ke
keadaan yang baru.
Iterasi 1
Ke Kiri
Iterasi 2
Ke Kiri Ke Atas
Iterasi 3
Ke Atas Ke Kanan
Ke Kiri
Iterasi 4
Ke Atas Ke Bawah
Iterasi 5
Algoritma Steepest-Ascent 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 perubahan terhadap current state:
a) Misalkan SUK adalah suatu state yang menjadi suksesor dari current
state.
b) Untuk setiap operator yang bisa dilakukan terhadap current state,
kerjakan:
Aplikasikan operator tersebut dan bangkitkan new state.
Evaluasi new state. Jika merupakan goal state, kembalikan state
ini sebagai solusi dan keluar dari program. Jika bukan goal state, bandingkan
new state dengan SUK. Jika new state lebih baik daripada SUK, maka ganti
SUK dengan new state. Jika tidak lebih baik, SUK tidak perlu diganti.
c) Jika SUK lebih baik dari current state, maka ganti current state dengan
SUK
1. Dari state S, Steepest-Ascent HC akan mengevaluasi semua state yang menjadi next
state atau suksesornya, yaitu A, B, dan C. Dari ketiga suksesor tersebut dipilih suksesor
dengan nilai f yang terkecil.
2. State C akan dipilih sebagai suksesor S.
3. Misalkan, hasil penelusuran menemukan solusi G di level 4, padahal ada solusi optimal
di level 2, dalam hal ini Steepest-Ascent HC dikatakan terjebak pada solusi lokal atau
local minimum. Jadi Steepest-Ascent HC juga 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
Iterasi 1
Ke Kiri
Iterasi 2
Iterasi 3
Iterasi 4
Iterasi 5
Ke Ke Bawah
Ke Kiri
Atas