Você está na página 1de 55

Optimización con LINGO - 1

Dr Juan Cevallos
1.1. ¿Qué es optimización?
• Es un procedimiento matemático para
determinar asignación óptima de los recursos
escasos.
• La forma especial más popular de optimización
es la Programación Lineal PL
• PL tiene aplicaciones en casi todas las
actividades empresariales, desde publicidad
hasta planeamiento de la producción,
transporte, planeamiento de la producción
agregada, mezclas de petróleo, etc
• Nota: PL de programación en
Programación Matemática es distinto de la
Programación de Computadoras. Esta
última se refiere a escribir instrucciones
para realizar cálculos. La PL se refiere a
organizar y planificar para cumplir con el
programa.
• La mayoría de problemas de optimización
son de 2 clases de objetivos.
1) Recursos limitados: tierra, capacidad de
planta y nº de trabajadores.
2) Actividades: ej. producción de acero de
bajo carbono, de acero inoxidable, de
alto carbono. Cada actividad consume
cantidades distintas de recursos. Se
busca determinar la mejor combinación
de niveles de actividades que no use
más recursos que los disponibles.

Veamos un ejemplo:
1.2. Aplicación inicial (Fuente:
Schrage)
• La empresa de TV Enginola produce sus programas en
dos tipos de Sets de TV, el “Astro” y el “Cosmo”. Hay
dos líneas de producción, una para cada set. La línea de
producción Astro tiene una capacidad de 60 sets por
día, y la capacidad de la línea de producción Cosmo es
de sólo 50 sets por dìa. La mano de obra requerida para
el set Astro es de 1 persona-hora, y lo requerido por el
set Cosmo es de 2 personas-hora de trabajo. Hay un
máximo de 120 horas-hombre por día que pueden ser
asignados para producción de los 2 tipos de sets. Si las
ganancias son de $20 y $30 por cada set de Astro y
Cosmo, respectivamente, ¿cuál debe ser la producción
diaria?
Solución
• Verbalmente lo que queremos hacer es:
• Maximizar: Contribución a las utilidades.
• Sujeto a:
• La producción de Astro debe ser menor o
igual a la capacidad de Astro.
• La producción de Cosmo debe ser menor
o igual a la capacidad de Cosmo.
• El Trabajo utilizado debe ser menor o
igual que el trabajo disponible.
Definimos:
A= unids de Astro a ser producidas por día
C= unids de Cosmo a ser producidas por
día
Se decide medir;
Contribución a las utilidades en $.
Uso de Astro en unids de producción de
Astro
Uso de Cosmo en unids de producción de
Cosmo
Horas de trabajo por hora.
• Una representación precisa de nuestro
problema:
• Maximizar: 20 A + 30 C $
• Sujeto a:
A <= 60 Capacidad de Astro
C<=50 Capacidad de Cosmo
A+2C<=120 Trabajo en horas hombre

Linea 1: Función objetivo.


Lineas 2:4: Restricciones.
Se asume que todas las variables son ≥ 0
• Hay 3 recursos: Capacidad de Astro,
Capacidad de Cosmo, y Capacidad de
Trabajo.
• Actividades: producción de Astro y
Cosmo.
• Por lo general: 1 restricción para cada
recurso.
• Para cada variable de decisión: una
actividad física.
Solución con LINGO

