Anda di halaman 1dari 81

Contenido

1.

LENGUAJE DE MODELADO LINGO...................................................................4


1.1 SINTAXIS DE LINGO......................................................................................6
1.2 SECCION DE CONJUNTOS............................................................................6
2. OPERADORES LOGICOS....................................................................................11
2.1 COMANDOS DE LOS MENS Y FUNCIONES DE LINGO......................11
2.1.1 MEN FILE:................................................................................... 11
2.1.2 MEN EDIT:.................................................................................. 12
2.1.3 MENU LINGO:............................................................................... 13

2.2

FUNCIONES:..................................................................................................14

2.2.1 OPERADORES ESTANDAR............................................................14


2.2.2 FUNCIONES DE IMPORTACIN DE ARCHIVOS:..............................14
2.2.3 FUNCIONES DE FINANZAS:............................................................14
2.2.4 FUNCIONES MATEMTICAS:...........................................................14
2.2.5 FUNCIONES DE ITERACIONES EN CONJUNTOS:.............................15
2.2.6 FUNCIONES DEL DOMINIO DE LA VARIABLE:.................................15
2.2.7 FUNCIONES DE PROBABILIDAD:....................................................15

PROBLEMAS RESUELTOS CON LINGO............................................................16


3.1 Usando 1 sub. ndice.........................................................................................16
3.1.1

EJEMPLO DE MEZCLA..................................................................16

3.1.2 EJEMPLO DE DIETAS....................................................................17

3.2

USANDO 2 SUB. INDICE..............................................................................20

3.3

USANDO 3 SUB. INDICE..............................................................................22

3.4

USANDO 4 SUB. INDICE..............................................................................23

3.5
3.6
3.7
3.8

PROBLEMAS DE TRANSPORTE..................................................................28
PROBLEMA DE INVERSIN........................................................................29
PLANEACIN DE PRODUCCIN................................................................30
PLANEAMIENTO FINANCIERO..................................................................31

3.2.1

PROBLEMA 1 usando 2 sub ndices............................................20

3.3.1 PROBLEMA 1 de tres sub ndices.................................................22


3.4.1 PROBLEMA DE TRANSPORTE usando 4 sub ndices......................23

3.8.1 problema de planeamiento financiero 1......................................31


3.8.2 PROBLEMA DE PLANEAMIENTO FINANCIERO 2..............................32
3.8.3 PROBLEMA DE PLANEAMIENTO FINANCIERO 3................................33
3.8.4 PROBLEMA DE PLANEAMIENTO FINANCIERO 4................................35

PROBLEMAS DE PROGRAMACIN ENTERA CON LINGO...........................36


4.1 Problema 1 de programacin entera.................................................................37
4.2 Problema 2 de programacin entera.................................................................39
4.3 Problema 3 de programacin entera.................................................................41

Manual de lingo con problemas resueltos


Pgina 2

4.4 Problema 4 de programacin entera.................................................................41


4.5 Problema 5 de programacin entera.................................................................44
4.6 Problema 6 de programacin entera.................................................................46
4.7 Problema 7 de programacin entera.................................................................48
4.8 Problema 8 de programacin entera.................................................................49
5. PROBLEMA APLICADO A LA ASIGNACIN IMPORTANDO DE EXCEL.....52
5.1 PROBLEMA 1..................................................................................................52
5.1.1 INTERPRETACIN E IMPLENTACIN EN LINGO:..............................54
5.1.2 REPORTE DE LA SOLUCIN EXPORTANDO DATOS A EXCEL:..........59

5.2
5.3

MODELO DE ASIGNACIN DE PRESUPUESTO......................................60


PROGRAMA EN LINGO................................................................................64

5.3.1 REPORTE DE LA SOLUCIN EXPORTANDO DATOS A EXCEL :.........64

6.

5.4 Modelo de Asignacin de Proyecto..................................................................65


FORMULACIN DEL MODELO..........................................................................65
6.1 DEFINICIN DE VARIABLES:.....................................................................65
6.2 FUNCIN OBJETIVO:...................................................................................66
6.3 RESTRICCIONES:..........................................................................................66
6.3.1 RESTRICCIN DE USO MNIMO DE PRESUPUESTO POR SUSCURSAL
............................................................................................................... 66
6.3.2 RESTRICCIN DE USO MXIMO DE PRESUPESTO POR SUCURSAL
............................................................................................................... 66
6.3.3 RESTRICCIN DE INVERSIN MXIMA POR PROYECTO EN CADA
SUCURSAL.............................................................................................. 66
6.3.4

RESTRICCION DE PRESUPUESTO DISPONOBLE..........................66

6.4 Programacin Lineal con 4 variables (Excel)...................................................69


PROBLEMA 1 EN LINGO EXPORTANDO DATOS EN ACCESS......................76

Manual de lingo con problemas resueltos


Pgina 3

INTRODUCCIN
En la actualidad nuestra vida, el entorno est lleno de problemas que nos aquejan;
problemas adems que son un obstculo para el desarrollo de las empresas
especficamente, al momento de realizar clculos que nos garanticen que el ritmo de
produccin que viene llevando dichas empresas se est desarrollando de la mejor
manera. Es necesario para cumplir nuestro propsito de desarrollar de la mejor
manera la compaa o negocio al fin, realizar clculos que con sus respectivas
restricciones nos lleven a obtener las cantidades ideales o aptas para el buen
rendimiento de dichas entidades.
Cuando se busca que las empresas alcancen el mximo de ganancias o beneficios,
se hace uso del concepto de recursos, el cual interviene de gran manera en la
produccin. Es as entonces que el fin de todo es buscar el mximo beneficio
posible, y para esto hacemos uso de softwares que nos permitan obtener dichas
cantidades que se utilizar para la produccin.
En el trabajo mostrado a continuacin, se muestra una prctica de laboratorio
correspondiente a contenidos de programacin matemtica. Se desarrollan
ejemplos, tanto de forma lineal, no lineal, de transportes, enteras, etc., as como la
solucin de los mismos como el anlisis de sensibilidad, el cual se realiz son el
software LINGO.
LINGO es una herramienta matemtica que resuelve una amplia gama de problemas
de optimizacin, lineales, no lineales y enteros, utilizando un lenguaje sencillo, lo que
lo convierte en un asistente ideal en la docencia. Junto con LINDO forma parte del
paquete SOLVER SUITE (manual de usuario, 1996).
Podemos decir que el objetivo de este trabajo es mostrar las posibilidades del
software en la docencia de la optimizacin matemtica y no de servir de manual de
introduccin al manejo de LINGO, se incluyen los conocimientos elementales
necesarios para empezar a trabajar con este paquete.

Manual de lingo con problemas resueltos


Pgina 4

1. LENGUAJE DE MODELADO LINGO


Qu es LINGO?
LINGO es una herramienta simple para utilizar la potencialidad de la optimizacin
lineal y no lineal para formular problemas muy grandes de una manera concisa,
resolverlos y analizar su solucin. La optimizacin le ayuda a encontrar la respuesta
que representa la mejor solucin; obtiene la mayor utilidad, respuesta o felicidad; o
logra el menor costo, desperdicio o disconformidad. A menudo estos problemas
significan hacer el uso ms eficiente de sus recursos- incluyendo dinero, tiempo,
maquinaria, personal, inventario y mucho ms. Los problemas de optimizacin se
clasifican a menudo como lineales y no lineales, dependiendo si las relaciones entre
las variables son o no lineales.
LINGO es un lenguaje de modelado matemtico diseado para formular y resolver
problemas de programacin lineal, programacin entera y programacin no lineal.

Cmo Instalar LINGO?


Esta seccin discute cmo instalar LINGO en la plataforma Windows. Para instalar
LINGO en plataformas aparte de Windows, se refieren a las instrucciones de
instalacin incluidas con su software.
Instalar el software de LINGO es directo. A LINGO de disposicin para Windows,
ponga su CD en la gua apropiada y corrida la instalacin programa SETUP
contenido en la carpeta de LINGO. El programa de instalacin de LINGO le abrir y
guiar por los pasos requeridos para instalar LINGO en su disco duro.
Nota: Si existe una versin previa de LINGO instalada en su mquina, entonces
usted puede necesitar. Desinstala lo antes que puede instalar la nueva copia de
LINGO. Para desinstalar la copia existente de lingos, haga clic en el botn Start de
Windows, escoja Panel de Control, entonces haga clic dos veces sobre en el Add o
quite programe icono. Deba entonces ser capaz de escoger LINGO y tener la
versin vieja quitada de su sistema.
La mayor parte de las copias de LINGO vienen con sus preinstaladas licencias. Sin
embargo, ciertas versiones de LINGO requieren usted para entrar una llave de
licencia. Si su versin de LINGO requiere una licencia teclee, estar presente con la
caja de dilogos siguiente cuando usted empieza LINGO:

Manual de lingo con problemas resueltos


Pgina 5

Su llave de licencia puede haber sido incluido en un correo electrnico envi a usted
cuando usted orden su software. La llave de licencia es una cuerda de letras,
smbolos y nmeros, separado en grupos de cuatro por los guiones (por ejempo,
r82m-XCW2-dZu?-%72S-fD?S-Wp@ ). Cuidadosamente entre la llave de licencia
en el campo de edicin, incluyendo guiones. Las llaves de licencia son el caso
sensitivo, as que debe estar seguro de preservar el caso de las letras individuales al
entrar su llave. Haga clic sobre el botn OK y, asumiendo la llave es sido entrada
correctamente, LINGO empezar entonces. En lo sucesivo, ser capaz de correr
LINGO directamente sin entrar la llave.
Nota: Si recibi su licencia teclee por correo electrnico, entonces
tiene la opcin de cortante-y-pegndolo en la caja de dilogos
clave de licencia. Corte la llave del correo electrnico que contiene
lo con el Ctrl+C llave, entonces escoja el campo clave en caja
de dilogos de LINGO y pegue la llave con la llave de Ctrl+V.
1.1 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. Al igual que las sentencias los comentarios finalizan con
un punto y coma.

Manual de lingo con problemas resueltos


Pgina 6

Una formulacin en LINGO, tiene tres secciones:

Seccin de conjuntos, SETS, que especifica los conjuntos y sus atributos

Seccin de datos, DATA, que proporciona los datos a usar o indica donde
obtenerlos

Seccin del modelo, MODEL, lugar donde se describe el modelo matemtico.

1.2 SECCION DE CONJUNTOS

Cada conjunto tiene la sintaxis siguiente:

NOMBRE/ LOS MIEMBROS/: LOS ATRIBUTOS;


SETS:
FABRICAS /F1, F2/: CAPACIDAD;
CENTROS /C1, C2, C3/: DEMANDA;
RUTAS (FBRICAS, CENTROS): C, X;
ENDSETS
Los conjuntos, FABRICAS y CENTROS se denominan conjuntos primitivos y el
ltimo se denomina

conjunto derivado, donde C

y X representan,

respectivamente, los costos unitarios de transporte y cantidad transportada de las


fabricas a los centros.

SECCION DE DATOS
Los valores de los atributos de los elementos de los conjuntos, tienen la sintaxis
siguiente:
DATA:
CAPACIDAD = 30, 20;
DEMANDA = 10, 25, 15;
C
= 2, 4, 6,
7, 10, 1;
ENDDATA

SECCION DEL MODELO


Para presentar el modelo se utiliza dos funciones @SUM y @FOR.
@SUM calcula la suma de una expresin sobre todos los miembros del conjunto.

Manual de lingo con problemas resueltos


Pgina 7

La forma general es:


@SUM (set: expresin)
Suma la expresin que sigue a los dos puntos.
Por ejemplo:
@SUM (RUTAS: C*X)
Suma la expresin que sigue a los dos puntos que corresponde al producto del
costo unitario de transporte por la cantidad transportada de cada origen a cada
destino considerado.
La segunda funcin es @FOR, esta funcin sirve para generar restricciones sobre
los miembros de un conjunto. La forma general es:
@FOR (set: restriccin)
Por ejemplo:
@FOR (CENTROS (J): @SUM (FABRICAS(I):X(I,J))<=CAPACIDAD(I));
Indica que se genere la restriccin que sigue a los dos puntos para cada miembro
del conjunto que les precede. Cada elemento del conjunto CENTROS (J) para J =
1, 2,3 se genera las restricciones siguientes:
J = 1:

X11 + X21 >= 10

J = 2:

X12 + X22 >= 25

J=3

X13 + X23 >= 15

La formulacin completa es como sigue:


MODEL:
! 2 FABRICAS, 3 CENTROS, problema de transporte;
SETS:
FABRICAS /1..2/: CAPACIDAD;
CENTROS /1..3/ : DEMANDA;
RUTAS (FBRICAS, CENTROS): C, X;
ENDSETS
DATA:
CAPACIDAD = 30,20;
DEMANDA = 10, 25,15;
C = 2, 4, 6,
7,10, 1;
ENDDATA
! LA FUNCION OBJETIVO;
MIN = @SUM (RUTAS: C*X);

Manual de lingo con problemas resueltos


Pgina 8

! RESTRICCIONES DE LA DEMANDA;
@FOR (CENTROS (J): @SUM (FABRICAS (I): X (I, J)) >= DEMANDA (J));
! RESTRICCIONES DE LA OFERTA;
@FOR (FABRICAS (I): @SUM (CENTROS (J): X (I, J)) <= CAPACIDAD (I));
END

Para presentar el modelo algebraico se hace clic en la ficha LINGO, Generate,


Algebraic, Generate y se tiene como resultado lo siguiente:
MODEL:
[_1] MIN= 2 * X_1_1 + 4 * X_1_2 + 6 * X_1_3 + 7 * X_2_1 + 10 * X_2_2 + X_2_3;
[_2] X_1_1 + X_2_1 >= 10;
[_3] X_1_2 + X_2_2 >= 25;
[_4] X_1_3 + X_2_3 >= 15;
[_5] X_1_1 + X_1_2 + X_1_3 <= 30;
[_6] X_2_1 + X_2_2 + X_2_3 <= 20;
END
Se puede omitir el paso anterior pasando a la solucin del modelo haciendo clic en
LINGO, Solve obteniendo el siguiente resultado:
Objective value:
Variable
CAPACIDAD( F1)
CAPACIDAD ( F2)
DEMANDA( C1)
DEMANDA( C2)
DEMANDA( C3)
C( F1, C1)
C( F1, C2)
C( F1, C3)
C( F2, C1)
C( F2, C2)
C( F2, C3)
X( F1, C1)
X( F1, C2)
X( F1, C3)

160.0000
Value
Reduced Cost
30.00000
0.0000000
20.00000
0.0000000
10.00000
0.0000000
25.00000
0.0000000
15.00000
0.0000000
2.000000
0.0000000
4.000000
0.0000000
6.000000
0.0000000
7.000000
0.0000000
10.00000
0.0000000
1.000000
0.0000000
5.000000
0.0000000
25.00000
0.0000000
0.000000
10.000000

Manual de lingo con problemas resueltos


Pgina 9

X( F2, C1)
X( F2, C2)
X( F2, C3)

5.000000
0.000000
15.00000

0.0000000
1.0000000
0.0000000

1.2 USO DE FUNCIONES DE DOMINIO DE VARIABLES


A menos que se especifique lo contrario, las variables en un modelo de LINGO son
continuas y no negativas. Ms especficamente las variables pueden asumir
cualquier valor real desde cero hasta ms infinito. En muchos casos este dominio
para una variable puede ser inapropiado. Por ejemplo puede necesitarse que una
variable asuma valores negativos, o solamente valores enteros.

LINGO est

provisto de cuatro funciones de dominio de variables que permiten sobrepasar el


dominio por omisin de una variable:

@GIN

Limita la variable slo a valores enteros

@BIN

Hace una variable binaria (0 1)

@FREE
@BND

Permite que la variable tome cualquier valor


real (positivo o negativo)
Limita la variable para que se ajuste a un rango
finito

Ejemplos de uso de variables enteras:


@GIN(X); Transforma la variable escalar X en entera
@GIN (PRODUCE (5)); Transforma la variable PRODUCE (5) en entera
@FOR (DAYS(I): @GIN(START(I))); Transforma todas las variables del atributo
START

Ejemplos de uso de variables binarias:


@BIN(X); Transforma la variable escalar X en binaria
@BIN (INCLUDE (4)); Transforma la variable INCLUDE (4) en binaria
@FOR (ITEMS:@BIN(INCLUDE));Transforma todas las variables del atributo
INCLUDE en binarias

Manual de lingo con problemas resueltos


Pgina 10

Ejemplos de uso de variables libres:


@FREE(X); Transforma la variable escalar X en libre
@FREEE (QUANTITY (4)); Transforma la variable QUANTITY (4) en libre
@FOR (ITEMS:@FREE(QUANTITY));Transforma todas las variables del atributo
QUANTITY en libres

Ejemplos de uso de variables con lmites:


@BND (-1, X, 1): Restringe la variable X al intervalo [-1, 1]
@BND (100, QUANTITY (4), 200): Limita QUANTITY (4) entre 100 y 200
@FOR (ITEMS: @BND (10, Q, 20)): Fija los lmites de todas las variables del
atributo Q

en 10 y 20

@FOR (ITEMS: @BND (QL, Q, QU)): Fija los lmites de todas las variables del
atributo Q en QL y QU (A QL y QU deben habrsele asignado valores en la
seccin de datos)

2. OPERADORES LOGICOS
LINGO tiene nueve operadores lgicos:
NOT (no), EQ (igual), NE (no igual), GT (mayor que), GE (mayor igual), LT (menor
igual), LE (menor igual), AND (y) y OR (o) que se utilizan para comparar valores, la
forma de usar es:

#operador#.

Los elementos del LINGO requieren un objetivo, una o ms variables y una o ms


restricciones. Las instrucciones del LINGO terminan con: (punto y coma).
2.1 COMANDOS DE LOS MENS Y FUNCIONES DE LINGO

El men principal comprende 5 submens acomodados en la parte superior de la


pantalla en los que se listan diversos comandos.
2.1.1 MEN FILE:

Los comandos del men File (archivo) le permiten manejar sus archivos de datos
en LINGO de distintas maneras. Usted puede usar este men para abrir, cerrar,
guardar e imprimir archivos, as como para ejecutar varias tareas nicas con
LINGO.
COMANDOS FILE:

Manual de lingo con problemas resueltos


Pgina 11

NEW F2: Crea una nueva ventana para ingresar datos.


OPEN F3:

Abre un archivo existente. Mediante los cuadros de dialogo

