Il taglio minimo potrebbe essere più semplice del flusso di rete?


18

Grazie al teorema del taglio minimo del flusso massimo, sappiamo che possiamo usare qualsiasi algoritmo per calcolare un flusso massimo in un grafico di rete per calcolare un taglio -min-taglio. Pertanto, la complessità del calcolo di un taglio minimo ( s , t ) non è altro che la complessità del calcolo di un flusso massimo ( s , t ) .(s,t)(s,t)(s,t)

Potrebbe essere di meno? Potrebbe esserci un algoritmo per calcolare un taglio minimo più veloce di qualsiasi algoritmo a flusso massimo?(s,t)

Ho cercato di trovare una riduzione per ridurre la ) problema -Max-flusso verso il ( s , t ) problema -min-cut, ma non ero in grado di trovare uno. Il mio primo pensiero è stato quello di utilizzare un algoritmo di divisione e conquista: per prima cosa trovare un taglio minimo, che separa il grafico in due parti; ora trova ricorsivamente un flusso massimo per la parte sinistra e un flusso massimo per la parte destra e combinali insieme a tutti i bordi che attraversano il taglio. Questo funzionerebbe davvero per produrre un flusso massimo, ma il suo tempo di esecuzione nel caso peggiore potrebbe essere pari a O ( | V | ) volte tanto quanto il tempo di esecuzione dell'algoritmo min-cut. C'è una riduzione migliore?(s,t(s,t)O(|V|)

Mi rendo conto che il teorema del taglio minimo del flusso massimo mostra che la complessità del calcolo del valore di un flusso massimo è la stessa della complessità del calcolo della capacità di un taglio minimo, ma non è questo che mi sto chiedendo. Sto chiedendo il problema di trovare un flusso massimo e di trovare un taglio minimo (esplicitamente).

Questo è strettamente correlato a Calcola un flusso massimo da un taglio minimo , tranne: (1) Sono disposto a consentire le riduzioni di Cook (riduzioni di Turing), non solo le riduzioni di Karp (riduzioni multiple) e (2) forse dato possiamo trovare un grafico G tale che il taglio minimo di G semplifica il calcolo del flusso massimo di G , che è qualcosa che non rientra nell'ambito di quell'altra domanda.GGGG


2
@AshkanKzme, non ti sto seguendo; Puoi elaborare? Come ho affermato nel quarto paragrafo della domanda, il teorema del taglio minimo del flusso massimo mostra che il valore del flusso massimo è uguale alla capacità del taglio minimo. Sospetto che questo sia ciò a cui stai pensando. Tuttavia, conoscere il valore del flusso massimo non indica il flusso massimo stesso (ad esempio, quanto inviare su ciascun bordo particolare). Questa domanda si pone sulla complessità del calcolo del flusso massimo stesso, rispetto al calcolo del taglio minimo stesso. La mia domanda è esattamente come indicato nel secondo paragrafo della domanda.
DW

2
@AshkanKzme, No, non ho fatto un'ipotesi sbagliata. Stai assumendo implicitamente che Ford-Fulkerson sia l'algoritmo più veloce possibile per trovare un taglio minimo ... ma per quanto ne so, nessuno lo ha mai provato e non sappiamo se sia corretto o meno. Mi sembra che tu stia commettendo l'errore standard del rookie con prove a limite inferiore: "Non riesco a vedere alcun modo per risolvere questo problema più velocemente, quindi deve essere impossibile". (PS Mi stai dicendo cose standard da manuale sul taglio minimo di max-flow. Apprezzo il tuo tentativo di aiutare, ma ne ho già familiarità ...)
DW

1
Per quanto riguarda la tua affermazione "Penso che si possa dimostrare che se hai solo il taglio minimo, puoi ottenere il flusso massimo", bene, ti incoraggio a scrivere una risposta con la prova di ciò - perché è fondamentalmente ciò che la mia domanda sta ponendo. Non ne ho mai visto una prova, ma se lo hai fatto, spero che tu lo scriva!
DW

1
@DW Penso di avere un po 'meglio la domanda ora. Penso di essere stato messo da parte dal fatto che dai una riduzione del turing polinomiale. Non avresti bisogno di una riduzione di turing costante per dimostrare , anche se anche provare che non esiste tale riduzione non lo confuta? f(n)=Θ(g(n))
Thomas Bosman,

1
@ThomasBosman, sì, è corretto. [Scusa se ti confondo. La riduzione che ho dato alla domanda dimostra che , che è un limite inferiore molto debole. Spero che possa esserci una riduzione che dimostri che f ( n ) = Ω ( g ( n ) ) , ma non so come costruire una cosa del genere.]f(n)=Ω(g(n)/n)f(n)=Ω(g(n))
DW

Risposte:


-1

Ecco un possibile approccio:

Supponiamo si conosce il taglio S, quindi trovare il flusso da a t è un problema di flusso di rete min costo a costo zero, poiché si sa esattamente il deflusso ad ogni vertice in V S e l'afflusso a t . Supponiamo che f indichi un flusso S - t e A la matrice arco-nodo (cioè riga i , col j ha 1 se i è la coda di j , -1 se è la testa, zero altrimenti) e lascia che b sia tale che A f = b se fStVStfStAijijbAf=bfsazia la domanda / offerta e la conservazione del flusso. Quindi con l'eliminazione gaussiana possiamo trovare una soluzione fattibile in operazioni.|V|3

Per trovare un taglio da un flusso dobbiamo costruire il grafico residuo che impiega al massimo tempo, e quindi potenzialmente attraversare | V | vertici. |E||V|

Quindi per grafici completi e il taglio minimo è solo la fonte o solo il sink, la riduzione richiede lo stesso tempo nel peggiore dei casi in entrambe le direzioni. Tuttavia, penso che trovare una soluzione fattibile per possa essere fatto più velocemente di | V | 3 data la struttura speciale. Non sono sicuro di come dimostrarlo.Af=b|V|3


Non capisco come trovare usando l'eliminazione gaussiana. Abbiamo | V | equazioni lineari in | E | incognite. Di solito | E | > | V | , quindi non avremo abbastanza equazioni per determinare in modo univoco le incognite. C'è un trucco che sto trascurando? f|V||E||E|>|V|
DW

|V|bf

Af=b

Merda che è giusto. Potresti aggiungere i vincoli (superiore e inferiore), che conosci ha una soluzione, ma poi hai | V | +2 | E | righe in modo che sarebbe più lento quindi solo il calcolo diretto del flusso massimo.
Thomas Bosman,

L'altro problema è che i vincoli di capacità sono disuguaglianze (non uguaglianze), quindi non puoi usare l'eliminazione gaussiana: avresti bisogno di usare la programmazione lineare, che come dici non sembra essere più veloce del semplice calcolo del flusso massimo direttamente.
DW
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.