Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Noviembre 2017
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
INTEGRANTES :
2017
“Año del Buen Servicio al Ciudadano”
Página | 1
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
ÍNDICE
1. INTRODUCCIÓN.............................................................................................................................3
2. LINGO...............................................................................................................................................4
2.1. SINTAXIS DE LINGO.............................................................................................................6
2.2. OPERADORES LÓGICOS..................................................................................................10
2.2.1. MENÚES.......................................................................................................................10
2.2.2. FUNCIONES:................................................................................................................13
2.3. INTRODUCCIÓN BÁSICA DE UN MODELO EN LINGO...............................................15
2.4. INTERPRETACIÓN DE LA SOLUCIÓN...........................................................................17
2.5. DEFINICIÓN DE CONJUNTOS..........................................................................................20
2.6. ECUACIONES CON CONJUNTOS...................................................................................25
2.7. MÁS SOBRE CONJUNTOS...............................................................................................27
3. CAPÍTULO 1: PROBLEMAS DE PROGRAMACIÓN LINEAL...............................................28
3.1. PROBLEMAS DE PRODUCCIÓN.....................................................................................28
3.2. PROBLEMAS DE MEZCLAS.............................................................................................41
3.3. PROBLEMAS DE FINANZAS............................................................................................49
3.4. PROBLEMAS DE TRANSPORTE.....................................................................................59
3.5. PROBLEMAS DE INVERSIÓN...........................................................................................79
4. PROBLEMAS DE PROGRAMACIÓN ENTERA CON LINGO...............................................80
4.1. Problema 1............................................................................................................................80
4.2. Problema 2............................................................................................................................81
4.3. Problema 3............................................................................................................................84
4.4. Problema 4............................................................................................................................88
4.5. Problema 5............................................................................................................................91
4.6. Problema 6............................................................................................................................95
4.7. Problema 7............................................................................................................................97
4.8. Problema 8..........................................................................................................................100
5. PROBLEMA APLICADO A LA ASIGNACIÓN IMPORTANDO DE EXCEL......................103
5.1. Problema 1..........................................................................................................................103
5.2. Problema 2 – Presupuesto..............................................................................................114
5.3. Problema 3 – Proyectos..................................................................................................119
5.4. Problema 4 – Cuatro variables.......................................................................................124
6. CONCLUSIONES........................................................................................................................132
7. BIBLIOGRAFÍA...........................................................................................................................133
Página | 2
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
1. INTRODUCCIÓN
Página | 3
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
2. LINGO
Página | 4
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
Página | 5
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
Por ejemplo:
SETS:
FABRICAS /F1, F2/: CAPACIDAD;
CENTROS /C1, C2, C3/: DEMANDA;
RUTAS (FÁBRICAS, CENTROS): C, X;
ENDSETS
Página | 6
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
Para el modelo:
Para presentar el modelo se utiliza dos funciones @SUM y @FOR.
@SUM calcula la suma de una expresión sobre todos los miembros del
conjunto. La forma general es:
@SUM (set: expresión)
Por ejemplo:
@FOR (CENTROS (J): @SUM (FABRICAS(I):X(I,J))<=CAPACIDAD(I));
Indica que se genere la restricción 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
Página | 7
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
SETS:
FABRICAS /1..2/: CAPACIDAD;
CENTROS /1..3/ : DEMANDA;
RUTAS (FÁBRICAS, CENTROS): C, X;
ENDSETS
DATA:
CAPACIDAD = 30,20;
DEMANDA = 10, 25,15;
C = 2, 4, 6,
7,10, 1;
ENDDATA
! LA FUNCION OBJETIVO;
MIN = @SUM (RUTAS: C*X);
! 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
END
Página | 8
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
#operador#.
Los elementos del LINGO requieren un objetivo, una o más variables y
una o más restricciones. Las instrucciones del LINGO terminan con: (punto y
coma).
2.2.1. MENÚES
Página | 9
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
MENÚ FILE
Los comandos del menú FILE (archivo) le permiten manejar sus archivos
de datos en LINGO de distintas maneras. Usted puede usar este menú para
abrir, cerrar, guardar e imprimir archivos, así como para ejecutar varias tareas
únicas con LINGO.
Los comandos del menú FILE (archivo) son los siguientes:
NEW F2: Crea una nueva ventana para ingresar datos.
OPEN F3: Abre un archivo existente. Mediante los cuadros de dialogo
usted puede seleccionar entre varios tipos de archivos y ubicaciones.
SAVE F4: Guarda la ventana activa. Usted puede guardar los datos de
entrada (un modelo), una ventana de informes (ventana de informes) o
una ventana de comandos.
SAVE AS F5: Guarda la ventana activa con un nombre de archivo
especifico. Es útil para volver a asignar un nombre a un archivo revisado
y conservar intacto el archivo original.
CLOSE F6: Cierra la ventana activa. Si la ventana contiene nuevos
datos, entonces se le preguntará si desea guardar los cambios.
PRINT F7: Envía la ventana activa a su impresora.
PRINTER SETUP F8: Selecciona la impresora y varias opciones para el
formato de impresión.
LOG OUTPUT F9: Envía toda la actividad posterior de la pantalla que
normalmente se enviaría a la ventana Reports, a un archivo de texto. Si
usted especifica una ubicación log file, aparece una marca en el menú
file en la línea de Log Output. Para inactivar Log Output seleccione
simplemente el comando de nuevo.
TAKE COMMANDS: Toma un batch file de LINGO con comandos y
texto del modelo para operación automatizada. Se puede poner un
modelo en la memoria, resolverlo y la solución es colocada en la
ventana Reports y guardada en un archivo. Si usted usa el comando
BATCH antes del inicio del texto del modelo, el modelo y los comandos
contenidos en el archivo, así como la solución, se verán en la ventana
Reports.
IMPORT LINDO FILE F12: Abre un archivo que contiene un modelo de
Lindo en el formato TAKE de Lindo y traduce el modelo en un formato
que Lingo acepta.
EXIT F10: Cierra LINGO.
MENÚ EDIT
Página | 10
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
Los comandos del menú EDIT permiten a usted ejecutar tareas básicas
de edición comunes a la mayoría de aplicaciones para Windows, así como
efectuar varias tareas que son exclusivas para LINGO.
MENU LINGO:
Los comandos del menú LINGO se usan después de que usted ya
introdujo datos y están listos para obtener una solución.
Los comandos del menú LINGO son:
SOLVE CTRL. + S: Envía 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 solución), el cual permite a usted
especificar como quiere que aparezca su solución.
Página | 11
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
2.2.2. FUNCIONES:
OPERADORES ESTANDAR
FUNCIONES DE FINANZAS:
Entre estas funciones están @FPA (I, N), la cual da el valor presente de una
anualidad y la función @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 interés es I por
periodo. I no es un porcentaje, sino un número no negativo que representa la
tasa de interés.
FUNCIONES MATEMÁTICAS:
Página | 13
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
FUNCIONES DE PROBABILIDAD:
Observaciones:
La función objetivo se introduce precedida de Max = o de Min =.
Para introducir una desigualdad de ≤ o " se escribe <= o >= aunque
se puede abreviar a < o >. Para introducir una igualdad escribimos
simplemente =
Si hemos seleccionado la opción Variables asume non-negativo no
es necesario introducir las condiciones de signo.
Cada instrucción termina obligatoriamente con ;
Los cambios de línea son irrelevantes. Por claridad podemos escribir
cada ecuación en una línea, pero sería equivalente escribirlas todas
seguidas en la misma línea. Recíprocamente, si una restricción es
muy larga, podemos partirla en dos o más líneas (teniendo en cuenta
que un cambio de línea es como un espacio en blanco, por lo que no
podemos partir una palabra o un número).
Las etiquetas entre corchetes verb/[ ]/ son opcionales. Sirven
´únicamente para relacionar más fácilmente la solución que
proporciona LINGO con las distintas líneas del modelo. En caso de
introducir etiquetas, éstas no pueden contener espacios en blanco ni
signos especiales, como acentos, eñes, etc. Una etiqueta puede
contener números, pero no empezar por un número. Podemos usar
el guion bajo para separar palabras (p.ej.: [Existencias_de_mijo]).
Página | 15
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
X 2000.000 0.000000
Y 1000.000 0.000000
Z 0.000000 1.000000
Así, por ejemplo, por cada saco de pienso de tipo 3 que quisiéramos
fabricar, los ingresos disminuirían en 1 € o, equivalentemente, para que
resulte rentable fabricar sacos de pienso de tipo 3 es necesario que su
precio de venta aumente al menos en 1 €.
La columna Dual Price contiene (salvo el signo) los multiplicadores de
Kuhn y Tucker (o variables duales, en el caso de la programación lineal)
de las restricciones (excepto la entrada correspondiente a la función
objetivo, cuyo valor es siempre igual a 1). El signo es el que se
corresponde con la interpretación siguiente:
Página | 17
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
Página | 19
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
SETS:
Cereal/Avena, Maiz, Cebada, Mijo/:Existencias;
Pienso/1..3/: Precio, Sacos;
ENDSETS
Página | 20
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
Definición Elementos
4..7 4, 5, 6, 7
CH2..CH5 CH2, CH3, CH4, CH5
MON..WED MON, TUE WED
OCT..JAN OCT, NOV, DEC, JAN
NOV2010..FEB2011 NOV2010, DEC2010, JAN2011, FEB2011
SETS:
Cereal/Avena, Maiz, Cebada, Mijo/:Existencias;
Pienso/1..3/: Precio, Sacos;
ENDSETS
DATA:
Existencias = 50000 80000 40000 10000;
Precio = 9, 12, 6.20;
ENDDATA
Notemos que hemos separado por comas los distintos precios, mientras
que no hemos puesto nada entre las existencias de cada cereal. El uso de
comas es opcional (al igual que lo es en la declaración de los elementos de un
conjunto en la sección SETS). Si ahora volvemos a “resolver” el problema
Página | 21
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
veremos que las constantes ya tienen su valor asignado, y que sólo quedan las
variables Sacos, que son las auténticas variables del problema:
Variable Value
EXISTENCIAS( AVENA) 50000.00
EXISTENCIAS( MAIZ) 80000.00
EXISTENCIAS( CEBADA) 40000.00
EXISTENCIAS( MIJO) 10000.00
PRECIO( 1) 9.000000
PRECIO( 2) 12.00000
PRECIO( 3) 6.200000
SACOS( 1) 1.234568
SACOS( 2) 1.234568
SACOS( 3) 1.234568
Existencias = 10000;
DATA:
Cereal = Avena Maiz Cebada Mijo;
Existencias = 50000 80000 40000 10000;
Precio = 9, 12, 6.20;
ENDDATA
Página | 22
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
Nos falta introducir la cantidad de cada cereal que contiene cada tipo de
pienso. Estas cantidades no están asociadas ni a los cereales ni a los piensos,
sino a las parejas de ambos. Para ello hemos de definir el conjunto de tales
parejas. La forma de hacerlo es la siguiente:
SETS:
Cereal:Existencias;
Pienso/1..3/: Precio, Sacos;
Pareja(Pienso, Cereal): Cantidad;
ENDSETS
DATA:
Cereal = Avena Maiz Cebada Mijo;
Cantidad = 25 25 0 0
0 20 20 10
20 0 30 0;
Existencias = 50000 80000 40000 10000;
Precio = 9, 12, 6.20;
ENDDATA
Página | 23
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
INIT:
sacos = 1000;
ENDINIT
2.6. ECUACIONES CON CONJUNTOS
Veamos ahora cómo introducir las ecuaciones de un modelo cuando los datos
están expresados en términos de conjuntos. Para el ejemplo que estamos
considerando tendríamos que escribir:
SETS:
Cereal:Existencias;
Pienso/1..3/: Precio, Sacos;
Pareja(Pienso, Cereal): Cantidad;
ENDSETS
DATA:
Cereal = Avena Maiz Cebada Mijo;
Cantidad = 25 25 0 0
0 20 20 10
20 0 30 0;
Existencias = 50000 80000 40000 10000;
Precio = 9, 12, 6.20;
ENDDATA
Página | 24
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
Así, si queremos exigir que todas las variables del problema sean
enteras podemos escribir:
@For(Pienso(p): @GIN(Sacos(p)));
calcula la suma de cidj para todo i del conjunto A y todo j del conjunto B.
Los bucles pueden recorrer conjuntos de pares, ternas etc., en cuyo
caso hemos de introducir tantas variables como componentes tiene el
conjunto. Por ejemplo, si queremos sumar todas las cantidades para
todo pienso y todo cereal, podemos escribir:
@Sum(Pareja(p, c): Cantidad(p, c))
SETS:
Ciudad/C1..C5/:Distancia,Demanda;
Extranjera(ciudad)/C4,C5/:x;
Carretera(Ciudad, Ciudad)|(&1 #LT# &2):y;
ENDSETS
DATA:
Distancia = 0, 50, 1150, 1200, 1500;
Demanda =1000, 2300, 800, 3000, 900;
ENDDATA
SETS:
Lejana(Ciudad)|(Distancia(&1)#GE#1000):z;
ENDSETS
Aquí hemos definido un conjunto de cinco ciudades C1, C2, C3, C4, C5,
cada una de las cuales tiene asociada una distancia y una demanda.
A continuación, definimos un subconjunto formado por las ciudades
extranjeras, cuyos elementos son C4, C5. Para definir un subconjunto
escribimos su nombre seguido del nombre del conjunto entre paréntesis.
Esto significa que, por ejemplo,
@Sum(Ciudad(c):Demanda(c))
Página | 26
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
Componentes Precio de
Producto Venta
C1 C2
(S/./unid)
P1 1 2 4
P2 3 1 3
Disponibilidad
15000 10000
(unid)
∑ X i∗Precio de venta
i=1
DATA:
PV=4 3;
DISP=15000 10000;
CANT=1 2 3 1;
ENDDATA
MAX=@SUM(PROD:PV*X);
@FOR(COM(J):@SUM(PROD(I):CANT(I,J)*X(I))<=DISP(J));
Página | 27
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
Model Class: LP
Total variables: 2
Nonlinear variables: 0
Integer variables: 0
Total constraints: 3
Nonlinear constraints: 0
Total nonzeros: 6
Nonlinear nonzeros: 0
Costo de Compromiso
Mes
Producción(S/./unid) mensual (unid)
1 100 300
2 150 350
Página | 28
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
3 200 400
∑ X i∗Costo de producción
i=1
∑ X i ≤ ∑ Disponibilidad i
i=1 i=1
∑ X i ≤ 700
i=1
DATA:
CPROD=100 150 200;
DISP=700;
REQ=300 350 400;
ENDDATA
MIN=@SUM(MES:CPROD*X);
@FOR(MATRIZ(I,J):@SUM(@FOR(MES(I):X(I)))<=@SUM(@FOR(MATRIZ(I,J):
REQ(J))));
@FOR(MES(I):X(I)<=DISP);
END
Página | 29
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
DESDE AL CLIENTE
1 2 3
4
(dólares) (dólares) (dólares)
(dólares)
Fabrica 1 65 63 62
Fabrica 2 64
Fabrica 3 68 67 65
62
63 60 59
60
Sujeto a:
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
Página | 30
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
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
Página | 31
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
Departamento S1 S2
Mezcla 2 1
Purificación 1 2
∑ X i∗Precio de venta
i=1
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);
END
Model Class: LP
Total variables: 2
Nonlinear variables: 0
Integer variables: 0
Total constraints: 5
Nonlinear constraints: 0
Total nonzeros: 8
Nonlinear nonzeros: 0
Página | 33
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
Página | 34
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
SETS:
PRODUCTO/1..2/:PRECIO,COSTOINV;
MES/FEB MAR/:DIAS;
PLANTA/1..2/;
PROCESO/1..2/;
REGION/1..2/;
PRRREG(PRODUCTO,REGION):INV;
CADENA1(PRODUCTO,MES,PLANTA,PROCESO,REGION):X;
CADENA2(PRODUCTO,MES,REGION): DEMANDA ;
CADENA3(PRODUCTO,PLANTA,PROCESO):COSTOPROD,CANTPROD;
CADENA6(PRODUCTO,PLANTA,REGION):COSTOTRANSP;
ENDSETS
DATA:
DEMANDA=3600 4900
6300 4200
4500 5100
5400 6000;
DIAS=20 23;
COSTOINV=3 4;
COSTOPROD=62 59 61 65
78 85 89 86;
CANTPROD=100 140 130 110
120 150 160 130;
PRECIO=83 112;
COSTOTRANSP=0 9 9 0
0 7 7 0;
ENDDATA
Página | 35
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
@FOR(CADENA2(I,FEB,M):
(@SUM(PROCESO(L):@SUM(PLANTA(K):X(I,FEB,K,L,M)))-
INV(I,M))<=DEMANDA(I,FEB,M));
@FOR(CADENA2(I,MAR,M):(@SUM(PROCESO(L):@SUM(PLANTA(K):X(I,MAR,K,L,M)))
+INV(I,M))<=DEMANDA(I,MAR,M));
@FOR(PRRREG(I,M):INV(I,M) <=1000);
@FOR(MES(J):@SUM(CADENA3(I,K,L):@SUM(REGION(M):X(I,J,K,L,M)) /
CANTPROD(I,K,L) )<=DIAS(J));
END
PRRREG(PRODUCTO,REGION):INV;
CADENA1(PRODUCTO,MES,PLANTA,PROCESO,REGION):X;
CADENA2(PRODUCTO,MES,REGION): DEMANDA ;
CADENA3(PRODUCTO,PLANTA,PROCESO):COSTOPROD,CANTPROD;
CADENA6(PRODUCTO,PLANTA,REGION):COSTOTRANSP;
ENDSETS
DATA:
DEMANDA=@OLE('D:\felix\Desktop\COMPANY_INVES_OPERA.xlsx');
DIAS=@OLE('D:\felix\Desktop\COMPANY_INVES_OPERA.xlsx');
COSTOINV=@OLE('D:\felix\Desktop\COMPANY_INVES_OPERA.xlsx');
COSTOPROD=@OLE('D:\felix\Desktop\COMPANY_INVES_OPERA.xlsx');
CANTPROD=@OLE('D:\felix\Desktop\COMPANY_INVES_OPERA.xlsx');
PRECIO=@OLE('D:\felix\Desktop\COMPANY_INVES_OPERA.xlsx');
COSTOTRANSP=@OLE('D:\felix\Desktop\COMPANY_INVES_OPERA.xlsx');
@OLE('D:\felix\Desktop\COMPANY_INVES_OPERA.xlsx')=X;
ENDDATA
Página | 36
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
-
@SUM(CADENA6(I,K,M):COSTOTRANSP(I,K,M)*@SUM(MES(J):@SUM(PROCESO(L):X(I
,J,K,L,M)))) );
@FOR(CADENA2(I,FEB,M):
(@SUM(PROCESO(L):@SUM(PLANTA(K):X(I,FEB,K,L,M)))-
INV(I,M))<=DEMANDA(I,FEB,M));
@FOR(CADENA2(I,MAR,M):(@SUM(PROCESO(L):@SUM(PLANTA(K):X(I,MAR,K,L,M)))
+INV(I,M))<=DEMANDA(I,MAR,M));
@FOR(PRRREG(I,M):INV(I,M) <=1000);
@FOR(MES(J):@SUM(CADENA3(I,K,L):@SUM(REGION(M):X(I,J,K,L,M)) /
CANTPROD(I,K,L) )<=DIAS(J));
END
Solución en Lingo:
Global optimal solution found.
Objective value: 175440.0
Infeasibilities: 0.000000
Total solver iterations: 2
Elapsed runtime seconds: 0.08
Model Class: LP
Total variables: 36
Nonlinear variables: 0
Integer variables: 0
Total constraints: 23
Nonlinear constraints: 0
Página | 38
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
Página | 39
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
Sea:
Xi: la cantidad de ingredientes del PRODUCTO i
(i=airtex,extendex,resistex) que se puede usar.
3
∑ X i ∗ganacia ( i )
FUNCION OBJETIVO: i=1 ;donde ganancia es la
utilidad ya sea del Producto airtex, extendex, resistex.
Entonces: MAX Z = 7*X1 + 7*X2 + 6*X3
Página | 40
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
SUJETO A:
3
∑ X i >=COMPROMISO ( i )
i=1
El programa en LINGO:
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
Infeasibilities: 0.000000
Total solver iterations: 2
Elapsed runtime seconds: 0.03
Model Class: LP
Total variables: 3
Nonlinear variables: 0
Integer variables: 0
Total constraints: 8
Nonlinear constraints: 0
Total nonzeros: 18
Nonlinear nonzeros: 0
Página | 42
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
NUTRIENTE(mg / 100g)
PROTEINA HIERRO TIACINA TIAMINA VITNA C GRASA
ESPAGUETI 5000 1.1 1.4 0.18 0.0 5000
PAVO 29300 1.8 5.4 0.06 0.0 5000
PAPAS 5300 0.5 0.9 0.06 10 7900
ESPINACAS 3000 2.2 0.5 0.07 28 300
PASTEL 4000 1.2 0.60 0.15 3.0 14300
Solución:
Hacemos nuestra tabla
NUTRIENTE(mg/100g)
POTAJE
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
Página | 43
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
5
∑ X i ∗nutriente j , i >= MINIMO j
i=1 , donde NUTRIENTEj,i . j ,es la cantidad de
nutriente ya Sea de proteína, 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 máximo que debe existir.
Por lo tanto:
El programa en LINGO:
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
Model Class: LP
Total variables: 6
Página | 45
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
Nonlinear variables: 0
Integer variables: 0
Total constraints: 13
Nonlinear constraints: 0
Total nonzeros: 40
Nonlinear nonzeros: 0
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))
<mailto:0.15*@sum(Dinero(i):cantidad(i))>;
END
2 5 3 2 1 2 380
Precio
65 70 55 45
de venta
Solución:
Xij: unidades producidas por tipo de producto j (1, 2, 3, 4), utilizando cada
maquina i (1, 2)
Solución en LINGO:
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
Página | 49
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
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
Model Class: LP
Total variables: 8
Nonlinear variables: 0
Integer variables: 0
Total constraints: 3
Nonlinear constraints: 0
Total nonzeros: 16
Nonlinear nonzeros: 0
Página | 50
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
14:00 - 18:00 7
18:00 - 20:00 12
20:00 - 24:00 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
Solución en LINGO:
Página | 52
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
Model Class: LP
Total variables: 6
Nonlinear variables: 0
Integer variables: 0
Total constraints: 7
Nonlinear constraints: 0
Total nonzeros: 18
Nonlinear nonzeros: 0
5 6.7 0.07 2
6 13 0.35 4
La solución en LINGO:
SETS:
TIPO/1..4/:INV;
CAR/1..6/:INT,X;
MATRIZ1(TIPO,CAR):DAT;
ENDSETS
Página | 55
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
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
Model Class: LP
Total variables: 6
Nonlinear variables: 0
Integer variables: 0
Total constraints: 0
Nonlinear constraints: 0
Total nonzeros: 0
Nonlinear nonzeros: 0
Variable Value
INV( 1) 2000.000
INV( 2) 400.0000
INV( 3) 10000.00
INV( 4) 500.0000
INT( 1) 8.500000
INT( 2) 9.000000
INT( 3) 8.500000
INT( 4) 14.30000
INT( 5) 6.700000
INT( 6) 13.00000
X( 1) 0.000000
X( 2) 0.000000
X( 3) 0.000000
X( 4) 0.000000
X( 5) 0.000000
X( 6) 0.000000
DAT( 1, 1) 1.000000
DAT( 1, 2) 1.000000
DAT( 1, 3) 1.000000
DAT( 1, 4) 1.000000
DAT( 1, 5) 1.000000
DAT( 1, 6) 1.000000
DAT( 2, 1) 0.2000000E-01
DAT( 2, 2) 0.1000000E-01
DAT( 2, 3) 0.3800000
DAT( 2, 4) 0.4500000
Página | 56
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
DAT( 2, 5) 0.7000000E-01
DAT( 2, 6) 0.3500000
DAT( 3, 1) 8.000000
DAT( 3, 2) 2.000000
DAT( 3, 3) 5.000000
DAT( 3, 4) 6.000000
DAT( 3, 5) 2.000000
DAT( 3, 6) 4.000000
DAT( 4, 1) 0.000000
DAT( 4, 2) 0.000000
DAT( 4, 3) 0.000000
DAT( 4, 4) 1.000000
DAT( 4, 5) 0.000000
DAT( 4, 6) 1.000000
Página | 57
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
Sucursal
Proveedor Jesús Callao San Los
María Luis Olivos
Ventanilla 6 2 6 7
Villa El Salvador 4 9 5 3
Chorrillos 8 8 1 5
Modificación:
Supongamos que antes de llegar a las sucursales se utilizarán dos
almacenes (en San Martin de Porres y en San Miguel) que
recogerán todas las compras hechas en los 3 proveedores y luego
las distribuirán a las cuatro sucursales.
1 Jesús María
Página | 58
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
1 Ventanilla
1 San Miguel 2 Callao
2 Villa El Salvador
2 San Martin de Porres 3 San Luis
3 Chorrillos
4 Los Olivos
Almacén
Proveedor San Miguel San Martin de Porres
Ventanilla 3 5
Villa El Salvador 4 2
Chorrillos 4 3
Sucursal
Almacén Jesús Callao San Luis Los
María Olivos
San Miguel 4 3 6 4
San Martin de Porres 7 5 4 5
Variables de decisión:
Xij: Cantidad de pescado transportada desde i a j. i = 1, 2, 3 j = 1, 2
Yjk: Cantidad de pescado transportada desde j a k. j = 1, 2 k = 1, 2, 3, 4
Función Objetivo:
Zmin = (3X11 + 4X21 + 4X31) + (5X12 + 2X22 + 3X32) +
(4Y11 + 7Y21) + (3Y12 + 5Y22) + (6Y13 + 4Y23) + (4Y14 + 5Y24)
Restricciones:
Por demanda de sucursales:
Página | 59
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
Modelo en Lingo:
SETS:
proveedor:oferta;
almacen:capacidad;
sucursal:demanda;
flete1(proveedor,almacen):costo1,volumen1;
flete2(almacen,sucursal):costo2,volumen2;
ENDSETS
DATA:
proveedor=o1 o2 o3;
almacen=a1 a2;
sucursal=s1 s2 s3 s4;
oferta=30 25 21;
capacidad=60 50;
demanda=15 17 22 12;
costo1=3 5
4 2
4 3;
costo2=4 3 6 4
7 5 4 5;
ENDDATA
MIN=@sum(flete1(i,j):costo1(i,j)*volumen1(i,j))
+@sum(flete2(j,k):costo2(j,k)*volumen2(j,k));
@for(sucursal(k):@sum(almacen(j):volumen2(j,k))=demanda(k));
@for(proveedor(i):@sum(almacen(j):volumen1(i,j)<=oferta(i));
@for(almacen(j):@sum(proveedor(i):volumen1(i,j))=@sum(sucursal(k):volu
men2(j,k)));
END
Página | 60
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
2. Una fábrica de
papel la Quality Paper Corporation, tiene 10 molinos de papel para
surtir a 1000 clientes. Usa 3 tipos alternativos de máquinas y 4 tipos
de materia prima para hacer 5 tipos diferentes de papel.
Página | 61
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
Página | 62
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
TIPO
DE
PAPE
L MP 2 3 4 1 2 3 4 1 2 3 4
(K) =1
1 0.25 0.40 0.50 0.45 0.22 0.25 0.30 0.35 0.22 0.55 0.44 0.30
2 0.23 0.35 0.25 0.36 0.40 0.35 0.25 0.30 0.30 0.25 0.35 0.20
3 0.22 0.50 0.30 0.48 0.35 0.20 0.33 0.25 0.25 0.24 0.40 0.25
4 0.33 0.45 0.60 0.42 0.33 0.40 0.30 0.28 0.20 0.26 0.45 0.35
5 0.27 0.36 0.48 0.40 0.27 0.33 0.36 0.38 0.33 0.34 0.37 0.40
Página | 63
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
FABRICA(i) 1 2 3
1 5000 2000 3000
2 3000 5000 7000
3 5500 4500 6000
4 7500 7000 8000
5 2000 2500 3000
FA MQ 2 3 1 2 3 1 2 3 1 2 3 1 2 3
B(i) 1
1 1.5 2.3 3.1 1.5 1.6 1.50 1.2 1.25 1.2 1.23 1.50 155 1.2 2.2 3.2
5 2 5
2 1.7 2.7 3.3 3.5 3.2 3.5 3.5 2.5 2.0 2.25 2.20 2.50 1.4 2.2 3.5
3 2.2 2.25 3.35 3.5 3.6 2.50 2.2 1.8 1.9 2.2 1.2 1.25 1.6 1.5 1.4
5 5
4 1.5 1.65 1.2 1.3 1.20 1.6 1.5 1.5 1.6 1.10 1.15 1.25 1.2 1.25 1.10
5 5 0
5 1.25 1.2 1.10 1.1 1.10 1.2 1.3 1.4 1.5 1.5 1.4 1.2 1.3 1.2 1.10
5
Página | 64
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
2 0.2 0.4 0.2 0.4 0.2 0.1 0.3 0.5 0.2 0.1 0.6 0.4 0.3 0.5 0.4
2 0.20 0.30 0.10 0.40 0.50 0.35 0.30 0.40 0.45 0.35
3 0.45 0.40 0.35 0.55 0.50 0.60 0.65 0.70 0.85 0.80
4 0.75 0.65 0.70 0.80 0.60 0.40 0.45 0.35 0.50 0.55
5 0.90 0.95 0.85 0.75 0.80 0.10 0.25 0.15 0.20 0.30
Variables de decisión:
D jk= Número de unidades del tipo de papel k demandadas por el cliente j
Página | 65
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
Sujeto a:
c
∑ c il =∑ d jk ; donde l=1 , … ,3 , k =1 , … ,5 , j=1, … , 1000
il kl jk
Modelo en Lingo:
!PLANTA(I=10) CLIENTE(J=1000) PAPEL(K=5) MP(M=4) MAQUINA(L=3);
SETS:
PLANTA/1..2/:;
CLIENTE/1..2/:;
PAPEL/1..2/:;
MP/1..1/:;
MAQUINA/1..1/:;
!DEMANDA DE PAPEL D: CADA- CLIENTE J- REQUIERE PAPEL DE TIPO K;
CLIPAP(CLIENTE,PAPEL):D;
!REQUERIMIENTO DE MP POR UNIDAD DE PAPEL R: UNIDADES DE MP (M)POR
UNIDAD DE- PAPEL TIPO K- PRODUCIDO EN MAQ L;
PAPMAQMP(PAPEL,MAQUINA,MP):R;
!MP(M) DISPONIBLE EN C/PLANTA(I) ;
PLAMP(PLANTA,MP):RR;
!TIEMPO DE MAQ POR UNID DE PAPEL ;
PAPMAQ(PAPEL,MAQUINA):C;
! TIEMPO DE MAQ DISPONIBLE POR C/ MAQ ;
PLAMAQ(PLANTA,MAQUINA):CC;
Página | 66
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
R=2 3;
RR=100 200 ;
C=.8 .9 ;
CC=5000 800;
P=3 4 2.5 5 ;
T=.5 1 2 3 1 2 3 4;
ENDDATA
MIN=@SUM(PLAPAPMAQ:P*X)+@SUM(PLACLIPAP:T*Y);
!PRODUCCION MENOR = QUE LA MP TOTAL;
@FOR(PLAMP(I,M):@SUM(PAPMAQMP(K,L,M):R(K,L,M)*X(I,K,L))<=RR(I,M));
! TIEMPO DISPONIBLE PARA LA PRODUCCION ;
@FOR(PLAMAQ(I,L):@SUM(PAPMAQ(K,L):C(K,L)*X(I,K,L)) <=CC(I,L));
!PRODUCCION MAYOR QUE LA DEMANDA ;
@FOR(CLIPAP(J,K):@SUM(PLAPAPMAQ(I,K,L):X(I,K,L))>=D(J,K));
END
Solución en Lingo:
Global optimal solution found.
Objective value: 241.6667
Infeasibilities: 0.000000
Total solver iterations: 3
Elapsed runtime seconds: 0.32
Model Class: LP
Total variables: 12
Nonlinear variables: 0
Integer variables: 0
Total constraints: 9
Nonlinear constraints: 0
Total nonzeros: 28
Nonlinear nonzeros: 0
TABLA A
1 50 200
2 50 250
3 100 150
WALT
DISTRITO COOLEY WHITMAN
1 1 2
2 2 1
3 1 1
Solución:
Primero vamos a encontrar la función objetivo, la escuela busca minimizar
la distancia total recorrida por sus estudiantes desde su distrito a la
escuela y cuantos estudiantes son mayorías 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 221)+1*( estudiantes 311+ estudiantes 321)+2*( estudiantes 112+
estudiantes 222)+1*( estudiantes 221+ estudiantes 222)+1*( estudiantes 312+1*
estudiantes 322)
Solución con LINGO:
SETS:
Página | 69
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
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))));
@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
Pro Pro Pro Pro Pro Pro Pro Pro Pro Pro Pro Pro
d1 d2 d3 d1 d2 d3 d1 d2 d3 d1 d2 d3
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
Capacidad de producción
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
Página | 71
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
TACNA CUZCO
Solución:
FUNCION OBJETIVO:
C CZ L P4
∑ ∑ ∑ ∑ X I , J , K , L∗PRECIO I , J , K , L
MAX I= A , J =TC K=SM L=P 1 , donde PRECIO es el precio
de venta de cada producto.
SUJETO A:
Capacidad de producción:
Página | 72
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
L P4
∑ ∑ X I ,J ,K ,L
K=SM , L= P 1
Para I=A,J=P1:
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 ,J ,K ,L
I= A , K=SM
Página | 74
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
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));
Página | 75
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
END
La solución respectiva:
Global optimal solution found.
Objective value: 8260.000
Total solver iterations: 20
Página | 76
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
Solución:
El modelo en LINGO es:
Model:
Sets:
Tipos_de_inversion/acciones, fondos_mutuos/:tope_maximo;
cantidad(tipos_de_inversion): interes, monto;
Endsets
Data:
interes= 0.1, 0.08;
tope_maximo = 0.7, 0.7;
Enddata
MAX = @sum(cantidad: monto*interes);
@for(tipos_de_inversion(i) :monto(i)<=tope_maximo(i));
monto(acciones)<=2*monto(fondos_mutuos);
@sum(cantidad:monto)=1;
End
Página | 77
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
4.1. Problema 1
Model:
Sets:
materia_prima/1..2/:horas disponibles;
Horas(productos, materia_prima):hora;
Endsets
Data:
hora= 2, 5, 4, 6;
Enddata
Página | 78
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
4.2. Problema 2
TABLA
SOLUCIÓN:
Yi = 1 si se utiliza la planta i.
0 en caso contrario.
i =1, 2, 3.
FUNCION OBJETIVO:
RESTRICCIONES:
X1 + X2 + X3 >= 12 000
Página | 79
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
X1 <= 6 000Y1
X2 <= 7 000Y2
X3 <= 6 000Y3
Sets:
planta/1..3/:x,y,cf,cv,cap;
Endsets
Data:
cf = 80,40,30;
cv = 20,25,30;
cap = 6000,7000,6000;
Enddata
Min =@sum(planta(i):cf(i)*y(i))+@sum(planta(i):cv(i)*x(i));
!restriccion de la demanda;
@sum(planta(i):x(i))>=12000;
Página | 80
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
MODEL:
END
SOLUCIÓN LINGO:
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
4.3. Problema 3
TABLA 2 TABLA 3
Distrito Blancos Negros
1 80 30
2 70 5
3 90 10
4 50 40
5 60 30
Distrito Escuela de Escuela de
bachillerato 1 bachillerato 2
1 1 2
2 0.5 1.7
3 0.8 0.8
4 1.3 0.4
5 1.5 0.6
Solución:
0, si no es así.
Página | 82
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
Para hallar la función objetivo tengo que sumar la cantidad de blancos y negros
que hay en cada distrito y después multiplicarlo por la distancia que hay de ese
distrito a cada escuela.
FUNCIÓN OBJETIVO
Min z = 110 X11+220 X12+37.5 X21+127.5 X22+80 X31+80 X32 +117 X41 +36 X42 +135
X51 +54 X52
RESTRICCIONES:
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)
Página | 83
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
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));
Página | 84
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
@FOR(distrito(i):@SUM(escuela(J):x(I,J))=1);
La distancia mínima total que todos los estudiantes de Metrópolis tienen que
recorrer hasta la escuela es 398.5 millas.
Página | 85
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
4.4. Problema 4
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
Página | 86
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
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
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;
Página | 87
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
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:
Página | 88
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
4.5. Problema 5
3.Canfranc 55.000 88
Página | 89
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
Página | 90
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
MODEL:
!Definicion de Conjuntos;
SETS:
La variable y indica donde se tiene que construir una planta Industrial. Sus valores
serán binarios:
0=no se construye,
1=si se Construye;
links(fuente,mercado): costo_transporte,volumen;
ENDSETS
DATA:
Página | 91
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
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)) ;
@FOR(fuente(i):
@SUM (mercado(j):demanda(j)*volumen(i,j))<=capacidad(i));
@FOR(mercado(j):@SUM(fuente(i):volumen(i,j)) = 1);
@FOR(fuente:@BIN(y));
@FOR(fuente(i):y(i)<1);
!Restricciones de no negatividad;
@FOR(links(i,j):volumen(i,j)>=0);
Página | 92
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
END
4.6. Problema 6
Tabla N° 1
Tabla N°2
BELLAVISTA 2 3 2 3
Model:
Sets:
fabrica/fpa,fga,fpb,fgb,feb/:capacidad,costo_construccion, costo_manufactura,
construccion;
region/r1,r2,r3,r4/:requerimiento;
Endsets
Data:
costo_manufactura = 5, 4, 5, 4, 3.5;
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(fabrica(i):@sum(rutas(i,j) : cantidad(i,j))<=capacidad(i));
@for(fabrica:@bin(construccion));
End
Página | 94
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
4.7. Problema 7
VENDIDO EN EL
AÑO 1 AÑO 2 AÑO 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:
VARIABLES: i = 1,2,3,4,5,6
j = 1,2,3
0 en caso contrario
FUNCION OBJETIVO:
MAX Z = B( 1) + B( 2) + B( 3)
Donde:
15X(1,1) + 16X(2,1) + 22X(3,1) + 10X(4,1) + 17X(5,1) + 19X(6,1) = B(1)
20X(1,2) + 18X(2,2) + 30X(3,2) + 20X(4,2) + 19X(5,2) + 25X(6,2) = B(2)
24X(1,3) + 21X(2,3) + 36X(3,3) + 30X(4,3) + 22X(5,3) + 29X(6,3) = B(3)
Página | 95
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
RESTRICCIONES:
RESTRICCION 1: Cada bien solo se puede vender una vez:
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
RESTRICCION 2: Conservación del flujo de efectivo regular:
15X(1,1) + 16X(2,1) + 22X(3,1) + 10X(4,1) + 17X(5,1) + 19X(6,1) >= 20
20X(1,2) + 18X(2,2) + 30X(3,2) + 20X(4,2) + 19X(5,2) + 25X(6,2) >= 30
24X(1,3) + 21X(2,3) + 36X(3,3) + 30X(4,3) + 22X(5,3) + 29X(6,3) >= 35
FORMULACION EN LINGO:
Sets:
bien/1..6/;
year/1..3/:a,b;
matriz(bien,year):precio,x;
Endsets
Data:
a=20,30,35;
precio=15,20,24,
16,18,21,
22,30,36,
10,20,30,
Página | 96
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
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));
SOLUCIÓN EN LINGO:
Página | 97
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
4.8. Problema 8
SOLUCIÓN:
Página | 98
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
FUNCIÓN 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
Página | 99
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
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;
costo3 = 100;
carbono3 = 0.03;
molibdeno3 = 0.09;
Enddata
!funcion objetivo;
@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;
@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;
@sum(lingote(i):x(i))=1;
@sum(aleacion(j):y(j))>0;
@sum(desperdicio(k):w(k))>0;
End
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
5.1. Problema 1
La Fábrica de Calzado Flores produce y vende calzados de verano
exclusivos. Uno de los factores más importantes para poder realizar
una venta es el servicio rápido de Flores. Flores vende en 6 ciudades:
Piura, Sullana, Sechura, Paita, Morropón y Ayabaca. Se proyectan las
ventas anuales de pares de zapatos de acuerdo a la presencia de un
representante de ventas dentro de 55 Km de una ciudad (tabla 1).
La ganancia por cada par de zapato es de S/. 70. El costo anual por
representante de venta es de S/. 8 400. Flores debe determinar cuántos
representantes colocar en cada uno de sus mercados. Solo se
consideran Piura, Ayabaca, Paita y Sechura como bases para
representantes de ventas, ya que en estas se encuentran las fábricas.
Se dispone de 10, 8, 6, y 9 representantes en las bases: Piura,
Ayabaca, Paita y Sechura respectivamente y se requieren 4, 5, 3 ,2 ,1 ,4
representantes de venta por mercado Piura, Ayabaca, Paita, Sechura,
Morropón y Sullana respectivamente. La tabla 2 muestra las distancias
en Km.
Se necesita maximizar las ganancias anuales.
TABLA 1
TABLA 2
Página | 101
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
SOLUCIÓN:
Definición de variables:
X i, j = Cantidad de representantes de la Fabrica j en el mercado de la ciudad i.
Definición de parámetros:
∑ ∑ X i , j ≤ REPRE j
j=1 i=1
∑ ∑ X i , j ≥ REPREMIN i
i=1 j=1
Página | 102
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
6 4
∑ ∑ NO i ×T i , j =W i
i=1 j=1
6 4
∑ ∑ SI i × X i , j=Y i
i=1 j=1
SALARIO DE REPRESENTANTES
6 4
8400 × ∑ ∑ X i , j=COSTO
i =1 j=1
FUNCION OBJETIVO
6 6
MAX=70× ∑ W i + ∑ Y i−COSTO
i=1 i=1
INTERPRETACIÓN
FUNCION OBJETIVO:
Lo que pide el problema es maximizar las utilidades por cada año de
operación por lo cual se analizaran los ingresos y egresos.
Ingresos:
Los ingresos son proporcionales a la cantidad de pares de zapatos vendidos.
Ayabaca 40 120X22 40 40
Morropón 90 90 90 110X54
INGRESO=70∗(130 X 11 +70+70+130 X 14+ 40+120 X 22 +40+ 40+80+ 80+130 X 33 +130 X 34 +110 X 41+
Egresos:
Los egresos serian lo que se paga a cada uno de los representantes esto sería:
Página | 104
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
MAX=INGRESO −COSTO
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 X
MAX=700 X 11 +700 X 14 +700 X 33 +700 X 34−700 X 41−700 X 43−700 X 44 44−700 X 54 +140 X 61 +140 X 62 +14
RESTRICCIONES:
Cantidad mínima de los representantes de cada fábrica
X 11 + X 41 + X 61 <¿ 1 0
X 22 + X 62 <¿ 8
X 33 + X 43+ X 63< ¿ 6
X 14 + X 34 + X 44 + X 54< ¿ 9
Cantidad mínima de representante por mercado
X 11 + X 14 >¿ 4
X 22 >¿ 5
X 33 + X 34> ¿3
X 54 > ¿1
X 61 + X 62 + X 63 >¿ 4
IMPLEMENTACIÓN EN LINGO:
En LINGO se realizan implementaciones muy largas y tediosas, pero estas
siempre siguen un formato de suma o repetición por filas y columnas.
DEFINICIÓN DE SETS:
SETS:
MERCADOS/1..6/:SI,NO,W,Y,REPREMIN;
FABRICAS/1..4/:REPRE;
MERCAFABRI(MERCADOS,FABRICAS):DIST,X,H,T,Z;
Página | 105
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
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 demás sentencias son análogas, solo que DIST(I,J)#GT#55; indica que
solo se realizará la operación si DIST(I,J)>55.
∑ ∑ X i , j ≤ REPRE j
j=1 i=1
Página | 106
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
6 4
∑ ∑ X i , j ≥ REPREMIN i
i=1 j=1
∑ ∑ NO i ×T i , j =W i
i=1 j=1
∑ ∑ SI i × X i , j=Y i
i=1 j=1
Salario De Representantes
6 4
8400 × ∑ ∑ X i , j=COSTO
i =1 j=1
!SALARIO DE REPRESENTANTES;
@SUM(MERCAFABRI(I,J):X(I,J))*8400=COSTO;
Función Objetivo
(∑ )
6 6
MAX=70× W i+ ∑ Y i −COSTO
i =1 i=1
Página | 107
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
MAX=70*(@SUM(MERCADOS(I):W(I))+@SUM(MERCADOS(I):Y(I)))-COSTO;
Definición de 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');
@OLE('F:\VII CICLO\OPE\LABO \DATA1.xlsx')=X;
ENDDATA
Un paso sencillo pero oculto que debe de realizarse antes en las hojas de
cálculo es definir los nombres de los rangos de las distintas colecciones
Página | 108
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
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');
Página | 109
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
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;
Página | 110
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
END
TABLA 1
Trujill 1 8 10 1 9 9 1 8 8
o
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
Página | 112
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
Trujillo 2 1 4
Lima 1 1 5
Tacna 2 2 9
SOLUCIÓN:
Definición de parámetros:
X i, j, k + Sobrante i, k = Máximo i, k
j =1
Página | 113
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
i = 1, 2, 3 (Sucursal).
3
i 1, 2, 3 (Sucursal)
3 3 3
X i , j ,k ≤ Presupuesto Total
I=1 j=1 k =1
X i , j ,k ≥ InvMínima
Tasai,j,k ≥ 0.07
FUNCIÓN OBJETIVO
3 3 3
MAX=∑ ∑ ∑ Tasai , j ,k x X i , j , k
i=1 j=1 k=1
El LINGO respectivo:
Página | 114
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
MODEL PRESUPUESTOS:
SETS:
SUCURSAL /TRUJILLO,LIMA,TACNA/:;
PROYECTO /1..3/: ;
PERIODO /1..3/: ;
SUCURSAL_PROYECTO_PERIODO (SUCURSAL,PROYECTO,PERIODO):TASA,
INVMAXIMA, ASIGNACION;
ENDSETS
DATA:
! Funcion Objetivo;
MAX = FO;
@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) ));
@FOR(SUCURSAL_PROYECTO_PERIODO(I,J,K)|TASA(I,J,K)#GT#0.07: ASIGNACION(I,J,K)>=
INVMINIMA);
! Restriccion de prespuesto disponible;
DATA:
Página | 115
@OLE('J:\OPE\LABO\
DATA2.xlsx','FO','SOBRANTE','ASIGNACION' )=FO,SOBRANTE,ASIGNACION;
ENDDATA
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
PROYECTO 1
1 2 3
TRUJILLO 10 9 8 PROYECTO 2
LIMA 5 4 9 1 2 3
TRUJILLO 4 0 7
TACNA 6 6 6
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
Página | 116
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
1 8 10
Arequipa 2 6 5
3 7 9
1 5 7
Cuzco 2 8 10
3 9 4
1 10 6
Trujillo 2 6 12
3 15 6
Solución:
Página | 117
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
Función 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
Restricciones:
RESTRICCIÓN DE USO MÍNIMO DE PRESUPUESTO POR SUSCURSAL
Arequipa: X11 +X12 +X13 ≥ Minimo1
Cuzco: X21 +X22 +X23 ≥ Minimo2
Trujillo: X31 +X32 +X33 ≥ Minimo3
Página | 118
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
Cuzco:
X21 ≤ InvMaxima21
X22 ≤ InvMaxima22
X23 ≤ InvMaxima23
Trujillo:
X31 ≤ InvMaxima31
X32 ≤ InvMaxima32
X33 ≤ InvMaxima33
RESTRICCION DE PRESUPUESTO DISPONIBLE
X11 +X12 +X13 +X21 +X22 +X23+ X31 +X32 +X33 ≤ PresupuestoTotal
Página | 119
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
PROGRAMACIÓN EN LINGO
Página | 120
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
Se activa la opción que permite mostrar sólo los valores distintos de cero
para que LINGO sólo muestre los valores de la variable ASIGNACION
distintos de cero, así:
Y en este último cuadro se puede ver la forma cómo tienen que ser
repartidos los fondos a las diversas sucursales de la compañía para
alcanzar una máxima 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 millón para el proyecto 1, 3 millones para el proyecto 2
y 6 millones para el proyecto 3.
Página | 121
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
Producto Producto Producto Producto Producto Producto Producto Producto Producto Producto Producto Producto
1 2 3 1 2 3 1 2 3 1 2 3
Fábrica A 12 15 17 11 12 15 14 12 13 15 13 12
Fábrica B 10 13 14 12 14 16 13 14 15 11 12 13
Fábrica C 12 11 13 10 11 13 11 13 14 12 13 14
Producto 1 75 65 70
Producto 2 60 70 80
Producto 3 65 75 75
Demanda:
Tacna Cuzco
Producto 1 73 67
Producto 2 58 72
Producto 3 67 74
Página | 122
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
Tacna Cuzco
Solución:
Xijkl: cantidad de productos elaborados en la fábrica “i”, que corresponde al tipo “j”,
distribuido en “k”, en la ciudad “l”
Donde:
₪ Tipo de fábrica: i= A, B, C
₪ Tipo de producto: j= P1, P2, P3
₪ Tipo de centro de distribución: k=supermercado (S), librería (L)
₪ Ciudades: l=Tacna (T), Cuzco (Cz)
Función objetivo:
C P3 L Cz
∑ ∑ ∑ ∑ Xijkl∗PRECIOijkl
i= A j=P 1 k=S l =T
Sujeto a:
Capacidad de producción:
L P3
∑ ∑ Xijkl
k=SM l= P 1
Demanda:
C L
∑ ∑ Xijkl
i= A k=S
∑∑ Xijkl
i= A j=P 1
MODEL:
SETS:
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;
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));
@FOR(PROCIU(J,L):@SUM(FPCC(I,J,K,L):X(I,J,K,L))>=DEMANDA(J,L));
@FOR(CENCIUDAD(K,L):@SUM(FPCC(I,J,K,L):X(I,J,K,L))<=CAPACIDAD2(K,L));
END
2) RESULTADOS
Página | 124
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
Fabrica A:
La empresa debe de distribuir las 75 unidades del producto 1 a la librería de la
ciudad de Tacna.
También debe distribuir 5 unidades del producto 2 al supermercado de la ciudad
del Cuzco y el resto (55 unidades) será enviada a la librería de la ciudad de
Tacna.
Además 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. Además tiene que distribuir 64 unidades a la librería de la ciudad del
Cuzco.
Además debe distribuir 3 unidades del producto 2 al supermercado de la ciudad
de Tacna. También 67 unidades al supermercado de la ciudad del Cuzco.
También 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.
Además de 2 unidades al supermercado de Cuzco.
También se debe distribuir 77 unidades del producto 2 a la librería del Cuzco.
También se debe distribuir 66 unidades del producto 3 al supermercado de
Tacna. Además de 9 unidades a la librería de la ciudad de Cuzco.
Página | 125
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
Holgura o Excedente
Vemos que si la restricción es exacta satisfecha como una igualdad, la holgura o
excedente valdrá cero y como no hay ningún número negativo en nuestro reporte
diremos que ninguna restricción es violada.
Precio Dual
El precio dual se puede interpretar como el monto en que la función objetivo
mejorará si el segundo miembro de la restricción 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 restricción 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 solución óptima automáticamente
tiene un costo reducido de 0.
En la interpretación 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 maximización o disminuirse en “a” unidades en
un problema de minimización para convertirse en una alternativa atractiva.
En nuestro ejerció podemos ver que ninguna restricción es violada ya que en el
análisis de Holgura y Excedente no hay ninguna variable negativa.
Página | 126
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
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 cálculo denominado PROBLEMA 1
d) Luego en la hoja de cálculo poner los datos del problema:
Página | 127
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
!PROBLEMA LINGO;
MODEL:
SETS:
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
Página | 128
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
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));
@FOR(PROCIU(J,L):@SUM(FPCC(I,J,K,L):X(I,J,K,L))>=DEMANDA(J,L));
@FOR(CENCIUDAD(K,L):@SUM(FPCC(I,J,K,L):X(I,J,K,L))<=CAPACIDAD2(K,L));
TACNA CUZCO
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
Página | 129
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
6. CONCLUSIONES
Página | 130
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
7. BIBLIOGRAFÍA
Página | 131