Flujo máximo en redes - · PDF fileDado un ujo Fen una red dirigida de ... Sea una red...

31

Transcript of Flujo máximo en redes - · PDF fileDado un ujo Fen una red dirigida de ... Sea una red...

Page 1: Flujo máximo en redes - · PDF fileDado un ujo Fen una red dirigida de ... Sea una red dirigida de transporte p D;cq al ujo Ftal que el valor ... además de encontrar el ujo máximo

Flujo máximo en redes

M.C.C Magali Arellano Vázquez

Facultad de ciencias Flujo máximo en redes

Page 2: Flujo máximo en redes - · PDF fileDado un ujo Fen una red dirigida de ... Sea una red dirigida de transporte p D;cq al ujo Ftal que el valor ... además de encontrar el ujo máximo

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

Page 3: Flujo máximo en redes - · PDF fileDado un ujo Fen una red dirigida de ... Sea una red dirigida de transporte p D;cq al ujo Ftal que el valor ... además de encontrar el ujo máximo

Ejemplo

Figura: Red dirigida que modela el problema de la re�nería

Facultad de ciencias Flujo máximo en redes

Page 4: Flujo máximo en redes - · PDF fileDado un ujo Fen una red dirigida de ... Sea una red dirigida de transporte p D;cq al ujo Ftal que el valor ... además de encontrar el ujo máximo

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

Page 5: Flujo máximo en redes - · PDF fileDado un ujo Fen una red dirigida de ... Sea una red dirigida de transporte p D;cq al ujo Ftal que el valor ... además de encontrar el ujo máximo

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

Page 6: Flujo máximo en redes - · PDF fileDado un ujo Fen una red dirigida de ... Sea una red dirigida de transporte p D;cq al ujo Ftal que el valor ... además de encontrar el ujo máximo

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

Page 7: Flujo máximo en redes - · PDF fileDado un ujo Fen una red dirigida de ... Sea una red dirigida de transporte p D;cq al ujo Ftal que el valor ... además de encontrar el ujo máximo

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

Page 8: Flujo máximo en redes - · PDF fileDado un ujo Fen una red dirigida de ... Sea una red dirigida de transporte p D;cq al ujo Ftal que el valor ... además de encontrar el ujo máximo

Ejemplo de �ujo máximo

Figura: La misma red de transporte con un �ujo máximo.

Facultad de ciencias Flujo máximo en redes

Page 9: Flujo máximo en redes - · PDF fileDado un ujo Fen una red dirigida de ... Sea una red dirigida de transporte p D;cq al ujo Ftal que el valor ... además de encontrar el ujo máximo

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

Page 10: Flujo máximo en redes - · PDF fileDado un ujo Fen una red dirigida de ... Sea una red dirigida de transporte p D;cq al ujo Ftal que el valor ... además de encontrar el ujo máximo

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

Page 11: Flujo máximo en redes - · PDF fileDado un ujo Fen una red dirigida de ... Sea una red dirigida de transporte p D;cq al ujo Ftal que el valor ... además de encontrar el ujo máximo

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

Page 12: Flujo máximo en redes - · PDF fileDado un ujo Fen una red dirigida de ... Sea una red dirigida de transporte p D;cq al ujo Ftal que el valor ... además de encontrar el ujo máximo

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

Page 13: Flujo máximo en redes - · PDF fileDado un ujo Fen una red dirigida de ... Sea una red dirigida de transporte p D;cq al ujo Ftal que el valor ... además de encontrar el ujo máximo

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

Page 14: Flujo máximo en redes - · PDF fileDado un ujo Fen una red dirigida de ... Sea una red dirigida de transporte p D;cq al ujo Ftal que el valor ... además de encontrar el ujo máximo

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

Page 15: Flujo máximo en redes - · PDF fileDado un ujo Fen una red dirigida de ... Sea una red dirigida de transporte p D;cq al ujo Ftal que el valor ... además de encontrar el ujo máximo

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

