Vous êtes sur la page 1sur 19

LABORATORIO

OPTIMIZACIÓN MATEMÁTICA
LINGO Optimization Modeling Software for Linear, Nonlinear, and
Integer Programming

Profesor Mg. Ing. José Grandón R.


grandonjose@gmail.com
Universidad de Santiago de Chile
Departamento de Ingeniería Geográfica

CONTENIDOS

LABORATORIO 1 “USO BÁSICO DE LINGO” ...................................................................... 3


I. INTRODUCCIÓN ................................................................................................................ 3
II. NOCIONES BÁSICAS EN LINGO ................................................................................. 4
III. RESOLVER UN MODELO ............................................................................................. 5
IV. REPORTE DE SOLUCIÓN.............................................................................................. 7
LABORATORIO 2 “ANÁLISIS DE SENSIBILIDAD”............................................................. 9
V. ANÁLISIS DE POST-OPTIMIZACIÓN Y DE SENSIBILIDAD ................................... 9
LABORATORIO 3 “CONJUNTOS” ........................................................................................ 12
VI. SECCIÓN SET “CONJUNTOS PRIMITIVOS” ............................................................ 12
VII. SECCION SET; CONJUNTOS DERIVADOS .............................................................. 13
VIII. FUNCIÓNES DE CONJUNTOS @SUM y @FOR ................................................... 14
LABORATORIO 4 “DOMINIO DE VARIABLES” ................................................................ 16
IX. VARIABLES ENTERAS Y BINARIAS ........................................................................ 16
X. VARIABLES LIBRES .................................................................................................... 16
XI. VARIABLES LIMITADAS ........................................................................................... 17
LABORATORIO 5 “ARCHIVOS EXTERNOS” ..................................................................... 18
XII. FUNCIONES DE ARCHIVOS @OLE, @ODBC y @TEXT........................................ 18

Optimización Matemática Página 2 Mg. Ing. José Grandón R.


Universidad de Santiago de Chile
Departamento de Ingeniería Geográfica

LABORATORIO 1 “USO BÁSICO DE LINGO”

I. INTRODUCCIÓN

El presente apunte corresponde a una guía general para la utilización del software LINGO,
contiene las principales aplicaciones utilizadas, acompañadas de ejemplos ilustrativos para
que el alumno comprenda el funcionamiento del software a las múltiples aplicaciones que
puede desarrollar. Para mayores antecedentes sobre el uso de LINGO, se recomienda hacer
uso de la ayuda oficial del software.

Una de las características más potentes de LINGO, es el lenguaje de modelación matemática.


Este lenguaje permite expresar el problema de una manera natural, similar a la notación
matemática utilizada en el curso de Gestión de Operaciones. Además de poder ingresar cada
término de cada restricción explícitamente.

Para obtener la versión libre del programa Lingo visitar: http://www.lindo.com. Para
continuar la instalación hay que seguir con los enlaces Downloads en la página, elegir la
versión LINGO apropiada para su computador.

Al iniciar LINGO por primera vez le solicitara una serial (licencia de uso), dependiendo de la
serial ingresada usted podrá hacer uso de diferentes potencialidades del software y
determinara el tamaño del problema que puede resolver, la licencia puede ser adquirida en el
mismo sitio WEB. En el caso que usted no disponga de una serial se asume que utilizara la
versión de estudiante (libre) la cual tiene limitaciones de uso: 150 restricciones, 300 variables,
30 variables enteras y 30 expresiones no lineales

Optimización Matemática Página 3 Mg. Ing. José Grandón R.


Universidad de Santiago de Chile
Departamento de Ingeniería Geográfica

II. NOCIONES BÁSICAS EN LINGO

La sintaxis básica para resolver un modelo en LINGO se basa en las siguientes reglas:

 Toda sentencia finaliza con un “;”, pudiendo utilizar más de una línea de código.

 La función objetivo inicia con “max=” o “min=”, según corresponda y finaliza en “;”.

 Las desigualdades pueden escribirse de forma estricta, aunque LINGO las interpreta
