Introduccin a la programacin lineal y lineal entera - PowerPoint PPT Presentation

1 / 154
About This Presentation
Title:

Introduccin a la programacin lineal y lineal entera

Description:

Introducci n a la programaci n lineal y lineal entera. Escuela ... Facultad de Ciencias Exactas y Naturales. Universidad de Buenos Aires. irene_at_dc.uba.ar ... – PowerPoint PPT presentation

Number of Views:1277
Avg rating:3.0/5.0
Slides: 155
Provided by: ire584
Category:

less

Transcript and Presenter's Notes

Title: Introduccin a la programacin lineal y lineal entera


1
Introducción a la programación lineal y lineal
entera
  • Escuela Regional de Computación
  • Universidad Nacional de Asunción
  • Asunción, Paraguay
  • 20 al 24 de julio de 2008
  • Irene Loiseau
  • Departamento de Computación
  • Facultad de Ciencias Exactas y Naturales
  • Universidad de Buenos Aires
  • irene_at_dc.uba.ar

2
  • De qué trata este curso?
  • Estudiar métodos que sirven para resolver
    problemas que pueden modelarse como problemas de
    programación lineal o lineal entera.

3
  • Qué significa formular y usar un modelos
    matemáticos para resolver problemas reales?.
  • Qué etapas incluye esta tarea?.
  • Cuándo sirve un modelo matemático?

4
  • Qué problemas vamos a modelar y resolver en este
    curso?.
  • Qué es Programación lineal?. Qué es
    optimización?.
  • Porqué se llama programación lineal?.
  • Dantzig, Kantorovich, el premio Nobel de
    economía de 1975..
  • Qué temas se estudian en Investigación Operativa
    (Operations Research)?.
  • De todos los temas que abarca la Investigación
    Operativa en este curso estudiaremos SOLO
    problemas de programación lineal y lineal
    entera (con esto tenemos algunos métodos
    para resolver algunos problemas de Optimización
    Combinatoria)

5
Bibliografía
  • Bazaraa,M., Jarvis,J., Sherali,H.,Linear
    Programming and Networks Flows, John Willey
    Sons, 1990.
  • Chvatal, V., Linear Programming, Freeman, 1983.
  • Cook, W., Cunningham, Pulleyblank, Schrijver, A.,
    Combinatorial Optimization, John Willey .Sons,
    1998.
  • Williams, H.P., Model Building in Mathematical
    Programming, John Willey .Sons, 1999.
  • Winston,W., Operations Research, Applications and
    Algorithms, Duxbury Press, 1994.
  • Wolsey,L., Integer Programming, John Willey
    .Sons, 1998.

6
  • El material distribuido en castellano
    corresponde al libro
  • Castillo, E., Conejo,A., pedregal, P., Gracía,
    R., Alguacil, N. Formulación y resolución de
    modelos de programación matemática en ingeniería
    y ciencias.
  • disponible por internet.
  • Algunos de los libros clásicos de Investigación
    Operativa están traducidos al castellano.

7
  • De la página del LINGO
  • http//www.lindo.com
  • se puede bajar libremente el libro
  • Optimization Modeling with LINGO (2006)
  • que contiene numerosos ejemplos de aplicaciones y
    ejercicios

8
Problema de la dieta
  • Ana quiere saber cuanto es el mínimo que puede
    gastar para alimentarse saludablemente, y obtener
    las 2000 kcal, 55 grs de proteínas y 800 mg de
    calcio que necesita cada día (no está tomando en
    cuenta la necesidad de hierro ni de
    vitaminas!!). Para eso ella quiere elegir entre
    las siguientes comidas, cuyos datos aparecen en
    la siguiente tabla

9
(No Transcript)
10
  • Por otro lado Ana quiere tener una alimentación
    variada. No quiere comer todos los días lo
    mismo, cómo máximo quiere comer
  • 4 porciones de cereal
  • 3 porciones de pollo
  • 4 huevos
  • 8 porciones de leche
  • 2 porciones de pastel
  • 2 porciones de cerdo con porotos
  • Cómo podemos modelar matemáticamente este
    problema?
  • Este problema tiene aplicaciones reales por
    ejemplo en la fabricación de alimentos
    balanceados para pollos o ganado

11
Planificación de la producción
  • Formular un modelo para optimizar los costos de
    producción de una empresa que produce listones
    de madera en 4 medidas chico, mediano, grande y
    extragrande. Estos listones pueden producirse en
    tres máquinas A, B y C. Cada máquina puede ser
    usada 50 horas semanales y el costo operativo
    por hora de cada una es 30, 50 y 80
    respectivamente. Se necesita producir 10000,
    8000, 6000 y 4000 metros de cada tipo de listones
    por semana.
  • La cantidad de metros que puede producir por hora
    cada máquina está dada en la siguiente tabla

12
(No Transcript)
13
Optimizando beneficios
  • Una compañia petroquímica procesa petróleo para
    producir combustible para aviones y aceite de
    máquina.
  • Cuesta 40 comprar 1000 barriles de petróleo, que
    luego destilados producen 500 barriles de
    combustible para aviones y 500 barriles de
    aceite.
  • Lo que se obtiene de la destilación puede ser
    vendido directamente o ser procesado nuevamente
    con un fraccionador catalítico. Si se vende sin
    el segundo proceso, el combustible para aviones
    se vende a 60 por 1000 barriles y el aceite para
    calentar se vende a 40 por 1000 barriles.
  • Lleva 1 hora procesar 1000 barriles de
    combustible para aviones en el fraccionador
    catalítico, y esos 1000 barriles se venden a
    130.El mismo proceso demora 45 minutos para 1000
    barriles de aceite para calentar, y esos 1000
    barriles se venden a 90.
  • Cada día, se pueden comprar a lo sumo 20000
    barriles de petróleo, y se tienen disponibles 8
    horas del fraccionador catalítico.
  • Formular un modelo matemático que maximice los
    beneficios de la empresa.

14
Problema de programación lineal (PL)
  • maximizar c1 x1 c2 x2 cn xn
  • sujeto a
  • a11 x1 a12 x2 a1n xn b1
  • a21 x1 a22 x2 a2n xn b2
  • .
  • .
  • .
  • am1 x1 am2 x2 amn xn bm
  • xj 0 para j 1,..n
  • (forma standard de un problema de PL)

15
  • Cuando hablamos de Programación Lineal (PL)
    suponemos que las variables xj son variables
    continuas, es decir xj ? R para todo j.
  • Cuando se requiere que las variables sean enteras
    es decir xj ?Z tendremos problemas de
    programación lineal entera (PLE) y cuando sean
    binarias tendremos problemas de programación
    lineal binarios (ó 0-1).
  • Empezaremos viendo como resolver problemas de
    Programación Lineal con variables continuas (PL)

16
  • El problema de PL se puede escribir también
    como
  • Max ?j cj xj
  • sujeto a
  • ?j aij xj bi i 1,..m
  • xj 0 para j 1,..n

17
  • O en forma matricial
  • Max c x
  • sujeto a
  • Ax b
  • x 0
  • donde x es el vector columna de las n variables
    xj, b es el vector columna de m componentes bi y
    A es una matriz de m filas y n columnas con los
    coeficientes de las desigualdades.

18
  • Los problemas de programación lineal pueden ser
    de maximización o minimización, y pueden tener
    restricciones por desigualdad en cualquiera de
    los dos sentidos, o restricciones de igualdad.
    Las variables pueden o no ser nonegativas y/o
    acotadas.
  • Llamaremos forma standard de un problema de
    programación lineal de maximización cuando el
    mismo está expresado usando desigualdades por
    y forma canónica cuando sólo se usan igualdades
    (está notación no es uniforme en los libros!!!).

