Metode-metode pencarian dibagi menjadi dua kategori yaitu pencarian buta tanpa informasi dan pencarian heuristik dengan informasi. Metode-metode pencarian buta meliputi breadth first search, depth first search, uniform cost search, sedangkan metode heuristik meliputi generate and test, hill climbing, dan best first search. Fungsi heuristik memainkan peran penting dalam metode pencarian heuristik dengan memberikan perkiraan biaya menuju solusi.
2. Metode-Metode Pencarian
Dua kategori pencarian :
1. Pencarian Buta/Tanpa Informasi (blind atau un-informed
search)
2. Pencarian heuristik/dengan informasi (heuristic/informed
search)
3. Metode-Metode Pencarian
Untuk mengukur perfomansi metode pencarian:
Completeness
Apakah metode tersebut menjamin penemuan solusi jika solusinya
memang ada?
Time Complexity
Berapa lama waktu yang diperlukan?
Space Complexity
Berapa banyak memori yang diperlukan?
Optimality
Apakah metode tersebut menjamin menemukan solusi yang terbaik jika
terdapat beberapa solusi berbeda?
5. Blind/Un-Informed Search
Breadth First Search (BFS)
Pencarian dilakukan pd semua simpul dlm setiap level scr
berurutan dari kiri ke kanan. Jika pada satu level blm
ditemukan solusi, maka pencarian dilanjutkan pd level
berikutnya. Demikian seterusnya sampai ditemukan solusi.
Depth First Search (DFS)
Pencarian dilakukan pd suatu simpul dlm setiap level dari yg
paling kiri. Jika pada level yg terdalam solusi belum
ditemukan, maka pencarian dilanjutkan pd simpul sebelah
kanan dan simpul yg kiri dapat dihapus dari memori.
6. Blind/Un-Informed Search
Depth Limited Search (DLS)
◦ Membatasi kedalaman maksimum dari suatu jalur solusi.
◦ Sblm menggunakan DLS, kita harus tahu berapa level
maksimum dari suatu solusi.
◦ Jika batasan kedalaman terlalu kecil, DLS tidak dapat
menemukan solusi yg ada.
Uniform Cost Search (UCS)
◦ Menggunakan urutan biaya dari yang paling kecil sampai yg
terbesar.
◦ UCS berusaha menemukan solusi dengan total biaya terendah
yg dihitung berdasarkan biaya dari simpul asal menuju ke
simpul tujuan.
7. Blind/Un-Informed Search
Iterative Deepening Search (IDS)
Gabungan dari BFS & DFS
Time complexity tinggi
Bi-Directional Search (BDS)
Pencarian dilakukan 2 arah : pencarian maju (dari start ke goal)
dan pencarian mundur (goal ke start).
Ketika 2 arah pencarian membangkitkan simpul yang sama,
maka solusi telah ditemukan, yaitu dgn cara menggabungkan
kedua jalur yg bertemu.
8. Heuristic
Heuristik diartikan sebagai suatu “proses yang mungkin
dapat menyelesaikan suatu masalah tetapi tidak ada
jaminan bahwa solusi yang dicari selalu dapat ditemukan”.
Teknik pencarian heuristik :
Generate andTest
Hill Climbing (Simple Hill Climbing dan Steepest – Ascent Hill
Climbing)
Simulated Annealing
Best First Search (Greedy Best First Search)
9. Heuristic
Generate n’ Test
Paling sederhana
Algoritma GT menggunakan prosedur Depth First Search
(DFS), suatu solusi hrs dbangkitkan secara lengkap
sebelum dilakukanTest.
Sistematis
Memiliki 2 prosedur penting :
◦ Pembangkit/Generate : membangkitkan sebuah solusi
◦ Tes/Test : menguji solusi yang dibangkitkan tersebut
10. Heuristic
Generate n’ Test
Algoritma :
1. Bangkitkan sebuah solusi yg mungkin.
Solusi bisa berupa suatu keadaan (State)
2. Tes apakah solusi yg dibangkitkan trsebut adl. sebuah
solusi yg bs diterima sesuai dgn kriteria yg diberikan.
3. Jika solusi telah ditemukan, keluar. Jika belum, kembali
ke langkah 1.
11. Heuristic
Hill Climbing
HC sering digunakan jika trdapat suatu fungsi heuristik yg
baik utk mengevaluasi state.
Dua jenis HC
Simple Hill Climbing (HC Sederhana)
Steepest-Ascent HC (HC dengan memilih kemiringan yg paling
tajam)
12. Heuristic
Hill Climbing -Simple Hill Climbing
Sederhana, langsung memilih new state yang memiliki jalur
yg lebih baik (“curam”) daripada jalur-jalur sblm nya tanpa
memperhitungkan jalur-jalur lain.
13. Heuristic
Hill Climbing -Simple Hill Climbing
Algoritma :
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/sampai tidak ada operator baru yg dpt
diaplikasikan thd current state :
a) Pilih sebuah operator yg belum diaplikasikan thdp current state dan
aplikasikan operator tersebut sehingga menghasilkan new state.
b) Evaluasi new state :
Jk state ini adl. goal state, mk kembalikan state ini sbg solusi & keluar dr program.
Jk state ini bukan goal state tetapi lebih baik daripada current state, mk jadikan state ini sbg
current state.
Jk state ini tidak lebih baik daripd current state, kembali ke langkah 2.a
15. Heuristic
Hill Climbing-Steepest Ascent HC
Algoritma :
1. Evaluasi intial state. Jika state ini adl goal state, maka kembalikan state ini sbg
solusi & keluar dr fungsi. Jika state ini bukan goal state, lanjutkan proses dgn
initial state sbg current state.
2. Ulangi sampai solusi ditemukan/sampai tidak ada perubahan thd current state:
a) Misalkan SUK adl state suksesor dr current state.
b) Utk stp operator yg bs dilakukan thd current state, kerjakan :
• Aplikasi operator tsb & bangkitkan new state.
• Utk stp operator yg bs dilakukan thd current state, kerjakan:
i. Aplikasikan operator tersebut & bangkitkan new state
ii. Evaluasi new state
Jika SUK lebih baik dr current state maka ganti current state dgn SUK.
16. Heuristic
Best First Search
BFS (Pencarian terbaik lebih dulu)
Membangkitkan simpul berikutnya dr sebuah simpul
terbaik diantara semua leaf nodes yg pernah dibangkitkan.
Penentuan simpul terbaik :
Menggunakan informasi berupa “biaya perkiraan” dari suatu
simpul menuju ke goal, atau
Gabungan antara biaya sebenarnya & biaya perkiraan tersebut.
17. Heuristic
Best First Search
1. Open berisi initial state, Closed masih kosong
2. Ulangi sampai goal ditemukan/sampai tidak ada nodes di dlm Open:
a. Ambil simpul terbaik yg ada di dlm Open
b. Jk simpul trsbt sama dgn goal, mk sukses
c. Jk tidak, masukkan simpul trsbt ke dlm Closed
d. Bangkitkan smua suksesor dr simpul trsebut
e. Utk stiap suksesor kerjakan:
i. Jk suksesor trsbut blm pernah dibangkitkan, evaluasi suksesor tambahkan ke Open,
dan catat parent atau orang tuanya.
ii. Jk suksesor trsbt sdh pernah dibangkitkan, ubah parent-nya jk jalurnya mll parent ini
lebih baik drpd mll parent yg sbelumnya. Selanjutnya perbarui biaya untuk suksesor
trsebut & node lain yg berada lvl bawahnya.
18. Heuristic
Best First Search
Open adl senarai (list) utk menyimpan simpul2 yg pernah
dibangkitkan & nilai heuristiknya tlh dihitung ttp blm trpilih sbg
simpul terbaik (Best Node)
Open berisi simpul2 yg msh memiliki peluang (peluangnya msh
terbuka)
Closed adl senarai untuk menyimpan simpul-simpul yg sdh
pernah dibangkitkan & sdh prnh trpilih sbg simpul terbaik.
Closed berisi simpul-simpul yg tidak mgkn trpilih sbg simpul
trbaik (peluang untuk terpilih sdh trtutup).
19. Heuristic
Fungsi Heuristik
Memainkan peranan yg penting.
Suatu fungsi diterima sbg. Fungsi heuristik jk biaya
perkiraan yg dihasilkan tidak melebihi biaya sebenarnya.
Jk melebihi => overestimate/ tidak optimal