Manual de Lingo
Manual de Lingo
Manual de Lingo
INVESTIGACION DE OPERACIONES I
2011-I
INDICE
1. INTRODUCCION......................................................................................... 3
2. LENGUAJE DE MODELADO LINGO..... 4
6 PROBLEMAS DE TRASNPORTE.. 25
7 PROBLEMAS DE INVESION...... 28
8 PLANEACIN DE PRODUCCIN..... 29
9 PROBLEMAS DE PLANEAMIENTO FINANCIERO.... 29
10 PROBLEMAS DE PROGRAMACIN ENTERA CON LINGO.. 35
11 PROBLEMA APLICADO A LA ASIGNACIN IMPORTANDO DE
XCEL.............. 49
12 PROBLEMA 1 EN LINGO EXPORTANDO DATOS EN ACCESS.... 73
1. INTRODUCCIN
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.
2. LENGUAJE DE MODELADO LINGO
Qu es LINGO?
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:
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.
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.
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.
o 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
DATA:
CAPACIDAD = 30,20;
DEMANDA = 10, 25,15;
C = 2, 4, 6,
7,10, 1;
ENDDATA
! LA FUNCION OBJETIVO;
MIN = @SUM (RUTAS: C*X);
! 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
MODEL:
END
Se puede omitir el paso anterior pasando a la solucin del modelo haciendo clic en
LINGO, Solve obteniendo el siguiente resultado:
Objective value: 160.0000
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#.
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.
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.
4. 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.
Solucin:
Sea:
Xi: la cantidad de ingredientes del PRODUCTO i (i=airtex,extendex,resistex) que se
puede usar.
3
FUNCION OBJETIVO: X
i 1
i * ganacia(i ) ;donde ganancia es la utilidad ya sea del
SUJETO A:
3
X
i 1
i COMPROMISO(i )
Para i=1-----X1 >=1000
Para i=2-----X2 >=500
Para i=3-----X3 >=400
3
X
i 1
i * requerimen to(i, j ) inventario ( j ) * 16 , donde requerimiento (i , j) es la
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
NUTRIENTE(mg / 100g)
PROTEINA HIERRO TIACINA TIAMINA VITNA C GRASA
ESPAGUET 5000 1.1 1.4 0.18 0.0 5000
I
PAVO 29300 1.8 5.4 0.06 0.0 5000
PAPAS 5300 0.5 0.9 0.06 10 7900
ESPINACA 3000 2.2 0.5 0.07 28 300
S
PASTEL 4000 1.2 0.60 0.15 3.0 14300
SOLUCION: hacemos nuestra tabla
POTAJE NUTRIENTE(mg/100g)
PROTEINA HIERRO TIACINA TIAMINA VITNA C GRASA MAXIMO
ESPAGUETI 5000 1.1 1.4 0.18 0 5000 300
PAVO 29300 1.8 5.4 0.06 0 5000 300
PAPAS 5300 0.5 0.9 0.06 10 7900 200
ESPINACAS 3000 2.2 0.5 0.07 28 300 100
PASTEL 4000 1.2 0.6 0.15 3 14300 100
MINIMO 63000 10 15 1 50 0
Funcin objetivo:
Min Z=X6;
SUJETO A:
X
i 1
i MAXIMOi / 100 ; donde MAXIMO i es la cantidad mxima de cada potaje
Por lo tanto:
X
i 1
i * nutriente j ,i MINIMO j , donde NUTRIENTE j,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.
Por lo tanto:
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
A ASI SUCESIVAMENTE.
- PROBLEMA 5.2
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 AL CLIENTE
1 2 3 4
(dlares) (dlares) (dlares)
(dlares)
Fabrica 1 65 63 62 64
Fabrica 2 68 67 65 62
Fabrica 3 63 60 59 60
Solucin:
UNID ij = la cantidad enviada de la fabrica i al cliente j (i=1,2,3 j=1,2,3,4)
MAX 65 UNID( FAB1, CEN1) + 63 UNID( FAB1, CEN2) + 62 UNID( FAB1, CEN3) +
64 UNID( FAB1, CEN4)+ 68 UNID( FAB2, CEN1) + 67 UNID( FAB2, CEN2) + 65 UNID(
FAB2, CEN3) + 62 UNID( FAB2, CEN4)+ 63 UNID( FAB3, CEN1) + 60 UNID( FAB3,
CEN2) + 59 UNID( FAB3, CEN3) + 60 UNID( FAB3, CEN4)
SUBJECT TO
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
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
TABLA A
ESTUDIANTES ESTUDIANTES
DISTRITO
MINORITARIOS NO MINORITARIOS
1 50 200
2 50 250
3 100 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
WALT
DISTRITO COOLEY WHITMAN
1 1 2
2 2 1
3 1 1
SOLUCION:
SETS:
DIST/1 . . 3/ : ;
TIPO / 1 . .2/ : ;
COLE / 1 . .2 / : ;
DT ( DIST , TIPO ) : CANT ;
DC ( DIST , COLE ) : DIS ;
DTC ( 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))));
@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
TACNA CUZCO
SUPERMEMRCADO LIBRERIA SUPERMERCADO LIBRERIA
Prod Prod2 Prod3 Prod1 Prod2 Prod3 Prod Prod2 Prod3 Prod1 Prod2 Prod3
1 1
Fab A 13 15 17 11 12 15 14 12 13 15 13 12
Fab B 10 13 14 12 14 16 13 14 15 11 12 13
Fab C 12 11 13 10 11 13 11 13 14 12 13 14
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.
Capacidad de produccin
FAB FAB FAB C
PROD1 75 65 70
PROD2 60 70 80
PROD3 65 75 75
Demanda
TACNA CUZCO
PROD1 73 67
PROD2 58 72
PROD3 67 74
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 L P4
MAX X I , J , K , L * PRECIOI , J , K , L , donde PRECIO es el precio
I A, J TC K SM L P1
SUJETO A:
Capacidad de produccin:
L P4
X
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 L
X
I A, K SM
I ,J ,K ,L
C P4
X
I A , L P1
I ,J ,K ,L
DATA:
CAPACIDAD=75,60,65,
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
A ASI SUCESIVAMENTE.
6. PROBLEMAS DE TRANSPORTE
Sucursal
Proveedor Jess Mara Callao San Los Olivos
Luis
Ventanilla 6 2 6 7
Villa El Salvador 4 9 5 3
Chorrillos 8 8 1 5
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);
END
- Problema 5.2
Materia Cantidad
B1 B2 B3
prima disponible
Azcar 1 1 1 50
Chocolate 2 3 1 100
Ganancia 3 7 5
unitaria
Solucin:
Sets:
in/1..2/:d;
b/1..3/:p,g;
ca(in,b):Uso;
Endsets
Data:
g=3 7 5;
d=50 100;
Uso= 1 1 1
2 3 1;
Enddata
Max=@sum (b:p*g);
@for(in(i):@sum(b(j):uso(i,j)*p(j))<=d(i));
End
SUBJECT TO
END
- PROBLEMA 5.2
Sailco Corporation tiene que determinar cuntos veleros hay que producir en cada uno
de cuatro trimestres. La demanda es 40, 60, 75 y 25 para el primer, segundo, tercero y
cuarto trimestre. Sailco tiene que cumplir con las demandas. Al principio del primer
trimestre, Sailco tiene un inventario de 10 veleros. Sailco tiene que decidir, al principio
de cada trimestre, cuntos veleros hay que construir en el trimestre. Los veleros
construidos en un trimestre son usados para satisfacer la demanda de ese trimestre.
Durante cada trimestre, Sailco puede producir hasta 40 veleros, en el tiempo regular
de trabajo, a un costo de 400 dlares por velero. Sailco puede producir ms veleros, al
hacer que trabajen tiempo extra los empleados durante un trimestre, a un costo total
de 450 dlares por velero. Al final de cada trimestre (despus de terminar la
produccin y despus de satisfacer la demanda del trimestre actual) se presentan
costos de mantenimiento del inventario, de 20 dlares por velero.
Utilice la programacin lineal para determinar un programa de produccin para los
siguientes cuatro trimestres.
Sets:
trimestres/1..4/:tiempo,demanda,prod_reg,prod_ext,inv;
Endsets
Min=@sum(trimestres:400*prod_reg+450*prod_ext+20*inv);
@for(trimestres(i):prod_reg(i)<40);
@for(trimestres(i)|tiempo(i) #gt#1:
inv(i)=inv(i-1)+prod_reg(i)+prod_ext(i)-demanda(i););
inv(1)=10+prod_reg(1)+prod_ext(1)-demanda(1);
Data:
demanda=40,60,75,25;
tiempo=1,2,3,4;
Enddata
End
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?
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
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. 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 S1 S2
Mezcla 2 1
Purificacin 1 2
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);
8. PLANEAMIENTO FINANCIERO
-PROBLEMA 8.1
Un banco otorga cuatro tipos de prstamos a sus clientes los cuales producen las
siguientes tasas de inters anual:
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.
! 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));
-. Problema 8 .2
Solucin:
Xij: unidades producidas por tipo de producto j (1, 2, 3, 4), utilizando cada maquina i
(1, 2)
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
END
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 4
6:00 - 10:00 8
10:00 - 14:00 10
14:00 - 18:00 7
18:00 - 22:00 12
22:00 - 2:00 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:
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
- PROBLEMA 8.4
Se desean invertir 2 mil dlares en 6 tipos de inversin cuyas caractersticas son las
siguientes:
Plazo
Tipo de Interes Factor de promedio
Inversion Anual (%) Riesgo de
inversion
1 8.5 0.02 8
2 9 0.01 2
3 8.5 0.38 5
4 14.3 0.45 6
5 6.7 0.07 2
6 13 0.35 4
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
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
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
Problema 1
TABLA 2 TABLA 3
Distrit Escuela de Escuela de
Solucin: o bachillerato 1 bachillerato 2
1 1 2
Si los estudiantes del distrito 2 0.5 1.7
Xij = i (i = 1, 2, 3, 4, 5,6) son enviados a 3 0.8 0.8
la escuela j (j = =1,2) 4 1.3 0.4
5 1.5 0.6
0, si no es as.
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.
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)
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)
ENDDATA
MIN=@SUM(matriz(i,j):total(i)*x(i,j)*millas(i,j));
@for(distrito(i):total(i)=@sum(escuela(j):alumnos));
@FOR(distrito(i):@SUM(escuela(J):x(I,J))=1);
Problema 2
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
SOLUCIN:
Yi = 1 si se utiliza la planta i.
0 en caso contrario.
i =1, 2, 3.
FUNCION OBJETIVO:
RESTRICCIONES:
X1 + X2 + X3 >= 12 000
X1 <= 6 000Y1
X2 <= 7 000Y2
X3 <= 6 000Y3
X1,X2,X3>0
Y1,Y2,Y3= 1 0
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));
!restriccion binaria;
@for(planta(i):@bin(y));
End
MODEL:
END
Solucin Lingo:
PROBLEMA 3
Data:
hora= 2, 5, 4, 6;
utilidad= 30, 40;
horas_disponibles= 150, 200;
Enddata
Max=@sum(productos(i):cant(i)*utilidad(i));
@for(materia_prima(j):@sum(productos(i):cant(i)*hora(i,j))<=horas_disponibles(j));
@for(productos(i):@gin(cant(i)));
End
Problema 4
3.Canfranc 55.000 88
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;
!Restricciones de no negatividad;
@FOR(links(i,j):volumen(i,j)>=0);
END
PROBLEMA 5
Tabla N 1
Hasta la regin
De la fbrica
1 2 3 4
ATE 1 2 3 4
BELLAVISTA 2 3 2 3
Requerimiento (Miles de 500 200 700 800
unidades)
Min=@sum(rutas:costo*cantidad)+@sum(fabrica: costo_construccion*construccion)
+@sum(fabrica(i):@sum(rutas(i,j):costo_manufactura(i)*cantidad(i,j)));
End
Problema 6
VENDIDO EN EL
AO 1 AO 2 AO 3
BIEN 1 15 20 24
BIEN 2 16 18 21
BIEN 3 22 30 36
BIEN 4 10 20 30
BIEN 5 17 19 22
BIEN 6 19 25 29
SOLUCION:
FUNCION OBJETIVO:
MAX Z = B( 1) + B( 2) + B( 3)
Donde:
RESTRICCIONES:
X( 1, 1) + X( 1, 2) + X( 1, 3) <= 1
X( 2, 1) + X( 2, 2) + X( 2, 3) <= 1
X( 3, 1) + X( 3, 2) + X( 3, 3) <= 1
X( 4, 1) + X( 4, 2) + X( 4, 3) <= 1
X( 5, 1) + X( 5, 2) + X( 5, 3) <= 1
X( 6, 1) + X( 6, 2) + X( 6, 3) <= 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:
Problema 7
SOLUCION:
VARIABLES:
FUNCION OBJETIVO:
MIN Z = 5000Y (1) + 4000Y (2) + 6000Y (3) + 500X (1) + 350X (2) + 250X (3)
RESTRICCIONES:
X( 1) + X( 2) + X( 3) >= 1100
X( 1) <= 500
X( 2) <= 900
X( 3) <= 400
o 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:
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));
SOLUCION EN LINGO:
Problema 8
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
TABLA 2
SOLUCIN:
FUNCIN OBJETIVO:
MINZ=350*(5*X1)+330*(3*X2)+310*(4*X3)+280*(6*X4)+500*Y1+450Y2+400Y3+100
W
S.A.:
5*X1+3*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
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;
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));
End
TABLA 1
REPRESENTANTE MERCADOS VENTA
Piura Ayabaca Paita Sechura Morropn Sullana
DENTRO DE
55Km
SI 130 120 130 110 110 122
NO 70 40 80 70 90 50
TABLA 2
Base- Piura Ayabaca Paita Sechura
Fbrica Mercado
Piura 0 229 60 50
Ayabaca 229 0 117 260
Paita 60 117 0 55
Sechura 50 260 55 0
Morropn 60 58 115 52
Sullana 39 40 47 239
SOLUCIN:
SALARIO DE REPRESENTANTES
FUNCION OBJETIVO
INTERPRETACIN E IMPLENTACIN EN LINGO:
1. 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.
Egresos:
Los egresos serian lo que se paga a cada uno de los representantes esto sera:
RESTRICCIONES:
Cantidad mnima de los representantes de cada fbrica
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:
SETS:
MERCADOS/1..6/:SI,NO,W,Y,REPREMIN;
FABRICAS/1..4/:REPRE;
MERCAFABRI(MERCADOS,FABRICAS):DIST,X,H,T,Z;
ENDSETS
@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);
Las dems sentencias son anlogas, solo que DIST(I,J)#GT#55; indica que solo
se realizar la operacin si DIST(I,J)>55.
@FOR(MERCADOS(J):@SUM(FABRICAS(I):X(J,I))>=REPREMIN(J));
Ventas Sin Representante Por Mercado
Salario De Representantes
!SALARIO DE REPRESENTANTES;
@SUM(MERCAFABRI(I,J):X(I,J))*8400=COSTO;
Funcin Objetivo
MAX=70*(@SUM(MERCADOS(I):W(I))+@SUM(MERCADOS(I):Y(I)))-COSTO;
Definicin de data.
Data directa en lingo:
DATA:
DIST= 0 229 60 50
229 0 117 260
60 117 0 55
50 260 55 0
60 58 115 52
39 40 47 239;
REPRE=10 8 6 9;
REPREMIN=4 5 3 2 1 4;
NO=70 40 80 70 90 50;
ENDDATA
DATA:
DIST,REPRE,REPREMIN,SI,NO= @OLE('F:\VII
CICLO\OPE\LABO\PROBLEMA2.xlsx');
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 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 :
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');
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);
!SALARIO DE REPRESENTANTES;
@SUM(MERCAFABRI(I,J):X(I,J))*8400=COSTO;
END
REPORTE DE LA SOLUCIN EXPORTANDO DATOS A EXCEL:
CANT. DE
REPRESENTANTES PIURA AYABACA PAITA SECHURA
PIURA 7 0 0 0
AYABACA 0 5 0 0
PAITA 0 0 6 8
SECHURA 2 0 0 0
MORROPN 0 0 0 1
SULLANA 1 3 0 0
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.
TABLA 1
Ao 1 Ao 2 Ao 3
Proyecto Tasa de Inversi Proyecto Tasa de Inversi Proyecto Tasa de Inversi
SUCURSAL utilidad n utilidad n utilidad n
(%) mxima (%) mxima (%) mxima
(m) (m) (m)
Trujillo 1 8 10 1 9 9 1 8 8
2 6 7 2 6 5 2 7 7
3 7 9 3 7 9 3 7 7
Lima 1 5 7 1 6 4 1 5 9
2 8 10 2 18 10 2 8 8
3 9 5 3 5 6 3 5 5
Tacna 1 10 6 1 11 6 1 7 6
2 6 7 2 6 10 2 6 11
3 15 5 3 15 5 3 15 6
TABLA 2
Inversin Mnima (millones)
Sucursal Proyecto Periodo Cantidad mnima
Trujillo 2 1 4
Lima 1 1 5
Tacna 2 2 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:
Definicin de variables:
Definicin de parmetros:
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)
i 1, 2, 3 (Sucursal)
RESTRICCIN DE INVERSIN MNIMA PARA ALGUNOS PROYECTOS
ESPECFICOS.
X i , j ,k InvMnima
Tasai,j,k 0.07
FUNCIN OBJETIVO
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','inv_mnima'
);
MAXIMO = 20, 20, 20,
20, 20, 20,
20, 20, 20;
ENDDATA
! Funcion Objetivo;
MAX = FO;
FO=@SUM(SUCURSAL_PROYECTO_PERIODO: TASA * ASIGNACION );
@FOR(PERIODO(K) | K #EQ#
1:@FOR( SUCURSAL(I):@SUM( PROYECTO(J) :ASIGNACION(I,J,K) ) + SOBRANTE(I,K) =
MAXIMO(I,K) ));
END
B. PROGRAMA EN LINGO
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.
PROYECTO 1
1 2 3
TRUJILLO 10 9 8
LIMA 5 4 9
TACNA 6 6 6
PROYECTO 2
1 2 3
TRUJILLO 4 0 7
LIMA 10 10 8
TACNA 5 10 11
PROYECTO 3
1 2 3
TRUJILLO 6 9 7
LIMA 5 4 5
TACNA 5 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.
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.
1) 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
2) RESTRICCIONES:
Arequipa:
X11 InvMaxima11
X12 InvMaxima12
X13 InvMaxima13
Cuzco:
X21 InvMaxima21
X22 InvMaxima22
X23 InvMaxima23
Trujillo:
X31 InvMaxima31
X32 InvMaxima32
X33 InvMaxima33
3.4 RESTRICCION DE PRESUPUESTO DISPONOBLE
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. 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:
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 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.
c) Programacin Lineal con 4 variables (excel)
Tacna Cuzco
Supermercado Librera Supermercado Librera
Producto Producto Producto Producto Producto Producto Producto Producto Producto Producto Producto Producto
1 2 3 1 2 3 1 2 3 1 2 3
Fbrica
A 12 15 17 11 12 15 14 12 13 15 13 12
Fbrica
B 10 13 14 12 14 16 13 14 15 11 12 13
Fbrica
C 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:
Demanda:
Tacna Cuzco
Producto 1 73 67
Producto 2 58 72
Producto 3 67 74
Capacidad de los centros de distribucin:
Tacna Cuzco
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
Funcin objetivo:
Sujeto a:
Capacidad de produccin:
Demanda:
!PROBLEMA LINGO;
MODEL:
SETS:
FABRICAS / A B C/:; !Tipo de fbrica: i= A, B, C ;
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
@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));
Fabrica A:
Fabrica B:
Fabrica C:
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
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.
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.
Los pasos que se sigue para crear una base de datos en EXCEL son:
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));
TACNA CUZCO
SUPERMERCADO LIBRERA SUPERMERCADO LIBRERA
P1 P2 P3 P1 P2 P3 P1 P2 P3 P1 P2 P3
FABRICA
0 0 75 0 0 5 55 0 0 65 0 0
A
FABRICA
0 1 0 64 3 67 0 0 75 0 0 0
B
FABRICA
6 2 0 0 0 0 0 77 66 0 0 9
C
FO 8260
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:
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.
3. En el siguiente cuadro de dilogo:
!PROBLEMA LINGO;
MODEL:
SETS:
FABRICAS / A B C/:; !Tipo de fbrica: i= A, B, C ;
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);
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.