19
  • Nomenclatura
  • Función objetivo
  • Coeficientes de la función objetivo
  • Variables o variables de decisión
  • Restricciones
  • Coeficientes tecnológicos los coeficientes de la
    matriz A.
  • Restricciones de nonegatividad.
  • Termino de la derecha (right-hand-side)
  • Solución factible
  • Conjunto de soluciones factibles o región
    factible

20
Algunas aplicaciones de programación lineal y
programación lineal entera
  • Problemas de mezcla, fabrica de comestibles
  • Planificación de la producción
  • Manejo de stock
  • Planificación de mantenimiento
  • Planificación de recursos de mano de obra
  • Optimización de refinerías
  • Diseño de componentes de VLSI
  • Determinar tarifas de electricidad
  • Transporte de mercaderías
  • Minimización de desperdicio en el corte de
    materiales
  • Ruteo de vehículos
  • Asignación de tareas
  • Asignación de tripulaciones en empresas de
    transporte aéreo

21
  • Planificación en economía
  • Flujo óptimo en redes
  • Diseño de redes de comunicaciones
  • Asignación de frecuencias en telefonía celular
  • Planificación de campañas publicitarias en TV
  • Planificación de semáforos
  • Secuenciamiento de ADN
  • Doblado de proteínas
  • Otros problemas de biología computacional
  • Etc., etc.

22
  • Cómo representamos la región factible del
    siguiente problema?
  • Maximizar 2 x1 5 x2
  • sujeto a
  • x1 x2 6
  • x1 2 x2 18
  • x1 ,x2 0

23
Solución Geométrica
  • Cómo podemos aprovechar la representación de la
    región factible para resolver geométricamente un
    problema de PL de dos variables? . Cómo resolver
    el problema anterior?.
  • Cómo podemos resolver el siguiente problema?
  • Maximizar x1 3 x2
  • sujeto a
  • x1 x2 6
  • - x1 2 x2 8
  • x1 ,x2 0

24
  • Cuál es la solución del siguiente problema?
  • Minimizar - 2x1 3 x2
  • sujeto a
  • - x1 2 x2 2
  • 2 x1 - x2 3
  • x2 4
  • x1 ,x2 0
  • Qué significa en un modelo de un problema real
    que tengamos una región factible cómo esta?.

25
  • Vemos que si el PL tiene una solución óptima
    finita la misma está en uno de los vértices del
    poliedro que describe la región factible. (esto
    se puede demostrar formalmente)
  • Este método es apropiado sólo para problemas
    pequeños de dos o tres variables, pero es
    importante para entender los problemas de
    programación lineal en general

26
  • Cuántas soluciones óptimas tiene un problema de
    PL ?. Cómo se ve esto en la representación
    geométrica de la región factible?.
  • Una única solución óptima
  • Infinitas soluciones óptimas (región factible
    acotada o no acotada)
  • Ninguna solución óptima la región factible es
    vacía.
  • Ninguna solución óptima la región factible y la
    solución óptima son no-acotadas.
  • Qué significa en un modelo de un problema real
    que se produzcan cada una de estas situaciones?

27
Método Simplex
  • Presentado por Dantzig en 1947 (publicado en
    1949)
  • Uno de los (o él) método de matemática más usados
    para resolver problemas reales.
  • Se usa también como importante herramienta para
    resolver otros problemas de optimización, en
    particular problemas de programación lineal
    entera.
  • Tamaño de los problemas que resolvía entonces y
    ahora.

28
  • Presentaremos en primer lugar con un ejemplo las
    ideas básicas para un problema de PL en la forma
    standard
  • Maximizar 5 x1 4 x2 3 x3
  • Sujeto a

  • 2 x1 3 x2 x3 5
  • 4 x1 x2 2 x3 11 (1)
  • 3 x1 4 x2 2 x3 8
  • x1 , x2 , x3 0

29
  • El método consiste en mejorar iterativamente el
    valor de la función objetivo, revisando sistemas
    de inecuaciones equivalentes al sistema original
    (1) de desigualdades que describe la región
    factible.

30
  • En primer lugar definimos 3 variables nonegativas
    x4, x5, x6 llamadas variables de holgura (slacks)
    que nos transforman el sistema de desigualdades
    en un sistema de igualdades
  • 2 x1 3 x2 x3 x4 5
  • 4 x1 x2 2 x3 x5 11
  • 3 x1 4 x2 2 x3 x6 8
  • Y definimos una variable z que representa el
    valor de la función objetivo
  • z 5 x1 4 x2 3 x3

31
  • Despejamos las variables de holgura y
    reescribimos nuestro sistema
  • x4 5 - 2 x1 - 3 x2 - x3
  • x5 11 - 4 x1 - x2 - 2 x3 (2)
  • x6 8 - 3 x1 - 4 x2 - 2 x3
  • --------------------------------------------------
    ------------------------
  • z 5 x1 4 x2 3 x3

32
  • Entonces nuestro problema se puede reformular
    como
  • Maximizar z
  • Sujeto a
  • x1 , x2 , x3 , x4 , x5 , x6 0
  • Cada solución de problema original determina una
    única solución de este nuevo problema (2).
  • Cada solución de (2) se puede restringir a una
    solución de (1) si no consideramos las variables
    de holgura.
  • Entonces esta correspondencia entre las
    soluciones básicas de ambos sistemas establece
    también una correspondencia entre soluciones
    óptimas.

33
  • Cómo obtenemos de este último sistema (2 )una
    solución factible del problema?.
  • Por ejemplo si ponemos todas las variables de
    decisión en 0, tenemos
  • X1 0, X2 0, X3 0, X4 5, X5 6, X6 8
  • Cuál es el valor de la función objetivo en esta
    solución?
  • z 0
  • Cómo podemos obtener una solución mejor a partir
    de acá?.

34
  • Miremos de nuevo el sistema (2). Cómo podemos
    hacer crecer z?.
  • x4 5 - 2 x1 - 3 x2 - x3
  • x5 11 - 4 x1 - x2 - 2 x3
  • x6 8 - 3 x1 - 4 x2 - 2 x3
  • --------------------------------------------------
    -------------
  • z 5 x1 4 x2 3 x3
  • Si dejamos x2 y x3 fijos en 0 cuánto puede
    crecer x1 sin que la solución deje de ser
    factible o sea sin que ninguna de las variables
    x4 ,, x5 y x6 dejen de ser positivas?.
  • Cuál es la variable que más limita el crecimiento
    de x1?.

35
  • Si x1 crece lo más posible manteniendo la
    factibilidad, o sea hasta tomar el valor 5/2, la
    nueva solución queda
  • x1 5/2 , x2 0 x3 0 , x4 0 x1 1 , x6 ½
  • Qué valores toma la función objetivo en este
    punto?.
  • z 25/2
  • Cómo seguimos a partir de acá para ver si podemos
    hacer crecer este valor?
  • Vamos a tratar de obtener un sistema similar al
    sistema (2), es decir un sistema donde la
    variables que valen 0 sean las únicas que figuren
    en la ecuación de z.

36
  • Para eso vamos a cambiar la variable x1 por la
    variable x4 que es la que limita el crecimiento
    de x1.
  • Si despejamos x1 de la primera ecuación de (2)
    queda
  • x1 5/2 3/2 x2 ½ x 3 - ½ x4
  • Si reemplazamos esta ecuación en las otras dos
    ecuaciones del sistema (2) obtenemos un nuevo
    sistema