usted puede seleccionar entre varios tipos de archivos y ubicaciones.


SAVE F4:

Guarda la ventana activa. Usted puede guardar los datos de

entrada (un modelo), una ventana de informes (ventana de informes) o una


ventana de comandos.
SAVE AS F5

: Guarda la ventana activa con un nombre de archivo

especifico. Es til para volver a asignar un nombre a un archivo revisado y


conservar intacto el archivo original.
CLOSE F6:
entonces

Cierra la ventana activa. Si la ventana contiene nuevos datos,


se le preguntar si desea guardar los cambios.

PRINT F7: Enva la ventana activa a su impresora.


PRINTER SETUP F8:
formato de

Selecciona la impresora y varias opciones para el

impresin.

Log output F9:

Enva toda la actividad posterior de la pantalla que

normalmente se enviara a la ventana Reports, a un archivo de texto. Si usted


especifica una ubicacin log file, aparece una marca en el men file en la
lnea de Log Output. Para inactivar Log Output seleccione simplemente el
comando de nuevo.
Take Commands:

Toma un batch file de LINGO con comandos y texto del

modelo para operacin automatizada. Se puede poner un modelo en la


memoria, resolverlo y la solucin es colocada en la ventana Reports y
guardada en un archivo. Si usted usa el comando BATCH antes del inicio del
texto del modelo, el modelo y los comandos contenidos en el archivo, as
como la solucin, se vern en la ventana Reports
Import LINDO file F12: Abre un archivo que contiene un modelo de Lindo en
el formato TAKE de Lindo y traduce el modelo en un formato que Lingo
acepta.
Exit F10: Cierra LINGO.

2.1.2 MEN EDIT:

Los comandos del men edit permiten a usted ejecutar tareas bsicas de edicin
comunes a la mayora de aplicaciones para Windows, as como efectuar varias
tareas que son exclusivas para LINGO.

Manual de lingo con problemas resueltos


Pgina 12

COMANDOS EDIT:
Undo ctrl. + Z: Deshace la ltima accin.
Cut ctrl. + X: Corta el texto seleccionado en el portapapeles para pegarlo.
Copy ctrl. + C: Copia el texto seleccionado en el portapapeles para pegarlo.
Paste ctrl. + V:

Inserta o pega el contenido del portapapeles en el punto de

insercin.
Clear

delete

Borra el texto seleccionado pero no lo coloca en el

portapapeles.
Find/ Replace ctrl. + F:

Busca la ventana activa para encontrar el texto

seleccionado y reemplazarlo con el texto introducido en el cuadro Replace


with (Sustituya por).
G oto line ctrl. + T: Usted puede mover el cursor a cualquier linea especificada
de la ventana activa.
Match Parntesis ctrl. + P:

Encuentra el parntesis cerrado que corresponde

al parntesis abierto seleccionado.


Paste Function:

Pega las funciones incorporadas EN LINGO en el punto de

insercin actual. Despus de seleccionar este comando aparece otro


submenu con las distintas categoras de las funciones.
Select All ctrl. +A: Selecciona toda la ventana activa para cortarla o copiarla.
Cose New Font:

Selecciona una nueva fuente para el texto en la ventana

activa.

2.1.3 MENU LINGO:

Los comandos del men LINGO se usan despus de que usted ya introdujo
datos y estn listos para obtener una solucin.
COMANDOS LINGO:

Solve ctrl. + S: Enva el modelo que se encuentra en la ventana activa


al Solver de LINGO.

Solution ctrl. + O:

Abre el cuadro de dialogo Solution Report Options

(opciones para mostrar la solucin), el cual permite a usted especificar como


quiere que aparezca su solucin.

Range ctrl. + R: Despliega un informe de intervalos, el cual le muestra


dentro de que valores usted puede cambiar valores coeficientes sin modificar
los valores ptimos.

Manual de lingo con problemas resueltos


Pgina 13

Look ctrl.+ L: Despliega todo el modelo o las lneas seleccionadas.

Generate ctrl. + S:

Crea otra versin del modelo actual en formato

algebraico de LINDO o MPS. Se puede usar para enumerar renglones y


desplegar el modelo en un formato ms fcil de leer. El comando GEN
proporciona una capacidad similar desde la ventana de comandos.
Export to Spreadsheet ctrl. + E:

Exporta valores de variables

seleccionadas a intervalos nombrados en una hoja de calculo.


Primero se tiene que crear una hoja de clculo con intervalos dimensionados
para que se puedan acomodar en ellos los valores exportados.
Los intervalos tienen que contener nmeros. Al seleccionar este comando se
abrir un cuadro de dialogo que pide la plantilla y las hojas de trabajo (nombres
de archivo de la hoja de calculo), variables por exportar y el intervalo para el cual
se exportaran los valores. Las variables y el intervalo se introducen por pares y
se aaden a la lista de pares de variable e intervalo dando un clic en el botn de
agregar.
2.2 FUNCIONES:

LINGO tiene siete funciones principales: operador estndar, importacin de


archivos, finanzas, matemticas, iteraciones en conjuntos, dominio de variable y
probabilidad y una variedad de otras funciones. La mayora de estas funciones
esta disponible por medio de los comandos del men.
2.2.1 OPERADORES ESTANDAR

Entre estos operadores se encuentran los aritmticos (^,*,/,+ y - ) , operadores


lgicos (#EQ# , #NE# , #GT# , #GE# , #LT# y #L3#) para determinar la calidad
del conjunto y operadores de igualdad-desigualdad ( <;=;>; <= ; y >=) para
especificar si el primer miembro de una expresin debe ser menor que, igual a , o
mayor que el segundo miembro.
2.2.2 FUNCIONES DE IMPORTACIN DE ARCHIVOS:

Estas funciones le permiten importar el texto y datos de fuentes externas. La


funcin @FILE le permite importar el texto o datos desde un archivo en ASCIL, y
la funcin @IMPORT le permite importar datos solo de una hoja de calculo.

Manual de lingo con problemas resueltos


Pgina 14

2.2.3 FUNCIONES DE FINANZAS:

Entre estas funciones estn @FPA (I, N), la cual da el valor presente de una
anualidad y la funcin @FPL (I, N), la cual regresa el valor presente de un valor
global de N periodos de $1 a partir de ahora si la tasa de inters es I por
periodo. I no es un porcentaje, sino un nmero no negativo que representa la
tasa de inters.
2.2.4 FUNCIONES MATEMTICAS:

Comprenden las funciones generales y trigonomtricas siguientes: @ABS(X),


@COS(X), @EXP(X), @LGM (X), @LOG(X), @SIGN(X), @SIN(X), @SMAX
(list), @SMIN (list), @TAN(X). Se pueden utilizar combinaciones de las tres
funciones trigonomtricas bsicas (seno, coseno y tangente) para obtener otras
funciones trigonomtricas.
2.2.5 FUNCIONES DE ITERACIONES EN CONJUNTOS:

Comprenden @FOR (set_name: constraint_expression), @MAX (set name:


expression), @MIN (set_name:expression) y @SUM (set_name:expression).
Estas funciones operan sobre un conjunto completo y producen un solo resultado
en todos los casos, excepto con la funcin @FOR, la cual genera restricciones
independientemente de cada elemento del conjunto.
2.2.6 FUNCIONES DEL DOMINIO DE LA VARIABLE:

Estas funciones fijan restricciones adicionales sobre variables y atributos.


Comprenden las siguientes: @BND (L, X, U), @BIN(X), @FREE(X) y @GIN(X).
2.2.7 FUNCIONES DE PROBABILIDAD:

LINGO posee capacidades estadsticas comunes con sus funciones de


probabilidad: @PSN(X),@PSL (X), @PPS (A,X), @PPL( A,X), @PBN(P,N,X),
@PHG(POP,G,N,X), @PEL(A,X), @PEB(A,X), PFS(A,X,C),
@PFD(N, D, X), @PCX(N, X), @PTD (N, X) y @RAND (X).

Manual de lingo con problemas resueltos


Pgina 15

3 PROBLEMAS RESUELTOS CON LINGO


3.1 Usando 1 sub. ndice
3.1.1

EJEMPLO DE MEZCLA

Una compaa Fabrica tres productos de caucho: AIRTEX (material esponjoso),


EXTENDEX (material elstico) y RESISTEX (material rgido). Los tres productos
requieren los mismos tres polmeros qumicos y una base. La cantidad de cada
ingrediente usado por libra del producto final se muestra en la siguiente tabla.

Producto

AIRTEX
EXTENDEX
EXTENDEX
Inventario

Ingrediente (OZ/LB de producto)


Polmero
Polmer
Polmero
A
oB
C
4
2
4
3
2
2
6
3
5
500
425
650

Base
6
9
2
1100

La compaa tiene el compromiso de producir ala menos 1000 libras de


airtex,500 libras de extendex y 400 libras de resistex para la prxima semana
pero la gerencia de la compaa sabe que puede vender mas de cada uno de los
tres productos .los inventarios actuales de los ingredientes son 500 libras del
polmero A , 425 libras del polmero B,650 libras el polmero C Y 1100 libras de
la base . Cada libra de airtex produce a la compaa una ganancia de $ 7, cada
libra de extendex una ganancia de $7 y cada libra de resistex una ganancia de
$6.como gerente del departamento de produccin, usted necesita determinar el
plan de produccin optimo para esta semana.
Solucin:
Producto Polimero A
AIRTEX
4
EXTENDX
3
RESISTX
6
inventario
500

Ingredientes (oz/lb. de producto)


Polimero B
Polimero C
base
compromiso
2
4
6
1000
2
2
9
500
3
5
2
400
425
650
1100

ganancia
7
7
6

Sea:
Xi: la cantidad de ingredientes del PRODUCTO i (i=airtex,extendex,resistex) que
se puede usar.
3

* ganacia(i)

FUNCION OBJETIVO: i 1
sea del Producto airtex, extendex, resistex.

;donde ganancia es la utilidad ya

Entonces: MAX Z = 7*X1 + 7*X2 + 6*X3


SUJETO A:

Manual de lingo con problemas resueltos


Pgina 16

X
i 1

COMPROMISO (i)

Para i=1-----X1 >=1000


Para i=2-----X2 >=500
Para i=3-----X3 >=400
3

* req u eri men


t o(i, j ) i n ven t a ri( jo) * 1 6

, donde requerimiento (i , j) es
la cantidad de producto de cada tipo de ingrediente.
Para J= 1------ 4X1 + 3X2 + 6X3 <= 500*16;
Para J= 2------ 2X1 + 2X2 + 3X3 <= 425*16;
Para J= 3------ 4X1 + 2X2 + 5X3 <= 650*16;
Para J= 4------ 6X1 + 9X2 + 2X3 <= 1100*16;
i 1

SETS:
PRODUCTO/1..3/:NIVEL,COMPROMISO,GANANCIA;
INGREDIENTE/A..D/:INVENTARIO;
PROIN(PRODUCTO, INGREDIENTE):X;
ENDSETS
DATA:
COMPROMISO=1000,500,400;
GANANCIA=7,7,6;
INVENTARIO =500,425,650,1100;
X=4,2,4,6,
3,2,2,9,
6,3,5,2;
ENDDATA
!FUNCION OBJETIVO MAXIMIZAR LA UTILIDAD;
MAX=@SUM(PRODUCTO:GANANCIA*NIVEL);
!RESTRICCION DEL INVENTARIO;
@FOR(INGREDIENTE(I):@SUM(PRODUCTO(P):X(P,I)*NIVEL(P))<=INVENTARIO(I)*16);
!RESTRICCION DEL COMPROMISO;
@FOR(PRODUCTO:NIVEL>=COMPROMISO);
END

3.1.2 EJEMPLO DE DIETAS

El departamento de nutricin de u hospital prepara 30 menues de cena, uno para


cada da del mas. Una comida consiste en espagueti, pavo, papas en escalope y
pastel de manzanas. Como director del departamento de nutricin, usted ha
determinado que esta comida debe proporcionar 63000 miligramos de protenas,
10 miligramos de hierro, 15 miligramos de niacina, 1 miligramo de tiamina y 50
miligramos de vitamina C .cada 100 gramos de esta comida proporciona la
cantidad de cada nutriente y grasas indicadas en la siguiente tabla:

NUTRIENTE(mg / 100g)
Manual de lingo con problemas resueltos
Pgina 17

SOLUCION: hacemos nuestra tabla


POTAJE

PROTEINA

HIERRO

5000
29300
5300
3000
4000
63000

1.1
1.8
0.5
2.2
1.2
10

ESPAGUETI
PAVO
PAPAS
ESPINACAS
PASTEL
MINIMO

NUTRIENTE(mg/100g)
TIACINA TIAMIN VITNA C GRASA
A
1.4
0.18
0
5000
5.4
0.06
0
5000
0.9
0.06
10
7900
0.5
0.07
28
300
0.6
0.15
3
14300
15
1
50
0

MAXIMO

Sea Xi: cantidad de nutriente de tipo (i=1, 2, 3, 4, 5,6) i=1---espagueti


i=2---pavo
i=3---papas
i=4---espinacas
i=5---pastel
i=6---grasa
Funcin objetivo:
Min Z=X6;
SUJETO A:
Restriccin de la cantidad de grasa total que debe haber :
5

X 6 X i * CGi 0 ; donde

CGi es la cantidad de grasa ya sea en Pavo ,


papas ,espinacas ,pastel, espagueti.
i 1

Por lo tanto: X6 X1*5000 5000*X2 7900*X3 3000*X4 14300*X5=0


Restriccin de la cantidad de nutriente por cada 100 mg que proporciona:
5

MAXIMOi / 100 ; donde

* nutriente j ,i MINIMO j

MAXIMO i es la cantidad mxima de cada


potaje ya sea de Espagueti, pavo, papas, espinacas y pastel
Por lo tanto: Para i=1 -- X1<=300/100
Para i=2 -- X2<=300/100
Para i=3 -- X3<=200/100
Para i=4 -- X4<=100/100
Para i=5 -- X5<=100/100
Restriccin de la cantidad de nutriente por pataje que debe haber como
mnimo:
i 1

, donde NUTRIENTEj,i . j ,es la cantidad de


nutriente ya Sea de protena, hierro, tiacina, tiamina, vitna C ,grasa por Cada
potaje i ya sea :Espagueti, pavo, papas, espinacas, pastel.
Y MINIMO j es la cantidad de potaje como mximo que debe existir.
i 1

Manual de lingo con problemas resueltos


Pgina 18

300
300
200
100
100

Por lo tanto:
Para i=1,2,3,4,5 Y j=1
X1*5000 + X2*29300 + X3*5300 + X4*3000 + X5*4000 >=63000
Para i=1,2,3,4,5 Y j=2
X1*1.1 + X2*1.8 + X3*0.5 + X4*2.2 + X5*1.2 >=10
Para i=1,2,3,4,5 Y j=3
X1*1.4 + X2*5.4 + X3*0.9 + X4*0.5 + X5*0.6 >=15
Para i=1,2,3,4,5 Y j=4
X1*0.18 + X2*0.06+ X3*0.06 + X4*0.07 + X5* 0.15 >=1
Para i=1,2,3,4,5 Y j=5
X1*5000 + X 2*5000 + X3*7900 + X4*300 + X5*14300 >=0
SETS:
POTAJE/1..5/:NIVEL,MAXIMO;
NUTRIENTE/1..6/:MINIMO;
PONU(POTAJE,NUTRIENTE):REQ;
ENDSETS
DATA:
MAXIMO=300,300,200,100,100;
MINIMO=63000,10,15,1,50,0;
REQ=5000,1.1,1.4,0.18,0,5000,
29300,1.8,5.4,0.06,0,5000,
5300,0.5,0.9,0.06,10,7900,
3000,2.2,0.5,0.07,28,300,
4000,1.2,0.6,0.15,3,14300;
ENDDATA
MIN=GRASA;
GRASA=@SUM(POTAJE(I):REQ(I,6)*NIVEL(I));
@FOR(POTAJE(I):NIVEL(I)<=MAXIMO(I)/100);
@FOR(NUTRIENTE(J):@SUM(POTAJE(I):REQ(I,J)*NIVEL(I))>=MINIMO(J));
END
HACIENDO CORRER EL PROGRAMA CON LINGO 10
Objective value:
Total solver iterations:
Variable
NIVEL( ESPAGUETI)
NIVEL( PAVO)
NIVEL( PAPAS)
NIVEL( ESPINACAS)
NIVEL( PASTEL)

54800.00
3
Value
3.000000
2.833333
2.000000
1.000000
0.6666667

Reduced Cost
0.000000
0.000000
0.000000
0.000000
0.000000

A ASI SUCESIVAMENTE.

Manual de lingo con problemas resueltos


Pgina 19

3.2 USANDO 2 SUB. INDICE


3.2.1

PROBLEMA 1 usando 2 sub ndices

Una empresa que fabrica un producto nico, tiene 3 fabricas y 4 clientes. Las 3
fabricas producen 3 000, 5 000 y 5 000 unidades respectivamente, durante el
siguiente periodo. La empresa se comprometi a vender 4 000 unidades al
cliente 1; 3 000 unidades al cliente 2; y, por lo menos, 3 000 unidades al cliente
3. Los clientes 3 y 4 quieren comprar la mayor cantidad posible de las unidades
restantes. En la siguiente tabla se da la ganancia asociada con el envo de una
unidad desde la fabrica i hacia el cliente j.
DESDE

Fabrica 1
Fabrica 2
Fabrica 3

AL CLIENTE
1
(dlares)
(dlares)
65
68
63

2
3
(dlares)
63
67
60

62
65
59

4
(dlares)
64
62
60

Plantear un problema de transporte balanceado que se pueda utilizar para


maximizar la ganancia de la compaa.
Solucin:
UNID ij = la cantidad enviada de la fabrica i al cliente j (i=1,2,3 j=1,2,3,4)
La funcin objetivo seria:
MAX 65 UNID( FAB1, CEN1) + 63 UNID( FAB1, CEN2) + 62 UNID(
CEN3) + 64 UNID( FAB1, CEN4)+ 68 UNID( FAB2, CEN1) + 67 UNID(
CEN2) + 65 UNID( FAB2, CEN3) + 62 UNID( FAB2, CEN4)+ 63 UNID(
CEN1) + 60 UNID( FAB3, CEN2) + 59 UNID( FAB3, CEN3) + 60 UNID(
CEN4)
SUBJECT TO

FAB1,
FAB2,
FAB3,
FAB3,

2] UNID( FAB1, CEN1) + UNID( FAB2, CEN1) + UNID( FAB3, CEN1) >= 4000
3] UNID( FAB1, CEN2) + UNID( FAB2, CEN2) + UNID( FAB3, CEN2) >= 3000
4] UNID( FAB1, CEN3) + UNID( FAB2, CEN3) + UNID( FAB3, CEN3) >= 3000
5] UNID( FAB1, CEN4) + UNID( FAB2, CEN4) + UNID( FAB3, CEN4) >= 6000
6] UNID( FAB1, CEN1) + UNID( FAB1, CEN2) + UNID( FAB1, CEN3) +
UNID( FAB1, CEN4)
<= 3000
7] UNID( FAB2, CEN1) + UNID( FAB2, CEN2) + UNID( FAB2, CEN3) +
UNID( FAB2, CEN4)
<= 5000
8] UNID( FAB3, CEN1) + UNID( FAB3, CEN2) + UNID( FAB3, CEN3) +
UNID( FAB3, CEN4)
<= 5000
END

