Questa domanda riguarda la complessità temporale dell'algoritmo di flusso massimo Ford-Fulkerson quando si utilizza DFS per trovare percorsi di aumento.
C'è un esempio ben noto che mostra che utilizzando DFS è possibile che sia necessario un numero lineare di iterazioni nel flusso massimo, vedere ad esempio la pagina di Wikipedia collegata sopra.
Tuttavia, non sono davvero convinto da questo esempio: un'implementazione DFS standard non mostrerebbe il comportamento dell'alternanza tra B e C come primo nodo del percorso (usando i nomi dei vertici dalla pagina di Wikipedia).
Quindi, cerchiamo di imporre la condizione molto naturale che ogni volta che le visite DFS un nodo , esamina sempre i vicini di nello stesso ordine. Ci sono ancora esempi per i quali FF con DFS utilizza un gran numero di iterazioni?
Come variante, supponiamo di avere la proprietà aggiuntiva che i diversi ordinamenti dei vicini sono coerenti con alcuni ordinamenti globali arbitrari ma fissi dei vertici. Questo fa la differenza?
Questa mi sembra una domanda piuttosto elementare; Mi scuso in anticipo se la risposta è ben nota, ma non sono un esperto di flussi e alcuni googling non hanno trovato nulla.
Modifica: la risposta risulta essere sì, ci sono ancora esempi. Vedi la Figura 2 di questo documento . In questi esempi FF con DFS assume un numero esponenziale (nel numero di vertici) di iterazioni. Sembra facile dimostrare che questo è stretto, cioè che il numero di iterazioni è sempre limitato da (indipendentemente dai valori delle capacità).