Title: Introduccin a la programacin lineal y lineal entera
1Introducció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)
5BibliografÃ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
8Problema 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
11Planificació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)
13Optimizando 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.
14Problema 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
20Algunas 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
23Solució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?
27Mé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.
44Resumen 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
47Ejercicios
- 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.
81Teorema 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)
84Teorema 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
87Posibles 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.
89Cuá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).
90Significado 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?
93Ejemplo
- 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?
96Notació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.
102Una 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.
105Analisis 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?
109Ejemplo
- 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?
112Forma 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
113Algunos 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.
115Programació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.
119Ejemplos 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