ALGORITMA GRAPH
· Algoritma traversal di dalam graf adalah mengunjungi simpul – simpul
dengan cara yang sistematik.
·
Pencarian Melebar ( Breadth First Search atau BFS )
·
Pencarian Mendalam ( Depth First Search atau DFS )
1.
Breadth
First Search atau BFS
Breadth
First Search adalah
algoritma pencarian simpul dalam graf (pohon) secara traversal yang dimulai
dari simpul akar dan mengecek semua simpul – simpul tetangganya. Setelah itu,
dari tiap simpul tetangganya, algoritma akan terus mengecek semua simpul
tetangganya yang belum dicek. Sedemikian seterusnya hingga menemukan simpul
tujuan Breadth First
Search. Interpreter kaidah mulai
dari fakta yang ada yaitu hipotesa kemudian kaidah bagian THEN mulai di uji untuk mendukung hipotesa awal. Jika ditemukan
maka kaidah IF
yang cocok digunakan untuk menghasilkan hipotesa
antara yang baru. kemudian proses berantai terus di ulang, mengumpulkan bukti
yang mendukung, sehingga hipotesa kebenarannya.
Graf Breadth
First Search
Breadth
First Search merupakan
proses penalaran dengan pendekatan proses goal
– driven. Memulai titik
pendekatannya dari goal
yang akan dicari nilainya kemudian bergerak mencari
informasi yang mendukung goal
tersebut.
Keuntungan BFS:
·
Tidak menemui jalan buntu.
·
Jika ada suatu solusi, maka Braedth First Search akan menemukannya. Dan
jika didapat lebih dari satu solusi, maka solusi minimum akan ditemukan.
Kelemahan BFS:
·
Membutuhkan memori yang cukup banyak, karena menyimpan semua node dalam
suatu pohon.
·
Membutuhkan waktu yang cukup lama, karena akan menguji n level untuk
mendapatkan solusi pada level ke – ( n + 1 )
·
Idenya mirip dengan algo prim dan dijkstra.
·
Traversal dimulai dari simpul v.
·
Algoritma :
- Kunjungi simpul v,
- Kunjungi semua simpul yang bertetangga dengan
simpul v terlebih dahulu,
- Kunjungi simpul yang belum dikunjungi dan
bertetangga dengan simpul – simpul yang tadi di kunjungi, demikian seterusnya.
·
Jika graf berbentuk pohon berakar, maka semua simpul pada aras d
dikunjungi lebih dahulu sebelum simpul – simpul pada aras d + 1.
Representasi BFS
·
Pada umumnya graf di representasikan baik secara array ataupun list.
·
Dalam kuliah ini menggunakan Link LIST dan queue
Strucut
node {
int data;
struct node *link;
};
BFS Properti
dan Running Time
·
O ( V + E )
·
G = ( V, E ), bfs mencari seluruh vertex yang dapat diraih dari source
s.
·
Untuk setiap vertex pada level l, path bfs tree antara s dan v
mempunyai 1 edge dan selain path dalam G antara s dan v setidaaknya mempunyai 1
edge.
·
Jika ( u, v ) adalah edge maka jumlah level u dan v dibedakan
setidaknya satu tingkat.
·
BFS menghitung seluruh jarak terpendek ke seluruh vertex yang dapat di
raihnya.
Kegunaan BFS
·
Memeriksa apakah graph terhubung.
·
Menghitung spanning forest graph.
·
Menghitung, tiap vertex dalam graph, jalur dengan jumlah edge menimum
antara vertex awal dan current vertex atau ketiadaan path.
·
Menghitung cycle dalam graph atau ketiadaan cycle.
·
O ( V + E )
Contoh BFS
·
Awal simpul adalah v1 dari graf G dibawah
·
Kunjungan BFS menghasilkan :
·
v1, v2, v5, v3, v4, v7, v6, v8, v9
2.
Depth
First Search atau DFS
Metode Depth
First Search dilakukan
dengan node awal secara mendalam hingga yang paling akhir ( dead – end ) sampai ditemukan goal
state. Dengan kata lain, simpul
cabang anak yang terlebih dahulu dikunjungi. Andaikan tujuan yang diinginkan
belum tercapai maka pencarian dilanjutkan ke cabang berikutnya hingga semua
node di kunjungi.
Depth
First Search ( DFS ) adalah algoritma pencarian simpul dalam graf
secara traversal yang dimulai dari simpul akar dan mengecek simpul anaknya yang
pertama, setelah itu, algoritma mengecek simpul anak dari simpul anak yang
pertama tersebut, hingga mencapai simpul daun atau simpul tujuan.
·
Traversal dimulai dari simpul v.
·
Algoritma:
-
Kunjungi simpul v,
-
Kunjungi simpul w yang bertetangga dengan simpul v
-
Ulangi DFS mulai dari simpul w
-
Ketika mencapai simpul u sedemikian sehingga semua simpul yang
bertetangga dengannya telah dikunjungi, pencarian dirunut – balik ke simpul
terakhir yang dikunjungi sebelumnya dan mempunyai simpul w yang belum
dikunjungi.
-
Pencarian berakhir bila tidak ada lagi simpul yang belum dikunjungi
yang dapat dicapai dari simpul yang telah dikunjungi.
Keuntungan DFS:
·
Membutuhkan memori yang relaatif kecil, karena hanya node – node pada
lintasan yang aktif yang disimpan.
·
Secara kebetulan, metode Depth
First Search akan
menemukan solusi tanpa harus menguji lebih banyak lagi dalam ruang keadaan.
Kelemahan DFS:
·
Memungkinkan tidak ditemukannya tujuan yang diharapkan
·
Hanya akan mendapatkan satu solusi pada setiap pencarian
Untuk memeriksa algoritma diatas,
bahwa keadaan – keadaan turunan (descendent) ditambahkan atau dihapuskan dari
ujung kiri open. Hasil dari penerapan algoritma.
Sumber :
Elearning.uin-suka.ac.id/attachment/pencarian_heuristik_bjyr6.pdf
0 komentar:
Posting Komentar