Está en la página 1de 4

FACULTAD DE INGENIERA

DEPARTAMENTO DE INGENIERA DE PROCESOS INDUSTRIALES


INGENIERA CIVIL INDUSTRIAL

INSTRUCTIVO DE USO LINGO

Utilizaremos como punto de partida el problema de la Wyndor Glass Co. Planteado como ejemplo
prototipo a lo largo de la mayora de los captulos de la quinta edicin del libro Introduccin a la
Investigacin de Operaciones de Hillier-Lieberman.

El planteo de este problema se puede leer en la seccin 3.1 del mencionado libro y se resume a
continuacin:

La WYNDOR GLASS CO produce artculos de vidrio de alta calidad, incluyendo ventanas y puertas
de vidrio. La empresa tiene tres plantas de produccin. Los marcos y molduras se hacen en la
planta 1, los marcos de madera se fabrican en la planta 2 y en la 3 se produce el vidrio y se
ensamblan los productos. Se propone fabricar dos nuevos productos, uno de ellos (Producto 1) es
una puerta de vidrio de 2,6 m con marco de aluminio. El otro (Producto 2) es una ventana grande
(1,3 m x 2 m) para vidrio doble con marco de madera. El departamento de mercadotecnia ha
obtenido como conclusin que la compaa puede vender todo lo que pueda producir de
cualquiera de los productos. Sin embargo, como ambos productos compiten por la misma
capacidad de produccin de la planta 3, no es obvio qu mezcla de los dos productos sera ms
redituable. Por todo esto, la gerencia pidi al departamento de investigacin de operaciones que
estudiara el asunto.

Despus de hacer algunas investigaciones, el departamento mencionado determin: 1. El


porcentaje de capacidad de produccin de cada planta para cada producto. 2. El porcentaje de
esta capacidad que requiere cada unidad producida por minuto. 3. La ganancia unitaria de cada
producto. Esta informacin se resume en la siguiente tabla:

Y el modelo matemtico que representa el problema es:


FACULTAD DE INGENIERA
DEPARTAMENTO DE INGENIERA DE PROCESOS INDUSTRIALES
INGENIERA CIVIL INDUSTRIAL

El modelo matemtico expresado en el lenguaje de modelado de LINGO sera:

A menos que especifique lo contrario, el valor de las variables por defecto en un modelo de LINGO
son no-negativas y continuas. Por ello para nuestro modelo no es necesario incluir las condiciones
de no negatividad. Las lneas que comienzan con ! son comentarios y sern ignoradas por Lingo.

Sintaxis de LINGO

La sintaxis que se utiliza en este programa es muy sencilla. Para el nombre de las variables y otros
identificadores se establece que pueden tener 32 caracteres como mximo, Deben comenzar con
una letra seguido de letras, dgitos o _.

LINGO no distingue entre maysculas y minsculas.

Con respecto a las sentencias:

Todas las sentencias deben terminar en un punto y coma.

Para darle un nombre a la funcin objetivo o a las restricciones, estos se deben colocar entre
corchetes.

Para declarar la funcin objetivo debemos colocar las palabras reservadas MAX o MIN,
(aparecern resaltadas en azul), seguidas del signo =.

Los comentarios deben comenzar con un signo !, los cuales aparecen resaltados en verde.

Para resolver el modelo, debe seleccionar en el men la opcin LINGO y luego SOLVE.
FACULTAD DE INGENIERA
DEPARTAMENTO DE INGENIERA DE PROCESOS INDUSTRIALES
INGENIERA CIVIL INDUSTRIAL

Restricciones sobre los dominios de las variables

La instruccin @BND(1000,x,1900); hace que la variable x pueda variar entre 1 000 y 1 900, es
decir, que tiene el mismo efecto que incorporar las restricciones x>1000; x<1900;

La instruccin @Free(x); declara la variable x como variable libre, es decir, establece a cota inferior
de la variable en un nmero muy pequeo (muy negativo) y la cota superior en un numero muy
grande. En particular, cancela para la variable en cuestin la condicin de no negatividad, si es que
sta est establecida por defecto.

La instruccin @GIN(x); obliga a la variable x a tomar valores enteros (positivos o negativos,


salvo que las variables sean no negativas por defecto).

La instruccin @BIN(x); obliga a la variable x a tomar nicamente los valores 0 o 1.

La instruccin @Semic(10,x,20); convierte a x en una variable semicontinua, que ha de tomar el


valor 0 o bien estar en el rango 10 x 20.

Definicin de conjuntos

LINGO permite introducir los modelos en trminos de conjuntos de ndices, lo cual aporta
numerosas ventajas:

Las ecuaciones son independientes de los datos, de modo que se puede cambiar stos sin
modificar aqullas, o incluso se puede escribir un modelo que contenga nicamente las
ecuaciones y que lea los datos de otro documento.

Si el modelo tiene varias ecuaciones que siguen un mismo esquema, se pueden introducir todas
ellas como una nica frmula general.

La estructura del modelo se simplifica, ya que, por una parte, las ecuaciones pueden escribirse
conceptualmente, sin mezclarlas con los datos y, por otra, los datos pueden introducirse en un
orden ms claro, independiente del lugar en el que deben aparecer en el modelo.

Las palabras SETS: ENDSETS determinan una seccin en un modelo de LINGO. En general, una
seccin empieza con su nombre (en este caso SETS) seguido de : (no ;) y termina con END y el
mismo nombre (sin ningn signo de puntuacin). La seccin SETS sirve para definir conjuntos.

Para definir un conjunto escribimos su nombre, luego sus elementos entre barras / / y luego,
separadas por :, las variables asociadas al conjunto.

Para asignar un valor fijo a algunas variables (y convertirlas as en constantes) usamos una seccin
DATA:
FACULTAD DE INGENIERA
DEPARTAMENTO DE INGENIERA DE PROCESOS INDUSTRIALES
INGENIERA CIVIL INDUSTRIAL

DATA:

Existencias = 50000 80000 40000 10000;

Precio = 9, 12, 6.20;

ENDDATA

Tambin es posible asignar un valor inicial a una variable sin que por ello LINGO deje de
considerarla variable. Para ello no asignamos el valor en la seccin DATA, sino en una seccin INIT,
as:

INIT:

sacos = 1000;

ENDINIT

Ecuaciones con conjuntos.

La lnea de la funcin objetivo empieza como siempre, con una etiqueta seguida de Max =. En
general, dentro de @Sum() ponemos el nombre de un conjunto seguido de una nueva variable,
que hace referencia a un elemento genrico del conjunto, luego : y la expresin que queremos
sumar para todo i.

La sintaxis de @For() es la misma que la de @Sum(). Escribimos el nombre de un conjunto con


una nueva variable entre parntesis, luego : y luego lo que queremos que LINGO haga para cada
valor de c.

Las instrucciones de LINGO que recorren los elementos de un conjunto son las siguientes:
@For(Conjunto(i): ) Repite una tarea para todo i

@Sum(Conjunto(i): ) Suma una expresin para todo i

@Prod(Conjunto(i): ) Multiplica una expresin para todo i

@Max(Conjunto(i): ) Calcula el mximo para todo i

@Min(Conjunto(i): ) Calcula el mnimo para todo i

@Writefor(Conjunto(i): ) Escribe una expresin para todo i

También podría gustarte