siempre como <= o >=, según el caso.

 No es necesario introducir las restricciones de no negatividad, LINGO las considera por


defecto.

 Es necesario indicar el producto con “*”.

 LINGO no distingue entre mayúsculas y minúsculas, (variable = vARIablE).

 Los nombres de las variables comienzan con un carácter alfabético (A-Z) y no aceptan
espacios pudiendo utilizar hasta 32 caracteres.

 Se pueden introducir comentarios, que serán ignorados por LINGO, comenzando con
“!” y terminando “;”.

AC+AD+AE<80; ! Esto es

Un comentario;

 Se puede asignar un nombre a cada restricción, usando paréntesis de corchete.

[R1] AC+AD+AE<= 80 La restricción del ejemplo tiene el nombre R1.

Una característica importante del lenguaje de programación de LINGO es el uso de colores


para diferenciar los elementos del modelo. Las palabras reservadas (propias del lenguaje de
programación) son destacadas en color azul y no deben ser utilizadas para nombrar las
variables. Los comentarios son destacados en color verde.

Optimización Matemática Página 4 Mg. Ing. José Grandón R.


Universidad de Santiago de Chile
Departamento de Ingeniería Geográfica

III. RESOLVER UN MODELO

Para que LINGO resuelva el problema es suficiente con hacer clic sobre el botón Solve.
LINGO primero compila el modelo formulado, en el caso de que la formulación sea incorrecta
(ya sea desde un punto de vista matemático o de sintaxis), nos devolverá una ventana con el
siguiente mensaje:

Indica el código del error

Indica la fila del error

Ilustración 1: Mensaje de Error

En general los errores mas recurrentes consisten en olvidar “;” o signos de multiplicación “*”
y diferencias en los nombres de la variables. El mensaje de error nos indicara el tipo de error
detectado y también la línea de código donde ocurre.

Si no hay errores en la formulación del problema durante la etapa de solución, LINGO utilizara
al módulo de resolución adecuado para buscar la solución óptima. En la ventana ‘STATUS’ se
puede monitorear el proceso de resolución. En general la solución de un modelo ocurre en
tiempo de proceso bastante reducido, sin embargo, problemas de gran tamaño o complejidad
pueden demorar, se recomienda hacer seguimiento a Elapsed Runtime, donde se registra el
tiempo de proceso para verificar el adecuado funcionamiento. En la ilustración 2, se muestra
el BOX SOLVER STATUS, con una breve explicación de cada uno de sus bloques de
información.

Optimización Matemática Página 5 Mg. Ing. José Grandón R.


Universidad de Santiago de Chile
Departamento de Ingeniería Geográfica

N° Total de variables del modelo, las variables que son no


lineales y las enteras. Una variable es considerada no
lineal si es parte de una restricción no lineal en el modelo.
La cuenta de variables no incluye las que LINGO
determina como de valor fijo.
Cantidad total de
restricciones y el número
de éstos que son no
Muestra el estado actual lineales. Una restricción
del optimizador: es considerada no lineal
State: Estado de la si una o mas variables
solución actual: "Global aparecen de forma no
optimum", "Local lineal en la restricción.
optimum", "Feesible",
"Unbounded",
Objetive: Valor actual de
la función objetivo. Muestra el total de
Iterations: Numero de coeficientes distintos de
iteraciones. cero que aparecen en el
Infeasibility: Cantidad modelo y el número de
de veces que es violada estos que aparecen en
una restricción. variables no lineales.

Cantidad de memoria
que está utilizando
LINGO para resolver el
modelo.
Best Obj: Valor de la
función objetivo de la mejor
solución entera encontrada Tiempo total utilizado
(solo en modelos de para generar y resolver
programación entera) el modelo. modelo.
Obj Bound: Límite teórico
de la función objetivo para
modelos de programación
entera.

Ilustración 2: SOLVER STATUS

Optimización Matemática Página 6 Mg. Ing. José Grandón R.


Universidad de Santiago de Chile
Departamento de Ingeniería Geográfica

IV. REPORTE DE SOLUCIÓN

Terminado el proceso de solución, LINGO nos muestra la mejor solución encontrada al


