• Tidak ada hasil yang ditemukan

BAB II TINJAUAN PUSTAKA

2.2 Teknik Dasar Pencarian

Konsep utama dalam menentukan keberhasilan sistem yang berlandaskan AI adalah kesuksesan dalam melakukan dan mengembangkan pencarian. Pencarian atau pelacakan merupakan salah satu teknik untuk menyelesaikan permasalahan AI. Keberhasilan suatu sistem, salah satunya ditentukan oleh kesuksesan dalam pencarian dan pencocokan. Teknik dasar pencarian

memberikan suatu kunci bagi banyak sejarah penyelesaian yang penting dalam bidang AI. Ada beberapa aplikasi yang menggunakan teknik pencarian ini, yaitu:

a. Papan game dan puzzle (tic-tac-toe, catur)

b. Penjadwalan dan masalah routing (travelling salesman problem) c. Parsing bahasa dan interpretasinya (pencarian struktur dan arti) d. Logika pemograman (pencarian fakta dan implikasinya)

e. Computer vision dan pengenalan pola

f. Sistem pakar berbasis kaidah (rule based expert system)

Konsep pencarian untuk suatu solusi dalam ruang keadaan (state space) merupakan pusat AI yang menjadikan AI lebih unggul dalam bidang ilmu komputer dibandingkan dengan yang lainnya, dan prinsip kontribusi AI untuk ilmu pengetahuan dari pencarian ini merupakan konsep basis pengetahuan (knowledge based) heuristik untuk pembatasan dan pencarian berarah (directing search). Pada dasarnya, ada dua teknik pencarian dan pelacakan yaitu:

a. Pencarian buta (blind search), terdiri atas:

(i) Pencarian melebar pertama (Breadth First Search) (ii) Pencarian mendalam pertama (Depth First Search) b. Pencarian terbimbing (heuristic search).

2.2.1 Pencarian Melebar Pertama (Breadth First Search)

Pada metode pencarian ini, 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.

Gambar 2.1 Pencarian melebar pertama (Breadth First Search) (Sumber: Konsep Kecerdasan Buatan, Anita Desiani & Muhammad Arhami,

2006)

Karena proses breadth first search mengamati setiap node di setiap level graf sebelum bergerak menuju ruang yang lebih dalam, maka mula-mula semua keadaan akan dicapai lewat lintasan yang terpendek dari keadaan awal. Oleh sebab itu, proses ini menjamin ditemukannya lintasan terpendek dari keadaan awal ke keadaan tujuan. Lebih jauh karena mula-mula semua keadaan ditemukan melalui lintasan terpendek sehingga setiap keadaan yang ditemui pada kali kedua didapati pada sepanjang sebuah lintasan yang sama atau lebih panjang. Kemudian, jika tidak ada kesempatan ditemukannya keadaan yang identik pada sepanjang lintasan yang lebih baik maka algoritma akan menghapusnya, sehingga keuntungan dari metode pencarian ini adalah:

1. Tidak akan menemui jalan buntu.

2. Jika ada satu solusi, maka breadth-first search akan menemukannya. Dan jika ada lebih dari satu solusi, maka solusi minimum akan ditemukan.

Namun demikian, ada tiga persoalan utama berkenaan dengan metode pencarian ini, yaitu:

1. Membutuhkan memori yang besar, karena menyimpan semua node dalam satu pohon. Jumlah node di setiap tingkat dari pohon bertambah secara eksponensial terhadap jumlah tingkat, dan semuanya ini harus disimpan sekaligus.

2. Membutuhkan sejumlah besar pekerjaan, khususnya jika lintasan solusi terpendek cukup panjang, karena jumlah node yang perlu diperiksa bertambah secara eksponensial terhadap panjang lintasan.

3. Tidak relevannya operator akan menambah jumlah node yang harus diperiksa sangat besar.

4. Relatif membutuhkan waktu yang cukup lama, karena akan menguji semua node pada level n untuk mendapatkan solusi pada level ke-(n+1).

2.2.2 Pencarian Mendalam Pertama (Depth First Search)

Pencarian dengan metode Depth First Search (DFS) dilakukan dari node awal secara mendalam hingga yang paling akhir (dead-end) atau sampai ditemukan. Dengan kata lain, simpul cabang atau anak yang terlebih dahulu dikunjungi. Sebagai ilustrasinya dapat dilihat pada gambar 2.2.

Gambar 2.2 Pencarian mendalam pertama (Depth First Search) (Sumber: Konsep Kecerdasan Buatan, Anita Desiani & Muhammad Arhami,

2006)