Manual de lingo con problemas resueltos


Pgina 20

Mostrando la solucin en LINGO:


SETS:
FABR/FAB1,FAB2,FAB3/: CAPAC;
CLIEN/CEN1,CEN2,CEN3,CEN4/:DEMAN;
VIAS(FABR,CLIEN):GANAN,UNID;
ENDSETS
DATA:
CAPAC=3000 5000 5000;
DEMAN=4000 3000 3000 6000;
GANAN=65,63,62,64,
68,67,65,62,
63,60,59,60;
ENDDATA
MAX UNID=@SUM(VIAS:GANAN*UNID);
@FOR(CLIEN(J):@SUM(FABR(I):UNID(I,J))>=DEMAN(J));
@FOR(FABR(I):@SUM(CLIEN(J):UNID(I,J))<=CAPAC(I));
END
Variable

Value

UNID( FAB1, CEN1)


UNID( FAB1, CEN2)
UNID( FAB1, CEN3)
UNID( FAB1, CEN4)
UNID( FAB2, CEN1)
UNID( FAB2, CEN2)
UNID( FAB2, CEN3)
UNID( FAB2, CEN4)
UNID( FAB3, CEN1)
UNID( FAB3, CEN2)
UNID( FAB3, CEN3)
UNID( FAB3, CEN4)

Reduced Cost

0.0000000
0.0000000
0.0000000
3000.000
2000.000
3000.000
0.0000000
0.0000000
2000.000
0.0000000
0.0000000
3000.000

3.0000000
1.0000000
2.0000000
0.0000000
0.0000000
0.0000000
0.0000000
2.0000000
0.0000000
0.0000000
1.0000000
0.0000000

3.3 USANDO 3 SUB. INDICE


3.3.1 PROBLEMA 1 de tres sub ndices

La ciudad de Busville tiene tres distritos escolares. En la tabla A se da el nmero


de estudiantes que pertenecen a grupos minoritarios y no minoritarios. El 25% de
todos los estudiantes (200/800) pertenecen a grupos minoritarios.
TABLA A

DISTRITO

ESTUDIANTES ESTUDIANTES
MINORITARIOS NO
MINORITARIOS

1
2
3

50
50
100

200
250
150

Manual de lingo con problemas resueltos


Pgina 21

La corte local a decidido que cada una de las dos escuelas de segunda
enseanza de la ciudad (Cooley y walt whitman) debe tener aproximadamente
(ms o menos 5%) el mismo porcentaje de estudiantes de minoras, que la
ciudad entera. En la tabla B se da las distancias entre los distritos escolares y las
escuelas. Cada escuela debe tener entre 300 y 500 estudiantes. Utilice la
programacin lineal para determinar la asignacin de los estudiantes a cada
escuela para minimizar la distancia total que tienen que viajar los estudiantes
para llegar a ella.
TABLA B

DISTRITO
1
2
3

WALT
WHITMAN

COOLEY
1
2
1

2
1
1

SOLUCION:
Primero vamos a encontrar la funcin objetivo, la escuela busca minimizar la
distancia total recorrida por sus estudiantes desde su distrito a la escuela y
cuantos estudiantes son mayoras y minoritarios, entonces vamos a llamar a la
variable estudiantes i,j,k, donde i: estudiantes del distrito i (i=1,2,3) que
pertenecen al grupo j (1:minoria,2:mayoria) y que estudian en la escuela k
( 1:Cooley,2:Walt Whitman).Si lo queremos expresar escalarmente con los datos
de la tabla Nro 2
MIN=1*( estudiantes 111+ estudiantes 121)+2*( estudiantes 211+2* estudiantes
estudiantes 311+ estudiantes 321)+2*( estudiantes 112+ estudiantes
221)+1*(
)+1*(
estudiantes
222
221+ estudiantes 222)+1*( estudiantes 312+1* estudiantes 322)

SETS:
DIST/1 . . 3/ : ;
TIPO / 1 . .2/ : ;
COLE / 1 . .2 / : ;
DT ( DIST , TIPO ) : CANT ;
DC ( DIST , TIPO ) : CANT ;
DC ( DIST , TIPO , COLE ) : X ;
ENDSETS ;
DATA:
CANT = 50 , 200 , 50 , 250 , 100 , 150 ;
DIS = 1 , 2 , 2 , 1 , 1 , 1 ;
N = 300 , 500 ;
ENDDATA
MINIMIZAR LA DISTANCIA TOTAL RRECORRIDA POR LOS ESTUDIANTES ;
MIN = @ SUM ( DTC : DIS * X ) ;
TOTAL DE ESTUDIANTES POR DISTRITO
@ FOR ( DIST ( I ) : @ FOR ( TIPO (J) : @SUM(COLE (K) : X (I,J,K) ) = CANT (I,J)));
!ESTUDIANTES POR COLEGIO ;
@FOR (COLE (K) : @SUM( DT ( I,J ) /J# EQ#1 : X ( I,J,K) ) >=0.2 * ( @SUM(DT(I,J):X(I,J,K))));

Manual de lingo con problemas resueltos


Pgina 22

@FOR ( COLE(K) : @SUM( DT ( I, J ) /J#EQ#1 : X( I,J,K) ) < 0.3 * ( @ SUM ( DT(I,J):X(I,J,K))));


END

3.4 USANDO 4 SUB. INDICE


3.4.1 PROBLEMA DE TRANSPORTE usando 4 sub ndices

La Quality Paper, fabricante y distribuidor de papel .produce 3 tipos diferentes de


papel que se pueden fabricar tanto en la fabrica A,B, o C ubicados en lima.la
empresa busca satisfacer la demanda establecida para las ciudades(Tacna y
Cuzco) en donde se venden los productos, adems en cada ciudad existen 2
tipos de centros de distribucin(supermercados y libreras) los cuales pertenecen
a la corporacin.los precios de ventas de los productos segn donde fueron
fabricados, la ciudad y el centro de distribucin donde se va a vender son los
siguientes:
TACNA

Fab A
Fab B
Fab C

Pro

CUZCO
SUPERMERCADO
Pr
Pro
Pro

LIBRERIA
Pro
Pro

Pro

d2

d3

d2

d3

d1

d2

d3

12
14
11

15
16
13

d1
14
13
11

12
14
13

13
15
14

15
11
12

13
12
13

12
13
14

SUPERMEMRCADO
Pro
Pro
Pro

LIBRERIA
Pro
Pro

d1

d2

d3

d1

13
10
12

15
13
11

17
14
13

11
12
10

La corporacin busca maximizar sus ventas y saber como va a distribuir sus


productos tomando en cuenta la capacidad de produccin de las fbricas, la
demanda de las ciudades y la capacidad de los centros de distribucin.

PROD1
PROD2
PROD3

FAB

FAB

FAB C

75
60
65

65
70
75

70
80
75

Capacidad de produccin
Demanda
PROD1
PROD2
PROD3

TACNA
73
58
67

CUZCO
67
72
74

Capacidad de los centros de distribucin


SUPER MERCADO
LIBRERA

TACNA
150
130

CUZCO
140
150

Manual de lingo con problemas resueltos


Pgina 23

Solucin:
Xi,j,k,l=cantidad de productos fabricados en la fabrica i(i=A,B,C),en la ciudad si
en TACNA, si y CUZCO(j=TC,CZ) distribuidos en SUPER MERCADO y
LIBRERA (K=SM,L) el producto L(L=P1,P2,P3).
FUNCION OBJETIVO:
C

CZ

P4

MAX I A, J TC K SM L P1

X I , J , K , L * PRECIO I , J , K , L
, donde PRECIO es el precio de

venta de cada producto.


MAXZ=12 * XA,P1,SM,TC +

15* XA,P1,SM,CZ + 17 * XA,P1,L,TC+11 *

XA,P1,L,CZ + 12 * XA,P2,SM,TC + 15 * XA,P2,SM,CZ +14*XA,P2,L,TC + 12 *


XA,P2_L,CZ + 13 * XA,P3,SM,TC + 15 * XA,P3,SM,CZ + 13 * XA,P3,L,TC + 12 *
XA,P3,L,CZ + 10 * XB,P1,SM,TC + 13 *XB,P1,SM,CZ + 14 * XB,P1,L,TC + 12 *
XB, P1, L, CZ + 14 * XB, P2,SM,TC + 16 * XB,P2,SM,CZ + 13 * XB,P2,L,TC + 14
* XB,P2,L,CZ + 15 * XB,P3,SM,TC + 11 * XB,P3,SM,CZ + 12 * XB,P3,L,TC + 13
*XB,P3,LCZ +12 * XC,P1,SM,TC + 11 * XC,P1,SM,CZ + 13 * XC,P1,L,TC + 10
*XC,P1,L,CZ + 11 * XC,P2,SM,TC + 13 * XC,P2,SM,CZ + 11 * XC,P2,LTC +13 *
XC,P2,L,CZ + 14 * X,C,P3,SM,TC + 12 * XC,P3,SM,CZ + 13 *XC,P3,L,TC + 14 *
XC,P3,LCZ ;
SUJETO A:
Capacidad de produccin:
L

P4

K SM , L P1

I , J ,K ,L

Para I=A,J=P1:
XA,P1_SM,TC + XA,P1,SM,CZ + XA,P1,L,TC + XA,P1,L,CZ <= 75 ;
Para I=A,J=P2:
XA,P2,SM,TC + XA,P2,SM,CZ + XA,P2,L,TC + XA,P2,L,CZ <= 60 ;
Para I=A,J=P3:
XA,P3,SM,TC + XA,P3,SM,CZ + XA,P3,L,TC + XA,P3,L,CZ <= 65 ;
Para I=B,J=P1:
XB,P1,SM,TC + XB,P1,SM,CZ + XB,P1,L,TC + XB,P1,L,CZ <= 65 ;
Para I=B,J=P2:
XB,P2,SM,TC + XB,P2,SM,CZ + XB,P2,L,TC + XB,P2,L,CZ <= 70 ;
Para I=B,J=P3:
XB,P3,SM,TC + XB,P3,SM,CZ + XB,P3,L,TC + XB,P3,L,CZ <= 75 ;

Manual de lingo con problemas resueltos


Pgina 24

Para I=C,J=P1:
XC,P1,SM,TC + XC,P1,SM,CZ + XC,P1,L,TC + XC,P1,L,CZ <= 70 ;
Para I=C,J=P2:
XC,P2,SM,TC + XC,P2,SM,CZ + XC,P2,L,TC + XC,P2,LCZ <= 80 ;
Para I=C,J=P3:
XC,P3,SM,TC + XC,P3,SM,CZ + XC,P3,L,TC + XC,P3,L,CZ <= 75
Demanda:
C

I A, K SM

I , J ,K ,L

Para J=TC, L=P1:


XA,P1,SM,TC + XA,P1,L,TC + XB,P1,SM,TC + XB,P1,L,TC +XC,P1,SM,TC +
XC, P1, L, TC >= 73;
Para J=CZ, L=P1:
XA,P1,SM,CZ + XA,P1,L,CZ + XB,P1,SM,CZ + XB,P1,L,CZ +
XC,P1,SM,CZ + XC,P1,L,CZ >= 67 ;
Para J=TC, L=P2:
XA,P2,SM,TC + XA,P2,L,TC + XB,P2,SM,TC + XB,P2,L,TC +
XC,P2,SM,TC + XC,P2,L,TC >= 58 ;
Para J=CZ, L=P2:
XA,P2,SM,CZ + XA,P2,L,CZ + X,B,P2,SM,CZ + XB,P2,L,CZ +
XC,P2,SM,CZ + XC,P2,L,CZ >= 72 ;
Para J=TC, L=P3:
XA,P3,SM,TC + XA,P3,L,TC + XB,P3,SM,TC + XB,P3,L,TC +
XC,P3,SM,TC + XC,P3,L,TC >= 67 ;
Para J=CZ, L=P3:
XA,P3_SM,CZ + XA,P3,L,CZ + XB,P3,SM,CZ + XB,P3,L,CZ +
XC,P3,SM,CZ + XC,P3,L,CZ >= 74 ;

Capacidad de los centros de distribucin:


C

P4

I A, L P1

I ,J ,K ,L

Para J=TC, K=SM:

Manual de lingo con problemas resueltos


Pgina 25

XA,P1,SM,TC + XA,P2,SM,TC + XA,P3,SM,TC + XB,P1,SM,TC +


XB,P2,SM,TC + XB,P3,SM,TC + XC,P1,SM,TC + XC,P2,SM,TC
XC,P3,SM,TC<=150

Para J=CZ, K=SM:


XA,P1,SM,CZ + X,A,P2,SM,CZ + X,A,P3,SM,CZ + X,B,P1,SM,CZ +
X_B_P2_SM_CZ + XB,P3_SM,CZ + XC,P1,SM,CZ + XC,P2,SM,CZ +
XC,P3,SM,CZ <= 140 ;
Para J=TC, K=L:
XA,P1,L,TC + XA,P2,L,TC + X,A,P3,L,TC + XB,P1,L,TC +XB,P2,L,TC +
XB,P3,L,TC + XC,P1,L,TC + XC,P2,L,TC + XC,P3,L,TC <=130 ;
Para J=CZ, K=L:
XA,P1,L,CZ + XA,P2,L,CZ + XA,P3,L,CZ + XB,P1,L,CZ +XB,P2,L,CZ +
XB,P3,L,CZ + XC,P1,L,CZ + XC,P2,L,CZ + XC,P3,L,CZ <=150 ;

EL EQUIVALENTE EN LINGO ES:


SETS:
! FABRICAS DONDE SE VA A PRODUCIR EL PAPEL;
FABRICAS/A B C/: ;
! PRODUCTOS A SER PRODUCIDO POR LAS FBRICAS;
PRODUCTOS/P1 P2 P3/: ;
! CENTRO DE DISTRIBUCION DE LOS PRODUCTOS;
CDIST/SM L/:;
! CIUDADES DONDE VAN A SER DISTRIBUIDOS LOS PRODUCTOS;
CIUDAD/TC CZ/:;
! REQUERIMIENTO DE PRODUCTOS PARA UNA FABRICA ,EN UNA CIUDAD,EN UN
DETERMINADO SUPERMERCADO;
FPCC (FBRICAS, PRODUCTOS, CDIST, CIUDAD): PRECIO, X;
! CAPACIDAD DE PRODUCCION DE UN TERMENINADOM PRODUCTO POR
FBRICA;
FABPRO (FBRICAS, PRODUCTOS): CAPACIDAD;
! DEMANDA DE PRODUCCION;
PROCIU(PRODUCTOS,CIUDAD):DEMANDA;
! CAPACIDAD DE LOS CENTROS DE DISTRIBUCION;
CDCIUDAD (CDIST, CIUDAD): CAPACCD;
ENDSETS
DATA:
CAPACIDAD=75,60,65,

Manual de lingo con problemas resueltos


Pgina 26

65,70,75,
70,80,75;
DEMANDA= 73,67,
58,72,
67,74;
CAPACCD= 150,140,
130,150;
PRECIO= 12,15,17,11,12,15,14,12,13,15,13,12,
10,13,14,12,14,16,13,14,15,11,12,13,
12,11,13,10,11,13,11,13,14,12,13,14;
ENDDATA
!FUNCION OBJETIVO ,MAXIMIZANDO LA UTILIDAD;
[OBJETIVO]MAX =@SUM(FPCC:PRECIO*X);
!RESTRICCION DE LA CAPACIDAD DE DISTRIBUCION ;
@FOR(FABPRO(I,J):@SUM(FPCC(I,J,K,L):X(I,J,K,L))<=CAPACIDAD(I,J));
!RESTRICCION DE LA DEMANDA;
@FOR(PROCIU(J,L):@SUM(FPCC(I,J,K,L):X(I,J,K,L))>=DEMANDA(J,L));
! RESTRICCION DE LA CAPACIDAD DE LOS CENTROS DE DISTRIBUCION;
@FOR(CDCIUDAD(K,L):@SUM(FPCC(I,J,K,L):X(I,J,K,L))<=CAPACCD(K,L));
END

HACIENDO CORRER EL PROGRAMA CON LINGO 10.0


Global optimal solution found.
Objective value:
Total solver iterations:

8260.000
20

Variable
Value
Reduced Cost
PRECIO( A, P1, SM, TC)
12.00000
0.000000
PRECIO( A, P1, SM, CZ)
15.00000
0.000000
PRECIO( A, P1, L, TC)
17.00000
0.000000
PRECIO( A, P1, L, CZ)
11.00000
0.000000
PRECIO( A, P2, SM, TC)
12.00000
0.000000
PRECIO( A, P2, SM, CZ)
15.00000
0.000000
PRECIO( A, P2, L, TC)
14.00000
0.000000
PRECIO( A, P2, L, CZ)
12.00000
0.000000
PRECIO( A, P3, SM, TC)
13.00000
0.000000
A ASI SUCESIVAMENTE.

3.5 PROBLEMAS DE TRANSPORTE

La cadena de restaurantes CUATRO MARAS se especializa en la preparacin y


venta de pescados y mariscos. La demanda de pescado de las cuatro sucursales

Manual de lingo con problemas resueltos


Pgina 27

de la cadena de restaurantes CUATRO MARAS es presentada en la siguiente


tabla.
Sucursal
Demanda
(Ton)

Jess Mara
15

Callao
17

San Luis
22

Los Olivos
12

La cadena de restaurantes CUATRO MARAS compra el pescado de tres


proveedores que proporcionan las siguientes cantidades (ton) de pescado:
Proveed
or
Cantidad

Ventanilla
30

Villa El
Salvador
25

Chorrillo
s
21

Los costos de transporte (soles/tonelada) de los proveedores a las sucursales son:


Proveedor
Ventanilla
Villa El Salvador
Chorrillos

Jess
Mara
6
4
8

Sucursal
Callao
San
Luis
2
6
9
5
8
1

Los
Olivos
7
3
5

Formule el modelo de PL que permita determinar la distribucin ptima del


pescado de los proveedores a las sucursales.
El modelo en LINGO es:
MODEL:
! Problema de transporte de 3 proveedores a 4 sucursales;
SETS:
PROVEEDOR / 1..3/: CAPACIDAD;
SUCURSAL
/ 1..4/: DEMANDA;
RUTAS( PROVEEDOR, SUCURSAL): COSTO, VOLUMEN;
ENDSETS
! La funcin objetivo;
[OBJ] MIN = @SUM( RUTAS: COSTO * VOLUMEN);
! Las restricciones de demanda son;
@FOR( SUCURSAL( J): [DEMANDA](@SUM( PROVEEDOR( I): VOLUMEN( I,
J)) >= DEMANDA( J))));
! Las restricciones de los proveedores son;
@FOR( PROVEEDOR( I): [SUPPLY](@SUM( SUCURSAL( J): VOLUMEN( I,
J)) <= CAPACIDAD( I))));
! Los parmetros del modelo son;
DATA:
CAPACIDAD = 30, 25, 21;
DEMANDA = 15, 17, 22, 12;
COSTO = 6, 2, 6, 7,
4, 9, 5, 3,
8, 8, 1, 5;
ENDDATA

Manual de lingo con problemas resueltos


Pgina 28

END

3.6 PROBLEMA DE INVERSIN

Suponga que Ud. es trabajador de la empresa DISQUET S.A. Uno de los


beneficios que le otorga la empresa es el plan de retiro en que Ud. aporta 5% de
su ingreso mensual y 5% lo pone DISQUET S.A. El dinero de este plan de retiro es
invertido en cualquiera de dos fondos: fondos mutuos o fondos de acciones.
Suponga que la empresa le pregunta a Ud. qu fraccin de dinero debe ser
invertido en cada fondo. Antes de tomar una decisin, Ud. investiga y se entera
que el fondo de acciones ha crecido a una tasa anual promedio de 10% mientras
que los fondos mutuos a una tasa anual promedio de 8%. Para diversificar su
cartera de inversiones y controlar el riesgo, Ud. no desea poner todos los huevos
en una sola canasta por lo que ha logrado identificar dos pautas:

Ninguno de los fondos debe tener ms de 70% de la inversin total.


La cantidad de dinero en el fondo de acciones no debe exceder del doble
invertido en los fondos mutuos.

Qu decisin Ud. tomara para optimizar su dinero?

El modelo en LINGO es:


Model:
Sets:
Tipos_de_inversion/acciones, fondos_mutuos/:tope_maximo;
cantidad(tipos_de_inversion): interes, monto;
Endsets
Data:
interes= 0.1, 0.08;
tope_maximo = 0.7, 0.7;
Enddata
MAX = @sum(cantidad: monto*interes);
@for(tipos_de_inversion(i) :monto(i)<=tope_maximo(i));
monto(acciones)<=2*monto(fondos_mutuos);
@sum(cantidad:monto)=1;
End

3.7 PLANEACIN DE PRODUCCIN

QUMICA S.A. produce dos solventes, S1 y S2. Las empresas compran S1 y S2


para disolver ciertas pinturas y sustancias txicas. La empresa trabaja 40 horas
semanales y en el departamento de mezcla tiene a 4 trabajadores a tiempo
completo y a tres a tiempo parcial, que trabajan 10 horas a la semana cada uno.

Manual de lingo con problemas resueltos


Pgina 29

Los trabajadores operan seis mquinas que mezclan las sustancias qumicas para
producir cada solvente. Los productos salen del departamento de mezclado para
pasar al departamento de purificacin que posee seis purificadores y emplea a
siete trabajadores de tiempo completo y a uno de tiempo parcial que trabaja 12
horas a la semana. QUMICA S.A. tiene una provisin ilimitada de materia prima
para producir los dos solventes. El volumen de venta de S1 es ilimitado pero de S2
es de 100,000 galones semanales. El departamento de contabilidad estima una
utilidad de $0.35 por galn de S1 y $0.45 por galn de S2. El gerente de procesos
estima que el nmero de horas necesarias para producir mil galones de cada
solvente en los departamentos de mezcla y purificacin es dada en la siguiente
tabla:

Departamento
Mezcla
Purificacin

S1
2
1

S2
1
2

Cul es el plan de produccin ptimo para QUMICA S.A.?

El modelo en LINGO es:


Model:
Sets:
Solvente/1..2/:;
Departamento/ mezcla, purificacion/: disponibilidad_horas;
Produccion(Solvente):cantidad, utilidad;
Horas_de_consumo(Solvente,Departamento):Horas;
Endsets

Data:
utilidad = 350, 450;
horas = 2,1,
1,2;
disponibilidad_horas=190, 292;
Enddata
Max=@sum (Produccion:cantidad*utilidad);
@for(Departamento(j):@sum(Produccion(i):cantidad(i)*horas(i,j))<=disponibilidad_horas(j));
@for (Produccion:cantidad(2)<=100);

3.8 PLANEAMIENTO FINANCIERO

Manual de lingo con problemas resueltos


Pgina 30

3.8.1 problema de planeamiento financiero 1

Un banco otorga cuatro tipos de prstamos a sus clientes los cuales producen
las siguientes tasas de inters anual:

Tipo de prstamo
Compra de casa (o departamento)
Compra de un terreno
Ampliar o remodelar el hogar
Compra de un carro

Tasa de inters anual


14%
20%
20%
10%

El banco ha dispuesto 250 millones de nuevos soles para otorgar los prstamos.
Las directivas que se deben tener presentes para efectuar los prstamos son:
a. Los prstamos para compras de casa deben ser al menos 55% de todos los
prstamos otorgados para compras de casa o terreno y al menos 25% de
todos los prstamos otorgados.
b. Los prstamos para compra de terrenos no pueden exceder el 25% de todos
los prstamos otorgados.
c.
Para evitar el descontento pblico y la introduccin de un impuesto no
previsto el dinero total anual recaudado por los prstamos no debe exceder el
15% del total de dinero destinado a los prstamos.
Formule el problema de prstamos del banco como un PL.

El modelo en LINGO es:


! PLANEAMIENTO FINANCIERO;
Model:
Sets:
Tipo_de_prestamo/casa, terreno, hogar,carro/:interes;
Dinero(Tipo_de_prestamo):cantidad;
Endsets
Data:
interes= 0.14, 0.20, 0.20, 0.10;
Enddata
Max= @sum(Dinero(i):cantidad(i)*interes(i));
@sum(Dinero(i):cantidad(i))<=250;
@for(Dinero:cantidad(1)>=0.55*@sum(Dinero(i)|i#le#2:cantidad(i)));
@for(Dinero:cantidad(1)>=0.25*@sum(Dinero(i):cantidad(i)));
@for(Dinero:cantidad(2)<=0.25*@sum(Dinero(i):cantidad(i)));
@sum(Dinero(i):cantidad(i)*interes(i)) <=
0.15*@sum(Dinero(i):cantidad(i));
3.8.2 PROBLEMA DE PLANEAMIENTO FINANCIERO 2

Cuatro productos se procesan en secuencia de dos maquinas. La siguiente tabla


proporciona los datos pertinentes al problema.

Manual de lingo con problemas resueltos


Pgina 31

Tiempo de fabricacin por unidad (hora)


Mquina
Costo
Producto
($) /
1
2
hora
1
10
2
3
2
5
3
2
Precio de
65
70
venta

4
1
55

2
2
45

Capaci
dad
(hora)
500
380

Solucin:
Xij: unidades producidas por tipo de producto j (1, 2, 3, 4), utilizando cada
maquina i (1, 2)
MAX Z = 65(X11 + X12) + 70(X12 + X22) + 55(X13 + X23) + 45(X14 + X24)
- 10 (2X11 + 3X12 + 4X15 + 2X14) - 5(3X21 + 2X22 + 1X23 + 2X24)
MAX Z = 45X11 + 50X21 + 40X12 + 60X22 + 15X13 + 50X23 + 25X14 +35X24
Sujeto a:
Capacidad de la maquina 1:
Capacidad de la maquina 2:

2X11+ 3X12 + 4X13 + 2X14 <= 500


3X21 + 2X22 + 1X23 + 2X24 <=380

!MAQ=MAQUINA(1,2) CAP=CAPACIDAD DE CADA MAQUINA(HORAS);


!PROD=PRODUCTO(1,2,3,4) PV=PRECIO DE VENTA;
!TM= TIEMPO X=UNIDADES PRODUCIDAS UTI= UTILIDAD;
SETS:
MAQ/1..2/:CAP;
PROD/1..4/:PV;
MATRIZ1(MAQ,PROD):TM,X,uti;
ENDSETS
DATA:
CAP=500,380;
PV=65,70,55,45;
TM= 2,3,4,2,
3,2,1,2;
UTI=45,40,15,25
50,60,50,35;
ENDDATA
MAX=@SUM(MATRIZ1:UTI*X);
@FOR(MAQ(I):@SUM(PROD(J):TM(I,J)*X(I,J))<=CAP(I));
END
Solucin ptima:
MAX 45 X( 1, 1) + 40 X( 1, 2) + 15 X( 1, 3) + 25 X( 1, 4)+ 50 X( 2, 1) + 60 X( 2,
2) + 50 X( 2, 3) + 35 X( 2, 4)
SUBJECT TO
2] 2 X( 1, 1) + 3 X( 1, 2) + 4 X( 1, 3) + 2 X( 1, 4) <= 500
3] 3 X( 2, 1) + 2 X( 2, 2) + X( 2, 3) + 2 X( 2, 4) <= 380

Manual de lingo con problemas resueltos


Pgina 32

END
Objective value:
Variable
X( 1, 1)
X( 1, 2)
X( 1, 3)
X( 1, 4)
X( 2, 1)
X( 2, 2)
X( 2, 3)
X( 2, 4)

30250.00
Value
Reduced Cost
250.0000
0.0000000
0.0000000
27.50000
0.0000000
75.00000
0.0000000
20.00000
0.0000000
100.0000
0.0000000
40.00000
380.0000
0.0000000
0.0000000
65.00000

3.8.3 PROBLEMA DE PLANEAMIENTO FINANCIERO 3

Para una jornada de 24 horas un hospital esta requiriendo el siguiente personal


para el rea de enfermera, se define 6 turnos de 4 horas cada uno.

Turno

Nmero mnimo
de personal

2:00 - 6:00
6:00 - 10:00
10:00 - 14:00
14:00 - 18:00
18:00 - 20:00
20:00 - 24:00

4
8
10
7
12
4

Los contratos laborales son de 8 horas consecutivas por da. El objetivo es


encontrar el nmero menor de personas que cumplan con los requerimientos.
Formule el problema como un modelo de programacin lineal.
Solucin:
Xi = Cantidad de personal por cada turno i = 1, 2, 3, 4, 5, 6.
Necesidades de personal por horario
Horas
2:00 6:00
10:00
14:00
6:00
10:00
14:00
18:00
X1
X1
X2
X2
X3
X3
X4
Personal

X6
4

10

18:00
20:00

X4
X5
12

20:00
24:00

X5
X6
4

MIN Z = X1 + X2 + X3 + X4 + X4 + X5 + X6
Sujeto a:
Turno 1:
X1 + X6 >= 4
Turno 2:
X1 + X2 >=8
Turno 3:
X2 + X3 >=10
Turno 4:
X3 + X4 >=7
Turno 5:
X4 + X5 >=12
Turno 6:
X5 + X6 >=4

Manual de lingo con problemas resueltos


Pgina 33

!HORAS=TUENO X=CANTIDAD DE PERSONAL POR TURNO;


!PERS=PERSONAL MIN=PERSONAL MINIMO;
!CANT=PERSONAL POR TURNO (1=EXISTE PERSONAL EN EL TURNO, 0=
NO EXISTE PERSONAL EN EL TURNO);
SETS:
HORAS/1..6/:X;
PERS/1..6/:MIN;
MATRIZ1(HORAS,PERS):CANT;
ENDSETS
DATA:
MIN=4,8,10,7,12,4;
CANT=1,1,0,0,0,0,
0,1,1,0,0,0,
0,0,1,1,0,0,
0,0,0,1,1,0,
0,0,0,0,1,1,
1,0,0,0,0,1;
ENDDATA
MIN=@SUM(HORAS:X);
@FOR(PERS(J):@SUM(HORAS(I):CANT(I,J)*X(I))>=MIN(J));
END

MIN X( 1) + X( 2) + X( 3) + X( 4) + X( 5) + X( 6)
SUBJECT TO
2] X( 1) + X( 6) >= 4
3] X( 1) + X( 2) >= 8
4] X( 2) + X( 3) >= 10
5] X( 3) + X( 4) >= 7
6] X( 4) + X( 5) >= 12
7] X( 5) + X( 6) >= 4
END
Objective value:

