Flusso massimo con Ford-Fulkerson e DFS


22

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?uu

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à).2O(n)


4
Mi sono chiesto della stessa domanda.
Luca Trevisan,

1
(1) Bella domanda. (2) Penso che l'esempio del caso negativo (come quello di Wikipedia) sia di solito introdotto come motivo per cui è necessaria una certa considerazione sull'ordine di visita, non come motivo per non usare la ricerca approfondita.
Tsuyoshi Ito,

6
Non penso di poter ora insegnare FF senza una risposta a questa domanda. Bello !!
Suresh Venkat,

Non è possibile trovare il flusso massimo in un numero minimo di iterazioni NP-Complete?
user834

Risposte:


13

Se gli elenchi di adiacenza sono fissati in anticipo, DFS termina sempre (anche se ci sono capacità irrazionali).

Vedi Dean, Goemans, Immorlica - Terminazione finita degli algoritmi "Augmenting Path" in presenza di dati di problemi irrazionali .


11
Grazie. Ciò di per sé non risponde alla mia domanda, tuttavia, l'esempio fornito nella Figura 2 del documento Dean-Goemans-Immorlica mostra una costruzione ricorsiva basata sull'esempio standard, che risponde alla mia domanda e mostra che FF con DFS può richiedere in modo esponenziale molti iterazioni.
Per Austrin,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.