• Tipear en LINGO:
MAX = 20 * A + 30 * C;
A < 60;
C < 50;
A + 2 * C < 120;
• Click en boton Solve/“bulls eye”, ó use menu Lingo/Solve, o presione Ctrl+U
o iluminar – boton cer y solve; para resolver el modelo. Resultado:
• Global optimal solution found.
• Objective value: 2100.000
• Infeasibilities: 0.000000
• Total solver iterations: 1
• Model Class: LP
• Total variables: 2
• Nonlinear variables: 0
• Integer variables: 0
• Total constraints: 4
• Nonlinear constraints: 0
• Total nonzeros: 6
• Nonlinear nonzeros: 0
• Variable Value Reduced Cost
• A 60.00000 0.000000
• C 30.00000 0.000000
• Row Slack or Surplus Dual Price
• 1 2100.000 1.000000
• 2 0.000000 5.000000
• 3 20.00000 0.000000
• 4 0.000000 15.00000
Solución Gráfica
• El problema de Enginola es representado
gráficamente en la fig.1.1.
• Las combinaciones de producciones
factibles son los puntos menores a la
izquierda que están encerrados por las 5
líneas sólidas.
• Queremos encontrar el punto en la región
factible que da la mayor utilidad /ganancia.
Calculando las utilidades
• El punto A=C=0 es factible pero no da
utilidades.
• Si producimos todo lo que podemos de
Cosmo, porque da más utilidades:
$30 x 50 uu = $1500 de utilidad.
• La recta 20 A+30 C = 1500 se puede
representar gráficamente, ver fig 1.2, donde
cualquier punto de la línea punteada da una
utilidad de 1500.
• Cualquier recta de utilidades constantes
se llama recta de iso- utilidades. (ó iso-
costos en le caso de minimización.)
• Por otro lado si producimos todo lo que
podemos de Cosmos, el gerente de Astros
le dirá que todavía hay20 horas hombres
que se pueden usar para Astros. Luego,
se obtendrá una utilidad de:
$30x50+$20x20=$1900 ¿es el máximo?
• Hay muchas formas de conseguir los
1900: todos los puntos de la recta
punteada: 20 A + 30 C = 1900. Ver fig.1.3.
• Vemos que las utilidades de una combinación
están dadas por paralelas a las rectas
anteriores. Siempre y cuando estemos dentro
de la región factible.
• Si vamos a la derecha aumenta la utilidad.
• Llegamos al punto más extremo con la recta
que costa el punto: A=60 y C=30.
• Lo que permite una utilidad de $20x60 + $30x30
= $2100. Ver fig. 1.4.
• Notar que ha pesar que C da más utilidad por
unidad, sólo tenemos 30 uu en la solución
Óptima y no las 50 que se pudo hacer.
1.3. Linealidad
• El ejemplo anterior se refiere a
programación matemática lineal.
• La solución de programas lineales suele
ser más fácil que los programas
matemáticos generales. Veamos el tema
de la linealidad.
• Aplicamos PL directamente sólo a
situaciones en la cuales los efectos de las
diferentes actividades podemos usar son
lineales.
• Para efectos prácticos, podemos pensar como
requerimientos de linealidad cumplir con 3
características:
• Proporcionalidad: Los efectos de un variable o
actividad son por si mismos proporcionales.(ej,.
Doble cantidad de acero: doble costo)
• Aditividad: las interacciones entre variables
deben ser aditivas. (ej.$ de las ventas= $ ventas
Al; $ ventas acero)
• Continuidad: Las variables deben ser continuas.
( ej. 4.35 es permitido).
• En fig. 1.5. ejemplos de no linealidad.
1.4. Análisis de soluciones
• Cuando se usa la computadora los
resultados se presentan como se muestra
en la fig.1.6.
• Primero busca la región factible; puede
ocurrir que sea no factible y así se muestra.
(ej, x≤2 y x≥3): “No feasible solution”.
• Si es factible sale la solución óptima: de los
contrario: “Unbounded solution” (∞)
• Click en boton Solve/“bulls eye”, ó use menu Lingo/Solve, o presione Ctrl+U
o iluminar – boton cer y solve; para resolver el modelo. Resultado:
• Global optimal solution found.
• Objective value: 2100.000
• Infeasibilities: 0.000000
• Total solver iterations: 1
• Model Class: LP
• Total variables: 2
• Nonlinear variables: 0
• Integer variables: 0
• Total constraints: 4
• Nonlinear constraints: 0
• Total nonzeros: 6
• Nonlinear nonzeros: 0
• Variable Value Reduced Cost
• A 60.00000 0.000000
• C 30.00000 0.000000
• Row Slack or Surplus Dual Price
• 1 2100.000 1.000000
• 2 0.000000 5.000000
• 3 20.00000 0.000000
• 4 0.000000 15.00000
La salida de Lingo tiene 3 secciones:
1) Sección informativa.
2) Sección de variables.
3) Sección de filas.
La máxima utilidad es producida por 60
Astros y 30 Cosmos.
La solución deja 0 de slack en la fila 2
(holgura de A)
deja 20 de slack en la fila 3 (holgura de C)
deja 0 de slack en la fila 4 (holgura de
trabajo)
• La col. 3 tiene un nº de costo de
oportunidad o marginal.
• Salen “reduced cost” y “dual prices” que
se discuten a continuación.
1.5. Análisis de sensibilidad, Costos
reducidos y Precios duales.
• La programación lineal real requiere gran
cantidad de datos.
• Es importante conocer como se altera el modelo
con cambios en los datos de entrada; a ello
responde el ANÁLISIS DE SENSIBILIDAD.
• El reporte de solución de LP provee información
suplementaria que es útil para el análisis de
sensibilidad. Esta información comprende:
costos reducidos y precios duales.
1.5.1. Costos reducidos
• Están asociados con cada variable en cualquier
solución.
• Si las uu de la función objetivo son $ y las uu de
la variable son galones; luego las uu de costo
reducido son $/gal.
• El costo reducido de una var. es la cantidad
mediante la cual la contribución a las utilidades
de la var. debe ser mejorada (reduciendo su
costo), antes que la variable en cuestión tenga
un valor positivo en una solución óptima.
• Una var. que ya aparece en la solución óptima
tendrá un costo reducido de 0.
• El costo reducido también es la tasa a la cual el
valor de la función objetivo se deteriorará si una
var., actualmente en 0, es arbitrariamente
forzada a incrementar una pequeña cantidad.
• Suponga que se reduce el costo de x en
$2/galón. Significa que si la rentabilidad de x
fuera incrementada en $2/galón, entonces 1 uu
de x podría incluirse en la solución sin afectar la
utilidad total.
• La utilidad total se reduce en $2 si x fuera
incrementada en 1 sin alterar su contribución a
las utilidades originales.
1.5.2. Precios duales
• Están asociados con cada restricción. Si
las uu de la función objetivos son soles y
las uu de la restricción son kg las uu del
precio dual son soles por kg.
• El precio dual de una restricción es la tasa
a la cual el valor de la función objetivo
mejorará cuando el lado derecho de la
restricción es incrementada en una
pequeña cantidad.
• Para LINGO el incremento del precio dual
+ significa incremento en el lado der. De la
restricción mejorando el valor de la
función objetivo.
• Un precio dual – significa que un
incremento del lado der. De la restricción
originará una disminución de la función
objetivo.
• Si el precio dual es 0 significa que
cambios en el lado der. en pequeñas
cantidades no tendrá efecto sobre el valor
solución.
• En el caso Enginola:
• El precio dual de la restricción A<= 60 es $5.
Uno podría sospechar que es $20, porque si
produzco una uu más de Astro la contribución a
la utilidad es $20. Pero ello requiere sacrificar
algo en algún lado.
• El trabajo adicional de Astro requiere sacrificar
trabajo de Cosmo. (En trabajo 1 uu de A = ½ de
Cosmo).
• Osea producir una uu más de Astro implica
reducir la producción de Cosmos en ½ uu.
Luego el incremento neto en las utilidades es
$20- (1/2)*30=$5
• El precio dual de $15/hr sobre restricción
de trabajo. Si tenemos 1 hr màs de trabajo
se usará en producir Cosmos, porque
tiene una utilidad de $30 por uu.
• Una uu de Cosmo da una utilidad de 30 y
como solo 1 hr de trabajo es suficiente
para ½ Cosmo; luego el valor adicional de
1 hr de trabajo es $15.
1.6. Formulaciones sin límites
• Si no incluimos la restricción de trabajo y
la restricción de la producción de Cosmos;
entonces la cantidad ilimitada de utilidad
es posible mediante la producción de un
gran número de Cosmos.Ej.:
MAX = 20*A + 30*C;
A<=60;
Se generará una ventana de error:
Unbounded Solution. Ver fig 1.7.
1.7. Formulaciones no factibles
• Ejemplo, si el lado der de la restricción sobre el
trabajo es190 y el simbolo de desigualdad
cambia; la solución se vuelve indefinida.
• Maximizar: 20 A + 30 C
Sujeto a:
A <= 60
C <= 50
A+2C >= 190

