• 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
perfomansi metode pencarian, terdapat 4 kriteria yang dapat digunakan :
Completeness :
apakah metode tersebut 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 tersebut menjamin menemukan solusi yang terbaik jika terdapat
beberapa solusi berbeda?
• Dua teknik
pencarian dan pelacakan
– Pencarian buta
(blind search)
• Pencarian
melebar pertama (Breadth – First Search)
• Pencarian
mendalam pertama (Depth – First Search)
– Pencarian
terbimbing (heuristic search)
• Pendakian Bukit
(Hill Climbing)
• Pencarian
Terbaik Pertama (Best First Search)
Pencarian Melebar
Pertama (Breadth-First Search)
• 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
pencarian-melebar-pertama-breadth-first-search
• 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
• Kelemahannya
– Membutuhkan
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
• Keuntungan
– Memori yang
relatif kecil
– Secara
kebetulan, akan menemukan solusi tanpa harus menguji lebih banyak lagi
pencarian-mendalam-pertama-depth-first-search
Pencarian
Heuristik
• Pencarian buta
tidak selalu dapat diterapkan dengan baik
– Waktu aksesnya
yang cukup lama
– Besarnya memori
yang diperlukan
• Metode
heuristic 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 heuristic : Google, Deep Blue Chess Machine
• Contoh pada
masalah 8 puzzle
keadaan awal
Keadaan Awal
Tujuan Pencarian Heuristik
• Operator
– Ubin kosong
geser ke kanan
– Ubin kosong
geser ke kiri
– Ubin kosong
geser ke atas
– Ubin kosong
geser ke bawah
• Langkah Awal
Gambar
• Langkah Awal
hanya 3 operator yang bisa digunakan
– Ubin kosong
digeser ke kiri, ke kanan dan ke atas.
• Jika
menggunakan pencarian buta, tidak perlu mengetahui operasi apa yang akan
dikerjakan (sembarang)
• Pada pencarian
heuristik perlu diberikan informasi khusus dalam domain tersebut
• Untuk jumlah
ubin yang menempati posisi yang benar jumlah yang lebih tinggi adalah yang
lebih diharapkan (lebih baik)
• Untuk jumlah
ubin yang menempati posisi yang salah jumlah yang lebih kecil adalah yang
diharapkan (lebih baik).
• Menghitung
total gerakan yang diperlukan untuk mencapai tujuan jumlah yang lebih kecil
adalah yang diharapkan (lebih baik).
Pencarian
Heuristik
• Ada 4 metode
pencarian heuristik
– Pembangkit
& Pengujian (Generate and Test)
– Pendakian Bukit
(Hill Climbing)
– Pencarian
Terbaik Pertama (Best First Search)
– Simulated
Annealing
Pembangkit &
Pengujian (Generate and Test)
• Pada prinsipnya
metode 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 tersebut benar-benar merupakan solusinya dengan cara
membandingkan node tersebut atau node akhir dari suatu lintasan yang dipilih
dengan kumpulan tujuan yang diharapkan.
– Jika solusi
ditemukan, keluar. Jika tidak, ulangi kembali langkah yang pertama.
Contoh :
Traveling Salesman Problem (TSP)
Seorang salesman
ingin mengunjungi n kota. Jarak antara tiap-tiap kota sudah diketahui. Ingin
diketahui rute terpendek dimana setiap kota hanya boleh dikunjungi tepat 1
kali.
Contoh :
Traveling Salesman Problem (TSP)
• 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
Pembangkit & Pengujian (Generate and Test) yaitu ;
– Perlu
membangkitkan semua kemungkinan sebelum dilakukan pengujian
– Membutuhkan
waktu yang cukup lama dalam pencariannya
Pendakian Bukit
(Hill Climbing)
• Metode ini
hampir sama dengan metode pembangkitan & pengujian, hanya saja proses
pengujian dilakukan dengan menggunakan fungsi heuristik.
• Pembangkitan
keadaan berikutnya sangat tergantung pada feedback dari prosedur pengetesan.
• Tes yang berupa
fungsi heuristic ini akan menunjukkan seberapa baiknya nilai terkaan yang
diambil terhadap keadaan-keadaan lainnya yang mungkin.
Simple Hill
Climbing
Algoritma
– Mulai dari
keadaan awal, lakukan pengujian: jika merupakan tujuan, maka berhenti; dan jika
tidak, lanjutkan dengan keadaan sekarang sebagai keadaan awal.
– Kerjakan
langkah-langkah berikut sampai solusinya ditemukan, atau sampai tidak ada
operator baru yang akan diaplikasikan pada keadaan sekarang:
• Cari operator
yang belum pernah digunakan; gunakan operator ini untuk mendapatkan keadaan
yang baru.
• Evaluasi
keadaan baru tersebut.
• 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
• Operator :
Tukar kota ke-i dengan kota ke-j (Tk i,j)
• 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,4 : 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:
Steepest Ascent
Hill Climbing
• Steepest-ascent
hill climbing sebenarnya hampir sama dengan simple hill climbing, hanya saja
gerakan pencarian tidak dimulai dari posisi paling kiri.
• Gerakan
selanjutnya dicari berdasarkan nilai heuristik terbaik.
• Dalam hal ini
urutan penggunaan operator tidak menentukan penemuan solusi.
• Steepest-ascent
hill climbing sebenarnya hampir sama dengan simple hill climbing, hanya saja
gerakan pencarian tidak dimulai dari posisi paling kiri.
• Gerakan selanjutnya
dicari berdasarkan nilai heuristik terbaik.
• Dalam hal ini
urutan penggunaan operator tidak menentukan penemuan solusi.
Algoritma
• Mulai dari
keadaan awal, lakukan pengujian: jika merupakan tujuan, maka berhenti; dan jika
tidak, lanjutkan dengan keadaan sekarang sebagai keadaan awal.
• Kerjakan hingga
tujuan tercapai atau hingga iterasi tidak memberikan perubahan pada keadaan
sekarang.
• Tentukan SUCC
sebagai nilai heuristic terbaik dari successorsuccessor.
• Kerjakan untuk
tiap operator yang digunakan oleh keadaan sekarang:
• Gunakan
operator tersebut dan bentuk keadaan baru.
• Evaluasi
keadaan baru tersebut. Jika merupakan tujuan, keluar. Jika bukan, bandingkan
nilai heuristiknya dengan SUCC. Jika lebih baik, jadikan nilai heuristic
keadaan baru tersebut sebagai SUCC. Namun jika tidak lebih baik, nilai SUCC
tidak berubah.
• Jika SUCC lebih
baik daripada nilai heuristic keadaan sekarang, ubah node SUCC menjadi keadaan
sekarang.