Manual Lingo 2013 2
Manual Lingo 2013 2
Manual Lingo 2013 2
1.
2.2
FUNCIONES:..................................................................................................14
EJEMPLO DE MEZCLA..................................................................16
3.2
3.3
3.4
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
5.2
5.3
6.
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.
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:
entre corchetes.
Seccin de datos, DATA, que proporciona los datos a usar o indica donde
obtenerlos
y X representan,
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
J = 2:
J=3
! 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
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
X( F2, C1)
X( F2, C2)
X( F2, C3)
5.000000
0.000000
15.00000
0.0000000
1.0000000
0.0000000
LINGO est
@GIN
@BIN
@FREE
@BND
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 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:
impresin.
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.
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:
insercin.
Clear
delete
portapapeles.
Find/ Replace ctrl. + F:
activa.
Los comandos del men LINGO se usan despus de que usted ya introdujo
datos y estn listos para obtener una solucin.
COMANDOS LINGO:
Solution ctrl. + O:
Generate ctrl. + S:
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:
EJEMPLO DE MEZCLA
Producto
AIRTEX
EXTENDEX
EXTENDEX
Inventario
Base
6
9
2
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.
X
i 1
COMPROMISO (i)
, 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
NUTRIENTE(mg / 100g)
Manual de lingo con problemas resueltos
Pgina 17
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
X 6 X i * CGi 0 ; donde
* nutriente j ,i MINIMO j
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.
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
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
Value
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
DISTRITO
ESTUDIANTES ESTUDIANTES
MINORITARIOS NO
MINORITARIOS
1
2
3
50
50
100
200
250
150
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))));
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
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
TACNA
150
130
CUZCO
140
150
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
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 ;
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
P4
I A, L P1
I ,J ,K ,L
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
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.
Jess Mara
15
Callao
17
San Luis
22
Los Olivos
12
Ventanilla
30
Villa El
Salvador
25
Chorrillo
s
21
Jess
Mara
6
4
8
Sucursal
Callao
San
Luis
2
6
9
5
8
1
Los
Olivos
7
3
5
END
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
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);
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
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.
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:
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
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
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
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
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
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
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)
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
variables(dlares)
20
25
30
Capacidad
produccin
6000
7000
6000
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
!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
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
Capacidad de
embotellamiento
(m3 anuales)
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
1.Lrida
2.Girona
3.Tarragona
4.Barcelona
Demanda(m3/a
o)
30.350
60.700
45.500
160.000
Fuente
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;
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;
@FOR(links(i,j):volumen(i,j)>=0);
END
4.5 Problema 5 de programacin entera
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,
=
=
=
=
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
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
1
1
1
1
1
1
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;
@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.
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
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;
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
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
400
SOLUCIN:
Xi:
1, cuando se ha comprado el lingote i
0, en caso contrario
Yi:
W:
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
!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
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
X i , j REPRE j
j=1 i=1
X i , j REPREMIN i
i=1 j=1
NO i T i , j=W i
i=1 j=1
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
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.
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
MAX=INGRESOCOSTO
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.
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
X i , j REPREMIN i
i=1 j=1
NO i T i , j=W i
i=1 j=1
Z i , j H i , j=X i , j
SI i X i , j=Y i
i=1 j=1
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;
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.
5.1.2
CANT. DE
REPRESENTAN
TES
PIURA
PIURA
AYABAC
A
PAITA
SECHUR
A
AYABACA
PAITA
SECHURA
MORROPN
SULLANA
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
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
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
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
15.2
4
millon
es
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
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.
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
6.3 RESTRICCIONES:
Arequipa:
X11 InvMaxima11
X12 InvMaxima12
X13 InvMaxima13
Cuzco:
X21 InvMaxima21
X22 InvMaxima22
X23 InvMaxima23
Trujillo:
X31 InvMaxima31
X32 InvMaxima32
X33 InvMaxima33
6.3.4
X11 +X12 +X13 +X21 +X22 +X23+ X31 +X32 +X33 PresupuestoTotal
PROGRAMACIN EN LINGO
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.
Pgina 66
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
Pgina 67
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
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
Pgina 68
Producto 2
58
72
Producto 3
67
74
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
P3
Xijkl
i= A j=P 1
de fbrica: i= A, B, C ;
!Tipo
Pgina 69
CENTRO /S L/:;
CIUDAD /T C/:;
!Tipo
!Ciudades:
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.
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.
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:
Pgina 72
!Tipo
de fbrica: i= A, B, C ;
!Tipo
!Ciudades:
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;
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
Pgina 74
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:
Pgina 76
Pgina 77
!Tipo
de fbrica: i= A, B, C ;
!Tipo
!Ciudades:
Pgina 78
Pgina 79
CONCLUSIONES
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.
Pgina 80
REFERENCIAS
Pgina 81