37
  • x1 5/2 3/2 x2 1/2 x3 -1/2 x4
  • x5 1 5 x2 2
    x4 (3)
  • x6 1/2 1/2 x2 1/2 x3 3/2 x4
  • --------------------------------------------------
    -------------
  • z 25/2 7/2 x2 1/2 x3 - 5/2 x4
  • Es posible que el valor de z siga creciendo?.
  • O sea, cómo podemos hacer para ver si hay alguna
    otra solución factible que tenga un valor mayor
    que 25/2? .
  • Hay alguna de las variables de las que aparecen
    en la expresión de z, (o sea que tienen valor 0)
    que pueda aumentar de valor (sin que las otras
    variables que aparecen en la expresión de z
    cambien)?
  • Mirando la última fila vemos que la única
    variable que puede aumentar de valor para que
    aumente el valor de z es x3.
  • Hasta cuanto podemos aumentar el valor de x3 ?.

38
  • Para que el sistema siga siendo factible o sea
    para que las todas la variables sigan siendo
    nongativas lo máximo que puede crecer x3 es 1.
  • Si reemplazamos este valor en (3) obtenemos una
    nueva solución factible
  • x1 2 , x2 0 x3 1 , x4 0 x5 1 , x6 0
  • y vemos que el valor de la función objetivo en
    esta solución es
  • Z 13
  • Podemos aumentar el valor de la función objetivo
    aún más?.

39
  • Para ver esto repetimos el procedimiento
    anterior. Es decir vamos a escribir las
    ecuaciones de modo de tener un sistema donde la
    variables que figuren en la ecuación de z valgan
    todas 0.
  • Para esto, como hicimos antes, despejamos x3 de
    la ecuación de la variable que limitó su
    crecimiento, en este caso x6. Obtenemos
  • x3 1 x2 3 x 4 - 2 x6

40
  • Si reemplazamos x3 por esta expresión en el
    sistema (3) obtenemos un nuevo sistema
  • x3 1 x2 3 x 4 - 2 x6
  • x1 2 - 2 x2 - 2 x4 x6
    (4)
  • x5 1 5 x2 2 x4
  • --------------------------------------------------
    -------------
  • z 13 3 x2 - x4 - x6
  • Podemos hacer crecer más el valor de z o sea de
    la función objetivo?.
  • Qué nos garantiza que esta solución es la
    óptima?.

41
  • Que hemos pasado de un sistema de ecuaciones a
    otro equivalente sucesivamente, y que entonces
    TODAS las soluciones factibles de nuestro
    problema original tienen que satisfacer (4).

42
  • En el caso general si tenemos el problema
  • Max ?j cj xj
  • sujeto a
  • ?j aij xj bi i 1,..m
  • xj 0 para j 1,..n
  • (con los bi todos positivos)
  • introducimos las variables slacks xn1, xn2,
    xn3 xnm , llamamos z a la funión objetivo y
    escribimos el sistema equivalente
  • xni bi - ?j aij xj
  • z ?j cj xj

43
  • Asociamos a este sistema una solución factible
    que se obtiene asignando valor 0 a las variables
    originales del problema.
  • xj 0 para j 1,..n
  • x n i bi para i 1, .m
  • Iterativamente pasaremos de un sistema como este
    a otro hasta obtener una solución óptima.
  • Las variables que aparecen en el miembro de la
    izquierda de las ecuaciones de cada sistema se
    llaman básicas, las que aparecen a la derecha se
    llaman variables no-básicas. Las variables
    básicas no aparecen en la expresión de la función
    objetivo.
  • Para cada uno de estos sistemas obtenemos una
    solución factible básica del problema asignando
    valor 0 a las variables no básicas.

44
Resumen del método
  • A partir del primer sistema, iterativamente,
    mientras el valor de la función objetivo pueda
    mejorar
  • Elegir alguna variable no-básica cuyo valor pueda
    crecer ( o sea que figura con signo más en la
    función objetivo). (variable de entrada)
  • Determinar la ( o una de las) variable básica
    que limita más el crecimiento de la variable
    elegida en el paso anterior. (variable de
    salida).
  • Despejar la variable no básica elegida de la
    ecuación correspondiente a la variable básica.
  • Reemplazar en el sistema anterior y obtener un
    nuevo sistema.
  • Asignar valor 0 a la nueva variable no-básica,
    obtenemos una nueva solución factible del
    problema original (estas soluciones se llaman
    soluciones básicas).
  • No todas las soluciones factibles son soluciones
    básicas!

45
  • En los programas computacionales el método se
    implementa usando matrices (lo veremos más
    adelante).
  • Formato Tableau muchas veces este método se
    presenta usando un formato tableau, o sea
    realizando las operaciones sobre una tabla que
    incluye sólo los coeficientes del sistema.

46
  • Qué son geométricamente las soluciones básicas?.
  • Ejemplo
  • Representar gráficamente el conjunto de
    soluciones factibles del siguiente problema.
    Resolver, eligiendo en cada paso la variable
    no-básica de mayor coeficiente y representar
    cada solución básica factible obtenida.
  • Maximizar 3 x1 2 x2 5 x3
  • Sujeto a
  • 2 x1 x2 4
  • x3 5
  • x1 , x2 , x3 0

47
Ejercicios
  • Resolver los siguientes problemas por el método
    simplex
  • 1- Maximizar x1 4 x2 3
    x3
  • Sujeto a
  • x1 3 x2 x3 3
  • - x1 3 x3 2
  • 2 x1 - x2 2 x3 4
  • 2 x1 3 x2 - x3 2
  • x1 , x2 , x3 0

48
  • 2 - Maximizar 3 x1 2 x2 4 x3
  • Sujeto a
  • x1 x2 2 x3 4
  • 2 x1 3 x3 5
  • 2 x1 x2 3 x3 7
  • x1 , x2 , x3 0
  • 3 - Maximizar 5x1 6 x2 9 x3
    8 x4
  • Sujeto a
  • x1 2 x2 3 x3 x4 5
  • x1 x2 2 x3 3 x4 3
  • x1 , x2 , x3 ,x4 0

49
  • Qué problemas pueden aparecer al aplicar el
    método simplex y cómo resolverlos
  • Siempre podemos encontrar una variable de entrada
    en la base y una de salida?.
  • El método termina siempre, no podría ser que
    realice un número infinito de pasos?.
  • Siempre podemos obtener una solución inicial?.
    Qué pasa si los bi no son positivos?.
  • Cuánto tarda el método simplex en resolver un
    problema?

50
  • Siempre podemos encontrar una variable de entrada
    en la base y una de salida?.
  • La variable de entrada es una variable no-básica
    con coeficiente positivo en la función objetivo
    z. Puede haber varias para elegir, en cuyo caso
    da lo mismo elegir cualquiera o ninguna, en cuyo
    caso estamos en el óptimo.
  • La variable de salida es la variable básica cuya
    restricción de ser no-negativa es la que más
    limita el crecimiento de la variable de entrada.
    Puede haber varias candidatas o ninguna. Veamos
    ambas posibilidades.

51
  • Qué significa que no haya ninguna variable básica
    que pueda salir?. Veamos el siguiente ejemplo..
  • x2 5 x3 - x 4 - 3 x1
  • x5 7 - 3 x4 - 4 x1
  • --------------------------------------------------
    --
  • z 5 x3 - x4 - x1
  • Si no hay ninguna variable que limita el
    crecimiento de la variable de entrada el problema
    es no acotado.