Si todos trabajan al máx se tendrá 60x1 + 50x2 <


190. Ver fig 1.8.
1.8. Soluciones óptimas
múltiples y degenerativas
• Para una formulación dada que tiene una
solución óptima definida; habrá un valor
de función objetivo óptimo único. Sin
embargo, pueden ser varias diferentes
combinaciones de valores de variables de
decisión que producen este valor óptimo
único. Tales soluciones se dice que con
degenerativas en algún sentido.
• En el problema Enginola, suponga que la
contribución a la utilidad de A sea de $15
en lugar de $20. El problema y una
solución son:
• MAX = 15 * A + 30 * C;
• A <=60;
• C <= 50;
• A + 2 * C <= 120;
Se encuentra la solución:
• Valor objetivo : 1800
Variable Valor Costo Reducido
A 20 0.0
C 50 0.0
Fila Holgura Precio Dual
1 1800.0 1.0
2 40.0 0.0
3 0.0 0.0
4 0.0 15.0
• La región factible, para utilidad de 1500 se
muestra en la fig 1.9 .
• Note que A+2C =120; y 15 A+30C=1500 son
paralelas. Se piensa que cualquier punto factible
sobre la línea A+2C =120 es óptimo.
• Asimismo, en la solución la holgura y el precio
dual de la restricción 3: C<=50 es 0. Ello sugiere
que si que la producción de Cosmos podría
decrecer una pequeña cantidad sin efectos
sobre las ganancias totales.(siempre y cuando
se compense con Astros).
• Luego debe haber una solución alternativa que
produce más Astros y menos Cosmo. Así se
obtiene:
MAX = 15.0001 * A + 30 * C;
A <= 60;
C <= 50;
A + 2 * C <= 120;

