Está en la página 1de 107

INVESTIGACION DE OPERACIONES I1

Modelos de Distribución en
lingo compacto

Tupia de la Cruz Elmer Luis MgIng


Contenido

1. Caso de aplicación: Distribución.


2. Entorno del LINGO COMPACTO.
3. Definición de Conjuntos.
4. Ingreso de coeficientes tecnológicos.
5. Modelo de Distribución.
6. Uso de sentencia @FOR y @SUM.
7. Construcción de la Función Objetivo.
8. Modelo final de lingo compacto.
9. Solución del lingo compacto.
10. Modelo del display model.
11. Ejercicios.
1.- CASO DE APLICACIÓN: DISTRIBUCIÓN
Considere una empresa que cuenta con 3 almacenes zonales que se encuentra
ubicados en distintos distritos de la ciudad de Lima [A1, A2, A3], desde los
cuales se está programando enviar los productos allí almacenados, a 4 distintos
clientes, también ubicados en otros lugares de Lima.
Cada almacén, tiene una capacidad de almacenamiento (en toneladas) y cada
cliente demanda una cantidad del producto almacenado (en toneladas) y, para
enviar una unidad (tonelada) desde cada almacén a cada cliente se dispone de un
costo unitario de envío en $; los datos se encuentran en la siguiente tabla
Cliente [costo de envío: $/tonelada) Capacidad
Almacén
C1 C2 C3 C4 (tonelada)
A1 6 2 6 7 30
A2 4 9 5 3 25
A3 8 8 1 5 21
Demanda
15 17 22 12
(tonelada)

Se solicita determinar la programación de envíos a un costo mínimo. Modelarlo


en lingo compacto
1.- CASO DE APLICACIÓN: DISTRIBUCIÓN

ALMACENES CLIENTES

C1 15
6
30 A1
2
7 6
4
C2 17

CAPACIDAD 9 DEMANDA
25 A2
(toneladas) 5 (toneladas)
3
8 8
C3 22
1
21 A3
A2
5

C4 12

Costo de envío
($/tonelada)
2.- ENTORNO DEL LINGO COMPACTO

Se define las estructuras de los conjuntos


Y los atributos para definir variables y
leer parámetros

Se define la Función Objetivo y las


Restricciones

Se define la forma de leer parámetros:


Excel, txt, BD

Se define la forma de enviar solución:


Excel, txt, BD
3.- DEFINICIÓN DE CONJUNTOS
SETS : Son conjuntos de elementos que se agrupan en función a características comunes.
SETS PRIMITIVOS : Son conjuntos básicos que forman la estructura de un modelo.

Sintaxis: Nombre_conjunto/ elementos/: Atributos;


ALMACENES CLIENTES

Ejemplo: definido por extensión C1 15


6

30 A1
2
ALMACEN/A1,A2,A3/: CAPACIDAD; 7 6
C2 17
4
9
25 A2
5
Ejemplo: definido por comprensión 3
C3 22
8 8
1
21 A3
A2
CLIENTE/ 1 . . 4 /: DEMANDA; 5

C4 12
3.- DEFINICIÓN DE CONJUNTOS
SETS DERIVADOS : Son conjuntos de set primitivos.
Sintaxis:
Nombre_conjunto(Nomb_conj_1, Nomb_conj_2,…Nomb_conj_n): Atributos;
CLIENTE
ALMACENES CLIENTES
ALMACÉN C1 C2 C3 C4
C1 15
Matriz de A1 6 2 6 7 6

costos 30 A1
A2 4 9 5 3 2
7 6
C2 17
A3 8 8 1 5 4
9
25 A2
5
CLIENTE 3
C3 22
8 8
ALMACÉN C1 C2 C3 C4 1
21 A3
A2
5
Matriz de A1 X11 X12 X13 X14
C4 12
variables A2 X21 X22 X23 X24

A3 X31 X32 X33 X34 Xij: Cantidad enviada del


almacén i al cliente j

Ejemplo: RUTA(ALMACEN,CLIENTE) : COSTO , X ;


4.- INGRESO DE COEFICIENTES TECNOLÓGICOS
ALMACENES CLIENTES

C1 15
6

30 A1
2
7 6
C2 17
4
9
25 A2
5
3
C3 22
8 8
1
21 A3
A2
5

C4 12

CLIENTE
ALMACÉN C1 C2 C3 C4

A1 6 2 6 7

A2 4 9 5 3

A3 8 8 1 5

Matriz de costos
5 .- MODELO DE DISTRIBUCIÓN
Xij : Cantidad enviada del almacén i al cliente j
CAPACIDAD: DEMANDA:
X11 + X12 + X13 + X14 <= 30 X11 + X21 + X31 >= 15
X21 + X22 + X23 + X24 <= 25 X12 + X22 + X32 >= 17
X31 + X32 + X33 + X34 <= 21 X13 + X23 + X33 >= 22
X14 + X24 + X34 >= 12
ALMACENES CLIENTES

C1 15
6

30 A1
2
7 6
C2 17
4
9
25 A2
5
3
C3 22
8 8
1
21 A3
A2
5

C4 12

FUNCIÓN OBJETIVO:
MIN = 6*X11 + 2*X12 + 6*X13 + 7*X14 +
4*X21 + 9*X22 + 5*X23 + 3*X24 +
8*X31 + 8*X32 + 1*X33 + 5*X34 ;
6 .- USO DE SENTENCIAS @FOR Y @SUM
@FOR (Set_index_list) | Conditional_qualifier : Expression);
@SUM (Set_index_list) | Conditional_qualifier : Expression);
@SUM( CLIENTE( j )

X ij j=1 j=2 j=3 j=4


CAPACIDAD:
ALMACÉN CLIENTE
i=1 X11 + X12 + X13 + X14 <= 30

i=2 X21 + X22 + X23 + X24 <= 25

@FOR( ALMACEN( i ) i=3 X31 + X32 + X33 + X34 <= 21

!Restricción de capacidad;
@FOR(ALMACEN(I):
@SUM(CLIENTE(J):
X(I,J))<= CAPACIDAD(I));
6 .- USO DE SENTENCIAS @FOR Y @SUM
@FOR (Set_index_list) | Conditional_qualifier : Expression);
@SUM (Set_index_list) | Conditional_qualifier : Expression);
@SUM( ALMACEN ( i )

X ij i=1 i=2 i=3


DEMANDA:
ALMACÉN CLIENTE
j=1 X11 + X21 + X31 >= 15

j=2 X12 + X22 + X32 >= 17

@FOR ( CLIENTE ( j ) j=3 X13 + X23 + X33 >= 22

j=4 X14 + X24 + X34 >= 12

!Restricción de demanda;
@FOR(CLIENTE(J):
@SUM(ALMACEN(I):
X(I,J))>= DEMANDA(J));
7.- CONSTRUCCIÓN DE LA FUNCIÓN OBJETIVO
Ejemplo: RUTA(ALMACEN,CLIENTE) : COSTO , X ;
Xij: Cantidad enviada del
almacén i al cliente j

CLIENTE CLIENTE
ALMACÉN C1 C2 C3 C4 ALMACÉN C1 C2 C3 C4
A1 6 2 6 7 A1 X11 X12 X13 X14
A2 4 9 5 3 A2 X21 X22 X23 X24
Matriz de
costos A3 8 8 1 5 A3 X31 X32 X33 X34

Matriz de
variables

Min = @SUM(RUTA(I,J):COSTO(I,J)*X(I,J));
8.- MODELO FINAL EN LINGO COMPACTO

SETS:
ALMACEN/A1,A2,A3/:CAPACIDAD;
CLIENTE/1..4/:DEMANDA;
RUTA(ALMACEN,CLIENTE):COSTO,X;
ENDSETS

Min = @SUM(RUTA(I,J):COSTO(I,J)*X(I,J));
@FOR(ALMACEN(I): @SUM(CLIENTE(J):X(I,J))<= CAPACIDAD(I));
@FOR(CLIENTE(J): @SUM(ALMACEN(I):X(I,J))>= DEMANDA(J));

DATA:
CAPACIDAD = 30,25,21;
DEMANDA = 15,17,22,12;
COSTO = 6,2,6,7,4,9,5,3,8,8,1,5;
ENDDATA
8.- MODELO FINAL EN LINGO COMPACTO

SETS:
ALMACEN/A1,A2,A3/:CAPACIDAD;
CLIENTE/1..4/:DEMANDA;
RUTA(ALMACEN,CLIENTE):COSTO,X;
ENDSETS

Min = @SUM(RUTA(I,J):COSTO(I,J)*X(I,J));
@FOR(ALMACEN(I): @SUM(CLIENTE(J):X(I,J))<= CAPACIDAD(I));
@FOR(CLIENTE(J): @SUM(ALMACEN(I):X(I,J))>= DEMANDA(J));

DATA:
CAPACIDAD = 30,25,21;
DEMANDA = 15,17,22,12;
COSTO = 6,2,6,7,4,9,5,3,8,8,1,5;
ENDDATA
9.- SOLUCIÓN DEL LINGO COMPACTO
Variable Value Reduced Cost
CAPACIDAD( A1) 30.00000 0.000000
CAPACIDAD( A2) 25.00000 0.000000
CAPACIDAD( A3) 21.00000 0.000000
DEMANDA( 1) 15.00000 0.000000
DEMANDA( 2) 17.00000 0.000000
DEMANDA( 3) 22.00000 0.000000
DEMANDA( 4) 12.00000 0.000000
COSTO( A1, 1) 6.000000 0.000000
COSTO( A1, 2) 2.000000 0.000000
COSTO( A1, 3) 6.000000 0.000000 Row Slack or Surplus Dual Price
COSTO( A1, 4) 7.000000 0.000000 1 161.0000 -1.000000
COSTO( A2, 1) 4.000000 0.000000 2 10.00000 0.000000
COSTO( A2, 2) 9.000000 0.000000 3 0.000000 2.000000
COSTO( A2, 3) 5.000000 0.000000 4 0.000000 5.000000
COSTO( A2, 4) 3.000000 0.000000 5 0.000000 -6.000000
COSTO( A3, 1) 8.000000 0.000000 6 0.000000 -2.000000
COSTO( A3, 2) 8.000000 0.000000 7 0.000000 -6.000000
COSTO( A3, 3) 1.000000 0.000000 8 0.000000 -5.000000
COSTO( A3, 4) 5.000000 0.000000
X( A1, 1) 2.000000 0.000000
X( A1, 2) 17.00000 0.000000
X( A1, 3) 1.000000 0.000000
X( A1, 4) 0.000000 2.000000
X( A2, 1) 13.00000 0.000000
X( A2, 2) 0.000000 9.000000
X( A2, 3) 0.000000 1.000000
X( A2, 4) 12.00000 0.000000
X( A3, 1) 0.000000 7.000000
X( A3, 2) 0.000000 11.00000
X( A3, 3) 21.00000 0.000000
X( A3, 4) 0.000000 5.000000
9.- SOLUCIÓN DEL LINGO COMPACTO
Variable Value Reduced Cost
CAPACIDAD( A1) 30.00000 0.000000
CAPACIDAD( A2) 25.00000 0.000000
CAPACIDAD( A3) 21.00000 0.000000
DEMANDA( 1) 15.00000 0.000000
DEMANDA( 2) 17.00000 0.000000
DEMANDA( 3) 22.00000 0.000000
DEMANDA( 4) 12.00000 0.000000
COSTO( A1, 1) 6.000000 0.000000
COSTO( A1, 2) 2.000000 0.000000
COSTO( A1, 3) 6.000000 0.000000 Row Slack or Surplus Dual Price
COSTO( A1, 4) 7.000000 0.000000 1 161.0000 -1.000000
COSTO( A2, 1) 4.000000 0.000000 2 10.00000 0.000000
COSTO( A2, 2) 9.000000 0.000000 3 0.000000 2.000000
COSTO( A2, 3) 5.000000 0.000000 4 0.000000 5.000000
COSTO( A2, 4) 3.000000 0.000000 5 0.000000 -6.000000
COSTO( A3, 1) 8.000000 0.000000 6 0.000000 -2.000000
COSTO( A3, 2) 8.000000 0.000000 7 0.000000 -6.000000
COSTO( A3, 3) 1.000000 0.000000 8 0.000000 -5.000000
COSTO( A3, 4) 5.000000 0.000000
X( A1, 1) 2.000000 0.000000
X( A1, 2) 17.00000 0.000000
X( A1, 3) 1.000000 0.000000
X( A1, 4) 0.000000 2.000000 Reporte administrativo:
X( A2, 1) 13.00000 0.000000 Desde el almacén A1, enviar 2, 17 y 1 unidades
X( A2, 2) 0.000000 9.000000 a los clientes 1,2 y 3 respectivamente, desde el
X( A2, 3) 0.000000 1.000000 almacén A2 enviar 13 y 12 unidades a los
X( A2, 4) 12.00000 0.000000 clientes 1 y 4 respectivamente y desde el
X( A3, 1) 0.000000 7.000000
X( A3, 2) 0.000000 11.00000
almacén A3 enviar 21 unidades al cliente 3 con
X( A3, 3) 21.00000 0.000000 un costo óptimo de envío de $161
X( A3, 4) 0.000000 5.000000
ALMACENES CLIENTES

2
6
1 15
13
30 20 A1
2
17
2 17
4
CAPACIDAD DEMANDA
(toneladas)
25 A2
(toneladas)
1
3
3 22
21
1
21 A3
A2
12

4 12 Z*= 161
Reporte administrativo:
Solución gráfica del modelo: Desde el almacén A1, enviar 2, 17 y 1 unidades
a los clientes 1,2 y 3 respectivamente, desde el
almacén A2 enviar 13 y 12 unidades a los
clientes 1 y 4 respectivamente y desde el
almacén A3 enviar 21 unidades al cliente 3 con
un costo óptimo de envío de $161
10.- MODELO EXTENDIDO DEL DISPLAY MODEL

MODEL:
[_1] MIN= 6 * X_A1_1 + 2 * X_A1_2 + 6 * X_A1_3 + 7 * X_A1_4 +
4 * X_A2_1 + 9 * X_A2_2 + 5 * X_A2_3 + 3 * X_A2_4 + 8 * X_A3_1
+ 8 * X_A3_2 + X_A3_3 + 5 * X_A3_4;
[_2] X_A1_1 + X_A1_2 + X_A1_3 + X_A1_4 <= 30;
[_3] X_A2_1 + X_A2_2 + X_A2_3 + X_A2_4 <= 25;
[_4] X_A3_1 + X_A3_2 + X_A3_3 + X_A3_4 <= 21;
[_5] X_A1_1 + X_A2_1 + X_A3_1 >= 15;
[_6] X_A1_2 + X_A2_2 + X_A3_2 >= 17;
[_7] X_A1_3 + X_A2_3 + X_A3_3 >= 22;
[_8] X_A1_4 + X_A2_4 + X_A3_4 >= 12;
END
11.- EJERCICIOS
La empresa donde Ud. trabaja, lo ha nombrado asistente de logística. Su primer trabajo en
el nuevo puesto será elaborar el programa de envíos de productos terminados a los tres
almacenes que la empresa posee en el territorio nacional.
La empresa posee cuatro plantas de producción en diferentes lugares del país (P1, P2, P3,
P4). Las capacidades de producción de las diferentes plantas son: 400, 250, 250 y 300
unidades mensuales respectivamente. Las demandas en los tres almacenes (A1, A2, A3)
son: 250, 350 y 600 unidades mensuales respectivamente.
Los costos de transporte se presentan en la siguiente tabla:
1 2 3
P1 5.7 4.4 6.2
P2 1.2 5.9 6.7
P3 9.9 6.6 5.4
P4 4 2.7 6.5
Se pide lo siguiente:
a) Presente el modelo de programa lineal en notación extendida y compacta.
b) Encuentre el costo óptimo del envío en Lingo compacto
c) Según las últimas noticias, la carretera que une el origen 1 con el destino 3 ha sufrido
un gran daño por un derrumbe. Con esta información adicional, ¿cuál sería el nuevo
programa de envíos?, ¿cuánto aumentaría el costo de la empresa? Resuelva siempre
en lingo compacto.
d) ¿Que pasa ahora si en lugar de prohibir se obliga a enviar desde la planta 2 hacia el
almacén 2?
Modelo de PL en notación del lingo compacto

SETS:
PLANTA/P1,P2,P3,P4/:CAPACIDAD;
ALMACEN/1..3/:DEMANDA;
RUTA(PLANTA,ALMACEN):COSTO,X;
ENDSETS

