Lingo Lindo
Lingo Lindo
Lingo Lindo
Erica Canizo
Paola Lucero
Software Para Programacin Lineal
LINGO/LINDO
Presentaremos dos tipos de programas para resolver modelos de programacin lineal.
LINGO
Generalidades
Otro aspecto es la seccin de los datos, que le permite aislar los datos de la
formulacin del modelo. De hecho LINGO puede leer datos incluso de una hoja de clculo
separada, base de datos, o archivo de texto. Con datos independientes del modelo, es mucho
ms fcil de hacer cambios, y hay menos oportunidad de error cuando se realiza el modelo.
Sintaxis de LINGO
La sintaxis que se utiliza en este programa es muy sencilla. Para el nombre de
las variables se establece que deben tener 32 caracteres como mximo, Deben comenzar
con una letra seguido de letras, dgitos o _ . El compilador de LINGO no distingue entre
maysculas y minsculas.
1
Investigacin Operativa 2002
Erica Canizo
Paola Lucero
Software Para Programacin Lineal
LINGO/LINDO
2
Investigacin Operativa 2002
Erica Canizo
Paola Lucero
Software Para Programacin Lineal
LINGO/LINDO
Variables libres
Por defecto, las variables en LINGO tiene un lmite inferior de cero y un lmite
superior de infinito. @FREE quita el lmite inferior cero y permite que la variable tome
valores negativos. La sintaxis es:
@FREE (variable_name);
Variables limitadas
Considerando que @FREE pone el lmite superior e inferior de la variable
especificada a ms-menos infinito (quitando cualquier lmite en la variable), la funcin de
@BND le permite poner lmite superior e inferior especficos en una variable. En otras
palabras, @BND limita el rango de una variable dentro de algn intervalo. La sintaxis para
@BND es:
3
Investigacin Operativa 2002
Erica Canizo
Paola Lucero
Software Para Programacin Lineal
LINGO/LINDO
Operadores y Funciones
PRIORITYLEVEL OPERATOR(S)
Highest #NOT# - (negation)
^
* /
+ -
#EQ# #NE# #GT# #GE# #LT# #LE#
#AND# #OR#
Lowest <= = >=
Import/Export - son funciones que crean conexiones con las fuentes de los datos
externas.
4
Investigacin Operativa 2002
Erica Canizo
Paola Lucero
Software Para Programacin Lineal
LINGO/LINDO
Problema
1. ENUNCIADO
La empresa WINDOOR Ltda. fabrica puertas y ventanas de madera. Existen dos modelos
de puertas: puertas dobles y puertas simples: y dos modelos de ventanas: ventanas dobles y
ventanas simples. El insumo ms importante es la madera. El proceso de corte de las partes
se realiza en dos sierras elctricas de precisin y el barnizado lo efecta personal
experimentado. Las cantidades de madera y los tiempos de corte y barnizado que requiere
cada producto se muestran en la Tabla 1.
5
Investigacin Operativa 2002
Erica Canizo
Paola Lucero
Software Para Programacin Lineal
LINGO/LINDO
VARIABLES DE DECISION
RESTRICCIONES
A. Disponibilidad de recursos
La cantidad de madera utilizada en la produccin total no puede exceder la cantidad
mxima que la empresa puede adquirir.
4.0x1 + 1.5x2 + 3.0x3 + 1.8x4 =<800
La cantidad de horas mquina de sierra utilizada no puede exceder la cantidad
mxima disponible.
1.5x1 + 1.0x2 + 2.0x3 + 0.8x4 =<400
La cantidad de horas hombre para barnizado utilizada no puede exceder la cantidad
mxima disponible.
2.0x1 + 1.2x2 + 1.5x3 + 0.8x4 =<400
B. Cumplimiento de compromisos de entrega
La cantidad de puertas simples debe ser al menos suficiente para cumplir los
compromisos contrados.
x2>= 90
La cantidad producida de ventanas dobles debe ser al menos suficiente para cumplir
con los compromisos contrados.
X3>= 50
C. No negatividad de las variables
x1 , x2 , x3 , x4>= 0
FUNCION OBJETIVO
6
Investigacin Operativa 2002
Erica Canizo
Paola Lucero
Software Para Programacin Lineal
LINGO/LINDO
Hay que destacar que, tanto el beneficio como el costo total, dependen de las
cantidades que finalmente se decida producir, es decir, dependen de las variables que se
definieron.
RESUMEN
7
Investigacin Operativa 2002
Erica Canizo
Paola Lucero
Software Para Programacin Lineal
LINGO/LINDO
La ventana de estado del Solver Status es til para controlar el progreso del
solver.
8
Investigacin Operativa 2002
Erica Canizo
Paola Lucero
Software Para Programacin Lineal
LINGO/LINDO
9
Investigacin Operativa 2002
Erica Canizo
Paola Lucero
Software Para Programacin Lineal
LINGO/LINDO
Campo No Factible: Muestra la cantidad por la cual todas las restricciones han sido
violadas.
Campo de Iteraciones: El Campo de las Iteraciones despliega una cuenta del nmero de
iteraciones completada por el solver de LINGO. La operacin fundamental realizado
por el este se llama iteracin. Una iteracin involucra una variable, actualmente cero a
un valor que sera atractivo introducir en la solucin a un valor distinto de cero. Esta
variable se introduce entonces en la solucin consecutivamente con valores ms
grandes hasta alguna restriccin. En general, cuando un modelo es considerable, exigir
a ms iteraciones a resolver y cada iteracin requerir ms tiempo para completar.
La ventana de estado del solver tambin provee un botn de interrupcin que permite
interrumpir el solver en la prxima iteracin.
10
Investigacin Operativa 2002
Erica Canizo
Paola Lucero
Software Para Programacin Lineal
LINGO/LINDO
11
Investigacin Operativa 2002
Erica Canizo
Paola Lucero
Software Para Programacin Lineal
LINGO/LINDO
Precio dual: El informe de solucin tambin nos da el precio dual para cada
restriccin. Se puede interpretar el precio dual, como la cantidad en la que
el objetivo mejorara por el trmino constante de la restriccin aumentado
en una unidad. Retomando el ejemplo, en la solucin del problema, el
precio dual de 37.5 en la disponibilidad de recursos 2 (hs. Mquina) si
agregamos una unidad ms de trabajo causaramos que el valor objetivo
mejorara en 37.5 unidades, a un valor de 11.862,5. El trmino mejorar es
relativo. En un problema de maximizacin, mejorar significa que el valor
objetivo aumentara. Sin embargo, en un problema del minimizacin, el
valor objetivo disminuira. A veces se llaman a los precios duales precios
sombra.
12
Investigacin Operativa 2002
Erica Canizo
Paola Lucero
Software Para Programacin Lineal
LINGO/LINDO
13
Investigacin Operativa 2002
Erica Canizo
Paola Lucero
Software Para Programacin Lineal
LINGO/LINDO
LINGO\Solve
El comando Solve se utiliza para resolver el modelo en la ventana activa.
14
Investigacin Operativa 2002
Erica Canizo
Paola Lucero
Software Para Programacin Lineal
LINGO/LINDO
LINGO|Solution
El comando Solution se usa para generar un informe de la solucin para la
ventana activa. El informe de la solucin puede estar en formato de texto o grfico. Luego
de emitir el comando Solve y generado el reporte de solucin se selecciona la ventana del
modelo y se emite este comando.
15
Investigacin Operativa 2002
Erica Canizo
Paola Lucero
Software Para Programacin Lineal
LINGO/LINDO
En el box Type of Output se puede seleccionar la salida de texto o de grfico.
Si se selecciona texto, LINGO crear una nueva ventana que contiene la solucin en
formato del texto. Si se selecciona grfico se crear una nueva ventana que contiene la
solucin en uno de varios formatos grficos diferentes. Se soporta formato de grficos de
barra, lnea, y de crculos. Esta opcin se selecciona en el box de Graphics properties, en
graphics type.
LINGO|Range
El comando Range sirve para generar un informe del rango para el modelo en la
ventana activa. Un informe del rango muestra encima de qu rangos que usted puede, 1) el
cambio un coeficiente en el objetivo sin causar cualquiera de los valores ptimos de las
variables de decisin puedan cambiar, o, 2) el cambio el trmino constante de una fila
(tambin llamado el coeficiente lateral diestro) sin causar cualquiera de los valores ptimos
de los precios duales o costos reducidos puedan cambiar.
16
Investigacin Operativa 2002
Erica Canizo
Paola Lucero
Software Para Programacin Lineal
LINGO/LINDO
LINGO|Options
Interface,
Solver General,
Solver Lineal,
Nonlinear Solver,
Integer Pre-Solver
Integer Solver.
17
Investigacin Operativa 2002
Erica Canizo
Paola Lucero
Software Para Programacin Lineal
LINGO/LINDO
LINGO|Picture
Este comando despliega el modelo en forma de matriz
LINDO
Generalidades
Sintaxis
18
Investigacin Operativa 2002
Erica Canizo
Paola Lucero
Software Para Programacin Lineal
LINGO/LINDO
En lo que respecta al nombre de las variables LINDO tiene un lmite de 8
caracteres para nombrarlas. El nombre debe ser un carcter alfabtico (A-Z) seguido de
cualquier carcter excepto ! ) + - = < >.
PROBLEMA EJEMPLO
19
Investigacin Operativa 2002
Erica Canizo
Paola Lucero
Software Para Programacin Lineal
LINGO/LINDO
20
Investigacin Operativa 2002
Erica Canizo
Paola Lucero
Software Para Programacin Lineal
LINGO/LINDO
21
Investigacin Operativa 2002
Erica Canizo
Paola Lucero
Software Para Programacin Lineal
LINGO/LINDO
Tambin podemos ver el valor de las variables luego de cada iteracin para esto
vamos al men Reports y seleccionamos el comando Tableau.
Continuando con el anlisis del programa el resto de las funciones que podemos
realizar en LINDO tambin son similares a las de LINGO
22