Berdasarkan gambar 2.2, proses pencarian dilakukan dengan mengunjungi cabang terlebih dahulu hingga tiba di simpul terakhir. Jika tujuan yang diinginkan belum tercapai maka pencarian dilanjutkan ke cabang sebelumnya, turun ke bawah jika memang masih ada cabangnya. Begitu seterusnya hingga diperoleh tujuan (goal). Operasi semacam ini dikenal dengan sebutan backtracking.

Keuntungan dari metode DFS:

1. Membutuhkan memori yang relatif kecil, karena hanya node-node pada lintasan yang aktif saja yang disimpan.

2. Secara kebetulan, metode DFS akan menemukan solusi tanpa harus menguji lebih banyak lagi dalam ruang keadaan, sehingga tidak memboros waktu untuk melakukan sejumlah besar keadaan ‘dangkal’ dalam permasalahan graf/pohon.

Kelemahan dari metode DFS:

1. Memungkinkan tidak ditemukannya tujuan yang diharapkan. 2. Hanya akan mendapatkan satu solusi pada setiap pencarian.

2.2.3 Pencarian BFS dan DFS Tidak Mendapatkan Solusi

Apabila node (keadaan) pada pohon pelacakan BFS dan DFS tidak dapat dikembangkan lagi untuk mendapatkan node baru (keadaan baru) dan solusi belum didapatkan, maka pencarian BFS dan DFS tidak mendapatkan solusi. Atau dengan kata lain, permasalahan yang sedang diselesaikan tidak memiliki solusi.

2.2.4 Pencarian Terbimbing (Heuristic Search)

Heuristic search adalah suatu istilah yang berasal dari bahasa Yunani yang

berarti menemukan / menyingkap. Heuristic adalah suatu perbuatan yang membantu kita menemukan jalan dalam pohon pelacakan yang menuntut kita kepada suatu solusi masalah. Heuristic dapat diartikan juga sebagai suatu kaidah yang merupakan metoda / prosedur yang didasarkan kepada pengalaman dan praktek, syarat, trik atau bantuan lainnya yang membantu mempersempit dan memfokuskan proses pelacakan kepada suatu tujuan tertentu.

Pencarian terbimbing (heuristic search) dibutuhkan karena pencarian buta (blind search) tidak selalu dapat diterapkan dengan baik, hal ini disebabkan waktu aksesnya yang cukup lama serta besarnya memori yang diperlukan. George Poyla mendefinisikan heuristik sebagai studi metode dan kaidah penemuan. Dalam pencarian ruang keadaan, heuristik dinyatakan sebagai aturan untuk melakukan pemilihan cabang-cabang dalam ruang keadaan yang paling tepat untuk mencapai solusi permasalahan yang dapat diterima. Heuristic dapat digunakan pada beberapa kondisi berikut ini :

Ada masalah yang kemungkinan arah penyelesaiannya berkembang pesat (bersifat faktorial) sehingga menimbulkan combinatorial explosion. Heuristic merupakan cara untuk menentukan kemungkinan arah penyelesaian masalah secara efisien.

2. Solusi paling optimal mungkin tidak diperlukan.

Dalam suatu keadaan, mungkin lebih baik mendapatkan solusi yang mendekati optimal dalam waktu yang singkat daripada solusi yang paling optimal dalam waktu yang lama.

3. Pada umumnya hasilnya cukup baik.

Sekalipun tidak optimal, tetapi biasanya mendekati optimal. 4. Membantu pemahaman bagi orang yang menyelesaikan persoalan.

Banyak alternatif heuristic yang dapat diterapkan dalam suatu percobaan. Orang yang menyelesaikan persoalan tersebut akan lebih mengerti persoalannya jika mencoba heuristic yang diterapkannya.

Sayangnya, seperti semua kaidah penemuan lainnya, heuristik juga dapat salah. Heuristik hanyalah panduan informasi untuk menebak langkah berikutnya yang harus diambil dalam menyelesaikan suatu permasalahan, dan sering dilakukan berdasarkan eksperimen/percobaan atau secara intuisi. Oleh karena, menggunakan informasi yang terbatas, heuristik jarang dapat memprediksi tingkah laku yang eksak dari ruang keadaan saat dilakukan pencarian. Heuristik dapat membimbing algoritma pencarian untuk mendapatkan solusi suboptimal atau gagal menemukan solusi apapun, karena tidak ada solusi yang dapat menuju keadaan akhir.

Dokumen terkait