L'unico elemento di ricerca approfondita che perfezionate è l'ordine in cui vengono studiati i bambini. La versione normale procede in ordine arbitrario, cioè nell'ordine in cui sono memorizzati i bambini.
L'unica alternativa possibile (verso percorsi più brevi) che posso trovare è un approccio avido, che sta guardando i bambini in ordine di distanza dal nodo corrente (dal piccolo al grande). È facile costruire un controesempio per questa regola:
[ fonte ]
Ora, questa non è una prova che non esiste una strategia di scelta del figlio successivo da investigare che farà trovare a DFS percorsi più brevi.
Tuttavia, indipendentemente dalla regola¹, è possibile creare grafici con DFS impegnata in una lunga deviazione nel primo nodo, proprio come ho fatto per la regola golosa. Assegna bordi e pesi in modo tale che la regola scelga di visitare primo e assegna a un peso maggiore di quello di . Pertanto, è plausibile che DFS non riesca mai a trovare percorsi più brevi (nei grafici generali).( s , a ) a ( a , b ) ( s , t )( s , t )( s , a )un'( a , b )( s , t )
Si noti che, poiché è possibile esprimere ogni grafico ponderato (intero positivo) come grafico non ponderato - è sufficiente sostituire i bordi con il costo con una catena con nodi - gli stessi esempi riguardano DFS su grafici non ponderati. Qui, la situazione è in realtà ancora più desolante: senza pesi, cosa può usare DFS per determinare il prossimo bambino da visitare?c - 1cc - 1
- Finché la regola è deterministica. In caso contrario, non è sempre possibile trovare percorsi più brevi.