Pencarian merupakan proses mencari solusi dari permasalahan melalui sekumpulan
kemungkinan ruang keadaan(state space) yang telah dianalisa. Ruang keadaan adalah ruang yang berisi segala kemungkinan yang bisa terjadi. Ada beberapa metode untuk melakukan pencarian. Tetapi untuk mendapatkan hasil yang memuaskan metode yang dipilih harus memiliki kriteria seperti di bawah ini : a. Completeness Yaitu metode yang dipergunakan adalah metode yang dapat menjamin penemuan solusi jika memang solusi tersebut ada. b. Time complexity Yaitu seberapa lama waktu yang dipergunakan untuk menemukan solusi. Metode yang baik adalah metode yang dapat menemukan solusi dengan waktu yang lebih singkat. c. Space complexity Seberapa perlu memori yang dipergunakan. d. Optimality Yaitu metode tersebut apakah menjamin mendapatkan solusi terbaik jika memeang ada beberapa solusi.
Metode yang digunakan dalam pencarian dan pelacakan yaitu :
1. Pencarian buta (blind search) a. Pencarian melebar pertama (Breadth – First Search) Untuk menemukan solusi dengan cara ini, maka langkah-langkah yang harus dilakukan adalah sebagai berikut : Semua node pada level n akan dikunjungi terlebih dahulu sebelum level n+1 Mulai dari akar terus ke level 1 dari kiri ke kanan Kemudian ke level selanjutnya hingga solusi ditemukan Metode ini belum optimal dalam mencari solusi karena membutuhkan waktu yang cukup lama sehingga memori yang diperlukan juga sangat besar. Walaupun begitu metode ini menjamin ditemukannya solusi (jika memang ada) dan solusi yang ditemukan merupakan solusi yang terbaik. b. Pencarian mendalam pertama (Depth – First Search) Untuk menemukan solusi dengan metode ini maka proses pencarian dilakukan pada semua anaknya sebelum dilanjutkan ke node-node yang selevel. Dengan menggunakan metode ini memori yang digunakan lebih kecil serta bila sacara kebetulan menemukan solusi maka kita tidak perlu menguji lebih banyak lagi. Tetapi bila kita tidak menemukanya, maka kita harus mencoba satu persatu pada node-node selanjutnya hingga solusi tersebut ditemukan. 2. Pencarian terbimbing (heuristic search) Pencarian buta tidak selalu bisa dipergunakan dengan baik karena waktu akses yang diperlukan cukup lama sehingga memori yang dibutuhkan pun juga cenderung lebih besar. Dengan metode heuristic maka diharapkan dapat menyelesaikan penyelesaian yang lebih besar karena metode heuristic menggunakan satu fungsi yang menghitung perkiraan biaya (estimasi) dari suatu simpul tertebtu menuju suatu simpul yang lainnya. Fungsi tersebut sering disebut dengan fungsi Heuristic. Banyak aplikasi yang menggunakan fungsi heuristic, contohnya : Google, Deep Blue Chess Machine. a. Pendakian Bukit (Hill Climbing) b. Pencarian Terbaik Pertama (Best First Search)