Blind Searching
Blind Searching adalah model pencarian buta atau pencarian yang tidak memiliki inforamasi awal, model pencarian ini memiliki tiga ciri – ciri utama yaitu:
- Membangkitkan simpul berdasarkan urutan
- Kalau ada solusi maka solusi akan ditemukan
- Hanya memiliki informasi tentang node yang telah dibuka (node selanjutnya tidak diketahui).
(Breadth First Search)
Breadth First Search yaitu model pencarian yang memakai metode melebar. Untuk mencari hasilnya, model BFS ini menggunakan teknik pencarian persoalannya dengan cara membuka node (titik) pada tiap levelnya.
DFS (Depth-first Search)
DFS (Depth-first Search) sering disebut juga pencarian mendalam. Sesuai dengan namanya “pencarian mendalam”, DFS tidak mencari solusi per level, namun mencari pada kedalaman sebelah kiri terlebih dahulu, kemudian bila belum ditemuakn “goal”nya dilanjutkan ke sisi sebelah kanan dan seterusnya sampai ditemukan target/goal.
Contoh Penerapan BFS & DFS
Studi Kasus : Pada suatu hari ada seorang petani yang mempunyai seekor kambing dan serigala.Pada saat itu ia baru saja panen sayuran. Karena membutuhkan uang, petani tersebut hendak menjual kambing, serigala, dan sayurannya ke pasar Johar. Untuk sampai di pasar Johar, ia harus menyeberangi sebuah sungai.
Permasalahannya : adalah di sungai itu hanya tersedia satu perahu saja yang bisa memuat petani dan satu penumpang lainnya (kambing, srigala, atau sayuran). Jika ditinggalkan oleh petani tersebut, maka sayuran akan dimakan oleh kambing dan kambing akan dimakan oleh serigala.
Deskripsi
Studi Kasus : Pada suatu hari ada seorang petani yang mempunyai seekor kambing dan serigala.Pada saat itu ia baru saja panen sayuran. Karena membutuhkan uang, petani tersebut hendak menjual kambing, serigala, dan sayurannya ke pasar Johar. Untuk sampai di pasar Johar, ia harus menyeberangi sebuah sungai.
Permasalahannya : adalah di sungai itu hanya tersedia satu perahu saja yang bisa memuat petani dan satu penumpang lainnya (kambing, srigala, atau sayuran). Jika ditinggalkan oleh petani tersebut, maka sayuran akan dimakan oleh kambing dan kambing akan dimakan oleh serigala.
Deskripsi
- P =
Petani
- Sy =
Sayuran
- K =
Kambing
- Sg =
Serigala
Ruang Keadaan
- Untuk
daerah asal dan daerah seberang digambarkan. (P, Sy, K, Sg)
Keadaan Awal
- Daerah
Asal = (P, Sy, K, Sg)
- Daerah
seberang = (0, 0, 0, 0)
Tujuan
- Daerah
Asal = (0, 0, 0, 0)
- Daerah
seberang = (P, Sy, K, Sg)
Metode Penyelesaian :
a. Berikut ini adalah algoritma BFS :
- Masukkan
simpul akar ke dalam antrian Q. Jika simpul akar = simpul solusi (goal
node), maka stop.
- Jika Q
kosong, tidak ada solusi. Stop.
- Ambil
simpul v dari kepala (head) antrian, bangkitkan semua anak-anaknya. Jika v
tidak mempunyai anak lagi, kembali ke langkah 2. Tempatkan semua anak dari
v di belakang antrian.
- Jika
suatu simpul anak dari v adalah simpul solusi, maka solusi telah ditemukan,
kalau tidak kembali lagi ke langkah 2.
b. Menggunakan algoritma DFS :
- Masukkan
simpul akar ke dalam antrian Q. Jika simpul akar = simpul solusi, maka
stop.
- Jika Q
kosong, tidak ada solusi. Stop.
- Ambil
simpul v dari kepala (head) antrian. Jika kedalaman simpul v sama dengan
batas kedalaman maksimum, kembali ke langkah 2
- Bangkitkan
semua anak dari simpul v. Jika v tidak mempunyai anak lagi, kembali ke
langkah 2. Tempatkan semua anak dari v di awal antrian Q. Jika anak dari
simpul v adalah simpul tujuan, berarti solusi telah ditemukan, kalau
tidak, kembali lagi ke langkah 2.
Heuristic Searching
Heuristic Search merupakan metode pencarian yang memperhatikan nilai heuristik (nilai perkiraan).
Teknik pencarian heuristik (heuristic searching) merupakan suatu strategi untuk melakukan proses pencarian ruang keadaan (state space) suatu problema secara selektif, yang memandu proses pencarian yang kita lakukan di sepanjang jalur yang memiliki kemungkinan sukses paling besar, dan mengesampingkan usaha yang bodoh dan memboroskan waktu.
Heuristik adalah sebuah teknik yang mengembangkan efisiensi dalam proses pencarian, namun dengan kemungkinan mengorbankan kelengkapan (completeness).
Heuristic Search memperkirakan jarak menuju Goal (yang disebut dengan fungsi heuristik).
Fungsi heuristik ini digunakan untuk mengevaluasi keadaan-keadaan problema individual dan menentukan seberapa jauh hal tersebut dapat digunakan untuk mendapatkan solusi yang diinginkan.
Generate and Test
Strategi bangkitkan dan uji (generate and test) merupakan pendekatan yang paling sederhana dari semua pendekatan yang akan dibicarakan.
Pendekatan ini meliputi langkah–langkah sebagai berikut :
1.
Buatlah/bangkitkan sebuah solusi yang memungkinkan.
Untuk sebuah problema hal ini dapat berarti pembuatan sebuah titik khusus dalam
ruang problema.
2.
Lakukan pengujian untuk melihat apakah solusi yang
dibuat benar–benar merupakan sebuah solusi, dengan cara membandingkan titik
khusus tersebut dengan goal-nya (solusi).
3.
Jika telah diperoleh sebuah solusi, langkah – langkah
tersebut dapat dihentikan. Jika belum, kembalilah ke langkah pertama.
Jika pembangkitan atau pembuatan solusi – solusi yang
dimungkinkan dapat dilakukan secara sistematis, maka prosedur ini akan dapat
segera menemukan solusinya (bila ada). Namun, jika ruang problema sangat
besar, maka proses ini akan membutuhkan waktu yang lama.
Metode generate and test ini memang kurang efisien untuk masalah yang besar atau kompleks.
Metode generate and test ini memang kurang efisien untuk masalah yang besar atau kompleks.
Contoh :
“Travelling
Salesman Problem (TSP)” Seorang salesman ingin mengunjungi n kota. Jarak antara
tiap-tiap kota sudah diketahui. Kita ingin mengetahui rute terpendek dimana
setiap kota hanya boleh dikunjungin tepat 1 kali. Misalkan ada
4 kota dengan jarak antara tiap-tiap kota seperti gambar dibawah ini:
Penyelesaiaanya
:
Hill Climbing
Hill Climbing (mendaki bukit) merupakan salah satu variasi metode buat dan uji (generate and test) dimana umpan balik yang berasal dari prosedur uji digunakan untuk memutuskan arah gerak dalam ruang pencarian (search).
Dalam prosedur buat dan uji yang murni, respon fungsi uji hanyalah ya atau tidak. Dalam prosedurHill Climbing, fungsi uji dikombinasikan dengan fungsi heuristik yang menyediakan pengukuran kedekatan suatu keadaan yang diberikan dengan tujuan (goal).
Prosedur Hill Climbing :
1.
Buatlah solusi usulan pertama dengan cara yang sama
seperti yang dilakukan dalam prosedur buat dan uji (generate and test).
Periksalah apakah solusi usulan itu merupakan sebuah solusi. Jika ya,
berhentilah. Jika tidak, kita lanjutkan ke langkah berikutnya.
2.
Dari solusi ini, terapkan sejumlah aturan yang dapat
diterapkan untuk membuat sekumpulan solusi usulan yang baru.
3.
Untuk setiap elemen kumpulan solusi tersebut,
lakukanlah hal-hal berikut ini :
1.
Kirimkanlah elemen ini ke fungsi uji. Jika elemen ini
merupakan sebuah solusi, berhentilah.
2.
Jika tidak, periksalah apakah elemen ini merupakan
yang terdekat dengan solusi yang telah diuji sejauh ini. Jika tidak, buanglah.
3.
Ambilah elemen terbaik yang ditemukan di atas dan
pakailah sebagai solusi usulan berikutnya. Langkah ini bersesuaian dengan
langkah dalam ruang problema dengan arah yang muncul sebagai yang tercepat
dalam mencapai tujuan.
4.
Kembalilah ke langkah 2.
Masalah-masalah yang mungkin timbul
pada prosedur Hill Climbing :
- Maksimum lokal adalah suatu keadaan yang lebih baik daripada semua tetangganya namun masih belum lebih baik dari suatu keadaan lain yang jauh letaknya darinya.
- Daratan (Plateau) adalah suatu daerah datar dari ruang pencarian (search) dimana semua himpunan keadaan tetangganya memiliki nilai yang sama.
- Punggung (Ridge) adalah suatu daerah ruang pencarian (search) yang lebih tinggi daripada daerah sekitarnya, namun tidak dapat dibalikkan oleh langkah–langkah tunggal ke arah manapun.
Solusinya:
- Melakukan langkah balik (backtracking) ke simpul yang lebih awal dan mencoba bergerak ke arah yang lain.
- Melakukan lompatan besar ke suatu arah untuk mencoba bagian ruang pencarian yang baru.
- Menerapkan dua atau lebih aturan sebelum melakukan uji coba. Ini bersesuaian dengan bergerak ke beberapa arah sekaligus.
- Maksimum lokal adalah suatu keadaan yang lebih baik daripada semua tetangganya namun masih belum lebih baik dari suatu keadaan lain yang jauh letaknya darinya.
- Daratan (Plateau) adalah suatu daerah datar dari ruang pencarian (search) dimana semua himpunan keadaan tetangganya memiliki nilai yang sama.
- Punggung (Ridge) adalah suatu daerah ruang pencarian (search) yang lebih tinggi daripada daerah sekitarnya, namun tidak dapat dibalikkan oleh langkah–langkah tunggal ke arah manapun.
Solusinya:
- Melakukan langkah balik (backtracking) ke simpul yang lebih awal dan mencoba bergerak ke arah yang lain.
- Melakukan lompatan besar ke suatu arah untuk mencoba bagian ruang pencarian yang baru.
- Menerapkan dua atau lebih aturan sebelum melakukan uji coba. Ini bersesuaian dengan bergerak ke beberapa arah sekaligus.
Contoh :
Simple hill climbing
Sumber :





0 komentar:
Posting Komentar