Está en la página 1de 21

Universidad de Chile Facultad de Ciencias F sicas y Matemticas a Departamento de Ingenier Industrial a

Flujo en Redes
Marcel Goic F.1

IN34A: Clase Auxiliar

Esta es una versin bastante preliminar por lo que puede contar con numerosas faltas de ortograf y o a errores no forzados. Si encuentran alguno favor de denunciarlo a mgoic@cec.uchile.cl

IN34A: Optimizacin o

Pag. 1

1.

Una brev sima introduccin. o

El tema de ujo en redes es muy amplio y tiene muchas aplicaciones: Redes de distribucin elctrica, de comunicacin , de regad etc. De entre los innitos problemas posibles, o e o o, podemos distinguir familias de problemas: Flujo a costo m nimo, Flujo mximo por una red, a Ruta mas corta, etc. En general, muchos de los problemas de redes pueden verse como casos particulares de programacin lineal. Sin embargo, aun para instancias pequeas, los problemas de redes o n tienen tener demasiadas variables y restricciones haciendo muy dicil su resolucin 2 . Es o por esto que se hace muy necesario aprovechar la estructura especial de cada problema para encontrar algoritmos especializados a cada caso.

2.

Flujo a Costo M nimo

Queremos buscar una forma de distribuir ujo por una red de modo de hacerlo al menor costo posible.

2.1.

Simplex especializado a redes (Resumn) e

Solucin Bsica Arbol Generador. o a cij = cij i + j i , j variables duales.

Condicin de optimalidad: o Sean: fij = Flujo por el arco ij. lij = Cota m nima para el ujo por el arco ij. lij fij uij uij = Cota mxima para el ujo por el arco ij. a Con esto las condiciones de optimalidad pueden resumirse como: (1) cij = 0 (i, j)bsico. a a (2) cij 0 (i, j) no bsico tal quefij = lij . (3) cij 0 (i, j) no bsico tal quefij = uij . a Luego, lo que tenemos que hacer es resolver (1) teniendo como incgnitas los . Para o ello, requerimos asignar r = 0 para algn r arbitrario. Con estos valores de i vemos u si se cumplen las condiciones (2) y (3). Variable que entra: (p,q) con mxima violacin de optimalidad. a o
Por ejemplo, hasta Abril de 1999, el clsico problema del vendedor viajero solo hab sido resuelto para a a 13509 ciudades, lo cual demor 4 meses en ser resuelto utilizando para ello 3 servidores, un total de 12 o procesadores y 32 PCs.
2

IN34A: Optimizacin o

Pag. 2

Variable que sale: Al agregar el ujo (p,q) en el rbol generador formado por las a variables bsicas, se formar un ciclo. a a Si fpq = lpq Aumentamos el ujo por (p,q) Si fpq = upq Disminuimos el ujo por (p,q) Luego se env ujo hasta que: a i) Arco (r, s) en el sentido del ujo se satura en cota superior urs (r, s) sale de la base con valor urs . ii) Arco (r, s) en el sentido contrario al ujo 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 ujos. Notar que en cada iteracin cambian todos los valores de los ujos que estaban involuo crados en la formacin de un ciclo en el rbol generador (recordar que siempre debe o a cumplirse la restriccin de conservacin de ujo en cada nodo). o o

2.2.

Fase I en redes (Resumn) e

Simplex especializado a redes nos exige una solucin bsica factible inicial. Si no disponemos a de ella, requeriremos de un algoritmo para buscarla. 1. Agregamos un nodo articial con los respectivos arcos que lo unan a los nodos ya existentes en el problema original (cotas: (0, +)). 2. Denimos un ujo inicial factible para cada uno de los arcos: Para los arcos del problema original jamos el ujo en la cota inferior. Para los nuevos asignamos el ujo tal que el problema sea factible. 3. Resolvemos el problema tomando como base inicial (arbol generador), los ujos asociados al nodo articial y asignando la siguiente estructura de costos: Arcos originales: cij = 0 Arcos articiales: ck , ck = 1 Con esto, la funcin objetivo ser minimizar el ujo por los arcos articiales: o a m w = n
i

