Breadth First Search (BFS) dan Depth-First Search (DFS)
Algoritma Pencarian
Algoritma Pencarian (Search Algorithm) adalah algoritma yang digunakan
untuk menemukan sebuah item yang spesifik di dalam sekumpulan item. Item
tersebut bisa berupa sebuah record di dalam database atau bisa juga berupa
element dari ruang pencarian yang didefinisikan oleh prosedur ataupun
perhitungan matematis. Dalam Kecerdasan buatan, algoritma pencarian dibagi
menjadi dua metode, yaitu:
1. Breadth First
Search (BFS)
Pada metode ini, melakukan pencarian secara melebar yang
mengunjungi simpul secara preorder. Maksud dari preorder tersebut adalah
melakukan pengecekan dengan mengunjungi suatu simpul kemudian mengunjungi
simpul lainnya yang ada di sebelah/bertetanggaan dengan simpul yang sudah
dikunjungi tersebut dan begitu seterusnya sampai menemukan solusi.
Contoh metode pencarian dengan
BFS
Maka
penyelesaiannya : 1, 2, 3, 4, 5, 6, 7, 8, 9
Kelebihan :
a.
Jika menemukan solusi lebih dari satu, metode ini menjamin menemukan solusi
yang paling baik
b.
Tidak akan menemui jalan buntu
Kekurangan :
a.
Membutuhkan memori yang lumayan banyak
b.
Membutuhkan waktu yang cukup lama
2. Depth-First
Search (DFS)
Pada metode ini, memakai
algoritma penelusuran struktur graf / pohon. Simpul ditelusuri dari akar
kemudian ke salah satu cabangnya. Misalnya prioritas penelusuran berdasarkan
anak pertama (simpul sebelah kiri), maka penelusuran dilakukan terus melalui
simpul anak pertama dari simpul anak pertama level sebelumnya hingga mencapai
level terdalam.Setelah sampai di level terdalam belum ditemukan solusi, maka
penelusuran akan kembali ke 1 level
sebelumnya untuk menelusuri yang sebelah kanan sampai lever terdalam, kemudian
jika masih belum ditemukan maka akan lanjut menelusuri ke simpul anak kedua
pada pohon biner [simpul sebelah kanan] dengan menelusuri sampai level terdalam
dan seterusnya.
Contoh metode
pencarian DFS
Maka
penyelesaiannya : A-B-D-H-E-I-C-F-G-J-K-L
Kelebihan :
a.
Membutuhkan memori yang relatif kecil
b.
Membutuhkan waktu yang relatif singkat karena jika solusi yang dicari berada
pada level yang dalam dan paling kiri maka akan menemukan solusi tanpa harus
menguji lebih banyak lagi
Kekurangan :
a. Tidak optimal, jika terdapat solusi
lebih dari satu, metode ini tidak ada jaminan untuk menemukan solusi paling
baik
b. Memungkinkan tidak
ditemukannya tujuan yang diharapkan
Komentar
Posting Komentar