Algoritma Pencarian
Algoritma Pencarian
sebuah argumen kunci dan dengan langkah - langkah tertentu akan mencari rekaman
dengan kunci tersebut. Setelah proses pencarian dilaksanakan, akan diperoleh salah
satu dari dua kemungkinan, yaitu data yang dicari ditemukan ( successful ) atau tidak
ditemukan (unsuccessful).
Prinsip dari algoritma IDS ini adalah melakukan depth-limited search secara bertahap dengan nilai ℓ yang
incremental sampai tidak cut off. Berikut ini bagaimana algoritma IDS ini bekerja.
Pada Proses pertama ini batas kedalamannya masih 0 atau kosong sehingga
akan dilihat
apakah solusi sudah ditemukan pada node root. Jika belum ditemukan maka
nilai ℓ akan dinaikkan menjadi 1.
Pada proses kedua batas kedalaman akan bertambah 1 sehingga pencarian
solusi secara DFS akan bertambah satu level.
Proses ketiga batas kedalaman sudah menjadi 2 sehingga pencarian akan
dilakukan
sampai level 2. Jika belum menemukan solusinya, ℓ akan kembali dinaiikan
menjadi 3.
Pada proses ketiga pencarian akan dihentikan pada node M karena itu
merupakan goal
state
4. Bi-Directional Search
Secara singkat, Algoritma ini adalah penggabungan dari 3 buah
algoritma yang sudah dijelaskan sebelumnya, yaitu Algoritma BFS
(Breadth First Search), Algoritma DFS (Depth First Search), dan
Algoritma DLS (Depth Limited Search). Pencarian solusi dilakukan
dari titik awal dan titik tujuan secara bersamaan, sampai akhirnya
bertemu di sebuah titik tengah. Setelah menemukan titik tengah dan
hasil jalur dari masing-masing perhitungan sudah tepat, maka jawaban
sudah ditemukan.
Pada setiap iterasi, pencarian dilakukan dari dua arah: dari node asal
(start) dan dari node tujuan (goal). Ketika dua arah pencarian
membangkitkan node yang sama, maka solusi telah ditemukan, dengan
cara menggabungkan kedua jalur yang bertemu. Ada beberapa masalah
sebelum memustuskan untuk menngunakan strategi Bi-directional
Search, yaitu:
Bagaimana kalau terdapat beberapa node tujuan yang berbeda?
Terdapat perhitungan yang tidak efisien untuk selalu mengecek
apakah node baru yang dibangkitkan sudah pernah dibangkitkan
oleh pencarian dari arah yang berlawanan.
Bagaimana menentukan strategi pencarian untuk kedua arah
tersebut? Misalnya dari arah sumber dan dari arah tujuan
digunakan BFS.
Dalam bidirectional search terdapat tiga buah arah pencarian yaitu: (1)
forward (maju), (2) backward (mundur), dan (3) bidirectional (dua
arah). Bagi pencarian dua arah ini terdapat beberapa langkah dalam
penerapannya yaitu: (1) pada pencarian dua arah, node-node di perluas
dari status awal ke tujuan secara bersamaan (simultan), (2) pada setiap
tahap dicek apakah node-node yang dijumpai sudah dibangkitkan oleh
yang lain, (3) jika iya, maka gabungan jalur adalah solusinya, (4) dua
pencarian dapat bekerja paralel: satu dari asal ke tujuan, satu dari
tujuan ke awal, dan (5) saat keduanya bertemu, diperoleh jalur yang
baik.