Grâce au théorème de min-cut max-flow, nous savons que nous pouvons utiliser n'importe quel algorithme pour calculer un flux maximum dans un graphe de réseau pour calculer une -min-cut. Par conséquent, la complexité du calcul d'une coupe minimale n'est pas plus que la complexité du calcul d'un débit maximal .( s , t ) ( s , t )
Serait-ce moins? Pourrait-il y avoir un algorithme pour calculer une coupe minimale plus rapide que n'importe quel algorithme de débit maximal?
J'ai essayé de trouver une réduction pour réduire le problème ) -max-flow au problème -min-cut, mais je n'ai pas pu en trouver un. Ma première pensée a été d'utiliser un algorithme de division et de conquête: trouver d'abord un min-cut, qui sépare le graphique en deux parties; trouver maintenant récursivement un max-flow pour la partie gauche et un max-flow pour la partie droite, et les combiner avec tous les bords traversant la coupe. Cela fonctionnerait en effet pour produire un débit maximum, mais son pire temps de fonctionnement pourrait être autant que fois plus grand que le temps de fonctionnement de l'algorithme de coupure min. Y a-t-il une meilleure réduction?( s , t ) O ( | V | )
Je me rends compte que le théorème de min-cut max-flow montre que la complexité du calcul de la valeur d'un max-flow est la même que la complexité du calcul de la capacité d'un min-cut, mais ce n'est pas ce que je demande. Je pose la question du problème de trouver un max-flow et de trouver un min-cut (explicitement).
Ceci est très étroitement lié au calcul d'un débit maximal à partir d'une coupe minimale , sauf: (1) je suis prêt à autoriser les réductions Cook (réductions Turing), pas seulement les réductions Karp (plusieurs réductions), et (2) peut-être, étant donné nous pouvons trouver un graphique tel que la coupe minimale de facilite le calcul du débit maximal de , ce qui est hors de portée pour cette autre question.G ′ G ′ G