fi +
j

fj

Finalmente: Si w = 0 = Tenemos base inicial. Si w > 0 = Problema Infactible.

IN34A: Optimizacin o

Pag. 3

3.

Flujo Mximo a

Ahora nos interesar encontrar la mayor cantidad de ujo F que podemos enviar entre 2 a puntos de una red sin importar que tan costoso sea.

3.1.

Algoritmo de Marcas (Resumn) e

1. Determinar un ujo factible (Si las cotas inferiores a los ujos 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 atrs} a Notar que si lij < fij < uij , debemos agregar 2 arcos: uno hacia delante y otro hacia atrs a 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 ujo que podemos aumentar por dicho camino: = m n{ij |(i, j)enC} con ij = uij fij Si uij > fij fij lij Si fij > lij

4. Actualizamos los ujos (solo para aquellos arcos en C): F := F + fij := fij + fij := fij
3 4

(i, j) B1 (i, j) B2

Si no, dedemos de hacer algo similar a la fase I de simplex especializado a redes Por el momento realizaremos esta bsqueda por inspeccin (no es d u o cil), pero para problemas complejos deben implementarse algoritmos especiales de bsqueda u

IN34A: Optimizacin o

Pag. 4

4.
4.1.

Problemas
Problema 1

Se deben transportar 15 toneladas de materia prima desde la ciudad 1 hasta la ciudad 4. Las alternativas de caminos se presentan en la siguiente malla:

Se pretende minimizar el costo de transporte de estas 15 toneladas de materia prima. Para resolver este problema se dispone de la siguiente informacin: o Arco(i,j) (1,2) (1,3) (3,2) (2,4) (3,4) Costo Unitario 3 2 3 5 6 Flujo M nimo 0 1 0 4 2 Flujo Mximo a 10 13 9 11 12

a) Dibuje 4 rboles generadores de la malla anterior y diga que representa un rbol gena a erador en el contexto de simplex especializado en redes. b) Utilice fase I al problema anterior para encontrar una solucin bsica factible. o a c) Comente de que manera resolver el problema si no pudiese aplicar fase I. a d) Explique como proceder a continuacin para encontrar el ptimo del problema origa o o inal, utilizando los resultados de fase I. Solucin o a a) Un rbol generador equivale a una base para simplex especializado a redes. Para nuestro ejemplo tenemos por ejemplo:

IN34A: Optimizacin o

Pag. 5

b) Para plantear Fase I, agregamos un nodo articial y arcos de modo que lo unan con cada uno de los nodos ya existente. Adems debemos denir la siguiente estructura de a costos: c12 c13 c32 c24 c34 =0 =0 =0 =0 =0 c1 c2 c3 c4 =1 =1 =1 =1

Iteracion 1: Comenzamos a iterar con nuestra solucin bsica factible inicial compuesta por o a los arcos asociados al nodo articial cuyos ujos iniciales se determinan de modo que el problema sea factible (dado que jamos los ujos por los arcos ya existentes en sus cotas inferiores):

Base: f1 , f2 , f3 , f4 Observacin: Las lineas completas denotarn los ujos bsicos y las lineas puno a a teadas denotarn el resto de los ujos. a Condicin de Optimalidad: o Flujos Bsicos a (f1 ) (f2 ) (f3 ) (f4 ) c1 c2 c3 c4 = 1 1 + = 1 + 2 = 1 + 3 = 1 + 4 =0 =0 =0 =0

Haciendo = 0: 1 = 1 2 = 1 3 = 1 4 = 1