26.00000
Variable
X(1)
X(2)
X(3)
X(4)
X(5)
X(6)

Value
0.0000000
8.000000
2.000000
5.000000
7.000000
4.000000

Reduced Cost
0.0000000
0.0000000
0.0000000
0.0000000
0.0000000
0.0000000

3.8.4 PROBLEMA DE PLANEAMIENTO FINANCIERO 4

Se desean invertir 2 mil dlares en 6 tipos de inversin cuyas caractersticas son


las siguientes:

Manual de lingo con problemas resueltos


Pgina 34

Tipo de
Inversio
n

Interes
Anual (%)

Factor
Riesgo

1
2
3
4
5
6

8.5
9
8.5
14.3
6.7
13

0.02
0.01
0.38
0.45
0.07
0.35

de

Plazo
promedio
de
inversion
8
2
5
6
2
4

El factor de riesgo significa la probabilidad de que el rendimiento real sea inferior


al esperado. Se considera ventajoso un perodo promedio ponderado de
inversin de ciando menos 5 aos; pero el factor promedio ponderado de riesgo
no debe ser superior a 0.20. La ley prohbe que la suma de las inversiones de los
tipos 4 y 6 sea mayor al 25% del total de la inversin. Con P.L formule un modelo
de P.L para decidir cmo invertir para maximizar el rendimiento de los 2 millones
de dlares.
Solucin:
Xj = cantidad de dlares a invertir en el tipo de inversin j (1, 2, 3, 4, 5,6) para
maximizar el rendimiento.

MAX Z = 0.085X1 + 0.09X2 + 0.85X3 + 0.143X4 + 0.067X5 +0.13X6


Sujeto a:
X1 + X2 + X3 +X4 + X5 + X6 = 2 000
0.02X1 + 0.01X2 + 0.38X3 + 0.45X4 + 0.07X5 + 0.35X6 = 0.2 (2 000) = 400
8X1
+ 2X2
+ 5X3
+ 6X4
+2X5
+ 4X6
= 5 (2 000) = 10 000
X4
+ X6
= 0.25 (2 000) = 500
!TIPO=TIPO DE INVERSION INV= INVERSION SUJETA A FACTORES;
!INT=INTERES ANUAL X=CANTIDAD DE DOLARES A INVERTIR EN LA
INVERSION;
!DAT= CARACTERISTICAS;
SETS:
TIPO/1..4/:INV;
CAR/1..6/:INT,X;
MATRIZ1(TIPO,CAR):DAT;
ENDSETS
DATA:
INT=8.5,9,8.5,14.3,6.7,13;
INV= 2000,400,10000,500;
DAT= 1,1,1,1,1,1,
0.02,0.01,0.38,0.45,0.07,0.35,
8,2,5,6,2,4,
0,0,0,1,0,1;
ENDDATA

Manual de lingo con problemas resueltos


Pgina 35

MIN=@SUM(CAR:0.01*INT*X);
@FOR(TIPO(I):@SUM(CAR(J):DAT(I,J)*X(J))>=INV(I));
END
Global optimal solution found at step:
5
Objective value:
184.8433
Variable
X( 1)
X( 2)
X( 3)
X( 4)
X( 5)
X( 6)

Value
592.0398
0.0000000
482.5871
0.0000000
425.3731
500.0000

Reduced Cost
0.0000000
0.2461194E-01
0.0000000
0.3865672E-02
0.0000000
0.0000000

4 PROBLEMAS DE PROGRAMACIN ENTERA CON


LINGO
4.1 Problema 1 de programacin entera

La decisin de una corte estableci que la matrcula de cada escuela de


bachillerato en Metrpolis debe tener por lo menos 20% de negros. El nmero de
estudiantes de bachillerato, blancos y negros, en cada uno de los 5 distritos
escolares de la ciudad se muestra en la tabla 2 .La distancia (en millas)que un
estudiante debe viajar a cada escuela de bachillerato en cada distrito, se
proporciona en la tabla 3.La poltica escolar establece que todos los estudiantes en
un distrito dado asistan a la misma escuela .Si se supone que cada escuela debe
tener una matricula de por lo menos 150 estudiantes ,formule un PE con el que se
pueda minimizar la distancia total que los estudiantes de Metrpolis tienen que
recorrer hasta la escuela.
TABLA 2
TABLA 3
Distrit
Blanco
Negro
o
s
s
1
80
30
2
70
5
3
90
10
4
50
40
5
60
30
Distrit
Escuela
de
Escuela
de
o
bachillerato 1
bachillerato 2

Manual de lingo con problemas resueltos


Pgina 36

1
2
3
4
5

Xij =

1
0.5
0.8
1.3
1.5

2
1.7
0.8
0.4
0.6

Solucin:
Si los estudiantes del distrito i (i = 1, 2, 3, 4, 5,6) son enviados a la escuela j (
=1,2)
0, si no es as.
Entonces, el PE apropiado es:
Para hallar la funcin objetivo tengo que sumar la cantidad de blancos y negros
que hay en cada distrito y despus multiplicarlo por la distancia que hay de ese
distrito a cada escuela.
Funcin objetivo es:
Min z = 110 X11+220 X12+37.5 X21+127.5 X22+80 X31+80 X32 +117 X41 +36 X42 +135
X51 +54 X52
s.a :
110 X11+75 X21+100 X31+90 X41 +90 X51 >=150(escuela 1 debe tener una
matricula de por lo menos 150 estudiantes)
110 X12+75 X22+100 X32+90 X42 +90 X52 >=150(escuela 2 debe tener una
matricula de por lo menos 150 estudiantes)