52
  • Qué puede ocurrir si hay más de una variable
    básica que pueda salir?.
  • Podemos elegir cualquiera de ellas para salir.
  • Pero puede ocurrir lo siguiente, veamos un
    ejemplo
  • x4 1 - 2 x3
  • x5 3 - 2 x1 - 4 x2 - 6 x3
  • x6 2 x1 - 3 x2 - 4 x3
  • --------------------------------------------------
    -------------
  • z 2 x1 - x2 8 x3
  • Elegimos x3 como variable de entrada. Las tres
    variables básicas pueden ser variables de salida.
    Supongamos que elegimos x4

53
  • x3 0.5 - 0.5 x4
  • x5 - 2 x1 - 4 x2 3 x4
  • x6 x1 - 3 x2 - 4 x4
  • --------------------------------------------------
    -- -----------
  • z 4 2 x1 - x2 - 4 x4
  • Qué pasa si elegimos x1 como variable de
    entrada?. Cuánto puede crecer?.
  • La variable de salida tiene que ser x5.
  • x1 - 2 x2 1.5 x4 -0.5 x5
  • x3 0.5 -
    0.5 x4
  • x6 - x2 3.5 x4 - 0.5x5
  • --------------------------------------------------
    -------------
  • z 4 3 x2 - x4 - x5
  • Se puede ver que la función objetivo no creció en
    este caso. Porqué ?.

54
  • Las soluciones básicas que tienen una o más
    variables básicas con valor 0 se llaman
    degeneradas.
  • Esta situación se presenta con frecuencia en
    problemas de PL derivados de aplicaciones reales,
    y en general no trae ningún problema..como
    podemos ver si seguimos resolviendo el ejemplo
    anterior .. después de dos iteraciones más se
    llega al óptimo. (ejercicio)
  • Pero también puede ocurrir que el método simplex,
    cómo lo estamos presentando hasta ahora siga
    realizando una cantidad infinita de iteraciones
    (ciclado)

55
  • Ejemplo
  • Resolvemos el siguiente ejemplo con las
    siguientes reglas (arbitrarias) de entrada y
    salida de variables
  • Elegimos la variable de entrada como la que tiene
    el coeficiente más grande entre las posibles
    candidatas.
  • En caso de empate elegimos la variable de salida
    que tiene menor índice.

56
  • Maximizar 10 x1 - 57 x2 - 9 x3 - 24 x4
  • sujeto a
  • - 0.5 x1 5.5 x2 2.5 x3 - 9 x4 0
  • - 0.5 x1 1.5 x2 0.5 x3 - x4 0

  • x1 1
  • x1 , x2 , x3 , x4 0
  • Después de agregar las variables de holgura
    tenemos el primer sistema
  • x5 - 0.5 x1 5.5 x2 2.5 x3 - 9 x4
  • x6 - 0.5 x1 1.5 x2 0.5 x3 - x4
  • x7 1 - x1
  • --------------------------------------------------
    -- -----------
  • z 10 x1 - 57 x2 - 9 x3 - 24 x4

57
  • Obtenemos los siguientes sistemas.
  • x1 11 x2 5 x3 -18 x4 - 2 x5
  • x6 - 4 x2 - 2 x3 8 x4 x5
  • x7 1 - 11 x2 - 5 x3 18 x4 2 x5
  • ---------------------------------------------
    --------------------------------------------------
  • z 53 x2 41 x3 - 204 x4 - 20 x5
  • x2 - 0.5 x3 2 x4 0.25 x5 0.25 x6
  • x1 - 0.5 x3 4 x4 0.75 x5 - 2.75x6
  • x7 1 0.5 x3 - 4 x4 -0.75 x5 2.75 x6
  • --------------------------------------------------
    -- -------------------------------------------
  • z 14.5 x3 - 98 x4 - 6.75 x5 -
    13.25 x6

58
  • x3 8 x4 1.5 x5 5.5 x6 2 x1
  • x2 - 2 x4 - 0.5 x5 2.5 x6 x1
  • x7 1
    x1
  • --------------------------------------------------
    -- -------------------------------------------
  • z 18 x4 15 x5 - 93 x6 - 29 x1
  • x4 - 0.25 x5 1.25 x6 0.5 x1 0.5 x2
  • x6 - 0.5 x5 4.5 x6 2 x1 - 4 x2
  • x7 1
    - x1
  • --------------------------------------------------
    -- -------------------------------------------
  • z 10.5 x5 - 70.5 x6 - 20x1 - 9 x2

59
  • x5 - 9 x6 4 x1 - 8 x2 2 x3
  • x4 - x6 - 0.5 x1 1.5 x2 0.5
    x3
  • x7 1 - x1
  • --------------------------------------------------
    -- -------------------------------------------
  • z 24 x6 22 x1 - 93 x2 - 21 x3
  • X5 - 0.5 x1 1.5 x2 0.5 x3 - x4
  • x6 - 0.5 x1 5.5 x2 2.5 x3 - 9 x4
  • x7 1 - x1
  • --------------------------------------------------
    -- --------------------------------------------
  • z 10 x1 - 57 x2 - 9 x3 - 24 x4

60
  • Este último sistema es igual al primero (y por lo
    tanto la última solución es igual a la primera),
    o sea si seguimos iterando vamos a ciclar
    permanentemente entre estas soluciones y el
    método no va a parar nunca..

61
  • Puede ser que el método cicle a partir de una
    solucion que no sea degenerada?.
  • NO porque cuando cicla el valor de la función
    objetivo no aumenta (no podría volver a una
    solución anterior si aumentara).
  • Es muy poco frecuente que haya problemas donde el
    método simplex cicle. Es difícil construir
    ejemplos donde esto pase.
  • Teorema Si el método simplex no termina es
    porque cicla.
  • Demostración resumida
  • Hay un número finito de soluciones básicas (se
    obtienen eligiendo m variables entre nm
    posibles), por lo tanto si hay infinitas
    iteraciones, se tienen que repetir las soluciones
    básicas, y los correspondientes sistemas de
    ecuaciones.

62
  • Hay varias formas de evitar que el método simplex
    cicle. Una de ellas está dada por es la
    siguiente
  • Teorema Si en caso de empate se eligen como
    variable de entrada o salida la que tiene el
    menor subíndice entonces el método termina. (o
    sea no cicla).
  • Dem ver por ejemplo libro de Chvatal o de
    Bazaraa et all.

63
  • Qué pasa si los bi son negativos?.
  • Podemos aplicar el método al siguiente problema?
  • Maximizar x1 - x2 x3
  • sujeto a
  • 2 x1 - x2 2 x3 4
  • 2 x1 - 3 x2 x3 - 5
  • x1 x2 - 2 x3 -1
  • x1 , x2 , x3 0
  • Cómo obtenemos una solución básica factible
    inicial?

64
  • Cómo conseguimos una solución y un sistema de
    donde empezar?.
  • Hay varias formas de plantear un problema
    auxiliar para hacer esto. Una de ellas es,
    (Método de dos fases)
  • Si tenemos nuestro problema original
  • Max ?j cj xj
  • sujeto a
  • ?j aij xj bi i 1,..m
  • xj 0 para j 1,..n
  • planteamos un nuevo problema de programación
    lineal, llamado problema auxiliar o fase 1.

65
  • Min x0
  • sujeto a
  • ?j aij xj - x0 bi i 1,..m
  • xj 0 para j 0, 1,..n
  • Para qué nos sirve resolver este nuevo problema
    (Fase 1)?.
  • Es más fácil resolver este problema que el
    original?
  • El primer sistema para este problema quedaría
    agregando las variables de holgura
  • x ni bi - ?j aij xj x0 i
    1,..m
  • ------------------------------
  • w - x0

