Вы находитесь на странице: 1из 8

Optimizacin y Programacin Lineal

Programacin Lineal: Flujo Mximo


Departamento de Matemticas

ITESM

Programacin Lineal: Flujo Mximo

TC3001 - p. 1/8

Red de Transporte
Una Red de Transporte es un grafo dirigido con peso (V, E, c) donde hay dos vrtices distinguidos: uno llamado fuente s y otro llamado sumidero t. Se asume que todo vrtice del grafo v V est en un camino s v t. El peso de cada lado debe ser no / E , c ( e) = 0 . negativo y se considera la capacidad del lado. Si e 16 s 13 4 v4 14 v1 10 9 v3 4 12 v2 7 20 t
Red de Transporte Un Flujo Ejemplo El problema Max Flow LP Max Flow en LINGO 1 Aplicacion

Programacin Lineal: Flujo Mximo

TC3001 - p. 2/8

Flujo en una Red


Un ujo f en una red de transporte (V, E, c) es una asignacin a cada lado de la red e E de un valor numrico f (e) que satisface: 1. Restriccin de capacidad: e E : 0 f ( e) c ( e) 2. Conservacin del ujo: v V {s, t}: f (x, v ) =
(x,v )E (v,y )E

Red de Transporte Un Flujo Ejemplo El problema Max Flow LP Max Flow en LINGO 1 Aplicacion

f (v, y )

Esto es para cualquier nodo v , diferente de s y de t, el ujo total que llega al nodo v es igual ujo total que sale de v . El valor del ujo f se dene como: |f | =
(s,v )E

f (s, v )

Esto es, el ujo total que sale de s.

Programacin Lineal: Flujo Mximo

TC3001 - p. 3/8

Ejemplo de un ujo en una red


Cada lado tiene dos valores asignados, una alternativa es una fraccin simulada: el nmero en el numerador representa el ujo en el lado; el valor en el denominador representa la capacidad del lado. 12/12 v1 v2 11/16 15/20
Red de Transporte Un Flujo Ejemplo El problema Max Flow LP Max Flow en LINGO 1 Aplicacion

1/4

0/10 4/9

7/7

8/13

v4 11/14

v3

4/4

Aqu |f | = 19.

Programacin Lineal: Flujo Mximo

TC3001 - p. 4/8

El problema
Dada una red de transporte (V, E, c) encontrar un ujo f con mximo valor |f |.
Red de Transporte Un Flujo Ejemplo El problema Max Flow LP Max Flow en LINGO 1 Aplicacion

La formulacin como LP es directa: Para cada lado e E se tiene una variable de decisin xe que representa el ujo en el lado e con restricciones 0 xe c(e). Objetivo: Max z = eE e = (s, v ) Sujeto a para cada vrtice v diferente de s y de t: xe =
e=(x,v )E e =(v,y )E

xe

xe

Programacin Lineal: Flujo Mximo

TC3001 - p. 5/8

c(e3 ) = 12 v1 c(e1 ) = 16 c(e10 ) = 10 s = x6 c(e9 ) = 4 c(e5 ) = 7 t = x5 v2 c(e4 ) = 20

c(e8 ) = 9 c(e2 ) = 13 v4 c(e7 ) = 14 v3 c(e6 ) = 4

Red de Transporte Un Flujo Ejemplo El problema Max Flow LP Max Flow en LINGO 1 Aplicacion

0 x61 0 x64 Max z = x61 + x64 Sujeto a x61 + x41 x64 + x14 + x24 x12 + x32 x43 = = = = x12 + x14 x41 + x43 x24 + x25 x32 + x35 0 x12 0 x25 0 x32 0 x35 0 x43 0 x24 0 x41 0 x14

16 13 12 20 7 4 14 9 4 10

Programacin Lineal: Flujo Mximo

TC3001 - p. 6/8

Codicacin en LINGO
c(e3 ) = 12 v1 c(e1 ) = 16 c(e10 ) = 10 s = x6 c(e9 ) = 4 c(e5 ) = 7 t = x5 v2 c(e4 ) = 20

c(e) = M

c(e8 ) = 9 c(e2 ) = 13
MODEL: SETS:

Red de Transporte Un Flujo Ejemplo El problema Max Flow LP Max Flow en LINGO 1 Aplicacion

v4 c(e7 ) = 14
DATA:

v3

c(e6 ) = 4

NODES/1..6/; ARCS(NODES,NODES)/ 6,2 6,4 1,2 1,4 2,4 2,5 3,2 3,5 4,1 4,3 5,6/: C,X;
ENDSETS

C=16,13,12,10,9,20,7,4,4,14,1000;
ENDDATA MAX=X(5,6); @FOR(ARCS(I,J):

X(I,J) <= C(I,J) );


@FOR(NODES(I): @SUM(ARCS(J,I):X(J,I))

=
@SUM(ARCS(I,J):X(I,J))

);
END

Programacin Lineal: Flujo Mximo

TC3001 - p. 7/8

Apareamiento Mximo
Suponga que Ud. debe formar el mayor nmero de parejas entre 5 hombres (h1 a h5 ) y 5 mujeres (m1 a m5 ). Mientras que a cada hombre no le importa con qu mujer formar pareja, a las mujeres s: a m1 slo quiere con h1 o con h2 ; m2 slo quiere con h2 ; m3 slo quiere con h1 , h3 o con h4 ; m4 slo con h2 o con h5 ; y m5 slo con h2 o con h5 . Solucin: Construya la siguiente red donde todos los lados tienen capacidad 1 y encuentre el ujo mximo.
M5 H5

Red de Transporte Un Flujo Ejemplo El problema Max Flow LP Max Flow en LINGO 1 Aplicacion

M4

H4

M3

H3

M2

H2

M1

H1

Programacin Lineal: Flujo Mximo

TC3001 - p. 8/8