30 X11 5 X21 10 X31 40 X41 30 X51


0.20<= 110 X11 75 X21 100 X31 90 X41 90 X51 (escuela1 debe tener por lo
menos 20% de negros)

30 X12 5 X22 10 X32 40 X42 30 X52


0.20<= 110 X12 75 X22 100 X32 90 X42 90 X52 (escuela2 debe tener
por lo menos 20% de negros)
Los estudiantes de cada distrito bien van a la escuela 1 2, pero no a las dos a la
vez por lo que solo una de ellas tiene el valor de uno y la otra de cero.
X11+ X12 =1(todos los estudiantes del distrito1 asisten a la misma escuela)
X21+ X22 =1(todos los estudiantes del distrito2 asisten a la misma escuela)
X31+ X32 =1(todos los estudiantes del distrito3 asisten a la misma escuela)
X41 + X42 =1(todos los estudiantes del distrito4 asisten a la misma escuela)
X51 + X52 =1(todos los estudiantes del distrito5 asisten a la misma escuela)
Xij =1 0; (i = 1, 2, 3, 4, 5,6), (j = 1,2)
El programa en Lingo es:
! MODELO DE WINSTON CAP 9 # 4;
!total es alumnos blancos mas alumnos negros en cada escuela;
SETS:
distrito/1..5/:total;
escuela/1..2/:;
MATRIZ(distrito,escuela):X,alumnos,millas;

Manual de lingo con problemas resueltos


Pgina 37

ENDSETS
DATA:
millas = 1, 2
0.5, 1.7
0.8, 0.8
1.3, 0.4
1.5, 0.6;
alumnos= 80, 30
70, 5
90, 10
50, 40
60, 30;
minmatri=150;
minnegros=0.2;
ENDDATA
MIN=@SUM(matriz(i,j):total(i)*x(i,j)*millas(i,j));
@for(distrito(i):total(i)=@sum(escuela(j):alumnos));
! RESTRICCION DE matri por escuela;
@FOR(escuela(J):@sum(distrito(i):total(i)*x(i,j))>=minmatri);
! RESTRICCION DE negros por escuela;
@FOR(escuela(J):@sum(distrito(i):alumnos(i,2)*x(i,j))/@sum(distrito(i):total(i)*x(i,j))>
=minnegros);
@FOR(distrito(i):@SUM(escuela(J):x(I,J))=1);
! RESTRICCION DE VARIABLES BINARIAS;
@FOR(MATRIZ(I,J)):
@BIN(x(I,J));
La distancia mnima total que todos los estudiantes de Metrpolis tienen que
recorrer hasta la escuela es 398.5 millas.
4.2 Problema 2 de programacin entera

Eastinghouse embarca 1 2000 capacitores por mes para sus clientes. Se podran
producir los capacitores en tres plantas distintas. La capacidad de produccin,
costos fijos mensuales de operacin y costos variables por la produccin de un
capacitor en cada planta se proporcionan en la tabla 96. El costo fijo de una planta
se contrae slo si la planta se usa para hacer capacitores. Desarrolle un modelo de
programacin con enteros cuya solucin le indique a Eastinghouse cmo minimizar
sus costos mensuales por cumplir con la demanda de sus clientes.
TABLA
Planta
1
2
3

Costos fijos (miles


de dlares)
80
40
30

Costos
variables(dlares)
20
25
30

Capacidad
produccin
6000
7000
6000

Manual de lingo con problemas resueltos


Pgina 38

de

SOLUCIN:
Xi = Cantidad de capacitores producidos en la fbrica i.
Yi = 1 si se utiliza la planta i.
0 en caso contrario.
i =1, 2, 3.
FUNCION OBJETIVO:
Min z = (80 000Y1 + 40 000Y2 + 30 000Y3) + (20X1Y1 + 25X2Y2 + 30X3Y3)
RESTRICCIONES:
X1 + X2 + X3 >= 12 000
X1
<= 6 000Y1
X2
<= 7 000Y2
X3 <= 6 000Y3
X1,X2,X3>0
Y1,Y2,Y3= 1 0

El programa en Lingo es:


Sets:
planta/1..3/:x,y,cf,cv,cap;
Endsets
Data:
cf = 80,40,30;
cv = 20,25,30;
cap = 6000,7000,6000;
Enddata
Min =@sum(planta(i):cf(i)*y(i))+@sum(planta(i):cv(i)*x(i));
!restriccion de la demanda;
@sum(planta(i):x(i))>=12000;
!restriccion de la capacidad;
@for(planta(i):x(i)<=cap(i)*y(i));

Manual de lingo con problemas resueltos


Pgina 39

!restriccion binaria;
@for(planta(i):@bin(y));
End
MODEL:
[_1] MIN= 20 * X_1 + 80 * Y_1 + 25 * X_2 + 40 * Y_2 + 30 * X_3 + 30 *Y_3 ;
[_2] X_1 + X_2 + X_3 >= 12000 ;
[_3] X_1 - 6000 * Y_1 <= 0 ;
[_4] X_2 - 7000 * Y_2 <= 0 ;
[_5] X_3 - 6000 * Y_3 <= 0 ;
@BIN( Y_1); @BIN( Y_2); @BIN( Y_3);
END
Solucin Lingo:
Objective Value:

270120.0

Variable
Value
Reduced Cost
X( 1)
6000.000
0.000000
X( 2)
6000.000
0.000000
X( 3)
0.000000
5.000000
Y( 1)
1.000000
-29920.00
Y( 2)
1.000000
40.00000
Y( 3)
0.000000
30.00000
CF( 1)
80.00000
0.000000
CF( 2)
40.00000
0.000000
CF( 3)
30.00000
0.000000
CV( 1)
20.00000
0.000000
CV( 2)
25.00000
0.000000
CV( 3)
30.00000
0.000000
CAP( 1)
6000.000
0.000000
CAP( 2)
7000.000
0.000000
CAP( 3)
6000.000
0.000000

4.3 Problema 3 de programacin entera

Una empresa se dedica a la construccin de puertas y ventanas de fierro. Una


puerta requiere 2 horas de pintado y 5 horas de soldadura, mientras que una
Model:
ventana requiere 4 de pintado y 6 de soldadura. El total de horas disponibles de la
Sets:
mquina para pintura
es 150
y de la mquina para soldar es 200. La utilidad de
Productos/1..2/:
utilidad,
cant;
una puerta es 30 dlares y de una ventana es 40 dlares. Formule un modelo que
materia_prima/1..2/:horas disponibles;
permita determinar la combinacin ptima de produccin de puertas y ventanas.

Horas(productos, materia_prima):hora;
Endsets
La formulacin del modelo en LINGO es:
Data:
hora= 2, 5, 4, 6;
utilidad= 30, 40;
horas_disponibles= 150, 200;
Enddata

Max=@sum(productos(i):cant(i)*utilidad(i));
Manual de lingo con problemas resueltos
@for(materia_prima(j):@sum(productos(i):cant(i)*hora(i,j))<=horas_d
Pgina 40
isponibles(j));
@for(productos(i):@gin(cant(i)));
End

4.4 Problema 4 de programacin entera

Una empresa que se dedica a la comercializacin de agua mineral embotellada


estudia adquirir un conjunto de fuentes y construir plantas embotelladoras. Para
cada localizacin potencial ha estimado unos costos variables de embotellamiento
parecidos, pero los costes fijos anuales ms la amortizacin de la adquisicin de la
fuente y de la construccin de la planta embotelladora varan de una localizacin a
otra, las fuentes sobre las que se han iniciado negociaciones son las reflejadas en
la tabla siguiente:
Fuente

Capacidad de
embotellamiento
(m3 anuales)

Costes fijos de localizacin en


millones de u. monetarias/ao

1.Biesacas

60.000

100

2.Bellanuga

70.000

140

3.Canfranc

55.000

88

4.La Seu
dUrgel
5.Bielsa

45.000

65

90.000

145

6.Benasc

85.000

155

7.Llavors

65.000

160

8.Masella

75.000

175

9.Bellver de
Cerdanya

62.000

150

Desde estas plantas embotelladoras se han de abastecer los mercados de Lrida,


Gerona, Tarragona y Barcelona.

Manual de lingo con problemas resueltos


Pgina 41

Las demandas de los diferentes mercados y los costes de transporte se resumen


en las tablas siguientes:
Mercado

1.Lrida

2.Girona

3.Tarragona

4.Barcelona

Demanda(m3/a
o)

30.350

60.700

45.500

160.000

Fuente

Costes unitarios de transporte(u. monetarias/m3)


1.Lrid
2.Giron
3.Tarragona
4.Barcelona
a
a

1.Biesacas

200

450

290

370

2.Bellanuga

210

460

310

380

3.Canfranc

220

470

310

390

4.La Seu
dUrgel

140

170

250

180

5.Bielsa

150

400

250

320

6.Benasc

140

390

230

310

7.Llavors

144

240

200

250

8.Masella

200

135

230

160

9.Bellver de
Cerdanya

190

140

220

150

MODEL:
TITLE MODELO DE BALINSKI;
!Definicion de Conjuntos;
SETS:
fuente /BIESCAS BELLANUGA CANFRANC SEU BIELSA BENASC
LLAVORSI MASELLA BELLVER/:capacidad, coste_localizacion, y;
La variable coste_localizacion representa el coste fijo de Construir una planta
industrial en la localizacin de la fuente i;
La variable y indica donde se tiene que construir una planta Industrial. Sus valores
sern binarios: 0=no se construye, 1=si se Construye;
mercado /LLEIDA GIRONA TARRAGONA BARCELONA/:demanda;

Manual de lingo con problemas resueltos


Pgina 42

links(fuente,mercado):costo_transporte,volumen;
La variable volumen indica el porcentaje de demanda de aquel Mercado que se
tiene que abastecer desde la planta i, de esta forma. La cantidad de producto que
se tiene que enviar desde la planta i al Mercado j viene dado por demanda
(j)*volumen (i,j);
ENDSETS
DATA:
capacidad = 60000, 70000, 55000, 45000, 90000, 85000, 65000, 75000,
62000;
coste_localizacion = 100000000, 140000000, 88000000, 65000000, 145000000,
155000000, 160000000, 175000000, 150000000;
demanda = 30350, 60700, 45500, 160000;
costo_transporte = 200, 450, 290, 370,
210, 460, 310, 380,
220, 470, 310, 390,
140, 170, 250, 180,
150, 400, 250, 320,
140, 390, 230, 310,
144, 240, 200, 250,
200, 135, 230, 160,
190, 140, 220, 150;
ENDDATA
!Funcion Objetivo;
MIN=@SUm(links(i,j):costo_transporte(i,j)*demanda(j)*volumen(i,j))

@SUm(fuente(i):coste_localizacion(i)*y(i)) ;
!Restricciones para la oferta;
@FOR(fuente(i):
@SUM (mercado(j):demanda(j)*volumen(i,j))<=capacidad(i));
!Restricciones para la demanda;
@FOR(mercado(j):@SUM(fuente(i):volumen(i,j)) = 1);
!Restriciones para la variable y;
@FOR(fuente:@BIN(y));
@FOR(fuente(i):y(i)<1);
@FOR(mercado(j): @FOR(fuente(i):y(i) - volumen(i,j) > 0));
!Restricciones de no negatividad;

Manual de lingo con problemas resueltos


Pgina 43

@FOR(links(i,j):volumen(i,j)>=0);
END
4.5 Problema 5 de programacin entera

NEWCOMP S.A. ha obtenido fondos para producir un nuevo tipo de computadora.


La empresa debe decidir la ubicacin y el tamao de las fbricas que producirn la
computadora. Existen dos lugares disponibles, en cada lugar slo puede
construirse a lo ms una fbrica pequea, grande o enorme. En uno de los lugares
se puede construir una fbrica enorme. La tabla N1 presenta los costos de
construccin de las fbricas, sus capacidades de produccin y los costos unitarios
de manufactura de la computadora para cada una de las alternativas.
Tabla N 1
Lugar

Tamao

Costo de
Capacidad
Costo de Manufactura
construccin (miles
(miles de
(dlares por unidad)
de dlares)
unidades)
Ate
Pequea
1000
600
5.00
Grande
1500
1200
4.00
Bellavista
Pequea
1200
600
5.00
Grande
1600
1200
4.00
Enorme
2000
2000
3.50
NEWCOMP S.A. debe distribuir su producto en cuatro regiones. El costo de
transporte por unidad de las fbricas a las regiones y los requerimientos de las
regiones se presenta en la tabla N2.
Tabla N2
De la fbrica
Hasta la regin
1
2
3
4
ATE
1
2
3
4
BELLAVISTA
2
3
2
3
Requerimiento (Miles de
500
200 700 800
unidades)
NEWCOMP S.A. debe decidir en qu lugares se deben construir las fbricas, de
qu tamaos deben ser stas y cmo se deben satisfacer los requerimientos de
las regiones.
El modelo en LINGO es:
Model:
Sets:
fabrica/fpa,fga,fpb,fgb,feb/:capacidad,costo_construccion, costo_manufactura,
construccion;
region/r1,r2,r3,r4/:requerimiento;
rutas(fabrica, region): costo, cantidad;
Endsets
Data:
capacidad
costo_construccion
costo_manufactura
requerimiento
costo = 1, 2, 3, 4,
1, 2, 3, 4,

=
=
=
=

600, 1200, 600, 1200, 2000;


1000, 1500, 1200, 1600, 2000;
5, 4, 5, 4, 3.5;
500, 200, 700, 800;

Manual de lingo con problemas resueltos


Pgina 44

2, 3, 2, 3,
2, 3, 2, 3,
2, 3, 2, 3;
Enddata
Min=@sum(rutas:costo*cantidad)+@sum(fabrica:
costo_construccion*construccion)
+@sum(fabrica(i):@sum(rutas(i,j):costo_manufactura(i)*cantidad(i,j)));
@for(region(j):@sum(rutas(i,j) : cantidad(i,j)) >= requerimiento(j));
@for(fabrica(i):@sum(rutas (i,j) : cantidad(i,j))<=capacidad(i)*construccion(i));
@for(fabrica(i):@sum(rutas(i,j) : cantidad(i,j))<=capacidad(i));
@for(fabrica:@bin(construccion));
End
La solucin de lingo es:
Objective value: 16200.00
4.6 Problema 6 de programacin entera

La empresa financiera de Boris Milken es el dueo de 6 bienes. En las tablas se


dan los precios esperados de venta (en millones de dlares) para cada bien. En la
tabla se puede observar que la venta del bien 1 en el ao 2 dar a la empresa un
ingreso de 20 millones de dlares. Para conservar el flujo de efectivo regular,
Milken debe vender por lo menos 20 millones de dlares en el ao 1, por lo menos
30 millones de dlares en el ao 2, y por lo menos 35 millones de dlares en el
ao 3. Se necesita maximizar el ingreso total de los bienes vendidos en los
prximos 3 aos.

BIEN 1
BIEN 2
BIEN 3
BIEN 4
BIEN 5
BIEN 6

VENDIDO EN EL
AO 1
15
16
22
10
17
19

AO 2
20
18
30
20
19
25

AO 3
24
21
36
30
22
29

SOLUCION:
VARIABLES: i = 1,2,3,4,5,6

j = 1,2,3

X(i,j) = 1 si el bien i se vende en el ao j


0 en caso contrario
FUNCION OBJETIVO:
MAX Z = B( 1) + B( 2) + B( 3)
Donde:

Manual de lingo con problemas resueltos


Pgina 45

15X(1,1) + 16X(2,1) + 22X(3,1) + 10X(4,1) + 17X(5,1) + 19X(6,1) = B(1)


20X(1,2) + 18X(2,2) + 30X(3,2) + 20X(4,2) + 19X(5,2) + 25X(6,2) = B(2)
24X(1,3) + 21X(2,3) + 36X(3,3) + 30X(4,3) + 22X(5,3) + 29X(6,3) = B(3)
RESTRICCIONES:
o

RESTRICCION 1: Cada bien solo se puede vender una vez:


X( 1, 1) + X( 1, 2) + X( 1, 3) <=
X( 2, 1) + X( 2, 2) + X( 2, 3) <=
X( 3, 1) + X( 3, 2) + X( 3, 3) <=
X( 4, 1) + X( 4, 2) + X( 4, 3) <=
X( 5, 1) + X( 5, 2) + X( 5, 3) <=
X( 6, 1) + X( 6, 2) + X( 6, 3) <=

1
1
1
1
1
1

RESTRICCION 2: Conservacin del flujo de efectivo regular:


15X(1,1) + 16X(2,1) + 22X(3,1) + 10X(4,1) + 17X(5,1) + 19X(6,1) >= 20
20X(1,2) + 18X(2,2) + 30X(3,2) + 20X(4,2) + 19X(5,2) + 25X(6,2) >= 30
24X(1,3) + 21X(2,3) + 36X(3,3) + 30X(4,3) + 22X(5,3) + 29X(6,3) >= 35

FORMULACION EN LINGO:
Sets:
bien/1..6/;
year/1..3/:a,b;
matriz(bien,year):precio,x;
Endsets
Data:
a=20,30,35;
precio=15,20,24,
16,18,21,
22,30,36,
10,20,30,
17,19,22,
19,25,29;
Enddata
Max=@sum(year:b);
FUNCION OBJETIVO;

Manual de lingo con problemas resueltos


Pgina 46

@for(year(j):@sum(bien(i):precio(i,j)*x(i,j))=b(j));
RESTRICCION 1;
@for(bien(i):@sum(year(j):x(i,j))<=1);
RESTRICCION 2
@for(year(j):@sum(bien(i):precio(i,j)*x(i,j))>=a(j));
@for(matriz:@bin(x));

SOLUCIN EN LINGO:
El mximo ingreso por la venta de bienes es 146 millones. El bien 1 se vende en el
ao 3, el bien 2 en el ao 1, el bien 3 en el ao 2, el bien 4 en el ao 3, el bien 5 en
el ao 1 y en bien 6 en el ao 3.

4.7 Problema 7 de programacin entera

La universidad estatal tiene que comprar 1100 computadoras de tres vendedores.


El vendedor 1 carga 500 dlares por computadora mas un encargo por la entrega
de 5000 dlares, el vendedor 2 carga 350 dlares por computadora mas un cargo
por la entrega de 4000 dlares. El vendedor 3 carga 250 dlares por computadora
mas un cargo por la entrega por de 6000 dlares. El vendedor 1 vender a lo mas
500 computadoras, el vendedor a los mucho 900 y el vendedor cuando mas 400.
Se necesita minimizar el costo de la compra de computadoras necesarias.
SOLUCION:
VARIABLES:
X(i,j) = Cantidad de computadoras que vende el vendedor
Y(i,j) =