66
  • Ejemplo
  • Maximizar x1 - x2 x3
  • sujeto a
  • 2 x1 - x2 2 x3 4
  • 2 x1 - 3 x2 x3 - 5
  • x1 x2 - 2 x3 -1
  • x1 , x2 , x3 0
  • El problema auxiliar (Fase 1) es
  • Minimizar x0
  • sujeto a
  • 2 x1 - x2 2 x3 - x0 4
  • 2 x1 - 3 x2 x3 - x0 - 5
  • x1 x2 - 2 x3 - x0 -1
  • x0 , x1 , x2 , x3 0

67
  • Si agregamos las variables de holgura tenemos el
    primer sistema
  • x4 4 - 2 x1 x2 - 2 x3 x0
  • x5 - 5 - 2 x1 3 x2 - x3 x0
  • x6 -1 x1 - x2 2 x3 x0
  • --------------------------------------------------
    ---------
  • w - x0
  • Podemos obtener una solución factible del
    problema auxiliar a partir de este sistema?
  • No, pero si hacemos entrar x0 y hacemos salir la
    variable más infactible, o sea la variable
    negativa con menor valor, obtenemos un sistema
    factible para el problema auxiliar.
  • En este caso hacemos salir a x5.

68
  • x0 5 2 x1 -3 x2 x3 x5
  • x4 9 - 2 x2 - x3 x5
  • x6 4 3 x1 - 4 x2 3 x3 x5
  • --------------------------------------------------
    ---------
  • w - 5 - 2 x1 3 x2 - x3 - x5
  • Si aplicamos el método simplex a partir de acá,
    haciendo entrar a la variable x2 y salir a x6
    obtenemos
  • x2 1 0.75 x1 0.75 x3 0.25 x5 -0.25 x6
  • x0 2 - 0.25 x1 - 1.25 x3 0.25 x5 - 0.75 x6
  • x4 7 - 1.5 x1 - 2.5 x3 0.5 x5 0.5 x6
  • --------------------------------------------------
    -----------------------------------
  • w 2 0.25 x1 1. 25 x3 - 0.25 x5 - 0.75 x6

69
  • x3 1.6 0.2 x1 0.2 x5 0.6 x6 -0.8 x0
  • x2 2.2 0.6 x1 0.4 x5 0.2 x6 - 0.6 x0
  • x4 3 - x1
    - x6 2 x0
  • --------------------------------------------------
    --------------------------------------
  • w
    - x0
  • Esta es la solución óptima del problema
    auxiliar?. Qué nos indica?.
  • Cómo pasamos de este sistema a un sistema para
    resolver el problema original? .
  • Para obtener un sistema del problema original
    borramos x0 y calculamos el valor de la
    función objetivo z en función de las variables
    no-básicas x1, x5 y x6 .

70
  • Obtenemos un sistema y una solución factible del
    problema original a partir del cual aplicamos el
    método simplex.
  • x3 1.6 0.2 x1 0.2 x5 0.6 x6
  • x2 2.2 0.6 x1 0.4 x5 0.2 x6
  • x4 3 - x1
    - x6
  • --------------------------------------------------
    --------------------------------------
  • z -0.6 0.2 x1 - 0.2 x5 0.8 x6
  • Ejercicio terminar de resolver a partir de acá
    el problema original.
  • Volviendo al caso general
  • Qué posibles soluciones puede tener el problema
    auxiliar?. (el valor óptimo de x0)
  • Qué significa cada una de ellas?

71
  • Cuánto tarda el método simplex en resolver un
    problema?.
  • En el peor caso (ejemplo de Klee y Minty, 1972)
    puede realizar una cantidad exponencial de pasos,
    o sea revisar una cantidad exponencial de
    soluciones básicas ( o vértices del poliedro)
  • En la práctica sin embargo consigue resolver
    problemas muy grandes de miles de variable en un
    tiempo razonable típicamente el número de
    iteraciones crece proporcionalmente a m (2m o 3m)
    y muy lentamente con n.

72
  • Dualidad
  • Supongamos que queremos obtener cotas inferiores
    y superiores a la solución óptima del siguiente
    problema
  • Maximizar 4 x1 x2 5 x3 3 x4
  • sujeto a
  • x1 - x2 - x3 3 x4 1
  • 5 x1 x2 3 x3 8
    x4 55 (5)
  • x1 2 x2 3 x3 - 5x4 3
  • x1 , x2 , x3 ,x4 0

73
  • Para encontrar cotas inferiores del óptimo z, es
    suficiente con tomar cualquier solución factible,
    básica o no, y calcular el correspondiente valor
    de la función z.
  • Por ejemplo si en el problema anterior tomamos la
    solución factible z (2,1,1,1/3) sabemos que el
    óptimo tiene que ser mayor que el valor de la
    función objetivo en este punto que es z 15.
  • O sea z 15.

74
  • Cómo hacemos si queremos encontrar cotas
    superiores de este problema?.
  • Recordemos que todos los xi son positivos,
    entonces
  • Por ejemplo podríamos si multiplicamos la segunda
    ecuación por 5/3 tenemos
  • 25/3 x1 5/3 x2 5 x3 40/3 x4 275/3
  • y podemos ver que
  • 4 x1 x2 5 x3 3 x4 25/3 x1 x2 5
    x3 3 x4 275/3
  • y entonces resulta z 275/3
  • Si sumamos la segunda y la tercera ecuación
    obtenemos
  • 4 x1 3 x2 6 x3 3 x4 58
  • y entonces vemos que
  • 4 x1 x2 5 x3 3 x4 4 x1 3 x2 6 x3
    3 x4 58
  • y por lo tanto z 58

75
  • Hagamos esto de manera más sistemática
  • Construyamos una combinación lineal de las
    restricciones, multiplicando la primera por una
    variable y1, la segunda por y2 y la tercera por
    y3 (todas positivas) , obtenemos
  • y1( x1 - x2 - x3 3 x4) y2 ( 5 x1 x2 3
    x3 8 x4 y1)
  • y3 ( - x1 2 x2 3 x3 - 5x4) y1 55 y2
    3 y3
  • Reescribimos esto como

76
  • (y1 5y2 - y3 ) x1 (- y1 y2 2 y3 ) x2
    (- y1 3y2 3 y3 ) x3 (3 y1 8y2 - 5 y3 )
    x4 y1 55y2 3 y3
  • Para obtener una cota superior de la función
    objetivo z tenemos que tener entonces que
  • y1 5y2 - y3 4
  • - y1 y2 2 y3 1
  • - y1 3y2 3 y3 5
  • 3 y1 8y2 - 5 y3 3

77
  • Si y1 , y2 ,y3 verifican estas ecuaciones
    entonces para cualquier solución factible x1 ,
    x2 , x3 , x4 del primal se verifica que
  • 4 x1 x2 5 x3 3 x4 y1 55y2 3 y3
  • Entonces para obtener una cota superior lo más
    próxima posible a z tenemos que resolver el
    siguiente problema
  • Minimizar y1 55y2 3 y3
  • Sujeto a
  • y1 5y2 - y3 4
  • - y1 y2 2 y3 1
  • - y1 3y2 3 y3 5
  • 3 y1 8y2 - 5 y3 3
  • Este problema se llama el problema dual del
    problema original de maximización (5)

78
  • En general si tenemos el problema (que llamaremos
    primal)
  • Maximizar ?j cj xj
  • sujeto a
  • ?j aij xj bi
    i 1,..m (6)
  • xj 0 para j 1,..n
  • Definimos el problema dual como
  • Minimizar ?i bi yi
  • sujeto a
  • ?i aij yi cj
    j 1,..n (7)
  • yi 0 para i 1,..n

