Pencarian merupakan salah satu teknik yang umum untuk menyelesaikan suatu permasalahan dalam Teknik Kecerdasan Buatan | Artificial Intelligent, selanjutnya kita sebut AI. Keberhasilan suatu sistem diantaranya ditentukan oleh keberhasilan dalam pencarian dan pencocokan data. Teknik dasar pencarian memberikan suatu kunci bagi banyak histori penyelesaian yang penting dalam bidang kecerdasan Buatan.
Pengertian Teknik Pencarian dalam AI
Pencarian adalah suatu proses mencari solusi dari suatu permasalahn melalui sekumpulan ruang keadaan. Ruang keadaan adalah suatu ruang yang didalamnya berisi semua keadaan yang mungkin.
Kondisi dalam suatu pencarian menggunakan AI :
> Kondisi sekarang / keadaan awal
> Keadaan Tujuan yang merupakan solusi yang dijangkau apakah sudah mencapai sasaran .
> Biaya atau nilai yang diperoleh dari solusi
Solusi merupakan suatu lintasan dari keadaan awal sampai keadaan tujuan.
1. Blind Search
2. Heuristic Search
Blind Search
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).
1.BFS (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.
Lebih jelasnya dapat dilihat pada gambar dibawah ini :
Dalam persoalan pada gambar di atas, urutan node yang dilalui pada pencaian BFS adalah a, b, c, d, e, f, g, h. Seperti pada gambar di bawah ini.
2.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.
Dengan menggunakan permasalahan yang sama dengan penjelasan di awal tadi, maka pada model DFS akan di dapatkan solusi seperti gambar di bawah ini.
Jadi, solusi node yang di lalui pada DFS adalah a,b,e,h.
DFS memiliki beberapa keuntungan,yaitu memori yang di gunakan tidak terlalu banyak karena tidak membuka semua node.
3. UCS (Uniform Cost Search)
UCS (Uniform Sost Search) adalah perpaduan antara BFS dan DFS. Pada UCS, teknik pencariannya memperhatikan cost/jarak antara 1 node ke node lain.
Berikut ini adalah ilustrasinya :
Pada permasalahan diatas telah ditentukan jarak antara node. Maka pada model UCS, teknik yang akan dilakukan adalah membuka node yang memiliki nilai/cost antar node yang terendah.
pada gambar diatas jika kita buka :
c = 10
b = 20
a = 10
Karena nilai c dan a sama maka teserah mau membuka yang mana lebih dahulu.
Seandainya kita membuka c maka kita teruskan pencariannya, lalu kita buka :
d = 10+5 =15
e = 10+40 = 50 (mencapai goal, namun nilai cost nya dirasa masih terlalu besar)
Maka kita buka node d, lalu akan diperoleh hasil :
e = 10+5+30 = 45 (nilai pada pencarian ini pun terasa masih terlau besar) maka dari itu kita buka node yang kecil di awal tadi yaitu node a.
Setelah kita buka node a, maka akan di dapat hasil :
e = 10 + 20 = 30 (di dapatkan goal dengan solusi terbaik)
Dari kasus diatas, dapat kita lihat bahwa ada banyak cara unuk mendapatkan solusi. Namun dari berbagai macam penyelesaian kasus, kita dapat mencari solusi yang paling optimal dan ini lah ke unggulan dari model UCS.
Heuristic Search
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.
Jenis-jenis Heuristic Searching :
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.
Jenis-jenis Heuristic Searching :
Kali ini yang akan dibahas adalah metode Generate and Test, Hill Climbing dan Best First Search. Karena ketiga metode tersebut adalah metode Heursistic Searching yang paling sering digunakan dan paling optimal hasilnya.
1. 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 :
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.
2.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).
Algoritma Simple HillClimbing
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 dari pada keadaan sekarang, maka jadikan keadaan baru tersebut menjadi keadaan sekarang.
- Jika keadaan baru tidak lebih baik daripada keadaan sekarang, maka lanjutkan iterasi.
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.
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 l intasan dengan menukar posisi urutan 2 kota, maka kita akan mendapatkan sebanyak:
atau sebanyak 6 kombinasi (lihat gambar dibawah). Fungsi heuristic yang digunakan adalah panjang lintasan yang terjadi
3.Best First Search
Pencarian terbaik pertama (Best First Search) 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
Terdapat dua jenis algoritma Best First Search, yaitu:
- Greddy Best yang hanya memperhitungkan biaya perkiraan saja.
- A* yang memperhitungkan gabungan dua biaya, biaya sebenarnya dan biaya perkiraan.
1. Greddy Best
Greedy Best First Search hanya memperhitungkan biaya perkiraan (estimated cost) saja, yakni:
f(n) = h(n)
dimana h(n)= perkiraan biaya dari simpul n ke goal.
Biaya yang sebenarnya (actual cost) tidak diperhitungkan. Dengan hanya memperhitungkan biaya perkiraan yang belum tentu kebenarannya maka algoritma ini menjadi tidak optimal.
Algoritma greddy best ini membentuk solusi langkah per langkah (step by step). Pada setiap langkah, terdapat banyak pilihan yang perlu dieksplorasi. Oleh karena itu, pada setiap langkah harus dibuat keputusan yang terbaik dalam menentukan pilihan.
2. A*
Algoritma ini merupakan algoritma Best First Search yang menggabungkan Uniform Cost Search danGreddy Best First Search.
Algoritma ini memperhitungkan biaya dari biaya sebenarnya ditambah dengan biaya perkiraan.
Dalam notasi matematika dituliskan sebagai:
f(n) = g(n) + h(n)
· g(n) = biaya sebenarnya untuk mencapai simpul n
· h(n) = perkiraan biaya dari simpul n ke goal.
· f(n) = perkiraan total biaya jalur yang melalui simpul n ke goal.
Dengan perhitungan biaya seperti ini, algoritma A* adalah complete dan optimal.
Kesimpulan
Berikut ini adalah Tabel Identifikasi dan Analisa tentang perbandingan Teknik Searching.
No
|
Teknik Searching
|
Space
|
Time
|
Completeness
|
Optimility
| |
1.
|
Blind Searching
|
BFS
|
Sedikit
|
Lama
|
Lengkap
|
Kurang
|
DFS
|
Sedikit
|
Cepat
|
Kurang
|
Kurang
| ||
UCS
|
Sedikit
|
Lama
|
Kurang
|
Kurang
| ||
2.
|
Heuristic Searching
|
Generate & Test
|
Cukup
|
Lama
|
Kurang
|
Cukup Optimal
|
Hill Climbing
|
Cukup
|
Cepat
|
Lengkap
|
Cukup Optimal
| ||
Best First Search
|
Cukup
|
Cepat
|
Lengkap dan Jelas
|
Sangat Optimal
|
Tidak ada komentar: