Post on 04-Feb-2018
Flujo máximo en redes
M.C.C Magali Arellano Vázquez
Facultad de ciencias Flujo máximo en redes
El �ujo máximo de una red
En una red de oleoductos se transporta petroleo desde un pozo auna re�nería. Antes de llegar a la re�nería debe pasar por variasestaciones de bombeo que hacen que se recupere la presión. Haytuberías que unen las estaciones de bombeo entre ellas, con el pozopetrolero y con la re�nería. Las tuberias tienen una cierta capacidadmáxima conocida. ¾Cuál es la cantidad de maxima de petroleo quedebemos mandar en cada tubería?
Podemos modelar este problema como una red dirigida pD, cq.
Donde D es un dígrafo y c una función c : EpDq Ñ Z� querepresenta la capacidad máxima de �ujo de cada arista.
Facultad de ciencias Flujo máximo en redes
Ejemplo
Figura: Red dirigida que modela el problema de la re�nería
Facultad de ciencias Flujo máximo en redes
Red dirigida de transporte.
De�nición: (Red dirigida de transporte)
Sea una red dirigida formada por un dígrafo D y una función
c : EpDq Ñ Z� que cumple con las siguientes condiciones.
1 Un vértice s llamado fuente u origen que no tiene aristas
entrantes.
2 Un vértice t llamado sumidero o destino que no tiene aristas
salientes.
Entonces es una red dirigida de transporte.
Facultad de ciencias Flujo máximo en redes
Flujo de una red
De�nición: (Flujo de una red)
Sea pD, cq una red dirigida de transporte, una función
F : EpDq Ñ Z� que cumple con que:
1 F peq ¤ cpeq para toda e P EpDq.
2 Para todo vértice u � s y u � t
¸@e�vu
F peq �¸
@e�uv
F peq
se llama un �ujo en la red pD, cq.
Para simpli�car la notación diremos Fij para denotar F pvivjqy cij para denotar cpvivjq
Facultad de ciencias Flujo máximo en redes
Flujo en un vértice
De�nición: (Flujo que entra a v)
La suma°iFij donde i son todos los vi para los que existe una
arista vivj es el �ujo que entra a vj .
De�nición: (Flujo que sale de v)
La suma°iFji donde i son todos los vi para los que existe una
arista vjvi es el �ujo que sale de vj .
Se sigue de estas de�niciones y de la de�nición de �ujo que:
¸i
Fij �¸i
Fji
Para todo vj � s y vj � t. Esto se conoce como conservación del�ujo.
Facultad de ciencias Flujo máximo en redes
Conservación del �ujo en la red
Teorema:
Dado un �ujo F en una red dirigida de transporte, el �ujo que sale
de la fuente es el mismo �ujo que entra al sumidero. Es decir:
¸i
Fsi �¸i
Fit
A la cantidad°iFsi �
°iFit se le llama el valor del �ujo F en la
red.
De�nición: (Flujo máximo)
Sea una red dirigida de transporte pD, cq al �ujo F tal que el valor
sea el máximo se le llama el �ujo máximo.
Facultad de ciencias Flujo máximo en redes
Ejemplo de �ujo máximo
Figura: La misma red de transporte con un �ujo máximo.
Facultad de ciencias Flujo máximo en redes
Preliminares
Para resolver este problema es necesario introducir algunospreliminares.
Primero, haremos momentáneamente la suposición de que ladirección de las aristas no importa.
Es decir, de momento podremos recorrer una arista en ambasdirecciones.
Esto con el �n de poder encontrar trayectorias aumentantes.
Facultad de ciencias Flujo máximo en redes
Orientación
De�nición: (Orientación apropiada)
Sea P � tv0 � s, v1, . . . , vn � tu una trayectoria de s a t. Se dice
que una arista e P P dirigida de vi�1 a vi tiene la orientación
apropiada y en caso contrario diremos que tiene una orientación
inapropiada.
Figura: La arista vivi�1 tiene la orientación inapropiada. Todas las demás
aristas tiene la orientación apropiada.
Facultad de ciencias Flujo máximo en redes
Trayectorias aumentantes
Si en una trayectoria todas las aristas tuvieran la orientaciónapropiada.Y además, el �ujo de cada arista pudiera aumentar en ∆unidades.Podríamos construir un nuevo �ujo mayor, en la mismatrayectoria
(a) Trayectoria original
(b) Trayectoria aumentada
Figura: Aumento del �ujo en una trayectoria. En este caso ∆ � 2
Facultad de ciencias Flujo máximo en redes
Otros casos
Cuando existen aristas con orientación apropiada y conorientacion inapropiada, tambien cambiar el �ujo de latrayectoria.Solo se debe tener cuidado de aumentar en las aristas deorientación apropiada y disminuir en las de orientacióninapropiada.
Figura: Trayectorias aumentantes con aristas de distinta orientaciónFacultad de ciencias Flujo máximo en redes
Trayectorias aumentantes I
Teorema:
Sea T una st-trayectoria en una red pD, cq que satisface las
siguientes condiciones.
1 Para cada arista vivj con orientación apropiada en T .
Fij cij
2 Para cada arista vivj con orientación inapropiada en T .
0 Fij
Sea
∆ � mı́nX
Facultad de ciencias Flujo máximo en redes
Trayectorias aumentantes II
Teorema: (Continuación)
Donde X consiste en los números cij � Fij para aristas vivj con
orientación apropiada y Fij para aristas vivj con orientación
inapropiada en T . De�na:
F �ij �
$'&'%
Fij si vivj no esta en T
Fij �∆ si vivj tiene orientación apropiada en T
Fij �∆ si vivj tiene orientación inapropiada en T
Entonces F � es un �ujo en pD, cq cuyo valor es ∆ unidades mayor
que el valor del �ujo F .
A una trayectoria T como la descrita en el teorema se le llamatrayectoria aumentante.
Facultad de ciencias Flujo máximo en redes
El algoritmo de Ford y Fulkerson. I
Entradas: Una red de transporte pD, cq un par de vérticess, t P V pDq.
Salidas: Un �ujo máximo F de s a t en pD, cq1: for all e P EpDq do2: F peq � 03: end for
4: while true do
5: Buscar una trayectoria aumentante T .6: if T no existe then
7: Terminar. F es el �ujo máximo.8: else
9: Buscar ∆ en que puede aumentar T .10: F � F � como dice el teorema anterior.11: end if
12: end while
Facultad de ciencias Flujo máximo en redes
Consideraciones del algoritmo
Existen varias implementaciones, dependiendo de como sebusque la trayectoria aumentante.
A la implementación que encuentra la trayectoria aumentantecon Beadth-�rst search se le llama el algoritmo de Edmons yKarp.
Nosotros vamos a usar una implementación con etiquetado.
En nuestra implementación las aristas EpDq tiene etiquetaspf, cq, donde f es el �ujo que pasa por esa arista y c es lacapacidad total de la arista.
Y los vértices tienen etiquetas temporales pv, δq, donde v es elpredecesor del vértice en la posible trayectoria aumentante y δes el posible valor de ∆ de esa trayectoria aumentante.
El algoritmo de Ford y Fulkerson solo garantiza que termina sic : EpGq Ñ Z�.
Facultad de ciencias Flujo máximo en redes
Algoritmo de Ford y Fulkerson con etiquetado I
Entradas: Una red de transporte pD, cq un par de vérticess, t P V pDq.
Salidas: Un �ujo máximo F de s a t en pD, cq1: for all e P EpDq do2: F peq � 03: end for
4: while true do
5: {Elimina las etiquetas de los vertices.}6: for all v P V pDq do7: Lpvq � pnulo, nuloq8: end for
9: {Etiqueta al vértice s}10: Lpsq � p�,8q11: {Una lista de vertices etiquetados, no examinados}12: U � tsu13: {Buscar una trayectoria aumentante}
Facultad de ciencias Flujo máximo en redes
Algoritmo de Ford y Fulkerson con etiquetado II
14: {Continuar hasta etiquetar t}15: while Lptq �� nulo do
16: if U � H then
17: {El �ujo es máximo t}18: return F19: end if
20: Elegir algún v P U21: U � U � tvu22: ∆ � valor v23: {Revisar las aristas salientes de v hacia vértices con
etiqueta nula}24: for all vw con valorw � nulo do
25: if Fvw cvw then
26: predecesorw � v27: valorw � mı́nt∆, cvw � Fvwu28: U � U Y twu
Facultad de ciencias Flujo máximo en redes
Algoritmo de Ford y Fulkerson con etiquetado III
29: end if
30: end for
31: {Revisar las aristas entrantes a v desde vértices conetiqueta nula}
32: for all wv con valorw � nulo do
33: if Fwv ¡ 0 then
34: predecesorw � v35: valorw � mı́nt∆, Fwvu36: U � U Y twu37: end if
38: end for
39: end while
40: {La trayectoria aumentante existe, encontrémosla}41: w0 � t42: k � 043: while wk � s do
Facultad de ciencias Flujo máximo en redes
Algoritmo de Ford y Fulkerson con etiquetado IV
44: wk�1 � predecesorwk
45: k � k � 146: end while
47: T � twk, wk�1, . . . , w0u48: ∆ � valor t49: {Aumentemos la trayectoria en ∆}50: for i � 1 to k do
51: e � wi�1wi
52: if e tiene la orientacion apropiada en T then
53: Fe � Fe �∆54: else
55: Fe � Fe �∆56: end if
57: end for
58: end while
Facultad de ciencias Flujo máximo en redes
Ejemplo
Figura: Calcular en �ujo máximo desde s hasta t en esta red.
Facultad de ciencias Flujo máximo en redes
Final del algoritmo
Figura: Estado de la red al �nal del algoritmo.
Facultad de ciencias Flujo máximo en redes
Cortes
Como se observa al �nal del algoritmo los vértices de la redV pDq se encuentran particionados en dos conjuntos P y P .Los que tienen etiqueta P y los que no P .
Está particion nos lleva a de�nir un concepto interesante.
De�nición: (Corte)
Sea una red de transporte pD, cq. Un corte es una partición del
conjunto V pDq en dos conjuntos P y P tales que s P P y t P P .
De�nición: (Capacidad del corte)
La capacidad C de un corte P, P , es el número.
CpP, P q �¸iPP
¸jPP
cij
Facultad de ciencias Flujo máximo en redes
El corte mínimo
De�nición: (Corte mínimo)
Un corte mínimo es un corte en una red de transporte pD, cq quetiene la capacidad mínima.
Teorema:
Sea F un �ujo en una red de transporte pD, cq y sea pP, P q uncorte en D. Entonces:
¸iPP
¸jPP
cij ¥¸i
Fsi �¸i
Fit
El resultado anterior nos lleva a uno de los teoremas masfamosos de la investigación de operaciónes y de la teoría degrafos.
Facultad de ciencias Flujo máximo en redes
Flujo máximo, corte mínimo
Teorema: (Flujo máximo, corte mínimo)
Sea F un �ujo en una red de transporte pD, cq y sea pP, P q uncorte en D. Si se cumple la igualdad en la ecuación anterior es
decir: ¸iPP
¸jPP
cij �¸i
Fsi �¸i
Fit
entonces el �ujo F es máximo y el corte pP, P q es mínimo. Mas
aún, la igualdad se cumple si y solo si se cumplen las siguientes
condiciones:
1 Fij � cij para i P P y j P P
2 Fji � 0 para i P P y j P P
Facultad de ciencias Flujo máximo en redes
El algoritmo de Ford Fulkerson y el corte mínimo
El algoritmo de Ford Fulkerson puede modi�carse para queademás de encontrar el �ujo máximo encuentre el cortemínimo.
En algunas implementaciones es necesario calcular una redresidual en cada iteración para llevar registro del corte minimoademas del �ujo máximo.
En nuestra implementacion, al �nal del algoritmo; el conjuntode vertices con etiquetas no nulas P y el conjunto de verticescon etiquetas nulas P forman un corte pP, P q que cumple elteorema del corte mínimo y �ujo máximo.
Facultad de ciencias Flujo máximo en redes
Ejemplo de corte
Figura: En esta red podemos apreciar el �ujo máximo y el corte inducido.
Facultad de ciencias Flujo máximo en redes
Otro �ujo máximo
Figura: Un �ujo diferente que también es máximo.
Facultad de ciencias Flujo máximo en redes
El problema de la casamentera
La casamentera de un pueblo debe formar parejas entre unconjunto de hombres y mujeres.
Como es muy previsora, le entregó a cada hombre una lista delas mujeres y le pidio que las numerara en orden de supreferencia y de igual manera hizo con las mujeres.
Ademas hay el mismo número de hombres que de mujeres.
La casamentera debe encontrar una manera de arreglar losmatrimonios tal que que no existan dos parejas phi,mjq y phk,mlqque cumplan las dos condiciones siguientes:
1 hi hubiera preferido a ml sobre mj con quien esta actualmentecasado.
2 ml hubiera preferido a hi sobre hk con quien esta actualmentecasada.
Facultad de ciencias Flujo máximo en redes
Emparejamiento
El problema de la casamentera puede modelarse como un reddirigida bipartita completa pKp
p , fq con f : EpKpp q Ñ Z�.
Donde el conjunto de los vertices azules representa a loshombres y el conjunto de los vértices rojos a las mujeres.
La arista riaj tiene valor fpriajq que representa en que lugarri puso a aj en su lista.
La arista ajri tiene valor fpajriq que representa en que lugaraj puso a ri en su lista.
De�nición: (Emparejamiento)
Un emparejamiento es una función uno a uno y sobre m : aÑ r en
una red como la antes descrita. Un emparejamiento estable es un
emparejamiento que respeta las leyes de la casamentera.
¾Cómo encuentra la casamentera un emparejamiento estable?
Facultad de ciencias Flujo máximo en redes
Ejemplo del problema de la casamentera
Figura: El problema de la casamentera modelado como una red dirigida.
Facultad de ciencias Flujo máximo en redes