En informática y teoría de la optimización , el teorema del flujo máximo y el corte mínimo establece que en una red de flujo , la cantidad máxima de flujo que pasa de la fuente al sumidero es igual al peso total de las aristas en un corte mínimo , es decir, el menor peso total de las aristas que, si se eliminaran, desconectarían la fuente del sumidero.
Por ejemplo, imaginemos una red de tuberías que transportan agua desde un embalse (la fuente) hasta una ciudad (el sumidero). Cada tubería tiene una capacidad que representa la cantidad máxima de agua que puede fluir por ella por unidad de tiempo. El teorema del flujo máximo y el corte mínimo nos indica que la cantidad máxima de agua que puede llegar a la ciudad está limitada por la capacidad total mínima de cualquier conjunto de tuberías que, si se cortara, aislaría completamente el embalse de la ciudad. Esta capacidad total mínima es el corte mínimo. Por lo tanto, si existe un cuello de botella en la red de tuberías, representado por un corte mínimo pequeño, dicho cuello de botella determinará el flujo máximo total de agua hacia la ciudad.
Este es un caso especial del teorema de dualidad para programas lineales y puede usarse para derivar el teorema de Menger y el teorema de Kőnig-Egerváry . [ 1 ]
Definiciones y declaración
El teorema equipara dos cantidades: el flujo máximo a través de una red y la capacidad mínima de un segmento de la red. Para enunciar el teorema, primero se deben definir ambos conceptos.
Red
Una red consta de
- un grafo dirigido finito G = ( V , E ) , donde V denota el conjunto finito de vértices y E ⊆ V × V es el conjunto de aristas dirigidas;
- una fuente s ∈ V y un sumidero t ∈ V ;
- una función de capacidad , que es una función de mapeodenotado por c uv o c ( u , v ) para ( u , v ) ∈ E . Representa la cantidad máxima de flujo que puede pasar a través de una arista.
Flujos
Un flujo a través de una red es un mapeodenotado poro, sujeto a las dos restricciones siguientes:
- Restricción de capacidad : Para cada arista,
- Conservación de flujos : Para cada vérticeaparte dey(es decir, la fuente y el sumidero, respectivamente), se cumple la siguiente igualdad:
Un flujo puede visualizarse como el movimiento físico de un fluido a través de la red, siguiendo la dirección de cada arista. La restricción de capacidad establece que el volumen que fluye a través de cada arista por unidad de tiempo es menor o igual a la capacidad máxima de la arista, y la restricción de conservación establece que la cantidad que entra en cada vértice es igual a la cantidad que sale de cada vértice, excepto en los vértices de origen y destino.
El valor de un flujo se define por
mientras que lo anteriores la fuente yes el sumidero de la red. En la analogía de fluidos, representa la cantidad de fluido que ingresa a la red en la fuente. Debido al axioma de conservación de flujos, esto equivale a la cantidad de flujo que sale de la red en el sumidero.
El problema del flujo máximo consiste en determinar el mayor flujo posible en una red determinada.
Problema del flujo máximo. Maximizar, es decir, dirigir la mayor cantidad de flujo posible desdea.
Recortes
La otra mitad del teorema del flujo máximo y el corte mínimo se refiere a un aspecto diferente de una red: la colección de cortes. Un corte s-t C = ( S , T ) es una partición de V tal que s ∈ S y t ∈ T. Es decir, un corte s - t es una división de los vértices de la red en dos partes, con la fuente en una parte y el sumidero en la otra. El conjunto de cortesde un corte C es el conjunto de aristas que conectan la parte de origen del corte con la parte de destino:
- :\ u\in S,v\in T\}=(S\times T)\cap E.}
Por lo tanto, si se eliminan todas las aristas del conjunto de corte de C , entonces no es posible ningún flujo positivo, porque no hay ningún camino en el grafo resultante desde el origen hasta el destino.
La capacidad de un corte st es la suma de las capacidades de las aristas en su conjunto de corte,
dóndesiy,de lo contrario.
Normalmente, un gráfico presenta muchos cortes, pero los cortes con menor ponderación suelen ser más difíciles de encontrar.
- Problema de corte st mínimo. Minimizar c ( S , T ) , es decir, determinar S y T de manera que la capacidad del corte st sea mínima.
Teorema principal
En la situación descrita, se puede demostrar que el valor de cualquier flujo a través de una red es menor o igual a la capacidad de cualquier corte st , y que, además, existe un flujo con valor máximo y un corte con capacidad mínima. El teorema principal relaciona el valor máximo del flujo con la capacidad mínima del corte de la red.
- Teorema del flujo máximo y el corte mínimo. El valor máximo de un flujo st es igual a la capacidad mínima sobre todos los cortes st.
Ejemplo

