PENDAHULUAN
1
Permasalahan pencarian adalah merupakan yang sering dijumpai oleh peneliti di
bidang Kecerdasan Buatan. Permasalahan ini merupakan hal pentingdalam
menentukan keberhasilan system kecerdasan buatan. Metode pencariandibagi
menjadi 3 bagian, dapat dilihat pada bagan dibawah ini
Keterangan :
2
Metode pencarian dikatakan penting untuk menyelesaikan permasalahan
karena setiap state ) keadaan menggambarkan langkah-langkah untuk
menyelesaikan permasalahan. Metode pencarian dikatakan penting untuk
perencanaan karena dalam sebuah permainan akan menentukan apa yang harus
dilakukan, dimana setiap statemenggambarkan kemungkinan posisi pada suatu
saat. Metode pencarian adalah bagian dari kesimpulan, dimana setiap
statemenggambarkan hipotesis dalam sebuah rangkaian deduktif.
Secara umum, untuk mendeskripsikan suatu permasalahan dengan baik
harus :
a. Mendefinisikan suatu ruang keadaan.
b. Menerapkan satu atau lebih keadaan awal.
c. Menetapkan satu atau lebih tujuan.
d. Menetapkan kumpulan aturan.
1.3 Tujuan
a. Agar pembaca dapat mengerti dan memahami dengan mudah dan cepat
pengertian tentang BFS.
b. Agar pembaca dapat mengerti dan memahami dengan mudah dan cepat
pengertian tentang DFS.
c. Agar pembaca dapat mengerti dan memahami dengan mudah dan cepat
pengertian tentang pencarian heuristik.
3
BAB II
PEMBAHASAN
4
2.1.1. 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.
5
2.1.2. Contoh Pencarian Lintasan Terpendek Dengan BFS
Adapun contoh untuk mencari lintasan terpendek dengan menggukan
algoritma BFS adalah sebagai berikut:
Diketahui sebuah kota, dengan memiliki inisial seperti yang
ditunjukkan dibawah ini. Jarak antar kota dibentuk dengan sebuah graph
terlihat dibawah:
6
nilai path yang paling kecil. Hal ini bisa dilakukan dengan membuat
antrian pada successor yang ada berdasar kepada nilai path-nya (node
disimpan dalam bentuk priority queue).
7
Gambar 2.3 Diagram pohon dari DFS.
Pencarian dilakukan pada satu node dalam setiap level dari yang paling kiri.
Jika pada level yang paling dalam, solusi belum ditemukan, maka pencarian
dilanjutkan pada node sebelah kanan. Node 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. Jika solusi ditemukan maka tidak diperlukan proses backtracking
(penelusuran balik untuk mendapatkan jalur yang dinginkan).
8
b. Jika terdapat lebih dari satu solusi yang sama tetapi berada pada level
yang berbeda, maka pada DFS tidak ada jaminan untuk menemukan
solusi yang paling baik (Tidak Optimal).
Gambar 2.4. Penelusuran Depth First Search untuk Water Jug Problem.
9
2.3. Pencarian Heuristik
Heuristik adalah sebuah teknik yang mengembangkan efisiensi dalam
proses pencarian, namum dengan kemungkinan mengorbankan kelengkapan
(completeness). Fungsi heuristik digunakan untuk mengevaluasi keadaankeadaan
problema individual dan menentukan seberapa jauh hal tersebut dapat digunakan
untuk mendapatkan solusi yang diinginkan. Jenis-jenis Heuristic Searching:
a. Generate and Test.
b. HillClimbing.
c. Best First Search.
d. Alpha Beta Prunning,Means-End-Anlysis,Constraint Satisfaction, Simulated
Anealing, dll
10
Penyelesaian dengan metode Generate and Test
11
2.3.2. Pendakian Bukit (Hill Climbing)
Metode ini hampir sama dengan metode pembangkitan dan pengujian,
hanya saja proses pengujian dilakukan dengan menggunakan fungsi heuristic.
Pembangkitan keadaan berikutnya tergantung pada feedback dari prosedur
pengetesan. Tes yang berupa fungsi heuristic ini akan menunjukkan seberapa
baiknya nilai terkaan yang diambil terhadap keadaan-keadaan lainnya yang
mungkin.
2.3.2.1 Algoritma Simple Hill Climbing
Kerjakan langkah-langkah berikut sampai solusinya ditemukan atau sampai
tidak ada operator baru yang akan diaplikasikan pada keadaan sekarang:
a. Cari operator yang belum pernah digunakan; gunakan operator ini untuk
mendapatkan keadaan yang baru.
b. Evaluasi keadaan baru tersebut :
c. Jika keadaan baru merupakan tujuan, keluar
d. Jika bukan tujuan, namun nilainya lebih baik dari pada keadaan sekarang,
maka jadikan keadaan baru tersebut menjadi keadaan sekarang.
e. Jika keadaan baru tidak lebih baik daripada keadaan sekarang, maka
lanjutkan iterasi.
12
atau sebanyak 6 kombinasi (lihat gambar dibawah). Fungsi heuristic yang
digunakan adalah panjang lintasan yang terjadi
13
yang diperlukan dari node A untuk sampai ke tujuan. h(n) bernilai ~ jika sudah
jelas tidak ada hubungan antara node n dengan node tujuan (jalan buntu). Kita
bisa mengurut nilai untuk setiap node.
14
b. Uji untuk melihat apakah node tersebut benar-benar merupakan solusinya
dengan cara membandingkan node terebut atau node akhir dari suatu lintasan
yang dipilih dengan kumpulan tujuan yang diharapkan.
c. Jika solusi ditemukan, keluar. Jika tidak, ulangi kembali langkah pertama.
Kadang kala sebuah nilai tinggi dari fungsi heuristik mengindikasikan sebuah
posisi yang baik secara relatif (terlihat pada catur dan tic tac toe), di lain waktu
sebuah nilai rendah mengindikasikan sebuah situasi yang menguntungkan (terlihat
pada perjalanan salesman). Program yang menggunakan nilai (value) dari fungsi
dapat mengusahakan minimal atau maksimal secara tepat.
15
Tujuan dari sebuah fungsi heuristik adalah untuk memandu proses pencarian
tujuan yang menguntungkan dengan menganjurkan jalur yang mana yang diikuti
pertama kali ketika tersedia lebih dari satu tujuan. Setelah proses berlangsung,
akan bisa dihitung sebuah fungsi heuristik yang sempurna dengan cara melakukan
sebuah pencarian yang lengkap dari simpul dalam pertanyaan dan menentukan
apakah fungsi ini menuju ke sebuah solusi yang baik.
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.
Heuristik dan perancangan algoritma untuk mengimplementasikan pencarian
heuristik telah menjadi inti permasalahan penelitian AI. Game playing dan
pemecahan teorema (theorem solving) adalah dua aplikasi paling tua dari AI,
kedua-duanya memerlukan heuristik untuk memangkas ruang dari solusi yang
mungkin.
16
BAB II
PENUTUP
3.1. Kesimpulan
Dari pembahasan diatas dapat ditarik kesimpulan yaitu :
a. Breadth-first search (BFS) melakukan proses searching pada semua node
yang berada pada level atau hirarki yang sama terlebih dahulu sebelum
melanjutkan proses searching pada node di level berikutnya.
b. Depth-first search (DFS) adalah proses searching sistematis buta yang
melakukan ekpansi sebuah path (jalur) menuju penyelesaian masalah
sebelum melakukan ekplorasi terhadap path yang lain.
c. Heuristic search adalah suatu istilah yang berasal dari bahasa Yunani
yang berarti menemukan/menyingkap. Heuristik adalah suatu perbuatan
yang membantu kita menemukan jalan dalam pohon pelacakan yang
menuntut kita kepada suatu solusi masalah. Heuristik 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.
17
DAFTAR PUSTAKA
18