1 Si el vendedor i vende computadoras a la universidad estatal


0 en caso contrario.

Manual de lingo con problemas resueltos


Pgina 47

FUNCION OBJETIVO:
MIN Z = 5000Y (1) + 4000Y (2) + 6000Y (3) + 500X (1) + 350X (2) + 250X (3)
RESTRICCIONES:
o

RESTRICCION 1: La universidad
computadoras de tres vendedores.

estatal

tiene

que

comprar

1100

X( 1) + X( 2) + X( 3) >= 1100
o

RESTRICCION 2: Lo mximo que puede vender cada vendedor:


X( 1) <= 500
X( 2) <= 900
X( 3) <= 400

RESTRICCION 3: Si la universidad compra computadoras al vendedor i


entonces tambin tendr que pagar el cargo respectivo por la entrega de
computadoras.
1000000 Y( 1) + X( 1) <= 0
1000000 Y( 2) + X( 2) <= 0
1000000 Y( 3) + X( 3) <= 0

FORMULACION EN LINGO:
! MODELO DE WINSTON CAP 9 # PROB 6
COSTOS EN DOLARES;
!M=VALOR MUY GRANDE;
!COSTOE ES EL COSTO DE ENTREGA;
!X CANTIDAD DE COMPUTADORAS QUE VENDE EN VENDEDOR I;
!Y 1 SI EL VENDEDOR I VENDCOMPUTADORAS
! 0 EN CASO CONTRARIO;
SETS:
VENDEDOR/1..3/:COSTOE,COSTO,X,Y,MAXVEND;
ENDSETS
DATA:
COSTOE = 5000 4000 6000;
COSTO = 500 350 250;
MAXVEND= 500 900 400;
M=1000000;
REQUERIMIENTO=1100;

Manual de lingo con problemas resueltos


Pgina 48

ENDDATA
MIN=@SUM(VENDEDOR(I):COSTO(I)*X(I))
+@SUM(VENDEDOR(I):COSTOE(I)*Y(I));
! RESTRICCION 1;
@SUM(VENDEDOR(I):X(I))>=REQUERIMIENTO;
! RESTRICCION DE 2;
@FOR(VENDEDOR(I):X(I)<=MAXVEND(I));
! RESTRICCION DE 3;
@FOR(VENDEDOR(I):X(I)<=M*Y(I));
! RESTRICCION DE VARIABLES BINARIAS;
@FOR(VENDEDOR(I):@BIN(Y));

SOLUCION EN LINGO:
El mnimo costo para comprar computadoras es de 355 000 dolares, y la
universidad tendr que comprar 700 y 400 computadoras a los vendedores 1 y
2 respectivamente.
4.8 Problema 8 de programacin entera

La acerera de Newcor recibi un pedido de 25 toneladas de acero. El acero debe


tener 5% de carbono y 5% de molibdeno por peso. El acero es el resultado de
combinar tres tipos de metales: lingotes de acero, acero de desperdicios y
aleaciones. Estn disponibles para la compra cuatro lingotes de acero. El peso (en
toneladas), costo por tonelada, contenido de carbono y molibdeno de cada lingote
se proporcionan en la tabla 1.
Se pueden comprar tres tipos de aleaciones. El costo por tonelada y composicin
qumica de cada aleacin se dan en la tabla 2.
El desperdicio de acero se compra a un costo de 100 dlares por tonelada, y
contiene 3% de carbono y 9% de molibdeno. Plantee un PE, mezclada con cuya
solucin indique a Newcor cmo debe minimizar el costo de cumplir con el pedido.
TABLA 1
Lingote

Peso

1
2
3
4

5
3
4
6

Costo
tonelada
350
330
310
280

por

% de carbono
5
4
5
3

%
de
molibdeno
3
3
4
4

TABLA 2
Aleacin
1
2

Costo
tonelada
500
450

por

Carbono %

Molibdeno %

8
7

6
7

Manual de lingo con problemas resueltos


Pgina 49

400

SOLUCIN:
Xi:
1, cuando se ha comprado el lingote i
0, en caso contrario
Yi:

Numero de toneladas de aleacin tipoi compradas

W:

Numero de toneladas de desperdicios compradas

FUNCIN OBJETIVO:
MINZ=350*(5*X1)+330*(3*X2)+310*(4*X4)+500*Y1+450Y2+400Y3+100W
S.A.:
5*X1+4*X2+4*X3+6*X4+Y1+Y2+Y3+W=25 (PEDIDO)
5*(5*X1)+4*(3*X2)+5*(4*X3)+3*(6*X4)+8*Y1+7*Y2+6*Y3+3*W=5*25
CARBONO)

(%

3*(5*X1)+3*(3*X2)+4*(4*X3)+4*(6*X4)+6*Y1+7*Y2+9*W=5*25
MOLIBDENO)