Min = @SUM(RUTA(I,J):COSTO(I,J)*X(I,J));
@FOR(PLANTA(I): @SUM(ALMACEN(J):X(I,J))<= CAPACIDAD(I));
@FOR(ALMACEN(J): @SUM(PLANTA(I):X(I,J))>= DEMANDA(J));

DATA:
CAPACIDAD = 400, 250, 250, 300;
DEMANDA = 250, 350, 600;
COSTO = 5.7, 4.4, 6.2, 1.2, 5.9, 6.7, 9.9, 6.6, 5.4, 4, 2.7, 6.5;
ENDDATA
Modelo de PL en notación del lingo compacto [RUTA PROHIBIDA]
Prohibir el envío desde la planta 1 hasta el cliente 3
SETS:
PLANTA/P1,P2,P3,P4/:CAPACIDAD;
ALMACEN/1..3/:DEMANDA;
RUTA(PLANTA,ALMACEN):COSTO,X;
ENDSETS

Min = @SUM(RUTA(I,J):COSTO(I,J)*X(I,J));
@FOR(PLANTA(I): @SUM(ALMACEN(J):X(I,J))<= CAPACIDAD(I));
@FOR(ALMACEN(J): @SUM(PLANTA(I):X(I,J))>= DEMANDA(J));

DATA:
CAPACIDAD = 400, 250, 250, 300;
DEMANDA = 250, 350, 600;
COSTO = 5.7, 4.4, 100, 1.2, 5.9, 6.7, 9.9, 6.6, 5.4, 4, 2.7, 6.5;
ENDDATA

Cambiar 6.2 por M


grande [100]
Modelo de PL en notación del lingo compacto [RUTA OBLIGATORIA]
Obligar el envío desde la planta 2 hasta el cliente 2
SETS:
PLANTA/P1,P2,P3,P4/:CAPACIDAD;
ALMACEN/1..3/:DEMANDA;
RUTA(PLANTA,ALMACEN):COSTO,X;
ENDSETS

Min = @SUM(RUTA(I,J):COSTO(I,J)*X(I,J));
@FOR(PLANTA(I): @SUM(ALMACEN(J):X(I,J))<= CAPACIDAD(I));
@FOR(ALMACEN(J): @SUM(PLANTA(I):X(I,J))>= DEMANDA(J));

DATA:
CAPACIDAD = 400, 250, 250, 300;
DEMANDA = 250, 350, 600;
COSTO = 5.7, 4.4, 6.2, 1.2, -100, 6.7, 9.9, 6.6, 5.4, 4, 2.7, 6.5;
ENDDATA

Cambiar 5.9 por -M


grande [100]
Gracias

Elmer Tupia de la Cruz


pciietup@upc.edu.pe
INVESTIGACIÓN DE OPERACIONES I

Modelo de Transbordo en Lingo Compacto


PROBLEMA DE DISTRIBUCIÓN DE PRODUCTOS MINEROS
Una empresa extrae roca de sus minas y desea determinar como hacer una distribución óptima de sus envíos.
Una vez que levanta el material del suelo y lo carga en un camión, lo envía a una de 2 plantas para ser
procesado. Luego, la roca procesada se envía a una de 3 tiendas de materiales para construcción, donde se
vende para propósito de arreglo de jardines. El costo de transportación, las existencias disponibles en cada
mina, los costos y la capacidad de procesamiento en cada planta se dan en la tabla siguiente:
A la planta de procesamiento ($/t) Suministro
De la mina
1 2 diario (t)
A 6 8 320
B 7 10 450
Costo de procesamiento ($/t) 22 18
Capacidad de procesamiento (t/día) 500 500
El costo de envío de cada planta de procesamiento a cada tienda y la demanda diaria son como sigue:

Hacia la tienda ($/t)


De la planta de procesamiento
1 2 3
1 13 17 20
2 19 22 21
Demanda diaria (t) 200 240 330
Representación gráfica del problema
Mina Planta de Procesamiento Tienda
(tonelada) (tonelada) (tonelada)

1 200
Capacidad (j) 500 13

6
320 A 1 17

22 19
8 2 240 Demanda (k)
Oferta (i) 20
7 18
22
B
10
450 2
11
500
3 330
(i) (j)
(k)
Etapa (ij)
Etapa (jk)
PROBLEMA DE DISTRIBUCIÓN DE PRODUCTOS MINEROS
Datos e información para el modelamiento

i= 1, 2 (mina) i= 1 (mina 1) , i= 2 (mina 2)


j= 1, 2 (planta de procesamiento) j= 1 (planta procesamiento 1) , j= 2 (planta procesamiento 2)
k= 1, 2, 3 (tienda) k= 1 (tienda 1) , k= 2 (tienda 2) , k= 3 (tienda 3)

𝑿𝒊𝒋 = 𝐶𝑎𝑛𝑡𝑖𝑑𝑎𝑑 𝑒𝑛 𝑡𝑜𝑛𝑒𝑙𝑎𝑑𝑎𝑠 𝑎 𝑒𝑛𝑣𝑖𝑎𝑟 𝑑𝑒 𝑙𝑎 𝑚𝑖𝑛𝑎 𝑖 𝑎 𝑙𝑎 𝑝𝑙𝑎𝑛𝑡𝑎 𝑑𝑒 𝑝𝑟𝑜𝑐𝑒𝑠𝑎𝑚𝑖𝑒𝑛𝑡𝑜 𝑗


𝒀𝒋𝒌 = 𝐶𝑎𝑛𝑡𝑖𝑑𝑎𝑑 𝑒𝑛 𝑡𝑜𝑛𝑒𝑙𝑎𝑑𝑎𝑠 𝑎 𝑒𝑛𝑣𝑖𝑎𝑟 𝑑𝑒 𝑙𝑎 𝑝𝑙𝑎𝑛𝑡𝑎 𝑑𝑒 𝑝𝑟𝑜𝑐𝑒𝑠𝑎𝑚𝑖𝑒𝑛𝑡𝑜 𝑗 𝑎 𝑙𝑎 𝑡𝑖𝑒𝑛𝑑𝑎 𝑘

𝑂𝑓𝑒𝑟𝑡𝑎𝑖 = 320 450


𝐶𝑎𝑝𝑎𝑐𝑖𝑑𝑎𝑑𝑗 = 500 500
𝐷𝑒𝑚𝑎𝑛𝑑𝑎𝑘 = 200 240 330
𝐶𝑀𝑃𝑖𝑗 = 6 8 7 10 = 𝑐𝑜𝑠𝑡𝑜 𝑑𝑒 𝑒𝑛𝑣í𝑜 de una tonelada de la mina i a la planta j
𝐶𝑃𝑗 = 22 18 = [costo de procesamiento de una tonelada en la planta j]
𝐶𝑃𝑇𝑗𝑘 = 13 17 20 19 22 21 = [costo de envío de una tonelada de la planta j a la tienda k]
PROBLEMA DE DISTRIBUCIÓN DE PRODUCTOS MINEROS
2 2 2 2 2 3

Min Z = ෍ ෍ Xij ∗ CMPij + ෍ ෍ Xij ∗ CPj + ෍ ෍ Yjk ∗ CPTjk Modelamiento en notación


i=1 j=1 i=1 j=1 j=1 k=1 compacta algebraica
Sujeto a:
2

෍ Xij ≤ Ofertai ; i
j=1
2

෍ Xij ≤ Capacidadj ; j
i=1
2

෍ Yjk ≥ Demandak ; k
j=1
2 3

෍ Xij = ෍ Yjk ; j
i=1 k=1

Xij , Yjk ≥ 0 ; ∀ i, ∀j, ∀k


PROBLEMA DE DISTRIBUCIÓN DE PRODUCTOS MINEROS
Construcción de SETS - DATA

SETS:
i= 1, 2 (mina) MINA/1,2/: OFERTA;
j= 1, 2 (planta de procesamiento) PLANTA/1,2/: CAPACIDAD,CP ;
k= 1, 2, 3 (tienda) TIENDA/1,2,3/: DEMANDA;
MXP(MINA,PLANTA):X,CMP;
𝐗 𝐢𝐣 = Cantidad en toneladas de i a j PXT(PLANTA,TIENDA):Y, CPT;
𝐘𝐣𝐤 = Cantidad en toneladas de j a k ENDSETS

DATA:
Ofertai = 320 450 OFERTA=320 450;
Capacidadj = 500 500 CAPACIDAD= 500 500;
Demandak = 200 240 330 DEMANDA= 200 240 330;
CMPij = 6 8 7 10 CMP= 6 8 7 10;
CPj = 22 18 CP= 22 18;
CPTjk = 13 17 20 19 22 21 CPT= 13 17 20 19 22 21;
PROBLEMA DE DISTRIBUCIÓN DE PRODUCTOS MINEROS
Construcción de MODELO – Función Objetivo
Costo de Mina a Planta: Costo de Procesamiento:
2 2 2 2
෍ ෍ 𝑋𝑖𝑗 ∗ 𝐶𝑀𝑃𝑖𝑗 ෍ ෍ 𝑋𝑖𝑗 ∗ 𝐶𝑃𝑗
𝑖=1 𝑗=1 𝑖=1 𝑗=1
@SUM(MXP(I,J): X(I,J)*CMP(I,J)) @SUM(MXP(I,J): X(I,J)*CP(J))
Costo de Planta a Tienda:
2 3

෍ ෍ 𝑌𝑗𝑘 ∗ 𝐶𝑃𝑇𝑗𝑘
𝑗=1 𝑘=1

@SUM(PXT(J,K):Y(J,K)*CPT(J,K))

2 2 2 2 2 3

𝑀𝑖𝑛 𝑍 = ෍ ෍ 𝑋𝑖𝑗 ∗ 𝐶𝑀𝑃𝑖𝑗 + ෍ ෍ 𝑋𝑖𝑗 ∗ 𝐶𝑃𝑗 + ෍ ෍ 𝑌𝑗𝑘 ∗ 𝐶𝑃𝑇𝑗𝑘


𝑖=1 𝑗=1 𝑖=1 𝑗=1 𝑗=1 𝑘=1

MIN= @SUM(MXP(I,J): X(I,J)*CMP(I,J)+X(I,J)*CP(J))+@SUM(PXT(J,K):Y(J,K)*CPT(J,K));


PROBLEMA DE DISTRIBUCIÓN DE PRODUCTOS MINEROS
Construcción de MODELO – Restricciones
Restricción de Oferta [de las minas]:
2

෍ 𝑋𝑖𝑗 ≤ 𝑂𝑓𝑒𝑟𝑡𝑎𝑖 ; 𝑖 @FOR(MINA(I):@SUM(PLANTA(J):X(I,J))<= OFERTA(I));


𝑗=1
Restricción de Capacidad [de Planta de Procesamiento]:
2

෍ 𝑋𝑖𝑗 ≤ 𝐶𝑎𝑝𝑎𝑐𝑖𝑑𝑎𝑑𝑗 ; 𝑗 @FOR(PLANTA(J):@SUM(MINA(I):X(I,J))<= CAPACIDAD(J));


𝑖=1

Restricción de Demanda [de las tiendas]:


2

෍ 𝑌𝑗𝑘 ≥ 𝐷𝑒𝑚𝑎𝑛𝑑𝑎𝑘 ; 𝑘 @FOR(TIENDA(K):@SUM(PLANTA(J): Y(J,K))>= DEMANDA(K));


𝑗=1

Restricción de Balance [equilibrio en la Planta de Procesamiento]:


2 3

෍ 𝑋𝑖𝑗 = ෍ 𝑌𝑗𝑘 ; 𝑗 @FOR(PLANTA(J):@SUM(MINA(I):X(I,J))=@SUM(TIENDA(K):Y(J,K)));


𝑖=1 𝑘=1
PROBLEMA DE DISTRIBUCIÓN DE PRODUCTOS MINEROS
SETS:
MINA/1,2/: OFERTA;
PLANTA/1,2/: CAPACIDAD,CP ;
TIENDA/1,2,3/: DEMANDA;
MXP(MINA,PLANTA):X,CMP;
PXT(PLANTA,TIENDA):Y, CPT;
ENDSETS
DATA: Modelamiento en notación
OFERTA=320 450;
CAPACIDAD= 500 500;
en lingo compacto
DEMANDA= 200 240 330;
CMP= 6 8 7 10;
CP= 22 18;
CPT= 13 17 20 19 22 21;
ENDDATA
MIN= @SUM(MXP(I,J): X(I,J)*CMP(I,J)+X(I,J)*CP(J))+@SUM(PXT(J,K):Y(J,K)*CPT(J,K));
@FOR(MINA(I):@SUM(PLANTA(J):X(I,J))<= OFERTA(I));
@FOR(PLANTA(J):@SUM(MINA(I):X(I,J))<= CAPACIDAD(J));
@FOR(TIENDA(K):@SUM(PLANTA(J): Y(J,K))>= DEMANDA(K));
@FOR(PLANTA(J):@SUM(MINA(I):X(I,J))=@SUM(TIENDA(K):Y(J,K)));
END
PROBLEMA DE DISTRIBUCIÓN DE PRODUCTOS MINEROS
SETS:
MINA/1,2/: OFERTA;
PLANTA/1,2/: CAPACIDAD,CP ;
TIENDA/1,2,3/: DEMANDA;
MXP(MINA,PLANTA):X,CMP;
PXT(PLANTA,TIENDA):Y, CPT;
ENDSETS
DATA:
OFERTA=320 450;
CAPACIDAD= 500 500;
DEMANDA= 200 240 330;
CMP= 6 8 7 10;
CP= 22 18;
CPT= 13 17 20 19 22 21;
ENDDATA
MIN= @SUM(MXP(I,J): X(I,J)*CMP(I,J)+X(I,J)*CP(J))+@SUM(PXT(J,K):Y(J,K)*CPT(J,K));
@FOR(MINA(I):@SUM(PLANTA(J):X(I,J))<= OFERTA(I));
@FOR(PLANTA(J):@SUM(MINA(I):X(I,J))<= CAPACIDAD(J));
@FOR(TIENDA(K):@SUM(PLANTA(J): Y(J,K))>= DEMANDA(K));
@FOR(PLANTA(J):@SUM(MINA(I):X(I,J))=@SUM(TIENDA(K):Y(J,K)));
END
PROBLEMA DE DISTRIBUCIÓN DE PRODUCTOS MINEROS
Variable Value Reduced Cost
OFERTA( 1) 320.0000 0.000000
OFERTA( 2) 450.0000 0.000000
CAPACIDAD( 1) 500.0000 0.000000
CAPACIDAD( 2) 500.0000 0.000000
CP( 1) 22.00000 0.000000 Row Slack or Surplus Dual Price
CP( 2) 18.00000 0.000000 1 34970.00 -1.000000
DEMANDA( 1) 200.0000 0.000000 2 0.000000 2.000000
DEMANDA( 2) 240.0000 0.000000 3 0.000000 0.000000
DEMANDA( 3) 330.0000 0.000000 4 60.00000 0.000000
X( 1, 1) 0.000000 1.000000 5 170.0000 0.000000
X( 1, 2) 320.0000 0.000000 6 0.000000 -42.00000
X( 2, 1) 440.0000 0.000000 7 0.000000 -46.00000
X( 2, 2) 10.00000 0.000000 8 0.000000 -49.00000
CMP( 1, 1) 6.000000 0.000000 9 0.000000 -29.00000
CMP( 1, 2) 8.000000 0.000000 10 0.000000 -28.00000
CMP( 2, 1) 7.000000 0.000000
CMP( 2, 2) 10.00000 0.000000
Y( 1, 1) 200.0000 0.000000
Y( 1, 2) 240.0000 0.000000
Y( 1, 3) 0.000000 0.000000
Y( 2, 1) 0.000000 5.000000
Y( 2, 2) 0.000000 4.000000
Y( 2, 3) 330.0000 0.000000
CPT( 1, 1) 13.00000 0.000000
CPT( 1, 2) 17.00000 0.000000
CPT( 1, 3) 20.00000 0.000000
CPT( 2, 1) 19.00000 0.000000
CPT( 2, 2) 22.00000 0.000000
CPT( 2, 3) 21.00000 0.000000
PROBLEMA DE DISTRIBUCIÓN DE PRODUCTOS MINEROS
Variable Value Reduced Cost
OFERTA( 1) 320.0000 0.000000
OFERTA( 2) 450.0000 0.000000
CAPACIDAD( 1) 500.0000 0.000000
CAPACIDAD( 2) 500.0000 0.000000
CP( 1) 22.00000 0.000000 Row Slack or Surplus Dual Price
CP( 2) 18.00000 0.000000 1 34970.00 -1.000000
DEMANDA( 1) 200.0000 0.000000 2 0.000000 2.000000
DEMANDA( 2) 240.0000 0.000000 3 0.000000 0.000000
DEMANDA( 3) 330.0000 0.000000 4 60.00000 0.000000
X( 1, 1) 0.000000 1.000000 5 170.0000 0.000000
X( 1, 2) 320.0000 0.000000 6 0.000000 -42.00000
X( 2, 1) 440.0000 0.000000 7 0.000000 -46.00000
X( 2, 2) 10.00000 0.000000 8 0.000000 -49.00000
CMP( 1, 1) 6.000000 0.000000 9 0.000000 -29.00000
CMP( 1, 2) 8.000000 0.000000 10 0.000000 -28.00000
CMP( 2, 1) 7.000000 0.000000
CMP( 2, 2) 10.00000 0.000000
Y( 1, 1) 200.0000 0.000000 Reporte administrativo:
Y( 1, 2) 240.0000 0.000000 Enviar 320 toneladas desde a mina 1 al centro de
Y( 1, 3) 0.000000 0.000000
Y( 2, 1) 0.000000 5.000000
procesamiento 2 y desde la mina 2 enviar 440 y 10
Y( 2, 2) 0.000000 4.000000 toneladas a los centros de procesamiento 1 y 2,
Y( 2, 3) 330.0000 0.000000 respectivamente y, desde el centro de procesamiento
CPT( 1, 1) 13.00000 0.000000 1 enviar 200 y 240 toneladas a las tiendas 1 y 2
CPT( 1, 2) 17.00000 0.000000
respectivamente y desde el centro de procesamiento
CPT( 1, 3) 20.00000 0.000000
CPT( 2, 1) 19.00000 0.000000 2 enviar 330 tonelada a la tienda 3; con esta
CPT( 2, 2) 22.00000 0.000000 distribución el costo mínimo de distribución será de
CPT( 2, 3) 21.00000 0.000000 $34,970.
Mina Centro de Procesamiento Tienda
(ton) (ton) (ton)