La figura de la derecha muestra un flujo en una red. La anotación numérica en cada flecha, en la forma f / c , indica el caudal ( f ) y la capacidad ( c ) de la flecha. Los caudales que parten de la fuente suman cinco (2+3=5), al igual que los que llegan al sumidero (2+3=5), lo que establece que el valor del caudal es 5.
Un corte s - t con valor 5 viene dado por S = { s , p } y T = { o , q , r , t }. Las capacidades de las aristas que cruzan este corte son 3 y 2, lo que da una capacidad de corte de 3 + 2 = 5. (La flecha de o a p no se considera, ya que apunta de T de vuelta a S ).
El valor del caudal es igual a la capacidad del corte, lo que demuestra que el caudal es máximo y el corte es mínimo.
Obsérvese que el flujo a través de cada una de las dos flechas que conectan S con T está a plena capacidad; esto siempre es así: un corte mínimo representa un "cuello de botella" del sistema.
Formulación de programa lineal
El problema del flujo máximo y el problema del corte mínimo pueden formularse como dos programas lineales primales-duales . [ 2 ]
El LP de flujo máximo es sencillo. El LP dual se obtiene utilizando el algoritmo descrito en el programa lineal dual : las variables y las restricciones de signo del dual corresponden a las restricciones del primal, y las restricciones del dual corresponden a las variables y las restricciones de signo del primal. El LP resultante requiere alguna explicación. La interpretación de las variables en el LP de corte mínimo es:
El objetivo de minimización suma la capacidad de todas las aristas que están contenidas en el corte.
Las restricciones garantizan que las variables representan efectivamente un corte legal: [ 3 ]
- Las restricciones(equivalente a) garantizan que, para nodos no terminales u,v , si u está en S y v está en T , entonces la arista ( u , v ) se cuenta en el corte ().
- Las restricciones(equivalente a) garantizan que, si v está en T , entonces la arista (s,v) se cuenta en el corte (ya que s está por definición en S ).
- Las restricciones(equivalente a) garantizan que, si u está en S , entonces la arista (u,t) se cuenta en el corte (ya que t está por definición en T ).
Tenga en cuenta que, dado que se trata de un problema de minimización, no tenemos que garantizar que una arista no esté en el corte; solo tenemos que garantizar que cada arista que debería estar en el corte se sume en la función objetivo.
La igualdad en el teorema de flujo máximo y corte mínimo se deriva del teorema de dualidad fuerte en programación lineal , que establece que si el programa primal tiene una solución óptima, x *, entonces el programa dual también tiene una solución óptima, y *, de tal manera que los valores óptimos formados por las dos soluciones son iguales.
Solicitud
Teorema del flujo máximo de Cederbaum
El problema del flujo máximo puede formularse como la maximización de la corriente eléctrica a través de una red compuesta por elementos resistivos no lineales. [ 4 ] En esta formulación, el límite de la corriente I entre los terminales de entrada de la red eléctrica a medida que la tensión de entrada V se aproxima, es igual al peso del conjunto de corte de peso mínimo.
Teorema generalizado de flujo máximo y corte mínimo
Además de la capacidad de las aristas, considérese que hay capacidad en cada vértice, es decir, una asignación.denotado por c ( v ) , de modo que el flujo f debe satisfacer no solo la restricción de capacidad y la conservación de flujos, sino también la restricción de capacidad de vértice.
En otras palabras, el flujo que pasa por un vértice no puede exceder su capacidad. Definimos un corte st como el conjunto de vértices y aristas tales que, para cualquier camino de s a t , dicho camino contiene un elemento del corte. En este caso, la capacidad del corte es la suma de la capacidad de cada arista y vértice que lo compone.
En esta nueva definición, el teorema generalizado de flujo máximo y corte mínimo establece que el valor máximo de un flujo st es igual a la capacidad mínima de un corte st en el nuevo sentido.
Teorema de Menger
En el problema de caminos disjuntos por aristas no dirigidos, se nos da un grafo no dirigido G = ( V , E ) y dos vértices s y t , y tenemos que encontrar el número máximo de caminos st disjuntos por aristas en G .
El teorema de Menger establece que el número máximo de caminos st disjuntos en aristas en un grafo no dirigido es igual al número mínimo de aristas en un conjunto de corte st.
Problema de selección de proyectos