79
  • Proposición
  • Si (x1 , x2 , xn ) es solución factible del
    problema primal (6) y (y1 , y2 ym) es una
    solución factible del problema dual (7) entonces
  • ?j cj xj ?i bi yi
  • Dem resumen, usar las definiciones de ambos
    problemas.
  • Qué significa esto desde el punto de vista
    práctico?

80
  • Corolario (certificado de optimalidad)
  • Si (x1 , x2 , xn ) es una solución factible
    del problema primal (6) y (y1 , y2 ym) es
    solución factible del problema dual (7) y se
    verifica que
  • ?j cj xj ?i bi yi
  • entonces (x1 , x2 , xn ) es solución óptima
    del primal y (y1 , y2 ym) es solución
    óptima del problema dual.
  • Para que sirve este resultado?
  • Por ejemplo en el problema (5) si
  • x1 0, x2 14, , x3 0, x4 5, y y1 11,
    y2 0, y3 6
  • calculando los valores de las funciones objetivo
    del primal y del dual podemos certificar que
    ambas soluciones son óptimas.

81
Teorema de dualidad
  • Si el problema primal (6) tiene una solución
    óptima
  • x (x1 , x2 , xn ) entonces el problema
    dual (7) tiene una solución óptima y (y1 ,
    y2 ym) y se verifica que
  • ?j cj xj ?i bi yi
  • Dem ver libros de Chvatal o Bazaraa o cualquier
    otro libro de programación lineal.

82
  • Resumen de la dem. dada una solución óptima del
    primal,
  • hay que fabricar una solución óptima del dual
  • (y1 , y2 ym). Si el sistema óptimo del
    primal tenía en la última fila
  • z z ?k1nm ck xk
  • entonces se define yi - cni y se demuestra
    que esta es una solución factible del problema
    dual, y que el valor objetivo de esta solución es
    igual a la del primal.
  • (o sea tomamos el coeficiente de la variable ni
    de holgura en el último sistema como valor de la
    variable dual yi)

83
  • Ejemplo en el caso del problema (5) si lo
    resolvemos por el método simplex vemos que el
    último sistema es
  • x2 14 2 x1 - 4 x3 - 5 x5 - 3 x7
  • x4 5 - x1 - x3 2 x5 - x7
  • x6 1 5 x1 9 x3 21 x5 11 x7
  • --------------------------------------------------
    --------------------------------------
  • z 29 - x1 - 2 x3 - 11 x5 - 6x7
  • Vemos entonces que ahí tenemos la solución óptima
    del problema primal
  • x1 0, x2 14, , x3 0, x4 5
  • y del dual y1 11, y2 0, y3 6
  • (los valores de la solución óptima del dual
    corresponden a los coeficientes de las variables
    de holgura x5, x6 , y x7 en la fila de la función
    objetivo, con el signo cambiado)

84
Teorema de holgura complementaria
  • Si x es una solución factible del primal y y es
    una solución factible del dual, entonces x e y
    son soluciones óptimas del primal y del dual
    respectivamente, si y sólo si se verifica
  • ?i bi yi cj ó xj 0 para j1,n
  • ?j cj xj i bi ó yi 0 para b i 1,m
  • Dem, resumen Usar que las soluciones x e y son
    factibles en ambos problemas y el teorema de
    dualidad.
  • Porqué este teorema tiene este nombre?.

85
  • Cómo formulamos el problema dual de un problema
    de minimización?.
  • El dual del problema dual es el primal.
  • Por lo tanto del teorema de dualidad se deducen
    los siguientes resultados
  • el problema primal tiene una solución óptima si y
    sólo si el problema dual tiene una solución
    óptima.

86
  • Si el problema primal es no acotado entonces el
    dual es nofactible.
  • (se demuestra usando la proposición que ya
    vimos que dice que si
  • (x1 , x2 , xn ) es solución factible del
    problema primal y (y1 , y2 ym) es una
    solución factible del problema dual entonces ?j
    cj xj ?i bi yi).
  • Si el problema primal es no factible entonces el
    problema dual es no acotado. (se demuestra en
    forma similar a ii)
  • Veamos cuales son todas las posibilidades en el
    siguiente cuadro

87
Posibles situaciones del primal y el dual
88
  • Otra forma de presentar este mismo resultado
  • Corolario una solución factible del problema
    primal x es óptima si y sólo si existen valores
    y1 , y2 ym que verifican que
  • ?i aij yi cj cuando xj gt 0
  • yi 0 cuando ?j aij xj lt bi
  • ?i aij yi cj para j 1,n
  • yi 0 para i 1,..m
  • Dem ejercicio, usar teorema de dualidad y
    holgura complementaria.

89
Cuál es la importancia práctica de la teoría de
dualidad?
  • Puede ser más fácil resolver el dual que el
    primal. Cuándo?
  • Provee un certificado de optimalidad.
  • Veremos que es una herramienta fundamental para
    resolver problemas de programación lineal entera,
    (cuando las variables del problema tienen que
    tomar valores enteros).

90
Significado económico de las variables duales
  • Las variables duales se llaman también precios
    sombra o valores marginales.
  • Supongamos que tenemos un problema de maximizar
    el beneficio en una fabrica de muebles (por
    ejemplo el problema (5 ) podría serlo)
  • cada xj mide cuanto vamos a producir de cada
    producto (sillas, camas, escritorios).
  • cada bi especifica la cantidad disponible de
    recursos (madera, metal, mano de obra).
  • los coeficientes aij miden cuanto se requiere del
    recurso i para producir el producto j
    (coeficientes tecnológicos)

91
  • Cada cj es el beneficio de producir una unidad
    del producto j, supongamos que se mide en
    dólares.
  • Para que el análisis de unidades sea correcto
    vemos que las variables yi miden entonces
    dólares por unidad de recurso i, entonces
    asumimos que cada yi mide el valor unitario de
    cada recurso.
  • Se puede demostrar el siguiente teorema (no
    daremos la demostración en este curso puede verse
    en un libro de programación lineal)

92
  • Teorema Si el problema de PL tiene al menos una
    solución básica no degenerada entonces existe un
    valor positivo de ? gt 0 con la siguiente
    propiedad si ti ? para todo i1,m
    entonces el problema
  • Maximizar ?j cj xj
  • sujeto a
  • ?j aij xj bi ti i 1,..m
  • xj 0 para j 1,..n
  • tiene una solución óptima
  • z z ?i yi ti
  • donde z es el valor óptimo del PL y (y1 , y2
    ym) es una solución óptima del dual.
  • .
  • Qué dice este teorema?. Qué nos dice del
    significado de las variables duales?

93
Ejemplo
  • Un empresario maderero tiene un terreno de 100
    acres plantado con álamos. Cortar los árboles y
    dejar que regeneren tiene un costo de 10 por
    acre y produce un retorno de 50 por acre. El
    empresario puede también cortar los álamos y
    plantar pinos. En este caso tiene un costo de 50
    y un retorno de 120 por acre. El empresario
    dispone de 4000 y quiere saber cuál es la
    estrategia que más le conviene.
  • Cómo podemos formular este problema como un
    problema de programación lineal?

94
  • Maximizar 40 x1 70 x2
  • sujeto a
  • x1 x2 100
  • 10 x1 50 x2
    4000
  • x1 , x2 0
  • Si resolvemos e problema por el método simplex
    vemos que la solución óptima es x1 25 y x2
    75 y la solución óptima del dual es y1 32.5
    y y2 0.75

