• Tidak ada hasil yang ditemukan

Depth First Search and Breadth First Search in Graph Algorithms

N/A
N/A
Achmad Maulana Amri

Academic year: 2024

Membagikan "Depth First Search and Breadth First Search in Graph Algorithms"

Copied!
4
0
0

Teks penuh

(1)

Nama : Achmad Maulana Amri NPM : 4518212047

Desain Analisa Algoritma

Algoritma Depth First Search dan Breath First Search

1. Depth First Search a. Pengertian

Depth first search adalah algoritma pencarian yang 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.

b. Cara Kerja

Algoritma DFS Contoh Implementasi

void DFS_printPreOrder(simpul

*root){

if(root!=NULL){

stack S;

createEmptyStack(&S);

push(root, &S);

while(isStackEmpty(S)

!= 1){

printf("%c ", S.top->elemen->huruf);

simpul *node = peek(S);

pop(&S);

if(node->right !=

NULL){

push(node-

>right, &S);

}

if(node->left !=

NULL){

push(node-

>left, &S);

} }

printf("\n");

} }

a. Pohon Biner

b. Kondisi Stack

Penyelesaian :

Dengan menggunakan algoritma BFS maka pencarian dilakukan dengan memprioritas untuk memasukkan anak simpul dari sebelah kanan terlebih dahulu ke dalam stack. Sehingga, pada iterasi 2 elemen A dihapus lalu memasukkan anak simpulnya yaitu C dulu, baru B

(2)

ke dalam stack. Selain itu bisa dilihat stack teratas (yang diwarna biru) pada tiap iterasi memiliki urutan A – B – D – H – E – I – C – F – G – J – K – L.

Urutan kerja dari Algoritma DFS adalah Sebagai Berikut : - Masukkan simpul root ke dalam tumpukan dengan push

- Ambil dan simpan isi elemen (berupa simpul pohon) dari tumpukan teratas - Hapus isi stack teratas dengan prosedur pop

- Periksa apakah simpul pohon yang disimpan tadi memiliki anak simpul - Jika ya, push semua anak simpul yang dibangkitkan ke dalam stack - Jika tumpukan kosong berhenti, tapi jika tidak kembali ke langkah dua

c. Time Complexity

Depth First Search mengunjungi setiap titik sekali dan memeriksa setiap edge dalam grafik satu kali. Oleh karena itu, complexity DFS adalah O(V+E)

2. Breath First Search a. Pengertian

Merupakan algoritma yang melakukan pencarian secara melebar yang mengunjungi simpul secara preorder yaitu mengunjungi suatu simpul kemudian mengunjungi semua simpul yang bertetangga dengan simpul tersebut terlebih dahulu. Selanjutnya, simpul yang belum dikunjungi dan bertetangga dengan simpul-simpul yang tadi dikunjungi, demikian seterusnya

b. Cara Kerja

Algoritma BFS Contoh Implementasi

void BFS_printLevelOrder(simpul

*root){

if(root!=NULL){

queue Q;

createEmptyQueue(&Q);

addQueue(root, &Q);

while(isQueueEmpty(Q) != 1){

printf("%c ", Q.first-

>elemen->huruf);

if(Q.first->elemen->left

!= NULL){

addQueue(Q.first-

>elemen->left, &Q);

}

if(Q.first->elemen->right

!= NULL){

addQueue(Q.first-

>elemen->right, &Q);}

delQueue(&Q);

a. Pohon Biner

b. Kondisi Stack

(3)

}

printf("\n");

} }

Penyelesainnya :

Dengan menggunakan algoritma BFS maka pencarian dilakukan dengan memprioritaskan untuk memasukkan anak simpul dari sebelah kiri terlebih dahulu ke dalam queue. Sehingga, pada iterasi 2 elemen A dihapus lalu memasukkan anak simpulnya yaitu B dulu, baru C ke dalam stack. Untuk penelusurannya yang dilihat adalah bagian yang berwarna biru, yaitu antrian terdepan yang setiap iterasinya memiliki urutan A – B – C – D – E – F – G – H – I – J – K – L. Sama seperti DFS lagi pada iterasi ke 13 itu kondisi antrian sudah kosong.

Urutan kerja dari algoritma BFS adalah sebagai berikut : - Masukkan simpul root ke dalam antrian

- Periksa antrian terdepan apakah memiliki anak simpul - Jika ya, masukan semua anak simpul ke dalam antrian - Hapus antrian terdepan

- Jika antrian kosong berhenti, tapi jika tidak kembali ke langkah dua

c. Time Complexity

Breadth-first Search memiliki running time O (V + E) karena setiap node / vertex (V) dan setiap edge (E) akan diperiksa satu kali. Tergantung pada input ke graf, O (E) bias antara O (1) dan O(V2)

(4)

3. Implementasi Source Code

Hasil Running

Referensi

Dokumen terkait

Breadth-first search Uniform-cost search Depth-first search Depth-limited search Iterative-deepening search IKI30320 Kuliah 3 3 Sep 2007 Ruli Manurung Problem solving agent

Dari penelitian dan implementasi mengenenai perbandingan algoritma Breadth First Search dan Dijkstra berdasarkan jarak lintasannya, algoritma Breadth First

Berdasarkan Gambar 3 proses pencarian terhadap semua simpul dari simpul awal menuju simpul tujuan menggunakan algoritma Depth First Search pada game mummy maze deluxe level

menunjukan bahwa Alghoritma Breadth First Search lebih cepat menyelesaikan permainan dibandingkan dengan tanpa menggunakan alghoritma, sehingga mempermudah pemain

Weeks Topics Details 9 Basic graph algorithms Graph representations: adjacency matrix and adjacency list; graph algorithms : depth-first search, breadth-first search, topological sort

9 Basic graph algorithms Graph representations: adjacency matrix and adjacency list; graph algorithms : depth-first search, breadth-first search, topological sort 10, 11 Greedy

9 Graph algorithms Graph representations: adjacency matrix and adjacency list; graph algorithms : depth-first search, breadth-first search, topological sort 10 Greedy algorithms

Untuk membantu penegakan diagnosa yang lebih tepat dan cepat, penelitian ini mengusulkan implementasi sistem pakar menggunakan metode Breadth-First Search BFS dan Best-First Search