En el problema de selección de proyectos, existen n proyectos y m máquinas. Cada proyecto p i genera ingresos r ( p i ) y cada máquina q j tiene un costo de adquisición c ( q j ) . Queremos seleccionar un subconjunto de proyectos y adquirir un subconjunto de máquinas para maximizar la ganancia total (ingresos de los proyectos seleccionados menos el costo de las máquinas adquiridas). Debemos cumplir con la siguiente restricción: cada proyecto especifica un conjunto de máquinas que deben adquirirse si se selecciona dicho proyecto. (Cada máquina, una vez adquirida, puede ser utilizada por cualquier proyecto seleccionado).
Para resolver el problema, sea P el conjunto de proyectos no seleccionados y Q el conjunto de máquinas compradas, entonces el problema se puede formular como:
Dado que el primer término no depende de la elección de P y Q , este problema de maximización puede formularse como un problema de minimización, es decir,
El problema de minimización anterior puede formularse como un problema de corte mínimo mediante la construcción de una red, donde la fuente está conectada a los proyectos con capacidad r ( p i ) , y el sumidero está conectado a las máquinas con capacidad c ( q j ) . Se agrega una arista ( p i , q j ) con capacidad infinita si el proyecto p i requiere la máquina q j . El conjunto de corte st representa los proyectos y las máquinas en P y Q respectivamente. Mediante el teorema de flujo máximo y corte mínimo, se puede resolver el problema como un problema de flujo máximo .
La figura de la derecha presenta una formulación en red del siguiente problema de selección de proyectos:
La capacidad mínima de un st cut es 250 y la suma de los ingresos de cada proyecto es 450; por lo tanto, la ganancia máxima g es 450 − 250 = 200, al seleccionar los proyectos p 2 y p 3 .
La idea es canalizar las ganancias de cada proyecto a través de las máquinas que lo componen. Si una máquina no puede llenar el flujo, su retorno es menor que su costo, y el algoritmo de corte mínimo considerará más económico recortar la ganancia del proyecto que el costo de la máquina.
Problema de segmentación de imágenes

