Lingo Tutorial

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 LINGO Universidad Nacional Mayor de San Marcos Facultad de Ingeniería Industrial LINGO Document 

Transcript of Lingo Tutorial

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

 3 

 9 

 3 

 3 

 8 

 5 

1  0 

 6 

 6 

 7 

 5 

 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   )   ;