Global optimal solution found.


Objective value: 1800.006

Variable Value Reduced Cost


A 60.00000 0.000000
C 30.00000 0.000000

Row Slack or Surplus Dual Price


1 1800.006 1.000000
2 0.000000 0.1000000E-03
3 20.00000 0.000000
4 0.000000 15.00000

Como se predijo, la utilidad sigue siendo 1800. Cosmos ha decrecido


de 30 a 50, y Astros pasó de 60 a 20.
1.8.1. La condición “ojo de
serpiente”
- Una alternativa óptima puede existir solo si alguna fila en
el informe de la solución tiene ceros en la segunda y
tercera columna del reporte, una configuración que
algunos estadísticos aplicados llaman “ojos de
serpiente”.
- Es decir, una alternativa óptima sólo puede existir si
alguna variable tiene un valor (value) cero y costo
reducido cero, o alguna restricción tiene cero holgura y
cero precio dual.
- Los matemáticos se refieren a tales soluciones como
“degeneradas”.
• Si hay una alternativa óptima, puede encontrar que su
computadora da una solución diferente a la del texto. Sin
embargo, siempre debe obtener el mismo valor de
función objetivo.
• Hay, de hecho, dos maneras en que múltiples
soluciones óptimas puedan ocurrir. Para el ejemplo en la
figura 1.9, los dos informes de solución óptima difieren
sólo en los valores de las llamadas variables primitivas
(es decir, nuestras variables de decisión originales A, C)
y las variables de holgura en la restricción. También
pueden presentarse soluciones en las que existen
múltiples soluciones óptimas en las que sólo difieren las
variables duales. Considerar esta variación del problema
Enginola en la que la capacidad de la línea de Cosmo
se ha reducido a 30. La formulación es:
MAX = 20*A + 30*C;
A<60;
C<30;
A+2*C<120;
Global optimal solution found.
Objective value: 2100.000

Variable Value Reduced Cost


A 60.00000 0.000000
C 30.00000 0.000000

Row Slack or Surplus Dual Price


1 2100.000 1.000000
2 0.000000 20.00000
3 0.000000 30.00000
4 0.000000 0.000000
• De nuevo, observe los “ojos de serpiente” en la solución
( es decir, el par de seros en una fila de la solución)
• Esto sugiere que la capacidad de la línea de Cosmo (
RHS de la fila 3) podría cambiarse sin cambiar el valor
objetivo. La figura 1.10. ilustra la situación.
• Tres restricciones pasan por el punto A=60, C=30.
• Cualquieras dos de las restricciones determinan el
punto. De hecho, la restricción A+2C<=120 es
matemáticamente redundante ( es decir, podría quitarse
sin cambiar la región factible).
• Si disminuye el RHS (lado derecho) de la
fila 3 ligeramente, obtendrá esencialmente
la siguiente solución:
Optimal solution found at step: 0
Objective value: 2100.000
Variable Value Reduced Cost
A 60.00000 0.0000000
C 30.00000 0.0000000
Row Slack or Surplus Dual Price
1 2100.000 1.000000
2 0.0000000 5.000000
3 0.0000000 0.0000000
4 0.0000000 15.00000
• Note que esta solución difiere de la previa solo en los
valores duales.
• Podemos establecer al siguiente regla: Si un informe de
solución tiene la característica de “ojos de serpiente” (
es decir, una par de ceros en cualquier fila del informe)
entonces puede haber una solución óptima alternativa
que difiera tanto en las variables primitivas, las variables
duales, o en ambas.
• Si todas las restricciones son restricciones de
desigualdad, entonces “ojo de serpiente” de hecho
implica que hay una solución óptima aternativa.
• Si una o más restricciones son igualdad, el siguiente
ejemplo ilustra que “ojos de serpiente” no implica tiene
que haber una solución alternativa óptima.
MAX = 20*A;
A<=60;
C=30;
La solución única es:
Global optimal solution found.
Objective value: 1200.000
Variable Value Reduced Cost
A 60.00000 0.000000
C 30.00000 0.000000

Row Slack or Surplus Dual Price


1 1200.000 1.000000
2 0.000000 20.00000
3 0.000000 0.000000
1.8.2. Restricciones
degenerativas y redundantes
1.9. Modelos no lineales y
optimización global.
Fin

Você também pode gostar