Page 16: Flujo máximo en redes - · PDF fileDado un ujo Fen una red dirigida de ... Sea una red dirigida de transporte p D;cq al ujo Ftal que el valor ... además de encontrar el ujo máximo

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

Page 17: Flujo máximo en redes - · PDF fileDado un ujo Fen una red dirigida de ... Sea una red dirigida de transporte p D;cq al ujo Ftal que el valor ... además de encontrar el ujo máximo

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

Page 18: Flujo máximo en redes - · PDF fileDado un ujo Fen una red dirigida de ... Sea una red dirigida de transporte p D;cq al ujo Ftal que el valor ... además de encontrar el ujo máximo

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

Page 19: Flujo máximo en redes - · PDF fileDado un ujo Fen una red dirigida de ... Sea una red dirigida de transporte p D;cq al ujo Ftal que el valor ... además de encontrar el ujo máximo

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

Page 20: Flujo máximo en redes - · PDF fileDado un ujo Fen una red dirigida de ... Sea una red dirigida de transporte p D;cq al ujo Ftal que el valor ... además de encontrar el ujo máximo

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

Page 21: Flujo máximo en redes - · PDF fileDado un ujo Fen una red dirigida de ... Sea una red dirigida de transporte p D;cq al ujo Ftal que el valor ... además de encontrar el ujo máximo

Ejemplo

Figura: Calcular en �ujo máximo desde s hasta t en esta red.

Facultad de ciencias Flujo máximo en redes

Page 22: Flujo máximo en redes - · PDF fileDado un ujo Fen una red dirigida de ... Sea una red dirigida de transporte p D;cq al ujo Ftal que el valor ... además de encontrar el ujo máximo

Final del algoritmo

Figura: Estado de la red al �nal del algoritmo.

Facultad de ciencias Flujo máximo en redes

Page 23: Flujo máximo en redes - · PDF fileDado un ujo Fen una red dirigida de ... Sea una red dirigida de transporte p D;cq al ujo Ftal que el valor ... además de encontrar el ujo máximo

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

Page 24: Flujo máximo en redes - · PDF fileDado un ujo Fen una red dirigida de ... Sea una red dirigida de transporte p D;cq al ujo Ftal que el valor ... además de encontrar el ujo máximo

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

Page 25: Flujo máximo en redes - · PDF fileDado un ujo Fen una red dirigida de ... Sea una red dirigida de transporte p D;cq al ujo Ftal que el valor ... además de encontrar el ujo máximo

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

Page 26: Flujo máximo en redes - · PDF fileDado un ujo Fen una red dirigida de ... Sea una red dirigida de transporte p D;cq al ujo Ftal que el valor ... además de encontrar el ujo máximo

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

Page 27: Flujo máximo en redes - · PDF fileDado un ujo Fen una red dirigida de ... Sea una red dirigida de transporte p D;cq al ujo Ftal que el valor ... además de encontrar el ujo máximo

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

Page 28: Flujo máximo en redes - · PDF fileDado un ujo Fen una red dirigida de ... Sea una red dirigida de transporte p D;cq al ujo Ftal que el valor ... además de encontrar el ujo máximo

Otro �ujo máximo

Figura: Un �ujo diferente que también es máximo.

Facultad de ciencias Flujo máximo en redes

Page 29: Flujo máximo en redes - · PDF fileDado un ujo Fen una red dirigida de ... Sea una red dirigida de transporte p D;cq al ujo Ftal que el valor ... además de encontrar el ujo máximo

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

Page 30: Flujo máximo en redes - · PDF fileDado un ujo Fen una red dirigida de ... Sea una red dirigida de transporte p D;cq al ujo Ftal que el valor ... además de encontrar el ujo máximo

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

Page 31: Flujo máximo en redes - · PDF fileDado un ujo Fen una red dirigida de ... Sea una red dirigida de transporte p D;cq al ujo Ftal que el valor ... además de encontrar el ujo máximo

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