Professional Documents
Culture Documents
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 ..................................................................................................... 9
2.2.1. MENÚES........................................................................................................................... 9
2.2.2. FUNCIONES: ................................................................................................................. 12
2.3. INTRODUCCIÓN BÁSICA DE UN MODELO EN LINGO ............................................... 14
2.4. INTERPRETACIÓN DE LA SOLUCIÓN ............................................................................ 16
2.5. DEFINICIÓN DE CONJUNTOS ........................................................................................... 19
2.6. ECUACIONES CON CONJUNTOS .................................................................................... 24
2.7. MÁS SOBRE CONJUNTOS ................................................................................................ 25
3. CAPÍTULO 1: PROBLEMAS DE PROGRAMACIÓN LINEAL ............................................... 26
3.1. PROBLEMAS DE PRODUCCIÓN ...................................................................................... 26
3.2. PROBLEMAS DE MEZCLAS .............................................................................................. 39
3.3. PROBLEMAS DE FINANZAS ............................................................................................. 47
3.4. PROBLEMAS DE TRANSPORTE ...................................................................................... 57
3.5. PROBLEMAS DE INVERSIÓN ........................................................................................... 77
4. PROBLEMAS DE PROGRAMACIÓN ENTERA CON LINGO ............................................... 78
4.1. Problema 1 ............................................................................................................................. 79
4.2. Problema 2 ............................................................................................................................. 79
4.3. Problema 3 ............................................................................................................................. 82
4.4. Problema 4 ............................................................................................................................. 86
4.5. Problema 5 ............................................................................................................................. 89
4.6. Problema 6 ............................................................................................................................. 93
4.7. Problema 7 ............................................................................................................................. 95
4.8. Problema 8 ............................................................................................................................. 98
5. PROBLEMA APLICADO A LA ASIGNACIÓN IMPORTANDO DE EXCEL....................... 101
5.1. Problema 1 ........................................................................................................................... 101
5.2. Problema 2 – Presupuesto .............................................................................................. 112
5.3. Problema 3 – Proyectos ................................................................................................... 118
5.4. Problema 4 – Cuatro variables ....................................................................................... 123
6. CONCLUSIONES ......................................................................................................................... 131
7. BIBLIOGRAFÍA ............................................................................................................................ 132
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
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
#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
Primero se tiene que crear una hoja de cálculo con intervalos dimensionados
para que se puedan acomodar en ellos los valores exportados.
Los intervalos tienen que contener números. 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 cálculo), variables por exportar y el intervalo para el cual
se exportaran los valores. Las variables y el intervalo se introducen por pares y
se añaden a la lista de pares de variable e intervalo dando un clic en el botón de
agregar.
2.2.2. FUNCIONES:
OPERADORES ESTANDAR
Página | 12
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
especificar si el primer miembro de una expresión debe ser menor que, igual a ,
o mayor que el segundo miembro.
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:
Página | 14
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
x, y, z ≥ 0
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 €.
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
En vez de 1..3 podíamos haber escrito 1, 2, 3, pero los dos puntos .. son
una de las formas abreviadas que admite LINGO para definir los
elementos de un conjunto. En general tenemos las posibilidades
siguientes (aparte de la enumeración explicita de los elementos):
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 veremos que
Página | 21
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
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))
Página | 25
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
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)
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));
Infeasibilities: 0.000000
Total solver iterations: 2
Elapsed runtime seconds: 0.49
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)
Página | 28
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
1 100 300
2 150 350
3 200 400
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 64
Fabrica 2 68 67 65 62
Fabrica 3 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
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
Departamento S1 S2
Mezcla 2 1
Purificación 1 2
Data:
utilidad = 350, 450;
horas = 2,1,
Página | 32
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
1,2;
disponibilidad_horas=190, 292;
Enddata
Max=@sum (Produccion:cantidad*utilidad);
@for(Departamento(j):@sum(Produccion(i):cantidad(i)*horas(i,j))<=di
sponibilidad_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
MAX=( @SUM(
PRODUCTO(I):PRECIO(I)*@SUM(MES(J):@SUM(PLANTA(K):@SUM(PROCESO(L):@SUM(
REGION(M):X(I,J,K,L,M))))))
-
@SUM(CADENA3(I,K,L):COSTOPROD(I,K,L)*@SUM(MES(J):@SUM(REGION(M):X(I,J,
K,L,M))) )
-@SUM(PRODUCTO(I):COSTOINV(I)*@SUM(REGION(M):INV(I,M)))
-
@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);
Página | 35
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
@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
MAX=( @SUM(
PRODUCTO(I):PRECIO(I)*@SUM(MES(J):@SUM(PLANTA(K):@SUM(PROCESO(L):@SUM(
REGION(M):X(I,J,K,L,M))))))
-
@SUM(CADENA3(I,K,L):COSTOPROD(I,K,L)*@SUM(MES(J):@SUM(REGION(M):X(I,J,
K,L,M))) )
-@SUM(PRODUCTO(I):COSTOINV(I)*@SUM(REGION(M):INV(I,M)))
-
@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));
Página | 36
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
@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
8 2640.000 0.000000
9 6000.000 0.000000
10 3600.000 0.000000
11 4900.000 0.000000
12 6300.000 0.000000
13 4200.000 0.000000
14 2100.000 0.000000
15 5100.000 0.000000
16 2640.000 0.000000
17 6000.000 0.000000
18 1000.000 0.000000
19 1000.000 0.000000
20 1000.000 0.000000
21 1000.000 0.000000
22 0.000000 4080.000
23 0.000000 4080.000
EXTENDEX 3 2 2 9
EXTENDEX 6 3 5 2
Inventario 500 425 650 1100
Sea:
Xi: la cantidad de ingredientes del PRODUCTO i
(i=airtex,extendex,resistex) que se puede usar.
3
FUNCION OBJETIVO:
X*ganacia
i
1
(i) ;donde ganancia es la utilidad
i
X
i
1
COMPROMISO
(
i
) i
Página | 40
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
X
*
i
1
to
(
ii
,
j)
requerimen
inventario
(
j
)*
16
, donde requerimiento (i , j)
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
Model Class: LP
Total variables: 3
Nonlinear variables: 0
Integer variables: 0
Página | 41
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
Total constraints: 8
Nonlinear constraints: 0
Total nonzeros: 18
Nonlinear nonzeros: 0
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
Página | 42
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
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
X
i 1
i MAXIMOi / 100 ; donde MAXIMO i es la cantidad máxima de cada
X
i
*
1
nutriente
MINIMO
i , donde NUTRIENTEj,i . j ,es la cantidad de
j
,
i j
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;
Página | 44
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
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
Nonlinear variables: 0
Integer variables: 0
Total constraints: 13
Nonlinear constraints: 0
Total nonzeros: 40
Nonlinear nonzeros: 0
Página | 45
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
12 0.000000 -600.0000
13 54800.00 0.000000
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
Solución:
Xij: unidades producidas por tipo de producto j (1, 2, 3, 4), utilizando cada
maquina i (1, 2)
Página | 48
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
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
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
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:
Model Class: LP
Total variables: 6
Nonlinear variables: 0
Integer variables: 0
Total constraints: 7
Nonlinear constraints: 0
Página | 52
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
Total nonzeros: 18
Nonlinear nonzeros: 0
3 6.000000 0.000000
4 0.000000 -1.000000
5 1.000000 0.000000
6 0.000000 -1.000000
7 0.000000 0.000000
Página | 54
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
Solución:
Xj = cantidad de dólares a invertir en el tipo de inversión 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
La solución en LINGO:
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
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
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 | 56
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
Sucursal
Proveedor Jesús Callao San Los
María Luis Olivos
Página | 57
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
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
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
Página | 58
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
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:
Modelo en Lingo:
SETS:
proveedor:oferta;
almacen:capacidad;
sucursal:demanda;
flete1(proveedor,almacen):costo1,volumen1;
flete2(almacen,sucursal):costo2,volumen2;
ENDSETS
DATA:
Página | 59
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
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):costo
2(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
Página | 61
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
Página | 62
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
Página | 63
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
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 | 64
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
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.55 1.6 1.50 1.22 1.25 1.25 1.23 1.50 155 1.2 2.2 3.2
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.25 1.8 1.95 2.2 1.2 1.25 1.6 1.5 1.4
4 1.5 1.65 1.2 1.3 1.20 1.6 1.55 1.5 1.65 1.10 1.15 1.25 1.20 1.25 1.10
5 1.25 1.2 1.10 1.15 1.10 1.2 1.3 1.4 1.5 1.5 1.4 1.2 1.3 1.2 1.10
Página | 65
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
Página | 66
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
Variables de decisión:
𝐷𝑗𝑘 = Número de unidades del tipo de papel k demandadas por el cliente j
𝑧 = ∑ 𝑃𝑖𝑘𝑙 + ∑ 𝑇𝑖𝑗𝑘
𝑖𝑘𝑙 𝑖𝑗𝑘
Sujeto a:
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) ;
Página | 67
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
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;
!COSTO POR UNIDAD DE PAPEL;
PLAPAPMAQ(PLANTA,PAPEL,MAQUINA):P,X;
!COSTO DE TRANSPORTE;
PLACLIPAP(PLANTA,CLIENTE,PAPEL):T,Y;
ENDSETS
DATA:
D=10 20 30 40;
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
R( 2, 1, 1) 3.000000 0.000000
RR( 1, 1) 100.0000 0.000000
RR( 2, 1) 200.0000 0.000000
C( 1, 1) 0.8000000 0.000000
C( 2, 1) 0.9000000 0.000000
CC( 1, 1) 5000.000 0.000000
CC( 2, 1) 800.0000 0.000000
P( 1, 1, 1) 3.000000 0.000000
P( 1, 2, 1) 4.000000 0.000000
P( 2, 1, 1) 2.500000 0.000000
P( 2, 2, 1) 5.000000 0.000000
X( 1, 1, 1) 0.000000 1.166667
X( 1, 2, 1) 33.33333 0.000000
X( 2, 1, 1) 30.00000 0.000000
X( 2, 2, 1) 6.666667 0.000000
T( 1, 1, 1) 0.5000000 0.000000
T( 1, 1, 2) 1.000000 0.000000
T( 1, 2, 1) 2.000000 0.000000
T( 1, 2, 2) 3.000000 0.000000
T( 2, 1, 1) 1.000000 0.000000
T( 2, 1, 2) 2.000000 0.000000
T( 2, 2, 1) 3.000000 0.000000
T( 2, 2, 2) 4.000000 0.000000
Y( 1, 1, 1) 0.000000 0.5000000
Y( 1, 1, 2) 0.000000 1.000000
Y( 1, 2, 1) 0.000000 2.000000
Y( 1, 2, 2) 0.000000 3.000000
Y( 2, 1, 1) 0.000000 1.000000
Y( 2, 1, 2) 0.000000 2.000000
Y( 2, 2, 1) 0.000000 3.000000
Y( 2, 2, 2) 0.000000 4.000000
Página | 69
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
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+
Página | 70
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
Página | 71
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
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 | 72
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
TACNA CUZCO
Solución:
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 producción:
L P
4
K
SM
X
,LP1
I,J,K,L
Para I=A,J=P1:
Página | 73
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
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
I
X
A,LP1
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
Página | 76
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
La solución respectiva:
Global optimal solution found.
Objective value: 8260.000
Total solver iterations: 20
Página | 77
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 | 78
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
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)));
End4.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
X1 <= 6 000Y1
X2 <= 7 000Y2
X3 <= 6 000Y3
Y1, Y2, Y3 = 1 ó 0
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;
MODEL:
Página | 81
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
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
Página | 82
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
TABLA 2 TABLA 3
Solución:
0, si no es así.
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
Página | 83
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
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)
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)
Página | 84
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
@for(distrito(i):total(i)=@sum(escuela(j):alumnos));
Página | 85
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.
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
X( 1) <= 500
X( 2) <= 900
X( 3) <= 400
Página | 87
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
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;
Página | 88
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
! RESTRICCION DE 2;
@FOR(VENDEDOR(I):X(I)<=MAXVEND(I));
! RESTRICCION DE 3;
@FOR(VENDEDOR(I):X(I)<=M*Y(I));
SOLUCION EN LINGO:
4.5. Problema 5
Página | 89
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
3.Canfranc 55.000 88
Página | 90
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
MODEL:
!Definicion de Conjuntos;
Página | 91
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
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 | 92
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);
END
4.6. Problema 6
Página | 93
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
Tabla N° 1
Tabla N°2
BELLAVISTA 2 3 2 3
Model:
Sets:
Página | 94
fabrica/fpa,fga,fpb,fgb,feb/:capacidad,costo_construccion, costo_manufactura,
construccion;
region/r1,r2,r3,r4/:requerimiento;
4.7. Problema 7
Página | 95
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
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)
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
Página | 96
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
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,
17,19,22,
19,25,29;
Enddata
Max=@sum(year:b);
¡FUNCION OBJETIVO;
Página | 97
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
@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:
4.8. Problema 8
SOLUCIÓN:
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)
Página | 99
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
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
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;
Página | 100
costo1 = 350 ,330 ,310 ,280;
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).
Página | 101
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
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
SOLUCIÓN:
Definición de variables:
X i, j = Cantidad de representantes de la Fabrica j en el mercado de la ciudad i.
H i, j = Es 1 si la distancia de la fabrica i a la ciudad j es menor o igual a 55, sino 0.
T i, j = Es 1 si la distancia de la fabrica i a la ciudad j es mayor que 55.
Z i, j = matriz de variables que se filtraran con la matriz Hij.
Página | 102
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
∑ ∑ 𝑋𝑖,𝑗 ≤ 𝑅𝐸𝑃𝑅𝐸𝑗
𝑗 =1 𝑖 =1
𝟔 𝟒
∑ ∑ 𝑺𝑰𝒊 × 𝑿𝒊,𝒋 = 𝒀𝒊
𝒊=𝟏 𝒋=𝟏
SALARIO DE REPRESENTANTES
Página | 103
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
6 4
8400 × ∑ ∑ 𝑋𝑖,𝑗 = 𝐶𝑂𝑆𝑇𝑂
𝑖=1 𝑗=1
FUNCION OBJETIVO
𝟔 𝟔
𝑴𝑨𝑿 = 𝟕𝟎 × ∑ 𝑾𝒊 + ∑ 𝒀𝒊 − 𝑪𝑶𝑺𝑻𝑶
𝒊=𝟏 𝒊=𝟏
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.
Página | 104
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
Ayabaca 40 120X22 40 40
Morropón 90 90 90 110X54
Página | 105
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
RESTRICCIONES:
Cantidad mínima de los representantes de cada fábrica
X11 + X 41 + X 61 <= 10
X 22 + X 62 <= 8
X 33 + X 43 + X 63 <= 6
X14 + X 34 + X 44 + X 54 <= 9
Cantidad mínima de representante por mercado
X11 + X14 >= 4
X 22 >= 5
X 33 + X 34 >= 3
X 41 + X 43 + X 44 >= 2
X 54 >= 1
X 61 + X 62 + X 63 >= 4
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:
Según 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
Página | 106
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
@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.
∑ ∑ 𝑋𝑖,𝑗 ≤ 𝑅𝐸𝑃𝑅𝐸𝑗
𝑗 =1 𝑖 =1
Página | 107
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
Salario De Representantes
6 4
8400 × ∑ ∑ 𝑋𝑖,𝑗 = 𝐶𝑂𝑆𝑇𝑂
𝑖=1 𝑗=1
!SALARIO DE REPRESENTANTES;
@SUM(MERCAFABRI(I,J):X(I,J))*8400=COSTO;
Función Objetivo
𝟔 𝟔
𝑴𝑨𝑿 = 𝟕𝟎 × (∑ 𝑾𝒊 + ∑ 𝒀𝒊 ) − 𝑪𝑶𝑺𝑻𝑶
𝒊=𝟏 𝒊=𝟏
Página | 108
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
MAX=70*(@SUM(MERCADOS(I):W(I))+@SUM(MERCADOS(I):Y(I)))-COSTO;
Definición de data.
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
Página | 109
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 | 110
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);!REPRESENTA
NTES;
@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 | 111
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
END
límite anual, puede usar esa diferencia para el siguiente año. Cada
sucursal tiene la oportunidad de dirigir distintos proyectos con los
fondos que recibe. Para cada proyecto se ha establecido una tasa de
ganancia (como un porcentaje de la inversión) y una inversión máxima
(Tabla1). Por otra parte, algunos de los proyectos obligan una inversión
mínima como se indica en la tabla 2. Determine la política de asignación
de recursos que genere el mejor beneficio.
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 | 113
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 | 114
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
𝑀𝐴𝑋 = ∑ ∑ ∑ 𝑇𝑎𝑠𝑎𝑖,𝑗,𝑘 𝑥 𝑋𝑖,𝑗,𝑘
𝑖=1 𝑗=1 𝑘=1
El LINGO respectivo:
Página | 115
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:
TASA,INVMAXIMA,MINIMO,PRESUPUESTO,INVMINIMA= @OLE('G:\VII
CICLO\OPE\LABO\DATA2.xlsx','tasa','INV_MAX','mínima','presupuesto','inv_mínim
a' );
ENDDATA
! Funcion Objetivo;
MAX = FO;
@FOR(SUCURSAL_PROYECTO_PERIODO(I,J,K)|TASA(I,J,K)#GT#0.07: ASIGNACION(I,J,K)>=
INVMINIMA);
! Restriccion de prespuesto disponible;
DATA:
ENDDATA
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
PROYECTO 1
1 2 3 PROYECTO 2
TRUJILLO 10 9 8
1 2 3
LIMA 5 4 9 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 | 117
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 | 118
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 | 119
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 | 120
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
PROGRAMACIÓN EN LINGO
Página | 121
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 | 122
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
Demanda:
Tacna Cuzco
Producto 1 73 67
Producto 2 58 72
Producto 3 67 74
Página | 123
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:
𝐶 𝑃3 𝐿 𝐶𝑧
∑ ∑ ∑ ∑ 𝑋𝑖𝑗𝑘𝑙 ∗ 𝑃𝑅𝐸𝐶𝐼𝑂𝑖𝑗𝑘𝑙
𝑖=𝐴 𝑗=𝑃1 𝑘=𝑆 𝑙=𝑇
Sujeto a:
Capacidad de producción:
𝐿 𝑃3
∑ ∑ 𝑋𝑖𝑗𝑘𝑙
𝑘=𝑆𝑀 𝑙=𝑃1
Demanda:
𝐶 𝐿
∑ ∑ 𝑋𝑖𝑗𝑘𝑙
𝑖=𝐴 𝑘=𝑆
∑ ∑ 𝑋𝑖𝑗𝑘𝑙
𝑖=𝐴 𝑗=𝑃1
Página | 124
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
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
Página | 125
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
2) RESULTADOS
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.
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 | 127
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 | 128
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 | 129
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 | 130
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
6. CONCLUSIONES
Página | 131
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
7. BIBLIOGRAFÍA
Página | 132