A16cortada Redes

download A16cortada Redes

of 27

description

opti redes

Transcript of A16cortada Redes

  • Pontificia Universidad Catlica de Chile Escuela de Ingeniera Departamento de Ingeniera Industrial y de Sistemas ICS1102 Optimizacin 2do Semestre 2008 secciones 2,3 y 4 PROFESORES: Juan Carlos Muz, Pablo Rey , Sergio Toloza AYUDANTE: Mathias Klapp

    Ayudanta N16: Optimizacin en Redes / Programacin Dinmica

    PROBLEMAS DE FLUJO EN REDES

    Los problemas de Flujo en redes, son problemas lineales con una estructura particular que hace ms fcil su resolucin. Cada problema se representa en una red

    ( , )G N A , en donde N es conjunto de nodos y A es el conjunto de arcos dirigidos. Por otro lado n es el nmero de nodos y m el nmero de arcos. Ejemplo de Red G(N,A):

    En este caso: { } { }: 1,2,3,4 : (1,2), (1,3), (1,4), (2,5), (3,2), (3,5), (4,3), (4,5) 4, 8N A n m= =

    Notar la importancia de la direccin del arco en la notacin.

  • 1. Problema de flujo de redes a mnimo costo (PFMC): Minimiza el costo total asociado a movimientos de flujo en una red y es el problema bsico de redes, de aqu salen todos los dems. La formulacin al problema es:

    ( , )

    /( , ) /( , )

    :

    . . (*)

    0 ( , )

    ij iji j A

    ij ki ij i j A k k i A

    ij

    Min c Xsa

    X X b i NX i j A

    =

    Donde:

    ,i jX : Es la variable del problema y representa el flujo por el arco (i , j). ib : Es la oferta generalizada del nodo i ( 0> si es nodo oferta, 0< si es demanda, 0 si es trasbordo). ,i jc : Costo unitario de pasar flujo por arco ( , )i j

    La restriccin (*) se llama Balance de Masa: Para cada uno de los nodos, todo el flujo que sale de este (

    /( , )ij

    j i j AX

    ) menos todo el flujo que entra a este (

    /( , )ki

    k k j AX

    ) es igual a la oferta generalizada del nodo ( ib ). Notas: 1) Un arco inexistente tiene costo infinito (inutilizable bajo cualquier circunstancia) 2) El problema debe estar balanceado

    10

    n

    ii

    b=

    = 3) Si existen capacidades o flujos mnimos en los arcos, se agrega la siguiente

    restriccin: ij ij ijl X u . En donde ijl es el flujo mnimo y iju el flujo mximo. 4) Unimodularidad: La matriz A del Dominio cumple con una estructura particular en

    donde los elementos de sus columnas tienen exactamente un 1, un -1 y ceros. Esto asegura que si las ofertas generalizadas son enteras, la solucin ptima estar obligada a serlo. 5) Una solucin bsica factible en estos problemas se llama rbol bsico factible y es de mxima envergadura (alcanza a todos los nodos). Existen siempre n-1 flujos bsicos que conforman el rbol (Hay una restriccin L.D.). La base nunca tiene ciclos.

  • Problema 1 (Planteamiento a un problema de redes): Una fbrica tiene que planificar la produccin para los 4 siguientes periodos. En cada periodo hay una capacidad de produccin ordinaria y extraordinaria. Los costos unitarios de producir en horas ordinarias y extraordinarias son $a y $b respectivamente, con a < b. Adicionalmente se arrienda una bodega con la opcin de guardar produccin de un periodo a otro. El costo de inventario para un periodo es $c por unidad de producto. En cada periodo se debe satisfacer una demanda de Dj unidades, con j = (1,..,4) y se poseen capacidades mximas de produccin (ordinaria y extraordinaria) dadas por Rj y Sj respectivamente, con j = (1,..,4). Suponga que la Oferta total es mayor que la Demanda total. Plantee el problema que minimice los costos de la empresa como un PFMC. Respuesta: Pensemos primero en el periodo 1, veamos la siguiente red:

    El nodo 1 representa la oferta en horas ordinarias del periodo 1 (Ofrece su capacidad R1), el nodo 3 representa la oferta en horas extraordinarias del periodo 1 (S1) y el nodo 2 representa la demanda en el periodo 1 (demanda D1). En los arcos (1,2) y (2,3) se modelan los envos a la demanda con los respectivos costos de produccin. Esto se puede hacer para cada periodo.Cmo representamos lo que tenemos en bodega? Lo que tenemos en bodega cuesta a b producirlo y adems cuesta c` llevarlo de un periodo a otro. Esto se puede representar as:

  • Entre las demandas se han colocado arcos que representan el costo de bodega c por periodo.

    Por ejemplo un producto hecho en el periodo 1 en horas ordinarias y que se guarda para la demanda del periodo 3, toma la siguiente ruta: 1-2-5-8. Es decir cuesta a +2c, su produccin ms 2 periodos en bodega. Estamos listos? No! Hay que balancear, puede ser que las ofertas no distribuyan toda su capacidad (sobre oferta). Agregamos un nodo que absorba la sobreoferta a costo cero, es decir, lo que no se produjo en cada oferta queda representado en esos arcos. Debe demandar: 4 4 4

    1 1 1i i i

    i i i

    A R S D= = =

    = + La red queda:

    Formulacin del problema de Optimizacin Equivalente:

    12 32 25 45 65 58 78 98 (8)(11) (10)(11) (12)(11):Min aX bX cX aX bX cX aX bX cX aX bX+ + + + + + + + + + s.a: Nodo 0 01 03 04 06 07 09 0(10) 0(12)X X X X X X X X A+ + + + + + + = Nodo 1 12 10 1X X R+ = Nodo 2 25 12 32 1X X X D = Nodo 3 32 30 1X X S+ = Nodo 4 45 40 2X X R+ = Nodo 5 52 25 45 65 2X X X X D = Nodo 6 65 60 2X X S+ = Nodo 7 78 70 3X X R+ = Nodo 8 8(11) 58 78 98 3X X X X D = Nodo 9 98 90 3X X S+ = Nodo 10 (10)(11) (10)0 4X X R+ = Nodo 11 8(11) (10)(11) (12)(11) 4X X X D = Nodo 12 (12)(11) (12)0 4X X S+ = No negatividad 0 ( , )ijX i j A

  • 2. El problema de transporte (PT) Es un caso particular del PFMC y por lo tanto se resuelve como tal. Se tiene m productores que desean enviar sus productos a mnimo costo a n consumidores:

    { }{ }

    1 1

    1

    1

    : s.a.

    1,...., (1)

    1,...., (2)0 ( , )

    m n

    ij iji j

    n

    ij ijm

    ij ji

    ij

    Min c X

    X S i m

    X D j nX i j

    = =

    =

    =

    =

    =

    Donde: ijX : Flujo desde el productor i hacia la demanda j (variable del problema) iS : Oferta del productor i. jD : Demanda del consumidor j.

    ijC : costo unitario de transporte de productor i a demanda j. Restricciones: Balances de masa (1) La suma de todo el flujo saliente del productor i es igual a su oferta. (2) La suma de todo el flujo entrante al consumidor j es igual a su demanda de este. Notas Grficamente el problema queda como un grafo bipartito, es decir un grafo en donde todos los arcos van de un subconjunto X de nodos a otro Y. Con X U Y = N. El problema debe estar balanceado:

    1 1

    m n

    i ji jS D

    = =

    =

  • Problema 2: Problema del Banquetero Un banquetero tiene que programar banquetes para N das. En cada da hay una demanda por manteles Di. Para Abastecerse puede recurrir a 2 servicios de lavado: Lavado rpido a costo $a por unidad (del da para el siguiente) y lavado lento a costo $b por unidad (del da para el subsiguiente). Adems siempre se puede comprar manteles a un costo $c por unidad. En el mercado existen M0 manteles y asuma un stock inicial de S0 manteles limpios. Suponga que b < a < c. Modele el problema minimizando costos a travs de un Problema de Transporte (dibuje la red). Respuesta: En este caso las demandas estn claras. Cada da representa una demanda. As representamos cada da por un nodo que demanda Dj. j={1,..,N} Las ofertas: 1) Un nodo de oferta M, representa el mercado. Este nodo ofrece M0. 2) Un nodo de oferta S, el Stock. 3) Un nodo de oferta k por lo que se mand a lavar el da k, que queda a disposicin

    para ser reutilizado en los prximos das. Ojo: k = {1,....,N-1} (El ltimo da no se manda a lavar). Los costos:

    1) El costo de la oferta del mercado M hacia las demandas es c. 2) El costo del Stock a cualquier demanda es 0. 3) El costo de las ofertas k son a hacia las demandas del da k+1 y b hacia los das `k+2` en adelante.

    Luego la red es la siguiente:

  • Estamos listos? Falta balancear el problema. Agregamos un nodo de demanda artificial que absorba todo lo que se ofrece y no llega a las demandas a costo cero. Debe demandar : 10 0 0 0

    1 1

    N Nj j N

    j jM S D D M S D

    = =

    + + = + + El grafo queda:

  • 3. El Problema de ruta mnima (PRM): Consiste en encontrar la ruta mnima desde un nodo O a todos los dems n-1 nodos. Tambin es un subconjunto del PFMC y se puede resolver como tal:

    { }

    ( , ): . .

    1

    1 0 (i,j) A

    ij iji j A

    Oj kOj N k N

    ij kij N k N

    ij

    Min c X s a

    X X n

    X X i N O

    X

    =

    =

    El nodo origen ofrece n-1 pulsos y cada destino demanda 1 pulso. As el resultado del problema ser la ruta mnima del nodo 0 a cada uno de los destinos. Si bien se puede resolver por SIMPLEX en redes, existe un algoritmo especializado llamado Algoritmo de Dijkstra: Para implementarlo se define: P : Vector de nodos predecesores D : Vector de distancias desde el origen C : Conjunto de nodos abiertos k : ndice del nodo pivote Algoritmo: Paso 1: Inicializacin: { }0,..., 1C N n= = ( ) 1 ( ) 1,.., 1 P i D i i n= = = (0) 1 (0) 0P D= = 0k = Pasa 2: Iteracin Mientras (C ) { Para todo j tal que j C :

    Si ( ) ( ) kjD j D k C> + ( ) ( ) ( )kjD j D k C P j k= + = { }

    { }: D(i)=Min ( ),C C kk i D j j C= =

    }

  • Problema 3: Se pide encontrar el camino ms corto del nodo 1 al resto. En la siguiente red se representan los distintos caminos que se pueden realizar con los respectivos costos en arcos.

    Respuesta: Con el algoritmo de Dijkstra podemos obtener el resultado:

    Iteracin Inic. 2 3 4 5 6 7 Nodo P D P D P D P D P D P D P D 1 1 0 2 -1 1 5 1 5 1 5 1 5 4 4 3 -1 1 1 4 -1 - - 5 3 5 3 5 -1 1 1 1 1 6 -1 - 3 3 5 2 7 -1 - - 5 10 6 9 4 8 4 8 C 1,2,3,4,5,6,7 2,3,4,5,6,7 2,4,5,6,7 2,4,6,7 2,4,7 4,7 7 k 1 3 5 6 4 2 7

    Luego las rutas ptimas son:

  • Es decir: 1 a 2: 1542 1 a 3: 13 1 a 4: 154 1 a 5: 15 1 a 6: 156 1 a 7: 1547 Problema 4: Planteado Resolver el siguiente problema de rutas mnimas de 1 a todos los nodos.

    4. Problema de asignacin de tareas (PAT) Es un problema de Transporte, y por lo tanto un PFMC, en donde cada productor representa a la tarea i y cada demanda el encargado j en realizar tareas. El costo en el arco (i,j) es el costo del encargado j en realizar la tarea i. Los flujos iguales a 1 indican la asignacin de la tarea i al individuo j:

  • Notas: Es un problema entero, pero como los problemas de redes siempre tienen soluciones enteras no hay problema. Las restricciones indican que para cada tarea solo un individuo la realizar y que cada individuo debe realizar exactamente una tarea. Debe haber igual nmero de tareas que de encargados a realizarlas (Balance) 5. Problema de flujo mximo (PFM):

    El problema consiste en obtener el mximo flujo posible de transportar desde un nodo O hacia otro nodo D sujeto a capacidades en los arcos:

    { },

    : . .

    0 ,0 ( , )

    Oj kOj N k N

    Dj kDj N k N

    ij kij N k N

    ij i j

    Max F s aX X F

    X X F

    X X i N O D

    X U i j A

    =

    =

    =

    Donde

    ,i jU : capacidad del arco No es un PFMC (ahora la oferta generalizada es variable, no existen costos al pasar por arcos y maximiza), pero existe un PFMC equivalente dado por:

    { },

    : . .0

    0

    0 ,0 ( , )

    DO

    Oj kO DOj N k N

    Dj kD DOj N k N

    ij kij N k N

    ij i j

    Min X s aX X X

    X X X

    X X i N O D

    X U i j A

    =

    + =

    =

    Es un PFMC con todos los arcos a costo cero menos (D,O) a costo -1.

  • SIMPLEX DE REDES: Tomemos el PFMC general:

    ( , )

    /( , ) /( , )

    :. .

    (*)0 ( , )

    ij iji j A

    ij ki ij i j A k k i A

    ij

    Min c X

    s aX X b i N

    X i j A

    =

    El problema dual es:

    Este problema: No tiene solucin nica, si *piur es ptimo, * *1ctepi +ur r tambin lo es, por lo que

    podemos fijar una variable a nuestro antojo. (Ejercicio: demostrar esto) Los costos reducidos del problema original son las holguras del problema Dual. As: Si

    ,i jX est en la base su costo reducido es cero, por lo tanto:

    ,i j i jCpi pi = Si

    ,i jX no est en la base su costo reducido es distinto de cero y vale:

    , ,i j i j i jr C pi pi= + Si todos los costos reducidos son mayores que cero, entonces, estaremos en el ptimo......

  • Problema 5 (Introductorio al SIMPLEX de Redes): Resolver la siguiente red de flujos (costos de arcos en azul):

    Dado el siguiente rbol bsico factible (flujos bsicos en letra ms grande y color negro):

    Respuesta: Se tiene: : [4,2, 1, 5]Tb = y [2, 5, 1,4,6,3,7]TC = . Vemos que el problema est balanceado: 4+2-1-5=0. El rbol de envergadura mxima tiene 3 flujos bsicos. El problema de programacin lineal es:

    1,2 1,3 2,3 2,4 3,2 3,4 4,1

    1,2 1,3 4,1

    2,3 2,4 1,2 3,2

    3,2 3,4 1,3 2,3

    4,1 3,4 2,4

    ,

    : 2 5 4 6 3 7. :

    421

    50 ( , )i j

    Min X X X X X X Xs aX X XX X X XX X X XX X XX i j A

    + + + +

    + =+ =+ = =

  • Resolucin: Iteracin 1: Clculo de las variables duales: Usando la frmula para variables bsicas

    ,i j i jCpi pi = y fijando 4 0pi = , se tiene el siguiente sistema de ecuaciones:

    4

    2 4

    1 2

    2 3

    0421

    pi

    pi pi

    pi pi

    pi pi

    =

    =

    =

    =

    1

    2

    3

    4

    6450

    pi

    pi

    pi

    pi

    =

    =

    =

    =

    Por lo que queda:

    Costos reducidos de variables no bsicas: De la frmula

    , ,i j i j i jr C= + calculamos los costos reducidos no bsicos: r4,1 = 7-0+6=13 r3,2 = -1-5+4= - 2 r3,4 = 3-5+0= -2 r1,3 = -5-6+5= - 6 Entremos a X1,3 a la base.

  • Actualizacin de la Base:

    La variable entrante sube en X unidades (arco (1,3)). Vemos que se cierra un ciclo, que debe ser compensado para mantener los balances de masa en cada nodo. En este caso: Si entra X por (1,3) al nodo 3, debe dejar de entrar X por (2,3) Si deja de salir X por (2,3) en el nodo 2, debe dejar de entrar X por (1,2) Si deja de salir X por (1,2) en el nodo 1, debe salir X por (1,3) Y se completa el ciclo de compensacin..... Cunto vale X? X = Min (1,4), es decir hasta que alguna variable salga de la base hacindose cero. En este caso X2,3 sale primero y X = 1. 2da Iteracin:

    4

    2

    1

    3

    0

    466 ( 5) 11

    luego =

    = = = =

    Tomando un costo reducido no bsico negativo, p. ej: r3,4 = 3-11+0= - 8. Por lo que X3,4 entra a la base.

  • Luego X = Min(5,3,:) = 3 X1,2 deja la base. 3ra Iteracin:

    2

    3

    1

    4 0 43 0 35 3 2

    = + = = + = = + =

    Luego r2,3= -1-4+3 = -2 X2,3 entra a la base.

    X=Min(2,:)=2 X2,4 sale de la base.

  • 4ta Iteracin :

    4

    3

    2

    1

    0:

    5 0 51 3 25 3 2

    Luego =

    = + = = + = = + =

    Viendo los costos reducidos no bsicos: r1,2= 2+2-2 = 2 r3,2 = 6-3+2 = 5 r4,1 = 7+0+(-2) = 5 r2,4 = 4+2+0 = 6 Todos mayores a cero Solucin es ptima y nica. Valor ptimo igual a 3*5+(-5)*4+(-1)*2 = - 7.

  • Problema 6 (Con solucin degenerada): Resolver la siguiente red de flujo con costos en los arcos:

    Con: [ ]2, 0,1, 3Tb = y con X14 = 2, X32 = 1, X24 = 1 como base factible inicial. Respuesta: Iteracin 1: Se tiene la siguiente base inicial factible:

    4 0pi = 1 2 32, 4, 9pi pi pi= = = . Calculando costos reducidos: 1,2 1 2

    1,3 1 3

    2,3 2 3

    3,4 3 4

    1 1 2 4 33 3 2 9 106 6 2 9 131 1 9 0 8

    r

    r

    r

    r

    pi pi

    pi pi

    pi pi

    pi pi

    = + = + =

    = + = + =

    = + = + =

    = + = + =

    Entramos 3,4X

    X = 1.

  • Vemos que tenemos un empate en la salida de variables. Puede salir tanto 3,2X como 2,4X , por lo tanto tendremos en la base un valor bsico igual a cero.Solucin degenerada. Procedemos escogiendo cualquiera de las 2 variables, saquemos por ejemplo 3,2X . Iteracin 2:

    4 0pi = 1 2 32, 4, 1pi pi pi= = = . Calculando costos reducidos: 1,2 1 2

    1,3 1 3

    2,3 2 3

    3,2 3 2

    1 1 2 4 33 3 2 1 26 6 2 1 51 1 1 4 4

    r

    r

    r

    r

    pi pi

    pi pi

    pi pi

    pi pi

    = + = + =

    = + = + =

    = + = + =

    = + = + =

    Tenemos solucin ptima con valor ptimo = 2*2+0*4+1*1 = 3

  • Problema 7 (ms difcil): Resuelva el siguiente problema de flujo de redes:

    Respuesta: No podemos comenzar a resolver el ejercicio, ya que la red no est balanceada (6+2+3-10=1). Debemos agregar un nodo que absorba toda la sobre oferta a costo 0.

    Ahora est balanceado y podemos partir. Pero no tenemos una solucin bsica inicial factible: Cmo partimos? 1) Podemos obtener una solucin bsica al ojo (Debe tener n-1 flujos bsicos, para problemas pequeos se puede). 2) Caso ms formal: Hay que hacer FASE I! Agregamos un nodo artificial. Este nodo absorber y demandar todo lo que se pida/ofrezca desde los otros nodos de la red. Su oferta generalizada es 0 Todas los arcos conectados con este nodo son a costo 1. Satisfacen todas las demandas absorben todas las ofertas (flujos artificiales). El resto de los arcos tiene por el momento costo cero. La idea es sacar los flujos artificiales de la base.

  • Fase I: El problema queda

    Iteracin 1: Nuestra solucin inicial factible para FASE I:

    1 2 3 4 00 1, 1, 1, 1, 1Api pi pi pi pi pi= = = = = = 1,4 0 1 ( 1) 2r = + = 1,4X entra.

    X = 6 sale 1,AX

  • Iteracin 2:

    1 2 3 4 00 1, 1, 1, 1, 1Api pi pi pi pi pi= = = = = = 2,4 0 1 ( 1) 2r = + = 2,4X entra.

    X = 2 sale 2,AX Iteracin 3:

    1 2 3 4 00 1, 1, 1, 1, 1Api pi pi pi pi pi= = = = = = 3,4 0 1 ( 1) 2r = + = 3,4X entra.

  • X = 2 sale ,4AX Iteracin 4:

    1 2 3 4 00 1, 1, 1, 1, 1Api pi pi pi pi pi= = = = = =

    3,0 0 1 ( 1) 2r = + = 3,0X entra.

    X = 1 3,AX sale y terminamos Fase I.

    Ya no quedan flujos artificiales....

  • Fase II: Retomamos los costos originales y eliminamos el nodo artificial Iteracin 1:

    4 1 2 3 00 7, 2, 4, 4pi pi pi pi pi= = = = = 1,2 1 7 2 4r = + = 1,2X entra.

    X = 6 sale 1,4X Iteracin 2:

    4 1 2 3 00 3, 2, 4, 4pi pi pi pi pi= = = = =

    1,0 1,3 1,4

    2,0 2,3

    3,2

    4,3

    0 3 4 1, 3 3 4 4, 7 3 0 4 0 2 4 2, 2 2 4 43 4 2 14 0 4 8

    r r r

    r r

    r

    r

    = + = = + = = + =

    = + = = + =

    = + =

    = + =

    Estamos en el ptimo con valor ptimo: 1*6+2*8+4*2+0*1 = 30.

  • Problema 8: Se pide encontrar el camino ms corto del nodo 1 al todo el resto. En la siguiente red se representan los distintos caminos que se pueden realizar con los respectivos costos de viaje en cada arco. Se debe resolver por SIMPLEX de redes.

    Respuesta: Se procede de la misma manera que si fuera un problema de flujo de redes a mnimo costo, es decir obteniendo costos reducidos a travs de las variables duales: Iteracin 1: Obtenemos una solucin inicial factible al Ojo debido a la sencillez del problema (formalmente deberamos hacer Fase I).

    1 0pi =

    2

    3

    4

    5

    6

    7

    5131310

    pi

    pi

    pi

    pi

    pi

    pi

    =

    =

    =

    =

    =

    =

    4,2 1 ( 3) ( 5) 1r = + = 4,2x entra 1,2x sale. OJO En el PRM, al hacer 1 0pi = , las dems variables duales nos indican el costo de la ruta que se tiene hasta el momento con signo cambiado. Por ejemplo 7 10pi = , esto significa que la ruta que tenemos ahora de 1 a 7, es decir 1367, cuesta 10

  • Iteracin 2: (Vemos que la ruta a 2 mejor de costo 5 a 4)

    1 0pi =

    2

    3

    4

    5

    6

    7

    4131310

    pi

    pi

    pi

    pi

    pi

    pi

    =

    =

    =

    =

    =

    =

    5,6 1 ( 1) ( 3) 1r = + = 5,6x entra 3,6x sale. Iteracin 3: (Vemos que las rutas a 6 y a 7 mejoraron)

    1 0pi =

    2

    3

    4

    5

    6

    7

    413129

    pi

    pi

    pi

    pi

    pi

    pi

    =

    =

    =

    =

    =

    =

    4,7 5 ( 3) ( 9) 1r = + = 4,7x entra 6,7x sale.

  • Iteracin 4: (Vemos que la ruta a 7 mejor)

    1 0pi =

    2

    3

    4

    5

    6

    7

    413128

    pi

    pi

    pi

    pi

    pi

    pi

    =

    =

    =

    =

    =

    =

    Obtenemos algn costo reducido negativo: 1,2 2,5 3,5

    3,6 5,7 6,7

    5 (0) ( 4) 1 2 ( 4) ( 1) 5 4 ( 1) ( 1) 4 2 ( 1) ( 2) 1 9 ( 1) ( 8) 2 7 ( 2) ( 8) 1

    r r r

    r r r

    = + = = + = = + =

    = + = = + = = + =

    No pudimos, son todos positivos por lo que estamos en el ptimo. Luego: min (1,2) 4ruta = , min (1,3) 1ruta = , min (1,4) 3ruta = , min (1,5) 1ruta = , min (1,6) 1ruta = ,

    min (1,7) 8ruta =