Sesión 04 - Introducción A Lingo

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 33

Introducción al Software Lingo

Mgtr. Ing. Marcos Gregorio Baca López


mbaca@usat.edu.pe
SIMULACIÓN DE PROCESOS INDUSTRIALES
PROGRAMACIÓN LINEAL

Introducción al Software Lingo Tema 1/ Sesión 3

Mgtr. Ing. Marcos G. Baca López


Logro de la Sesión

• Conocer los componentes de un modelo de optimización en


Lingo de forma desarrollada y Compacta.
Diseño de título y objetos con lista

• Acerca de Lingo
• Solución de un problema de programación lineal con “Lingo”
» El problema
» El modelo matemático
• Ingresando los datos a Lingo
» Objective Function
» Value
» Slack or Surplus
» Dual Price
Software Lingo
Contiene un potente lenguaje
para expresar modelos de
LINGO es una herramienta diseñada optimización

para construir y resolver modelos de


optimización matemática. Resolver de manera eficiente la
mayoría de las clases de modelos
de optimización.

Lineal, no-lineal y enteros

Los modelos que no precisan de un


complejo uso de recursos pueden
resolverse con una sintaxis
sumamente sencilla.
¿Qué es LINGO?
• LINGO (Linear, INteractive, and General Optimizer).

 Es una herramienta simple para utilizar la optimización lineal, no-lineal y


enteros.

 Permite formular problemas de gran tamaño en forma concisa.

 Permite resolverlos

 Permite analizar los resultados


Creando un Modelo LINGO
• En general, un modelo de optimización consiste de 3 partes :

 Función Objetivo
Una sola fórmula que describe exactamente que es lo que se desea
optimizar.
 Variables
Cantidades que pueden ser cambiadas para producir el valor óptimo
de la función objetivo
 Restricciones
Fórmulas que definen los límites de los valores de las variables
Ingresando los datos en Lingo
Objective Function: Nos muestra el resultado de nuestra función objetivo.

Value: Es el valor que toman las variables de decisión en la función objetivo.

Slack or Surplus:

Cuando la restricción en cuestión tiene el operador <=, corresponde a una holgura, es decir, se
puede interpretar como el recurso no utilizado.

Cuando la restricción en cuestión tiene el operador >=, corresponde a un exceso, es decir, se


puede interpretar como el recurso utilizado por encima de la restricción de mínimo uso.

Dual Price: El precio sombra de una restricción, es el cambio marginal de la función objetivo
cuando el valor del lado derecho de la restricción aumenta en una unidad.
Modelo LINGO
También podemos incluir al modelo LINGO comentarios,
de tal manera que mejore la legibilidad de éste.
Sintaxis general de LINGO
• Una expresión puede ser escritas en muchas líneas, pero la
expresión debe ser terminada por un punto y coma. Por ejemplo,
podríamos haber utilizado dos líneas para la función objetivo.

 LINGO no diferencia entre letras mayúsculas o minúsculas. Por


lo tanto, los siguientes nombres de variables podrían ser
equivalentes.
Sintaxis general de LINGO

• Cuando se le dan nombres a las variables en LINGO, todos los nombres


deben comenzar con un caracter (A-Z). Los otros pueden ser alfabéticos,
numéricos o el símbolo _. Los nombres pueden tener una longitud de 32
caracteres.
Resolviendo un modelo LINGO

• Una vez que el modelo ha sido entrado en la « ventana


modelo », éste puede ser resuelto mediante :

• Un click en el botón « solve »

• Seleccionando « solve » del menú LINGO

• Si existen errores, éstos serán informados


Ventana de Status del Solver LINGO

• Si no se encontraron errores, la ventana del status del solver de LINGO aparece.

Aparece también el informe de la solución.


Utilizando el Lenguaje de Modelamiento
• Una de las características más poderosas de LINGO es su lenguaje de
modelamiento matemático.

El lenguaje de modelamiento de LINGO permite expresar


tu problema de una manera natural que es muy similar a la
notación matemática.
El Lenguaje Lingo

