Algoritma Generate and Test merupakan algoritma paling sederhana dalam teknik pencarian heuristik. Dalam
Generate and Test, terdapat dua prosedur penting yaitu generate (membangkitkan) yaitu membangkitkan semua solusi
yang mungkin dan test (pengetesan) yaitu menguji solusi yang dibangkitkan tersebut. Algoritma Generate and Test
menggabungkan algoritma DFS dengan pelacakan mundur (backtracking), yaitu bergerak ke belakang menuju state
awal.
Langkah-langkah dari algoritma Generate and Test adalah sebagai berikut :
1. Bangkitkan sebuah solusi yang mungkin
2. Menguji tiap-tiap node yang merupakan solusi dengan cara membandingkan node tersebut dengan node akhir dari
suatu lintasan yang dipilih dengan kumpulan tujuan yang diharapkan.
3. Jika solusi telah ditemukan, maka keluar dari sistem. Jika belum menemukan solusi, maka kembali ke langkah 1.
Hill climbing adalah teknik optimasi untuk menemukan pemecahan masalah dari data input dengan menggunakan
algoritma. Tahapan terbaik yang di gunakan dalam pemecahan permasalahan adalah properti yang penjelasan state
itu sendiri berisi semua informasi yang diperlukan untuk solusi (Russell dan Norvig, 2003).
Algoritma simple hill climbing:
1. Evaluasi state awal, jika state awal sama dengan tujuan, maka proses berhenti. Jika tidak sama dengan tujuan maka
lanjutkan proses dengan membuat state awal sebagai state sekarang.
2. Kerjakan langkah berikut sampai solusi ditemukan atau sampai tidak ada lagi operator baru yang dapat digunakan
dalam state sekarang :
BFS Adalah teknik penelusuran yang menggunakan pengetahuan akan suatu masalah untuk melakukan panduan
pencarian ke arah node tempat dimana solusi berada.
Langkah dari algoritma Breadth First Search adalah sebagai berikut :
¡ Menentukan node asal dan node tujuan.
¡ Pencarian dimulai dari node asal, node yang ada pada setiap tingkat seluruhnya diuji sebelum pindah ketingkat
berikutnya.
¡ Jika node tujuan ditemukan maka berhenti, tapi jika belum ditemukan maka dilanjutkan ke node yang ada di level 1.
Node yang berada dalam level 1 adalah node-node yan bertetangga dengan node asal.
¡ Jika langkah ketiga masih belum sampai ke tujuan, maka pencarian dilakukan ke node di level 2, yaitu node-node
yang bertetangga dengan masing-masing node di level 1. Demikian seterusnya, proses dilanjutkan sampai node
tujuan ditemukan.
Algorithm Greedy Best-First search merupakan jenis algoritma yang menggunakan pendekatan
penyelesaian masalah dengan mencari nilai maksimum sementara pada setiap langkahnya. Tujuan dari
algoritma greedy adalah menentukan rute terpendek berdasarkan biaya perkiraan.
Algoritma A* adalah algoritma yang menggabungkan algoritma Dijkstra dan algoritma Greedy Best Fiest Search. Selain
menghitung biaya yang diperlukan untuk berjalan dari simpul satu ke simpul lainnya, algoritma A* juga menggunakan
fungsi heuristic untuk memprioritaskan pemeriksaan simpul-simpul pada arah yang benar, sehingga algoritma A*
mempunyai efisiensi waktu yang baik dengan tidak mengorbankan perhitungan biaya sebenarnya.
Kelebihan dari metode ini adalah sebagai berikut:
¡ Membutuhkan memori yang relatif kecil. karena hanya node-node pada lintasan yang aktif saja yang disimpan.
¡ Menghasilkan solusi yang optimal dibandingkan Greedy Best First Search.
Kelemahan dari metode ini adalah sebagai berikut:
¡ Algoritma akan berhenti kalau mencapai nilai lokal optimum.
¡ Tidak diijinkan untuk melihat satupun langkah sebelumnya.
Function depth_first_search;
begin
open := [Start];
closed := [ ];
while open ¹ [ ] do
begin
remove leftmost state from open, call it X;
if X is a goal then return SUCCESS
else begin
generate children of X;
put X on closed;
discard remaining children of X if already on open or closed
put remaining children on left end of open
end
end;
return FAIL
end.
Function best_first_search;
begin
open := [Start];
closed := [ ];
while open ¹ [ ] do
begin
remove leftmost state from open, call it X;
if X is a goal then return SUCCESS
else begin
generate children of X;
assign each child their heuristic value;
put X on closed;
(discard remaining children of X if already on open or closed)
put remaining children on open
sort open by heuristic merit (best leftmost)
end
end;
return FAIL
end.