Dank des Max-Flow-Min-Cut-Theorems wissen wir, dass wir jeden Algorithmus verwenden können, um einen maximalen Fluss in einem Netzwerkgraphen zu berechnen, um einen -Min-Cut zu berechnen . Daher ist die Komplexität der Berechnung eines minimalen ( s , t ) -Flusses nicht größer als die Komplexität der Berechnung eines maximalen ( s , t ) -Flusses.
Könnte es weniger sein? Könnte es einen Algorithmus zur Berechnung eines Minimums geben, der schneller ist als jeder Max-Flow-Algorithmus?
Ich habe versucht, eine Reduzierung zu finden, um das ) -Max-Flow-Problem auf das ( s , t ) -Min-Cut-Problem zu reduzieren, konnte aber keine finden. Mein erster Gedanke war, einen Divide-and-Conquer-Algorithmus zu verwenden: Finden Sie zuerst einen Min-Cut, der die Grafik in zwei Teile trennt; Finden Sie nun rekursiv einen Maximalfluss für den linken Teil und einen Maximalfluss für den rechten Teil und kombinieren Sie diese mit allen Kanten, die den Schnitt kreuzen. Dies würde in der Tat funktionieren, um einen maximalen Durchfluss zu erzeugen, aber seine Laufzeit im ungünstigsten Fall könnte bis zu dem O ( | V | ) -fachen der Laufzeit des Min-Cut-Algorithmus betragen. Gibt es eine bessere Reduzierung?
Mir ist klar, dass der Satz von Max-Flow-Min-Cut zeigt, dass die Komplexität der Berechnung des Werts eines Max-Flow der Komplexität der Berechnung der Kapazität eines Min-Cut entspricht, aber das ist nicht das, wonach ich frage. Ich frage nach dem Problem, einen maximalen Durchfluss und einen minimalen Schnitt zu finden (explizit).
Dies hängt sehr eng mit der Berechnung eines maximalen Durchflusses aus einem minimalen Schnitt zusammen , außer: (1) Ich bin bereit, Cook-Reduzierungen (Turing-Reduzierungen) und nicht nur Karp-Reduzierungen (Viel-Eins-Reduzierungen) zuzulassen, und (2) Vielleicht können wir bei einen Graphen G 'finden, so dass der Min-Cut von G ' es einfach macht, den Max-Flow von G zu berechnen , was für diese andere Frage nicht möglich ist.