h=60 200 1 200


500 13

6
320 A 1 17
440
22 19
8 240 2 240
320 20
7 18
22
10
450 B 2 Z*=34,970
10 11
500
h=170 3 330
330 Reporte administrativo:
Enviar 320 toneladas desde a mina 1 al centro de
procesamiento 2 y desde la mina 2 enviar 440 y 10
toneladas a los centros de procesamiento 1 y 2,
Decisión óptima respectivamente y, desde el centro de procesamiento
1 enviar 200 y 240 toneladas a las tiendas 1 y 2
respectivamente y desde el centro de procesamiento
[representación gráfica] 2 enviar 330 tonelada a la tienda 3; con esta
distribución el costo mínimo de distribución será de
$34,970.
PROBLEMA DE DISTRIBUCIÓN DE PRODUCTOS MINEROS

MODEL:
[_1] MIN= 13 * Y_1_1 + 17 * Y_1_2 + 20 * Y_1_3 + 19 * Y_2_1 + 22 * Y_2_2 + 21 *
Y_2_3 + 28 * X_1_1 + 26 * X_1_2 + 29 * X_2_1 + 28 * X_2_2;
[_2] X_1_1 + X_1_2 <= 320;
[_3] X_2_1 + X_2_2 <= 450;
[_4] X_1_1 + X_2_1 <= 500;
[_5] X_1_2 + X_2_2 <= 500;
[_6] Y_1_1 + Y_2_1 >= 200;
[_7] Y_1_2 + Y_2_2 >= 240;
[_8] Y_1_3 + Y_2_3 >= 330;
[_9] - Y_1_1 - Y_1_2 - Y_1_3 + X_1_1 + X_2_1 = 0;
[_10] - Y_2_1 - Y_2_2 - Y_2_3 + X_1_2 + X_2_2 = 0;
END
PROBLEMA DE DISTRIBUCIÓN DE GLP EN CHOSICA-CHACLACAYO

Una planta envasadora de GLP en Huachipa necesita determinar su programa de compromisos de suministros de GLP en
balones de 45 kilos (para restaurantes campestres) para el fin de la segunda semana de mayo (celebración del día de la
madre) cuyas demandas son de 45 balones para la localidad de Santa Eulalia y 25 balones para la localidad de Ricardo
Palma y en consecuencia, necesita conocer cómo atender estos compromisos, siempre y cuando sus costos sean los
menores posibles.
La planta puede enviar 40 balones directamente desde su producción y se está apoyando del stock mínimo de 20 balones
que tiene en un local de venta autorizado de GLP de su propiedad en Chosica y además, con la finalidad de estudiar la
venta futura en Chaclacayo está considerando apoyarse por esta vez, de un nuevo local que recién ha sido autorizado para
el almacenamiento y venta de GLP y como tal, sólo lo puede usar como local alternativo de suministro de 10 balones
para ese fin de semana, dada la coyuntura.
Los costos de envío de cada balón (en soles) y la posibilidad de envíos directos o a través de local temporal o local de
venta autorizado o entre puntos de destino, son como sigue: el envío desde Huachipa a Chaclacayo cuesta S/3, a Chosica
S/5 y a Santa Eulalia S/8; el envío desde Chaclacayo a Chosica cuesta S/4 y a Ricardo Palma S/3.0; el envío desde
Chosica a Santa Eulalia o a Ricardo Palma tienen el mismo costo de S/2 y el envío desde Santa Eulalia a Ricardo Palma
es de S/4; todos estos costos son por unidad de balón enviado.
Se le solicita lo siguiente en forma compacta:
1. Presente su módulo de datos y definición de) variables.
2. Presente su módulo de función objetivo.
3. Presente su módulo de restricciones.
PROBLEMA DE DISTRIBUCIÓN DE GLP EN CHOSICA-CHACLACAYO
!Módulo de variables;
Sets:
ORIGEN/1,2,3,4/: CAPACIDAD;
DESTINO/2,3,4,5/: DEMANDA;
RUTA (ORIGEN, DESTINO): COSTO, X;
Endsets
!Módulo de datos (se adiciona un valor alto a los nodos de trasbordo para que
fluya las cantidades en toda dirección; 2,3 y 4);
Data:
CAPACIDAD=40,110,120,100;
DEMANDA=100,100,145,25;
COSTO=3,5,8,100,0,4,100,3,100,0,2,2,100,100,0,4;
Enddata
!Módulo de Función objetivo; Min = @Sum (RUTA: COSTO*X);
!Módulo de Restricciones;
!1) Origen; @For(ORIGEN(I): @Sum(DESTINO(J): X (I, J))<=CAPACIDAD(I));
!2) Destino; @For(DESTINO(J): @Sum(ORIGEN(I): X (I, J))>=DEMANDA(J));
End
PROBLEMA DE DISTRIBUCIÓN DE GLP EN CHOSICA-CHACLACAYO

Variable Value Reduced Cost Variable Value Reduced Cost


CAPACIDAD( 1) 40.00000 0.000000 X( 1, 2) 15.00000 0.000000
CAPACIDAD( 2) 110.0000 0.000000 X( 1, 3) 25.00000 0.000000
CAPACIDAD( 3) 120.0000 0.000000 X( 1, 4) 0.000000 1.000000
CAPACIDAD( 4) 100.0000 0.000000 X( 1, 5) 0.000000 94.00000
DEMANDA( 2) 100.0000 0.000000 X( 2, 2) 85.00000 0.000000
DEMANDA( 3) 100.0000 0.000000 X( 2, 3) 0.000000 2.000000
DEMANDA( 4) 145.0000 0.000000 X( 2, 4) 0.000000 96.00000
DEMANDA( 5) 25.00000 0.000000 X( 2, 5) 25.00000 0.000000
COSTO( 1, 2) 3.000000 0.000000 X( 3, 2) 0.000000 102.0000
COSTO( 1, 3) 5.000000 0.000000 X( 3, 3) 75.00000 0.000000
COSTO( 1, 4) 8.000000 0.000000 X( 3, 4) 45.00000 0.000000
COSTO( 1, 5) 100.0000 0.000000 X( 3, 5) 0.000000 1.000000
COSTO( 2, 2) 0.000000 0.000000 X( 4, 2) 0.000000 104.0000
COSTO( 2, 3) 4.000000 0.000000 X( 4, 3) 0.000000 102.0000
COSTO( 2, 4) 100.0000 0.000000 X( 4, 4) 100.0000 0.000000
COSTO( 2, 5) 3.000000 0.000000 X( 4, 5) 0.000000 5.000000
COSTO( 3, 2) 100.0000 0.000000
COSTO( 3, 3) 0.000000 0.000000 Row Slack or Surplus Dual Price
COSTO( 3, 4) 2.000000 0.000000 1 335.0000 -1.000000
COSTO( 3, 5) 2.000000 0.000000 2 0.000000 0.000000
COSTO( 4, 2) 100.0000 0.000000 3 0.000000 3.000000
COSTO( 4, 3) 100.0000 0.000000 4 0.000000 5.000000
COSTO( 4, 4) 0.000000 0.000000 5 0.000000 7.000000
COSTO( 4, 5) 4.000000 0.000000 6 0.000000 -3.000000
7 0.000000 -5.000000
8 0.000000 -7.000000
9 0.000000 -6.000000
PROBLEMA DE DISTRIBUCIÓN DE GLP EN CHOSICA-CHACLACAYO

MODEL:
[_1] MIN= 3*X_1_2 + 5*X_1_3 + 8*X_1_4 + 100*X_1_5 + 4*X_2_3 + 100*X_2_4 + 3*X_2_5
+ 100*X_3_2 + 2*X_3_4 + 2 X_3_5 + 100 * X_4_2 + 100 * X_4_3 + 4 * X_4_5;
[_2] X_1_2 + X_1_3 + X_1_4 + X_1_5 <= 40;
[_3] X_2_2 + X_2_3 + X_2_4 + X_2_5 <= 110;
[_4] X_3_2 + X_3_3 + X_3_4 + X_3_5 <= 120;
[_5] X_4_2 + X_4_3 + X_4_4 + X_4_5 <= 100;
[_6] X_1_2 + X_2_2 + X_3_2 + X_4_2 >= 100;
[_7] X_1_3 + X_2_3 + X_3_3 + X_4_3 >= 100;
[_8] X_1_4 + X_2_4 + X_3_4 + X_4_4 >= 145;
[_9] X_1_5 + X_2_5 + X_3_5 + X_4_5 >= 25;
END
Gracias

Elmer Tupia de la Cruz


pciietup@upc.edu.pe
INVESTIGACIÓN DE OPERACIONES I

Modelos de Producción con Inventario


en Lingo Compacto
PRODUCCIÓN DE VELEROS

Sailco Corporation tiene que determinar cuántos veleros hay que producir en cada uno de
los cuatro trimestres. La demanda durante cada uno de los siguientes cuatro trimestres es:
primer trimestre, 40 veleros; segundo trimestre, 60 veleros; tercer trimestre, 75 veleros;
cuarto trimestre, 25 veleros. Sailco tiene que cumplir a tiempo con las demandas.Al
principio del primer trimestre, Sailco tiene un inventario de 10 veleros. Durante cada
trimestre, Sailco pude producir hasta 40 veleros, en el tiempo regular de trabajo, a un
costo total de 400 dólares por velero. Sailco puede producir más veleros, al hacer que
trabajen tiempo extra los empleados durante un trimestre, a un costo total de 450 dólares
por velero. El costo de inventario por cada velero es de $ 20. Utilice la programación
lineal para determinar un programa de producción e inventario para Sailco.
Representación gráfica del problema:
Producción Demanda Almacén
PRODUCCIÓN [X] X(i) , Y(i) D(i) S(i)
Ingreso
So = 10 unid
C a pa c ida d de pro duc c ió n

40 unid 1 1 40 unid sin limite unid


CpN = $400/unid Cs = $20/unid
CpE = $450/unid
h1 = DEMANDA [D]
ho= Sale 40 unid 2 2 60 unid sin limite unid
CpN = $400/unid Cs = $20/unid
Volumen Final = Volumen Inicial + Ingreso - Sale CpE = $450/unid
INVENTARIO FINAL = INVENTARIO INICIAL + INGRESO - SALIDA
INVENTARIO FINAL (i) = INVENTARIO INICIAL (i) + PRODUCCIÓN(i) - DEMANDA(i)
40 unid 3 3 75 unid sin limite unid
Ejemplo: CpN = $400/unid Cs = $20/unid
Inv Inicial = 10 Inv Inicial = 20 CpE = $450/unid
Producción= 50 Producción= 60
Demanda = 40 Demanda = 70 40 unid 4 4 25 unid sin limite unid
Inv Final = 10 + 50 - 40 = 20 Inv Final = 20 + 60 - 70 = 10 CpN = $400/unid Cs = $20/unid

SF = SI + X - D
CpE = $450/unid Sf = 0 ton
SF(i) = SI(i) + X(i) - D(i) INVENTARIO INICIAL (i) = INVENTARIO FINAL (i-1)
SI (i) = SF(i-1)
SF (i) = SF(i-1) + X(i) - D(I) X(i) <= Capacidad de producción (i)
SF(i) = Inventario del período i S (i) = S(i-1) + X(i) - D(I) S(i) <= Capacidad de almacenamiento (i)
S(i) = S(i-1) + X(i) - D(i)
PRODUCCIÓN DE VELEROS
Índices:
𝐢: período [1, 2, 3, 4]
Variables
𝐗 𝐢 = Cantidad (en unidades) de veleros a producir en tiempo normal en el trimestre i
𝐘𝐢 = Cantidad (en unidades) de veleros a producir en tiempo extra en el trimestre i
𝐒𝐢 = Cantidad (en unidades) de veleros a almacenar en el trimestre i
𝐃𝐢 = [ 40 60 75 25]
Programa Lineal
4 4 4

𝐌𝐢𝐧 𝐙 = 400 ∗ ෍ Xi + 450 ∗ ෍ Yi + 20 ∗ ෍ Si


i=1 i=1 i=1
Sujeto a:
S0 = 10
Xi ≤ 40 ∀i = 1. . 4
Si = Si−1 + Xi + Yi − Di ; ∀i = 1. . 4
Xi, Yi, Si ≥ 0 ∀i = 1. . 4
PRODUCCIÓN DE VELEROS
Determinación de índices, conjuntos y datos: Construcción de SETS - DATA

SETS:
𝐢: período [1, 2, 3, 4] PERIODO/1..4/:X,Y,S,DEMANDA;
ENDSETS
𝐗 𝐢 = Cantidad en unidades en TN período i
𝐘𝐢 = Cantidad en unidades en ST período i
𝐒𝐢 = Cantidad en unidades en Stock período i

DATA:
𝐃𝐢 = [ 40 60 75 25] DEMANDA= 40 60 75 25;
S0=10;
ENDDATA
PRODUCCIÓN DE VELEROS
Construcción de Función Objetivo:
4 4 4

𝐌𝐢𝐧 𝐙 = 400 ∗ ෍ Xi + 450 ∗ ෍ Yi + 20 ∗ ෍ Si


i=1 i=1 i=1

MIN=@SUM(PERIODO(I): 400*X(I)+450*Y(I)+20*S(I));

Construcción de Restricciones:

Xi ≤ 40 ∀i = 1. . 4
Si = Si−1 + Xi + Yi − Di ; ∀i = 1. . 4