95
  • El empresario podría plantearse las siguientes
    preguntas
  • Le conviene pedir un prestamos de 100 más por el
    cual tendrá que devolver 180 ?.
  • Cuál es el interés máximo que le conviene pagar?.
  • Le conviene derivar fondos hacia otros
    emprendimientos?. Qué beneficio tendrían que
    brindar?
  • Cómo puede hacer para analizar rápidamente si le
    conviene considerar una nueva posibilidad de
    plantar otras especies?

96
Notación Matricial
  • El problema de PL , si ya agregamos las variables
    de holgura, puede escribirse como
  • Max c x
  • sujeto a
  • Ax b
  • x 0
  • Si tenemos una solución básica x de este sistema
    con variables básicas xB, podemos separar al
    vector x en dos partes, las variables básicas xB
    y las no básicas xn . Reordenando las variables
    podemos poner
  • x (xB, xN)
  • Reordenando de la misma forma las columnas de A,
    podemos poner
  • A AB AN

97
  • Entonces podemos escribir nuestro sistema de
    ecuaciones cómo
  • AB xB AN xN b
  • Se puede demostrar que la matriz AB es
    inversible viendo que AB xB b tiene una
    solución única correspondiente a la variables
    básicas xB.
  • Entonces podemos escribir
  • xB AB-1 b - AB-1 AN xN
  • Si escribimos también c (cB, cN) la función
    objetivo queda
  • Z c x cB xB cN xN
  • Reemplazando acá la expresión de xB queda
  • z cB (AB-1 b - AB-1 AN xN ) cN xN
  • cB AB-1 b (cN - cB AB-1 AN) xN

98
  • Y por lo tanto el sistema de ecuaciones que
    usamos para resolver el simplex se puede escribir
    como
  • xB AB-1 b - AB-1 AN xN
  • --------------------------------------------------
    --------------------
  • z cB AB-1 b (cN - cB AB-1 AN) xN
  • Se acostumbra llamar B AB , entonces ponemos
  • xB B-1 b - B-1 AN xN
  • --------------------------------------------------
    --------------------
  • z cB B-1 b (cN - cB B-1 AN) xN
  • Notar que xB B-1b y que z cB B-1 b es el
    valor de la función objetivo en esta solución
    básica .

99
  • Por ejemplo cuando resolvíamos el sistema (1),
  • Maximizar 5 x1 4 x2 3 x3
  • Sujeto a
  • 2 x1 3 x2 x3 5
  • 4 x1 x2 2 x3 11
  • 3 x1 4 x2 2 x3 8
  • x1 , x2 , x3 0
  • Cuál es la matriz A del problema, una vez
    agregadas las slacks?.
  • Cuáles son el vector b y el el vector c?.

100
  • En una de las iteraciones de simplex para este
    problema teníamos la siguiente solución básica
  • x1 5/2 3/2 x2 1/2 x3 -1/2 x4
  • x5 1 5 x2 2
    x4
  • x6 1/2 1/2 x2 1/2 x3 3/2 x4
  • --------------------------------------------------
    -------------
  • z 25/2 7/2 x2 1/2 x3 - 5/2 x4
  • Cuál es la matriz B que corresponde a esta
    solución básica?. Cuáles son los vectores cB y
    cN?.
  • Calcular B-1 b,, B-1 AN,, cB B-1 b y (cN - cB B-1
    AN) para esta solución básica y comparar con el
    sistema de arriba.

101
  • La matriz B se llama matriz básica o base.
  • A cada submatriz inversible de A le corresponde
    una solución básica.
  • El método simplex se puede reescribir en función
    de esta notación realizando las operaciones de
    forma un poco diferente a la que las veníamos
    haciendo.

102
Una iteración del método Simplex Revisado
  • Dada una solución básica x, sea B la matriz
    básica
  • Resolver el sistema yB cB
  • Elegir la columna de entrada, como una columna aj
    de AN tal que yaj lt cj . Si no existe la
    solución actual es óptima.
  • Resolver el sistema B d aj
  • Encontrar el mayor valor de t para el cual xB -
    t d 0. Si no existe tal t, entonces el problema
    es no-acotado. En otro caso hay al menos una
    variable xk básica tal que xk - t dk 0.
    Elegir xk para salir de la base.
  • Asignar a xj (la variable de entrada) el valor t
    y al resto de las variables básicas de xB los
    valores xB xB - t d. Reemplazar en B la
    columna de salida aj por la de entrada ak, y
    actualizar el indicador de columnas básicas.

103
  • Ejercicio resolver el problema (1) usando el
    método simplex revisado.
  • Qué diferencia hay entre la matriz básica de una
    iteración y la de la siguiente?
  • Cómo sólo cambia una columna, hay métodos de
    factorización de matrices que permiten resolver
    los sistemas de los pasos 1 y 3 con un número
    relativamente pequeño de operaciones. No hay que
    resolver los sistemas completos cada vez.
  • En el cuidado con que se hagan estas operaciones
    (y en la velocidad cada vez mayor de las
    computadoras, claro) reside el factor que hace
    que se puedan resolver cada vez problemas más
    grandes.

104
  • En la mayoría de los problemas que se encuentran
    en la práctica las matrices son bastante
    esparsas, y entonces el método simplex revisado
    implementado de esta forma requiere menos
    operaciones que el método simplex estandar.
  • La mayoría de los programas de programación
    lineal implementan el método simplex revisado.
  • Hay mucho trabajo computacional envuelto para
    poder tener programas cada vez más eficientes.

105
Analisis de sensibilidad
  • En la mayoría de los problemas reales podría ser
    que los datos no se conozcan exactamente o puede
    haber cambios imprevistos en la información, por
    ejemplo en los costos o precios. También a veces
    se quieren analizar los efectos de aumentar los
    recursos, de cambiar los coeficientes
    tecnológicos, etc.
  • Cómo podemos ver cuán sensible a los cambios en
    los datos es la solución óptima que obtuvimos?
  • Cómo podemos analizar como cambiaría la solución
    sin resolver de nuevo el problema?.
  • Cómo seguimos optimizando si la solución actual
    no es óptima para los nuevos datos?

106
  • Supongamos que tenemos el PL , (ya agregamos las
    variables de holgura)
  • Max c x
  • sujeto a
  • Ax b
  • x 0
  • y tenemos el sistema y la solución óptima
  • xB B-1 b - B-1 AN xN
  • --------------------------------------------------
    --------------------
  • z cB B-1 b (cN - cB B-1 AN) xN

107
  • Qué podemos decir si
  • Cambia el valor de un ck de una variable xk no
    básica?. Cómo podemos calcular cuánto puede
    cambiar sin que cambie la solución óptima?.
  • Cambia el valor de un ck de una variable xk
    básica?. Cómo podemos calcular cuánto puede
    cambiar sin que cambie la solución óptima?.
  • Cambia uno de los términos de la derecha, o sea
    un bi.?.
  • Agregamos una restricción?.
  • Agregamos una nueva columna?.

108
  • Ejemplo supongamos que tenemos el sistema óptimo
    del problema (5)
  • x2 14 2 x1 - 4 x3 - 5 x5 - 3 x7
  • x4 5 - x1 - x3 2 x5 - x7
  • x6 1 5 x1 9 x3 21 x5 11 x7
  • --------------------------------------------------
    --------------------------------------
  • z 29 - x1 - 2 x3 - 11 x5 - 6x7
  • Cómo contestamos las preguntas anteriores?