IN34A: Optimizacin o Flujos No Bsicos a (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 0 0 (f12 (f13 (f32 (f24 (f34 = l12 ) = l13 ) = l32 ) = l24 ) = l34 )

Pag. 6

Variable que Entra: Puede entrar tanto (1,2) como (1,3) pues ambos violan la optimalidad en la misma cantidad. Tomemos por ejemplo que entre (1,2). Variable que Sale: Para ver cual sale analizamos el ciclo que se forma al agregar el arco (1,2) al rbol generador que es nuestra base actual: a

mx a 12 mx a 2 mx a 1

= 10 = 4 = 14

m { n

mx a ij }

= 4 f2 Sale de la base

Iteracion 2: Solucin bsica factible: o a

Base: f12 , f1 , f3 , f4 Condicin de Optimalidad: o

IN34A: Optimizacin o Flujos Bsicos a (f12 ) (f1 ) (f3 ) (f4 ) c12 = 1 1 + 2 = 0 c1 = 1 1 + = 0 c3 = 1 + 3 = 0 c4 = 1 + 4 = 0

Pag. 7

Haciendo = 0: 1 2 3 4 =1 =1 = 1 = 1

Flujos No Bsicos a (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 0 0 0 (f13 (f32 (f24 (f34 (f2 = l13 ) = l32 ) = l24 ) = l34 ) = l2 )

Variable que Entra: Puede entrar tanto (1,3) como (3,2). Tomemos por ejemplo que entre (1,3). Variable que Sale: Para ver cual sale analizamos el ciclo que se forma al agregar el arco (1,3) al rbol generador que es nuestra base actual: a

mx a 13 mx a 1 mx a 3

= 12 = 10 = 1

m { n

mx a ij }

= 1 f3 Sale de la base

Iteracion 3: Solucin bsica factible: o a

IN34A: Optimizacin o

Pag. 8

Base: f12 , f13 , f1 , f4 Condicin de Optimalidad: o Flujos Bsicos a (f12 ) (f13 ) (f1 ) (f4 ) 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 Bsicos a (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 0 0 0 0 (f32 (f24 (f34 (f2 (f2 = l32 ) = l24 ) = l34 ) = l2 ) = l2 )

Variable que Entra: Puede entrar tanto (2,4) como (3,4). Tomemos por ejemplo que entre (3,4). Variable que Sale: Para ver cual sale analizamos el ciclo que se forma al agregar el arco (3,4) al rbol generador que es nuestra base actual: a

IN34A: Optimizacin o

Pag. 9

mx a 1 mx a 4 mx a 34 mx a 13

= = = =

9 9 10 11

m { n
mx a ij }

= 9 Sale f1 o f4 .

Tomemos arbitrariamente a f1 como variable que sale de la base. Iteracion 4: Solucin bsica factible: o a

Base: f12 , f13 , f34 , f4 Notar que aqu ya logramos w = 0 y por tanto tendriamos una base factible , inicial. Condicin de Optimalidad: o Flujos Bsicos a (f12 ) (f13 ) (f34 ) (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: Optimizacin o Flujos No Bsicos a

Pag. 10

(f32 ) c32 = 0 3 + 2 = 0 0 (f32 = l32 ) (f24 ) c24 = 0 2 + 4 = 0 0 (f24 = l24 ) (f1 ) c1 = 0 1 + = 2 0 (f34 = l34 ) (f2 ) c2 = 0 + 2 = 0 0 (f2 = l2 ) (f3 ) c3 = 0 + 3 = 0 0 (f3 = l3 ) Como ya hab amos predicho, la solucin basica es ptima. o o Finalmente, como en nuestro ptimo se verica que w = 0, tenemos una base o factible. En efecto, w = 0 implica que no existe ujo circulando por arcos (, ) y (, ) y por tanto podemos eliminar el nodo articial . As nuestra base inicial (rbol generador) viene dada por: , a

Notar que esta base es degenerada pues tiene ujos en su cota m nima (f2,3 y f24 ). c) Como es un problema pequeo, podemos encontrar por inspeccion una base factible n inicial, escogiendo un arbol generador y asignando ujos tal que queden el nmero u adecuado de ujos 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: Optimizacin o

Pag. 11

4.2.

Problema 2

La seora Julia es una abnegada madre y debe enviar a sus 10 hijos a la escuela del pueblo. n Para esto, nuestra distinguida dama cuenta con varias alternativas de transporte las que tiene asociado un costo, capacidad m nima y mxima. La seora tiene la impresin de que a n o su actual sistema de transporte no es el ms econmico posible y quiere encontrar una mejor a o alternativa. El sistema que actualmente utiliza la seora Julia para enviar a sus hijos a la n escuela puede resumirse en el siguiente grafo:

Adems, se conocen los costos unitarios de transporte, cota m a nima 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 M nimo) 0 3 0 1 2 3 0 3 U (Flujo Mximo) a 3 11 4 9 10 6 8 6

Con estos datos y considerando como base inicial los ujos f12 , f13 , f34 , f45 y f46 , encuentre la pol tica ptima de env de los hijo de la Sra. Julia a la escuela. o Solucin o Iteracion 1: Tenemos una solucin bsica factible inicial dada por enunciado: o a Observacin: Al igual que en el problema anterior, las lineas completas denotarn los o a ujos bsicos y las lineas punteadas denotarn el resto de los ujos. a a Condicin de Optimalidad: o

IN34A: Optimizacin o

Pag. 12

Base: f12 , f13 , f34 , f45 , f46 Flujos Bsicos a (f12 ) (f13 ) (f34 ) (f46 ) (f45 ) 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

Evaluando en los cij dados por la tabla de costos y haciendo 4 = 0: 2 1 3 6 5 =8 = 10 =6 = 5 = 1

Flujos No Bsicos a (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 )

Variable que Entra: Entra f24 ya que es el que viola la optimalidad en mayor magnitud. Variable que Sale: Para ver cual sale analizamos el ciclo que se forma al agregar el arco (2,4) al rbol a generador que es nuestra base actual:

IN34A: Optimizacin o

Pag. 13

mx a 24 mx a 12 mx a 13 mx a 34

= = = =

8 2 6 7

m { n
mx a ij }

= 2 f12 Sale de la base

Iteracion 2: Solucin bsica factible: o a

Base: f24 , f13 , f34 , f45 , f46 Condicin de Optimalidad: o a Flujos Bsicos (f13 ) (f24 ) (f34 ) (f46 ) (f45 ) c13 c24 c34 c46 c45 = 4 1 + 3 = 4 2 + 4 = 6 3 + 4 = 5 4 + 6 = 1 4 + 5 =0 =0 =0 =0 =0

Haciendo 4 = 0: 1 2 3 6 = 10 =4 =6 = 5

IN34A: Optimizacin o 5 = 1 Flujos No Bsicos a (f12 ) (f23 ) (f56 ) c12 = 2 1 + 2 c23 = 1 2 + 3 c56 = 3 5 + 6 = -4 = 3 = -1 0 0 < 0 (f12 = u12 ) (f23 = l23 ) (f56 = l56 )

Pag. 14

Variable que Entra: La unica variable que no cumple con el criterio de optimalidad es f56 y por tanto ella entra a la base. Variable que Sale: Para ver cual sale analizamos el ciclo que se forma al agregar el arco (5,6) al rbol a generador que es nuestra base actual:

mx a 56 mx a 46 mx a 45

= 3 = 7 = 3

m { n

mx a ij }

= 3 Pueden salir de la base tantof45 como f56

Aqu podr , amos realizar la iteracin 3 considerando que sale de la base f45 o que lo hace o f56 y en ambos casos se debe llegar al mismo resultado. Para mostrarlo, terminaremos de resolver el problema por los 2 caminos: Iteracion 3.a: f56 sale de la base. Solucin bsica factible: o a Condicin de Optimalidad: o Flujos Bsicos a (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: Optimizacin o

Pag. 15

Base: f13 , f24 , f34 , f46 , f45 (f45 ) c45 = 1 4 + 5 = 0 Eligiendo arbitrariamente 4 para hacerlo 0: 1 2 3 6 5 = 10 =4 =6 = 5 = 1

Flujos No Bsicos a (f12 ) (f23 ) (f56 ) c12 = 2 1 + 2 c23 = 1 2 + 3 c56 = 3 5 + 6 = -4 = 3 = -1 0 0 0 (f12 = u12 ) (f23 = l23 ) (f56 = u56 )

Por lo tanto la solucin es ptima. Observar que este ptimo es degenerado o o o pues en la base hay ujos que estan en su cota (f45 ) Iteracion 3.b: f45 sale de la base. Solucin bsica factible: o a

Base: f13 , f24 , f34 , f46 , f56

IN34A: Optimizacin o

Pag. 16

Observacin: Notar que los ujos son idnticos a los de la iteracin 3.a en que consido e eramos que f56 sal de la base. La unica diferencia radica en que ujo consideramos a como bsico. a o Condicin de Optimalidad: Flujos Bsicos a (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

Eligiendo arbitrariamente 4 para hacerlo 0: 1 2 3 6 5 = 10 =4 =6 = 5 = 2

Flujos No Bsicos a (f12 ) (f23 ) (f45 ) c12 = 2 1 + 2 c23 = 1 2 + 3 c45 = 1 4 + 5 = -4 = 3 = -1 0 0 0 (f12 = u12 ) (f23 = l23 ) (f45 = u45 )

Por lo tanto la solucin es ptima y nuevamente es degenerada. o o

4.3.

Problema 3

Cachiyullo F.C, gracias a la gran actuacin de su jugador estrella Marcel Salas, ha tenido un o excelente rendimiento en el ultimo torneo lo que lo ha llevado a disputar la nal del torneo en la localidad de Pelotillehue. Las posibilidades de xito del equipo en dicho encuentro, e dependen en gran medida del apoyo que pueda brindarle el pblico al equipo, por lo cual u los dirigentes necesitan saber a cuantos hinchas pueden transportar como mximo desde el a 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 mximas de transporte por cada arco y no existen a cotas inferiores para el transporte en cada uno de ellos.

IN34A: Optimizacin o

Pag. 17

Solucin o Para empezar a resolver el problema necesitamos una solucin factible, pero como no hay o restricciones de ujo m nimo en ningun arco, tenemos una solucin trivial dada por fij = 0 o para todo (i,j). Iteracion 1. Solucin factible trivial: o

Construimos un grafo auxiliar y luego buscamos un camino que una C con P. En nuestro caso, en el grafo auxiliar, elegimos el camino C 2 5 P.

El aumento del ujo por el camino escogido viene dado por: = m n{1000 0, 500 0, 900 0} = m n{1000, 500, 900} = 500

IN34A: Optimizacin o Iteracion 2.

Pag. 18

Solucin factible obtenida aumentando en cada uno de los ujos de los arcos que o pertenecen al camino escogido:

Construimos un grafo auxiliar y luego buscamos un camino que una C con P. En nuestro caso, en el grafo auxiliar, elegimos el camino C 1 4 P.

El aumento del ujo por el camino escogido viene dado por:

= m n{800 0, 400 0, 600 0} = m n{800, 400, 600} = 400 Iteracion 3. Solucin factible dada por el aumento en por el camino escogido: o

IN34A: Optimizacin o

Pag. 19

Construimos un grafo auxiliar y luego buscamos un camino que una C con P. En nuestro caso, en el grafo auxiliar, elegimos el camino C 2 3 5 P. El aumento del ujo por el camino escogido viene dado por:

= m n{1000 500, 700 0, 300 0, 900 500} = m n{500, 700, 300, 400} = 300 Iteracion 4. Solucin factible dada por el aumento en por el camino escogido: o

Construimos un grafo auxiliar y luego buscamos un camino que una C con P. En nuestro caso, en el grafo auxiliar, elegimos el camino C 1 3 4 P.

El aumento del ujo por el camino escogido viene dado por:

IN34A: Optimizacin o

Pag. 20

= m n{800 400, 500 0, 800 0, 600 400} = m n{400, 500, 800, 200} = 200 Iteracion 5. Solucin factible dada por el aumento en por el camino escogido: o

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 ptimo. o

Finalmente, podemos decir que hasta 1400 hinchas apoyarn al Cachiyullo F.C en la a nal del torneo.

También podría gustarte