Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Manual Lingo 2013 2
Manual Lingo 2013 2
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.
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.
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:
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
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
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
MODEL:
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
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 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: 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.
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.
2.2 FUNCIONES:
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.
Solucin:
Sea:
Xi: la cantidad de ingredientes del PRODUCTO i (i=airtex,extendex,resistex) que
se puede usar.
3
FUNCION OBJETIVO:
X*
i
1
ganacia
(i) ;donde ganancia es la utilidad ya
i
X
i
1
COMPROMISO
(
i
)i
X
*
i
1
ito
(i
,
j)
requerimen
inventario
(
j
)*
16
, donde requerimiento (i , j) es
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
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
X
i
*
1
nutriente
MINIMO
i , donde NUTRIENTEj,i . j ,es la cantidad de
j
,
i j
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.
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
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
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
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:
Capacidad de produccin
Demanda
TACNA CUZCO
PROD1 73 67
PROD2 58 72
PROD3 67 74
Capacidad de los centros de distribucin
TACNA CUZCO
SUPER MERCADO 150 140
LIBRERA 130 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 L P4
MAX
I A, J TC K SM L P1
X I , J , K , L * PRECIOI , J , K , L , donde PRECIO es el precio de
Capacidad de produccin:
L P
4
K
SM
X
,LP1
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
I
X
A,KSM
I,J,K,L
C P4
I
X
A,LP1
I,J,K,L
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,
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
A ASI SUCESIVAMENTE.
Sucursal
Proveedor Jess Callao San Los Olivos
Mara 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
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
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);
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));
Solucin:
Xij: unidades producidas por tipo de producto j (1, 2, 3, 4), utilizando cada
maquina i (1, 2)
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
Solucin:
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
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
Solucin:
Xj = cantidad de dlares a invertir en el tipo de inversin j (1, 2, 3, 4, 5,6) para
maximizar el rendimiento.
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
Solucin:
Si los estudiantes del distrito i (i = 1, 2, 3, 4, 5,6) son enviados a la escuela j (
Xij = =1,2)
0, si no es as.
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)
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)
@for(distrito(i):total(i)=@sum(escuela(j):alumnos));
@FOR(distrito(i):@SUM(escuela(J):x(I,J))=1);
La distancia mnima total que todos los estudiantes de Metrpolis tienen que
recorrer hasta la escuela es 398.5 millas.
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:
Model:
Sets:
Productos/1..2/: utilidad, cant;
materia_prima/1..2/:horas disponibles;
Horas(productos, materia_prima):hora;
Endsets
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
3.Canfranc 55.000 88
La variable y indica donde se tiene que construir una planta Industrial. Sus valores
sern binarios: 0=no se construye, 1=si se Construye;
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)
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 = 600, 1200, 600, 1200, 2000;
costo_construccion = 1000, 1500, 1200, 1600, 2000;
costo_manufactura = 5, 4, 5, 4, 3.5;
requerimiento = 500, 200, 700, 800;
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)));
End
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
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:
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
1000000 Y( 1) + X( 1) <= 0
1000000 Y( 2) + X( 2) <= 0
1000000 Y( 3) + X( 3) <= 0
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:
TABLA 1
TABLA 2
SOLUCIN:
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
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
DENTRO DE Piura Ayabaca Paita Sechura Morropn Sullana
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:
,
=1 =1
, =
= =
SALARIO DE REPRESENTANTES
6 4
8400 , =
=1 =1
FUNCION OBJETIVO
= +
= =
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.
Morropn 90 90 90 110X54
RESTRICCIONES:
Cantidad mnima de los representantes de cada fbrica
X11 + X41 + X61 <= 10
X22 + X62 <= 8
X33 + X43 + X 63 <= 6
X14 + X34 + X44 + X54 <= 9
Cantidad mnima de representante por mercado
X11 + X14 >= 4
X22 >= 5
X33 + X34 >= 3
X41 + X43 + X 44 >= 2
X54 >= 1
X61 + X62 + X 63 >= 4
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
@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.
,
=1 =1
Salario De Representantes
6 4
8400 , =
=1 =1
!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;
SI=130 120 130 110 110
122;
NO=70 40 80 70 90 50;
ENDDATA
DATA:
DIST,REPRE,REPREMIN,SI,NO= @OLE('F:\VII
CICLO\OPE\LABO\PROBLEMA2.xlsx');
ENDDATA
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');
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);!REPRESENTANT
ES;
@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
TABLA 1
Ao 1 Ao 2 Ao 3
Proyecto Tasa Inve Proyecto Tasa Inver Proyecto Tasa Inversi
SUCU de rsin de sin de n
RSAL utilid mxi utilid mxi utilid mxim
ad ma ad ma ad a
(%) (m) (%) (m) (%) (m)
Trujil 1 8 10 1 9 9 1 8 8
lo 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
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:
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 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
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 );
END
3 3 3
= ,, ,,
=1 =1 =1
PROYECTO 1 PROYECTO 2
1 2 3 1 2 3
TRUJILLO 10 9 8 TRUJILLO 4 0 7
LIMA 5 4 9 LIMA 10 10 8
TACNA 6 6 6 TACNA 5 10 11
PROYECTO 3
1 2 3
TRUJILLO 6 9 7
LIMA 5 4 5
TACNA 5 5 6
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.3 RESTRICCIONES:
Arequipa:
X11 InvMaxima11
X12 InvMaxima12
X13 InvMaxima13
Cuzco:
X21 InvMaxima21
X22 InvMaxima22
X23 InvMaxima23
Trujillo:
X31 InvMaxima31
X32 InvMaxima32
X33 InvMaxima33
X11 +X12 +X13 +X21 +X22 +X23+ X31 +X32 +X33 PresupuestoTotal
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.
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.
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
Demanda:
Tacna Cuzco
Producto 1 73 67
Producto 2 58 72
Producto 3 67 74
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
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:
3
= =1 = =
Sujeto a:
Capacidad de produccin:
3
= =1
Demanda:
= =
= =1
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));
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.
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.
Precio Dual
CONCLUSIONES
a) Los pasos que se sigue para crear una base de datos en EXCEL son:
b) Crear una carpeta en C, por ejemplo: TRABAJO DE OPE I
c) Crear un hoja de clculo denominado PROBLEMA 1
d) Luego en la hoja de clculo poner los datos del problema:
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 A 0 0 75 0 0 5 55 0 0 65 0 0
FABRICA B 0 1 0 64 3 67 0 0 75 0 0 0
FABRICA C 6 2 0 0 0 0 0 77 66 0 0 9
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:
!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);
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.