Articulo Del Tema 2.4. Problema de Flujo Máximo.
Articulo Del Tema 2.4. Problema de Flujo Máximo.
Articulo Del Tema 2.4. Problema de Flujo Máximo.
En algunas redes circula por los arcos un flujo (envío o circulación de unidades
homogéneas de algún producto: automóviles en una red de carreteras, litros de
petróleo en un oleoducto, bits por un cable de fibra óptica) desde
el origen o fuente al destino, también denominado sumidero o vertedero.
Los arcos tienen una capacidad máxima de flujo, y se trata de enviar desde la
fuente al sumidero la mayor cantidad posible de flujo, de tal manera que:
Corte: Un corte define una serie de arcos cuya supresión de la red causa
una interrupción completa del flujo entre el origen y el destino.
La capacidad de corte es igual a la suma de las capacidades de los arcos
asociados. Entre todos los cortes posibles en la red , el corte con la menor
capacidad proporciona el flujo máximo en la red.
El siguiente grafo ilustra 3 cortes: el Corte 1 con capacidad 60, el Corte 2 con
capacidad 110 y el Corte 3 con capacidad 70. Todo lo que podemos obtener de
los 3 cortes es que el flujo máximo en la red no excede de 60 unidades. No
podemos saber cual es el flujo máximo hasta que se hayan
enumerado todos los cortes en la red:
Las capacidades se identifican como sigue: por ejemplo, para el arco (3,4), el
límite de flujo es de 10 unidades de 3 a 4 y de 5 unidades de 4 a 3.
Algoritmo de Ford-Fulkerson
La idea es encontrar una ruta de penetración con un flujo positivo neto que
una los nodos origen y destino.
Iteración 1:
Determinamos las residuales iniciales (cij,cji) iguales a las capacidades
iniciales (Cij,Cji).
(c13,c31)=(30-20, 0+20)=(10,20)
(c35,c53)=(20-20, 0+20)=(0,20)
Iteración 2:
(c12,c21)=(20-10, 0+10)=(10,10)
(c23,c32)=(40-10, 0+10)=(30,10)
(c34,c43)=(10-10, 5+10)=(0,15)
(c45,c54)=(20-10, 0+10)=(10,10)
Iteración 3:
Paso 1: Hacemos ai=∞, y clasificamos el nodo 1 con [a1,-]. Tomamos i=1.
Paso 2: S1={2,3,4}.
Paso 3: k=2 y a2=c12=max{10,10,10}=10, rompemos el empate
arbitrariamente. Clasificamos el nodo 2 con [10,1]. Tomamos i=2 y
repetimos el paso 2.
Paso 2: S2={3,5}
Paso 3: k=3 y a3=c23=max{30,30}=30. Clasificamos el nodo 3 con [30,2].
Tomamos i=3 y repetimos el paso 2.
Paso 2: S3 vacío ya que c34=c35=0. Vamos al paso 4 para retroceder.
Paso 4: La clasificación [30,2] nos dice que el nodo inmediatamente
precedente es el 2. Eliminamos el nodo 3 de una consideración posterior en
esta iteración. Tomamos i=2 y repetimos el paso 2.
Paso 2: S2={5}
Paso 3: k=5 y a5=c25=30. Clasificamos el nodo 5 con [30,2]. Logramos la
penetración, vamos al paso 5.
Paso 5: La ruta de la penetración es: 5→[30,2]→2→[10,1]→1.
(c12,c21)=(10-10, 10+10)=(0,20)
(c25,c52)=(30-10, 0+10)=(20,10)
Iteración 4:
(c13,c31)=(10-10, 20+10)=(0,30)
(c32,c23)=(10-10, 30+10)=(0,40)
(c25,c52)=(20-10, 10+10)=(10,20)
Iteración 5:
Paso 1: Hacemos ai=∞, y clasificamos el nodo 1 con [a1,-]. Tomamos i=1.
Paso 2: S1={4}.
Paso 3: k=4 y a4=c14=10. Clasificamos el nodo 4 con [10,1].
Tomamos i=4 y repetimos el paso 2.
Paso 2: S4={3,5}
Paso 3: k=3 y a3=c23=max{15,10}=15. Clasificamos el nodo 3 con [15,4].
Tomamos i=3 y repetimos el paso 2.
Paso 2: S3 vacío ya que c32=c34=c35=0. Vamos al paso 4 para
retroceder.
Paso 4: La clasificación [15,4] nos dice que el nodo inmediatamente
precedente es el 4. Eliminamos el nodo 3 de una consideración posterior en
esta iteración. Tomamos i=4 y repetimos el paso 2.
Paso 2: S4={5}
Paso 3: k=5 y a5=c45=10. Clasificamos el nodo 5 con [10,4]. Logramos la
penetración, vamos al paso 5.
Paso 5: La ruta de la penetración es: 5→[10,4]→4→[10,1]→1.
(c14,c41)=(10-10, 0+10)=(0,10)
(c45,c54)=(10-10, 10+10)=(0,20)
Iteración 6:
No son posibles más penetraciones, debido a que todos los arcos fuera del
nodo 1 tienen residuales cero. Vayamos al paso 6 para determinar la solución.