Depth First Search



Depth First Search
Pada Depth First Search (DFS), proses akan dilakukan pada semua anaknya sebelum dilakukan pencarian ke node-node (titik) yang selevel. Pencarian dimulai dari node akar ke level yang lebih tinggi. Proses ini diulangi terus hingga ditemukannya solusi. Stack atau tumpukan adalah struktur data yang setiap proses baik penambahan maupun penghapusan hanya bisa dilakukan dari posisi teratas tumpukan. Cara kerja stack adalah LIFO (Last In First Out), dimana data yang terakhir masuk akan keluar pertama.
Berikut analisis ruang dan waktu untuk metode pencarian DFS :
1.                  Diasumsikan :
·         Pohon pelacakan memiliki cabang yang selalu sama, yaiu sebanyak b.
·         Tujuan dicapai pada level ke-d
2.                  Analisis Ruang
·         Setelah berjalan 1 langkah, stack akan berisi b node.
·         Setelah berjalan 2 langkah, stack akan berisi (b-1) + b node.
·         Setelah berjalan 3 langkah, stack akan berisi (b-1) + (b-1) + b node.
·         Setelah berjalan d langkah, stack akan berisi (b-1) * d + 1 node, mencapai maksimum.
3.                  Analisis Waktu
·         Pada kasus terbaik, DFS akan mencapai tujuan pada kedalaman d pertama, sehingga dibutuhkan pencarian sebanyak d + 1 node.
·         Pada kasus terburuk, DFS akan mencapai tujuan pada kedalaman d pada node terakhir, sehingga dibutuhkan pencarian sebanyak 1 + b + b2 + b3 +….+ bd = (bd+1-1) / ( b-1)
Keuntungan dari metode ini adalah :
1.      Membutuhkan memori yang relatif kecil, karena hanya node-node pada lintasan yang aktif saja yang disimpan.
2.      Secara kebetulan, metode DFS akan menemukan solusi tanpa harus menguji lebih banyak lagi dalam ruang keadaan.
Kelemahan dari metode ini adalah :
1.      Memungkinkan tidak ditemukannya tujuan yang diharapkan.
2.      Hanya akan mendapatkan 1 solusi pada setiap pencarian.
Gambar 2.16 Pohon Pencarian Depth First Search

Popular posts from this blog

Cara Mengukur Trimpot

Cara Mengatasi E31 Canon MP258

Persamaan Transistor Amplifier