Para iniciar un modelo, suele emplearse la palabra


model y cuando este concluye, la palabra end, pero
ambas palabras son prescindibles.
El Lenguaje Lingo

• Definición de conjuntos:
Se inicia con la palabra sets, seguida de “:”.

En esta sección se definen o declaran los conjuntos de objetos propios de cada caso y
sus atributos.
Los atributos pueden ser los datos o las variables que se asocian a cada elemento de
cada conjunto.
Esta sección del modelo debe concluir con las palabras en inglés endsets (ya sea
juntas o separadas).
Usando Conjuntos (Sets)

LINGO reconoce 2 tipos de conjuntos :


• Primitivos : Es un conjunto compuesto sólo de
objetos que no pueden ser reducidos
posteriormente. Ejemplo : PLANTAS
• Derivados : Es definido a partir de uno o más
conjuntos. Ejemplo : ARCOS
Usando Conjuntos

• Un conjunto primitivo se define de la siguiente manera :


–setname [/lista_miembros/][: lista_atributos];

Listado explícito de la lista miembros

–PLANTAS / P1 P2 P3/ : O;
Usando Conjuntos
Lista miembros Implícito Ejemplo Conjunto de miembros
(formato)
1..n 1..5 1,2,3,4,5
stringM..stringN TRUCKS3.. TRUCKS3,
TRUCKS204 TRUCKS4,…,TRUC
KS204
DayM..dayN MON..FRI MON,TUE,WED,TH
U,FRI
monthM..monthN OCT..JAN OCT,NOV,DEC,JAN
Operadores lógicos reconocidos por LINGO son
:

#EQ# igual
#NE# distinto
#GE# mayor o igual que
#GT# mayor
#LT# menor que
#LE# menor o igual que
Carga de los datos - DATA:

Se inicia con la palabra data, seguida de “:”. en la que se


definen los valores que tomarán los atributos del modelo
declarados previamente en sets, así como el resto de
datos.
Debe concluir con enddata.
¡Cuidado!
Es común observar que los usuarios del Lingo omiten los dos puntos que
deben colocarse luego de las palabra sets o data y generan un error que
impide que el software resuelva el modelo.
El Lenguaje Lingo - MODELO
Es decir, las expresiones para la función objetivo y las restricciones. Para la
construcción del modelo en el lenguaje del Lingo, se utilizan las siguientes funciones:
El Lenguaje Lingo
Funciones

función uso

@FOR Es utilizado para generar conjuntos de


restricciones
@SUM Calcula la suma de una expresión sobre
todos los miembros de un conjunto
@MIN Calcula el mínimo de una expresión sobre
todos los miembros de un conjunto
@MAX Calcula el máximo de una expresión sobre
todo los miembros de un conjunto
Usando funciones de dominios para
variables
Tipos variables definición

@GIN Variable entera

@BIN Variable binaria

@FREE Cualquier valor

@BND Rango para la


variable
Sintaxis

• @GIN(nombre_variable).
– @GIN(X);
El Lenguaje Lingo

Recuperado de: https://www.facebook.com/MUNDOIOSAC/videos/3103259319930564


Ejemplo

Recuperado de: https://www.facebook.com/MUNDOIOSAC/videos/3103259319930564


Ejemplo

Recuperado de: https://www.facebook.com/MUNDOIOSAC/videos/3103259319930564


@sum

Recuperado de: https://www.facebook.com/MUNDOIOSAC/videos/3103259319930564


@for

Recuperado de: https://www.facebook.com/MUNDOIOSAC/videos/3103259319930564


Referencias

Con Fines pedagógico adaptado de:


Tutorial SOFTWARE LINGO 8.0 - Creado por Cristian Oliva:
https://slideplayer.es/amp/18025936/
Tutorial SOFTWARE LINGO-MSc. Ing° Ezzard Omar Alvarez Díaz_Universidad Nacional
Mayor de San Marcos Facultad de Ingeniería Industrial

También podría gustarte