Upload
utopia78978
View
452
Download
0
Embed Size (px)
5/13/2018 Lingo Tutorial - slidepdf.com
http://slidepdf.com/reader/full/lingo-tutorial-55a751d3c0856 1/50
I n v e
s t i g a c i ó n O
p e r a t i v a I
I n v e
s t i g a c i ó n O
p e r a t i v a I
Tutorial SOFTWARE LIN
Universidad Nacional Mayor de San Facultad de Ingeniería Industrial
LINGO Document
5/13/2018 Lingo Tutorial - slidepdf.com
http://slidepdf.com/reader/full/lingo-tutorial-55a751d3c0856 2/50
I n v e
s t i g a c i ó n O
p e r a t i v a I
I n v e
s t i g a c i ó n O
p e r a t i v a I
I n v e
s t i g a c i ó n O
p e r a t i v a I
I n v e
s t i g a c i ó n O
p e r a t i v a I ¿Qué es LINGO?
LINGO (Linear, INteractive, and GOptimizer).
j
Es una herramienta simple paraoptimización lineal, no-lineal y ente
jPermite formular problemas
tamaño en forma concisa.jPermite resolverlos
jPermite analizar los resultados
5/13/2018 Lingo Tutorial - slidepdf.com
http://slidepdf.com/reader/full/lingo-tutorial-55a751d3c0856 3/50
I n v e
s t i g a c i ó n O
p e r a t i v a I
I n v e
s t i g a c i ó n O
p e r a t i v a I
I n v e
s t i g a c i ó n O
p e r a t i v a I
I n v e
s t i g a c i ó n O
p e r a t i v a I Creando un Modelo LING
En general, un modelo de optimizaconsiste de 3 partes :
j Función ObjetivoUna sola fórmula que describe exactamente
se desea optimizar.
j Variables
Cantidades que pueden ser cambiadas pa
valor óptimo de la función objetivo
j Restricciones
Fórmulas que definen los límites de los
variables
5/13/2018 Lingo Tutorial - slidepdf.com
http://slidepdf.com/reader/full/lingo-tutorial-55a751d3c0856 4/50
I n v e
s t i g a c i ó n O
p e r a t i v a I
I n v e
s t i g a c i ó n O
p e r a t i v a I
I n v e
s t i g a c i ó n O
p e r a t i v a I
I n v e
s t i g a c i ó n O
p e r a t i v a I Con respecto a las
sentenc
Todas las sentencias deben terminar en u
y coma.
Para darle un nombre a la función objetivo
restricciones, estos se deben colocar en
corchetes.
Para declarar la función objetivo debemos
las palabras reservadas MAX o MIN, (apa
resaltadas en azul) seguidas del signo = Los comentarios deben comenzar con un
los cuales aparecen resaltados en verde.
que las sentencias los comentarios finaliz
un punto y coma.
5/13/2018 Lingo Tutorial - slidepdf.com
http://slidepdf.com/reader/full/lingo-tutorial-55a751d3c0856 5/50
I n v e
s t i g a c i ó n O
p e r a t i v a I
I n v e
s t i g a c i ó n O
p e r a t i v a I
I n v e
s t i g a c i ó n O
p e r a t i v a I
I n v e
s t i g a c i ó n O
p e r a t i v a I
Una formulación en LING
tiene tres secciones:
Sección de conjuntos, SETS, que
especifica los conjuntos y sus atri
Sección de datos, DAT A, que
proporciona los datos a usar o ind
donde obtenerlos
Sección del modelo, MODEL, lugdonde se describe el modelo
matemático.
5/13/2018 Lingo Tutorial - slidepdf.com
http://slidepdf.com/reader/full/lingo-tutorial-55a751d3c0856 6/50
I n v e s t i g a c i ó n O
p e r a t i v a I
I n v e s t i g a c i ó n O
p e r a t i v a I
I n v e s t i g a c i ó n O
p e r a t i v a I
I n v e s t i g a c i ó n O
p e r a t i v a I SECCION DE CONJUNT
Cada conjunto tiene la sintaxis siguiente:
NOMBRE/ LOS MIEMBROS/: LOS ATRIBUTOS;
SETS:
FABRICAS /F1, F2/: CAPACIDAD;
CENTROS /C1, C2, C3/: DEMANDA;
RUTAS (FÁBRICAS, CENTROS): C, X;
ENDSETS
Los conjuntos, FABRICAS y CENTROS se denominanconjuntos primitivos y el último se denomina conjunt
derivado, donde C y X representan, respectivamente, unitarios de transporte y cantidad transportada de las fabcentros.
5/13/2018 Lingo Tutorial - slidepdf.com
http://slidepdf.com/reader/full/lingo-tutorial-55a751d3c0856 7/50
I n v e s t i g a c i ó n O
p e r a t i v a I
I n v e s t i g a c i ó n O
p e r a t i v a I
I n v e s t i g a c i ó n O
p e r a t i v a I
I n v e s t i g a c i ó n O
p e r a t i v a I SECCION DE DATOS
Los valores de los atributos de los elementos dconjuntos, tienen la sintaxis siguiente:
DATA:CAPACIDAD = 30, 20;
DEMANDA = 10, 25, 15;
C = 2, 4, 6,
7, 10, 1;ENDDATA
5/13/2018 Lingo Tutorial - slidepdf.com
http://slidepdf.com/reader/full/lingo-tutorial-55a751d3c0856 8/50
I n v e s t i g a c i ó n O
p e r a t i v a I
I n v e s t i g a c i ó n O
p e r a t i v a I
I n v e s t i g a c i ó n O
p e r a t i v a I
I n v e s t i g a c i ó n O
p e r a t i v a I SECCION DEL MODELPara presentar el modelo se utiliza dos funciones @SUM y @FOR.
@SUM calcula la suma de una expresión sobre todos los miembros del conjunto.
La forma general es:
@SUM (set: expresión)
Suma la expresión que sigue a los dos puntos.
Por ejemplo:
@SUM (RUTAS: C*X)
Suma la expresión que sigue a los dos puntos que corresponde al producto del costo transporte por la cantidad transportada de cada origen a cada destino considerado.
La segunda función es @FOR , esta función sirve para generar restricciones sobre loun conjunto. La forma general es:
@FOR (set: restricción)
Por ejemplo:
@FOR (CENTROS (J): @SUM (FABRICAS(I):X(I,J))<=CAPACI
Indica que se genere la restricción que sigue a los dos puntos para cada miembro deles precede. Cada elemento del conjunto CENTROS (J) para J = 1, 2,3 se genera lasiguientes:
J = 1: X11 + X21 >= 10
J = 2: X12 + X22 >= 25
J = 3 X13 + X23 >= 15
5/13/2018 Lingo Tutorial - slidepdf.com
http://slidepdf.com/reader/full/lingo-tutorial-55a751d3c0856 9/50
I n v e s t i g a c i ó n O
p e r a t i v a I
I n v e s t i g a c i ó n O
p e r a t i v a I
I n v e s t i g a c i ó n O
p e r a t i v a I
I n v e s t i g a c i ó n O
p e r a t i v a I
UN EJEMPLO Una empresa fabrica tres productos 1,2 y 3. C
requiere tiempos de producción en tres dcomo se ilustra en la siguiente tabla :
Prod. Depart. 1 Depart. 2 Depart.
1 3 hrs./unid. 2 hrs./unid. 1 hr./un
2 4 hrs./unid. 1 hr./unid. 3 hr./un
3 2 hrs./unid. 2 hr./unid. 3 hr./un
Hrs.
Total
600 horas 400 horas 300 hor
5/13/2018 Lingo Tutorial - slidepdf.com
http://slidepdf.com/reader/full/lingo-tutorial-55a751d3c0856 10/50
I n v e s t i g a c i ó n O
p e r a t i v a I
I n v e s t i g a c i ó n O
p e r a t i v a I Modelo
0,,
30033
40022
60243
.
5.242
321
321
321
321
21
u
e
e
e
x x x
x x x
x x x
x x x
a s
x x Max
5/13/2018 Lingo Tutorial - slidepdf.com
http://slidepdf.com/reader/full/lingo-tutorial-55a751d3c0856 11/50
I n v e s t i g a c i ó n O
p e r a t i v a I
I n v e s t i g a c i ó n O
p e r a t i v a I Modelo LINGOCada Línea en LINGO debe terminarse con un punt
« ; ». Tu modelo no se resolverá sin ellos.
LINGO Document
5/13/2018 Lingo Tutorial - slidepdf.com
http://slidepdf.com/reader/full/lingo-tutorial-55a751d3c0856 12/50
I n v e s t i g a c i ó n O
p e r a t i v a I
I n v e s t i g a c i ó n O
p e r a t i v a I Modelo LINGO
;30033
;40022
600243
.242 max
321
321
321
21
!
x x x
x x x
x x x
x x
Ya que los computadores no tienen el símbolo e, LIN
Adoptó la convención de usar los caracteres <= par
Sin embargo, tu puedes entrar simplemente <. Lo m
para >=, tu puedes entrar simplemente >.
5/13/2018 Lingo Tutorial - slidepdf.com
http://slidepdf.com/reader/full/lingo-tutorial-55a751d3c0856 13/50
I n v e s t i g a c i ó n O
p e r a t i v a I
I n v e s t i g a c i ó n O
p e r a t i v a I Modelo LINGOTambién podemos incluir al modelo LINGO comenta
tal manera que mejore la legibilidad de éste.
LINGO Document
5/13/2018 Lingo Tutorial - slidepdf.com
http://slidepdf.com/reader/full/lingo-tutorial-55a751d3c0856 14/50
I n v e s t i g a c i ó n O
p e r a t i v a I
I n v e s t i g a c i ó n O
p e r a t i v a I
I n v e s t i g a c i ó n O
p e r a t i v a I
I n v e s t i g a c i ó n O
p e r a t i v a I Sintaxis general de LING Una expresión puede ser escritas en mu
líneas, pero la expresión debe ser termi punto y coma. Por ejemplo, podríamos
utilizado dos líneas para la función obje
LINGO Document
j LINGO no diferencia entre letras mo minúsculas. Por lo tanto, losnombres de variables podequivalentes.
TURBO, Turbo, turbo
5/13/2018 Lingo Tutorial - slidepdf.com
http://slidepdf.com/reader/full/lingo-tutorial-55a751d3c0856 15/50
I n v e s t i g a c i ó n O
p e r a t i v a I
I n v e s t i g a c i ó n O
p e r a t i v a I
I n v e s t i g a c i ó n O
p e r a t i v a I
I n v e s t i g a c i ó n O
p e r a t i v a I Sintaxis general de LING Cuando se le dan nombres a las variabl
LINGO, todos los nombres deben comun caracter (A-Z). Los otros pueden ser
alfabéticos, numéricos o el símbolo _. Lnombres pueden tener una longitud de caracteres.
5/13/2018 Lingo Tutorial - slidepdf.com
http://slidepdf.com/reader/full/lingo-tutorial-55a751d3c0856 16/50
I n v e s t i g a c i ó n O
p e r a t i v a I
I n v e s t i g a c i ó n O
p e r a t i v a I
I n v e s t i g a c i ó n O
p e r a t i v a I
I n v e s t i g a c i ó n O
p e r a t i v a I Resolviendo un modelo LIN Una vez que el modelo ha sido ent
« ventana modelo », éste puede semediante :
LINGO Document
Un click en el botón « solve »
Seleccionando « solve » del menú LINGO
Utilizando la tecla ctrl-s
Si existen errores, éstos serán informados
5/13/2018 Lingo Tutorial - slidepdf.com
http://slidepdf.com/reader/full/lingo-tutorial-55a751d3c0856 17/50
I n v e s t i g a c i ó n O
p e r a t i v a I
I n v e s t i g a c i ó n O
p e r a t i v a I
I n v e s t i g a c i ó n O
p e r a t i v a I
I n v e s t i g a c i ó n O
p e r a t i v a I
Ventana de Status del Sol
LINGO Si no se encontraron errores, la vestatus del solver de LINGO aparec
LINGO Document
j Aparece también el informsolución.
5/13/2018 Lingo Tutorial - slidepdf.com
http://slidepdf.com/reader/full/lingo-tutorial-55a751d3c0856 18/50
I n v e s t i g a c i ó n O
p e r a t i v a I
I n v e s t i g a c i ó n O
p e r a t i v a I
I n v e s t i g a c i ó n O
p e r a t i v a I
I n v e s t i g a c i ó n O
p e r a t i v a I
Utilizando el Lenguaje d
Modelamiento Una de las características más podLINGO es su lenguaje de modelammatemático.
jEl lenguaje de modelamiento d
permite expresar tu problema
manera natural que es muy sinotación matemática.
5/13/2018 Lingo Tutorial - slidepdf.com
http://slidepdf.com/reader/full/lingo-tutorial-55a751d3c0856 19/50
I n v e s t i g a c i ó n O
p e r a t i v a I
I n v e s t i g a c i ó n O
p e r a t i v a I
I n v e s t i g a c i ó n O
p e r a t i v a I
I n v e s t i g a c i ó n O
p e r a t i v a I
Powerco tiene tres plantas de generacióneléctrica que suministran energía requeridciudades. Cada planta puede suministrar la
cantidades de kilowatt-hora (kwh) de energía planta 1, 35 millones; la planta 2, 50 millones40 millones. Las demandas máximas de enerciudades, que se presentan al mismo momenson las siguientes (en kwh): la ciudad 1, 45
ciudad 2, 20 millones; la ciudad 3, 30 millon4; 30 millones. Los costos para enviar 1 millóenergía de una planta a una ciudad depende deque la energía tiene que viajar. Formuleminimice el costo para satisfacer la demanda
energía de cada ciudad.
Utilizando el Lenguaje d
Modelamiento
5/13/2018 Lingo Tutorial - slidepdf.com
http://slidepdf.com/reader/full/lingo-tutorial-55a751d3c0856 20/50
I n v
e s t i g a c i ó n O
p e r a t i v a I
I n v
e s t i g a c i ó n O
p e r a t i v a I
Utilizando el lenguaje
modelamientoC1
(US$)
C2
(US$)
C3
(US$)
C4
(US$
P1 8 6 10 9
P2 9 12 13 7
P3 14 9 16 5
Demanda
45 20 30 30
5/13/2018 Lingo Tutorial - slidepdf.com
http://slidepdf.com/reader/full/lingo-tutorial-55a751d3c0856 21/50
I n v
e s t i g a c i ó n O
p e r a t i v a I
I n v
e s t i g a c i ó n O
p e r a t i v a I
Modelo
i,j x
j D x
iO x
a s
xc z
ij
j
j
ij
i
iij
ij
u
!u
!e
!
§
§
§
0
1,2
1,2
.
minij
ij
5/13/2018 Lingo Tutorial - slidepdf.com
http://slidepdf.com/reader/full/lingo-tutorial-55a751d3c0856 22/50
I n v
e s t i g a c i ó n O
p e r a t i v a I
I n v
e s t i g a c i ó n O
p e r a t i v a I
Función Objetivo
§ijij
xcijmin
Lenguaje modelo LINGO
MIN = @SUM(ARCOS(I,J) : C(I,J) * X(I,J));
NotaciónMatemática
Sintaxis LINGO
min MIN =
@SUM(ARCOS(I,J
cij C(I,J)
xij X(I,J));
§ij
5/13/2018 Lingo Tutorial - slidepdf.com
http://slidepdf.com/reader/full/lingo-tutorial-55a751d3c0856 23/50
I n v
e s t i g a c i ó n O
p e r a t i v a I
I n v
e s t i g a c i ó n O
p e r a t i v a I
Las Restricciones de of
iO x
i j
ije
§
@FOR(PL ANT AS(I) : @SUM(CLIENTES(J):X(I,J))
<=O(I));
NotaciónMatemática
Sintaxis LINGO
@FOR(PLANTAS(I
@SUM(CLIENTES(J) :
xij X(I,J)
Oi O(I));
§ j
i
5/13/2018 Lingo Tutorial - slidepdf.com
http://slidepdf.com/reader/full/lingo-tutorial-55a751d3c0856 24/50
I n v
e s t i g a c i ó n O
p e r a t i v a I
I n v
e s t i g a c i ó n O
p e r a t i v a I
Las Restricciones de dem
j D x
ji
iju
§
@FOR(CLIENTES(J) : @SUM(PL ANT AS(I):X(I,J))
>=D(J));
NotaciónMatemática
Sintaxis LINGO
@FOR(CLIENTES(J) :
@SUM(PLANTAS(I) :
xij X(I,J)
D j D(J));
§i
j
5/13/2018 Lingo Tutorial - slidepdf.com
http://slidepdf.com/reader/full/lingo-tutorial-55a751d3c0856 25/50
I n v
e s t i g a c i ó n O
p e r a t i v a I
I n v
e s t i g a c i ó n O
p e r a t i v a I
EL MODELO LINGO E
MODEL :
MIN = @SUM(ARCOS(I,J) : C(I,J) * X(I,J));
@FOR(PL ANT AS(I) :
@SUM(CLIENTES(J):X(I,J))<=O(I));
@FOR(CLIENTES(J) :
@S
UM(PL AN
T A
S(I):X(I,J))>=D(J));
END
5/13/2018 Lingo Tutorial - slidepdf.com
http://slidepdf.com/reader/full/lingo-tutorial-55a751d3c0856 26/50
I n v
e s t i g a c i ó n O
p e r a t i v a I
I n v
e s t i g a c i ó n O
p e r a t i v a I
Definiendo los conjuntoTenemos los siguientes conjuntos a definir :
PL ANT AS
CLIENTES
ARCOS
SETS:
PL ANT AS / P1 P2 P3/ : O;
CLIENTES / C1 C2 C3 C4/ : D;
ARCOS(PL ANT AS,CLIENTES) : C,X;
ENDSETS
5/13/2018 Lingo Tutorial - slidepdf.com
http://slidepdf.com/reader/full/lingo-tutorial-55a751d3c0856 27/50
I n v
e s t i g a c i ó n O
p e r a t i v a I
I n v
e s t i g a c i ó n O
p e r a t i v a I
COLOCANDO LOS DAT
DAT A:
O = 35 50 40;
D = 45 20 30 30;
C = 8 6 10 9
9 12 13 7
14 9 16 5;
ENDDAT A
5/13/2018 Lingo Tutorial - slidepdf.com
http://slidepdf.com/reader/full/lingo-tutorial-55a751d3c0856 28/50
Investigación Operativa IInvestigación Operativa I
M ODEL
OLI N
G O
L I N G O
D o c um e
nt
5/13/2018 Lingo Tutorial - slidepdf.com
http://slidepdf.com/reader/full/lingo-tutorial-55a751d3c0856 29/50
I n v
e s t i g a c i ó n O p e r a t i v a I
I n v
e s t i g a c i ó n O p e r a t i v a I
CARACTERISTICAS
ADICIONALESPODEMOS COLOCARLES NOMBRES A NUESTR
FUNCION OBJETIVO, RESTRICCIONESY UN T
AL MODELO
Ejemplo 1: [objetivo] MIN = X;
Ejemplo 2: @FOR(PL ANT AS(I) : [oferta_planta]
@SUM(CLIENTES(J):X(I,J))<=O
LINGO Document
5/13/2018 Lingo Tutorial - slidepdf.com
http://slidepdf.com/reader/full/lingo-tutorial-55a751d3c0856 30/50
I n v
e s t i g a c i ó n O p e r a t i v a I
I n v
e s t i g a c i ó n O p e r a t i v a I
Problema
Almacén
Fábrica
1 2 3 4
1 12 13 10
2 10 12 14
3 14 11 15
Demanda 6 5 7 8
Costos de transporte por unidad
5/13/2018 Lingo Tutorial - slidepdf.com
http://slidepdf.com/reader/full/lingo-tutorial-55a751d3c0856 31/50
I n v
e s t i g a c i ó n O p e r a t i v a I
I n v
e s t i g a c i ó n O p e r a t i v a I
I n v
e s t i g a c i ó n O p e r a t i v a I
I n v
e s t i g a c i ó n O p e r a t i v a I
Usando Conjuntos (Sets
Sets son simplemente grupos de objetosrelacionados.
Un conjunto (set) puede ser una lista de productos, camiones o empleados. Cada miembro del conjunto puede tener
más características relacionadas con él.
Estas características se conocen bajo el de atributos. Los valores de los atributos pueden ser
conocidos o desconocidos.
5/13/2018 Lingo Tutorial - slidepdf.com
http://slidepdf.com/reader/full/lingo-tutorial-55a751d3c0856 32/50
I n v
e s t i g a c i ó n O p e r a t i v a I
I n v
e s t i g a c i ó n O p e r a t i v a I
I n v
e s t i g a c i ó n O p e r a t i v a I
I n v
e s t i g a c i ó n O p e r a t i v a I
Usando Conjuntos (Sets
LINGO reconoce 2 tipos de conju
Primitivos
Derivados
Primitivos : Es un conjunto compuesto sólo de objepueden ser reducidos posteriormente. Ejemplo : PL
Derivados : Es definido a partir de uno o más conju
Ejemplo : ARCOS
5/13/2018 Lingo Tutorial - slidepdf.com
http://slidepdf.com/reader/full/lingo-tutorial-55a751d3c0856 33/50
I n v
e s t i g a c i ó n O p e r a t i v a I
I n v
e s t i g a c i ó n O p e r a t i v a I
I n v
e s t i g a c i ó n O p e r a t i v a I
I n v
e s t i g a c i ó n O p e r a t i v a I
Usando Conjuntos
Un conjunto primitivo se define desiguiente manera : ± setname [/lista_miembros/][: lista_at
PL ANT AS / P1 P2 P3/ : O;
Listado explícito de la lista miembros
5/13/2018 Lingo Tutorial - slidepdf.com
http://slidepdf.com/reader/full/lingo-tutorial-55a751d3c0856 34/50
I n v
e s t i g a c i ó n O p e r a t i v a I
I n v
e s t i g a c i ó n O p e r a t i v a I
I n v
e s t i g a c i ó n O p e r a t i v a I
I n v
e s t i g a c i ó n O p e r a t i v a I
Usando Conjuntos
Un conjunto primitivo se define desiguiente manera : ± setname [/lista_miembros/][: lista_at
PL ANT AS / miembro1..miembroN/ : O;
Listado implícito de la lista miembros
Usando Conjuntos
5/13/2018 Lingo Tutorial - slidepdf.com
http://slidepdf.com/reader/full/lingo-tutorial-55a751d3c0856 35/50
I n v
e s t i g a c i ó n O p e r a t i v a I
I n v
e s t i g a c i ó n O p e r a t i v a I
Usando Conjuntos
Lista miembrosImplícito (formato)
Ejemplo Conjunmiemb
1..n 1..5 1,2,3,
stringM..stringN TRUCKS3..
TRUCKS204
TRUC
TRUC,TR204
DayM..dayN MON..FRI MON,WED,
RImonthM..monthN OCT..JAN OCT,N
EC,JA
5/13/2018 Lingo Tutorial - slidepdf.com
http://slidepdf.com/reader/full/lingo-tutorial-55a751d3c0856 36/50
I n v
e s t i g a c i ó n O p e r a t i v a I
I n v
e s t i g a c i ó n O p e r a t i v a I
I n v
e s t i g a c i ó n O p e r a t i v a I
I n v
e s t i g a c i ó n O p e r a t i v a I
Usando Conjuntos
Como una ilustración, en el ejempPowerco, podríamos haber definidconjunto PLANTAS como :
± PLANTAS /P1..P3/ : O;
5/13/2018 Lingo Tutorial - slidepdf.com
http://slidepdf.com/reader/full/lingo-tutorial-55a751d3c0856 37/50
I n v
e s t i g a c i ó n O p e r a t i v a I
I n v
e s t i g a c i ó n O p e r a t i v a I
I n v
e s t i g a c i ó n O p e r a t i v a I
I n v
e s t i g a c i ó n O p e r a t i v a I
Usando Conjuntos
Una forma alternativa, cuando se utiliz1..n, tu puedes definir la longitud del cola sección DATA y entonces realizar la: ± DATA:
Número_de_plantas = 3;
± ENDDATA
± SETS: PLANTAS /1..Número_de_plantas/ : O;
± ENDSETS
5/13/2018 Lingo Tutorial - slidepdf.com
http://slidepdf.com/reader/full/lingo-tutorial-55a751d3c0856 38/50
I n v
e s t i g a c i ó n O p e r a t i v a I
I n v
e s t i g a c i ó n O p e r a t i v a I
I n v
e s t i g a c i ó n O p e r a t i v a I
I n v
e s t i g a c i ó n O p e r a t i v a I
Usando Conjuntos : conju
derivados Para definir un conjunto derivado,especificas : ± El nombre del conjunto
± Sus conjuntos PADRES
± Opcionalmente, sus miembros
± Opcionalmente, sus atributos
setname(Lista_conj_padres)[/lista_miembros/][:lista_
5/13/2018 Lingo Tutorial - slidepdf.com
http://slidepdf.com/reader/full/lingo-tutorial-55a751d3c0856 39/50
I n v
e s t i g a c i ó n O p e r a t i v a I
I n v
e s t i g a c i ó n O p e r a t i v a I
I n v
e s t i g a c i ó n O p e r a t i v a I
I n v
e s t i g a c i ó n O p e r a t i v a I
Usando Conjuntos : conju
derivadossetname(Lista_conj_padres)[/lista_miembros/][:list
EJEMPLO :
SETS:
PRODUCTO / A B /;
MAQUINA /M N/;SEMANA /1..2/;
ASIGNACION(PRODUCTO,MAQUINA,SEMA
ENDSETS
5/13/2018 Lingo Tutorial - slidepdf.com
http://slidepdf.com/reader/full/lingo-tutorial-55a751d3c0856 40/50
I n v
e s t i g a c i ó n O p e r a t i v a I
I n v
e s t i g a c i ó n O p e r a t i v a I
I n v
e s t i g a c i ó n O p e r a t i v a I
I n v
e s t i g a c i ó n O p e r a t i v a I
Usando Conjuntos : conju
derivados y filtrosEJEMPLO :
CAMIONES _PES ADOS(CAMIONES) | CAPACIDAD
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
5/13/2018 Lingo Tutorial - slidepdf.com
http://slidepdf.com/reader/full/lingo-tutorial-55a751d3c0856 41/50
I n v
e s t i g a c i ó n O p e r a t i v a I
I n v
e s t i g a c i ó n O p e r a t i v a I
I n v
e s t i g a c i ó n O p e r a t i v a I
I n v
e s t i g a c i ó n O p e r a t i v a I
Funcionesfunción uso
@FOR Es utilizado para generar conjunrestricciones
@SUM Calcula la suma de una expresiótodos los miembros de un conju
@MIN Calcula el mínimo de una expretodos los miembros de un conju
@MAX Calcula el máximo de una expretodo los miembros de un conjun
5/13/2018 Lingo Tutorial - slidepdf.com
http://slidepdf.com/reader/full/lingo-tutorial-55a751d3c0856 42/50
I n v
e s t i g a c i ó n
O p e r a t i v a I
I n v
e s t i g a c i ó n
O p e r a t i v a I
I n v
e s t i g a c i ó n
O p e r a t i v a I
I n v
e s t i g a c i ó n
O p e r a t i v a I
Función @SUMSETS:
CLIENTES / C1 C2 C3 C4 C5/ : Demanda
ENDSETS
DAT A :
DEMANDA = 5 1 3 4 6;
ENDDAT A
Demanda_total = @SUM(CLIENTES(J):DEMANDA
Demanda_total = @SUM(CLIENTES:DEMANDA);
Demanda_3 = @SUM(CLIENTES(J)|J #LE3# :DEM
5/13/2018 Lingo Tutorial - slidepdf.com
http://slidepdf.com/reader/full/lingo-tutorial-55a751d3c0856 43/50
I n v
e s t i g a c i ó n
O p e r a t i v a I
I n v
e s t i g a c i ó n
O p e r a t i v a I
I n v
e s t i g a c i ó n
O p e r a t i v a I
I n v
e s t i g a c i ó n
O p e r a t i v a I
Función @MIN, @MAXSETS:
CLIENTES / C1 C2 C3 C4 C5/ : Demanda
ENDSETS
DAT A :
DEMANDA = 5 1 3 4 6;
ENDDAT A
Min_demanda = @MIN(CLIENTES(J):DEMANDA(J
Max_demanda = @MAX(CLIENTES(J):DEMANDA
Min_demanda = @SUM(CLIENTES:DEMANDA);
Max_demanda = @SUM(CLIENTES:DEMANDA);
5/13/2018 Lingo Tutorial - slidepdf.com
http://slidepdf.com/reader/full/lingo-tutorial-55a751d3c0856 44/50
I n v
e s t i g a c i ó n
O p e r a t i v a I
I n v
e s t i g a c i ó n
O p e r a t i v a I
I n v
e s t i g a c i ó n
O p e r a t i v a I
I n v
e s t i g a c i ó n
O p e r a t i v a I
Función @FOR SETS:
CAMIONES / RENAULT FORD DODGE / : C
ENDSETS
@FOR(CAMIONES(T) : CARGA(T) <= 2500);
CARGA(RENAULT)<=2500;
CARGA(FORD) <= 2500;CARGA(DODGE)<=2500;
U d f i d d i
5/13/2018 Lingo Tutorial - slidepdf.com
http://slidepdf.com/reader/full/lingo-tutorial-55a751d3c0856 45/50
I n v e s t i g a c i ó n
O p e r a t i v a I
I n v e s t i g a c i ó n
O p e r a t i v a I
I n v e s t i g a c i ó n
O p e r a t i v a I
I n v e s t i g a c i ó n
O p e r a t i v a I
Usando funciones de domi
para variablesTipos variables definición
@GIN Variable entera
@BIN Variable binaria
@FREE Cualquier valor
@BND Rango para lavariable
Investigación Operativa IInvestigación Operativa IInvestigación Operativa IInvestigación Operativa I
5/13/2018 Lingo Tutorial - slidepdf.com
http://slidepdf.com/reader/full/lingo-tutorial-55a751d3c0856 46/50
S i n
t axi s
@ GI N
( n om b r e _ v a
r i a b l e ) .
± @ GI N
( X ) ;
L I N G O
D o c um e n
t
Investigación Operativa IInvestigación Operativa IInvestigación Operativa IInvestigación Operativa I
5/13/2018 Lingo Tutorial - slidepdf.com
http://slidepdf.com/reader/full/lingo-tutorial-55a751d3c0856 47/50
P r o b l e m
a d e l a
m o c h i l a
: @BI N
a r t í c ul o
p e s o
R a t i n
g
1
1
2
2
3
9
3
4
3
4
4
8
5
4
1 0
6
1
6
7
5
4
8
1 0
1 0
5/13/2018 Lingo Tutorial - slidepdf.com
http://slidepdf.com/reader/full/lingo-tutorial-55a751d3c0856 48/50
I n v e s t i g a c i ó n
O p e r a t i v a I
I n v e s t i g a c i ó n
O p e r a t i v a I
I n v e s t i g a c i ó n
O p e r a t i v a I
I n v e s t i g a c i ó n
O p e r a t i v a I
Modelo LINGO
MODEL:SETS:
ARTICULOS /A1..A10/: PESO, RATING, INCLUY
ENDSETSDATA:PESO RATING =1 23 94 3
3 84 101 65 410 10;CAPACIDAD_MOCHILA = 15;
ENDDATA
5/13/2018 Lingo Tutorial - slidepdf.com
http://slidepdf.com/reader/full/lingo-tutorial-55a751d3c0856 49/50
I n v e s t i g a c i ó n
O p e r a t i v a I
I n v e s t i g a c i ó n
O p e r a t i v a I
I n v e s t i g a c i ó n
O p e r a t i v a I
I n v e s t i g a c i ó n
O p e r a t i v a I
Modelo LINGOMAX = @SUM(ARTICULOS: RATINGS * INCLUYE);
@SUM(ARTICULOS:PESO*INCLUYE)<=CAPACIDAD_MO
@FOR(ARTICULOS:@BIN(INCLUYE));
END
Investigación Operativa IInvestigación Operativa IInvestigación Operativa IInvestigación Operativa I
5/13/2018 Lingo Tutorial - slidepdf.com
http://slidepdf.com/reader/full/lingo-tutorial-55a751d3c0856 50/50
VAR
I ABLE
S A C OT
ADA
S
@
B ND
( c o t a _i nf e r i or ,n om b r e
_ v a r i a b l e , c o t a _ s u p e r i or ) ;