109
Ejemplo
  • Una compañía que fabrica muebles quiere tener un
    plan de producción que maximice sus beneficios,
    con las siguientes condiciones
  • Una biblioteca requiere 3 horas de trabajo, 1
    unidad de metal y 4 de madera y da un beneficio
    neto de 19.
  • Un escritorio requiere 2 horas de trabajo, 1
    unidad de metal, 3 de madera y da un beneficio de
    13.
  • Una silla requiere 1 hora de trabajo, 1 unidades
    de metal, 3 unidades de madera y da un beneficio
    de 12
  • Una cama requiere 2 horas de trabajo, 1 unidad de
    metal, y 4 unidades de madera, y da un beneficio
    de 17.
  • Se dispone de 225 horas de mano de obra, 117
    unidades de metal y 420 unidades de madera por
    día.
  • Se supone que podemos vender todo lo que se
    produce.
  • Cómo formulamos esto como un problema de
    programación lineal?. Cuál es el plan de
    producción óptimo?

110
  • Maximizar 19 B 13 E 12 S 17 C
  • Sujeto a
  • 3B 2 E S 2 C 225
  • B E S C 117
  • 4 B 3 E 3 S 4 C 420
  • B, E, S, C 0
  • Ver la solución de este problema en LINDO u otro
    programa de PL, y ver que información adicional
    proveen.

111
  • Una vez que tenemos el resultado del problema
    podríamos plantearnos las siguientes preguntas
  • Qué pasaría si el beneficio de fabricar
    escritorios crece de 13 a 15.
  • Qué pasaría si la disponibilidad de metal aumenta
    de 117 a 125 unidades por día?
  • Como analizaríamos la conveniencia de la compañía
    de producir mesas de café que requieren 3 horas
    de trabajo, una unidad de metal, 2 unidades de
    madera y dan un beneficio de 14?
  • Cómo obtenemos la nueva solución si se requiere
    que el número de sillas sea 5 veces el número de
    bibliotecas.?
  • La demanda de madera por silla crece de 3 a 4
    unidades?

112
Forma general de CUALQUIER problema de
programación lineal
  • Maximizar ?j cj xj
  • sujeto a
  • ?j aij xj bi i ? I
  • ?j aij xj bi i ? E
  • xj 0 para j ? R
  • El problema dual se define como
  • Minimizar ?i bi yi
  • sujeto a
  • ?i aij yi cj j ? R
  • ?i aij yi cj j ? R
  • yi 0 i ? I

113
Algunos programas de programación lineal y lineal
entera
  • LINDO o LINGO tienen versión demo que se pueden
    bajar libremente de http//www.lindo.com.
  • Recomiendo hacer los ejercicios del práctico de
    modelos con este programa. Es muy fácil de usar.
  • CPLEX es el mejor programa comercial y
    académico de programación lineal y lineal entera.
    Es el standard en la literatura académica y para
    las empresas. Su primera versión fue puesta en
    público en 1988 y desde entonces siguen
    mejorándolo. http//www.ilog.com.

114
  • GAMS es un programa que usan mucho los
    economistas, trae muchos ejemplos de
    aplicaciones. Se puede bajar una versión limitada
    que sirve para estudiantes de http//www.gams.de
  • XPRESS es otro programa del tipo del CPLEX, pero
    que tiene un poco menos de difusión, y
    aparentemente no tan eficiente en problemas
    difíciles. http//www.dashoptimization.com
  • LP- Solve programa de acceso libre.

115
Programación lineal entera (PLE)
  • Qué es un problema de programación lineal
    entera?
  • Max c x
  • sujeto a
  • Ax b
  • x ? Z
  • Qué es un problema de programación lineal entera
    mixta (PLEM)?
  • Algunas variables son continuas y otras tienen
    que tomar valores enteros.
  • Qué es un problema de programación lineal binario
    (PLB)?
  • Las variables toman valor 0 o 1, o sea x ? 0,1
    n .
  • .

116
  • Qué es un problema de optimización combinatoria?
  • Dado un conjunto finito N 1,.n con pesos cj
    asignados a cada j ? N y F una familia de
    conjuntos factibles de N, entonces queremos
    encontrar el elemento de F de peso mínimo
  • MinS ?j?S cj / S? F
  • (también podría ser un problema de maximización).
  • Muchos problemas de optimización combinatoria se
    pueden formular como problemas de programación
    lineal entera.

117
  • Cómo resolvemos un problema de programación
    lineal entera?.
  • Se parecen a los problemas de programación
    lineal?. Sirve redondear?.
  • Ejemplo
  • Max 1.00 x1 0.64 x2
  • Sujeto a
  • 50 x1 31 x2 250
  • 3 x1 - 2x2 -4
  • x1 , x2 0, x1 , x2 entera
  • Se puede ver que la solución entera es (5,0), si
    no pedimos que las variables sean enteras la
    solución del problema de programación lineal es
    (376/193, 950/193). Graficar.

118
  • En el caso de programación binaria la situación
    puede ser peor, por ejemplo una solución del
    problema continuo PL que sea (0.5,0.5,.0.5) no
    nos da información sobre cual puede ser la
    solución del problema binario.

119
Ejemplos escribir modelos de PLE para los
siguientes casos
  • Problema de asignación Tenemos n personas para
    realizar n trabajos. Cada persona puede hacer un
    solo trabajo. Se asigna un costo cij a la
    asignación de la persona i para hacer el trabajo
    j de acuerdo a la capacidad de cada uno para
    realizar cada trabajo. Se quiere encontrar la
    asignación que minimice los costos.
  • Problema de la mochila (Knapsack problem) Se
    tiene un presupuesto de b pesos disponible para
    invertir en algunos de n posibles proyectos para
    el próximo año. Sea aj la inversión que requiere
    el proyecto j y cj el retorno que produce dicho
    proyecto. Se quiere maximizar las ganancias (sólo
    se puede invertir en el proyecto completo).

120
  • Problema de cubrimiento (Set Covering) se
    quieren cubrir un cierto número de regiones con
    centros de emergencia (por ejemplo estaciones de
    bomberos o de ambulancias) con un costo mínimo.
    Se conocen los costos de instalar un centro en
    cada región y que regiones pueden ser servidas
    desde el mismo.
  • Problema del viajante de comercio (Traveling
    Salesman Problem, TSP) (es el problema más
    famoso de Optimización Combinatoria y el más
    estudiado.) Un viajante de comercio quiere
    visitar n ciudades y volver al lugar de partida
    en el menor tiempo posible (o al menor costo).

121
  • Los problemas que acabamos de ver son problemas
    de optimización combinatoria, donde hay que
    buscar el subconjunto óptimo entre una familia de
    subconjuntos. Uno podría pensar en enumerar todos
    estos conjuntos y elegir el mejor (algoritmo de
    fuerza bruta).
  • Sirve este procedimiento?.
  • Por ejemplo en el caso del viajante de comercio,
    si suponemos que podemos ir de cualquier ciudad a
    cualquier otra, tendríamos que revisar (n-1)!
    recorridos posibles. Por ejemplo para un problema
    con n 101 ciudades hay 9.33 x 10 157 circuitos
    (recorridos) posibles que habría que revisar.

122
  • Vamos a presentar algoritmos mejores que estos
    que permiten resolver problemas bastante grandes.
  • Sin embargo muchos problemas de optimización
    combinatoria como por ejemplo el TSP se
    consideran problemas abiertos o no resueltos
    desde el punto de vista de la investigación. A
    pesar de que se resuelven cada vez problemas
    mayores, no conocemos métodos buenos que
    resuelvan estos problemas en un tiempo razonable,
    o sea sólo conocemos algoritmos que requieren un
    número de operaciones que crece en forma
    exponencial cuando aumenta el
Write a Comment
User Comments (0)
About PowerShow.com