- Hal penting dalam menentukan keberhasilan sistem cerdas adalah kesuksesan dalam pencarian.
- Pencarian = suatu proses mencari solusi dari suatu permasalahan melalui sekumpulan kemungkinan ruang keadaan (state space).
- Ruang keadaan = merupakan suatu ruang yang berisi semua keadaan yang mungkin.
- Untuk mengukur performasi metode pencarian, terdapat 4 kriteria yang dapat digunakan :
- Completeness: apakah metode tsb menjamin penemuan solusi jika solusinya memang ada?
- Time complexity: berapa lama waktu yang diperlukan? (semakin cepat, semakin baik)
- Space complexity: berapa banyak memori yang diperlukan?
- Optimality: apakah metode tsb menjamin menemukan solusi yg terbaik jika ada beberapa solusi berbeda?
A. Metode Pencarian Buta (Blind Search)
Pencarian Melebar Pertama (Breadth - First Seacrh)
- Semua node pada level n akan dikunjungi terlebih dahulu sebelum level n+1
- Mulai dari akar lalu ke level 1 dari kiri ke kanan
- Kemudian ke level selanjutnya hingga solusi ditemukan
Keuntungan :
- Tidak akan menemui jalan buntu
- Menjamin ditemukannya solusi (jika solusinya memang ada) dan solusi yang ditemukan pasti yang paling baik
- Jika ada satu solusi maka bread-first search akan menemukannya
Kelemahan :
- Membuthkan memori yang cukup banyak
- Membutuhkan waktu yang cukup lama
Pencarian Mendalam Pertama (Depth - First Search)
Proses pencarian dilakukan pada semua anaknya sebelum dilakukan pencarian ke node-node yang selevel.
Keuntungannya :
- Memori yang relatif kecil
- Secara kebetulan, akan menemukan solusi tanpa harus menguji lebih banyak lagi
B. Metode Pencarian Heuristik
Pencarian buta tidak selalu dapat diterapkan dengan baik
- Waktu aksesnya cukup lama
- Besarnya memoru yang diperlukan
Metode heuristik search diharapkan bisa menyelesaikan permasalahan yang lebih besar. Metode heuristic search menggunakan suatu fungsi yang menghitung biaya perkiraan (estimasi) dari suatu simpul tertentu menuju ke simpul tujuan disebut fungsi heuristic. Aplikasi yang menggunakan fungsi heurustic : Google, Deep Blue Chess Machine.
Contoh : puzzle
Keadaan awal
Tujuan
Keadaan awal tujuan pencarian heuristik :
a. Operator
- Ubin kosong geser ke kanan
- Ubin kosong geser ke kiri
- Ubin kosong geser ke atas
- Ubin kosong geser ke bawah
b. Langkah awal hanya ada 3 operator yang bisa digunakan
- Ubin kosong digeser ke kiri, ke kanan, dan ke atas
c. Jika menggunakan blind search, tidak perlu mengetahui operasi apa yg akan dikerjakan (sembarang)
d. Pada pencarian heuristik perlu diberikan informasi khusus dalam domain tersebut
e. Untuk jumlah ubin yang menempati posisi yang benar, jumlah yang lebih tinggi adalah yang lebih diharapkan
f. Untuk jumlah ubin yang menempati posisi yang salah, jumlah yang lebih kecil adalah yang lebih diharapkan
g. Mnegitung total gerakan yang diperlukan untuk mencapai tujuan jumlah yang lebih kecil adalah yang diharapkan
Ada metode pencarian heuristik :
- Pembangkit & Pengujian (Generate & Test)
- Pendakian Bukit (Hill Climbing)
Pada prinsip ini merupakan penggabungan antara depth-first search dengan pelacakan mundur (backtracking), yaitu bergerak ke belakang menuju pada suatu keadaan awal
Algoritma :
- Bangkitkan suatu kemungkinan solusi (membangkitkan suatu titik tertentu atau lintasan tertentu dari keadaan awal)
- Uji untuk melihat apakah node tsb benar-benar merupakan solusinya dengan cara membandingkan node tsb atau node akhir dari lintasan yang dipilih dengan kumpulan tujuan yang diharapkan
- Jika solusi ditemukan, keluar. Jika tidak, ulangi lagi langkah pertama
Contoh. Travelling Salesman Problem (TSP)
Seorang salesman ingin mengunjungi n kota. Jarak antar tiap kota sudah diketahui. Ingin diketahui rute terpendek dimana setiap kota hanya noleh dikunjungi 1 kali.
Generate & Test akan membangkitkan semua solusi yang mungkin :
- A - B - C - D
- A - B - D - C
- A - C - B - D
- A - C - D - B, dll
Kelemahan dari Generate & Test, yaitu :
- Perlu membangkitkan semua kemungkina sebelum dilakukan pengujian
- Membutuhkan wajtu yang cukup lama dalam pencariannya
Pemdakian Bukit Hill (Hill Climbing)
Metode ini hampir sama dengan Generate & Testm hanya saja proses pengujian dilakukan dengan menggunakan fungsi heurisitk. Pembangkitan keadaan berikutnya sangat tergantung pada feedback dari prosedur pengertasam. Tes yang berupa fungsi heuristik akan menunjukkan seberapa baiknya nilai terkaan yang diambil terhadap kadaan lainnya yang mungkin
Simple Hill Climbing
Algoritma :
- Mulai dari keaadaan awal, lakukan pengujian. Jika merupakan tujuan, maka berhenti, jika tidak maka lanjutkan dengan keadaan sekarang sebagai keadaan awal
- Kerjakan langkat berikut sampai solusinya ditemuka, atau sampai tidak ada operator baru yang akan diaplikasikan pada keadaan sekarang
- Cari operator yang belum pernah digunakan, gunakan operator ini untuk mendapatkan keadaan baru.
- Evaluasi keadaan baru merupakan tujuan, keluar
- Jika keadaan baru merupakan tujuan, keluar
- Jika bukan tujuan, namun nilainya lebih baik daripada keadaan sekarang, maka jadikan keadaan baru tersebut menjadi keadaan sekarang
- Jika keadaan baru tidak lebih baik daripada keadaan sekarang, maka lanjutkan iterasi
Contoh. TSP
a. Operator : tukar kota ke-i dengan kota ke-j (Tk i,j)
b. Untuk 4 kota :
- Tk 1,2 : tukar kota ke-1 dengan kota ke-2
- Tk 1,3 : tukar kota ke-1 dengan kota ke-3
- Tk 1,4 : tukar kota ke-1 dengan kota ke-4
- Tk 2,3 : tukar kota ke-2 dengan kota ke-3
- Tk 2,3 : tukar kota ke-2 dengan kota ke-4
- Tk 3,4 : tukar kota ke-3 dengan kota ke-4
Untuk n kota, akan ada operator sebanyak n