Tutorial Lindo Lingo
Enviado por cuencapichilen • 7 de Octubre de 2013 • 3.934 Palabras (16 Páginas) • 585 Visitas
Investigación Operativa 2002
Software Para Programación Lineal
– LINGO/LINDO–
1
Erica Canizo
Paola Lucero
Presentaremos dos tipos de programas para resolver modelos de programación lineal.
LINGO
Generalidades
LINGO: (LINear Generalize Optimizer) es una herramienta simple para
formular problemas lineales y no lineales, resolverlos y analizar su solución. El resultado
que LINGO nos proporciona es la optimización que nos ayuda a encontrar el mejor
resultado: la ganancia más alta, o el costo más bajo. A menudo estos problemas involucran
el uso más eficiente de los recursos. Los problemas de optimización son clasificados a
menudo como lineales o no lineales, dependiendo si las relaciones en el problema son
lineales con respecto a las variables.
Uno de los rasgos más poderosos de LINGO es su aplicación en el lenguaje de
modelo matemático. El cual permite expresar un problema de una manera muy similar a la
anotación matemática normal pudiendo también, expresar una serie entera de restricciones
en una declaración compacta. Esto lleva a modelos que son mucho más fáciles de
mantener.
Otro aspecto es la sección de los datos, que le permite aislar los datos de la
formulación del modelo. De hecho LINGO puede leer datos incluso de una hoja de cálculo
separada, base de datos, o archivo de texto. Con datos independientes del modelo, es mucho
más fácil 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 máximo, Deben comenzar
con una letra seguido de letras, dígitos o _ . El compilador de LINGO no distingue entre
mayúsculas y minúsculas.
Con respecto a las sentencias:
Todas las sentencias deben terminar en un punto y coma.
Para darle un nombre a la función objetivo o a las restricciones, estos se deben
colocar entre corchetes.
Para declarar la función objetivo debemos colocar las palabras reservadas MAX
o MIN, resaltadas en azul, seguidas del signo =.
Los comentarios deben comenzar con un signo !, los cuales son resaltados en
verde.
Investigación Operativa 2002
Software Para Programación Lineal
– LINGO/LINDO–
2
Erica Canizo
Paola Lucero
Los archivos generados por LINGO tiene la extensión. LG4.
Nombre de las restricciones
LINGO tiene la habilidad de nombrar las restricciones en su modelo. Ésta es
una práctica buena por dos razones. Primero, los nombres de restricciones se usan en el
reporte de las soluciones que los hacen más fácil interpretar. Segundo, muchos de los
mensajes del error de LINGO se refieren a una restricción dada por nombre.
Dar nombre a una restricción es bastante simple. se inserta el nombre entre
corchetes, adelante de una línea de código. El nombre debe obedecer los requisitos
normales para un nombre de LINGO.
Uso de funciones de dominio de variables
A menos que especificifique lo contrario, el valor de las variables por defecto
en un modelo de LINGO son no-negativo y continuas. Más específicamente, las variables
pueden asumir algún valor real desde cero a infinito positivo. En muchos casos, este
dominio de valor por defecto puede ser impropio. Por ejemplo, usted puede querer una
variable que asuma valores negativos, o se podría querer una variable restringida
puramente a valores enteros. LINGO proporciona cuatro funciones de variables dominio
que le permite sustituir el dominio predefinido de una variable. Los nombres de estas
funciones y una descripción breve de su uso son:
@GIN restringe una variable para comenzar con valores enteros,
@BIN hace una variable binario (es decir, 0 o 1). Por ejemplo @BIN( X);
@FREE permite que una variable pueda asumir algún valor real, positivo o negativa
@BND limita una variable dentro de un rango finito.
» Variables enteras y binarias
LINGO le da la posibilidad de definir dos tipos de variables enteras, una
general y otra binaria. Una variable entera general requiere ser un número entero. Una
variable entero binaria requiere ser cero o uno. Cualquier modelo que contiene uno o más
variables enteras, es requerido para un modelo programación entera (IP)
En muchos proyectos de modelos, usted se enfrentará con tipos de decisiones (si/no).
Algunos ejemplos incluirían Produce/No Produce, Abre un Plan/Cierra un Plan, etc. Las
variables binarias son el método normal usado por modelar estas decisiones de si/no.
Investigación Operativa 2002
Software Para Programación Lineal
– LINGO/LINDO–
3
Erica Canizo
Paola Lucero
» Variables libres
Por defecto, las variables en LINGO tiene un límite inferior de cero y un límite
superior de infinito. @FREE quita el límite inferior cero y permite que la variable tome
valores negativos. La sintaxis es:
@FREE (variable_name);
donde la variable_name es el nombre de la variable libre.
La función de @FREE puede usarse en cualquier parte del modelo donde
normalmente iría restricción. Algunos ejemplos de @FREE son:
Ejemplo 1: @FREE (X);
hace una variable X libre
» Variables limitadas
Considerando que @FREE pone el límite superior e inferior de la variable
especificada a más-menos infinito (quitando cualquier límite en la variable), la función de
@BND le permite poner límite superior e inferior específicos en una variable. En otras
palabras, @BND limita el rango de una variable dentro de algún intervalo. La sintaxis para
@BND es:
@BND (lower_bound, variable_name, el upper_bound);
donde el variable_name es la variable a ser limitada debajo por el lower_bound y limitado
superiormente por el upper_bound. Lower_bound y " upper_bound deben ser valores
numéricos o variables cuyos valores han sido fijados en la sección de datos. @BND puede
usarse en cualquier lugar que normalmente se usaría una restricción en el modelo. En
términos matemáticos, LINGO interpreta que este @BND funcionan como:
lower_bound <= variable_name <= upper_bound
Además, @BND no cuenta contra el límite con el número total de JERGA de
constreñimiento
...