problema mediante el Reporte de Solución que se muestra en la ilustración 3, con una breve
explicación del significado de los valores observados.

Costos Reducidos. se
puede interpretar el costo
Valor de la función objetivo y N° de iteraciones reducido de una variable
utilizadas para resolver el problema. como la cantidad en que
debería mejorar el
coeficiente de una variable
en la función objetivo,
antes de que llegue a ser
Valores de las variables, rentable dar a la variable
para alcanzar la función en cuestión un valor.
objetivo.
Precios Duales, asociada
a cada restricción. Usted
Holguras, le dice cuán cerca puede interpretar el precio
esta usted de satisfacer una dual de una restricción
restricción como una como la cantidad en que
igualdad. mejoraría el valor óptimo
de la función objetivo, si el
término libre o valor
constante de la restricción
fuese aumentado en una
unidad.

Ilustración 3: Reporte de Solución

Existe el caso cuando el problema resulta infactible, es decir que el conjunto de restricciones
no genera una región de soluciones posibles, cuando esto ocurre LINGO igualmente resuelve
el problema “rompiendo” la(s) restricción(es) infactibles y mostrando el siguiente mensaje.

Ilustración 4: Solución Infactible

Optimización Matemática Página 7 Mg. Ing. José Grandón R.


Universidad de Santiago de Chile
Departamento de Ingeniería Geográfica

PRACTICA LAB-N°1

PROBLEMA 1:

Compupc produce dos modelos de computadoras Estándar y Turbo. Compupc puede vender
cada modelo Estándar que sea capaz de producir con una contribución a las utilidades de US$
100 y cada modelo Turbo con una contribución de US$ 150. La línea de producción del
modelo Estándar puede producir como máximo 100 computadoras al día. Al mismo tiempo, la
línea del modelo Turbo puede lograr una producción de 120 computadoras por día.

Compupc, tiene una disponibilidad limitada de mano de obra (H-H) por día que es de 160 H-H.
Los computadoras Estándar necesitan 1 H-H mientras los computadoras Turbo son un poco
más intensos en necesidad de mano de obra y requieren 2 H-H.

Se desea establecer las cantidades a producir de ambos modelos de computadoras, para


maximizar la contribución de la empresa.

ACTIVIDADES:
 Valor de la función objetivo y las variables.
 Cantidad disponible en ambas líneas de producción.
 ¿Cuánto aumentara la utilidad de la empresa si se incrementa en una unidad la mano
de obra disponible?

PROBLEMA 2:

En una granja avícola se crían pollos que deben recibir diariamente al menos 24 unidades de
hierro y 8 de vitaminas. Los animales se alimentan con maíz, harina de huesos y una mezcla
especial para aves. El maíz proporciona 2 unidades de hierro y 5 de vitaminas. La harina de
huesos aporta 4 unidades de hierro y 1 de vitaminas. La mezcla proporciona 2 unidades de
hierro y 1 de vitaminas.

El coste del maíz, la harina de huesos y la mezcla es 40, 20 y 60 u.m. por unidad de alimento,
respectivamente. Se desea conocer qué cantidad de alimento de cada tipo debe utilizarse
para minimizar el costo de alimentar a los pollos.

ACTIVIDADES:
 Valor de la función objetivo y las variables.
 Si la cantidad de vitaminas requerida aumentara en 5 unidades, ¿cuál sería el costo
mínimo?
 La cantidad de hierro que proporciona la dieta óptima ¿supera la cantidad mínima
requerida? Justifique la respuesta.
 Si el coste de la mezcla para aves aumentara, ¿se obtendría la misma dieta óptima que
se calculó? ¿valdría la misma respuesta para cualquier aumento de este coste?
 Si el coste de la mezcla para aves disminuyera, ¿para qué valores de este coste
podríamos asegurar que la dieta óptima es la misma que se obtuvo?
Optimización Matemática Página 8 Mg. Ing. José Grandón R.
Universidad de Santiago de Chile
Departamento de Ingeniería Geográfica

LABORATORIO 2 “ANÁLISIS DE SENSIBILIDAD”

