M
MAHENDRA
13115934
/ 3KA24
1.
Pencarian Buta (Blind Search)
yaitu tidak terdapatnya informasi
awal yang digunakan dalam proses pencarian. Ada dua jenis pencarian buta (blind
search) :
A. Pencarian melebar pertama
(Breadth – First Search)
Pada Breadth – First Search semua node pada level n akan dikunjungi terlebih dahulu sebelum mengunjungi node-node pada level n+1. Pencarian dimulai dari node akar terus ke level 1 dari kiri ke kanan, kemudian berpindah ke level berikutnya dari kiri ke kanan hingga solusi ditemukan.
Pada Breadth – First Search semua node pada level n akan dikunjungi terlebih dahulu sebelum mengunjungi node-node pada level n+1. Pencarian dimulai dari node akar terus ke level 1 dari kiri ke kanan, kemudian berpindah ke level berikutnya dari kiri ke kanan hingga solusi ditemukan.
Keuntungannya :
a. Tidak akan menemui jalan buntu, menjamin ditemukannya solusi (jika ada) yang paling baik.
a. Tidak akan menemui jalan buntu, menjamin ditemukannya solusi (jika ada) yang paling baik.
b. Jika ada 1 solusi, maka breadth –
first search akan menemukannya.
c. Jika ada lebih dari 1 solusi,
maka solusi minimum akan ditemukan.
Kerugiannya :
a. Membutuhkan memori yang banyak,
karena harus menyimpan semua simpul yang pernah dibangkitkan dan hal ini harus
dilakukan agar BFS dapat melakukan penelusuran simpul-simpul sampai di level
bawah.
b. Membutuhkan waktu yang cukup
lama.
Kesimpulan :
Teknik pencarian Breadth – First Search ini :
Teknik pencarian Breadth – First Search ini :
Completeness : Teknik yang digunakan adanya solusi.
Optimality : Teknik yang digunakan menemukan solusi yang terbaik saat
adanya beberapa solusi berbeda.
Time complexity : waktu yang dibutuhkan cukup lama.
Space complexity : memori yang dibutuhkan juga banyak.
Contoh Breadth – First Search :
Contoh Breadth – First Search :
Seperti pada gambar, jika dicari
bagaimana jalur dari kota a menuju kota k, maka sistem akan menjelajahi setiap
node hingga menemui titik kota k, sehingga hasil pencarian jalur terpendeknya
adalah : a - b - c - d - e - f - g - h - i - j - k . Contoh lain seperti gambar
disamping :
Gambar a : Tentukan jalur terpendek
dari simpul 1 hingga kembali ke simpul 1 lagi. !
Gambar b : Tentukan rute dari node 1 hingga node 7 !
Gambar c : Tentukan lintasan terpendek dari kota 1 ke kota 8 !
Maka, solusi yang ditemukan adalah :
Gambar b : Tentukan rute dari node 1 hingga node 7 !
Gambar c : Tentukan lintasan terpendek dari kota 1 ke kota 8 !
Maka, solusi yang ditemukan adalah :
- Gambar a : 1 - 2 - 3 - 4 - 5 - 6 -
7 - 1
- Gambar b : 1 - 2 - 3 - 4 - 5 - 6 - 7
- Gambar c : 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8
- Gambar b : 1 - 2 - 3 - 4 - 5 - 6 - 7
- Gambar c : 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8
Dalam implementasinya pada program,
maka setiap node yang telah dikunjungi harus dimasukkan dalam sebuah queue
(antrian) sebagai tempat menampung urutan node tahap demi tahap. untuk
memperjelas bagaimana alur algoritmanya, berikut langkah-langkahnya :
1. Masukkan node akar (root) ke dalam queue.
2. Ambil node dari awal antrian, lalu cek apakah node tersebut merupakan solusi.
3. Jika node merupakan solusi, pencarian selesai dan hasil dikembalikan.
4. Jika node bukan solusi, masukkan node yang bertetangga dengan node tersebut (node anak) ke dalam queue.
5. Jika queue kosong dan setiap simpul sudah dicek, pencarian selesai dan mengembalikan hasil solusi tidak ditemukan.
6. Ulangi pencarian dari langkah kedua.
1. Masukkan node akar (root) ke dalam queue.
2. Ambil node dari awal antrian, lalu cek apakah node tersebut merupakan solusi.
3. Jika node merupakan solusi, pencarian selesai dan hasil dikembalikan.
4. Jika node bukan solusi, masukkan node yang bertetangga dengan node tersebut (node anak) ke dalam queue.
5. Jika queue kosong dan setiap simpul sudah dicek, pencarian selesai dan mengembalikan hasil solusi tidak ditemukan.
6. Ulangi pencarian dari langkah kedua.
B. Pencarian mendalam pertama (Depth – First Search)
Pada pencarian Depth – First Search dilakukan pada suatu simpul dalam setiap level dari yang paling kiri. Jika pada level yang paling dalam tidak ditemukan solusi, maka pencarian dilanjutkan pada simpul sebelah kanan dan simpul yang kiri dapat dihapus dari memori. Jika pada level yang paling dalam tidak ditemukan solusi, maka pencarian dilanjutkan pada level sebelumnya. Demikian seterusnya sampai ditemukan solusi.
Keuntungannnya :
a. Membutuhkan memori relatif kecil, karena hanya node-node pada lintasan yang aktif saja yang disimpan.
a. Membutuhkan memori relatif kecil, karena hanya node-node pada lintasan yang aktif saja yang disimpan.
b. Dan secara kebetulan, akan
menemukan solusi tanpa harus menguji lebih banyak lagi dalam ruang keadaan,
jadi jika solusi yang dicari berada pada level yang dalam dan paling kiri, maka
DFS akan menemukannya dengan cepat (waktunya cepat).
Kerugiannya :
a. Memungkinkan tidak ditemukannya atau tidak adanya tujuan yang diharapkan, karena jika pohon yang dibangkitkan mempunyai level yang sangat dalam (tak terhingga) à tidak complete karena tidak ada jaminan akan menemukan solusi.
a. Memungkinkan tidak ditemukannya atau tidak adanya tujuan yang diharapkan, karena jika pohon yang dibangkitkan mempunyai level yang sangat dalam (tak terhingga) à tidak complete karena tidak ada jaminan akan menemukan solusi.
b. Hanya mendapat 1 solusi pada
setiap pencarian, karena jika terdapat lebih dari satu solusi yang sama tetapi
berada pada level yang berbeda, maka DFS tidak menjamin untuk menemukan solusi
yang paling baik à tidak optimal.
Contoh Depth – First Search :
Dalam pencarian menggunakan
algoritma DFS, simpul-simpul yang paling dalam pada tree yang akan di cari
paling awal. Sebagai contoh pada Gambar di atas. Urutan pencarian keadaan awal
(S) sampai keadaan tujuan (G) adalah dimulai dari node S, kemudian ke node A, kemudian
ke node B, kemudian ke node C, setelah itu akan melewati node B kembali dan
menuju ke node E, selanjutnya akan menuju node D, setelah itu akan menuju node
F setelah melewati node E, dan yang terakhir akan menuju node G.
2.
Pencarian Terbimbing (Heuristic Search)
Yaitu terdapatnya informasi awal
yang digunakan dalam proses pencarian. Pencarian buta (blind search) tidak
selalu dapat diterapkan dengan baik, disebabkan karena waktu aksesnya yang
cukup lama & besarnya memori yang diperlukan. Untuk masalah dengan ruang
masalah yang besar, teknik pencarian buta (blind search) bukan teknik yang baik
untuk digunakan karena keterbatasan kecepatan komputer dan memori.
Dengan adanya teknik heuristic search diharapkan bisa menyelesaikan permasalahan yang lebih besar. Fungsi dari teknik heuristic search menggunakan suatu fungsi yang menghitung biaya perkiraan (estimasi) dari suatu simpul tertentu menuju ke simpul tujuan. Contoh aplikasi yang menggunakan fungsi heuristic : Google, Deep Blue Chess Machine. Ada empat jenis pencarian terbimbing (heuristic search) :
Dengan adanya teknik heuristic search diharapkan bisa menyelesaikan permasalahan yang lebih besar. Fungsi dari teknik heuristic search menggunakan suatu fungsi yang menghitung biaya perkiraan (estimasi) dari suatu simpul tertentu menuju ke simpul tujuan. Contoh aplikasi yang menggunakan fungsi heuristic : Google, Deep Blue Chess Machine. Ada empat jenis pencarian terbimbing (heuristic search) :
A. Pembangkitan dan pengujian
(Generate and Test)
Teknik ini merupakan gabungan dari DFS dan pelacakan mundur (backtracking), yaitu bergerak ke belakang menuju pada suatu keadaan awal. Dimana nilai pengujian berupa jawaban “ya” atau “tidak”. Algoritma nya :
Teknik ini merupakan gabungan dari DFS dan pelacakan mundur (backtracking), yaitu bergerak ke belakang menuju pada suatu keadaan awal. Dimana nilai pengujian berupa jawaban “ya” atau “tidak”. Algoritma nya :
a.Bangkitkan suatu kemungkinan
solusi (membangkitkan suatu titik tertentu atau lintasan tertentu dari keadaan
awal).
b.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.
c.Jika
solusi ditemukan, keluar dan jika tidak, ulangi lagi langkah pertama.
Salah satu kelemahan teknik Generate and Test adalah perlu membangkitkan semua kemungkinan sebelum dilakukan pengujian, sehingga membutuhkan waktu yang cukup besar dalam pencariannya.
Contoh Generate and Test:
Seorang salesman ingin mengunjungi n kota. Jarak antara tiap-tiap kota sudah diketahui. Kita ingin mengetahui ruter terpendek dimana setaip kota hanya boleh dikkunjungi tepat 1 kali. Misalkan ada 4 kota dengan jarak antara tiap-tiap kota seperti berikut ini :
Penyelesaian dengan Metode Generate and Test
B. Pendakian Bukit (Hill Climbing)
Hampir sama dengan teknik Generate and Test dimana roses pengujian dilakukan dengan menggunakan fungsi heuristic. Pembangkitan keadaan berikutnya sangat tergantung pada feedback dari prosedur pengetesan. Tes yang berupa fungsi heuristic ini akan menunjukkan seberapa baik nilai terkaan yang diambil terhadap kesalahan-kesalahan lainnya yang mungkin.
Salah satu kelemahan teknik Generate and Test adalah perlu membangkitkan semua kemungkinan sebelum dilakukan pengujian, sehingga membutuhkan waktu yang cukup besar dalam pencariannya.
Contoh Generate and Test:
Seorang salesman ingin mengunjungi n kota. Jarak antara tiap-tiap kota sudah diketahui. Kita ingin mengetahui ruter terpendek dimana setaip kota hanya boleh dikkunjungi tepat 1 kali. Misalkan ada 4 kota dengan jarak antara tiap-tiap kota seperti berikut ini :
Penyelesaian dengan Metode Generate and Test
B. Pendakian Bukit (Hill Climbing)
Hampir sama dengan teknik Generate and Test dimana roses pengujian dilakukan dengan menggunakan fungsi heuristic. Pembangkitan keadaan berikutnya sangat tergantung pada feedback dari prosedur pengetesan. Tes yang berupa fungsi heuristic ini akan menunjukkan seberapa baik nilai terkaan yang diambil terhadap kesalahan-kesalahan lainnya yang mungkin.
Teknik-teknik pada Hill Climbing :
1. Teknik simple hill climbing
Algoritma akan berhenti kalau mencapai nilai optimum lokal. Urutan penggunaan operator akan sangat berpengaruh pada penemuan solusi. Tidak diijinkan untuk melihat satupun langkah selanjutnya.
Algoritma akan berhenti kalau mencapai nilai optimum lokal. Urutan penggunaan operator akan sangat berpengaruh pada penemuan solusi. Tidak diijinkan untuk melihat satupun langkah selanjutnya.
2. Teknik steepest – ascent hill climbing
Hampir sama dengan simple hill climbing, hanya saja gerakan pencarian tidak dimulai dari paling kiri. Gerakan selanjutnya dicari berdasarkan nilai heuristic terbaik.
Contoh "TSP dengan Simple Hill Climbing" :
Disini ruang keadaan berisi semua kemungkinan lintasan yang mungkin. Operator digunakan untuk menukar posisi kota-kota yang bersebelahan. Apabila ada n kota, dan kita ingin mencari kombinasi lintasan dengan menukar posisi urutan 2 kota, maka kita akan mendapatkan sebanyak (n! / 2! (n-2)!) atau sebanyak 6 kombinasi.
Fungsi heuristic yang digunakan adalah panjang lintasan yang terjadi.
Hampir sama dengan simple hill climbing, hanya saja gerakan pencarian tidak dimulai dari paling kiri. Gerakan selanjutnya dicari berdasarkan nilai heuristic terbaik.
Contoh "TSP dengan Simple Hill Climbing" :
Disini ruang keadaan berisi semua kemungkinan lintasan yang mungkin. Operator digunakan untuk menukar posisi kota-kota yang bersebelahan. Apabila ada n kota, dan kita ingin mencari kombinasi lintasan dengan menukar posisi urutan 2 kota, maka kita akan mendapatkan sebanyak (n! / 2! (n-2)!) atau sebanyak 6 kombinasi.
Fungsi heuristic yang digunakan adalah panjang lintasan yang terjadi.
Sumber :
http://yoosinhay.blogspot.co.id/2011/03/teknik-pencarian-perancangan.html
http://dananramadhan.blogspot.co.id/2017/12/metode-pencarian-buta-dan-heuristik.html
https://www.s-notess.tk/2016/11/metode-pencarian-blind-search.html
http://riansetyawan72.blogspot.co.id/2017/12/definisi-dan-contoh-metode-pencarian.html?m=1


Tidak ada komentar:
Posting Komentar