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 ) .
Potrebbe essere di meno? Potrebbe esserci un algoritmo per calcolare un taglio minimo più veloce di qualsiasi algoritmo a flusso massimo?
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?
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.