(%

X1+X2+X3+X4=1 (LINGOTE)
Y1+Y2+Y3>0
W>0
XI=0 1
YI>0
W>0
El programa en Lingo es:
Sets:
lingote/1..4/:peso,costo1,carbono1,molibdeno1,x;
aleacion/1..3/:costo2,carbono2,molibdeno2,y;
desperdicio/1..1/:costo3,carbono3,molibdeno3,w;
Endsets
Data:
peso
= 5,3,4,6;
costo1 = 350 ,330 ,310 ,280;
carbono1 = 0.05, 0.04 ,0.05 ,0.03;
molibdeno1 = 0.03, 0.03, 0.04, 0.04;
costo2 = 500, 450, 400;
carbono2 = 0.08, 0.07, 0.06;
molibdeno2 = 0.06, 0.07, 0.00;
costo3 = 100;
carbono3 = 0.03;
molibdeno3 = 0.09;
Enddata

Manual de lingo con problemas resueltos


Pgina 50

!funcion objetivo;
min = @sum(lingote(i):costo1(i)*peso(i)*x(i))+ @sum(aleacion(j):costo2(j)*y(j) )+
@sum(desperdicio(k):costo3(k)*w(k));
!restriccion del pedido;
@sum(lingote(i):x(i)*peso(i))+ @sum(aleacion(j):y(j)) + @sum(desperdicio(k):w(k))
=25;
!restriccion del % de carbono;
@sum(lingote(i):x(i)*peso(i)*carbono1(i))+@sum(aleacion(j):y(j)*carbono2(j))+
@sum(desperdicio(k):w(k)*carbono3(k)) =1.25;
!restriccion del % de molibdeno;
@sum(lingote(i):x(i)*peso(i)*molibdeno1(i))+@sum(aleacion(j):y(j)*molibdeno2(j))+
@sum(desperdicio(k):w(k)*molibdeno3(k)) =1.25;
!restriccion del lingote;
@sum(lingote(i):x(i))=1;
!restriccion de las aleaciones;
@sum(aleacion(j):y(j))>0;
!restriccion de los desperdicios;
@sum(desperdicio(k):w(k))>0;
!restriccion del binario;
@for(lingote(i):@bin (x));
End

5. PROBLEMA APLICADO A LA ASIGNACIN


IMPORTANDO DE EXCEL
5.1 PROBLEMA 1

La Fbrica de Calzado Flores produce y vende calzados de verano exclusivos. Uno


de los factores ms importantes para poder realizar una venta es el servicio rpido
de Flores. Flores vende en 6 ciudades: Piura, Sullana, Sechura, Paita, Morropn y
Ayabaca. Se proyectan las ventas anuales de pares de zapatos de acuerdo a la
presencia de un representante de ventas dentro de 55 Km de una ciudad (tabla 1).
La ganancia por cada par de zapato es de S/. 70. El costo anual por representante
de venta es de S/. 8 400. Flores debe determinar cuntos representantes colocar
en cada uno de sus mercados. Solo se consideran Piura, Ayabaca, Paita y
Sechura como bases para representantes de ventas, ya que en estas se
encuentran las fbricas. Se dispone de 10, 8, 6, y 9 representantes en las bases:
Piura, Ayabaca, Paita y Sechura respectivamente y se requieren 4, 5, 3 ,2 ,1 ,4
representantes de venta por mercado Piura, Ayabaca, Paita, Sechura, Morropn y
Sullana respectivamente. La tabla 2 muestra las distancias en Km.
Se necesita maximizar las ganancias anuales.
TABLA 1

Manual de lingo con problemas resueltos


Pgina 51

REPRESENTA
NTE

MERCADOS VENTA
Piura
Ayabac Paita
a

DENTRO DE
55Km
SI
NO

130
70

TABLA 2
Bas
e-Fbrica
Mercado
Piura
Ayabaca
Paita
Sechura
Morropn
Sullana

Sechura

Morrop

Sullana

120
40

130
80

110
70

110
90

122
50

Piura

Ayabaca

Paita

Sechura

0
229
60
50
60
39

229
0
117
260
58
40

60
117
0
55
115
47

50
260
55
0
52
239

SOLUCIN:
FORMULACIN ALGEBRAICA DEL MODELO
Definicin de variables:
X i, j = Cantidad de representantes de la Fabrica j en el mercado de la ciudad i.
H i, j = Es 1 si la distancia de la fabrica i a la ciudad j es menor o igual a 55, sino
0.
T i, j = Es 1 si la distancia de la fabrica i a la ciudad j es mayor que 55.
Z i, j = matriz de variables que se filtraran con la matriz Hij.
W i, = Cantidad de ventas en el mercado i, sin representante.
Y i = Cantidad de ventas en el mercado i, con representante
Definicin de parmetros:
SI i, j = Cantidad de ventas anuales en el mercado de la ciudad i, por cada
representante.
NO i, j = Cantidad de ventas anuales en el mercado de la ciudad i, en caso no
hubiesen representantes.
REPRE i = Cantidad disponible de representantes en la fabrica i.
REPREMIN i = Cantidad mnima requerida de representantes en el mercado i.
DIST i, j = Distancia de la fabrica i, a la ciudad j

RESTRICCION DE MAXIMA CANTIDAD DE REPRESENTANTES POR FBRICA


Y MERCADO
4

X i , j REPRE j
j=1 i=1

RESTRICCION DE MNIMA CANTIDAD DE REPRESENTANTES POR FBRICA


Y MERCADO

Manual de lingo con problemas resueltos


Pgina 52

X i , j REPREMIN i
i=1 j=1

VENTAS SIN REPRESENTANTE POR MERCADO


6

NO i T i , j=W i
i=1 j=1

VENTAS CON REPRESENTANTE POR MERCADO

Z i , j H i , j=X i , j
6

SI i X i , j=Y i
i=1 j=1

SALARIO DE REPRESENTANTES
6

8400 X i , j =COSTO
i=1 j=1

FUNCION OBJETIVO
6

i=1

i=1

MAX=70 W i + Y iCOSTO

5.1.1 INTERPRETACIN E IMPLENTACIN EN LINGO:

INTERPRETACIN
FUNCION OBJETIVO:
Lo que pide el problema es maximizar las utilidades por cada ao de
operacin por lo cual se analizaran los ingresos y egresos.
Ingresos:
Los ingresos son proporcionales a la cantidad de pares de zapatos vendidos.

Por ejemplo la distancia de la fbrica en Paita al mercado en Piura es de 60 Km


(encerrado de rojo) por lo cual no es posible la presencia de un representante y
de acuerdo a la tabla 1 solo se vender 70 pares de zapatos.

Manual de lingo con problemas resueltos


Pgina 53

Ahora la distancia de la fbrica en Piura al mercado en Sechura es de 50 Km


(encerrado de verde) por lo cual hay probabilidad de asignar uno o ms
representantes y de acuerdo a la tabla 1 se vender 110 pares de zapatos por
cada representante asignado (Si fuera un representante se vendera como 110 y
si fueran dos entonces 220).

Entonces se realiza el siguiente cuadro de acuerdo a las ventas y a las


distancias.
Total de pares de zapatos vendidos por cada mercado
CUADRO 1
Piura
Ayabaca
Paita
Piura
130X11
70
70

Sechura
130X14

Ayabaca

40

120X22

40

40

Paita

80

80

130X33

130X34

Sechura

110X41

70

110X43

110X44

Morropn

90

90

90

110X54

Sullana

122X61

122X62

122X63

50

X i, j = Cantidad de representantes de la Fabrica j en el mercado de la ciudad i.

INGRESO=70(130 X 11 +70+ 70+130 X 14 +40+120 X 22+ 40+40+ 80+80+130 X 33 +130 X 34 +110 X 41


Egresos:
Los egresos serian lo que se paga a cada uno de los representantes esto sera:

Costo=8400( X 11 + X 14+ X 22+ X 33+ X 34 + X 41+ X 43+ X 44 + X 54+ X 61+ X 62+ X 63 )


Ahora nuestra funcin objetivo quedara:

MAX=INGRESOCOSTO

Manual de lingo con problemas resueltos


Pgina 54

MAX=70( 130 X 11 +70+ 70+130 X 14 +40+120 X 22+ 40+40+ 80+80+130 X 33 +130 X 34 +110 X 41+70+110
MAX=700 X 11 + 700 X 14+ 700 X 33+700 X 34700 X 41700 X 43700 X 44 44700 X 54 +140 X 61 +140 X 62+ 1
RESTRICCIONES:
Cantidad mnima de los representantes de cada fbrica

X 11 + X 41+ X 61< 10
X 22 + X 62 < 8
X 33 +X 43+ X 63< 6
X 14 + X 34+ X 44 + X 54 < 9
Cantidad mnima de representante por mercado

X 11 + X 14 > 4
X 22 > 5
X 33 + X 34 > 3
X 41 + X 43+ X 44 > 2
X 54 > 1
X 61 + X 62 + X 63 > 4
IMPLEMENTACIN EN LINGO:
En LINGO se realizan implementaciones muy largas y tediosas, pero estas
siempre siguen un formato de suma o repeticin por filas y columnas.
DEFINICIN DE SETS:
Segn lo planteado y a los datos del problema tenemos:
SETS:
MERCADOS/1..6/:SI,NO,W,Y,REPREMIN;
FABRICAS/1..4/:REPRE;
MERCAFABRI(MERCADOS,FABRICAS):DIST,X,H,T,Z;
ENDSETS
Creando Hij y Tij;
@FOR(MERCAFABRI(I,J)|DIST(I,J)#LE#55:H(I,J)=1);!REPRESENTANTES;
@FOR(MERCAFABRI(I,J)|DIST(I,J)#GT#55:H(I,J)=0);
@FOR(MERCAFABRI(I,J)|DIST(I,J)#GT#55:T(I,J)=1);!SIN
REPRESENTANTES;
@FOR(MERCAFABRI(I,J)|DIST(I,J)#LE#55:T(I,J)=0);
@FOR(MERCAFABRI(I,J):) seala que realizar una operacin tantas veces
como la cantidad de elementos de MERCAFABRI, como es una matriz de 6 filas
y 4 columnas har la operacin 24 veces.
DIST(I,J)#LE#55; har la operacin si DIST(I,J)<=55.
@FOR(MERCAFABRI(I,J)|DIST(I,J)#LE#55:H(I,J)=1); toda esta
sentencia indica que si DIST(I,J)<=55 el valor H(I,J)=1.

Manual de lingo con problemas resueltos


Pgina 55

Las dems sentencias son anlogas, solo que DIST(I,J)#GT#55; indica que
solo se realizar la operacin si DIST(I,J)>55.
Restriccin De Mxima Cantidad De Representantes Por Fbrica
4

X i , j REPRE j
j=1 i=1

!RESTRICCION DE MAXIMA CANTIDAD DE REPRESENTANTES POR FABRICA Y


MERCADO;
@FOR(FABRICAS(J):@SUM(MERCADOS(I):X(I,J))<=REPRE(J));
Restriccin De Mnima Cantidad De Representantes Por Mercado
6

X i , j REPREMIN i
i=1 j=1

!RESTRICCION DE MINIMA CANTIDAD DE REPRESENTANTES POR FABRICA Y


MERCADO;
@FOR(MERCADOS(J):@SUM(FABRICAS(I):X(J,I))>=REPREMIN(J));
Ventas Sin Representante Por Mercado
6

NO i T i , j=W i
i=1 j=1

!VENTAS SIN REPRESENTANTE POR MERCADO;


@FOR(MERCADOS(J):@SUM(FABRICAS(I):NO(J)*T(J,I))=W(J));
Ventas Con Representante Por Mercado

Z i , j H i , j=X i , j

SI i X i , j=Y i
i=1 j=1

!VENTAS CON REPRESENTANTE POR MERCADO;


@FOR(MERCAFABRI(I,J):Z(I,J)*H(I,J)=X(I,J));
@FOR(MERCADOS(J):@SUM(FABRICAS(I):SI(J)*X(J,I))=Y(J));
Salario De Representantes
6

8400 X i , j =COSTO
i=1 j=1

!SALARIO DE REPRESENTANTES;
@SUM(MERCAFABRI(I,J):X(I,J))*8400=COSTO;
Funcin Objetivo
6

MAX=70

(
i=1

W i + Y i COSTO
i =1

MAX=70*(@SUM(MERCADOS(I):W(I))+@SUM(MERCADOS(I):Y(I)))-COSTO;

Manual de lingo con problemas resueltos


Pgina 56

Definicin de data.
Data directa en lingo:
DATA:
DIST= 0
229
50
229
0
117
60
117 0
50
260 55
60
58
115
39
40
47

60
260
55
0
52
239;

REPRE=10 8 6 9;
REPREMIN=4 5 3 2 1 4;
SI=130 120 130 110 110
122;
NO=70 40 80 70 90 50;
Data exportada

ENDDATA

de Excel:

DATA:
DIST,REPRE,REPREMIN,SI,NO= @OLE('F:\VII
CICLO\OPE\LABO\PROBLEMA2.xlsx');
@OLE('F:\VII CICLO\OPE\LABO \DATA1.xlsx')=X;
ENDDATA
LINGO tiene una funcin sencilla, @OLE(),para recuperar y colocar datos de y a
una hoja de clculo (Excel).
Un paso sencillo pero oculto que debe de realizarse antes en las hojas de clculo
es definir los nombres de los rangos de las distintas colecciones de celdas que
contienen datos. Los nombres de los rangos se pueden definir en Excel con el
ratn y el elemento del men Insertar, nombre, definir. Se elige los datos de la
hoja y luego click derecho luego a asignar rangos y poner el nombre con que se
llamara en LINGO.

Las primeras 5 aplicaciones mostradas en el data ilustran que esta funcin se

Manual de lingo con problemas resueltos


Pgina 57

puede usar de a la derecha de una instruccin de asignacin para recuperar


datos de una hoja de clculo. La ltima muestra que se puede colocar a la
izquierda de una asignacin para colocar los resultados en la hoja de clculo.
PROGRAMA EN LINGO:
MODEL ASIGNACION :
!MODELO DE ASIGNACION DE REPRESENTANTES;
SETS:
MERCADOS/1..6/:SI,NO,W,Y,REPREMIN;
FABRICAS/1..4/:REPRE;
MERCAFABRI(MERCADOS,FABRICAS):DIST,X,H,T,Z;
ENDSETS
DATA:
DIST,REPRE,REPREMIN,SI,NO= @OLE('G:\VII
CICLO\OPE\LABO\DATA1.xlsx');
@OLE('F:\VII CICLO\OPE\LABO \DATA1.xlsx','C_X')=X;
ENDDATA
MAX=70*(@SUM(MERCADOS(I):W(I))+@SUM(MERCADOS(I):Y(I)))COSTO;
@FOR(MERCAFABRI(I,J)|DIST(I,J)#LE#55:H(I,J)=1);!
REPRESENTANTES;
@FOR(MERCAFABRI(I,J)|DIST(I,J)#GT#55:H(I,J)=0);
@FOR(MERCAFABRI(I,J)|DIST(I,J)#GT#55:T(I,J)=1);!SIN
REPRESENTANTES;
@FOR(MERCAFABRI(I,J)|DIST(I,J)#LE#55:T(I,J)=0);
!RESTRICCION DE MAXIMA CANTIDAD DE REPRESENTANTES POR
FABRICA Y MERCADO;
@FOR(FABRICAS(J):@SUM(MERCADOS(I):X(I,J))<=REPRE(J));
!RESTRICCION DE MINIMA CANTIDAD DE REPRESENTANTES POR
FABRICA Y MERCADO;
@FOR(MERCADOS(J):@SUM(FABRICAS(I):X(J,I))>=REPREMIN(J));
!VENTAS SIN REPRESENTANTE POR MERCADO;
@FOR(MERCADOS(J):@SUM(FABRICAS(I):NO(J)*T(J,I))=W(J));
!VENTAS CON REPRESENTANTE POR MERCADO;
@FOR(MERCAFABRI(I,J):Z(I,J)*H(I,J)=X(I,J));
@FOR(MERCADOS(J):@SUM(FABRICAS(I):SI(J)*X(J,I))=Y(J));
!SALARIO DE REPRESENTANTES;
@SUM(MERCAFABRI(I,J):X(I,J))*8400=COSTO;
END

Manual de lingo con problemas resueltos


Pgina 58

5.1.2

CANT. DE
REPRESENTAN
TES
PIURA

PIURA

AYABAC
A

PAITA

SECHUR
A

AYABACA

PAITA

SECHURA

MORROPN

SULLANA

REPORTE DE LA SOLUCIN EXPORTANDO DATOS A EXCEL:

En este cuadro podemos ver las cantidades de representantes asignados para


cada mercado pertenecientes a una determinada fbrica o base. Estas
cantidades cumplen con todas las condiciones establecidas.
5.2

MODELO DE ASIGNACIN DE PRESUPUESTO

La compaa constructora Molina dispone de 180 millones como presupuesto para


3 aos, que se usaran en sus 3 sucursales. Se ha establecido un nivel mximo de
asignacin de fondos de 20 millones para cada sucursal por ao. En caso que una
sucursal no exceda el lmite anual, puede usar esa diferencia para el siguiente ao.
Cada sucursal tiene la oportunidad de dirigir distintos proyectos con los fondos que
recibe. Para cada proyecto se ha establecido una tasa de ganancia (como un
porcentaje de la inversin) y una inversin mxima (Tabla1). Por otra parte,
algunos de los proyectos obligan una inversin mnima como se indica en la tabla
2. Determine la poltica de asignacin de recursos que genere el mejor beneficio.
TABLA 1
SUCU
RSAL

Trujil
lo
Lima
Tacna

Ao 1
Proyecto
Tasa
de
utilid
ad
(%)
1
8
2
6
3
7
1
5
2
8
3
9
1
10
2
6

Inve
rsin
mxi
ma
(m)
10
7
9
7
10
5
6
7

Ao 2
Proyecto Tasa
de
utilid
ad
(%)
1
9
2
6
3
7
1
6
2
18
3
5
1
11
2
6

Inver
sin
mxi
ma
(m)
9
5
9
4
10
6
6
10

Ao 3
Proyecto Tasa
de
utilid
ad
(%)
1
8
2
7
3
7
1
5
2
8
3
5
1
7
2
6

Inversi
n
mxim
a
(m)
8
7
7
9
8
5
6
11

Manual de lingo con problemas resueltos


Pgina 59

15

15

15

TABLA 2
Inversin Mnima (millones)
Sucursal
Proyecto
Trujillo
2
Lima
1
Tacna
2

Periodo
1
1
2

Cantidad mnima
4
5
9

Adicionalmente por una directiva de la alta gerencia se requiere que los proyectos
que tienen una utilidad mayores del 7% en cualquier ao, por lo menos tengan una
inversin de 5 millones.
SOLUCIN:
A. FORMULACIN ALGEBRAICA DEL MODELO
Definicin de variables:
X i, j, k = Cantidad asignada a la sucursal i para el proyecto j en el periodo k.
Sobrante i, k = Cantidad sobrante de dinero no asignado a la sucursal i en
periodo k.

Definicin de parmetros:
Mximo i, k = Nivel mximo de asignacin de fondos para la sucursal i en el
periodo k.
Mnimo i, j, k = Nivel mnimo de asignacin de fondos en la sucursal i, para
el proyecto j, en el periodo k.
InvMxima i, j, k = Inversin mxima en la sucursal i para el proyecto j en el
periodo k.
InvMnima=Inversin mnima que establece la gerencia para ciertos proyectos
con tasa de utilidad mayor a 7%.
Presupuesto Total = Presupuesto total disponible.
Tasa i, j, k = Tasa de rentabilidad de la sucursal i, para el proyecto j durante el
periodo k.
RESTRICCIN DE USO MXIMO DE PRESUPUESTO POR PERIODO POR
SUCURSAL.
3

X i, j, k + Sobrante i, k = Mximo i, k
j =1

k=1 (Solo el primer ao)


i = 1, 2, 3 (Sucursal).
3
X i , j ,k -Sobrante i,k-1 + Sobrante i, k = Mximo i, k
j 1
k 2, 3 (Periodo)

Manual de lingo con problemas resueltos


Pgina 60

i 1, 2, 3 (Sucursal)
RESTRICCIN DE INVERSIN MNIMA PARA ALGUNOS PROYECTOS
ESPECFICOS.
X i , j ,k Mnimo i , j ,k ; Solo para (i=1, j=2, k=1) (i=2, j=1, k=1)
(i=3, j=2, k=2)
RESTRICCIN DE INVERSIN MXIMA POR PROYECTO EN CADA
SUCURSAL.
X i , j ,k InvMxima i , j ,k i =1, 2, 3 j =1, 2, 3 k=1, 2, 3
RESTRICCIN DE PRESUPUESTO DISPONIBLE.
3

3 3
X i , j ,k Presupuesto Total
I=1

j=1

k =1

RESTRICCIN DE INVERSIN MNIMA POR DIRECTIVA DE ALTA GERENCIA.


X i , j ,k InvMnima
Tasai,j,k 0.07

Manual de lingo con problemas resueltos


Pgina 61

MODEL PRESUPUESTOS:
! MODELO DE ASIGNACION DE
PRESUPUESTO;
SETS:
SUCURSAL /TRUJILLO,LIMA,TACNA/:;
PROYECTO /
1..3/: ;
PERIODO /1..3/:
;
SUCURSAL_PERIODO (SUCURSAL,PERIODO) : SOBRANTE, MAXIMO;
SUCURSAL_PROYECTO_PERIODO
(SUCURSAL,PROYECTO,PERIODO):TASA,
INVMAXIMA, ASIGNACION;
INVERSION_MINIMA (SUCURSAL,PROYECTO,PERIODO)/TRUJILLO 2 1, LIMA 1
1, TACNA 2 2 /: MINIMO;
ENDSETS
DATA:
TASA,INVMAXIMA,MINIMO,PRESUPUESTO,INVMINIMA= @OLE('G:\VII
CICLO\OPE\LABO\DATA2.xlsx','tasa','INV_MAX','mnima','presupuesto','in
v_mnima' );
MAXIMO =
20,
20,
20,
20,
20,
20,
20,
20,
20;
ENDDATA
! Funcion Objetivo;
MAX = FO;
FO=@SUM(SUCURSAL_PROYECTO_PERIODO: TASA * ASIGNACION );
! Restriccion de uso maximo de presupuesto por periodo por sucursal ;
@FOR(PERIODO(K) | K #EQ#
1:@FOR( SUCURSAL(I):@SUM( PROYECTO(J) :ASIGNACION(I,J,K) ) +
SOBRANTE(I,K) =
MAXIMO(I,K) ));
@FOR(PERIODO(K) | K #NE# 1:@FOR( SUCURSAL(I):@SUM( PROYECTO(J)
:ASIGNACION(I,J,K) ) - SOBRANTE(I,K-1)+ SOBRANTE(I,K) =
MAXIMO(I,K) ));
! Restriccion de inversion minima para algunos proyectos especificos ;
@FOR(INVERSION_MINIMA(I,J,K): ASIGNACION(I,J,K) >= MINIMO(I,J,K));
! Restriccion de inversion maxima por proyecto en cada sucursal ;
@FOR(SUCURSAL_PROYECTO_PERIODO(I,J,K): ASIGNACION(I,J,K)
<=
INVMAXIMA(I,J,K) );
@FOR(SUCURSAL_PROYECTO_PERIODO(I,J,K)|TASA(I,J,K)#GT#0.07:
ASIGNACION(I,J,K)>= INVMINIMA);
! Restriccion de prespuesto disponible;
@SUM( SUCURSAL_PROYECTO_PERIODO(I,J,K): ASIGNACION(I,J,K)) <=
PRESUPUESTO ;
DATA:
@OLE('J:\OPE\LABO\DATA2.xlsx','FO','SOBRANTE','ASIGNACION' )
=FO,SOBRANTE,ASIGNACION;
ENDDATA
END

FUNCIN OBJETIVO
3

MAX= Tasai , j , k x X i , j ,k
i=1 j=1 k=1

Manual de lingo con problemas resueltos


Pgina 62

5.3 PROGRAMA EN LINGO

5.3.1 REPORTE DE LA SOLUCIN EXPORTANDO DATOS A EXCEL :

Utilidad en 3 aos en millones de dlares


UTILIDAD EN
3 AOS

15.2
4

millon
es

Excedente de sucursales por aos


EXCEDENTE DE SUCURSALES POR
AOS
SUCURS
1
2
3
AL
TRUJILL
0
2
0
O
LIMA
0
2
0
TACNA
4
3
0
Este cuadro nos muestra los excedentes que se dieron en cada uno e los aos
en las diferentes sucursales debido a que no se utiliz el mximo asignado que
era de 20 millones. As tenemos que en la sucursal de Trujillo hubo un sobrante
de 2 millones en el segundo ao, luego de haber invertido en los 3 proyectos; en
lima igualmente en el segundo ao hubo un sobrante de 2 millones y en
Tacna en el primer y segundo ao sobrantes de 4 y 3 millones respectivamente.
Asignaciones de presupuesto por sucursal, proyecto y ao

TRUJILL
O
LIMA
TACNA

1
10
5
6

PROYECTO 1
2
9
TRUJILL
4
O
LIMA
6 TRUJILL
O
TACNA
LIMA
TACNA

3
8
9
6

1
4
1
106
5
5
5

PROYECTO 2
2
0
PROYECTO
3
2
109
10
4
5

3
7
3
87
11
5
6

En estos 3 ltimos cuadros podemos ver las cantidades en millones asignadas


para cada proyecto en una determinada sucursal y ao. Estas cantidades
cumplen con todas las condiciones establecidas.
5.4 Modelo de Asignacin de Proyecto
Una compaa dispone de 35 millones para distribuirlos el prximo ao entre sus
sucursales (Arequipa, Cuzco, Trujillo). Debido a compromisos de la estabilidad, el

Manual de lingo con problemas resueltos


Pgina 63

nivel de empleados y por otras razones la compaa ha establecido un nivel


mnimo de asignacin de fondos para cada sucursal. Estos fondos mnimos son de
8, 10 y 15 millones de dlares respectivamente. Debido a la naturaleza de su
operacin, la sucursal Cuzco no puede utilizar ms de 20 millones de dlares.
Cada sucursal tiene la oportunidad de dirigir distintos proyectos con los fondos que
recibe. Para cada proyecto se ha establecido una tasa de ganancia (como un
porcentaje de la inversin). Por otra parte, algunos de los proyectos permiten solo
una inversin limitada. A continuacin se dan los datos para cada proyecto.
Sucursal

Proyecto

Tasa de
Utilidad(%)

Inversin
Mxima

10

2
3
1
2
3
1
2
3

6
7
5
8
9
10
6
15

5
9
7
10
4
6
12
6

Arequipa

Cuzco

Trujillo

Solucin:
Dada la informacin del problema, lo que se debe hacer es maximizar las
utilidades de la compaa en mencin, asignando de la mejor manera los fondos a
sus respectivas sucursales.

6. FORMULACIN DEL MODELO


6.1 DEFINICIN DE VARIABLES:

Xij: Cantidad asignada a la sucursal i para el proyecto j


(Siendo: i=1, 2, 3; 1: Arequipa, 2: Cuzco, 3: Trujillo) (j=1, 2, 3)
Definicin de parmetros:
Mnimo: Nivel mnimo de asignacin de fondos para la sucursal i (i=1,2,3)
Mximo: Nivel mximo de asignacin de fondos para la sucursal i (i=1,2,3)
Inv.Maximaij: Inversin mxima en la sucursal i para el proyecto j.
(Siendo: i=1, 2, 3 y j=1, 2, 3)
PresupuestoTotal: Presupuesto total disponible.
Tasaij: Tasa de rentabilidad del proyecto j en sucursal i.
(Siendo: i=1, 2, 3 y j=1, 2, 3)
6.2 FUNCIN OBJETIVO:

Max Z = Tasa11*X11 +Tasa12*X12+ Tasa 13*X13 + Tasa 21 *X21 + Tasa 22 *X22 + Tasa 23
*X23 + Tasa 31 *X31 + Tasa 32 *X32 + Tasa 33*X 33

Manual de lingo con problemas resueltos


Pgina 64

6.3 RESTRICCIONES:

6.3.1 RESTRICCIN DE USO MNIMO DE PRESUPUESTO POR SUSCURSAL

Arequipa: X11 +X12 +X13 Minimo1


Cuzco: X21 +X22 +X23 Minimo2
Trujillo: X31 +X32 +X33 Minimo3
6.3.2 RESTRICCIN DE USO MXIMO DE PRESUPESTO POR SUCURSAL

Cuzco: X21 +X22 +X23 Mximo2


6.3.3 RESTRICCIN DE INVERSIN MXIMA POR PROYECTO EN CADA SUCURSAL

Arequipa:
X11 InvMaxima11
X12 InvMaxima12
X13 InvMaxima13
Cuzco:
X21 InvMaxima21
X22 InvMaxima22
X23 InvMaxima23
Trujillo:
X31 InvMaxima31
X32 InvMaxima32
X33 InvMaxima33
6.3.4

RESTRICCION DE PRESUPUESTO DISPONOBLE

X11 +X12 +X13 +X21 +X22 +X23+ X31 +X32 +X33 PresupuestoTotal

Manual de lingo con problemas resueltos


Pgina 65

PROGRAMACIN EN LINGO

Ahora resolvamos el modelo, pulsando el cono


siguientes resultados:

, con lo que obtendremos los

De los resultados del reporte, en la parte superior se nota que la funcin objetivo
se optimiza cuando la rentabilidad es mxima, es decir, cuando toma el valor de
3.32 millones de dlares.
El resultado tambin nos da la asignacin total de los recursos financieros, en el
atributo ASIGNACIN. El valor de ASIGNACION (Arequipa, 1), por ejemplo es 8.

Manual de lingo con problemas resueltos

Pgina 66

Esto significa que la cantidad de dinero asignado a la sucursal Arequipa para el


proyecto 1 deber ser 8 millones de dlares. Para ver la solucin de slo este
atributo, escoge la opcin solution y en el cuadro de dilogo se ingresa el nombre
ASIGNACION. Tambin puede seleccionar el siguiente cono:

Y aparecer la siguiente ventana:

Se activa la opcin que permite mostrar slo los valores distintos de cero para que
LINGO slo muestre los valores de la variable ASIGNACION distintos de cero, as:

Y en este ltimo cuadro se puede ver la forma cmo tienen que ser repartidos los
fondos a las diversas sucursales de la compaa para alcanzar una mxima
utilidad. A la sucursal de Arequipa se le asigna 8 millones para invertir en el
proyecto 1, a la sucursal del Cuzco 8 millones para el proyecto 2 y 4 millones para

Manual de lingo con problemas resueltos

Pgina 67

el proyecto 3 y finalmente para la sucursal de Trujillo 1 milln para el proyecto 1, 3


millones para el proyecto 2 y 6 millones para el proyecto 3.
6.4 Programacin Lineal con 4 variables (Excel)

Graficolor, fabricante y distribuidor de papel y dems tiles escolares produce 3


tipos diferentes de papel que se pueden fabricar tanto en la fbrica A, B o C, las
cuales se encuentran ubicadas en la ciudad de Lima. La empresa busca
satisfacer la demanda establecida para las ciudades de Tacna y Cuzco en donde
se venden dichos productos. Para ello se tiene en cuenta que en estas ciudades
existen 2 tipos de centros de distribucin (supermercados y libreras) los cuales
pertenecen a la corporacin. Los precios de venta de los productos segn donde
fueron fabricados, la ciudad y el centro de distribucin donde se va a vender se
muestran en las siguientes tablas:
Tacna

Cuzco

Supermercado
Librera
Supermercado
Librera
Product Product Product Product Product Product Product Product Product Product Product Product
o1
o2
o3
o1
o2
o3
o1
o2
o3
o1
o2
o3
Fbric
aA
Fbric
aB
Fbric
aC

12

15

17

11

12

15

14

12

13

15

13

12

10

13

14

12

14

16

13

14

15

11

12

13

12

11

13

10

11

13

11

13

14

12

13

14

La corporacin busca maximizar sus ventas y saber cmo va a distribuir sus


productos tomando en cuenta la capacidad de produccin de las fbricas, la
demanda de las ciudades y la capacidad de los centros de distribucin.

Capacidad de Produccin:
Fbrica A

Fbrica B

Fbrica C

Producto 1

75

65

70

Producto 2

60

70

80

Producto 3

65

75

75

Demanda:

Producto 1

Tacna

Cuzco

73

67

Manual de lingo con problemas resueltos

Pgina 68

Producto 2

58

72

Producto 3

67

74

Capacidad de los centros de distribucin:


Tacna

Cuzco

Supermercado

150

140

Librera

130

150

Solucin:
Xijkl: cantidad de productos elaborados en la fbrica i, que corresponde al tipo j,
distribuido en k, en la ciudad l
Donde:
Tipo de fbrica: i= A, B, C
Tipo de producto: j= P1, P2, P3
Tipo de centro de distribucin: k=supermercado (S), librera (L)
Ciudades: l=Tacna (T), Cuzco (Cz)
Funcin objetivo:
C

P3

Cz

XijklPRECIOijkl
i= A j=P 1 k= S l=T

Sujeto a:
Capacidad de produccin:
L

P3

Xijkl

k=SM l= P 1

Demanda:
C

Xijkl
i= A k=S

Capacidad de los centros de distribucin:


C

P3

Xijkl

i= A j=P 1

1) El ejercicio en el programa Lingo


!PROBLEMA LINGO;
MODEL:
SETS:
FABRICAS / A B C/:; !Tipo
PRODUCTOS /P1 P2 P3/:;

de fbrica: i= A, B, C ;

!Tipo

de producto: j= P1, P2, P3 ;

Manual de lingo con problemas resueltos

Pgina 69

CENTRO /S L/:;
CIUDAD /T C/:;

!Tipo

de centro de distribucin: k=supermercado (S), librera (L);

!Ciudades:

l=Tacna (T), Cuzco (Cz);

!REQUERIMIENTO DE PRODUCTOS PARA UNA FABRICA, EN UN CENTRO DE


DISTRIBUCION, EN UNA CIUDAD,;
FPCC(FABRICAS,PRODUCTOS,CENTRO,CIUDAD):PRECIO,X;
FABPRO(FABRICAS,PRODUCTOS):CAPACIDAD;
PROCIU(PRODUCTOS,CIUDAD):DEMANDA;
CENCIUDAD(CENTRO,CIUDAD):CAPACIDAD2;
ENDSETS
DATA:
CAPACIDAD= 75 60 65,
65 70 75,
70 80 75;
DEMANDA=
73 67,
58 72,
67 74;
CAPACIDAD2= 150 140,
130 150;
PRECIO=
12 15 17 11 12 15 14 12 13 15 13 12,
10 13 14 12 14 16 13 14 15 11 12 13,
12 11 13 10 11 13 11 13 14 12 13 14;
ENDDATA
MAX=@SUM(FPCC:PRECIO*X);!FUNCION OBEJTIVO RESULTADO;
@FOR(FABPRO(I,J):@SUM(FPCC(I,J,K,L):X(I,J,K,L))<=CAPACIDAD(I,J));
!RESTRICCIONES DE LA CAPACIDAD DE CADA RECURSO;
@FOR(PROCIU(J,L):@SUM(FPCC(I,J,K,L):X(I,J,K,L))>=DEMANDA(J,L));
!RESTRICCIONES DE LA DEMANDA DE CADA RECURSO;
@FOR(CENCIUDAD(K,L):@SUM(FPCC(I,J,K,L):X(I,J,K,L))<=CAPACIDAD2(K,L));
!RESTRICCIONES DE KA CAPACIDAD DE CADA RECURSO;
END

2) RESULTADOS
Podemos ver que la maximizacin de ventas es de: 8260
Para maximizar los costos:
Fabrica A:
La empresa debe de distribuir las 75 unidades del producto 1 a la librera de la
ciudad de Tacna.
Tambin debe distribuir 5 unidades del producto 2 al supermercado de la ciudad
del Cuzco y el resto (55 unidades) ser enviada a la librera de la ciudad de
Tacna.
Adems debe distribuir 65 unidades del producto 3 al supermercado de la ciudad
del Cuzco.

Manual de lingo con problemas resueltos

Pgina 70

Fabrica B:
La empresa debe distribuir 1 unidad del producto 1 al supermercado de la ciudad
del Cuzco. Adems tiene que distribuir 64 unidades a la librera de la ciudad del
Cuzco.
Adems debe distribuir 3 unidades del producto 2 al supermercado de la ciudad
de Tacna. Tambin 67 unidades al supermercado de la ciudad del Cuzco.
Tambin podemos ver que se debe distribuir 75 unidades del producto 3 al
supermercado de la ciudad de Tacna.
Fabrica C:
Se deben distribuir 6 unidades del producto 1 al supermercado de Tacna.
Adems de 2 unidades al supermercado de Cuzco.
Tambin se debe distribuir 77 unidades del producto 2 a la librera del Cuzco.
Tambin se debe distribuir 66 unidades del producto 3 al supermercado de
Tacna. Adems de 9 unidades a la librera de la ciudad de Cuzco.
Anlisis de los Costos Reducidos
Por ejemplo en X(A,P1,S,T) tiene un costo reducido de 4 esto quiere decir que si
nosotros aumentamos en 4 unidades el coeficiente de la FO se convertir en una
alternativa conveniente ya que se har 0 el costo reducido.
Variable
Value
Reduced Cost
X( A, P1, S, T)
0.000000
4.000000
X( A, P1, S, C)
0.000000
0.000000
X( A, P1, L, T)
75.00000
0.000000
X( A, P1, L, C)
0.000000
3.000000
Ahora el primer recurso si le aumentamos 4 unidades ser 12+4=16 el nuevo
resultado sera :
Variable
X( A, P1,
X( A, P1,
X( A, P1,
X( A, P1,

S,
S,
L,
L,

T)
C)
T)
C)

Value
3.000000
0.000000
72.00000
0.000000

Reduced Cost
0.000000
0.000000
0.000000
3.000000

Holgura o Excedente
Vemos que si la restriccin es exacta satisfecha como una igualdad, la holgura o
excedente valdr cero y como no hay ningn nmero negativo en nuestro reporte
diremos que ninguna restriccin es violada.
Precio Dual
El precio dual se puede interpretar como el monto en que la funcin objetivo
mejorar si el segundo miembro de la restriccin se incrementase en una unidad
en nuestro cuadro de resultados podemos ver que Row 2 =4 esto quiere decir que
si al recurso de la segunda restriccin le aumentamos en 4 unidades, es decir
60+4=64 el nuevo valor de nuestra FO= 2864, aumentar en 4 unidades.

Manual de lingo con problemas resueltos

Pgina 71

CONCLUSIONES
Primero podemos decir que una variable en la solucin ptima automticamente
tiene un costo reducido de 0.
En la interpretacin del costo reducido podemos ver que si la variable tiene un
costo reducido de a el coeficiente objetivo de esta variable deber incrementarse
en a unidades en un problema de maximizacin o disminuirse en a unidades en
un problema de minimizacin para convertirse en una alternativa atractiva.
En nuestro ejerci podemos ver que ninguna restriccin es violada ya que en el
anlisis de Holgura y Excedente no hay ninguna variable negativa.
EL PROBLEMA EN LINGO EXPORTANDO DATOS EN EXCEL
a)
b)
c)
d)

Los pasos que se sigue para crear una base de datos en EXCEL son:
Crear una carpeta en C, por ejemplo: TRABAJO DE OPE I
Crear un hoja de clculo denominado PROBLEMA 1
Luego en la hoja de clculo poner los datos del problema:

e) Asignar nombre a la matriz:


f) Hacer click en la barra del men: Formulas
1. Hacer click en: Administrador de nombres

Manual de lingo con problemas resueltos

Pgina 72

2. Luego aparecer una nueva ventana donde colocaremos el nombre de la


matriz luego la hoja, el rango de la matriz y por ltimo hacer click en aceptar.

PROGRAMACION EN LINGO EXPORTANDO DATOS EN EXCEL


!PROBLEMA LINGO;
MODEL:
SETS:
FABRICAS / A B C/:; !Tipo
PRODUCTOS /P1 P2 P3/:;
CENTRO /S L/:;
CIUDAD /T C/:;

!Tipo

de fbrica: i= A, B, C ;

!Tipo

de producto: j= P1, P2, P3 ;

de centro de distribucin: k=supermercado (S), librera (L);

!Ciudades:

l=Tacna (T), Cuzco (Cz);

!REQUERIMIENTO DE PRODUCTOS PARA UNA FABRICA, EN UN CENTRO DE


DISTRIBUCION, EN UNA CIUDAD,;

Manual de lingo con problemas resueltos

Pgina 73

FPCC(FABRICAS,PRODUCTOS,CENTRO,CIUDAD):PRECIO,X;
FABPRO(FABRICAS,PRODUCTOS):CAPACIDAD;
PROCIU(PRODUCTOS,CIUDAD):DEMANDA;
CENCIUDAD(CENTRO,CIUDAD):CAPACIDAD2;
ENDSETS
DATA:
PRECIO,CAPACIDAD,DEMANDA,CAPACIDAD2=@OLE('C:\LINGO11\Samples\PROBLEMA
1.XLS','precio','capacidad','demanda','capacidad1');
ENDDATA
MAX=FO;
FO=@SUM(FPCC:PRECIO*X);
@FOR(FABPRO(J,I):@SUM(FPCC(I,J,K,L):X(I,J,K,L))<=CAPACIDAD(J,I));
!RESTRICCIONES DE LA CAPACIDAD DE CADA RECURSO;
@FOR(PROCIU(J,L):@SUM(FPCC(I,J,K,L):X(I,J,K,L))>=DEMANDA(J,L));
!RESTRICCIONES DE LA DEMANDA DE CADA RECURSO;
@FOR(CENCIUDAD(K,L):@SUM(FPCC(I,J,K,L):X(I,J,K,L))<=CAPACIDAD2(K,L));
!RESTRICCIONES DE KA CAPACIDAD DE CADA RECURSO;

RESULTADOS EN LA TABLA DE EXCEL:


TACNA
SUPERMERCADO
LIBRERA
P1
P2
P3
P1
P2
P3
FABRICA A
0
0
75
0
0
5
FABRICA B
0
1
0
64
3
67
FABRICA C
6
2
0
0
0
0

FO

CUZCO
SUPERMERCADO
LIBRERA
P1
P2
P3
P1
P2
P3
55
0
0
65
0
0
0
0
75
0
0
0
0
77
66
0
0
9

8260

Manual de lingo con problemas resueltos

Pgina 74

7 PROBLEMA 1 EN LINGO EXPORTANDO DATOS EN


ACCESS
En la carpeta donde se instalo LINGO, se incluy una base de datos
Microsoft Access para el modelo de Programacin Lineal con cuatro
variables.

Este archivo se encuentra en el


directorio con el nombre de
PROBLE.MDB.
Para registrar esta base de datos como una fuente de datos
ODBC para nuestro modelo, debe iniciar el Administrador de
ODBC de la siguiente manera:
1. Haga doble clic en el icono Mi PC en su escritorio.
2. Encontrar el icono del Panel de control y haga doble clic en l.
3. Haga doble clic en el icono Rendimiento y mantenimiento luego en
Herramientas administrativas.
4. Buscar el icono de Orgenes de Datos (ODBC) haga doble clic en l.
Ahora debe ver el cuadro de dilogo Administrador de orgenes de datos ODBC
se muestra a continuacin:

Manual de lingo con problemas resueltos

Pgina 75

Para instalar la base de datos PROBLE.MDB como una fuente de datos, haga lo
siguiente:
1. Haga clic en el botn Agregar en el cuadro de dilogo Administrador de datos
ODBC para mostrar el cuadro de dilogo a continuacin:

2. Estamos instalando una fuente de datos de acceso, as que seleccione la opcin


Microsoft Access Driver y pulse el botn Finalizar.

Manual de lingo con problemas resueltos

Pgina 76

3. En el siguiente cuadro de dilogo:

Asignar la fuente de datos el nombre de Programacin Lineal en el campo Nombre


de origen de datos. En el campo Descripcin, escriba "Fuente de datos para un
modelo de Programacin Lineal LINGO". Pulse el botn Seleccionar e introduzca el
nombre de la base de datos "LINGO \ SAMPLES \ PROBLE.MDB" (esto asume
LINGO se ha instalado en la LINGO-directorio de su instalacin puede ser diferente).
El cuadro de dilogo que ahora se parecen a las que se muestra a continuacin:

4. Pulse el botn Aceptar y podr ver la fuente de datos de Transporte se ha aadido


a la lista de orgenes de datos ODBC:

Manual de lingo con problemas resueltos

Pgina 77

5. Haga clic en el botn Aceptar para cerrar el Administrador de ODBC. Ahora


debe ser capaz de iniciar y resolver el modelo LINGO PROBLE.LG4.
!PROBLEMA LINGO;
MODEL:
SETS:
FABRICAS / A B C/:; !Tipo
PRODUCTOS /P1 P2 P3/:;
CENTRO /S L/:;
CIUDAD /T C/:;

!Tipo

de fbrica: i= A, B, C ;

!Tipo

de producto: j= P1, P2, P3 ;

de centro de distribucin: k=supermercado (S), librera (L);

!Ciudades:

l=Tacna (T), Cuzco (Cz);

!REQUERIMIENTO DE PRODUCTOS PARA UNA FABRICA, EN UN CENTRO DE


DISTRIBUCION, EN UNA CIUDAD,;
PRODUCTO: FABRICA_1: FABRICA_2: FABRICA_3;

Manual de lingo con problemas resueltos

Pgina 78

PRODUCTO: TACNA : CUZCO;


CENTROS: TACNA: CUZCO;
FABRICA: PRODUCTO1: PRODUCTO2: PRODUCTO3;
PROCIU(PRODUCTOS,CIUDAD):DEMANDA;
CENCIUDAD(CENTRO,CIUDAD):CAPACIDAD2;
ENDSETS
DATA:
PRECIO,CAPACIDAD,DEMANDA,CAPACIDAD2=@OLE('C:\Archivos de
programa\LINGO11\Samples\PROBLE.MDB','precio','capacidad','demanda','c
apacidad1');
ENDDATA
MAX=FO;
FO=@SUM(FPCC:PRECIO*X);

Manual de lingo con problemas resueltos

Pgina 79

CONCLUSIONES

Se ha presentado una prctica de optimizacin empleando LINGO. La


experiencia docente derivada de su utilizacin ha puesto de manifiesto la
idoneidad del empleo de dicha herramienta. En particular, su aplicacin en la
resolucin de problemas relacionados con el campo empresarial ha permitido
facilitar su asimilacin por el alumnado, alcanzando un mejor nivel de
comprensin y un buen grado de satisfaccin por su parte.

Las herramientas matemticas como LINGO permiten que alumnos con unos
conocimientos elementales en optimizacin puedan resolver una amplia gama
de problemas. En aquellas titulaciones en las cuales las matemticas no son el
fin en s mismas y se reducen a una herramienta de trabajo, resulta de mayor
inters la formulacin de los problemas, la interpretacin y el anlisis de las
soluciones, en detrimento del mtodo empleado en la obtencin de dicha
solucin.

En los problemas estudiados se ha hecho una simplificacin importante que


debe puntualizarse. En el problema sin restricciones de capacidad se conoce el
coste de transporte por unidad entre las plantas y los almacenes. En general,
este coste puede venir dado en funcin de la distancia recorrida a lo largo de
cierta red que represente las comunicaciones entre ciudades. En tal caso, habra
que resolver en primer lugar el problema de las distancias mnimas en la red de
transporte y agregar los costes a lo largo del camino mnimo. En el problema con
capacidad, se conoce c y r para cada par origen-destino, aunque en general
sobre una red de transporte habra que tener en cuenta estos parmetros a lo
largo de todas las aristas que pertenecen al camino mnimo.

Manual de lingo con problemas resueltos

Pgina 80

REFERENCIAS

Bazaraa, M.S., Sherali, H.D. y Shetty, C.M. (1993): Nonlinear programming.


Theory and algorithms (2 edicin). Ed. John Wiley.
Chiang, A.C. (1.987): Mtodos Fundamentales de Economa Matemtica (3
edicin).
Ed. McGraw-Hill.
Haeussler, E.I. y Paul, R.S. (1997): Matemticas para la Administracin,
Economa, Ciencias Sociales y de la Vida (8 edicin). Ed. Prentice-Hall.
Manual de usuario (1996). Solver Suite: LINDO, LINGO and WHATS BEST,
Lindo Systems Inc.
Surez Vega, R., Dorta Gonzlez, P., Gonzlez Martel, C. , Andrada Flix, J.
y Hernndez Guerra, J. (2001): Problemas de Algebra Lineal para la
Economa y la Empresa. Ejercicios resueltos, cuestiones y tratamiento con
DERIVE y LINGO. Ed. El Libro Tcnico.
Sydsaeter, K. y Hammond, P.J. (1996). Matemticas para el Anlisis
Econmico. Ed. Prentice-Hall.
Helmut Kopka and Patrick W. Dale. A Guide to LATEX. Addison-Wesley,
Harlow, England, 3rd edition, 1999.
Gerson Lachtermacher. Pesquisa Operacional na Tomada de Decises.
Editora Campus, Rio de Janeiro, 2002.
Lindo Systems Inc., Chicago. LINGO: the modeling language and optmizer,
2001.
http://books.google.com.pe/books?
id=8IMSA6DEaRoC&pg=PA506&lpg=PA506&dq=La+Father+Domino+Compa
ny+vende+copiadoras&source=bl&ots=MGl20VhBRl&sig=DJKAJvZY7UKCB
mkxuORYqTF3YqY&hl=es&ei=ad6S_r2LqiTtgeaz5HrCw&sa=X&oi=book_result&ct=result&resnum=1&ved=0
CAcQ6AEwAA#v=onepage&q=La%20Father%20Domino%20Company
%20vende%20copiadoras&f=false

Manual de lingo con problemas resueltos

Pgina 81

Anda mungkin juga menyukai