X(1)<=40;
S(1)=S0+ X(1)+Y(1)- DEMANDA(1);
@FOR(PERIODO(I)|I#GT#1: S(I)= S(I-1)+ X(I)+Y(I)- DEMANDA(I); X(I)<=40);

Función mayor que 1


PRODUCCIÓN DE VELEROS
Modelo de Producción con Inventario:

SETS:
PERIODO/1..4/:X,Y,S,DEMANDA;
ENDSETS

DATA:
S0=10;
DEMANDA= 40 60 75 25;
ENDDATA

MIN=@SUM(PERIODO(I): 400*X(I)+450*Y(I)+20*S(I));
S(1)=S0+ X(1)+Y(1)- DEMANDA(1);
X(1)<=40;
@FOR(PERIODO(I)|I#GT#1: S(I)= S(I-1)+ X(I)+Y(I)- DEMANDA(I); X(I)<=40);
END
PRODUCCIÓN DE VELEROS

MODEL:
[_1] MIN= 400 * X_1 + 450 * Y_1 + 20 * S_1 + 400 * X_2 + 450 * Y_2 + 20 * S_2 +
400 * X_3 + 450 * Y_3 + 20 * S_3 + 400 * X_4 + 450 * Y_4 + 20 * S_4;
[_2] - X_1 - Y_1 + S_1 = - 30;
[_3] X_1 <= 40;
[_4] - S_1 - X_2 - Y_2 + S_2 = - 60;
[_5] X_2 <= 40;
[_6] - S_2 - X_3 - Y_3 + S_3 = - 75;
[_7] X_3 <= 40;
[_8] - S_3 - X_4 - Y_4 + S_4 = - 25;
[_9] X_4 <= 40;
END
PRODUCCIÓN DE VELEROS
Variable Value Reduced Cost
S0 10.00000 0.000000
X( 1) 40.00000 0.000000
X( 2) 40.00000 0.000000
X( 3) 40.00000 0.000000
X( 4) 25.00000 0.000000
Y( 1) 0.000000 20.00000
Y( 2) 10.00000 0.000000
Y( 3) 35.00000 0.000000
Y( 4) 0.000000 50.00000
S( 1) 10.00000 0.000000
S( 2) 0.000000 20.00000
S( 3) 0.000000 70.00000
S( 4) 0.000000 420.0000
DEMANDA( 1) 40.00000 0.000000
DEMANDA( 2) 60.00000 0.000000
DEMANDA( 3) 75.00000 0.000000 Reporte de Lingo
DEMANDA( 4) 25.00000 0.000000

Row Slack or Surplus Dual Price


1 78450.00 -1.000000
2 0.000000 430.0000
3 0.000000 30.00000
4 0.000000 450.0000
5 0.000000 50.00000
6 0.000000 450.0000
7 0.000000 50.00000
8 0.000000 400.0000
9 15.00000 0.000000
PRODUCCIÓN DE VELEROS
Variable Value Reduced Cost
S0 10.00000 0.000000
X( 1) 40.00000 0.000000
X( 2) 40.00000 0.000000
X( 3) 40.00000 0.000000
X( 4) 25.00000 0.000000
Y( 1) 0.000000 20.00000
Y( 2) 10.00000 0.000000
Y( 3) 35.00000 0.000000
Y( 4) 0.000000 50.00000
S( 1) 10.00000 0.000000
S( 2) 0.000000 20.00000
S( 3) 0.000000 70.00000
S( 4) 0.000000 420.0000
DEMANDA( 1) 40.00000 0.000000
DEMANDA( 2) 60.00000 0.000000
DEMANDA( 3) 75.00000 0.000000 Reporte administrativo:
DEMANDA( 4) 25.00000 0.000000
Plan de Producción Trimestre 1 (unidad) Costos ($)
Total
Row Slack or Surplus Dual Price [veleros] 1 2 3 4
1 78450.00 -1.000000 (unidad) Unitario Total
Demanda (D) 40 60 75 25
2 0.000000 430.0000
3 0.000000 30.00000
Normal 40 40 40 25 145 400 58,000
Producción
4 0.000000 450.0000 Sobretiempo 0 10 35 0 45 450 20,250
(X)
5 0.000000 50.00000 Total 40 50 75 25 190 78,250
6 0.000000 450.0000 Inventario Inicial 10 10 0 0
7 0.000000 50.00000 (S) Final 10 0 0 0 10 20 200
8 0.000000 400.0000
Total 78,450
9 15.00000 0.000000
PRODUCCIÓN DE VELEROS
Otra sintaxis del modelo

Sets:
TRIMESTRE/1..4/: X, Y, S, INVINICIAL, DEMANDA, PRODUCCION;
End sets

Data:
INVINICIAL = 10 0 0 0;
DEMANDA = 40 60 75 25;
PRODUCCION = 40 40 40 40;
End data

Min=@Sum(TRIMESTRE(I): 400*X(I) + 450*Y(I)+ 20*S(I));


@For(TRIMESTRE(I): X(I) <= PRODUCCION(I));
@For(TRIMESTRE(I)|I#EQ#1: S(I) = INVINICIAL(I) + (X(I)+Y(I)) - DEMANDA(I));
@For(TRIMESTRE(I)|I#GT#1: S(I) = S(I-1) + (X(i)+Y(i)) - DEMANDA(I));
End
Función igual que 1 Función mayor que 1
PRODUCCIÓN DE CAMISAS Y PANTALONES
Gandhi Co. fabrica camisas y pantalones. La demanda en los próximos 3 meses, la cual se debe cumplir a
tiempo, es la siguiente:
Mes 1 Mes 2 Mes 3
Camisas 10 12 14
Pantalones 15 14 13
Durante cada mes, cuesta $4 elaborar una prenda cualquiera en turno normal y cuesta $8 en turno extra. La
capacidad mensual de producción en turno normal es 25 prendas y la capacidad mensual de producción en
turno extra es ilimitada. Es posible almacenar prendas, a un costo de inventario mensual de $3 por prenda. Al
inicio del mes 1, en el almacén hay una camisa y 2 pantalones.
Cada camisa requiere 2 yardas2 de tela y cada pantalón requiere 3 yardas2 de tela. Lo máximo de tela que se
puede comprar y el costo de compra se muestran a continuación:
Mes 1 Mes 2 Mes 3
Máximo a comprar (yardas2) 100 90 80
Costo ($/yarda2) 2 1.5 1.8
Es posible almacenar tela en cada mes, con un costo de almacenamiento despreciable. Elabore un modelo de
programación lineal que permita satisfacer la demanda al mínimo costo total.
Datos para construcción del modelo algebraico compacto
Índices:

i= 1, 2 (productos) i= 1 (camisas) , i= 2 (pantalones)


j= 1, 2, 3 (mes) j= 1 (mes 1) , j=2 (mes 2) , j=3 (mes 3)

Variables:

𝐗 𝐢𝐣 = Cantidad en unidades a producir en tiempo normal del producto tipo i en el mes j.


𝐘𝐢𝐣 = Cantidad (en unidades) a producir en tiempo extra del producto tipo i en el mes j.
𝐒𝐢𝐣 = Cantidad (en unidades) de inventario del producto tipo i en el mes j.

Estructura de datos:

Demandaij = [10 12 14 15 14 13]


Producción_Normalj = [25 25 25 ]
Inventario_Inicialij = [1 0 0 2 0 0]
Requerimientoi = [ 2 3 ]
Costoj = 2.0 1.5 1.8
Máxima_Compraj = 100 90 80
Modelo algebraico compacto

2 3 2 3 2 3 2 3

𝐌𝐢𝐧 𝐙 = 4 ∗ ෍ ෍ Xij + 8 ∗ ෍ ෍ Yij + 3 ∗ ෍ ෍ Sij + ෍ ෍ Requerimientoi ∗ (Xij + Yij ) ∗ Costoj


i=1 j=1 i=1 j=1 i=1 j=1 i=1 j=1
Sujeto a:

෍ Xij ≤ Produccion_Normalj ; j = 1. . 3
i=1
Sij = Inventario_Inicialij + Xij + Yij − Demandaij ; i = 1, 2 ; j = 1
Sij = Si,j−1 + Xij + Yij − Demandaij ; i = 1, 2 ; j = 2, 3
2

෍ Requerimientoi ∗ (Xij +Yij ) ≤ Maxima_compraj ; j = 1, 2, 3


i=1

Xij ; Yij ; Sij ≥ 0 ∀i, ∀j


Construcción del modelo en lingo compacto: SET-DATA

Sets:
i= 1, 2 (producto) Producto/1,2/: Requerimiento;
j= 1, 2, 3 (mes) Mes/1..3/: Costo, Maxima_Compra, Produccion_Normal;
PXM(Producto,Mes): Inventario_Inicial, Demanda, X, Y, S;
Endsets

𝐗 𝐢𝐣 = Cantidad TN producto i mes j.


𝐘𝐢𝐣 = Cantidad TE producto i mes j.
𝐒𝐢𝐣 = Cantidad S producto i mes j.
Data:
Requerimientoi = [ 2 3 ] Requerimiento = 2 3;
Costoj = 2.0 1.5 1.8 Costo = 2.0 1.5 1.8;
Maxima_Compraj = 100 90 80 Maxima_Compra = 100 90 80;
Produccion_Normalj = [25 25 25 ] Produccion_Normal = 25 25 25;
Inventario_Inicialij = [1 0 0 2 0 0] Inventario_Inicial = 1 0 0 2 0 0;
Demandaij = [10 12 14 15 14 13] Demanda = 10 12 14 15 14 13;
Enddata
Construcción del modelo en lingo compacto: Función Objetivo
2 3 2 3 2 3 2 3

𝐌𝐢𝐧 𝐙 = 4 ∗ ෍ ෍ Xij + 8 ∗ ෍ ෍ Yij + 3 ∗ ෍ ෍ Sij + ෍ ෍ Requerimientoi ∗ (Xij + Yij ) ∗ Costoj


i=1 j=1 i=1 j=1 i=1 j=1 i=1 j=1

𝐌𝐢𝐧 𝐙 = Min =
2 3

4 ∗ ෍ ෍ Xij + 4*@Sum(PXM(I,J): X(I,J))+


i=1 j=1
2 3

8 ∗ ෍ ෍ Yij + 8*@Sum(PXM(I,J): Y(I,J))+


i=1 j=1
2 3

3 ∗ ෍ ෍ Sij + 3*@Sum(PXM(I,J): S(I,J))+


i=1 j=1
2 3

෍ ෍ Requerimientoi ∗ (Xij + Yij ) ∗ Costoj @Sum(PXM(I,J):


i=1 j=1 Requerimiento(I)*(X(I,J)+Y(I,J))*Costo(J));
Construcción del modelo en lingo compacto: Restricciones
2

෍ Xij ≤ Produccion_Normalj ; j = 1. . 3
i=1

Sij = Inventario_Inicialij + Xij + Yij − Demandaij ; i = 1, 2 ; j = 1


Sij = Si,j−1 + Xij + Yij − Demandaij ; i = 1, 2 ; j = 2, 3
2

෍ Requerimientoi ∗ (Xij +Yij ) ≤ Maxima_compraj ; j = 1, 2, 3


i=1

@For(Mes(J): @Sum(Producto(I): X(I,J))<= Produccion_Normal(J));

@For(PXM(I,J): @For(Mes(J)|J#EQ#1:
S(I,J)=Inventario_Inicial(I,J)+(X(I,J)+Y(I,J))- Demanda(I,J)));

@For(PXM(I,J): @For(Mes(J)|J#GT#1:S(I,J)= S(I,J-1)+(X(I,J)+Y(I,J))- Demanda(I,J)));

@For(Mes(J): @Sum(Producto(I): Requerimiento(I)*(X(I,J)+Y(I,J)))<=Maxima_Compra(J));


Modelo en lingo compacto
Sets:
Producto/1,2/: Requerimiento;
Mes/1..3/: Costo, Maxima_Compra, Produccion_Normal;
PXM(Producto,Mes): Inventario_Inicial, Demanda, X, Y, S;
Endsets
Data:
Requerimiento = 2 3;
Costo = 2.0 1.5 1.8;
Maxima_Compra = 100 90 80;
Produccion_Normal = 25 25 25;
Inventario_Inicial = 1 0 0 2 0 0;
Demanda = 10 12 14 15 14 13;
Enddata

Min=@Sum(PXM(I,J):
4*X(I,J)+8*Y(I,J)+3*S(I,J)+Requerimiento(I)*(X(I,J)+Y(I,J))*Costo(J));
@For(Mes(J): @Sum(Producto(I): X(I,J))<= Produccion_Normal(J));
@For(PXM(I,J): @For(Mes(J)|J#EQ#1:
S(I,J)=Inventario_Inicial(I,J)+(X(I,J)+Y(I,J))- Demanda(I,J)));
@For(PXM(I,J): @For(Mes(J)|J#GT#1:S(I,J)= S(I,J-1)+(X(I,J)+Y(I,J))- Demanda(I,J)));
@For(Mes(J): @Sum(Producto(I):Requerimiento(I)*(X(I,J)+Y(I,J)))<=Maxima_Compra(J));
End
Variable Value Reduced Cost Row Slack or Surplus Dual Price
REQUERIMIENTO( 1) 2.000000 0.000000 1 645.6000 -1.000000
REQUERIMIENTO( 2) 3.000000 0.000000 2 3.000000 0.000000
COSTO( 1) 2.000000 0.000000 3 0.000000 4.000000
COSTO( 2) 1.500000 0.000000 4 0.000000 4.000000
COSTO( 3) 1.800000 0.000000 5 43.00000 0.000000
MAXIMA_COMPRA( 1) 100.0000 0.000000 6 24.00000 0.000000
MAXIMA_COMPRA( 2) 90.00000 0.000000 7 13.00000 0.000000
MAXIMA_COMPRA( 3) 80.00000 0.000000 8 0.000000 8.000000
PRODUCCION_NORMAL( 1) 25.00000 0.000000 9 0.000000 10.00000
PRODUCCION_NORMAL( 2) 25.00000 0.000000 10 0.000000 11.00000
PRODUCCION_NORMAL( 3) 25.00000 0.000000 11 0.000000 11.60000
X( 1, 1) 9.000000 0.000000 12 0.000000 12.50000
X( 1, 2) 11.00000 0.000000 13 0.000000 13.40000
X( 1, 3) 14.00000 0.000000
X( 2, 1) 13.00000 0.000000
X( 2, 2) 14.00000 0.000000
X( 2, 3) 11.00000 0.000000
Y( 1, 1) 0.000000 4.000000
Y( 1, 2) 1.000000 0.000000
Y( 1, 3) 0.000000 0.000000
Reporte de lingo
Y( 2, 1) 0.000000 4.000000
Y( 2, 2) 0.000000 0.000000
Y( 2, 3) 2.000000 0.000000
S( 1, 1) 0.000000 0.000000
S( 1, 2) 0.000000 2.400000
S( 1, 3) 0.000000 14.60000
S( 2, 1) 0.000000 0.5000000
S( 2, 2) 0.000000 2.100000
S( 2, 3) 0.000000 16.40000
INVENTARIO_INICIAL( 1, 1) 1.000000 0.000000
INVEMTARIO_INICIAL( 1, 2) 0.000000 0.000000
INVENTARIO_INICIAL( 1, 3) 0.000000 0.000000
INVENTARIO_INICIAL( 2, 1) 2.000000 0.000000
INVENTARIO_INICIAL( 2, 2) 0.000000 0.000000
INVENTARIO_INICIAL( 2, 3) 0.000000 0.000000
DEMANDA( 1, 1) 10.00000 0.000000
DEMANDA( 1, 2) 12.00000 0.000000
DEMANDA( 1, 3) 14.00000 0.000000
DEMANDA( 2, 1) 15.00000 0.000000
DEMANDA( 2, 2) 14.00000 0.000000
DEMANDA( 2, 3) 13.00000 0.000000
Variable Value Reduced Cost Row Slack or Surplus Dual Price
REQUERIMIENTO( 1) 2.000000 0.000000 1 645.6000 -1.000000
REQUERIMIENTO( 2) 3.000000 0.000000 2 3.000000 0.000000
COSTO( 1) 2.000000 0.000000 3 0.000000 4.000000
COSTO( 2) 1.500000 0.000000 4 0.000000 4.000000
COSTO( 3) 1.800000 0.000000 5 43.00000 0.000000
MAXIMA_COMPRA( 1) 100.0000 0.000000 6 24.00000 0.000000
MAXIMA_COMPRA( 2) 90.00000 0.000000 7 13.00000 0.000000
MAXIMA_COMPRA( 3) 80.00000 0.000000 8 0.000000 8.000000
PRODUCCION_NORMAL( 1) 25.00000 0.000000 9 0.000000 10.00000
PRODUCCION_NORMAL( 2) 25.00000 0.000000 10 0.000000 11.00000
PRODUCCION_NORMAL( 3) 25.00000 0.000000 11 0.000000 11.60000
X( 1, 1) 9.000000 0.000000 12 0.000000 12.50000
X( 1, 2) 11.00000 0.000000 13 0.000000 13.40000
X( 1, 3) 14.00000 0.000000 Trimestre 1 (unidad) Costos ($)
Plan de Producción
X( 2, 1) 13.00000 0.000000 [camisas] 1 2 3
Total
X( 2, 2) 14.00000 0.000000 (unidad) Unitario Total
Demanda (D1) 10 12 14
X( 2, 3) 11.00000 0.000000 Normal 9 11 14 34 4 136.00
Producción
Y( 1, 1) 0.000000 4.000000 Sobretiempo 0 1 0 1 8 8.00
(X)
Y( 1, 2) 1.000000 0.000000 Total 9 12 14 35 144.00
Y( 1, 3) 0.000000 0.000000
Reporte Inventario Inicial 1 0 0
Y( 2, 1) 0.000000 4.000000 administrativo (S) Final 0 0 0 0 3 0.00
Y( 2, 2) 0.000000 0.000000 Total 144.00
Y( 2, 3) 2.000000 0.000000 Plan de Producción Trimestre 1 (unidad)
Total
Costos ($)
S( 1, 1) 0.000000 0.000000 [pantalones] 1 2 3
(unidad) Unitario Total
S( 1, 2) 0.000000 2.400000 Demanda (D2) 15 14 13
S( 1, 3) 0.000000 14.60000 Normal 13 14 11 38 4 152.00
Producción
Sobretiempo 0 0 2 2 8 16.00
S( 2, 1) 0.000000 0.5000000 (X)
Total 13 14 13 40 168.00
S( 2, 2) 0.000000 2.100000
Inventario Inicial 2 0 0
S( 2, 3) 0.000000 16.40000 (S) Final 0 0 0 0 3 0.00
INVENTARIO_INICIAL( 1, 1) 1.000000 0.000000 Total 168.00
INVEMTARIO_INICIAL( 1, 2) 0.000000 0.000000
Materia prima (tela)
INVENTARIO_INICIAL( 1, 3) 0.000000 0.000000
Cantidad 9 12 14 35
INVENTARIO_INICIAL( 2, 1) 2.000000 0.000000 Camisa Req Unit 2 2 2 2
INVENTARIO_INICIAL( 2, 2) 0.000000 0.000000 Total Requ 18 24 28 70
INVENTARIO_INICIAL( 2, 3) 0.000000 0.000000 Cantidad 13 14 13 40
DEMANDA( 1, 1) 10.00000 0.000000 Pantalón Req Unit 3 3 3 3
DEMANDA( 1, 2) 12.00000 0.000000 Total Requ 39 42 39 120
DEMANDA( 1, 3) 14.00000 0.000000 Total Tela (yardas2) 57 66 67 190
DEMANDA( 2, 1) 15.00000 0.000000 Costo Tela ($/yardas2) 2 1.5 1.8 ---
DEMANDA( 2, 2) 14.00000 0.000000 Total Costo ($) 114.00 99.00 120.60 333.60 333.60
DEMANDA( 2, 3) 13.00000 0.000000 Costo total ($) 645.60
Modelo en lingo compacto 2
Sets:
Producto/1,2/: Requer;
Mes/1..3/: Costo, Maxima_Compra, Produccion_Normal;
Produccion_Mes(Producto,Mes): SIni, D, X, Y, S;
Endsets
Data:
Requer = 2 3;
Costo = 2.0 1.5 1.8;
Maxima_Compra = 100 90 80;
Produccion_Normal = 25 25 25;
SIni = 1 0 0 2 0 0;
D = 10 12 14 15 14 13;
Enddata

Min=@Sum(Produccion_Mes(I,J):
4*X(I,J)+8*Y(I,J)+3*S(I,J)+(X(I,J)+Y(I,J))*Requer(I)*Costo(J));
@For(Mes(J): @Sum(Producto(I): X(I,J))<= Produccion_Normal(J));
@For(Mes(J): @Sum(Producto(I): (X(I,J)+Y(I,J))*Requer(I)) <= Maxima_Compra(J));
@For(Produccion_Mes(I,J):@For(Mes(J)|J#EQ#1:S(I,J)=SIni(I,J)+X(I,J)+Y(I,J)-D(I,J)));
@For(Produccion_Mes(I,J):@For(Mes(J)|J#GT#1:S(I,J)=S(I,J-1)+X(I,J)+Y(I,J)-D(I,J)));
End
MODEL:
[_1] MIN= 8 * X_1_1 + 12 * Y_1_1 + 3 * S_1_1 + 7 * X_1_2 + 11 * Y_1_2 + 3 * S_1_2 +
7.6 * X_1_3 + 11.6 * Y_1_3 + 3 * S_1_3 + 10 * X_2_1 + 14 * Y_2_1 + 3 * S_2_1 + 8.5
* X_2_2 + 12.5 * Y_2_2 + 3 * S_2_2 + 9.4 * X_2_3 + 13.4 * Y_2_3 + 3 * S_2_3;
[_2] X_1_1 + X_2_1 <= 25;
[_3] X_1_2 + X_2_2 <= 25;
[_4] X_1_3 + X_2_3 <= 25;
[_5] 2 * X_1_1 + 2 * Y_1_1 + 3 * X_2_1 + 3 * Y_2_1 <= 100;
[_6] 2 * X_1_2 + 2 * Y_1_2 + 3 * X_2_2 + 3 * Y_2_2 <= 90;
[_7] 2 * X_1_3 + 2 * Y_1_3 + 3 * X_2_3 + 3 * Y_2_3 <= 80;
[_8] - X_1_1 - Y_1_1 + S_1_1 = - 9;
[_9] - X_2_1 - Y_2_1 + S_2_1 = - 13;
[_10] - S_1_1 - X_1_2 - Y_1_2 + S_1_2 = - 12;
[_11] - S_1_2 - X_1_3 - Y_1_3 + S_1_3 = - 14;
[_12] - S_2_1 - X_2_2 - Y_2_2 + S_2_2 = - 14;
[_13] - S_2_2 - X_2_3 - Y_2_3 + S_2_3 = - 13;
END
PRODUCCIÓN DE BICICLETAS
La empresa Body Cycling se dedica a la fabricación y ensamblaje de bicicletas para la exportación; posee 3 líneas de
bicicletas: MTB, ATB y BMX, las cuales poseen tiempos de producción diferentes y demanda de cada tipo de bicicletas
para los próximos tres meses, en unidades, tal y como se indican en las siguientes tablas.
Línea Tiempo de producción (horas) Mes Enero Febrero Marzo
MTB 6 MTB 1000 500 250
ATB 5 ATB 500 200 150
BMX 4 BMX 250 120 50
La planta cuenta con 30 operarios, los cuales deben permanecer en forma constante trabajando 8 horas diarias, 4 semanas
al mes y 5 días por semana; sin embargo, es posible trabajar horas extras hasta un límite de 40% de las horas normales. El
almacén tiene capacidad para 1000 bicicletas, indistintamente del modelo o tamaño y se ha establecido los siguientes
costos: mano de obra regular de $3200 al mes para un total de 160 horas mensuales, mano de obra extra de $25 por hora
adicional y mantenimiento de stock a $5 por unidad almacenada.
El inventario inicial de cada tipo de bicicletas para el mes de
Enero aparece en la siguiente tabla:
Línea Stock Formule un modelo de programación lineal para el
MTB 400 programa de producción de la empresa que tome en
ATB 150 cuenta satisfacer la demanda mensual (no se aceptan
BMX 50 ventas pendientes).
Índices:

i= 1, 2, 3 (Línea de bicicleta ) i= 1 (MTB), i= 2 (ATB), i= 3 (BMX)


j= 1, 2, 3 (mes) j= 1 (mes 1) , j= 2 (mes 2), j= 3 (mes 3)

Variables:

𝐗 𝐢𝐣 = Cantidad en unidades a fabricar en tiempo normal de bicicletas tipo i en el mes j


𝐘𝐢𝐣 = Cantidad en unidades a fabricar en tiempo extra de bicicletas tipo i en el mes j.
𝐒𝐢𝐣 = Cantidad de unidades de inventario de bicicletas de la línea tipo i en el mes j.

Estructura de datos:

Tiempo de produccióni (TPi) = [6 5 4]


Capacidad de Producción_Horas _Hombre_Normalj (CPNj)= 30*8*4*5=4800) = [4800 4800 4800]
Capacidad de Producción_Horas _Hombre_Extraj (CPEj)= 40%*4800=1920) = [1920 1920 1920]
Capacidad_de_Almacénj (CAj)= [1000 1000 1000]
Costo_hora-hombre normal= $3200/160horas_mes = $20
Costo_hora-hombre extra = $25
Costo_almacenamiento unitario = $5
Demanda Mensualij (Dij) = [1000 500 250 500 200 150 250 120 50]
Sinii,1 = [400 150 50]
3 3 3 3 3 3

Min Z = 20 ෍ ෍ TPi ∗ Xij + 25 ෍ ෍ TPi ∗ Yij + 5 ෍ ෍ Sij


i=1 j=1 i=1 j=1 i=1 j=1
Sujeto a:
3

෍ Xij ∗ TPi ≤ CPNj ; j = 1, 2 , 3


i=1
3

෍ Yij ∗ TPi ≤ CPEj ; j = 1, 2 , 3


i=1
3

෍ Sij ≤ CAj ; j = 1, 2 , 3
i=1
Sij = Siniij + Xij + Yij − Dij ; i = 1, 2, 3 ; j = 1
Sij = Si,j−1 + Xij + Yij − Dij ; i = 1, 2, 3 ; j = 2, 3

Xij , Yij, Sij ≥ 0 ∀i, ∀j


SETS:
BICICLETA/1..3/: TP;
MES/1..3/: CPN, CPE, CA;
LXM(BICICLETA,MES):D, SINI, X, Y, S;
ENDSETS
DATA:
TP= 6 5 4;
CPN= 4800 4800 4800;
CPE= 1920 1920 1920;
CA= 1000 1000 1000;
D= 1000 500 250 500 200 150 250 120 50;
SINI = 400 0 0 150 0 0 50 0 0;
ENDDATA

MIN=@SUM(LXM(I,J):20*X(I,J)*TP(I)+25*Y(I,J)*TP(I)+5*S(I,J));
@FOR(MES(J):@SUM(BICICLETA(I):X(I,J)*TP(I))<=CPN(J));
@FOR(MES(J):@SUM(BICICLETA(I):Y(I,J)*TP(I))<=CPE(J));
@FOR(MES(J):@SUM(BICICLETA(I):S(I,J))<= CA(J));
@FOR(LXM(I,J):@FOR(MES(J)|J#EQ#1:S(I,J)=SINI(I,J)+(X(I,J)+Y(I,J))-D(I,J)));
@FOR(LXM(I,J):@FOR(MES(J)|J#GT#1:S(I,J)=S(I,J-1)+(X(I,J)+Y(I,J))-D(I,J)));
MODEL:
[_1] MIN= 120 * X_1_1 + 150 * Y_1_1 + 5 * S_1_1 + 120 * X_1_2 + 150 * Y_1_2 + 5 *
S_1_2 + 120 * X_1_3 + 150 * Y_1_3 + 5 * S_1_3 + 100 * X_2_1 + 125 * Y_2_1 + 5 *
S_2_1 + 100 * X_2_2 + 125 * Y_2_2 + 5 * S_2_2 + 100 * X_2_3 + 125 * Y_2_3 + 5 *
S_2_3 + 80 * X_3_1 + 100 * Y_3_1 + 5 * S_3_1 + 80 * X_3_2 + 100 * Y_3_2 + 5 *
S_3_2 + 80 * X_3_3 + 100 * Y_3_3 + 5 * S_3_3;
[_2] 6 * X_1_1 + 5 * X_2_1 + 4 * X_3_1 <= 4800;
[_3] 6 * X_1_2 + 5 * X_2_2 + 4 * X_3_2 <= 4800;
[_4] 6 * X_1_3 + 5 * X_2_3 + 4 * X_3_3 <= 4800;
[_5] 6 * Y_1_1 + 5 * Y_2_1 + 4 * Y_3_1 <= 1920;
[_6] 6 * Y_1_2 + 5 * Y_2_2 + 4 * Y_3_2 <= 1920;
[_7] 6 * Y_1_3 + 5 * Y_2_3 + 4 * Y_3_3 <= 1920;
[_8] S_1_1 + S_2_1 + S_3_1 <= 1000;
[_9] S_1_2 + S_2_2 + S_3_2 <= 1000;
[_10] S_1_3 + S_2_3 + S_3_3 <= 1000;
[_11] - X_1_1 - Y_1_1 + S_1_1 = - 600;
[_12] - X_2_1 - Y_2_1 + S_2_1 = - 350;
[_13] - X_3_1 - Y_3_1 + S_3_1 = - 200;
[_14] - S_1_1 - X_1_2 - Y_1_2 + S_1_2 = - 500;
[_15] - S_1_2 - X_1_3 - Y_1_3 + S_1_3 = - 250;
[_16] - S_2_1 - X_2_2 - Y_2_2 + S_2_2 = - 200;
[_17] - S_2_2 - X_2_3 - Y_2_3 + S_2_3 = - 150;
[_18] - S_3_1 - X_3_2 - Y_3_2 + S_3_2 = - 120;
[_19] - S_3_2 - X_3_3 - Y_3_3 + S_3_3 = - 50;
END
Variable Value Reduced Cost Variable Value Reduced Cost
TP( 1) 6.000000 0.000000 SINI( 1, 1) 400.0000 0.000000
TP( 2) 5.000000 0.000000 SINI( 1, 2) 0.000000 0.000000
TP( 3) 4.000000 0.000000 SINI( 1, 3) 0.000000 0.000000
CPN( 1) 4800.000 0.000000 SINI( 2, 1) 150.0000 0.000000
CPN( 2) 4800.000 0.000000 SINI( 2, 2) 0.000000 0.000000
CPN( 3) 4800.000 0.000000 SINI( 2, 3) 0.000000 0.000000
CPE( 1) 1920.000 0.000000 SINI( 3, 1) 50.00000 0.000000
CPE( 2) 1920.000 0.000000 SINI( 3, 2) 0.000000 0.000000
CPE( 3) 1920.000 0.000000 SINI( 3, 3) 0.000000 0.000000
CA( 1) 1000.000 0.000000 D( 1, 1) 1000.000 0.000000
CA( 2) 1000.000 0.000000 D( 1, 2) 500.0000 0.000000
CA( 3) 1000.000 0.000000 D( 1, 3) 250.0000 0.000000
X( 1, 1) 375.0000 0.000000 D( 2, 1) 500.0000 0.000000
X( 1, 2) 500.0000 0.000000 D( 2, 2) 200.0000 0.000000
X( 1, 3) 250.0000 0.000000 D( 2, 3) 150.0000 0.000000
X( 2, 1) 350.0000 0.000000 D( 3, 1) 250.0000 0.000000
X( 2, 2) 200.0000 0.000000 D( 3, 2) 120.0000 0.000000
X( 2, 3) 150.0000 0.000000 D( 3, 3) 50.00000 0.000000
X( 3, 1) 200.0000 0.000000 Row Slack or Surplus Dual Price
X( 3, 2) 120.0000 0.000000 1 268350.0 -1.000000
X( 3, 3) 50.00000 0.000000
Reporte del lingo 2 0.000000 5.000000
Y( 1, 1) 225.0000 0.000000 3 320.0000 0.000000
Y( 1, 2) 0.000000 30.00000 4 2350.000 0.000000
Y( 1, 3) 0.000000 30.00000 5 570.0000 0.000000
Y( 2, 1) 0.000000 0.000000 6 1920.000 0.000000
Y( 2, 2) 0.000000 25.00000 7 1920.000 0.000000
Y( 2, 3) 0.000000 25.00000 8 1000.000 0.000000
Y( 3, 1) 0.000000 0.000000 9 1000.000 0.000000
Y( 3, 2) 0.000000 20.00000 10 1000.000 0.000000
Y( 3, 3) 0.000000 20.00000 11 0.000000 150.0000
S( 1, 1) 0.000000 35.00000 12 0.000000 125.0000
S( 1, 2) 0.000000 5.000000 13 0.000000 100.0000
S( 1, 3) 0.000000 125.0000 14 0.000000 120.0000
S( 2, 1) 0.000000 30.00000 15 0.000000 120.0000
S( 2, 2) 0.000000 5.000000 16 0.000000 100.0000
S( 2, 3) 0.000000 105.0000 17 0.000000 100.0000
S( 3, 1) 0.000000 25.00000 18 0.000000 80.00000
S( 3, 2) 0.000000 5.000000 19 0.000000 80.00000
S( 3, 3) 0.000000 85.00000
Variable Value Reduced Cost Variable Value Reduced Cost
TP( 1) 6.000000 0.000000 SINI( 1, 1) 400.0000 0.000000
TP( 2) 5.000000 0.000000 SINI( 1, 2) 0.000000 0.000000
TP( 3) 4.000000 0.000000 SINI( 1, 3) 0.000000 0.000000
CPN( 1) 4800.000 0.000000 SINI( 2, 1) 150.0000 0.000000
CPN( 2) 4800.000 0.000000 SINI( 2, 2) 0.000000 0.000000
CPN( 3) 4800.000 0.000000 SINI( 2, 3) 0.000000 0.000000
CPE( 1) 1920.000 0.000000 SINI( 3, 1) 50.00000 0.000000
CPE( 2) 1920.000 0.000000 SINI( 3, 2) 0.000000 0.000000
CPE( 3) 1920.000 0.000000 SINI( 3, 3) 0.000000 0.000000
CA( 1) 1000.000 0.000000 D( 1, 1) 1000.000 0.000000
CA( 2) 1000.000 0.000000 D( 1, 2) 500.0000 0.000000
CA( 3) 1000.000 0.000000 D( 1, 3) 250.0000 0.000000
X( 1, 1) 375.0000 0.000000 D( 2, 1) 500.0000 0.000000
X( 1, 2) 500.0000 0.000000 D( 2, 2) 200.0000 0.000000
X( 1, 3) 250.0000 0.000000 D( 2, 3) 150.0000 0.000000
X( 2, 1) 350.0000 0.000000 D( 3, 1) 250.0000 0.000000
X( 2, 2) 200.0000 0.000000 D( 3, 2) 120.0000 0.000000
X( 2, 3) 150.0000 0.000000 D( 3, 3) 50.00000 0.000000
X( 3, 1) 200.0000 0.000000 Row Slack or Surplus Dual Price
X( 3, 2) 120.0000 0.000000 1 268350.0 -1.000000
X( 3, 3) 50.00000 0.000000
Reporte del lingo 2 0.000000 5.000000
Y( 1, 1) 225.0000 0.000000 3 320.0000 0.000000
Y( 1, 2) 0.000000 30.00000 4 2350.000 0.000000
Y( 1, 3) 0.000000 30.00000 5 570.0000 0.000000
Y( 2, 1) 0.000000 0.000000 6 1920.000 0.000000
Y( 2, 2) 0.000000 25.00000 7 1920.000 0.000000
Y( 2, 3) 0.000000 25.00000 8 1000.000 0.000000
Y( 3, 1) 0.000000 0.000000 9 1000.000 0.000000
Y( 3, 2) 0.000000 20.00000 10 1000.000 0.000000
Y( 3, 3) 0.000000 20.00000 11 0.000000 150.0000
S( 1, 1) 0.000000 35.00000 12 0.000000 125.0000
S( 1, 2) 0.000000 5.000000 13 0.000000 100.0000
S( 1, 3) 0.000000 125.0000 14 0.000000 120.0000
S( 2, 1) 0.000000 30.00000 15 0.000000 120.0000
S( 2, 2) 0.000000 5.000000 16 0.000000 100.0000
S( 2, 3) 0.000000 105.0000 17 0.000000 100.0000
S( 3, 1) 0.000000 25.00000 18 0.000000 80.00000
S( 3, 2) 0.000000 5.000000 19 0.000000 80.00000
S( 3, 3) 0.000000 85.00000
Reporte Plan de Producción Mes (unidad)
Total
Tiempo de Total de Costos ($)
[Bicicleta MTB] 1 2 3 producción tiempo Unitario
administrativo Demanda (D1) 1000 500 250
(unidad)
Unit (hr) empleado (hr) ($/hr)
Total

Normal 375 500 250 1125 6 6750 20 135,000.00


Producción
Sobretiempo 225 0 0 225 6 1350 25 33,750.00
(X)
Total 600 500 250 1350 168,750.00
Inventario Inicial 400 0 0
(S) Final 0 0 0 0 5 0.00
Total 168,750.00
Plan de Producción Mes (unidad) Tiempo de Total de Costos ($)
Total
[Bicicleta ATB] 1 2 3 producción tiempo Unitario
(unidad) Total
Demanda (D2) 500 200 150 Unit (hr) empleado (hr) ($/hr)
Normal 350 200 150 700 5 3500 20 70,000.00
Producción
Sobretiempo 0 0 0 0 5 0 25 0.00
(X)
Total 350 200 150 700 70,000.00
Inventario Inicial 150 0 0
(S) Final 0 0 0 0 5 0.00
Total 70,000.00
Plan de Producción Mes (unidad) Tiempo de Total de Costos ($)
Total
[Bicicleta BMX] 1 2 3 producción tiempo Unitario
(unidad) Total
Demanda (D3) 250 120 50 Unit (hr) empleado (hr) ($/hr)
Normal 200 120 50 370 4 1480 20 29,600.00
Producción
Sobretiempo 0 0 0 0 4 0 25 0.00
(X)
Total 200 120 50 370 29,600.00
Inventario Inicial 50 0 0
(S) Final 0 0 0 0 5 0.00
Total 29,600.00

Costo total ($) 268,350.00


REPARACIÓN DE COMPUTADORAS
CLS es una cadena de tiendas de servicio para computadoras. El número de horas de reparación
especializada que requiere CLS durante los próximos cinco meses, se da a continuación:
Horas de reparación requeridas mensualmente
Mes 1 (enero) 6000
Mes 2 (febrero) 7000
Mes 3 (marzo) 8000
Mes 4 (abril) 9500
Mes 5 (mayo) 11000
Al principio de enero, 50 técnicos especializados trabajan para CLS. Cada técnico especializado puede
trabajar hasta 160 horas al mes. Para satisfacer futuras demandas, hay que capacitar a nuevos técnicos. La
capacitación de un nuevo técnico dura un mes. Un técnico experimentado tiene que supervisar al aprendiz
durante 50 horas del mes de entrenamiento. A cada técnico experimentado se le pagan mensualmente $2000
(aunque no trabaje las 160 horas). Durante el mes de entrenamiento, se paga al aprendiz $1000 al mes. Al
final de cada mes, 5% de los técnicos experimentados de CLS, cambian de trabajo, para irse con Plum
Computers. Formule un modelo de Programación Lineal cuya solución permita a CLS minimizar los costos
de trabajo que se presentan al cumplir con los requerimientos de servicio durante los próximos meses.
Muchas gracias
INVESTIGACIÓN DE OPERACIONES I

Modelos Especiales de Programación Lineal


[Modelo de Redes]
Conceptos básicos de una red
Nodo

Red : conjunto de nodos y arcos Arco

i j
costo,
tiempo,
distancia,
Peso de arco =
riesgo,
capacidad
etc

Ejemplo de redes
Consideraciones para modelar PL en redes
nodo i

bi Capacidad de arco:
j i j
Xij
i j
Cantidad de flujo que ingresa Cantidad de flujo que sale [Uij]
Xji Xij
Xij ≤ Uij
Principio de conservación de energía = Ley de
Kirchoff

Cantidad de Cantidad de flujo


flujo que sale que ingresa
bi

Xij = Cantidad de flujo desde un origen i a cualquier otro destino j


(cantidad en arco ij)
FLUJO A COSTO MÍNIMO
Considere una red que representa la distribución de cantidades desde orígenes hasta destinos en las que se
indican costo de envíos y cantidades a enviar y a recibir. Nodos de oferta
Costo de envío a de un
Valor
nodo a otro nodo bi
c13 3 i
del nodo c36

+b1 1 c14 6 -b6


+bi i
c46
c23
c24 4 c47 c37 Nodos de demanda

c15 c56 bi
2 7 -b7 i
+b2
c25 c57
Nodo de 5 Nodo de
i -bi
oferta demanda
Nodo de transbordo
Si bi=0 ➔ Nodo de transbordo
Modelo compacto de PL de flujo a costo mínimo
n n
Variable de decisión:
Min Z = ෍ ෍ Cij ∗ Xij
Xij = Cantidad de flujo desde un origen i a
cualquier otro destino j (cantidad en arco ij) i=1 j=1
Subject to
Datos:
n n
cij = Costo desde un origen i a cualquier otro
destino j (peso de arco ij)
෍ Xij − ෍ Xji = bi ; ∀ i
bi = Cantidad de oferta o demanda del nodo i j=1 j=1
(oferta con signo +, demanda con signo -,
transbordo 0) Xij ≥ 0 ; ∀ i, ∀j
n = número de nodos
Cada nodo es una restricción: i = 1 a n
[El PL encuentra la solución con n-1 restricciones]
Modelo compacto de PL de flujo a costo mínimo
Función objetivo: Conjunto (i,j) [sets derivados]
n n

Min Z = ෍ ෍ Cij ∗ Xij Min= @SUM(RED:COSTO*X);


i=1 j=1
Restricciones:
n n

෍ Xij − ෍ Xji = bi ; ∀ i
j=1 j=1
Conjunto (i)
[sets primitivo]

@FOR(NODO(I):
@SUM(RED(I,J):X(I,J))-@SUM(RED(J,I):X(J,I))=B(I));
Distribución de plantas a mercados en redes
Una empresa cuenta con dos plantas con capacidad de producción de 50 y 40 toneladas y desea enviar a sus
dos principales mercados que demandan 30 y 60 toneladas del mismo producto. Tienen distintas opciones
para enviar dichos productos y necesitan saber como hacerlo, toda vez que en sus opciones tienen costos
unitarios por tonelada. Recomiende la distribución óptima. Los datos se muestran en la siguiente figura:

2 3
7

+50 1 1 2 6 6 -30
5
5 4
8
4
+40 2 9 7 -60
6 4
5
Sintaxis compacto de PL de flujo a costo mínimo

Número de nodos arco


SETS:
NODO/1..7/:B;
RED(NODO,NODO)/1,3 1,4 1,5 2,3 2,4 2,5 3,6 3,7 4,6 4,7 5,6 5,7/:COSTO,X;
ENDSETS
DATA:
B= 50,40,0, 0, 0, -30,-60;
COSTO= 2, 1, 5, 2, 4, 6, 7, 6, 5, 8, 9, 4; Modelo de PL
ENDDATA
MIN= @SUM(RED:COSTO*X);
@FOR(NODO(I): @SUM(RED(I,J):X(I,J))-@SUM(RED(J,I):X(J,I))=B(I));
END
Variable Value Reduced Cost
B( 1) 50.00000 0.000000 Row Slack or Surplus Dual Price
B( 2) 40.00000 0.000000 1 660.0000 -1.000000
B( 3) 0.000000 0.000000 2 0.000000 -2.000000
B( 4) 0.000000 0.000000 3 0.000000 -2.000000
B( 5) 0.000000 0.000000 4 0.000000 0.000000
B( 6) -30.00000 0.000000 5 0.000000 -1.000000
B( 7) -60.00000 0.000000 6 0.000000 2.000000
COSTO( 1, 3) 2.000000 0.000000 7 0.000000 4.000000
COSTO( 1, 4) 1.000000 0.000000 8 0.000000 6.000000
COSTO( 1, 5) 5.000000 0.000000
COSTO( 2, 3) 2.000000 0.000000
COSTO( 2, 4) 4.000000 0.000000
COSTO( 2, 5) 6.000000 0.000000
COSTO( 3, 6) 7.000000 0.000000
COSTO( 3, 7) 6.000000 0.000000 Reporte del lingo
COSTO( 4, 6) 5.000000 0.000000
COSTO( 4, 7) 8.000000 0.000000
COSTO( 5, 6) 9.000000 0.000000
COSTO( 5, 7) 4.000000 0.000000
X( 1, 3) 20.00000 0.000000
X( 1, 4) 30.00000 0.000000
X( 1, 5) 0.000000 1.000000 MODEL:
X( 2, 3) 40.00000 0.000000 [_1] MIN= 2 * X_1_3 + X_1_4 + 5 * X_1_5 + 2 * X_2_3 + 4 * X_2_4 + 6 * X_2_5
X( 2, 4) 0.000000 3.000000 + 7 * X_3_6 + 6 * X_3_7 + 5 * X_4_6 + 8 * X_4_7 + 9 * X_5_6 + 4 * X_5_7;
X( 2, 5) 0.000000 2.000000 [_2] X_1_3 + X_1_4 + X_1_5 = 50;
X( 3, 6) 0.000000 3.000000 [_3] X_2_3 + X_2_4 + X_2_5 = 40;
X( 3, 7) 60.00000 0.000000 [_4] - X_1_3 - X_2_3 + X_3_6 + X_3_7 = 0;
X( 4, 6) 30.00000 0.000000 [_5] - X_1_4 - X_2_4 + X_4_6 + X_4_7 = 0;
X( 4, 7) 0.000000 1.000000 [_6] - X_1_5 - X_2_5 + X_5_6 + X_5_7 = 0;
X( 5, 6) 0.000000 7.000000 [_7] - X_3_6 - X_4_6 - X_5_6 = - 30;
X( 5, 7) 0.000000 0.000000 [_8] - X_3_7 - X_4_7 - X_5_7 = - 60;
END
Variable Value Reduced Cost
B( 1) 50.00000 0.000000 Row Slack or Surplus Dual Price
B( 2) 40.00000 0.000000 1 660.0000 -1.000000
B( 3) 0.000000 0.000000 2 0.000000 -2.000000
B( 4) 0.000000 0.000000 3 0.000000 -2.000000
B( 5) 0.000000 0.000000 4 0.000000 0.000000
B( 6) -30.00000 0.000000 5 0.000000 -1.000000
B( 7) -60.00000 0.000000 6 0.000000 2.000000
COSTO( 1, 3) 2.000000 0.000000 7 0.000000 4.000000
COSTO( 1, 4) 1.000000 0.000000 8 0.000000 6.000000
COSTO( 1, 5) 5.000000 0.000000
COSTO( 2, 3) 2.000000 0.000000 Flujo de distribución
COSTO( 2, 4) 4.000000 0.000000 a costo mínimo:
COSTO( 2, 5) 6.000000 0.000000
COSTO( 3, 6) 7.000000 0.000000
COSTO( 3, 7) 6.000000 0.000000
COSTO( 4, 6) 5.000000 0.000000
COSTO( 4, 7) 8.000000 0.000000
COSTO( 5, 6) 9.000000 0.000000
COSTO( 5, 7) 4.000000 0.000000
X( 1, 3) 20.00000 0.000000
X( 1, 4) 30.00000 0.000000
X( 1, 5) 0.000000 1.000000
X( 2, 3) 40.00000 0.000000
X( 2, 4) 0.000000 3.000000
X( 2, 5) 0.000000 2.000000
X( 3, 6) 0.000000 3.000000 Z* = 660
X( 3, 7) 60.00000 0.000000
X( 4, 6) 30.00000 0.000000 Reporte administrativo:
X( 4, 7) 0.000000 1.000000 Cubrir la demanda del mercado 6 desde la planta 1 con 30 unidades y
X( 5, 6) 0.000000 7.000000
X( 5, 7) 0.000000 0.000000 cubrir la demanda del mercado 7 enviando 20 unidades desde la planta
1 y 40 unidades desde la planta 2, a un costo mínimo de $660.
Proyectos de inversión
Una empresa desea invertir 530M$ en 4 proyectos que le pueden generar distintas riesgos (en unidades
numéricas de 0 a 100 que se suman entre sí) sabiendo que se tiene la opción de desvío de inversiones entre
proyectos con cierto valor de riesgo; la información se resumen en el siguiente grafo con la indicación de los
requerimientos por proyectos (del 2 al 5) y sus respectivos riesgos (peso del arco). Se solicita determinar las
inversiones a realizar con el menor valor de riesgo.

-100 -110
1 2
2 3 4 -195
24 26
21 1
+530 1
24

5 -125
Modelo en lingo compacto

SETS:
NODO/1..5/:B;
RED(NODO,NODO)/1,2 1,3 1,4 1,5 2,3 3,4 4,5 /:RIESGO,X;
ENDSETS
DATA:
B = 530,-100,-110,-195,-125;
RIESGO = 24,26,21,24,1,2,1;
ENDDATA
MIN= @SUM(RED:RIESGO*X);
@FOR(NODO(I): @SUM(RED(I,J):X(I,J))-@SUM(RED(J,I):X(J,I))=B(I));
END
Variable Value Reduced Cost Row Slack or Surplus Dual Price
B( 1) 530.0000 0.000000 1 11995.00 -1.000000
B( 2) -100.0000 0.000000 2 0.000000 -21.00000
B( 3) -110.0000 0.000000 3 0.000000 3.000000
B( 4) -195.0000 0.000000 4 0.000000 4.000000
B( 5) -125.0000 0.000000 5 0.000000 0.000000
RIESGO( 1, 2) 24.00000 0.000000 6 0.000000 1.000000
RIESGO( 1, 3) 26.00000 0.000000
RIESGO( 1, 4) 21.00000 0.000000
RIESGO( 1, 5) 24.00000 0.000000
RIESGO( 2, 3) 1.000000 0.000000
RIESGO( 3, 4) 2.000000 0.000000
RIESGO( 4, 5) 1.000000 0.000000
X( 1, 2) 210.0000 0.000000
X( 1, 3) 0.000000 1.000000 Reporte de lingo:
X( 1, 4) 320.0000 0.000000
X( 1, 5) 0.000000 2.000000
X( 2, 3) 110.0000 0.000000
X( 3, 4) 0.000000 6.000000
X( 4, 5) 125.0000 0.000000

MODEL:
[_1] MIN= 24 * X_1_2 + 26 * X_1_3 + 21 * X_1_4 + 24 * X_1_5 + X_2_3 + 2 * X_3_4 + X_4_5;
[_2] X_1_2 + X_1_3 + X_1_4 + X_1_5 = 530;
[_3] - X_1_2 + X_2_3 = - 100;
[_4] - X_1_3 - X_2_3 + X_3_4 = - 110;
[_5] - X_1_4 - X_3_4 + X_4_5 = - 195;
[_6] - X_1_5 - X_4_5 = - 125;
END
Variable Value Reduced Cost Row Slack or Surplus Dual Price
B( 1) 530.0000 0.000000 1 11995.00 -1.000000
B( 2) -100.0000 0.000000 2 0.000000 -21.00000
B( 3) -110.0000 0.000000 3 0.000000 3.000000
B( 4) -195.0000 0.000000 4 0.000000 4.000000
B( 5) -125.0000 0.000000 5 0.000000 0.000000
RIESGO( 1, 2) 24.00000 0.000000 6 0.000000 1.000000
RIESGO( 1, 3) 26.00000 0.000000
RIESGO( 1, 4) 21.00000 0.000000
RIESGO( 1, 5) 24.00000 0.000000
RIESGO( 2, 3) 1.000000 0.000000
RIESGO( 3, 4) 2.000000 0.000000
RIESGO( 4, 5) 1.000000 0.000000
X( 1, 2) 210.0000 0.000000
Distribución de inversiones
X( 1, 3) 0.000000 1.000000 a costo mínimo:
X( 1, 4) 320.0000 0.000000
X( 1, 5) 0.000000 2.000000
X( 2, 3) 110.0000 0.000000
X( 3, 4) 0.000000 6.000000
X( 4, 5) 125.0000 0.000000

Reporte administrativo:
Invertir $210M en el proyecto 1 [nodo 2] y
$320M en el proyecto 3 [nodo 4] con un valor de
riesgo mínimo de 11,995 [unidades de riesgo].
Flujo a Costo Mínimo con restricciones
[con capacidad de flujo]
+20
Una empresa cuenta con dos plantas
con capacidad de producción de 50 y
40 toneladas y desea enviar a sus dos 2 3
7
principales mercados que demandan
[25]
15 y 70 toneladas del mismo +50 1 1 2 6 6 -15
producto; además, cuenta con un
stock de 20 toneladas en otra planta 5
para apoyar en el suministro y una 5 4 [35]
demanda adicional de 25 toneladas. 8
4
Tienen distintas opciones para enviar
9
dichos productos y necesitan saber +40 2 7 -70
como hacerlo, toda vez que en sus
opciones tienen costos unitarios por 6 4
tonelada. Recomiende la distribución 5
óptima. Los datos se muestran en la -25
siguiente figura:
Modelo compacto de PL de flujo a costo mínimo
[con capacidad de flujo]
𝑛 𝑛

𝑀𝑖𝑛 𝑍 = ෍ ෍ 𝐶𝑖𝑗 ∗ 𝑋𝑖𝑗


𝑖=1 𝑗=1

Subject to:
𝑛 𝑛

෍ 𝑋𝑖𝑗 − ෍ 𝑋𝑗𝑖 = 𝑏𝑖 ; ∀𝑖
𝑗=1 𝑗=1

𝑋𝑖𝑗 ≤ 𝑈𝑖𝑗 ; ∀ 𝑖, ∀𝑗
𝑋𝑖𝑗 ≥ 0 ; ∀ 𝑖, ∀𝑗
Sintaxis compacto de PL de FCM con capacidad de flujo

SETS:
NODO/1..7/:B;
RED(NODO,NODO)/1,3 1,4 1,5 2,3 2,4 2,5 3,6 3,7 4,6 4,7 5,6 5,7/:COSTO,X,U;
ENDSETS
DATA:
B = 50,40,20, 0, -25, -15,-70;
COSTO = 2, 1, 5, 2, 4, 6, 7, 6, 5, 8, 9, 4;
U = 1000,1000,1000,25,1000,1000,1000,35,1000,1000,1000,1000;
ENDDATA
MIN= @SUM(RED:COSTO*X); Adicionar
@FOR(NODO(I): @SUM(RED(I,J):X(I,J))-@SUM(RED(J,I):X(J,I))=B(I));
@FOR(RED:X<=U);
END
EL PROBLEMA DE LA RUTA MAS CORTA
Encontrar el valor del camino y el recorrido mas corto entre el nodo 1 y el nodo 6
considerando que el peso de cada arco es distancia en Km

5 6
2 4 6 2
1
2 8
3 8
1 1 2 5
3
4
2 6
3 5 7
1 7

Opciones: ruta mas corta, ruta económica, ruta rápida, ruta de menor riesgo etc
Modelo compacto de PL de ruta mas corta

𝑛 𝑛

𝑀𝑖𝑛 𝑍 = ෍ ෍ 𝐶𝑖𝑗 ∗ 𝑋𝑖𝑗 “artificio para ruta corta”


𝑖=1 𝑗=1 Nodo i desde donde se inicia la medición de recorrido

Subject to:
𝑛 𝑛 𝑏𝑖 = 1;
෍ 𝑋𝑖𝑗 − ෍ 𝑋𝑗𝑖 = 𝑏𝑖 ; ∀ 𝑖 𝑏𝑖𝑛𝑡𝑒𝑟𝑚𝑒𝑑𝑖𝑜𝑠 = 0;
𝑗=1 𝑗=1 𝑏𝑛 = −1;
𝑋𝑖𝑗 ≥ 0 ; ∀ 𝑖, ∀𝑗
Nodo n donde termina la medición de recorrido
Modelo de PL ruta mas corta en lingo compacto
-1

+1

SETS:
NODO/1..8/:B;
RED(NODO,NODO)/1,2 1,3 2,3 2,4 2,5 3,4 3,5 3,6 4,5 4,6 4,7 5,6 5,7 6,7 6,8 7,8/:DISTANCIA,X;
ENDSETS
DATA:
B= 1,0,0,0,0,-1,0,0;
DISTANCIA = 1,2,1,5,2,2,1,4,3,6,8,3,7,5,2,6;
ENDDATA
MIN= @SUM(RED:DISTANCIA*X);
@FOR(NODO(I):@SUM(RED(I,J):X(I,J))-@SUM(RED(J,I):X(J,I))=B(I));
END
Variable Value Reduced Cost Variable Value Reduced Cost
B( 1) 1.000000 0.000000 X( 1, 2) 1.000000 0.000000
B( 2) 0.000000 0.000000 X( 1, 3) 0.000000 0.000000
B( 3) 0.000000 0.000000 X( 2, 3) 1.000000 0.000000
B( 4) 0.000000 0.000000 X( 2, 4) 0.000000 2.000000
B( 5) 0.000000 0.000000 X( 2, 5) 0.000000 0.000000
B( 6) -1.000000 0.000000 X( 3, 4) 0.000000 0.000000
B( 7) 0.000000 0.000000 X( 3, 5) 0.000000 0.000000
B( 8) 0.000000 0.000000 X( 3, 6) 1.000000 0.000000
DISTANCIA( 1, 2) 1.000000 0.000000 X( 4, 5) 0.000000 4.000000
DISTANCIA( 1, 3) 2.000000 0.000000 X( 4, 6) 0.000000 4.000000
DISTANCIA( 2, 3) 1.000000 0.000000 X( 4, 7) 0.000000 9.000000
DISTANCIA( 2, 4) 5.000000 0.000000 X( 5, 6) 0.000000 0.000000
DISTANCIA( 2, 5) 2.000000 0.000000 X( 5, 7) 0.000000 7.000000
DISTANCIA( 3, 4) 2.000000 0.000000 X( 6, 7) 0.000000 8.000000
DISTANCIA( 3, 5) 1.000000 0.000000 X( 6, 8) 0.000000 5.000000
DISTANCIA( 3, 6) 4.000000 0.000000 X( 7, 8) 0.000000 6.000000
DISTANCIA( 4, 5) 3.000000 0.000000
DISTANCIA( 4, 6) 6.000000 0.000000 Row Slack or Surplus Dual Price
DISTANCIA( 4, 7) 8.000000 0.000000 1 6.000000 -1.000000
DISTANCIA( 5, 6) 3.000000 0.000000 2 0.000000 -3.000000
DISTANCIA( 5, 7) 7.000000 0.000000 3 0.000000 -2.000000
DISTANCIA( 6, 7) 5.000000 0.000000 4 0.000000 -1.000000
DISTANCIA( 6, 8) 2.000000 0.000000 5 0.000000 1.000000
DISTANCIA( 7, 8) 6.000000 0.000000 6 0.000000 0.000000
7 0.000000 3.000000
8 0.000000 0.000000
9 0.000000 0.000000
MODEL:
[_1] MIN= X_1_2 + 2 * X_1_3 + X_2_3 + 5 * X_2_4 + 2 * X_2_5 + 2 * X_3_4 + X_3_5 + 4 * X_3_6 + 3 * X_4_5 + 6 * X_4_6 +
8 * X_4_7 + 3 * X_5_6 + 7 * X_5_7 + 5 * X_6_7 + 2 * X_6_8 + 6 * X_7_8;
[_2] X_1_2 + X_1_3 = 1;
[_3] - X_1_2 + X_2_3 + X_2_4 + X_2_5 = 0;
[_4] - X_1_3 - X_2_3 + X_3_4 + X_3_5 + X_3_6 = 0;
[_5] - X_2_4 - X_3_4 + X_4_5 + X_4_6 + X_4_7 = 0;
[_6] - X_2_5 - X_3_5 - X_4_5 + X_5_6 + X_5_7 = 0; Reporte del lingo
[_7] - X_3_6 - X_4_6 - X_5_6 + X_6_7 + X_6_8 = - 1;
[_8] - X_4_7 - X_5_7 - X_6_7 + X_7_8 = 0;
[_9] - X_6_8 - X_7_8 = 0;
END
Variable Value Reduced Cost Variable Value Reduced Cost
B( 1) 1.000000 0.000000 X( 1, 2) 1.000000 0.000000
B( 2) 0.000000 0.000000 X( 1, 3) 0.000000 0.000000
B( 3) 0.000000 0.000000 X( 2, 3) 1.000000 0.000000
B( 4) 0.000000 0.000000 X( 2, 4) 0.000000 2.000000
B( 5) 0.000000 0.000000 X( 2, 5) 0.000000 0.000000
B( 6) -1.000000 0.000000 X( 3, 4) 0.000000 0.000000
B( 7) 0.000000 0.000000 X( 3, 5) 0.000000 0.000000
B( 8) 0.000000 0.000000 X( 3, 6) 1.000000 0.000000
DISTANCIA( 1, 2) 1.000000 0.000000 X( 4, 5) 0.000000 4.000000
DISTANCIA( 1, 3) 2.000000 0.000000 X( 4, 6) 0.000000 4.000000
DISTANCIA( 2, 3) 1.000000 0.000000 X( 4, 7) 0.000000 9.000000
DISTANCIA( 2, 4) 5.000000 0.000000 X( 5, 6) 0.000000 0.000000
DISTANCIA( 2, 5) 2.000000 0.000000 X( 5, 7) 0.000000 7.000000
DISTANCIA( 3, 4) 2.000000 0.000000 X( 6, 7) 0.000000 8.000000
DISTANCIA( 3, 5) 1.000000 0.000000 X( 6, 8) 0.000000 5.000000
DISTANCIA( 3, 6) 4.000000 0.000000 X( 7, 8) 0.000000 6.000000
DISTANCIA( 4, 5) 3.000000 0.000000
DISTANCIA( 4, 6) 6.000000 0.000000 Row Slack or Surplus Dual Price
DISTANCIA( 4, 7) 8.000000 0.000000 1 6.000000 -1.000000
DISTANCIA( 5, 6) 3.000000 0.000000 2 0.000000 -3.000000
DISTANCIA( 5, 7) 7.000000 0.000000 3 0.000000 -2.000000
DISTANCIA( 6, 7) 5.000000 0.000000 4 0.000000 -1.000000
DISTANCIA( 6, 8) 2.000000 0.000000 5 0.000000 1.000000
DISTANCIA( 7, 8) 6.000000 0.000000 6 0.000000 0.000000
7 0.000000 3.000000
8 0.000000 0.000000
9 0.000000 0.000000

Reporte administrativo:
La ruta a seguir es: iniciar en la estación 1, seguir
la estación 2, luego la estación 3 y terminar en el
destino estación 6 con un recorrido de 6 km.
Z* = 6
EL PROBLEMA DEL FLUJO MÁXIMO
Considere el siguiente grafo como una representación de líneas de producción de una planta de
transformación de materia prima desde el almacén de material prima 1 hasta el almacén de productos
terminados 10. Se necesita saber cuál será el máximo volumen de producción en toda la planta, si las
líneas de conexión entre cada estación de trabajo indican capacidad de producción máxima entre cada
estación. Indique también la capacidad utilizada entre cada estación de trabajo y los sobrantes
respectivos.
20 10
2 5 8
Capacidad de 10 10 50
arco [flujo]
20
20 20
3 7 60
80 50 30 20
Nodo de inicio 30
4 6 9
15 50
Nodo de término
15
1
10
Modelo compacto de PL de flujo máximo
[capacidad de flujo] Arco de retorno total [ficticio]:
n: nodo final; 1: nodo de inicio

𝑀𝑎𝑥 𝑍 = 𝑋(𝑛, 1);


Subject to:
𝑛 𝑛

෍ 𝑋𝑖𝑗 = ෍ 𝑋𝑗𝑖 ; ∀𝑖
𝑗=1 𝑗=1

𝑋𝑖𝑗 ≤ 𝑈𝑖𝑗 ; ∀ 𝑖, ∀𝑗
𝑋𝑖𝑗 ≥ 0 ; ∀ 𝑖, ∀𝑗
El modelo compacto del flujo máximo

SETS:
NODO/1,2,3,4,5,6,7,8,9,10/;
RED(NODO,NODO)/1,2 1,3 1,4 2,5 3,5 3,6 3,7 4,6 5,6 5,7 5,8 6,7 6,9 7,8 7,9 8,10 9,10 10,1/:CAP,X;
ENDSETS
DATA:
CAP = 20 80 15 20 10 50 20 15 20 10 10 30 30 50 20 60 50 10000;
ENDDATA
MAX= X(10,1);
@FOR(NODO(I): @SUM(RED(I,J):X(I,J)) = @SUM(RED(J,I):X(J,I)));
@FOR(RED(I,J): X(I,J) <= CAP(I,J));
END
Variable Value Reduced Cost Row Slack or Surplus Dual Price
CAP( 1, 2) 20.00000 0.000000 1 100.0000 1.000000
CAP( 1, 3) 80.00000 0.000000 2 0.000000 0.000000
CAP( 1, 4) 15.00000 0.000000 3 0.000000 0.000000
CAP( 2, 5) 20.00000 0.000000 4 0.000000 0.000000 Reporte del lingo
CAP( 3, 5) 10.00000 0.000000 5 0.000000 0.000000
CAP( 3, 6) 50.00000 0.000000 6 0.000000 0.000000
CAP( 3, 7) 20.00000 0.000000 7 0.000000 0.000000
CAP( 4, 6) 15.00000 0.000000 8 0.000000 1.000000 MODEL:
CAP( 5, 6) 20.00000 0.000000 9 0.000000 1.000000 [_1] MAX= X_10_1;
CAP( 5, 7) 10.00000 0.000000 10 0.000000 1.000000 [_2] X_1_2 + X_1_3 + X_1_4 - X_10_1 = 0;
CAP( 5, 8) 10.00000 0.000000 11 0.000000 1.000000
[_3] - X_1_2 + X_2_5 = 0;
CAP( 6, 7) 30.00000 0.000000 12 0.000000 0.000000
[_4] - X_1_3 + X_3_5 + X_3_6 + X_3_7 = 0;
CAP( 6, 9) 30.00000 0.000000 13 0.000000 0.000000
[_5] - X_1_4 + X_4_6 = 0;
CAP( 7, 8) 50.00000 0.000000 14 15.00000 0.000000
15 0.000000 0.000000 [_6] - X_2_5 - X_3_5 + X_5_6 + X_5_7 + X_5_8 = 0;
CAP( 7, 9) 20.00000 0.000000
16 0.000000 0.000000 [_7] - X_3_6 - X_4_6 - X_5_6 + X_6_7 + X_6_9 = 0;
CAP( 8, 10) 60.00000 0.000000
CAP( 9, 10) 50.00000 0.000000 17 0.000000 0.000000 [_8] - X_3_7 - X_5_7 - X_6_7 + X_7_8 + X_7_9 = 0;
CAP( 10, 1) 10000.00 0.000000 18 0.000000 1.000000 [_9] - X_5_8 - X_7_8 + X_8_10 = 0;
X( 1, 2) 20.00000 0.000000 19 15.00000 0.000000 [_10] - X_6_9 - X_7_9 + X_9_10 = 0;
X( 1, 3) 80.00000 0.000000 20 10.00000 0.000000 [_11] - X_8_10 - X_9_10 + X_10_1 = 0;
X( 1, 4) 0.000000 0.000000 21 0.000000 1.000000 [_12] X_1_2 <= 20;
X( 2, 5) 20.00000 0.000000 22 0.000000 1.000000 [_13] X_1_3 <= 80;
X( 3, 5) 10.00000 0.000000 23 0.000000 1.000000 [_14] X_1_4 <= 15;
X( 3, 6) 50.00000 0.000000 24 0.000000 1.000000 [_15] X_2_5 <= 20;
X( 3, 7) 20.00000 0.000000 25 0.000000 0.000000 [_16] X_3_5 <= 10;
X( 4, 6) 0.000000 0.000000 26 10.00000 0.000000 [_17] X_3_6 <= 50;
X( 5, 6) 10.00000 0.000000 27 0.000000 0.000000 [_18] X_3_7 <= 20;
X( 5, 7) 10.00000 0.000000 28 10.00000 0.000000 [_19] X_4_6 <= 15;
X( 5, 8) 10.00000 0.000000 29 9900.000 0.000000 [_20] X_5_6 <= 20;
X( 6, 7) 30.00000 0.000000 [_21] X_5_7 <= 10;
X( 6, 9) 30.00000 0.000000 [_22] X_5_8 <= 10;
X( 7, 8) 50.00000 0.000000 [_23] X_6_7 <= 30;
X( 7, 9) 10.00000 0.000000 [_24] X_6_9 <= 30;
X( 8, 10) 60.00000 0.000000
[_25] X_7_8 <= 50;
X( 9, 10) 40.00000 0.000000
[_26] X_7_9 <= 20;
X( 10, 1) 100.0000 0.000000
[_27] X_8_10 <= 60;
[_28] X_9_10 <= 50;
[_29] X_10_1 <= 10000;
END
Variable Value Reduced Cost Row Slack or Surplus Dual Price
CAP( 1, 2) 20.00000 0.000000 1 100.0000 1.000000
CAP( 1, 3) 80.00000 0.000000 2 0.000000 0.000000
CAP( 1, 4) 15.00000 0.000000 3 0.000000 0.000000
CAP( 2, 5) 20.00000 0.000000 4 0.000000 0.000000 Reporte administrativo:
CAP( 3, 5) 10.00000 0.000000 5 0.000000 0.000000
CAP( 3, 6) 50.00000 0.000000 6 0.000000 0.000000 La producción máxima en la planta es de 100
CAP( 3, 7) 20.00000 0.000000 7 0.000000 0.000000
CAP( 4, 6) 15.00000 0.000000 8 0.000000 1.000000 unidades ocupando todas las capacidades
CAP( 5, 6) 20.00000 0.000000 9 0.000000 1.000000
CAP( 5, 7) 10.00000 0.000000 10 0.000000 1.000000
disponibles en la línea de producción, a
CAP( 5, 8) 10.00000 0.000000 11
12
0.000000
0.000000
1.000000
0.000000
excepción de las operaciones entre las
CAP( 6, 7) 30.00000 0.000000
CAP( 6, 9) 30.00000 0.000000 13 0.000000 0.000000 estaciones 5-6 y 7-9 que ocupan solo el 50%
CAP( 7, 8) 50.00000 0.000000 14 15.00000 0.000000
CAP( 7, 9) 20.00000 0.000000 15 0.000000 0.000000 de su capacidad en cada operación y de la
CAP( 8, 10) 60.00000 0.000000 16 0.000000 0.000000
CAP( 9, 10) 50.00000 0.000000 17 0.000000 0.000000 estación 9-10 que ocupan el 80% de su
CAP( 10, 1) 10000.00 0.000000 18 0.000000 1.000000
X( 1, 2) 20.00000 0.000000 19 15.00000 0.000000
capacidad; además de no necesitar de las
X( 1, 3) 80.00000 0.000000 20
21
10.00000
0.000000
0.000000
1.000000
operaciones en las líneas 1-4 y 4-6.
X( 1, 4) 0.000000 0.000000
X( 2, 5) 20.00000 0.000000 22 0.000000 1.000000
X( 3, 5) 10.00000 0.000000 23 0.000000 1.000000
X( 3, 6) 50.00000 0.000000 24 0.000000 1.000000
X( 3, 7) 20.00000 0.000000 25 0.000000 0.000000
X( 4, 6) 0.000000 0.000000 26 10.00000 0.000000
X( 5, 6) 10.00000 0.000000 27 0.000000 0.000000
X( 5, 7) 10.00000 0.000000 28 10.00000 0.000000
X( 5, 8) 10.00000 0.000000 29 9900.000 0.000000
X( 6, 7) 30.00000 0.000000
X( 6, 9) 30.00000 0.000000
X( 7, 8) 50.00000 0.000000
X( 7, 9) 10.00000 0.000000
X( 8, 10) 60.00000 0.000000
X( 9, 10) 40.00000 0.000000
X( 10, 1) 100.0000 0.000000
Balance de distribución de productos
En la ciudad de Lima se necesita realizar la distribución de vacunas desde tres centros de acopio [2, 3 y 4] a dos
regiones del Perú: sur [9] y norte [10]. En el siguiente grafo se muestra las capacidades de envío de vacunas (en
miles de unidades) con posibilidades de desplazamientos por distintos lugares del Perú [5, 6, 7 y 8].
50 70
2 5 9
30
50 60 50 90

70 80
3 6 8
40
60 50 45
30

4 7 10
95 60

Se necesita saber cuál será el máximo volumen de envío de vacunas, si las líneas de conexión entre cada
estación de lugar indican capacidad de envío máxima entre cada lugar.
Balance de distribución de productos
Se recomienda agrupar los orígenes en un nodo [1] y los destinos n otro nodo [11], cada uno con arcos de
conexión con sus respectivos orígenes o destinos, con valores altos de capacidad de conexión y, adicionar
un arco de retorno también con valor infinito [alto].
50 70
2 5 9
1000 30 1000
50 60 50 90

1000 70 80 11
1 3 6 8
40
60 50 45
1000 30
1000

4 7 10
95 60

10000
Los nodos, arcos y valores asociados son ficticios; es solo para aplicar el modelo.
El modelo compacto del flujo máximo

SETS:
NODO/1,2,3,4,5,6,7,8,9,10,11/;
RED(NODO,NODO)/1,2 1,3 1,4 2,5 2,6 3,5 3,6 3,7 4,6 4,7 5,8 5,9 6,5 6,7 6,8 7,8 7,10 8,9
8,10 9,11 10,11 11,1/: CAPACIDAD,X;
ENDSETS
DATA:
CAPACIDAD = 1000 1000 1000 50 50 30 70 60 40 95 50 70 60 30 80 50 60 90 45 1000 1000 10000;
ENDDATA
MAX= X(11,1);
@FOR(NODO(I): @SUM(RED(I,J):X(I,J)) = @SUM(RED(J,I):X(J,I)));
@FOR(RED(I,J): X(I,J) <= CAPACIDAD(I,J));
END
Variable Value Reduced Cost Row Slack or Surplus Dual Price Row Slack or Surplus Dual Price
CAPACIDAD( 1, 2) 1000.000 0.000000 1 265.0000 1.000000 18 0.000000 0.000000
CAPACIDAD( 1, 3) 1000.000 0.000000 2 0.000000 0.000000 19 0.000000 0.000000
CAPACIDAD( 1, 4) 1000.000 0.000000 3 0.000000 0.000000 20 60.00000 0.000000
CAPACIDAD( 2, 5) 50.00000 0.000000 4 0.000000 0.000000 21 40.00000 0.000000
CAPACIDAD( 2, 6) 50.00000 0.000000 5 0.000000 0.000000 22 30.00000 0.000000
CAPACIDAD( 3, 5) 30.00000 0.000000 6 0.000000 0.000000 23 0.000000 0.000000
CAPACIDAD( 3, 6) 70.00000 0.000000 7 0.000000 0.000000 24 0.000000 1.000000
CAPACIDAD( 3, 7) 60.00000 0.000000 8 0.000000 0.000000 25 20.00000 0.000000
CAPACIDAD( 4, 6) 40.00000 0.000000 9 0.000000 0.000000 26 30.00000 0.000000
CAPACIDAD( 4, 7) 95.00000 0.000000 10 0.000000 1.000000 27 0.000000 0.000000
CAPACIDAD( 5, 8) 50.00000 0.000000 11 0.000000 1.000000 28 45.00000 0.000000
CAPACIDAD( 5, 9) 70.00000 0.000000 12 0.000000 1.000000 29 0.000000 1.000000
CAPACIDAD( 6, 5) 60.00000 0.000000 13 900.0000 0.000000 30 0.000000 1.000000
CAPACIDAD( 6, 7) 30.00000 0.000000 14 900.0000 0.000000 31 0.000000 1.000000
CAPACIDAD( 6, 8) 80.00000 0.000000 15 935.0000 0.000000 32 840.0000 0.000000
CAPACIDAD( 7, 8) 50.00000 0.000000 16 0.000000 0.000000 33 895.0000 0.000000
CAPACIDAD( 7, 10) 60.00000 0.000000 17 0.000000 0.000000 34 9735.000 0.000000
CAPACIDAD( 8, 9) 90.00000 0.000000
CAPACIDAD( 8, 10) 45.00000 0.000000
CAPACIDAD( 9, 11) 1000.000 0.000000
CAPACIDAD( 10, 11) 1000.000 0.000000
CAPACIDAD( 11, 1) 10000.00 0.000000
Reporte de lingo
X( 1, 2) 100.0000 0.000000
X( 1, 3) 100.0000 0.000000
X( 1, 4) 65.00000 0.000000
X( 2, 5) 50.00000 0.000000 MODEL:
[_1] MAX= X_11_1; [_18] X_3_5 <= 30;
X( 2, 6) 50.00000 0.000000 [_19] X_3_6 <= 70;
X( 3, 5) 30.00000 0.000000 [_2] X_1_2 + X_1_3 + X_1_4 - X_11_1 = 0;
[_3] - X_1_2 + X_2_5 + X_2_6 = 0; [_20] X_3_7 <= 60;
X( 3, 6) 70.00000 0.000000 [_21] X_4_6 <= 40;
X( 3, 7) 0.000000 0.000000 [_4] - X_1_3 + X_3_5 + X_3_6 + X_3_7 = 0;
[_5] - X_1_4 + X_4_6 + X_4_7 = 0; [_22] X_4_7 <= 95;
X( 4, 6) 0.000000 0.000000 [_23] X_5_8 <= 50;
X( 4, 7) 65.00000 0.000000 [_6] - X_2_5 - X_3_5 + X_5_8 + X_5_9 - X_6_5 = 0;
[_7] - X_2_6 - X_3_6 - X_4_6 + X_6_5 + X_6_7 + X_6_8 = 0; [_24] X_5_9 <= 70;
X( 5, 8) 50.00000 0.000000 [_25] X_6_5 <= 60;
X( 5, 9) 70.00000 0.000000 [_8] - X_3_7 - X_4_7 - X_6_7 + X_7_8 + X_7_10 = 0;
[_9] - X_5_8 - X_6_8 - X_7_8 + X_8_9 + X_8_10 = 0; [_26] X_6_7 <= 30;
X( 6, 5) 40.00000 0.000000 [_27] X_6_8 <= 80;
X( 6, 7) 0.000000 0.000000 [_10] - X_5_9 - X_8_9 + X_9_11 = 0;
[_11] - X_7_10 - X_8_10 + X_10_11 = 0; [_28] X_7_8 <= 50;
X( 6, 8) 80.00000 0.000000 [_29] X_7_10 <= 60;
X( 7, 8) 5.000000 0.000000 [_12] - X_9_11 - X_10_11 + X_11_1 = 0;
[_13] X_1_2 <= 1000; [_30] X_8_9 <= 90;
X( 7, 10) 60.00000 0.000000 [_31] X_8_10 <= 45;
X( 8, 9) 90.00000 0.000000 [_14] X_1_3 <= 1000;
[_15] X_1_4 <= 1000; [_32] X_9_11 <= 1000;
X( 8, 10) 45.00000 0.000000 [_33] X_10_11 <= 1000;
X( 9, 11) 160.0000 0.000000 [_16] X_2_5 <= 50;
[_17] X_2_6 <= 50; [_34] X_11_1 <= 10000;
X( 10, 11) 105.0000 0.000000 END
X( 11, 1) 265.0000 0.000000
Variable Value Reduced Cost Row Slack or Surplus Dual Price Row Slack or Surplus Dual Price
CAPACIDAD( 1, 2) 1000.000 0.000000 1 265.0000 1.000000 18 0.000000 0.000000
CAPACIDAD( 1, 3) 1000.000 0.000000 2 0.000000 0.000000 19 0.000000 0.000000
CAPACIDAD( 1, 4) 1000.000 0.000000 3 0.000000 0.000000 20 60.00000 0.000000
CAPACIDAD( 2, 5) 50.00000 0.000000 4 0.000000 0.000000 21 40.00000 0.000000
CAPACIDAD( 2, 6) 50.00000 0.000000 5 0.000000 0.000000 22 30.00000 0.000000
CAPACIDAD( 3, 5) 30.00000 0.000000 6 0.000000 0.000000 23 0.000000 0.000000
CAPACIDAD( 3, 6) 70.00000 0.000000 7 0.000000 0.000000 24 0.000000 1.000000
CAPACIDAD( 3, 7) 60.00000 0.000000 8 0.000000 0.000000 25 20.00000 0.000000
CAPACIDAD( 4, 6) 40.00000 0.000000 9 0.000000 0.000000 26 30.00000 0.000000
CAPACIDAD( 4, 7) 95.00000 0.000000 10 0.000000 1.000000 27 0.000000 0.000000
CAPACIDAD( 5, 8) 50.00000 0.000000 11 0.000000 1.000000 28 45.00000 0.000000
CAPACIDAD( 5, 9) 70.00000 0.000000 12 0.000000 1.000000 29 0.000000 1.000000
CAPACIDAD( 6, 5) 60.00000 0.000000 13 900.0000 0.000000 30 0.000000 1.000000
CAPACIDAD( 6, 7) 30.00000 0.000000 14 900.0000 0.000000 31 0.000000 1.000000
CAPACIDAD( 6, 8) 80.00000 0.000000 15 935.0000 0.000000 32 840.0000 0.000000
CAPACIDAD( 7, 8) 50.00000 0.000000 16 0.000000 0.000000 33 895.0000 0.000000
CAPACIDAD( 7, 10) 60.00000 0.000000 17 0.000000 0.000000 34 9735.000 0.000000
CAPACIDAD( 8, 9) 90.00000 0.000000
CAPACIDAD( 8, 10) 45.00000 0.000000
CAPACIDAD( 9, 11) 1000.000 0.000000
CAPACIDAD( 10, 11) 1000.000 0.000000
CAPACIDAD( 11, 1) 10000.00 0.000000
X( 1, 2) 100.0000 0.000000
X( 1, 3) 100.0000 0.000000
X( 1, 4) 65.00000 0.000000
X( 2, 5) 50.00000 0.000000
X( 2, 6) 50.00000 0.000000
X( 3, 5) 30.00000 0.000000
X( 3, 6) 70.00000 0.000000
X( 3, 7) 0.000000 0.000000 Máxima Capacidad de envío
X( 4, 6) 0.000000 0.000000
X( 4, 7) 65.00000 0.000000 [Z*] = 265 unidades
X( 5, 8) 50.00000 0.000000
X( 5, 9) 70.00000 0.000000
X( 6, 5) 40.00000 0.000000
X( 6, 7) 0.000000 0.000000
X( 6, 8) 80.00000 0.000000 Reporte administrativo:
X( 7, 8) 5.000000 0.000000
X( 7, 10) 60.00000 0.000000 La capacidad máxima de distribución de manera simultánea es de 265 mil vacunas, utilizando todas las
X( 8, 9) 90.00000 0.000000 capacidades disponibles en la línea de distribución del Perú desde Lima, a excepción de las
X( 8, 10) 45.00000 0.000000
X( 9, 11) 160.0000 0.000000 operaciones entre las localidades 4-7, 6-5 y 7-8 que operarían en 66.7%, 68.4% y 12.5% de su
X( 10, 11) 105.0000 0.000000
X( 11, 1) 265.0000 0.000000
capacidad de envío, respectivamente; además de no necesitar de las operaciones entre las localidades
3-7, 4-6, y 6-7.
Muchas gracias

También podría gustarte