Depth-First Search



 
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).
Pseucode DFS
Deklarasi
   w : integer
Algoritma:
   write(v)
   dikunjungi[v]¬true
   for tiap simpul w yang bertetangga dengan simpul v do
      if not dikunjungi[w] then
          DFS(w)
      endif
   endfor

 
Kelebihan DFS adalah:
• Pemakain memori hanya sedikit, berbeda jauh dengan BFS yang harus menyimpan semua node yang pernah dibangkitkan.
• Jika solusi yang dicari berada pada level yang dalam dan paling kiri, maka DFS akan menemukannya secara cepat.

Kelemahan DFS adalah:
• Jika pohon yang dibangkitkan mempunyai level yang dalam (tak terhingga), maka tidak ada jaminan untuk menemukan solusi (Tidak Complete).
• 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). Breadth- pencarian pertama memiliki efisiensi yang sama dengan mendalam-pencarian pertama: itu adalah di (| V | 2) untuk representasi adjacency matrix dan (| V | + | E |) untuk daftar adjacency representasi??. Tidak seperti mendalam-pencarian pertama, itu menghasilkan pemesanan tunggal simpul karena antrian adalah (pertama-in pertama-out) struktur FIFO dan karenanya urutan simpul ditambahkan ke antrian adalah urutan yang sama di mana mereka dikeluarkan dari saya t. Untuk struktur hutan BFS dari sebuah grafik diarahkan, juga dapat memiliki dua jenis sehingga fedges: tepi pohon dan tepi silang edges.Tree adalah yang digunakan untuk mencapai simpul sebelumnya yang belum dikunjungi. tepi lintas menghubungkan simpul untuk mereka kunjungi sebelumnya, tetapi, tidak seperti tepi kembali pohon DFS, mereka terhubung simpul baik pada tingkat yang sama atau berdekatan pohon BFS.

Posting Komentar

be happy to coment and follow

Lebih baru Lebih lama