BAB I PENDAHULUAN 1.1
Latar belakang Kemajuan teknologi tidak hanya menuntut kecepatan penyebaran informasi tetapi juga dalam
bidang ilmu Artificial Intelligence untuk melakukan metode pencarian dan pelacakan yang merupakan suatu hal penting dalam suatu sistem. Karena pencarian dan pelacakan ini adalah hal yang menentukan keberhasilan sistem tersebut. sebuah algoritma pencarian dijelaskan secara luas adalah sebuah algoritma yang menerima masukan berupa sebuah masalah dan menghasilkan sebuah solusi untuk masalah tersebut, yang biasanya didapat dari evaluasi beberapa kemungkinan solusi. Sebagian besar algoritma yang dipelajari oleh ilmuwan komputer adalah algoritma pencarian. Pada dasarnya, metode pencarian dan pelacakan dibagi dua, yaitu pencarian buta (blind search) dan pencarian tersusun (heuristic search). Pada makalah ini kami akan membahas satu metode pencarian dan pelacakan saja, yaitu pencarian buta (blind search). Blind Searchg adalah model pencarian buta atau pencarian yang tidak memiliki informasi awal. Algoritma Pencarian ini menggunakan Metode yang bermacam – macam namun yang paling banyak dibahas adalah Breadth Fisrt Search (BFS) dan Depth First Search (DFS). Sehingga makalah ini
akan menjelaskan dan memberikan contoh aplikasi
penyelesaian masalah melalui metode Breadth Fisrt Search (BFS) dan Depth First Search (DFS). 1.2 Rumusan masalah Berdasarkan latar belakang diatas, maka ada beberapa masalah yang akan di bahas dalam makalah ini, yaitu : 1.2.1 Apa yang dimaksud dengan pencarian buta (blind search)? 1.2.2 Apa yang dimaksud dengan metode Breadth Fisrt Search (BFS)? 1.2.3 Apa yang dimaksud dengan metode Depth First Search (DFS)? 1.2.4 apa yang dimaksud dengan Best First Search? 1.2.5 Bagaimana pengaplikasian metode Breadth Fisrt Search (BFS) dan Depth First Search (DFS) dalam menyelesaikan masalah?
1.3 Tujuan
1.2.1 Memahami pengertian pencarian buta (blind search) 1.2.2 Memahami metode Breadth Fisrt Search (BFS) 1.2.3 Memahami metode Depth First Search (DFS) 1.2.4 Memahami metode Best First Search 1.2.5 mengetahui cara pengaplikasian metode Breadth Fisrt Search (BFS) dan Depth First Search (DFS) dalam menyelesaikan masalah.
BAB II PEMBAHASAN 2.1 Blind Search
Blind Search merupakan pencarian asal. Jika solusi sudah ditemukan, maka pencarian akan dihentikan. Jika dibuat skemanya, pencarian buta hanya mengenal 3 bagian yaitu [masalah]-[pencarian]-[solusi]. Blind Searching 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).
Blind search tidak mempunyai atribut atau informasi tambahan. Algoritma yang termasuk Blind search yaitu:
Breath First Search (BFS) Depth First Search (DFS) Uniform Cost Search (UCS) Depth-Limited Search (DLS) Interative-Deeping Search (IDS) Bi-directional Search (BDS
Hanya saja yang paling banyak dibahas adalah Breadth Fisrt Search (BFS) dan Depth First Search (DFS). 2.2 Breadth - First Search Breadth - First Search Metode ini akan mulai mencari dari node yang paling kiri, kemudian berpindah ke-node se-level dengannya, dan berulang - ulang trus hingga menemukan solusi yang dimaksud atau dpat dikatakan metode breadth-first search, yaitu 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 ke-1 dari kiri ke kanan, kemudian berpindah ke level berikutnya, demikian pula dari kiri ke kanan hingga ditemukannya solusi Algoritma ini memerlukan sebuah antrian q untuk menyimpan simpul yang telah dikunjungi. Simpulsimpul ini diperlukan sebagai acuan untuk mengunjungi simpul-simpul yang bertetanggaan dengannya. Tiap simpul yang telah dikunjungu masuk ke dalam antrian hanya satu kali. Algoritma ini juga membutuhkan table Boolean untuk menyimpan simpul yang te lah dikunjungi sehingga tidak ada simpul yang dikunjungi lebih dari satu kali.
Gambar 2.1 diagram alur penyelesaian masalah metode BFS CARA KERJA ALGORITMA BFS Dalam algoritma BFS, simpul anak yang telah dikunjungi disimpan dalam suatu antrian. Antrian ini digunakan untuk mengacu simpul-simpul yang bertetangga dengannya yang akan dikunjungi kemudian sesuai urutan pengantrian. Untuk memperjelas cara kerja algoritma BFS beserta antrian yang digunakannya, berikut langkah-langkah algoritma BFS: 1.
Masukkan simpul ujung (akar) ke dalam antrian
2.
Ambil simpul dari awal antrian, lalu cek apakah simpul merupakan solusi
3.
Jika simpul merupakan solusi, pencarian selesai dan hasil dikembalikan.
4.
Jika simpul bukan solusi, masukkan seluruh simpul yang bertetangga dengan simpul tersebut (simpul anak) ke dalam antrian
5.
Jika antrian kosong dan setiap simpul sudah dicek, pencarian selesai dan mengembalikan hasil solusi tidak ditemukan
6.
Ulangi pencarian dari langkah kedua
Contohnya terlihat dibawah ini:
Maka penyelesaiannya adalah: Gambar (a) BFS(1): 1, 2, 3, 4, 5, 6, 7, 1. Gambar (b) BFS(1): 1, 2, 3, 4, 5, 6, 7, 1 Gambar (c) BFS(1): 1, 2, 3, 4, 5, 6, 7, 8, 9 - Keuntungan metode Breadth First Search adalah : pasti menemukan solusi yang dicari, tidak akan mengalami jalan buntu / tidak menemukan solusi. Jika ada satu solusi, maka breadth-first search akan menemukannya. Dan, jika ada lebih dari satu solusi, maka solusi minimum akan ditemukan. - Kelemahan metode Breadth-First Search adalah : memerlukan memori yang cukup besar, karena metode ini mengecek keseluruhan node yang ada dan membutuhkan waktu yang lebih untuk mengecek semua node yang ada tersebut. 2.3 Depth-First Search Depth-First Search, DFS adalah sebuah pencarian uninformed yang berlangsung dengan memperluas simpul anak pertama dari pencarian pohon yang muncul dan dengan demikian akan semakin dalam sampai node tujuan ditemukan, atau sampai hits node yang tidak memiliki anak. Kemudian pencarian backtracks , kembali ke node terakhir kebanyakan belum selesai menjelajahi. Dalam implementasi non-rekursif, semua node yang baru diperluas ditambahkan ke stack untuk eksplorasi. Para waktu dan ruang analisis DFS berbeda menurut wilayah penerapannya. Dalam ilmu komputer teoretis, DFS biasanya digunakan untuk melintasi seluruh grafik, dan membutuhkan waktu O (| V | + | E |) , linear dalam ukuran grafik. Dalam aplikasi ini juga menggunakan ruang O (| V |) dalam kasus terburuk untuk menyimpan tumpukan vertex di jalan pencarian saat ini serta set-vertex sudah dikunjungi. Oleh karena itu, dalam pengaturan ini, waktu dan batas
ruang adalah sama seperti untuk luas pencarian pertama dan pilihan yang kedua algoritma untuk menggunakan kurang tergantung pada kompleksitas dan lebih pada sifat-sifat yang berbeda dari orderings titik dua algoritma menghasilkan. Untuk aplikasi dari DFS untuk mencari masalah dalam kecerdasan buatan , Namun, grafik yang akan dicari sering terlalu besar untuk mengunjungi secara keseluruhan atau bahkan tak terbatas, dan DFS mungkin menderita dari nonpemutusan kontrak kerja ketika panjang jalur di pohon pencarian tak terbatas. Oleh karena itu, pencarian hanya dilakukan dengan kedalaman terbatas, dan karena ketersediaan memori yang terbatas biasanya tidak menggunakan struktur data yang melacak himpunan semua node yang sudah dikunjungi sebelumnya. Dalam hal ini, waktu masih linier dalam jumlah vertex diperluas dan tepi (walaupun nomor ini tidak sama dengan ukuran keseluruhan grafik karena beberapa titik bisa dicari lebih dari sekali dan lain-lain tidak sama sekali) tetapi ruang kompleksitas ini varian dari DFS hanya sebanding dengan batas kedalaman, jauh lebih kecil daripada ruang yang dibutuhkan untuk mencari sampai kedalaman yang sama dengan -pertama pencarian luas . Untuk aplikasi tersebut, DFS juga meminjamkan sendiri jauh lebih baik untuk heuristik metode memilih cabang yang tampak mungkin. Ketika suatu batas kedalaman yang tepat tidak diketahui apriori, pertama cari memperdalam kedalaman-iteratif berlaku DFS berulang kali dengan urutan batas meningkat; dalam modus kecerdasan buatan analisis, denganfaktor percabangan lebih besar dari satu, meningkatkan memperdalam berulang kali berjalan dengan hanya faktor konstan selama kasus di mana batas kedalaman yang benar dikenal karena pertumbuhan geometrik jumlah node per tingkat.
Gambar 2.2 diagram alur penyelesaian masalah metode DFS
Keuntungan metode Depth First – Memori yang relatif kecil – Secara kebetulan, akan menemukan solusi tanpa harus menguji lebih banyak lagi Kekurangan metode Depth First - Memungkinkan tidak ditemukannya tujuan yang diharapkan - Hanya akan mendapatkan 1 solusi pada setiap pencarian 2.4 Best First Search (BFS) Best First Search (BFS) merupakan suatu cara yang menggabungkan keuntungan atau kelebihan dari pencarian Breadth First Search dan Depth First Search. Pada setiap langkah proses pencarian terbaik pertama, kita memilih node-node dengan menerapkan fungsi heuristik yang memadai pada setiap node/simpul yang kita pilih dengan menggunakan aturan-aturan tertentu untuk menghasilkan penggantinya. Fungsi Heuristik yang digunakan merupakan prakiraan (estimasi) cost dari initial state ke goal state, yang dinyatakan dengan :
f’ = g + h’ Dimana f’ = prakiraan cost dari initial ke goal g = cost dari initial state ke current state h’ = prakiraan cost dari current state ke goal state Best first search (BFS) juga merupakan sebuah metode yang membangkit kan simpul dari simpul sebelumnya. Best first search memilih simpul baru yang memiliki biaya terkecil diantara semua leaf nodes (simpul-simpul pada level terdalam) yang pernah dibangkitkan. Penentuan simpul terbaik dilakukan dengan menggunakan sebuah fungsi yang disebut fungsi evaluasi f(n). fungsi evaluasi best-first search dapat berupa biaya perkiraan dari suatu simpul menuju ke goal atau gabungan antara biaya sebenarnya dan biaya perkiraan tersebut. Pada setiap langkah proses pencarian terbaik pertama, kita memilih node-node dengan menerapkan fungsi heuristik yang memadai pada setiap node/simpul yang kita pilih dengan menggunakan aturan-aturan tertentu untuk menghasilkan penggantinya. Fungsi heuristic merupakan suatu strategi untuk melakukan proses pencarian ruang keadaan suatu problema secara selektif, yang memandu proses pencarian yang kita lakukan sepanjang jalur yang memiliki kemungkinan sukses paling besar. Ada beberapa istilah yang sering digunakan pada metode best first search, yaitu: 1.
Start node adalah sebuah terminology untuk posisi awal sebuah pencarian
2.
Curret node adalah simpul yang sedang dijalankan dalam algoritma pencarian jalan terpendek
3.
Suksesor adalah simpul-simpul yang yang akan diperiksa setelah current node
4.
Simpul (node) merupakan representasi dari area pencarian
5.
Open list adalah tempat menyimpan data simpul yang mungkin diakses dari starting node maupun simpul yang sedang dijalankan
6.
Closed list adalah tempat menyimpan data simpul yang juga merupakan bagian dari jalur terpendek yang telah berhasil didapatkan
7.
Goal node yaitu simpul tujuan
8.
Parent adalah curret node dari suksesor.
Algoritma Best First Search Algoritma best first search ini merupakan kombinasi dari algoritma depth first search dengan algoritma breadth first search dengan mengambil kelebihan dari kedua algoritma tersebut. Apabila pada pencarian dengan algoritma hill climbing tidak diperbolehkan untuk kembali ke node pada level yang lebih rendah meskipun node di level yang lebih rendah tersebut memiliki nilai heuristik yang lebih baik, lain halnya pada algoritma best first search, pencarian diperbolehkan mengunjungi node yang ada di level yang lebih rendah, jika ternyata node di level yang lebih tinggi memiliki nilai heuristik yang lebih buruk. Algoritma best first search merupakan salah satu bagian dari tipe informed search. Algoritma ini menggunakan nilai-nilai heuristik tiap simpul yang dibuka. Simpul dengan nilai heuristik terbaik akan dibuka lebih dahulu. Bila goal state belum ditemukan, akan dilakukan pemeriksaan pada simpul berikutnya dengan nilai heuristik terbaik pada kedalaman yang sama. Simpul tersebut kemudian dibuka dan diperiksa apakah terdapat goal state pada cabang-cabangnya. Bila goal state belum ditemukan, akan dilakukan proses yang sama pada simpul berikutnya. Merupakan metode yang membangkitkan suksesor dengan mempertim- bangkan harga (didapat dari fungsi heuristik tertentu) dari setiap node, bukan dari aturan baku seperti DFS maupun BFS 2.5 Penerapan Metode BFS Dan DFS Dalam Pencarian Solusi Game Wolf, Sheep, And Cabbage Untuk memfasilitasi pemecahan masalah Wolf, Sheep, dan Cabbage menggunakan algoritma pencarian BFS dan DFS kita akan mendefinisikan permasalahan ini sebagai sebuah struktur pohon. Serta berikut adalah representasi permasalahan Wolf, Sheep, and Cabbage yang telah disesuaikan dengan struktur pohon yang dibangun : 1. Setiap role dalam permasalahan ini akan diwakilkan dengan sebuah karakter. Petani direpresentasikan dengan huruf F, serigala dengan huruf W, domba dengan huruf S, dan kubis dengan huruf C, kecuali perahu yang tidak perlu direpresentasikan karena sudah dapat diwakilkan oleh petani. 2. Kondisi awal permainan adalah state dengan semua role berada di sebelah kanan sungai.
3. Kondisi akhir permainan adalah state dengan semua role berada di sebelah kiri sungai tanpa ada satu pun role yang hilang karena dimakan. 4. Setiap state untuk role di sisi sungai disimpan ke dalam sebuah simpul dengan notasi berikut <{role di kiri}, {role di kanan}>* Contoh: Kondisi awal permainan <{}, { F,W,S,C }> Konsisi akhir permainan <{ F,W,S,C }, {}> *notasi {} menunjukkan sebuah himpunan, maka {F,W} = {W,F} 5. Petani yang membawa hewan dan barang akan dimasukkan ke dalam himpunan di mana sisi perahu menepi. 6. State yang terdapat salah satu dari {W,S} atau {S,C} akan dianggap tidak valid. Berikut adalah batasan yang digunakan dalam pembangunan pohon : 1. Simpul yang berulang akan digambarkan tetapi tidak akan diteruskan 2. Simpul yang tidak valid tidak akan digambarkan Perlu diperhatikan bahwa pohon yang didapat pada bagian BFS dan DFS adalah pohon dengan simpul yang dilewati oleh pencarian BFS atau DFS. 2.4.1 Pemecahan dengan BFS Algoritma BFS yang digunakan : 1. Masukkan state awal ke dalam antrian 2. Cek apakah sudah memenuhi state akhir jika ya kembalikan solusi, jika tidak masukkan state yang mungkin dari state sebelumnya ke dalam antrian. 3. Cek antrian, jika kosong pencarian berakhir dengan dengan solusi kosong. 4. Kembali lagi ke 2.
Berikut adalah pohon yang dihasilkan dari pencarian dengan algoritma BFS : Jumlah penelusuran yang dilakukan oleh algoritma BFS adalah 14 (empat belas) kali. Jumlah state yang diperlukan untuk mencapai state akhir adalah delapan. Hasil yang didapatkan dari pencarian ini adalah optimal. 2.4.2 Pemecahan dengan DFS Algoritma DFS yang digunakan : 1.
Masukkan state awal ke dalam tumpukan
2.
Cek apakah sudah memenuhi state akhir jika ya kembalikan solusi, jika tidak masukkan state yang mungkin dari state sebelumnya ke dalam antrian.
3.
Cek tumpukan, jika kosong pencarian berakhir dengan dengan solusi kosong.
4.
Kembali lagi ke 2. Berikut adalah pohon yang dihasilkan dari pencarian dengan algoritma DFS dengan prioritas yang digunakan adalah kiri ke kanan : Jumlah penelusuran yang dilakukan oleh algoritma DFS adalah tujuh kali. Jumlah state yang diperlukan untuk mencapai state akhir adalah delapan. Hasil yang didapatkan dari pencarian ini sama dengan hasil yang didapatkan pencarian BFS.
BAB III KESIMPULAN
Blind Search merupakan pencarian asal. Jika solusi sudah ditemukan, maka pencarian
akan dihentikan Breadth-first search (BFS) melakukan proses searching pada semua node yang berada pada level atau hirarkitetangga yang terdekat terlebih dahulu sebelum melanjutkan proses
searching pada node di level berikutnya. Depth-First Search, proses pencarian akan dilakukanpada semua anaknya sebelum dilakukan pencarian ke node-node yang selevel. Pencarian dimulai dari node akar ke
level yang lebih tinggi. Proses ini diulangi terus hingga ditemukannya solusi Best First Search (BFS) merupakan suatu cara yang menggabungkan keuntungan atau kelebihan dari pencarian Breadth First Search dan Depth First Search.
BAB IV DAFTAR PUSTAKA
http://aenstein.blogspot.co.id/2012/03/blind-seacrhing.html http://nrmcoretan.blogspot.co.id/2016/03/makalah-metode-pencarian-best-first.html http://coretanrissa.blogspot.co.id/2012/04/penerapan-metode-bfs-dan-dfs-dalam.html http://fahrululumsholihin.blogspot.co.id/2015/05/v-behaviorurldefaultvmlo.html http://jidun12ispcom.blogspot.co.id/2010/04/depth-first-search.html