ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Tutorial Lindo Lingo


Enviado por   •  7 de Octubre de 2013  •  3.934 Palabras (16 Páginas)  •  548 Visitas

Página 1 de 16

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

...

Descargar como (para miembros actualizados) txt (28 Kb)
Leer 15 páginas más »
Disponible sólo en Clubensayos.com