V. ANÁLISIS DE POST-OPTIMIZACIÓN Y DE SENSIBILIDAD

Análisis de sensibilidad se realiza con la opción de menú LINGO, Range. Si no está activada
está posibilidad hay que activarla previamente con LINGO, Options, General Solver, Dual
Computations, Prices & Ranges. En todo caso, este tipo de análisis estará disponible tras
resolver el modelo y no antes y desde la ventana del modelo, no desde la ventana de la
solución (Ver Ilustración 5) .

El análisis de sensibilidad se muestra en la ventana Range Report. Afecta a los términos


independientes de las restricciones y a los coeficientes de la función objetivo. La forma de
construir el intervalo de sensibilidad es aplicando los aumentos y disminuciones permitidas
sobre el valor original del coeficiente o del término independiente.

Para ejemplificar, considérese el


siguiente problema de programación
lineal, desarrollado en LINGO, se
sugiere desarrollar el modelo:

La solución entregada para el


problema nos indica que, la función Pas Pas
o1 o2
objetivo alcanza un valor de 36 Ling Ling
o o
unidades, tomando las variables X1 y Solv Ran
X2 los valores de 2 y 6 e ge
respectivamente.

Igualmente la solución indica que la


restricción 1 [R1], tiene una holgura
de 2 unidades, mientras que la
restricción 2 [R2] y la restricción 3
[R3] fueron agotadas con
precios duales de 1.5 y 1
respectivamente, cabe
recordar que el precio dual se
puede interpretar como la
cantidad en que mejoraría el
valor óptimo de la función
objetivo, si el término libre o
valor constante de la
restricción fuese aumentado
en una unidad.

Ilustración 5: Proceso Análisis de Sensibilidad

Optimización Matemática Página 9 Mg. Ing. José Grandón R.


Universidad de Santiago de Chile
Departamento de Ingeniería Geográfica

El análisis de sensibilidad entregado por LINGO, muestra los coeficientes de las variables X1 y
X2, en la función objetivo al igual que los incrementos y decrementos que dichas variables
pueden aceptar, sin modificar la actual solución del problema, es decir, el coeficiente de la
variable X1 puede encontrarse dentro del intervalo [0;7,5], sin alterar el punto optimo
encontrado.

Para recordar la función objetivo del problema es Max=3*x1+5*x2, por tanto el actual
coeficiente de x1 en la función objetivo es 3 lo que corresponde a Current Coefficient. Este
coeficiente puede ser aumentado en 4,5 lo que corresponde a Allowable Increase y
disminuido en 3 correspondiente a Allowable Decrease.

Cx1 = 3  [3-3;3+4,5]  [0;7,5]

Ilustración 6: Análisis de Sensibilidad Coeficientes F.O.

Igualmente el coeficiente de x2 puede estar en el intervalo [2;∞+] sin alterar el punto optimo.

En segundo lugar, muestra el rango de variación permitido en el término independiente de


