Satu-satunya elemen pencarian mendalam-pertama yang Anda ubah adalah urutan penyelidikan anak-anak. Versi normal berlangsung dalam urutan acak, yaitu dalam urutan anak-anak disimpan.
Satu-satunya alternatif yang layak (menuju jalur terpendek) yang bisa saya temukan adalah pendekatan serakah, yaitu melihat anak-anak dalam urutan jarak mereka dari simpul saat ini (dari kecil ke besar). Sangat mudah untuk membuat sampel tandingan untuk aturan ini:
[ sumber ]
Sekarang, itu bukan bukti bahwa tidak ada strategi untuk memilih anak berikutnya yang akan diselidiki yang akan membuat DFS menemukan jalur terpendek.
Namun, tidak peduli aturan¹ Anda dapat membuat grafik yang memiliki DFS berkomitmen untuk jalan memutar panjang pada simpul pertama, seperti yang saya lakukan untuk aturan serakah. Tetapkan tepi dan bobot sedemikian sehingga aturan memilih untuk mengunjungi pertama, dan menetapkan bobot yang lebih besar daripada yang . Oleh karena itu, masuk akal bahwa DFS tidak pernah dapat menemukan jalur terpendek (dalam grafik umum).( s , a ) a ( a , b ) ( s , t )( s , t )( s , a )Sebuah( a , b )( s , t )
Perhatikan bahwa karena Anda dapat mengekspresikan setiap grafik berbobot (bilangan positif-bilangan bulat) sebagai grafik tidak berbobot - cukup ganti tepi dengan biaya dengan rantai dengan simpul - contoh yang sama berhubungan dengan DFS pada grafik tanpa bobot. Di sini, situasinya bahkan lebih suram: tanpa beban, apa yang bisa digunakan DFS untuk menentukan anak berikutnya yang akan dikunjungi?c - 1cc−1
- Selama aturannya deterministik. Jika tidak, itu jelas tidak selalu dapat menemukan jalur terpendek.