Flujo en Redes
Marcel Goic F.1
Esta es una version bastante preliminar por lo que puede contar con numerosas faltas de ortografa y
errores no forzados. Si encuentran alguno favor de denunciarlo a mgoic@cec.uchile.cl
IN34A: Optimizacion
1.
Pag. 1
El tema de flujo en redes es muy amplio y tiene muchas aplicaciones: Redes de distribucion electrica, de comunicacion , de regado, etc. De entre los infinitos problemas posibles,
podemos distinguir familias de problemas: Flujo a costo mnimo, Flujo maximo por una red,
Ruta mas corta, etc.
En general, muchos de los problemas de redes pueden verse como casos particulares de
programacion lineal. Sin embargo, aun para instancias peque
nas, los problemas de redes
tienen tener demasiadas variables y restricciones haciendo muy dificil su resolucion 2 . Es
por esto que se hace muy necesario aprovechar la estructura especial de cada problema para
encontrar algoritmos especializados a cada caso.
2.
Queremos buscar una forma de distribuir flujo por una red de modo de hacerlo al menor
costo posible.
2.1.
i , j variables duales.
Condicion de optimalidad:
Sean:
Por ejemplo, hasta Abril de 1999, el clasico problema del vendedor viajero solo haba sido resuelto para
13509 ciudades, lo cual demoro 4 meses en ser resuelto utilizando para ello 3 servidores, un total de 12
procesadores y 32 PCs.
IN34A: Optimizacion
Pag. 2
Variable que sale: Al agregar el flujo (p,q) en el arbol generador formado por las
variables basicas, se formara un ciclo.
Si fpq = lpq Aumentamos el flujo por (p,q)
Si fpq = upq Disminuimos el flujo por (p,q)
Luego se enva flujo hasta que:
i) Arco (r, s) en el sentido del flujo se satura en cota superior urs (r, s) sale de la
base con valor urs .
ii) Arco (r, s) en el sentido contrario al flujo alcanza la cota inferior lrs (r, s) sale
de la base con valor lrs .
iii) Arco (p, q) alcanza su otra cota No hay cambio de base, solo cambian los valores
de los flujos.
Notar que en cada iteracion cambian todos los valores de los flujos que estaban involucrados en la formacion de un ciclo en el arbol generador (recordar que siempre debe
cumplirse la restriccion de conservacion de flujo en cada nodo).
2.2.
Simplex especializado a redes nos exige una solucin basica factible inicial. Si no disponemos
de ella, requeriremos de un algoritmo para buscarla.
1. Agregamos un nodo artificial con los respectivos arcos que lo unan a los nodos ya
existentes en el problema original (cotas: (0, +)).
2. Definimos un flujo inicial factible para cada uno de los arcos:
Para los arcos del problema original fijamos el flujo en la cota inferior.
Para los nuevos asignamos el flujo tal que el problema sea factible.
3. Resolvemos el problema tomando como base inicial (arbol generador), los flujos asociados al nodo artificial y asignando la siguiente estructura de costos:
Arcos originales: cij = 0
Arcos artificiales: ck , ck = 1
Con esto, la funcion objetivo sera minimizar el flujo por los arcos artificiales:
X
X
mn w =
fi +
fj
i
Finalmente:
Si w = 0 = Tenemos base inicial.
Si w > 0 = Problema Infactible.
IN34A: Optimizacion
3.
Pag. 3
Flujo M
aximo
Ahora nos interesara encontrar la mayor cantidad de flujo F que podemos enviar entre 2
puntos de una red sin importar que tan costoso sea.
3.1.
1. Determinar un flujo factible (Si las cotas inferiores a los flujos por todos los arcos de
la red son nulas, entonces fij = 0 para todo (i,j) es factible para la red)3 .
2. Construir un grafo auxiliar:
Los nodos del grafo auxiliar son los mismos que el grafo original.
Agregamos arcos
Si fij < uij , el arco (i,j) se incorpora al grafo auxiliar. Se agrega el arco (i,j)
a B1 = {conjunto de arcos hacia delante}
Si fij > lij , el arco (j,i) se incorpora al grafo auxiliar. Se agrega el arco (j,i) a
B2 = {conjunto de arcos hacia atras}
Notar que si lij < fij < uij , debemos agregar 2 arcos: uno hacia delante y
otro hacia atras
3. Buscar un camino C desde el nodo de origen O al nodo de destino D (recordar que un
camino de O a D es una secuencia de arcos orientados que unen O con D)4 .
Si @ camino C que una O con D Estamos en el ptimo.
Si camino C que una O con D, debemos buscar la cantidad de flujo que
podemos aumentar por dicho camino:
(i, j) B1
(i, j) B2
IN34A: Optimizacion
4.
4.1.
Pag. 4
Problemas
Problema 1
Costo Unitario
3
2
3
5
6
Flujo Mnimo
0
1
0
4
2
Flujo M
aximo
10
13
9
11
12
a) Dibuje 4 arboles generadores de la malla anterior y diga que representa un arbol generador en el contexto de simplex especializado en redes.
b) Utilice fase I al problema anterior para encontrar una solucion basica factible.
c) Comente de que manera resolvera el problema si no pudiese aplicar fase I.
d) Explique como procedera a continuacion para encontrar el optimo del problema original, utilizando los resultados de fase I.
Soluci
on
a) Un arbol generador equivale a una base para simplex especializado a redes. Para nuestro
ejemplo tenemos por ejemplo:
IN34A: Optimizacion
Pag. 5
b) Para plantear Fase I, agregamos un nodo artificial y arcos de modo que lo unan con
cada uno de los nodos ya existente. Ademas debemos definir la siguiente estructura de
costos:
c12
c13
c32
c24
c34
=0
=0
=0
=0
=0
c1
c2
c3
c4
=1
=1
=1
=1
n 1:
Iteracio
Comenzamos a iterar con nuestra solucion basica factible inicial compuesta por
los arcos asociados al nodo artificial cuyos flujos iniciales se determinan de modo
que el problema sea factible (dado que fijamos los flujos por los arcos ya existentes
en sus cotas inferiores):
Base: f1 , f2 , f3 , f4
Observaci
on: Las lineas completas denotaran los flujos basicos y las lineas punteadas denotaran el resto de los flujos.
Condicion de Optimalidad:
Flujos Basicos
(f1 )
(f2 )
(f3 )
(f4 )
c1
c2
c3
c4
= 1 1 +
= 1 + 2
= 1 + 3
= 1 + 4
Haciendo = 0:
1 = 1
2 = 1
3 = 1
4 = 1
=0
=0
=0
=0
IN34A: Optimizacion
Pag. 6
Flujos No Basicos
(f12 )
(f13 )
(f32 )
(f24 )
(f34 )
c12
c13
c32
c24
c34
= 0 1 + 2
= 0 1 + 3
= 0 3 + 2
= 0 2 + 4
= 0 3 + 4
=
=
=
=
=
-2
-2
0
0
0
<
<
0
0
0 X
0 X
0 X
(f12
(f13
(f32
(f24
(f34
= l12 )
= l13 )
= l32 )
= l24 )
= l34 )
ax
m
= 10
12
ax
m
= 4
2
m
ax
1 = 14
ax
mn {m
ij } = 4 f2 Sale de la base
n 2:
Iteracio
Solucion basica factible:
Base: f12 , f1 , f3 , f4
Condicion de Optimalidad:
IN34A: Optimizacion
Pag. 7
Flujos Basicos
(f12 )
(f1 )
(f3 )
(f4 )
c12 = 1 1 + 2 = 0
c1 = 1 1 + = 0
c3 = 1 + 3 = 0
c4 = 1 + 4 = 0
Haciendo = 0:
1
2
3
4
=1
=1
= 1
= 1
Flujos No Basicos
(f13 )
(f32 )
(f24 )
(f34 )
(f2 )
c13
c32
c24
c34
c12
= 0 1 + 3
= 0 3 + 2
= 0 2 + 4
= 0 3 + 4
= 0 + 2
=
=
=
=
=
-2
2
-2
0
2
<
<
<
0
0 X
0
0 X
0 X
(f13
(f32
(f24
(f34
(f2
= l13 )
= l32 )
= l24 )
= l34 )
= l2 )
ax
= 12
m
13
ax
= 10
m
1
m
ax
3 = 1
ax
mn {m
ij } = 1 f3 Sale de la base
n 3:
Iteracio
Solucion basica factible:
IN34A: Optimizacion
Pag. 8
c12 = 1 1 + 2 = 0
c13 = 1 1 + 3 = 0
c1 = 1 1 + = 0
c4 = 1 + 4 = 0
Haciendo 1 = 0:
2 = 0
3 = 0
4 = 2
= 1
Flujos No Basicos
(f32 )
(f24 )
(f34 )
(f2 )
(f3 )
c32 = 0 3 + 2
c24 = 0 2 + 4
c34 = 0 3 + 4
c2 = 0 + 2
c3 = 0 + 3
= 0
= -2
= -2
= 2
= 2
<
<
0 X
0
0
0 X
0 X
(f32
(f24
(f34
(f2
(f2
= l32 )
= l24 )
= l34 )
= l2 )
= l2 )
IN34A: Optimizacion
ax
m
1
ax
m
4
m
34ax
ax
m
13
Pag. 9
=
=
=
=
9
9
10
11
ax
mn {m
ij } = 9 Sale f1 o f4 .
c12 = 1 1 + 2 = 0
c13 = 1 1 + 3 = 0
c34 = 1 3 + 4 = 0
c4 = 1 + 4 = 0
Haciendo 1 = 0:
2 = 0
3 = 0
4 = 0
= 1
IN34A: Optimizacion
Pag. 10
Flujos No Basicos
(f32 )
c32 = 0 3 + 2 = 0 0 X (f32 = l32 )
(f24 )
c24 = 0 2 + 4 = 0 0 X (f24 = l24 )
(f1 )
c1 = 0 1 + = 2 0 X (f34 = l34 )
(f2 )
c2 = 0 + 2 = 0 0 X (f2 = l2 )
(f3 )
c3 = 0 + 3 = 0 0 X (f3 = l3 )
Como ya habamos predicho, la solucion basica es optima.
Finalmente, como en nuestro optimo se verifica que w = 0, tenemos una base
factible. En efecto, w = 0 implica que no existe flujo circulando por arcos
(, ) y (, ) y por tanto podemos eliminar el nodo artificial .
As, nuestra base inicial (arbol generador) viene dada por:
Notar que esta base es degenerada pues tiene flujos en su cota mnima (f2,3
y f24 ).
c) Como es un problema peque
no, podemos encontrar por inspeccion una base factible
inicial, escogiendo un arbol generador y asignando flujos tal que queden el n
umero
adecuado de flujos en sus cotas. As por ejemplo:
En este caso, la base esta compuesta por f13 ,f3,2 y f34 porque los otros 2 alcanzan sus
cotas superiores:
f12 = u12 = 10
f24 = u24 = 11
d) Con la base encontrada en b), comenzamos a iterar considerando la estructura de costos
inicial.
IN34A: Optimizacion
4.2.
Pag. 11
Problema 2
La se
nora Julia es una abnegada madre y debe enviar a sus 10 hijos a la escuela del pueblo.
Para esto, nuestra distinguida dama cuenta con varias alternativas de transporte las que
tiene asociado un costo, capacidad mnima y maxima. La se
nora tiene la impresion de que
su actual sistema de transporte no es el mas economico posible y quiere encontrar una mejor
alternativa. El sistema que actualmente utiliza la se
nora Julia para enviar a sus hijos a la
escuela puede resumirse en el siguiente grafo:
Ademas, se conocen los costos unitarios de transporte, cota mnima y maxima para cada
uno de los arcos y se resumen en la siguiente tabla:
Arco(i,j)
(1,2)
(1,3)
(2,3)
(2,4)
(3,4)
(4,5)
(4,6)
(5,6)
Costo Unitario
2
4
1
4
6
1
5
3
L (Flujo Mnimo)
0
3
0
1
2
3
0
3
U (Flujo M
aximo)
3
11
4
9
10
6
8
6
Con estos datos y considerando como base inicial los flujos f12 , f13 , f34 , f45 y f46 , encuentre
la poltica ptima de envo de los hijo de la Sra. Julia a la escuela.
Soluci
on
n 1:
Iteracio
Tenemos una solucion basica factible inicial dada por enunciado:
Observaci
on: Al igual que en el problema anterior, las lineas completas denotaran los
flujos basicos y las lineas punteadas denotaran el resto de los flujos.
Condicion de Optimalidad:
IN34A: Optimizacion
Pag. 12
c12
c13
c34
c46
c45
= c12 1 + 2
= c13 1 + 3
= c34 3 + 4
= c46 4 + 6
= c45 4 + 5
=0
=0
=0
=0
=0
=8
= 10
=6
= 5
= 1
Flujos No Basicos
(f23 )
(f24 )
(f56 )
c23 = 1 2 + 3
c24 = 4 2 + 4
c56 = 3 5 + 6
= -1
= -4
= -1
< 0
< 0
< 0
(f23 = l23 )
(f24 = l24 )
(f56 = l56 )
IN34A: Optimizacion
ax
m
24
ax
m
12
m
13ax
ax
m
34
=
=
=
=
Pag. 13
8
2
6
7
ax
mn {m
ij } = 2 f12 Sale de la base
n 2:
Iteracio
Solucion basica factible:
c13
c24
c34
c46
c45
= 4 1 + 3
= 4 2 + 4
= 6 3 + 4
= 5 4 + 6
= 1 4 + 5
Haciendo 4 = 0:
1
2
3
6
= 10
=4
=6
= 5
=0
=0
=0
=0
=0
IN34A: Optimizacion
Pag. 14
5 = 1
Flujos No Basicos
(f12 )
(f23 )
(f56 )
c12 = 2 1 + 2
c23 = 1 2 + 3
c56 = 3 5 + 6
= -4
= 3
= -1
0
0
< 0
X
X
(f12 = u12 )
(f23 = l23 )
(f56 = l56 )
ax
m
= 3
56
ax
m
= 7
46
m
ax
45 = 3
ax
mn {m
ij } = 3 Pueden salir de la base tantof45 como f56
Aqu, podramos realizar la iteracion 3 considerando que sale de la base f45 o que lo hace
f56 y en ambos casos se debe llegar al mismo resultado. Para mostrarlo, terminaremos
de resolver el problema por los 2 caminos:
n 3.a: f56 sale de la base.
Iteracio
Solucion basica factible:
Condicion de Optimalidad:
Flujos Basicos
(f13 )
(f24 )
(f34 )
(f46 )
c13
c24
c34
c46
= 4 1 + 3
= 4 2 + 4
= 6 3 + 4
= 5 4 + 6
=0
=0
=0
=0
IN34A: Optimizacion
Pag. 15
= 10
=4
=6
= 5
= 1
Flujos No Basicos
(f12 )
(f23 )
(f56 )
c12 = 2 1 + 2
c23 = 1 2 + 3
c56 = 3 5 + 6
= -4
= 3
= -1
0
0
0
X
X
X
(f12 = u12 )
(f23 = l23 )
(f56 = u56 )
IN34A: Optimizacion
Pag. 16
Observaci
on: Notar que los flujos son identicos a los de la iteracin 3.a en que consideramos que f56 sala de la base. La u
nica diferencia radica en que flujo consideramos
como basico.
Condicion de Optimalidad:
Flujos Basicos
(f13 )
(f24 )
(f34 )
(f46 )
(f56 )
c13
c24
c34
c46
c56
= 4 1 + 3
= 4 2 + 4
= 6 3 + 4
= 5 4 + 6
= 3 5 + 6
=0
=0
=0
=0
=0
= 10
=4
=6
= 5
= 2
Flujos No Basicos
(f12 )
(f23 )
(f45 )
c12 = 2 1 + 2
c23 = 1 2 + 3
c45 = 1 4 + 5
= -4
= 3
= -1
0
0
0
X
X
X
(f12 = u12 )
(f23 = l23 )
(f45 = u45 )
4.3.
Problema 3
Cachiyullo F.C, gracias a la gran actuacion de su jugador estrella Marcel Salas, ha tenido un
excelente rendimiento en el u
ltimo torneo lo que lo ha llevado a disputar la final del torneo
en la localidad de Pelotillehue. Las posibilidades de exito del equipo en dicho encuentro,
dependen en gran medida del apoyo que pueda brindarle el p
ublico al equipo, por lo cual
los dirigentes necesitan saber a cuantos hinchas pueden transportar como maximo desde el
pueblo de Cachiyullo (C) hasta Pelotillehue (P). Para contestar esta pregunta se sabe que el
servicio de transporte entre los 2 pueblos puede modelarse como la siguiente red.
En el grafo se indican las capacidades maximas de transporte por cada arco y no existen
cotas inferiores para el transporte en cada uno de ellos.
IN34A: Optimizacion
Pag. 17
Soluci
on
Para empezar a resolver el problema necesitamos una solucion factible, pero como no hay
restricciones de flujo mnimo en ningun arco, tenemos una solucion trivial dada por fij = 0
para todo (i,j).
Iteracion 1.
Solucion factible trivial:
IN34A: Optimizacion
Pag. 18
Iteracion 2.
Solucion factible obtenida aumentando en cada uno de los flujos de los arcos que
pertenecen al camino escogido:
IN34A: Optimizacion
Pag. 19
IN34A: Optimizacion
Pag. 20
Construimos un grafo auxiliar y luego buscamos un camino que una C con P. Aqu,
nos damos cuenta que no existe un camino que una C con P. Luego el problema es
optimo.
Finalmente, podemos decir que hasta 1400 hinchas apoyaran al Cachiyullo F.C en la
final del torneo.