Professional Documents
Culture Documents
0
Creado por Cristian Oliva
Qu es LINGO?
LINGO (Linear, INteractive, and General
Optimizer). Es una herramienta simple para utilizar la optimizacin lineal, no-lineal y enteros.
Permite formular problemas de gran tamao
en forma concisa.
Permite resolverlos
Permite analizar los resultados
consiste de 3 partes :
Funcin Objetivo
Una sola frmula que describe exactamente que es lo que se desea optimizar.
Variables
Cantidades que pueden ser cambiadas para producir el valor ptimo de la funcin objetivo
Restricciones
UN EJEMPLO
Una empresa fabrica tres productos 1,2 y 3. Cada producto
Prod.
1
Depart. 1
Depart. 2
Depart. 3
Benef.
2
3
4 hrs./unid. 1 hr./unid.
2 hrs./unid. 2 hr./unid.
3 hr./unid. $ 4
3 hr./unid. $ 2.5
Hrs. Total
600 horas
400 horas
300 horas
Modelo
Max 2 x1 4 x2 2.5 x3 s.a 3 x1 4 x2 2 x3 600 2 x1 x2 2 x3 400 x1 3 x2 3 x3 300 x1 , x2 , x3 0
Modelo LINGO
Cada Lnea en LINGO debe terminarse con un punto y coma ; . Tu modelo no se resolver sin ellos.
Modelo LINGO
Ya que los computadores no tienen el smbolo , LINGO Adopt la convencin de usar los caracteres <= para denotar . Sin embargo, tu puedes entrar simplemente <. Lo mismo ocurre para >=, tu puedes entrar simplemente >.
Modelo LINGO
Tambin podemos incluir al modelo LINGO comentarios, de tal manera que mejore la legibilidad de ste.
lneas, pero la expresin debe ser terminada por un punto y coma. Por ejemplo, podramos haber utilizado dos lneas para la funcin objetivo.
minsculas. Por lo tanto, los siguientes nombres de variables podran ser equivalentes.
TURBO, Turbo, turbo
LINGO, todos los nombres deben comenzar con un caracter (A-Z). Los otros pueden ser alfabticos, numricos o el smbolo _. Los nombres pueden tener una longitud de 32 caracteres.
permite expresar tu problema de una manera natural que es muy similar a la notacin matemtica.
elctrica que suministran energa requerida a cuatro ciudades. Cada planta puede suministrar las siguientes cantidades de kilowatt-hora (kwh) de energa elctrica : la planta 1, 35 millones; la planta 2, 50 millones; la planta 3, 40 millones. Las demandas mximas de energa en estas ciudades, que se presentan al mismo momento (2 p.m.) son las siguientes (en kwh): la ciudad 1, 45 millones; la ciudad 2, 20 millones; la ciudad 3, 30 millones; la ciudad 4; 30 millones. Los costos para enviar 1 milln de kwh de energa de una planta a una ciudad depende de la distancia que la energa tiene que viajar. Formule un PL que minimice el costo para satisfacer la demanda mxima de energa de cada ciudad.
Deman 45 da
Modelo
min z s.a
c
ij
ij
xij
x x
j i
ij
Oi Dj
ij
xij 0
Funcin Objetivo
min
c
ij
ij
xij
ij
cij
C(I,J)
xij
X(I,J));
Oi
Notacin Matemtica
Sintaxis LINGO
@FOR(PLANTAS(I) :
@SUM(CLIENTES(J) :
xij
X(I,J)
Oi
O(I));
Dj
Notacin Matemtica
Sintaxis LINGO
@FOR(CLIENTES(J) :
@SUM(PLANTAS(I) :
xij
X(I,J)
Dj
D(J));
EL MODELO LINGO ES
MODEL : MIN = @SUM(ARCOS(I,J) : C(I,J) * X(I,J)); @FOR(PLANTAS(I) : @SUM(CLIENTES(J):X(I,J))<=O(I)); @FOR(CLIENTES(J) : @SUM(PLANTAS(I):X(I,J))>=D(J)); END
ARCOS
SETS: PLANTAS / P1 P2 P3/ : O; CLIENTES / C1 C2 C3 C4/ : D; ARCOS(PLANTAS,CLIENTES) : C,X; ENDSETS
MODELO LINGO
CARACTERISTICAS ADICIONALES
PODEMOS COLOCARLES NOMBRES A NUESTRA FUNCION OBJETIVO, RESTRICCIONES Y UN TITULO AL MODELO Ejemplo 1: [objetivo] MIN = X; Ejemplo 2: @FOR(PLANTAS(I) : [oferta_planta] @SUM(CLIENTES(J):X(I,J))<=O(I));
Problema
Almacn Fbrica
1
12 10 14
2
13 12 11
3
10 14 15
4
11 10 12
Oferta
1 2 3
Demanda
10 9 7 26
relacionados. Un conjunto (set) puede ser una lista de productos, camiones o empleados. Cada miembro del conjunto puede tener una o ms caractersticas relacionadas con l. Estas caractersticas se conocen bajo el nombre de atributos. Los valores de los atributos pueden ser conocidos o desconocidos.
Usando Conjuntos
Un conjunto primitivo se define de la
siguiente manera :
setname [/lista_miembros/][: lista_atributos];
PLANTAS / P1 P2 P3/ : O;
Usando Conjuntos
Un conjunto primitivo se define de la
siguiente manera :
setname [/lista_miembros/][: lista_atributos];
PLANTAS / miembro1..miembroN/ : O;
Usando Conjuntos
Lista miembros Implcito (formato) Ejemplo Conjunto de miembros
1..n
stringM..stringN
1..5
1,2,3,4,5
DayM..dayN
monthM..monthN
TRUCKS3.. TRUCKS3, TRUCKS204 TRUCKS4, ,TRUCKS 204 MON..FRI MON,TUE, WED,THU,F RI OCT..JAN OCT,NOV,D EC,JAN
Usando Conjuntos
Como una ilustracin, en el ejemplo
Usando Conjuntos
Una forma alternativa, cuando se utiliza el formato
1..n, tu puedes definir la longitud del conjunto en la seccin DATA y entonces realizar la referencia :
DATA:
Nmero_de_plantas = 3;
ENDDATA SETS:
PLANTAS /1..Nmero_de_plantas/ : O;
ENDSETS
especificas :
El nombre del conjunto Sus conjuntos PADRES Opcionalmente, sus miembros Opcionalmente, sus atributos
setname(Lista_conj_padres)[/lista_miembros/][:lista_atrib]
Operadores lgicos reconocidos por LINGO son : #EQ# igual #NE# distinto #GE# mayor o igual que #GT# mayor #LT# menor que #LE# menor o igual que
Funciones
funcin
@FOR @SUM @MIN @MAX
uso
Es utilizado para generar conjuntos de restricciones Calcula la suma de una expresin sobre todos los miembros de un conjunto Calcula el mnimo de una expresin sobre todos los miembros de un conjunto Calcula el mximo de una expresin sobre todo los miembros de un conjunto
Funcin @SUM
SETS: CLIENTES / C1 C2 C3 C4 C5/ : Demanda; ENDSETS DATA : DEMANDA = 5 1 3 4 6; ENDDATA Demanda_total = @SUM(CLIENTES(J):DEMANDA(J));
Demanda_total = @SUM(CLIENTES:DEMANDA);
Demanda_3 = @SUM(CLIENTES(J)|J #LE3# :DEMANDA(J));
Funcin @FOR
SETS:
CAMIONES / RENAULT FORD DODGE / : CARGA;
definicin
Variable entera Variable binaria Cualquier valor Rango para la variable
Sintaxis
@GIN(nombre_variable). @GIN(X);
Modelo LINGO
MODEL: SETS:
ARTICULOS /A1..A10/: PESO, RATING, INCLUYE;
ENDSETS
DATA: PESO RATING = 1 2 3 9 4 3 3 8 4 10 1 6 5 4 10 10; CAPACIDAD_MOCHILA = 15; ENDDATA
Modelo LINGO
MAX = @SUM(ARTICULOS: RATINGS * INCLUYE); @SUM(ARTICULOS:PESO*INCLUYE)<=CAPACIDAD_MOCHILA; @FOR(ARTICULOS:@BIN(INCLUYE));
END
VARIABLES ACOTADAS
@BND(cota_inferior,nombre_variable,cota_superior);