cada restricción para que, permaneciendo inalterados el resto, no se altere el precio dual. Es
decir, el lado derecho de la restricción 2 [R2], puede variar en el intervalo, ]6;18[ sin alterar el
precio dual de la restricción.

LDR2 =12  [12-6;12+6]  [6;18]

Ilustración 7: Análisis de Sensibilidad Lados Derechos

Optimización Matemática Página 10 Mg. Ing. José Grandón R.


Universidad de Santiago de Chile
Departamento de Ingeniería Geográfica

PRACTICA LAB-N°2

PROBLEMA 1:

Don Ricardo Soto, dueño de la Empresa Piedras Soto, dedicada a la extracción y distribución
de áridos para el sector de la construcción se encuentra buscando nuevas estrategias para
manejar su negocio. Piedras Soto, es una empresa familiar que tiene una concesión municipal
que le permite extraer diariamente 4 toneladas de material de las riveras del río Mapocho.

Don Ricardo ha concentrado la explotación en dos tipos de material, ripio y arena, el negocio
es bastante bueno, pues debido a la alta demanda es posible vender toda la producción. Las
ventas son administradas por la Sra. Juana González de Soto, esposa de Don Ricardo, quien es
la encargada de responder a los requerimientos de los clientes de la empresa y estudiar la
competencia para establecer los precios de venta de los productos. Ella ha determinado,
según las condiciones actuales de mercado, fijar el precio de la arena a $15 mil, cada tonelada
y el ripio a $20.mil, cada tonelada.

La extracción del material se encuentra a cargo de Don José Soto, hijo mayor de Don Ricardo,
para lo cual cuenta con una maquina que opera 6 horas diarias, según su experiencia se
requiere de 1 hora para extraer una tonelada de arena y dos horas para extraer una tonelada
de ripio.

Hoy en día, luego de varios pruebas realizadas se encuentran muy conformes con sus niveles
de producción, según datos aportados por un experto, se encuentran produciendo una
optima combinación de productos pero cada uno de los integrantes de la empresa ha
manifestado algunas inquietudes con respecto a la operación de la empresa.

Don Ricardo y Don José quieren mejorar los ingresos de la empresa para lo cual discuten
sobre diferentes posibilidades, Don Ricardo pretende aumentar la cuota de extracción
solicitando a la municipalidad le permita explotar una tonelada mas diariamente, Don José
opina que esta alternativa no produciría efectos significativos, y plantea aumentar el tiempo
de explotación en una hora mas diaria, con este piensa que tendría mejores resultados.

La Sra. Juana piensa que es mejor que la empresa sea monoproductora pues la crisis que
amenaza el rubro de la construcción generara efectos sobre el precio de la arena pudiendo
llegar a valores de $10 mil la tonelada por lo que opina que no seria rentable seguir
extrayéndola y deberían dedicarse solo al ripio.

ACTIVIDADES: Justificando con las herramientas apropiadas de Lingo determine ¿Quién tiene
la razón?

Nota: realice una única modificación en cada análisis.

Optimización Matemática Página 11 Mg. Ing. José Grandón R.


Universidad de Santiago de Chile
Departamento de Ingeniería Geográfica

LABORATORIO 3 “CONJUNTOS”

VI. SECCIÓN SET “CONJUNTOS PRIMITIVOS”


Cuando se está ante problemas de optimización de gran dimensión, es habitual que las
expresiones matemáticas que aparecen en la función objetivo y en las restricciones tengan
alguna estructura especial. En ese caso, el lenguaje de modelización de Lingo permite
construir el modelo de una manera rápida, abreviada y fácil de entender. Esto se hace a
través de la definición de conjuntos. El lenguaje de Lingo permite definir conjuntos y
establecer expresiones matemáticas o restricciones para un elemento de ese conjunto. Luego
esa misma expresión o restricción se aplica para cada elemento del conjunto, sin necesidad
de repetirlas individualmente para cada uno de ellos. De esta manera, modelos de gran
dimensión se pueden escribir con este lenguaje en unas pocas líneas.

La definición de conjuntos se realiza en la sección SETS. Para definir un conjunto de una


dimensión se requiere:

 El nombre del conjunto.


 Los elementos del mismo, que pueden ser nombres (separados por comas o un
espacio en blanco) o números (inicial..final).
 Las características (variables, parámetros o constantes) que queramos asignar a cada
elemento (a veces, puede ser conveniente definir conjuntos sin ninguna
característica).
 La sintaxis general es:

SETS:
Nombreconjunto / Elem1, Elem2, …., ElemN/:Caract1, Caract2….., CaractN;
Nombreconjunto2 / 1..N/:Caract1, Caract2….., CaractN;
ENDSETS

Los vectores creados en la sección SETS pueden ser de variables o de datos del problema. En
este último caso, hay que asignar a cada vector o matriz de datos sus valores. La asignación
de valores o datos del problema se realiza en la sección DATA del modelo. Además de las
secciones SETS, DATA y, en su caso INIT, el resto de las líneas del modelo se encargan de
describir el problema de optimización. En ellas se puede utilizar el lenguaje básico de Lingo,
tal y como se ha hecho hasta ahora, y también un lenguaje más avanzado para aprovechar la
estructura especial que suelen presentar estos problemas.

Optimización Matemática Página 12 Mg. Ing. José Grandón R.


Universidad de Santiago de Chile
Departamento de Ingeniería Geográfica

VII. SECCION SET; CONJUNTOS DERIVADOS

Los conjuntos primitivos, son los objetos fundamentales de un modelo y no pueden ser
subdivididos, los Conjuntos Derivados, los cuales son creados a partir de otros conjuntos (uno
o más). Estos conjuntos componentes son referenciados como los padres del conjunto
derivado y pueden ser primitivos o derivados.

La definición de conjuntos derivados se realiza también en la sección SETS. Para definir un


conjunto derivado se requiere:

 El nombre del conjunto.


 Sus conjuntos padres.
 Opcionalmente, sus miembros.
 Opcionalmente, cualquier característica que los miembros del conjunto puedan tener.

La sintaxis general es:


Nombreconjunto(padre1,padre2,….,padreN):Caract1, Caract2….., CaractM;

Para ejemplificar:

SETS:
Locales /Iquique, Serena, Santiago/:; Trimestre/1..4/;
IngresosTrimestralLocales (Locales,Trimestre):Monto;
ENDSETS

Los miembros obtenidos en el conjunto IngresosTrimestralLocales, son:

Iquique,1 Iquique,2 Iquique,3 Iquique,4


Serena,1 Serena,2 Serena,3 Serena,4
Santiago,1 Santiago,2 Santiago,3 Santiago,4

Optimización Matemática Página 13 Mg. Ing. José Grandón R.


Universidad de Santiago de Chile
Departamento de Ingeniería Geográfica

VIII. FUNCIÓNES DE CONJUNTOS @SUM y @FOR

@SUM

Realiza la sumatoria de la expresión matemática especificada para cada elemento de un


conjunto que, en su caso, cumpla una condición. Su sintaxis general es:

@SUM(nombre del conjunto | condición: expresión matemática)

La parte “| condición” es optativa y sirve para restringir “nombre del conjunto” (del mismo
modo que se hace al definir conjuntos en Matemáticas El resultado de una función @SUM es
un valor.

@FOR

Esta función genera expresiones para cada elemento de un conjunto que cumpla la condición
especificada. La sintaxis de la función @FOR es igual que la de @SUM, es decir:

@FOR(nombre del conjunto | condición: expresión matemática)

El resultado de una función @FOR es un conjunto de expresiones matemáticas. Esta función


sustituye al símbolo matemático para todo (). Si existen varias expresiones que se deben
cumplir para todos los elementos de un conjunto se pueden encadenar dentro de una única
función @FOR separándolas con punto y coma.

Optimización Matemática Página 14 Mg. Ing. José Grandón R.


Universidad de Santiago de Chile
Departamento de Ingeniería Geográfica

PRACTICA LAB-N°3

PROBLEMA 1:

La siguiente información corresponde al proceso de producción de 5 artículos fabricados en


una única maquinaria, la información relevante se expone en la tabla.

Disponibl
Articulo X1 X2 X3 X4 X5 e
Tiempo
Proceso
Maquina 2 3 2 3 5 600
Precio 50 40 30 50 20
Max. Dda. 100 300 250 200 150
Min. Dda. 10 20 30 10 20

Se desea establecer las cantidades que se debe producir de cada articulo para maximizar el
ingreso.

PROBLEMA 2:

Una empresa manufacturera elabora un producto en tres países diferentes P1, P2 y P3, que
debe ser transportado a tres distribuidores C1, C2 y C3 para su posterior venta. La cantidad de
unidades de producto disponible en P1 es de 9.000, en P2 existen 4.000 y en P3 es de 8.000.
Las unidades de producto requeridas en C1 es de 6.000, en C2 es de 5.000 y en C3 es de
7.000. Los costos unitarios de transporte, en unidades monetarias, desde cada país hasta cada
una de los distribuidores de las tres ciudades se muestran en la siguiente tabla:

Ciudad 1 Ciudad 2 Ciudad 3


País 1 10 20 9
País 2 8 10 6
País 3 10 30 7

Se desea establecer las cantidades que se deben abastecer desde cada país a las diferentes
ciudades, para minimizar costos.

Optimización Matemática Página 15 Mg. Ing. José Grandón R.


Universidad de Santiago de Chile
Departamento de Ingeniería Geográfica

LABORATORIO 4 “DOMINIO DE VARIABLES”

El valor de las variables por defecto en un modelo de LINGO son no-negativas y continuas.
Más específicamente, las variables pueden asumir algún valor real desde cero a infinito
positivo. En muchos casos, este dominio de valor por defecto puede ser impropio. Por
ejemplo, se puede querer una variable que asuma valores negativos, o se podría querer una
variable restringida puramente a valores enteros. LINGO proporciona cuatro funciones de
dominio de variables que permite sustituir el dominio predefinido de una variable. Los
nombres de estas funciones y una descripción breve de su uso son:

 @GIN restringe el dominio de la variable a valores enteros.


 @BIN hace que la variable tome valores binarios (es decir, 0 o 1).
 @FREE permite que la variable pueda asumir cualquier valor real.
 @BND limita los valores de la variable a un rango finito.

IX. VARIABLES ENTERAS Y BINARIAS

LINGO le da la posibilidad de definir dos tipos de variables enteras, una general y otra binaria.
Una variable entera general requiere ser un número entero. Una variable entero binaria
requiere ser cero o uno. Cualquier modelo que contiene uno o más variables enteras, es
denominado modelo programación entera.

En muchos proyectos de modelos, usted se enfrentará con tipos de decisiones (si/no).


Algunos ejemplos incluirían Produce/No Produce, Abre un Plan/Cierra un Plan, etc. Las
variables binarias son el método normal usado por modelar estas decisiones de si/no.

@GIN(X1) Obliga a X1 a tomar sólo valores enteros.

@BIN(X1) Obliga a variable a tomar sólo valores 0 ó 1.

X. VARIABLES LIBRES

Las variables en LINGO tiene un límite inferior de cero y un límite superior de infinito. @FREE
quita el límite inferior cero y permite que la variable tome valores negativos. La sintaxis es:

@FREE (X1) hace libre a la variable X1

La función @FREE puede usarse en cualquier parte del modelo donde normalmente iría una
restricción.

Optimización Matemática Página 16 Mg. Ing. José Grandón R.


Universidad de Santiago de Chile
Departamento de Ingeniería Geográfica

XI. VARIABLES LIMITADAS

Considerando que @FREE pone el límite superior e inferior de la variable especificada a más-
menos infinito (quitando cualquier límite en la variable), la función de @BND le permite
poner límite superior e inferior específicos en una variable. En otras palabras, @BND limita el
rango de una variable dentro de algún intervalo. La sintaxis para @BND es:

@BND (Limite inferior, X1, Limite superior)

Limite inferior y limite superior deben ser valores numéricos o variables cuyos valores han
sido fijados en la sección de datos. @BND puede usarse en cualquier lugar que normalmente
se usaría una restricción en el modelo. En términos matemáticos, LINGO interpreta @BND
como:

Limite inferior <= X1 <= Limite superior

Además, @BND no cuenta contra el límite del número total de restricciones que Lingo
impone en algunas versiones. En general, se usa @BND en lugar de una restricción siempre
que sea posible. Un ejemplo de @BND sería:

@BND (-1, X1, 1); haría que la variable X1 sólo pueda tomar valores entre -1 y 1.

PRACTICA LAB-N°4

PROBLEMA:

La división de investigación y desarrollo de una compañía manufacturera ha desarrollado 3


nuevos productos y dispone de 2 plantas para fabricarlos.
Se quiere evitar la diversificación excesiva de la línea de productos y por eso se fabricaran
máximo 2 de los 3 productos, y solo se utilizara una de las plantas, la información de
producción relevante se resume en la siguiente tabla.

Horas por unidad de Disponibilidad


Producto (Hr./semana)
1 2 3
Planta 1 3 4 2 30
2 4 6 2 40
Ganancia Unitaria 7 7 3
Demanda Máxima 7 5 3
Demanda Mínima 2 2 1

Formule y resuelva utilizando lingo por extensión.

Optimización Matemática Página 17 Mg. Ing. José Grandón R.


Universidad de Santiago de Chile
Departamento de Ingeniería Geográfica

LABORATORIO 5 “ARCHIVOS EXTERNOS”

LINGO es muy útil para la modelación de grandes problemas, los mas diversos métodos para
la modelación de cualquier problema, poseen una gran cantidad de información, la cual
generalmente se encuentra registrada en hojas de cálculos u otros archivos.

Una de las características funcionales de LINGO que permite el aprovechamiento de las


ventajas del trabajo con bases de datos es la posibilidad de recuperar e insertar
automáticamente datos en bases de datos y archivos comunes. Bajo ambiente Windows, se
utiliza las interfaces de OLE (Object Linking and Embeding) y ODBC (Open Database
Connectivity).

XII. FUNCIONES DE ARCHIVOS @OLE, @ODBC y @TEXT

@OLE, permite la conexión con hojas de calculo Excel, requiriendo dos pasos:

1. En al hoja de calculo, cada área que envía o recibe datos desde Lingo, debe estar
asociada a un nombre de rango, esto se realiza seleccionando las celdas de interés y
utilizando el comando InsertarNombreDefinir.
Los nombres de rango, deben ser los mismos nombres de las características definidas
en el modelo Lingo.

2. En el modelo Lingo, cada característica, será recuperada, y deberá aparecer en la


sección Lingo data.

La sintaxis para utilizar datos desde una hoja de calculo Excel es:

DATA:
Caract1 = @OLE(‘c:\direccion…..\nombrearchivo.extencion’);
ENDDATA

De forma similar Lingo puede traspasar la información a la hoja de calculo utilizando la


siguiente sentencia.

DATA:
@OLE(‘c:\direccion…..\nombrearchivo.extencion’)=Variable;
ENDDATA

De esta forma la información contenida en variable será traspasada al archivo Excel.

De igual forma como se mostró la utilización de la función @OLE para la comunicación con
Excel, es posible utilizar @ODBC(), para conectar Lingo a otras bases de datos. Igualmente la
función @TEXT(), esta disponible para conectar con un simple archivo de texto.

Optimización Matemática Página 18 Mg. Ing. José Grandón R.


Universidad de Santiago de Chile
Departamento de Ingeniería Geográfica

La sentencia general de @TEXT, es:

DATA
@TEXT(‘datossalida’)=variable;
ENDDATA

Con esta instrucción los valores de variable son enviados a un archivo de texto denominado
datossalida.

PRACTICA LAB-N°5

PROBLEMA

Se quiere establecer cuántos barcos hay que producir en cada uno de los cuatro trimestres
del año. La demanda de barcos en cada uno de ellos es conocida: 40, 60, 75 y 25 en cada
semestre. La empresa tiene que cumplir con las demandas. Al principio tiene un inventario de
10 barcos. La compañía al inicio de cada trimestre decide cuántos barcos producir. Suponga
que los barcos fabricados durante un trimestre pueden usarse para cubrir la demanda en el
mismo trimestre. La compañía puede producir 40 barcos en tiempo normal de trabajo a un
costo unitarios de 400 dólares y puede producir hasta 150 barcos adicionales utilizando
tiempo extra a un costo de unitario de 450 dólares. Al final de cada trimestre se presentan
costos de manejo de inventario por 20 dólares por cada barco.

ACTIVIDAD:

Utilizando Lingo, resuelva el problema:


 Utilice la sección SETS.
 Utilice la sección DATA.
 Utilice funciones @SUM y @FOR, para resolver.
 Maneje los costos en libro de calculo Excel.

Responda como comentario:


 Cantidad a Producir en Cada periodo y en cada turno
 Costo de fabricación
 Costo de almacenamiento

(Recomendación, se sugiere utilizar modelo de transporte para solucionar)

Optimización Matemática Página 19 Mg. Ing. José Grandón R.

Vous aimerez peut-être aussi