En el problema de segmentación de imágenes , hay n píxeles. A cada píxel i se le puede asignar un valor de primer plano f i o un valor de fondo b i . Existe una penalización de p ij si los píxeles i y j son adyacentes y tienen asignaciones diferentes. El problema consiste en asignar píxeles a primer plano o fondo de tal manera que la suma de sus valores menos las penalizaciones sea máxima.
Sea P el conjunto de píxeles asignados al primer plano y Q el conjunto de puntos asignados al fondo, entonces el problema se puede formular como:
Este problema de maximización puede formularse como un problema de minimización, es decir,
El problema de minimización anterior se puede formular como un problema de corte mínimo mediante la construcción de una red donde la fuente (nodo naranja) está conectada a todos los píxeles con capacidad f i , y el sumidero (nodo púrpura) está conectado a todos los píxeles con capacidad b i . Se agregan dos aristas ( i, j ) y ( j, i ) con capacidad p ij entre dos píxeles adyacentes. El conjunto de corte st representa entonces los píxeles asignados al primer plano en P y los píxeles asignados al fondo en Q .
Historia
Ford y Fulkerson dieron una explicación del descubrimiento del teorema en 1962: [ 5 ]
"Determinar un flujo máximo en estado estacionario de un punto a otro en una red sujeta a limitaciones de capacidad en los arcos... fue planteado a los autores en la primavera de 1955 por T.E. Harris, quien, junto con el general F.S. Ross (retirado), había formulado un modelo simplificado del flujo del tráfico ferroviario e identificó este problema en particular como el central sugerido por el modelo. Poco después, se conjeturó y estableció el resultado principal, el Teorema 5.1, que denominamos teorema de flujo máximo y corte mínimo. [ 6 ] Desde entonces han aparecido varias demostraciones." [ 7 ] [ 8 ] [ 9 ]
Prueba
Sea G = ( V , E ) una red (grafo dirigido) donde s y t son la fuente y el sumidero de G respectivamente.
Consideremos el flujo f calculado para G mediante el algoritmo de Ford-Fulkerson . En el grafo residual ( G f ) obtenido para G (después de la asignación final del flujo mediante el algoritmo de Ford-Fulkerson ), definamos dos subconjuntos de vértices de la siguiente manera:
- A : el conjunto de vértices alcanzables desde s en G f
- A c : el conjunto de vértices restantes, es decir, V − A
Reclamación. valor( f ) = c ( A , A c ) , donde la capacidad de un corte st se define por
- .
Ahora lo sabemos,para cualquier subconjunto de vértices, A. Por lo tanto, para valor( f ) = c ( A , Ac ) necesitamos:
- Todos los bordes salientes del corte deben estar completamente saturados .
- Todos los bordes entrantes al corte deben tener flujo cero .
Para demostrar la afirmación anterior, consideramos dos casos:
- En G , existe una arista saliente.De tal manera que no esté saturada, es decir, f ( x , y ) < c xy . Esto implica que existe una arista directa de x a y en G f , por lo tanto existe un camino de s a y en G f , lo cual es una contradicción. Por consiguiente, cualquier arista saliente ( x , y ) está completamente saturada.
- En G , existe una arista entrantede tal manera que tenga un flujo distinto de cero, es decir, f ( y , x ) > 0 . Esto implica que existe una arista de retorno de x a y en G f , por lo tanto, existe un camino de s a y en G f , lo cual es una contradicción. Por consiguiente, cualquier arista de entrada ( y , x ) debe tener un flujo cero.
Ambas afirmaciones demuestran que la capacidad de corte obtenida de la manera descrita es igual al flujo obtenido en la red. Además, el flujo se obtuvo mediante el algoritmo de Ford-Fulkerson , por lo que también corresponde al flujo máximo de la red.
Además, dado que cualquier flujo en la red es siempre menor o igual a la capacidad de cada corte posible en una red, el corte descrito anteriormente es también el corte mínimo que obtiene el flujo máximo .
Una consecuencia de esta demostración es que el flujo máximo a través de cualquier conjunto de aristas en un corte de un grafo es igual a la capacidad mínima de todos los cortes anteriores.
Véase también
Referencias
- ↑ Dantzig, GB; Fulkerson, DR (9 de septiembre de 1964). "Sobre el teorema del flujo máximo y el corte mínimo en redes" (PDF) . RAND Corporation : 13. Archivado del original (PDF) el 5 de mayo de 2018.
- ↑ Trevisan, Luca. "Clase 15 de CS261: Optimización" (PDF) .
- ↑ Keller, Orgad. "Presentación de flujo máximo con corte mínimo de LP" .
- ↑ Cederbaum, I. (agosto de 1962). "Sobre el funcionamiento óptimo de las redes de comunicación". Journal of the Franklin Institute . 274 (2): 130– 141. doi : 10.1016/0016-0032(62)90401-5 .
- ↑ LR Ford Jr. y DR Fulkerson (1962) Flujos en redes , página 1, Princeton University Press MR 0159700
- ↑ LR Ford Jr. y DR Fulkerson (1956) "Flujo máximo a través de una red", Canadian Journal of Mathematics 8: 399–404
- ↑ P. Elias, A. Feinstein y CE Shannon (1956) "Una nota sobre el flujo máximo a través de una red", IRE. Transactions on Information Theory, 2(4): 117–119
- ↑ George Dantzig y DR Fulkerson (1956) "Sobre el teorema del flujo máximo y el corte mínimo de redes", en Desigualdades lineales , Ann. Math. Studies, n.º 38, Princeton, Nueva Jersey
- ↑ LR Ford y DR Fulkerson (1957) "Un algoritmo simple para encontrar los flujos máximos de la red y una aplicación al problema de Hitchcock", Revista Canadiense de Matemáticas 9: 210–18
- Eugene Lawler (2001). «4.5. Implicaciones combinatorias del teorema de flujo máximo y corte mínimo, 4.6. Interpretación de programación lineal del teorema de flujo máximo y corte mínimo». Optimización combinatoria: redes y matroides . Dover. págs. 117–120 . ISBN 0-486-41453-1.
- Christos H. Papadimitriou , Kenneth Steiglitz (1998). "6.1 El teorema del flujo máximo y el corte mínimo". Optimización combinatoria: algoritmos y complejidad . Dover. págs. 120–128 . ISBN 0-486-40258-4.
- Vijay V. Vazirani (2004). "12. Introducción a la dualidad LP". Algoritmos de aproximación . Springer. págs. 93–100 . ISBN 3-540-65367-8.
- Optimización combinatoria
- Teoremas en teoría de grafos
- Problema de flujo de red