0% encontró este documento útil (0 votos)
424 vistas92 páginas

Modelos de PL para Producción e Inventarios

Este documento presenta un modelo de programación lineal para optimizar la producción y ventas de dos productos (P1 y P2) en cuatro meses considerando inventarios. Se definen índices, variables de decisión, datos y restricciones para maximizar las utilidades considerando costos de producción, ventas, inventarios y capacidad productiva. Adicionalmente, se presenta un reporte administrativo resumiendo las decisiones óptimas y un análisis de sensibilidad de los coeficientes de la función objetivo.

Cargado por

alejandra sayago
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
424 vistas92 páginas

Modelos de PL para Producción e Inventarios

Este documento presenta un modelo de programación lineal para optimizar la producción y ventas de dos productos (P1 y P2) en cuatro meses considerando inventarios. Se definen índices, variables de decisión, datos y restricciones para maximizar las utilidades considerando costos de producción, ventas, inventarios y capacidad productiva. Adicionalmente, se presenta un reporte administrativo resumiendo las decisiones óptimas y un análisis de sensibilidad de los coeficientes de la función objetivo.

Cargado por

alejandra sayago
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

INVESTIGACIÓN DE OPERACIONES I

Taller de programación de modelos de PL en los


casos de producción con inventario
Tupia de la Cruz, Elmer Dr(c)
Consideraciones para el modelamiento:

Desarrollo de casos prácticos tipo examen final de


Investigación de Operaciones I, para construir modelos
matemáticos en sintaxis compacta del tipo algebraico
[uso de Ʃ y ∀] y lingo [@sum y @for] para modelos
lineales [X>=0] y mixtos [X>=0, continuos o enteros con
@gin y Y=0,1 con @bin]
Modelo de Inventarios: Fábrica de dos productos
Una empresa fabrica dos tipos de productos (P1 y P2). El área de ventas ha determinado que en cada uno
de los cuatro próximos meses se puede vender como máximo las siguientes cantidades (expresadas en
toneladas):
Producto Mes 1 Mes 2 Mes 3 Mes 4
P1 100 150 200 150
P2 200 300 200 300
El precio de venta del producto P1 y del producto P2 es US$120/tonelada y US$140/tonelada
respectivamente, en cualquier mes.
El costo de producción (en US$/tonelada) varía por producto y por mes según se muestra en el siguiente
cuadro:
Producto Mes 1 Mes 2 Mes 3 Mes 4
P1 50 55 50 55
P2 45 50 55 45
Para producir una tonelada de P1 se requiere 0.6 horas de maquinado; mientras que para producir una
tonelada de P2 se requiere 0.8 horas de maquinado. La capacidad disponible de maquinado en cada mes se
muestra a continuación:
Mes 1 Mes 2 Mes 3 Mes 4
Capacidad de maquinado (horas) 300 250 300 250
Es posible tener inventarios de cada producto al final de cada mes, a un costo mensual de US$2/tonelada
para el producto P1 y US$3/tonelada para el producto P2. El costo de inventario se aplica al inventario final
de cada mes. Mensualmente, lo máximo que se puede almacenar es 20 toneladas en total. Al inicio del
primer mes, el almacén se encuentra vacío.

Se le solicita lo siguiente:
a) Defina los índices que el modelo empleará.
b) Defina las variables de decisión que el modelo empleará.
c) Defina las estructuras de datos [vectores y matrices] que el modelo empleará.
d) Presente SETS y DATA del modelo en lingo
e) Formular la función objetivo del programa lineal en forma compacta (algebraico y en lingo).
f) Formular las restricciones de ventas y capacidad de producción del programa lineal en forma compacta
(algebraico y en lingo).
g) Formular las restricciones de inventario del programa lineal en forma compacta (algebraico y en lingo).
h) Presente su mejor y amplio reporte administrativo [con toda la información que se desprende del
problema y del reporte lingo] para toma de decisiones de optimización; no adjunte el reporte del lingo.
Sea explicito en su decisión para que sea considerado
i) Presente el reporte de sensibilidad de los coeficientes de las variables de la función objetivo
Preparación de la data

Mes
Concepto Producto
1 2 3 4
P1 100 150 200 150
Venta máxima (ton)
P2 200 300 200 300
P1 120 120 120 120
Precio de venta ($/ton)
P2 140 140 140 140
P1 50 55 50 55
Costo de Producción ($/ton)
P2 45 50 55 45
P1 0.6 0.6 0.6 0.6
Requerimiento de producción (horas/ton)
P2 0.8 0.8 0.8 0.8
Capacidad de maquinado (horas) 300 250 300 250
P1 2 2 2 2
Costo de inventario ($/ton)
P2 3 3 3 3
Capacidad de almacenamiento (ton) 20 20 20 20
P1 0 --- --- ---
Inventario Inicial (ton)
P2 0 --- --- ---
a) Defina los índices que el modelo empleará.

i: productos (1,2)
j: meses (1,2,3,4)

b) Defina las variables de decisión que el modelo empleará.

Xij = Producción (ton) del producto i en el mes j;


Sij = Inventario (ton) del producto i al final del mes j;
Vij = Venta (ton) de productos i en el mes j;

c) Defina las estructuras de datos [vectores y matrices] que el modelo empleará.

VentaMaxima ij = 100 150 200 150 200 300 200 300;


PrecioVenta ij = 120 120 120 120 140 140 140 140;
CostoProduccion ij = 50 55 50 55 45 50 55 45;
Requerimiento ij = 0.6 0.6 0.6 0.6 0.8 0.8 0.8 0.8;
CapacidadMaquinado j = 300 250 300 250;
CostoInventario ij = 2 2 2 2 3 3 3 3;
CapacidadAlmacenamiento j = 20 20 20 20;
InventarioInicial i1 = 0 0;
d) Presente SETS y DATA del modelo en lingo

SETS:
PRODUCTOS/1,2/:;
MESES/1..4/:CAPACIDADMAQUINADO,CAPACIDADALMACENAMIENTO;
PXM(PRODUCTOS,MESES):X, S, V, VENTAMAXIMA, PRECIOVENTA,
COSTOPRODUCCION, REQUERIMIENTO, COSTOINVENTARIO,
INVENTARIOINICIAL;
ENDSETS
DATA:
VENTAMAXIMA = 100 150 200 150 200 300 200 300;
PRECIOVENTA = 120 120 120 120 140 140 140 140;
COSTOPRODUCCION = 50 55 50 55 45 50 55 45;
REQUERIMIENTO = 0.6 0.6 0.6 0.6 0.8 0.8 0.8 0.8;
CAPACIDADMAQUINADO = 300 250 300 250;
COSTOINVENTARIO = 2 2 2 2 3 3 3 3;
CAPACIDADALMACENAMIENTO = 20 20 20 20;
INVENTARIOINICIAL = 0 0 0 0 0 0 0 0;
ENDDATA
e) Formular la función objetivo del programa lineal en forma compacta (algebraico y en lingo).

2 4

Max Z = ෍ ෍ PRECIOVENTAij ∗ Vij − COSTOPRODUCCIONij ∗ Xij − COSTOINVENTARIOij ∗ Sij


i=1 j=1

MAX =@SUM(PXM(I,J):PRECIOVENTA(I,J)*V(I,J)-
COSTOPRODUCCION(I,J)*X(I,J)-COSTOINVENTARIO(I,J)*S(I,J));
f) Formular las restricciones de ventas y capacidad de producción del programa lineal en forma compacta
(algebraico y en lingo).

V ij ≤ VENTAMAXIMAij; ∀i, ∀j
2

෍ REQUERIMIENTOij ∗ Xij ≤ CAPACIDADMAQUINADOj; ∀j


i=1

@FOR(PXM(I,J):V(I,J)<=VENTAMAXIMA(I,J));

@FOR(MESES(J):
@SUM(PRODUCTOS(I):
REQUERIMIENTO(I,J)*X(I,J))<=CAPACIDADMAQUINADO(J));
g) Formular las restricciones de inventario del programa lineal en forma compacta (algebraico y en lingo).
2

෍ Sij ≤ CAPACIDADALMACENAMIENTOj; ∀j
i=1

Sij = INVENTARIOINICIALij + Xij − Vij; ∀i, j=1

Sij = Sij − 1 + Xij − Vij; ∀i, j≥2

@FOR(MESES(J):
@SUM(PRODUCTOS(I):
S(I,J))<=CAPACIDADALMACENAMIENTO(J));
@FOR(PXM(I,J):
@FOR(MESES(J)|J#EQ#1:
S(I,J)=INVENTARIOINICIAL(I,J)+X(I,J)-V(I,J)));
@FOR(PXM(I,J):
@FOR(MESES(J)|J#GE#2:
S(I,J)=S(I,J-1)+X(I,J)-V(I,J)));
Modelo completo

SETS:
PRODUCTOS/1,2/:;
MESES/1..4/:CAPACIDADMAQUINADO,CAPACIDADALMACENAMIENTO;
PXM(PRODUCTOS,MESES):X, S, V, VENTAMAXIMA, PRECIOVENTA, COSTOPRODUCCION, REQUERIMIENTO,
COSTOINVENTARIO, INVENTARIOINICIAL;
ENDSETS
DATA:
VENTAMAXIMA = 100 150 200 150 200 300 200 300;
PRECIOVENTA = 120 120 120 120 140 140 140 140;
COSTOPRODUCCION = 50 55 50 55 45 50 55 45;
REQUERIMIENTO = 0.6 0.6 0.6 0.6 0.8 0.8 0.8 0.8;
CAPACIDADMAQUINADO = 300 250 300 250;
COSTOINVENTARIO = 2 2 2 2 3 3 3 3;
CAPACIDADALMACENAMIENTO = 20 20 20 20;
INVENTARIOINICIAL = 0 0 0 0 0 0 0 0;
ENDDATA
MAX = @SUM(PXM(I,J):PRECIOVENTA(I,J)*V(I,J)-COSTOPRODUCCION(I,J)*X(I,J)-COSTOINVENTARIO(I,J)*S(I,J));
@FOR(PXM(I,J):V(I,J)<=VENTAMAXIMA(I,J));
@FOR(MESES(J):@SUM(PRODUCTOS(I):REQUERIMIENTO(I,J)*X(I,J))<=CAPACIDADMAQUINADO(J));
@FOR(MESES(J):@SUM(PRODUCTOS(I):S(I,J))<=CAPACIDADALMACENAMIENTO(J));
@FOR(PXM(I,J):@FOR(MESES(J)|J#EQ#1:S(I,J)=INVENTARIOINICIAL(I,J)+X(I,J)-V(I,J)));
@FOR(PXM(I,J):@FOR(MESES(J)|J#GE#2:S(I,J)=S(I,J-1)+X(I,J)-V(I,J)));
@FOR(PXM(I,J):@GIN(X(I,J));@GIN(S(I,J));@GIN(V(I,J)));
END
h) Presente el reporte administrativo del programa lineal en forma compacta.

La utilidad es $117,913.3

Mes
Concepto Producto
1 2 3 4
P1 100 43.33 200 43.33
Venta (ton)
P2 200 300 200 300
P1 100 43.33 200 43.33
Producción ($/ton)
P2 220 280 220 280
P1 0 0 0 0
Inventario ($/ton)
P2 20 0 20 0
i) Presente el reporte de sensibilidad de los coeficientes de las variables de la función objetivo.
Objective Coefficient Ranges:

Current Allowable Allowable


Variable Coefficient Increase Decrease
X( 1, 1) -50.00000 20.66667 70.00000
X( 1, 2) -55.00000 2.500000 15.50000
X( 1, 3) -50.00000 5.666667 70.00000
X( 1, 4) -55.00000 6.250000 4.250000
X( 2, 1) -45.00000 INFINITY 20.66667
X( 2, 2) -50.00000 20.66667 3.333333
X( 2, 3) -55.00000 INFINITY 5.666667
X( 2, 4) -45.00000 5.666667 8.333333
S( 1, 1) -2.000000 20.66667 INFINITY
S( 1, 2) -2.000000 72.00000 INFINITY
S( 1, 3) -2.000000 5.666667 INFINITY
S( 1, 4) -2.000000 122.0000 INFINITY
S( 2, 1) -3.000000 INFINITY 20.66667
S( 2, 2) -3.000000 84.66667 INFINITY
S( 2, 3) -3.000000 INFINITY 5.666667
S( 2, 4) -3.000000 134.6667 INFINITY
V( 1, 1) 120.0000 INFINITY 70.00000
V( 1, 2) 120.0000 2.500000 62.00000
V( 1, 3) 120.0000 INFINITY 70.00000
V( 1, 4) 120.0000 6.250000 17.00000
V( 2, 1) 140.0000 INFINITY 95.00000
V( 2, 2) 140.0000 INFINITY 3.333333
V( 2, 3) 140.0000 INFINITY 85.00000
V( 2, 4) 140.0000 INFINITY 8.333333
j) Presente el reporte de sensibilidad de las restricciones del modelo.
Righthand Side Ranges:

Current Allowable Allowable


Row RHS Increase Decrease
2 100.0000 106.6667 100.0000
3 150.0000 INFINITY 106.6667
4 200.0000 6.666667 200.0000
5 150.0000 INFINITY 106.6667
6 200.0000 80.00000 200.0000
7 300.0000 32.50000 80.00000
8 200.0000 5.000000 200.0000
9 300.0000 32.50000 80.00000
10 300.0000 INFINITY 64.00000
11 250.0000 64.00000 26.00000
12 300.0000 INFINITY 4.000000
13 250.0000 64.00000 26.00000
14 20.00000 80.00000 20.00000
15 20.00000 INFINITY 20.00000
16 20.00000 5.000000 20.00000
17 20.00000 INFINITY 20.00000
18 0.000000 100.0000 106.6667
19 0.000000 220.0000 80.00000
20 0.000000 106.6667 43.33333
21 0.000000 200.0000 6.666667
22 0.000000 106.6667 43.33333
23 0.000000 80.00000 32.50000
24 0.000000 220.0000 5.000000
25 0.000000 80.00000 32.50000
El problema de oxígeno medicinal
Ante la situación actual un empresario decide iniciar la producción de oxígeno medicinal, para lo cual se
planifica con urgencia, la producción de cuatro semanas, estableciéndose que la capacidad de producción
de la nueva planta de 900 unidades con oxígeno para la primera semana y de mil para las siguientes
semanas. El oxígeno se comercializa en depósitos tubulares metálicos tipo A y B, que mantienen el mismo
volumen, pero se diferencian por su diámetro y altura. El costo de producción y el precio de venta son
comunes para ambos tipos, y la demanda estimada de cada tipo se presentan en la siguiente tabla.
Descripción Semana 1 Semana 2 Semana 3 Semana 4
Demanda del tipo A 560 580 600 620
Demanda del tipo B 580 600 620 640
Costo tipo A ó B (S/) 400 600 700 680
Precio por tipo A ó B (S/) 600 800 850 780

Por política de la empresa se ha establecido que, para atender emergencias, se mantenga un inventario mínimo por
cada tipo de depósito en cada periodo de 9 unidades y un máximo de 18 en cada mes; las ventas no excederán la
demanda y el costo de inventario de 10 soles/por tipo de depósito; por condición de nuevo negocio no se considera
stock inicial.
Se le solicita lo siguiente:

a) Defina los índices que el modelo empleará.


b) Defina las variables de decisión que el modelo empleará.
c) Defina las estructuras de datos [vectores y matrices] que el modelo empleará.
d) Presente SETS y DATA del modelo en lingo
e) Formular la función objetivo del programa lineal en forma compacta (algebraico y en lingo).
f) Formular las restricciones de ventas y capacidad de producción del programa lineal en forma
compacta (algebraico y en lingo).
g) Formular las restricciones de inventario del programa lineal en forma compacta (algebraico y en
lingo).
h) Presente su mejor y amplio reporte administrativo [con toda la información que se desprende del
problema y del reporte lingo] para toma de decisiones de optimización; no adjunte el reporte del
lingo. Sea explicito en su decisión para que sea considerado
i) Presente el reporte de sensibilidad de los coeficientes de las variables de la función objetivo
Preparación de la data

Tipo de Semana
Concepto
depósito 1 2 3 4
Capacidad de producción (unidades) 900 1000 1000 1000
A 560 580 600 620
Demanda (unidades)
B 580 600 620 640
A 400 600 700 680
Costo de producción (S/)
B 400 600 700 680
A 600 800 850 680
Precio de venta (S/)
B 600 800 850 780
Inventario mínimo (unidades) 9 9 9 9
Inventario máximo (unidades) 18 18 18 18
Costo de inventario (S/) 10 10 10 10
Inventario inicial A 0 --- --- ---
(unidades) B 0 --- --- ---
Ventas menores que la demanda
a) Defina los índices que el modelo empleará.

i: depósitos (1,2)  A,B;


j: semanas (1,2,3,4)

b) Defina las variables de decisión que el modelo empleará.

X ij = cantidad de depósitos del tipo i, a producir en semana j;


V ij = cantidad de depósitos del tipo i, a vender en la semana j;
S ij = inventario final de depósitos tipo i, en la semana j;

c) Defina las estructuras de datos [vectores y matrices] que el modelo empleará.

CapacidadProduccion j = 900 1000 1000 1000;


Demanda ij = 560 580 600 620 580 600 620 640;
CostoProduccion ij = 400 600 700 680 400 600 700 680;
PrecioVenta ij = 600 800 850 680 600 800 850 780;
InventarioMinimo j = 9 9 9 9;
InventarioMáximo j = 18 18 18 18;
CostoInventario j = 10 10 10 10;
InventarioInicial i1 = 0 0;
d) Presente SETS y DATA del modelo en lingo

SETS:
DEPOSITO/1 2/:;
SEMANA/1..4/: CAPACIDADPRODUCCION,INVENTARIOMINIMO,
INVENTARIOMAXIMO, COSTOINVENTARIO;
DXS(DEPOSITO,SEMANA): X, V, S, DEMANDA, COSTOPRODUCCION,PRECIOVENTA,
INVENTARIOINICIAL;
ENDSETS
DATA:
CAPACIDADPRODUCCION = 900 1000 1000 1000;
DEMANDA = 560 580 600 620 580 600 620 640;
COSTOPRODUCCION = 400 600 700 680 400 600 700 680;
PRECIOVENTA = 600 800 850 680 600 800 850 780;
INVENTARIOMINIMO = 9 9 9 9;
INVENTARIOMÁXIMO = 18 18 18 18;
COSTOINVENTARIO = 10 10 10 10;
INVENTARIOINICIAL = 0 0 0 0 0 0 0 0;
ENDDATA
e) Formular la función objetivo del programa lineal en forma compacta (algebraico y en lingo).

2 4

Max Z = ෍ ෍ PRECIOVENTAij ∗ Vij − COSTOPRODUCCIONij ∗ Xij − COSTOINVENTARIOj ∗ Sij


i=1 j=1

MAX = @SUM(DXS(I,J):PRECIOVENTA(I,J)*V(I,J)-
COSTOPRODUCCION(I,J)*X(I,J)-COSTOINVENTARIO(J)*S(I,J));
f) Formular las restricciones de ventas y capacidad de producción del programa lineal en forma
compacta (algebraico y en lingo).

V ij ≤ VENTAMAXIMAij; ∀i, ∀j
2

෍ Xij ≤ CAPACIDADPRODUCCIONj; ∀j
i=1

@FOR(DXS(I,J):
V(I,J)<=DEMANDA(I,J));

@FOR(SEMANA(J):
@SUM(DEPOSITO(I):
X(I,J))<=CAPACIDADPRODUCCION(J));
g) Formular las restricciones de inventario del programa lineal en forma compacta (algebraico y en lingo).

Sij = INVENTARIOINICIALij + Xij − Vij; ∀i, j=1


Sij = Sij − 1 + Xij − Vij; ∀i, j≥2
Sij ≥ INVENTARIOMINIMOj; ∀i, ∀j
Sij ≤ INVENTARIOMAXIMOj; ∀i, ∀j

FOR(DXS(I,J)|J#EQ#1: S(I,J)= INVENTARIOINICIAL(I,J)+X(I,J)-V(I,J));


@FOR(DXS(I,J)|J#GE#2: S(I,J)= S(I,J-1)+X(I,J)-V(I,J));
@FOR(DXS(I,J):S(I,J)>=INVENTARIOMINIMO(J));
@FOR(DXS(I,J):S(I,J)<=INVENTARIOMAXIMO(J));
Modelo completo

SETS:
DEPOSITO/1 2/:;
SEMANA/1..4/: CAPACIDADPRODUCCION,INVENTARIOMINIMO,INVENTARIOMAXIMO, COSTOINVENTARIO;
DXS(DEPOSITO,SEMANA): X,V,S,DEMANDA,COSTOPRODUCCION,PRECIOVENTA,INVENTARIOINICIAL;
ENDSETS
DATA:
CAPACIDADPRODUCCION = 900 1000 1000 1000;
DEMANDA = 560 580 600 620 580 600 620 640;
COSTOPRODUCCION = 400 600 700 680 400 600 700 680;
PRECIOVENTA = 600 800 850 680 600 800 850 780;
INVENTARIOMINIMO = 9 9 9 9;
INVENTARIOMAXIMO = 18 18 18 18;
COSTOINVENTARIO = 10 10 10 10;
INVENTARIOINICIAL = 0 0 0 0 0 0 0 0;
ENDDATA
MAX=@SUM(DXS(I,J):(PRECIOVENTA(I,J)*V(I,J)-COSTOPRODUCCION(I,J)*X(I,J)-COSTOINVENTARIO(J)*S(I,J)));
@FOR(DXS(I,J):V(I,J)<=DEMANDA(I,J));
@FOR(SEMANA(J): @SUM(DEPOSITO(I): X(I,J))<=CAPACIDADPRODUCCION(J));
@FOR(DXS(I,J)|J#EQ#1: S(I,J)= INVENTARIOINICIAL(I,J)+X(I,J)-V(I,J));
@FOR(DXS(I,J)|J#GE#2: S(I,J)= S(I,J-1)+X(I,J)-V(I,J));
@FOR(DXS(I,J):S(I,J)>=INVENTARIOMINIMO(J));
@FOR(DXS(I,J):S(I,J)<=INVENTARIOMAXIMO(J));
@FOR(DXS(I,J):@GIN(X(I,J)));
END
h) Presente el reporte administrativo del programa lineal en forma compacta.

El valor óptimo de los ingresos alcanza S/586,620, a continuación, la información por cada tipo
de depósito:
Tipo A Sem 1 Sem 2 Sem 3 Sem 4
Demanda1 560 580 600 620
Venta1 560 580 398 0
Inv.Inicial1 0 18 18 9
Producción1 (Xij) 578 580 389 0
InvFinal1 18 18 9 9

Tipo B Sem 1 Sem 2 Sem 3 Sem 4


Demanda2 580 600 620 640
Venta2 304 420 620 640
Inv.Inicial2 0 18 18 9
Producción2 (Xij) 322 420 611 640
InvFinal2 18 18 9 9
i) Presente el reporte de sensibilidad de los coeficientes de las variables de la función objetivo.
Objective Coefficient Ranges:

Current Allowable Allowable


Variable Coefficient Increase Decrease
X( 1, 1) -400.0000 INFINITY 0.000000
X( 1, 2) -600.0000 190.0000 0.000000
X( 1, 3) -700.0000 0.000000 40.00000
X( 1, 4) -680.0000 0.000000 INFINITY
X( 2, 1) -400.0000 0.000000 200.0000
X( 2, 2) -600.0000 0.000000 190.0000
X( 2, 3) -700.0000 40.00000 0.000000
X( 2, 4) -680.0000 690.0000 100.0000
V( 1, 1) 600.0000 INFINITY 0.000000
V( 1, 2) 800.0000 INFINITY 0.000000
V( 1, 3) 850.0000 0.000000 40.00000
V( 1, 4) 680.0000 0.000000 690.0000
V( 2, 1) 600.0000 0.000000 200.0000
V( 2, 2) 800.0000 0.000000 190.0000
V( 2, 3) 850.0000 INFINITY 0.000000
V( 2, 4) 780.0000 INFINITY 100.0000
S( 1, 1) -10.00000 INFINITY 190.0000
S( 1, 2) -10.00000 INFINITY 40.00000
S( 1, 3) -10.00000 180.0000 INFINITY
S( 1, 4) -10.00000 690.0000 INFINITY
S( 2, 1) -10.00000 INFINITY 190.0000
S( 2, 2) -10.00000 INFINITY 40.00000
S( 2, 3) -10.00000 180.0000 INFINITY
S( 2, 4) -10.00000 690.0000 INFINITY
j) Presente el reporte de sensibilidad de las restricciones del modelo.

Righthand Side Ranges:

Current Allowable Allowable Righthand Side Ranges:


Row RHS Increase Decrease
2 560.0000 304.0000 276.0000 Current Allowable Allowable
3 580.0000 420.0000 180.0000 Row RHS Increase Decrease
4 600.0000 INFINITY 202.0000 21 0.000000 640.0000 360.0000
5 620.0000 INFINITY 620.0000 22 9.000000 9.000000 INFINITY
6 580.0000 INFINITY 276.0000 23 9.000000 9.000000 INFINITY
7 600.0000 INFINITY 180.0000 24 9.000000 9.000000 0.000000
8 620.0000 389.0000 202.0000 25 9.000000 0.000000 9.000000
9 640.0000 360.0000 640.0000 26 9.000000 9.000000 INFINITY
10 900.0000 276.0000 304.0000 27 9.000000 9.000000 INFINITY
11 1000.000 180.0000 420.0000 28 9.000000 9.000000 9.000000
12 1000.000 202.0000 389.0000 29 9.000000 9.000000 9.000000
13 1000.000 INFINITY 360.0000 30 18.00000 180.0000 9.000000
14 0.000000 276.0000 304.0000 31 18.00000 202.0000 9.000000
15 0.000000 276.0000 304.0000 32 18.00000 INFINITY 9.000000
16 0.000000 180.0000 420.0000 33 18.00000 INFINITY 9.000000
17 0.000000 202.0000 398.0000 34 18.00000 180.0000 9.000000
18 0.000000 620.0000 0.000000 35 18.00000 202.0000 9.000000
19 0.000000 180.0000 420.0000 36 18.00000 INFINITY 9.000000
20 0.000000 202.0000 389.0000 37 18.00000 INFINITY 9.000000
Importación de modelos de autos [compra con inventarios]
Una empresa importa dos modelos de autos, A y B, tanto desde Japón como desde Brasil. Los pedidos pactados
[demanda] para los próximos tres meses son los siguientes:
Modelo Mes 1 Mes 2 Mes 3
A 200 501 600
B 301 600 501
Los costos de importación de cada modelo procedente de cada país son los siguientes:
Modelo Japón ($/auto) Brasil ($/auto) México ($/auto)
A 105 98 99
B 116 101 105
Se cuenta con un inventario inicial de 6 y 7 autos de cada modelo respectivamente y el costo mensual de guardar un auto
en almacén (costo de mantenimiento de inventarios) es de $5. Al final de cada mes se desea tener como mínimo 5 autos
en inventario de cada modelo y como máximo 10 autos en inventario de cada modelo.
Cuando los autos llegan al país, deben pasar por una revisión técnica que requiere de 3 horas por auto y la disponibilidad
de horas para dichas revisiones técnicas en cada mes es de 1500, 3400 y 3288 horas respectivamente.
Además, por disposición del gobierno en cada mes la cantidad de autos importados desde Brasil tiene que ser menor o
igual a la mitad de los importados de México.
Se desea determinar el programa de importación para esta empresa para los próximos tres meses que permita cumplir
con los pedidos pactados [cubrir la demanda].
Se solicita:
a) Definir los índices y variables de decisión en sintaxis algebraico
b) Presentar la estructura de datos que empleará en el modelo
c) Presentar la información SETS y DATA que empleará en el modelo
d) Presente la función objetivo del modelo en lingo en sintaxis compacta que realmente represente el
problema y permita determinar su solución [uso de funciones @sum]
e) Presente las restricciones del modelo en notación compacta que realmente represente el problema y
permita determinar su solución [uso de funciones @sum y @for entre otros].
f) Presente su mejor y amplio reporte administrativo [con toda la información que se desprende del
problema y del reporte lingo] para toma de decisiones de optimización; no adjunte el reporte del lingo.
Sea explicito en su decisión para que sea considerado.
j

Modelo Mes 1 Mes 2 Mes 3


A 200 501 600
i Demanda ij Notas importantes:
B 301 600 501
Se cuenta con un inventario inicial de 6 y
Disponible (hr) 1500 3400 3288 HorasDispon j
7 autos de cada modelo respectivamente
k
… la disponibilidad de horas para dichas
Modelo Japón ($/auto) Brasil ($/auto) México ($/auto)
revisiones técnicas en cada mes es de
A 105 98 99 1500, 3400 y 3288 horas respectivamente.
i CostoImporta ik
B 116 101 105

Modelo InvInicial
A 6 Índice:
i
B 7 i: modelo (A B)
InvInicial i j: mes (1..3)
k: pais (Japón Brasil Mexico)
Variable de decisión:
Xijk = Cantidad (unidades) a comprar del modelo i en mes j del país k
Sij = Inventario (unidades) del modelo i al final del mes j
Estructura de datos
Definición de índices, variables InvInicial i = 6 7
y estructura de datos para HorasDispon j = 1500 3400 3288
compactar Demanda ij = 200 501 600 301 600 501
CostoImporta ik = 105 98 99 116 101 105
Índices, Variables y vectores y su relación con SETS y DATA

Sets:
Índice:
Modelo/A B/: InvInicial;
i: modelo (A B)
Mes/1..3/: HorasDispon;
j: mes (1..3)
Pais/Japon Brasil Mexico/: ;
k: pais (Japón Brasil Mexico)
MxM(Modelo, Mes): Demanda, S;
MxP(Modelo, Pais): CostoImporta;
Variable de decisión:
MxMxP(Modelo,Mes,Pais): X;
Xijk = Cantidad (unidades) a comprar del modelo i en mes j del país k
End sets
Sij = Inventario (unidades) del modelo i al final del mes j
Data:
Estructura de datos
InvInicial = 6 7;
InvInicial i = 6 7
HorasDispon = 1500 3400 3288;
HorasDispon j = 1500 3400 3288
Demanda = 200 501 600 301 600 501;
Demanda ij = 200 501 600 301 600 501
CostoImporta = 105 98 99 116 101 105;
CostoImporta ik = 105 98 99 116 101 105
End data
Construcción de función objetivo en sintaxis compacto
… el costo mensual de guardar un auto en almacén (costo de mantenimiento de inventarios) es de $5.
Se desea determinar el programa de importación para esta empresa para los próximos tres meses que permita cumplir
con los pedidos pactados [cubrir la demanda].

2 3 3 2 3

Min Z = ෍ ෍ ෍ CostoImportaik ∗ Xijk + ෍ ෍ 5 ∗ Sij


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

Min = @Sum(MxMxP(i,j,k): CostoImporta(i,k)*X(i,j,k)) + @Sum(MxM(i,j): 5*S(i,j));


Construcción de restricciones en sintaxis compacto
Notas importantes:
Se cuenta con un inventario inicial de 6 y 7 autos de cada modelo respectivamente
Al final de cada mes se desea tener como mínimo 5 autos en inventario de cada modelo y como máximo 10 autos en inventario de cada modelo.
Cuando los autos llegan al país, deben pasar por una revisión técnica que requiere de 3 horas por auto y la disponibilidad de horas para dichas revisiones técnicas
en cada mes es de 1500, 3400 y 3288 horas respectivamente.
… en cada mes la cantidad de autos importados desde Brasil tiene que ser menor o igual a la mitad de los importados de México.

2 3

j: ෍ ෍ 3 ∗ Xijk ≤ HorasDisponj @For(Mes(j):


i=1 k=1 @Sum(MxP(i,k): 3*X(i,j,k)) <= HorasDispon(j));
3

i: Si1 = InvIniciali + ෍ Xijk − Demanda i1 @For(Modelo(i):


S(i,1) = InvInicial(i) + @Sum(Pais(k): X(i,1,k)) - Demanda(i,1));
k=1
3
@For(MxM(i,j) | j #GE# 2:
i, j ≥ 2: Sij = Sij−1 + ෍ Xijk − Demanda ij S(i,j) = S(i,j-1) + @Sum(Pais(k): X(i,j,k)) - Demanda(i,j));
k=1
2 2

j: ෍ Xij2 ≤ 0.5 ∗ ෍ Xij3 @For(Mes(j):


i=1 i=1 @Sum(Modelo(i): X(i,j,2)) <= @Sum(Modelo(i): 0.5*X(i,j,3)));

i, j: Sij ≥ 5 ; Sij ≤ 10 @For(MxM(i,j):


S(i,j) >= 5; S(i,j) <= 10);
Sets:
Modelo/A B/: InvInicial;
Mes/1..3/: HorasDispon;
Pais/Japon Brasil Mexico/: ;
MxM(Modelo, Mes): Demanda, S;
MxP(Modelo, Pais): CostoImporta; Modelo lineal
MxMxP(Modelo,Mes,Pais): X;
End sets

Data:
InvInicial = 6 7;
HorasDispon = 1500 3400 3288;
Demanda = 200 501 600 301 600 501;
CostoImporta = 105 98 99 116 101 105;
End data

Min = @Sum(MxMxP(i,j,k): CostoImporta(i,k)*X(i,j,k)) + @Sum(MxM(i,j): 5*S(i,j));

@For(Mes(j): @Sum(MxP(i,k): 3*X(i,j,k)) <= HorasDispon(j));


@For(Modelo(i): S(i,1) = InvInicial(i) + @Sum(Pais(k): X(i,1,k)) - Demanda(i,1));
@For(MxM(i,j) | j #GE# 2: S(i,j) = S(i,j-1) + @Sum(Pais(k): X(i,j,k)) - Demanda(i,j));
@For(Mes(j): @Sum(Modelo(i): X(i,j,2)) <= @Sum(Modelo(i): 0.5*X(i,j,3)));
@For(MxM(i,j): S(i,j) >= 5; S(i,j) <= 10);
End
Variable Value Reduced Cost
INVINICIAL( A) 6.000000 0.000000
INVINICIAL( B) 7.000000 0.000000
HORASDISPON( 1)
HORASDISPON( 2)
1500.000
3400.000
0.000000
0.000000 Reporte lingo
HORASDISPON( 3) 3288.000 0.000000
DEMANDA( A, 1) 200.0000 0.000000
DEMANDA( A, 2) 501.0000 0.000000
DEMANDA( A, 3) 600.0000 0.000000
DEMANDA( B, 1) 301.0000 0.000000
DEMANDA( B, 2) 600.0000 0.000000
Row Slack or Surplus Dual Price
DEMANDA( B, 3) 501.0000 0.000000
1 272275.0 -1.000000
S( A, 1) 5.000000 0.000000
2 6.000000 0.000000
S( A, 2) 10.00000 0.000000
3 82.00000 0.000000
S( A, 3) 5.000000 0.000000
4 0.000000 1.666667
S( B, 1) 5.000000 0.000000
5 0.000000 97.66667
S( B, 2) 5.000000 0.000000
6 0.000000 103.6667
S( B, 3) 5.000000 0.000000
7 0.000000 97.66667
COSTOIMPORTA( A, JAPON) 105.0000 0.000000
8 0.000000 102.6667
COSTOIMPORTA( A, BRASIL) 98.00000 0.000000
9 0.000000 103.6667
COSTOIMPORTA( A, MEXICO) 99.00000 0.000000
10 0.000000 108.6667
COSTOIMPORTA( B, JAPON) 116.0000 0.000000
11 0.000000 2.666667
COSTOIMPORTA( B, BRASIL) 101.0000 0.000000
12 0.000000 2.666667
COSTOIMPORTA( B, MEXICO) 105.0000 0.000000
13 0.000000 2.666667
X( A, 1, JAPON) 0.000000 7.333333
14 0.000000 -5.000000
X( A, 1, BRASIL) 0.000000 3.000000
15 5.000000 0.000000
X( A, 1, MEXICO) 199.0000 0.000000
16 5.000000 0.000000
X( A, 2, JAPON) 0.000000 7.333333
17 0.000000 0.000000
X( A, 2, BRASIL) 0.000000 3.000000
18 0.000000 -107.6667
X( A, 2, MEXICO) 506.0000 0.000000
19 5.000000 0.000000
X( A, 3, JAPON) 0.000000 7.333333
20 0.000000 -5.000000
X( A, 3, BRASIL) 0.000000 3.000000
21 5.000000 0.000000
X( A, 3, MEXICO) 595.0000 0.000000
22 0.000000 0.000000
X( B, 1, JAPON) 0.000000 12.33333
23 5.000000 0.000000
X( B, 1, BRASIL) 166.0000 0.000000
24 0.000000 -113.6667
X( B, 1, MEXICO) 133.0000 0.000000
25 5.000000 0.000000
X( B, 2, JAPON) 0.000000 12.33333
X( B, 2, BRASIL) 368.6667 0.000000
X( B, 2, MEXICO) 231.3333 0.000000
X( B, 3, JAPON) 0.000000 12.33333
X( B, 3, BRASIL) 365.3333 0.000000
X( B, 3, MEXICO) 135.6667 0.000000
Costo óptimo: $ 272275 Reporte
Programa de Importación de autos modelo A: administrativo
País Mes 1 Mes 2 Mes 3
Japón 0 0 0
Brasil 0 0 0
México 199 506 595
Programa de Importación de autos modelo B:

País Mes 1 Mes 2 Mes 3


Japón 0 0 0
Brasil 166 368.6 365.3
México 133 231.3 135.6
Inventarios

Modelos Mes 1 Mes 2 Mes 3


A 5 10 5
B 5 5 5
Muchas gracias
[email protected]
INVESTIGACIÓN DE OPERACIONES I

Taller de programación binario-mixto

Tupia de la Cruz, Elmer Dr(c)


Decisiones de fabricación y ampliación de planta
Una plantación hortícola dispone de un terreno de 100 hectáreas en el que se desea cultivar tomates,
pimientos, zanahorias, cebollas y lechugas. Las horas de trabajo totales mínimo disponibles para cultivar
toda la plantación son 500. Las horas por hectárea necesarias para el cultivo de cada uno de los productos
aparecen recogidas en la siguiente tabla:
Tomates Pimientos Zanahorias Cebollas Lechugas
Horas / Ha 5 4 5 2 3
El costo de las semillas y fertilizantes por hectárea cultivada, para cada uno de los productos, junto con el
costo fijo del cultivo de cada uno de ellos vienen reflejados en la siguiente tabla:
Costos Tomates Pimientos Zanahorias Cebollas Lechugas
Costos semillas y fertilizantes 25 15 10 8 25
Costo fijo del cultivo 100 120 100 80 150

El capataz de la plantación ha determinado que:


• plantará como mínimo 3 productos y a lo sumo 4 de los 5 posibles,
• si planta tomates, entonces no plantará cebollas,
• plantará lechugas sólo si planta pimientos
Elaborar el modelo de programación entera binaria de forma compacta que minimice el costo,
presentando la información como se indica:

a) Defina los índices que el modelo empleará.


b) Defina las variables de decisión que el modelo empleará.
c) Defina las estructuras de datos [vectores y matrices] que el modelo empleará.
d) Presente SETS y DATA del modelo en lingo
e) Formular la función objetivo del programa lineal en forma compacta (algebraico y en lingo).
f) Formular las restricciones del programa lineal en forma compacta (algebraico y en lingo).
g) Presente las restricciones de las variables de decisión
h) Presente su mejor y amplio reporte administrativo [con toda la información que se desprende del
problema y del reporte lingo] para toma de decisiones de optimización; no adjunte el reporte del
lingo. Sea explicito en su decisión para que sea considerado.
Preparando datos

Costos semillas y Costo fijo del


Productos Horas/Ha
fertilizantes cultivo
Tomates 25 100 5
Pimientos 15 120 4
i Zanahorias 10 100 5
Cebollas 8 80 2
Lechugas 25 150 3
500 Horas
100 Ha
• plantará como mínimo 3 productos y a lo sumo 4 de los 5 posibles,
• si planta tomates, entonces no plantará cebollas.
• plantará lechugas sólo si planta pimientos.
a) Defina los índices que el modelo empleará.

i: producto (1,2,3,4,5) → 1 son tomates, 2 pimientos, 3 zanahorias, 4 cebollas y 5 lechugas

b) Defina las variables de decisión que el modelo empleará.

Xi = Cantidad de áreas (en hectáreas) cultivadas del producto i


Yi = 1 si se cultiva el producto i, 0 en caso contrario.

c) Defina las estructuras de datos [vectores y matrices] que el modelo empleará.

CostoInsumo i = 25 15 10 8 25;
CostoFijo i = 100 120 100 80 150;
RequerimientoHoras i = 5 4 5 2 3;
MínimaHora = 500;
MaximaArea = 100;
d) Presente SETS y DATA del modelo en lingo

SETS:
PRODUCTO/1..5/: X, Y, COSTOINSUMO,
COSTOFIJO, REQUERIMIENTOHORA;
ENDSETS
DATA:
COSTOINSUMO = 25 15 10 8 25;
COSTOFIJO = 100 120 100 80 150;
REQUERIMIENTOHORA = 5 4 5 2 3;
MINIMAHORA = 500;
MAXIMAAREA = 100;
M = 10000;
ENDDATA
e) Formular la función objetivo del programa lineal en forma compacta (algebraico y en lingo).

Min Z = ෍ CostoInsumoi ∗ Xi + CostoFijo ∗ Yi


i=1

MIN = @SUM(PRODUCTO(I):COSTOINSUMO(I)*X(I)+COSTOFIJO(I)*Y(I));
f) Formular las restricciones del programa lineal en forma compacta (algebraico y en lingo).

෍ Xi <= MaximaArea @SUM(PRODUCTO(I):X(I))<=MAXIMAAREA;


i=1
5

෍ RequerimientoHora i ∗ Xi ≥ MinimaHora @SUM(PRODUCTO(I):


i=1 REQUERIMIENTOHORA(I)*X(I))>=MINIMAHORA;
5

෍Y i ≥ 3 @SUM(PRODUCTO(I):Y(I))>=3;
i=1
5
@SUM(PRODUCTO(I):Y(I))<=4;
෍Y i ≤ 4
i=1
Y1+Y4 <= 1 Y(1)+Y(4)<=1;
Y5<=Y2 Y(5)<=Y(2);

Xi ≤ M ∗ Yi ∀ i ; Con M >=0, grande. @FOR(PRODUCTO(I):X(I)<=M*Y(I));


g) Presente las restricciones de las variables

Xi ≥ 0, ∀i
Yi = 0, 1; ∀i @FOR(PRODUCTO(I):@BIN(Y(I)));

SETS:
PRODUCTO/1..5/: X, Y, COSTOINSUMO, COSTOFIJO, REQUERIMIENTOHORA;
ENDSETS
DATA:
COSTOINSUMO = 25 15 10 8 25;
COSTOFIJO = 100 120 100 80 150;
REQUERIMIENTOHORA = 5 4 5 2 3;
MINIMAHORA = 500;
Programa Binario Mixto MAXIMAAREA = 100;
M = 10000;
ENDDATA
MIN = @SUM(PRODUCTO(I):COSTOINSUMO(I)*X(I)+COSTOFIJO(I)*Y(I));
@SUM(PRODUCTO(I):X(I))<=MAXIMAAREA;
@SUM(PRODUCTO(I):REQUERIMIENTOHORA(I)*X(I))>=MINIMAHORA;
@SUM(PRODUCTO(I):Y(I))>=3;
@SUM(PRODUCTO(I):Y(I))<=4;
Y(1)+Y(4)<=1;
Y(5)<=Y(2);
@FOR(PRODUCTO(I):X(I)<=M*Y(I));
@FOR(PRODUCTO(I):@BIN(Y(I)));
END
Variable Value Reduced Cost
MINIMAHORA 500.0000 0.000000
MAXIMAAREA 100.0000 0.000000
M 10000.00 0.000000
X( 1) 0.000000 15.00000
X( 2) 0.000000 7.000000
X( 3) 100.0000 0.000000
X( 4) 0.000000 4.000000
X( 5) 0.000000 19.00000
Y( 1) 0.000000 100.0000
Y( 2) 1.000000 120.0000
Y( 3) 1.000000 100.0000
Y( 4) 1.000000 80.00000
Y( 5) 0.000000 150.0000
COSTOINSUMO( 1) 25.00000 0.000000
COSTOINSUMO( 2) 15.00000 0.000000
COSTOINSUMO( 3) 10.00000 0.000000
COSTOINSUMO( 4) 8.000000 0.000000
COSTOINSUMO( 5) 25.00000 0.000000
COSTOFIJO( 1) 100.0000 0.000000
COSTOFIJO( 2) 120.0000 0.000000
COSTOFIJO( 3) 100.0000 0.000000
COSTOFIJO( 4) 80.00000 0.000000
COSTOFIJO( 5) 150.0000 0.000000
REQUERIMIENTOHORA( 1) 5.000000 0.000000
REQUERIMIENTOHORA( 2) 4.000000 0.000000
REQUERIMIENTOHORA( 3) 5.000000 0.000000
REQUERIMIENTOHORA( 4) 2.000000 0.000000
REQUERIMIENTOHORA( 5) 3.000000 0.000000

Row Slack or Surplus Dual Price


1 1300.000 -1.000000
2 0.000000 0.000000
3 0.000000 -2.000000
4 0.000000 0.000000
5 1.000000 0.000000
6 0.000000 0.000000
7 1.000000 0.000000
8 0.000000 0.000000
9 10000.00 0.000000
10 9900.000 0.000000
11 10000.00 0.000000
12 0.000000 0.000000
Decisiones de fabricación y ampliación de planta
Una fábrica produce 4 tipos de jabones, para lo cual son necesarios 6 componentes. En la siguiente tabla se
muestran las cantidades necesarias para realizar una pastilla de jabón de cada tipo, junto con las
disponibilidades de los componentes y el beneficio por cada pastilla de jabón:
Aceite Agua Sosa cáustica Glicerina Esencia de limón Esencia de fresa Beneficio
Tipo de jabón
(ml/jabón) (ml/jabón) (g/jabón) (g/jabón) (ml/jabón) (ml/jabón) ($/jabón)
1 250 240 42 1 1 3 10
2 200 210 2 40 2 1 13
3 230 240 20 25 3 1 15
4 180 200 10 35 1 3 11
Disponibilidad 150,000 ml 160,000 ml 12 kg 3 kg 2,000 ml 3,000 ml
Se tiene que producir al menos un tipo de jabón al día y como mucho tres. Además, si se producen jabones
del tipo 1 no se podrán producir del tipo 4.
La fábrica se está planteando ampliar la planta de producción con un costo de $200,000, de forma que si se
realiza la ampliación las disponibilidades de los componentes aumentarán en:
Aceite Agua Sosa cáustica Glicerina Esencia de limón Esencia de fresa

50,000 ml 70,000 ml 4 kg 4 kg 1,000 ml 500 ml


Elaborar el modelo de programación entera binaria de forma compacta que maximice el beneficio,
presentando la información como se indica:

a) Defina los índices que el modelo empleará.


b) Defina las variables de decisión que el modelo empleará.
c) Defina las estructuras de datos [vectores y matrices] que el modelo empleará.
d) Presente SETS y DATA del modelo en lingo
e) Formular la función objetivo del programa lineal en forma compacta (algebraico y en lingo).
f) Formular las restricciones del programa lineal en forma compacta (algebraico y en lingo).
g) Presente las restricciones de las variables de decisión.
h) Presente su mejor y amplio reporte administrativo [con toda la información que se desprende del
problema y del reporte lingo] para toma de decisiones de optimización; no adjunte el reporte del
lingo. Sea explicito en su decisión para que sea considerado.
i) .
Preparando datos
j

Aceite Agua Sosa cáustica Glicerina Esencia de limón Esencia de fresa Beneficio
Tipo de jabón
(ml/jabón) (ml/jabón) (g/jabón) (g/jabón) (ml/jabón) (ml/jabón) ($/jabón)

1 250 240 42 1 1 3 10
2 200 210 2 40 2 1 13
i 3 230 240 20 25 3 1 15
4 180 200 10 35 1 3 11
150,000 ml 160,000 ml 12 kg 3 kg 2,000 ml 3,000 ml actual
Disponibilidad
50,000 ml 70,000 ml 4 kg 4 kg 1,000 ml 500 ml incremento

Mínimo de tipos: 1;
Máximo de tipos: 3;
Si 1 va entonces 4 no va.
Costo de ampliación=$200000;
a) Defina los índices que el modelo empleará.

i: jabón (1,2,3,4)
j: componente (1,2,3,4,5,6)

b) Defina las variables de decisión que el modelo empleará.

Xi = Cantidad (en unidades) de pastillas de jabón tipo i a producir;


Yi = 1, sí se produce jabón del tipo i; 0, en caso contrario;
Z = 1, sí se hace la ampliación de la disponibilidad; 0, en caso contrario;

c) Defina las estructuras de datos [vectores y matrices] que el modelo empleará.

Beneficio i = 10 13 15 11;
Disponibilidad1 j = 150000 160000 12000 3000 2000 3000;
Disponibilidad2 j = 50000 70000 4000 4000 1000 500;
Requerimiento ij = 250 240 42 1 1 3 200 210 2 40 2 1 230 240 20 25 3 1 180 200 10 35 1 3;
Ampliación = 200000;
M= 10000;
d) Presente SETS y DATA del modelo en lingo

SETS:
JABON/1..4/:X, Y, BENEFICIO;
COMPONENTE/1..6/:DISPONIBILIDAD1, DISPONIBILIDAD2;
JXC(JABON,COMPONENTE):REQUERIMIENTO;
ENDSETS

DATA:
BENEFICIO = 100 130 150 110;
DISPONIBILIDAD1 = 150000 160000 12000 3000 2000 3000;
DISPONIBILIDAD2 = 50000 70000 4000 4000 1000 500;
REQUERIMIENTO = 250 240 42 1 1 3 200 210 2 40 2 1 230 240 20 25 3 1
180 200 10 35 1 3;
AMPLIACION = 200000;
M=10000;
ENDDATA
e) Formular la función objetivo del programa lineal en forma compacta (algebraico y en lingo).

Max Z = ෍ Beneficioi ∗ X i − Ampliacion ∗ Z


i=1

MAX = @SUM(JABON(I):BENEFICIO(I)*X(I))- AMPLIACION*Z;


f) Formular las restricciones del programa lineal en forma compacta (algebraico y en lingo).
4

෍ Requerimientoij ∗ Xi ≤ Disponibilidad1j + Disponibilidad2j ∗ Z; ∀j


i=1
4

෍ Yi ≥ 1
i=1
4

෍ Yi ≤ 3
i=1
Y1 + Y4 ≤ 1
Xi ≤ M ∗ Yi ; ∀i

@FOR(COMPONENTE(J):
@SUM(JABON(I):
REQUERIMIENTO(I,J)*X(I))<=DISPONIBILIDAD1(J)+DISPONIBILIDAD2(J)*Z);
@SUM(JABON(I):Y(I))>=1;
@SUM(JABON(I):Y(I))<=3;
Y(1)+Y(4)<=1;
@FOR(JABON(I):X(I)<=M*Y(I));
g) Presente las restricciones de las variables

Xi ≥ 0, entera; ∀i
Yi = 0, 1; ∀i @FOR(JABON(I):@GIN(X(I));@BIN(Y(I));@BIN(Z));
Z = 0, 1;
SETS:
JABON/1..4/:X, Y, BENEFICIO;
COMPONENTE/1..6/:DISPONIBILIDAD1, DISPONIBILIDAD2;
JXC(JABON,COMPONENTE):REQUERIMIENTO;
ENDSETS
DATA:
BENEFICIO = 100 130 150 110;
DISPONIBILIDAD1 = 150000 160000 12000 3000 2000 3000;
DISPONIBILIDAD2 = 50000 70000 4000 4000 1000 500;
REQUERIMIENTO = 250 240 42 1 1 3 200 210 2 40 2 1 230 240 20 25 3 1 180 200
Programa Binario Mixto 10 35 1 3;
AMPLIACION = 200000;
M=10000;
ENDDATA
MAX = @SUM(JABON(I):BENEFICIO(I)*X(I))- AMPLIACION*Z;
@FOR(COMPONENTE(J):
@SUM(JABON(I):
REQUERIMIENTO(I,J)*X(I))<=DISPONIBILIDAD1(J)+DISPONIBILIDAD2(J)*Z);
@SUM(JABON(I):Y(I))>=1;
@SUM(JABON(I):Y(I))<=3;
Y(1)+Y(4)<=1;
@FOR(JABON(I):X(I)<=M*Y(I));
@FOR(JABON(I):@GIN(X(I));@BIN(Y(I));@BIN(Z));
END
Variable Value Reduced Cost
AMPLIACION 200000.0 0.000000
REQUERIMIENTO( 1, 1) 250.0000 0.000000
REQUERIMIENTO( 1, 2) 240.0000 0.000000
REQUERIMIENTO( 1, 3) 42.00000 0.000000
REQUERIMIENTO( 1, 4) 1.000000 0.000000
REQUERIMIENTO( 1, 5) 1.000000 0.000000
REQUERIMIENTO( 1, 6) 3.000000 0.000000
REQUERIMIENTO( 2, 1) 200.0000 0.000000
REQUERIMIENTO( 2, 2) 210.0000 0.000000
REQUERIMIENTO( 2, 3) 2.000000 0.000000
REQUERIMIENTO( 2, 4) 40.00000 0.000000
REQUERIMIENTO( 2, 5) 2.000000 0.000000
Variable Value Reduced Cost
REQUERIMIENTO( 2, 6) 1.000000 0.000000
AMPLIACION 200000.0 0.000000
REQUERIMIENTO( 3, 1) 230.0000 0.000000
M 10000.00 0.000000
REQUERIMIENTO( 3, 2) 240.0000 0.000000
Z 0.000000 200000.0
REQUERIMIENTO( 3, 3) 20.00000 0.000000
X( 1) 233.0000 -100.0000
REQUERIMIENTO( 3, 4) 25.00000 0.000000
X( 2) 0.000000 -130.0000
REQUERIMIENTO( 3, 5) 3.000000 0.000000
X( 3) 110.0000 -150.0000
REQUERIMIENTO( 3, 6) 1.000000 0.000000
X( 4) 0.000000 -110.0000
REQUERIMIENTO( 4, 1) 180.0000 0.000000
Y( 1) 1.000000 0.000000
REQUERIMIENTO( 4, 2) 200.0000 0.000000
Y( 2) 0.000000 0.000000
REQUERIMIENTO( 4, 3) 10.00000 0.000000
Y( 3) 1.000000 0.000000
REQUERIMIENTO( 4, 4) 35.00000 0.000000
Y( 4) 0.000000 0.000000
REQUERIMIENTO( 4, 5) 1.000000 0.000000
BENEFICIO( 1) 100.0000 0.000000
REQUERIMIENTO( 4, 6) 3.000000 0.000000
BENEFICIO( 2) 130.0000 0.000000
BENEFICIO( 3) 150.0000 0.000000
BENEFICIO( 4) 110.0000 0.000000 Row Slack or Surplus Dual Price
DISPONIBILIDAD1( 1) 150000.0 0.000000 1 39800.00 1.000000
DISPONIBILIDAD1( 2) 160000.0 0.000000 2 66450.00 0.000000
DISPONIBILIDAD1( 3) 12000.00 0.000000 3 77680.00 0.000000
DISPONIBILIDAD1( 4) 3000.000 0.000000 4 14.00000 0.000000
DISPONIBILIDAD1( 5) 2000.000 0.000000 5 17.00000 0.000000
DISPONIBILIDAD1( 6) 3000.000 0.000000 6 1437.000 0.000000
DISPONIBILIDAD2( 1) 50000.00 0.000000 7 2191.000 0.000000
DISPONIBILIDAD2( 2) 70000.00 0.000000 8 1.000000 0.000000
DISPONIBILIDAD2( 3) 4000.000 0.000000 9 1.000000 0.000000
DISPONIBILIDAD2( 4) 4000.000 0.000000 10 0.000000 0.000000
DISPONIBILIDAD2( 5) 1000.000 0.000000 11 9767.000 0.000000
DISPONIBILIDAD2( 6) 500.0000 0.000000 12 0.000000 0.000000
13 9890.000 0.000000
14 0.000000 0.000000
Competencia internacional de futbol escolar
Un colegio particular se encuentra organizando un campeonato internacional de fútbol escolar. Para ello se han
definido 2 grupos: Grupo A y Grupo B, conformados por equipos escolares de los países vecinos. Sin embargo,
aún no se han escogido las sedes donde se realizarán los partidos. Para ello, se han definido 5 posibles sedes, de
las cuales se tienen que elegir a 4. Por cada grupo se deberá elegir 2 sedes; pero una misma sede no puede ser
elegida por los 2 grupos.
Téngase en cuenta que, si una sede es elegida, se venderán todas las entradas de esa sede. Asimismo, el colegio
particular organizador debe cubrir los gastos de transporte de cada grupo.
La asistencia, el precio a cobrar por entrada y el costo del alquiler de cada sede que el organizador (el colegio
particular) debe asumir si es que es elegida y los costos de traslado para cada grupo a cada sede por toda la
temporada que dure el campeonato son los siguientes:
Asistencia (personas) Costo de alquiler Costo de traslado (soles)
Sede
Entrada regular Entrada especial (Soles) Grupo A Grupo B
1 900 500 1700 820 880
2 960 560 1800 860 820
3 780 480 1500 780 800
4 920 550 1800 900 840
5 870 460 1600 800 840
Precio (Soles/entrada) 14 20
Se solicita:
a) Definir los índices y variables de decisión en sintaxis algebraico
b) Presentar la estructura de datos que empleará en el modelo
c) Presentar la información SETS y DATA que empleará en el modelo
d) Presente la función objetivo del modelo en lingo en sintaxis compacta que realmente represente el
problema y permita determinar su solución [uso de funciones @sum]
e) Presente las restricciones del modelo en notación compacta que realmente represente el problema y
permita determinar su solución [uso de funciones @sum y @for entre otros].
f) Presente su mejor y amplio reporte administrativo [con toda la información que se desprende del
problema y del reporte lingo] para toma de decisiones de optimización; no adjunte el reporte del lingo.
Sea explicito en su decisión para que sea considerado.
k i

Asistencia (personas) Costo de alquiler Costo de traslado (soles)


Sede
Entrada regular Entrada especial (Soles) Grupo A Grupo B
1 900 500 1700 820 880
2 960 560 1800 860 820
j 3 780 480 1500 780 800 traslado ij
4 920 550 1800 900 840
5 870 460 1600 800 840
Precio (Soles/entrada) 14 20 costo_alquiler j
precio k
Indice:
asistencia jk
i: grupo [A,B]
j: sedes [1..5]
k: entrada [1..2]

Variable de decisión
Simplificación para compactar Yj = Elegir o no elegir la sede j, 0,1
Xij = Elegir o no elegir el grupo i en la sede j; 0,1

Estructura de datos
alquiler j = 1700 1800 1500 1800 1600;
precio k = 14 20;
traslado ij = 820 860 780 900 800 880 820 800 840 840;
asistencia jk = 900 500 960 560 780 480 920 550 870 460;
Índices, Variables y vectores y su relación con SETS y DATA

Indice: Sets:
i: grupo [A,B] grupo/A B/:;
j: sedes [1..5] sede/1..5/: Y, alquiler;
k: entrada [1..2] entrada/1 2/: precio;
GXS (grupo, sede): X, traslado;
SXE (sede, entrada): asistencia;
Variable de decisión End sets
Yj = Elegir o no elegir la sede j, 0,1
Xij = Elegir o no elegir el grupo i en la sede j; 0,1

Estructura de datos Data:


alquiler j = 1700 1800 1500 1800 1600; alquiler = 1700 1800 1500 1800 1600;
precio k = 14 20; precio = 14 20;
traslado ij = 820 860 780 900 800 880 820 800 840 840; traslado = 820 860 780 900 800 880 820 800 840 840;
asistencia jk = 900 500 960 560 780 480 920 550 870 460; asistencia = 900 500 960 560 780 480 920 550 870 460;
End data
Determinación de la función objetivo en sintaxis de lingo compacto
Si una sede es elegida, se venderán todas las entradas de esa sede.
El colegio debe cubrir los gastos de transporte de cada grupo.
La asistencia, el precio a cobrar por entrada y el costo del alquiler de cada sede que el organizador debe asumir
si es que es elegida y los costos de traslado para cada grupo a cada sede

Max Z = Precio − [Costo fijo + Costo variable]

5 2 5 2 5

Max Z = ෍ ෍ asistenciajk ∗ preciok ∗ Yj − [෍ 𝑎𝑙𝑞𝑢𝑖𝑙𝑒𝑟𝑗 ∗ 𝑌𝑗 + ෍ ෍ 𝑡𝑟𝑎𝑠𝑙𝑎𝑑𝑜𝑖𝑗 ∗ 𝑋𝑖𝑗 ]


j=1 k=1 𝑗=1 𝑖=1 𝑗=1

Max=
@sum(SXE(j,k): asistencia(j,k)*precio(k)*Y(j)) –
(@sum(sede(j): alquiler(j)*Y(j)) + @sum(GXS(i,j): traslado(i,j)*X(i,j)));
Determinación de restricciones en sintaxis de lingo compacto
5
Se han definido 5 posibles sedes, de las cuales
se tienen que elegir a 4. ෍ Yj = 4
j=1
!Se deben escoger 4 sedes;
@sum(sede(j): Y(j)) = 4;
5
Por cada grupo se deberá elegir 2 sedes;
i: ෍ X ij = 2
j=1
!Cada grupo escoge dos sedes;
@for(grupo(i): @sum(sede(j): X(i,j)) = 2);
2
Una misma sede no puede ser elegida por los 2
grupos. j: ෍ X ij ≤ Yj
i=1
!Una misma sede no puede ser escogida por dos grupos;
@for(sede(j):@sum(grupo(i): X(i,j)) <= Y(j));

!Y y X son binarias; @for(sede(j): @bin(Y(j))); @for(GXS(i,j): @bin(X(i,j)));


Sets:
grupo/A B/:;
sede/1..5/: Y, alquiler; Modelo binario puro
entrada/1 2/: precio;
GXS (grupo, sede): X, traslado;
SXE (sede, entrada): asistencia;
Endsets
Data:
alquiler = 1700 1800 1500 1800 1600;
precio = 14 20;
traslado = 820 860 780 900 800 880 820 800 840 840;
asistencia = 900 500 960 560 780 480 920 550 870 460;
Enddata
Max = @sum(SXE(j,k): asistencia(j,k)*precio(k)*Y(j))-(@sum(sede(j): alquiler(j)*Y(j)) +@sum(GXS(i,j): traslado(i,j)*X(i,j)));
@for(grupo(i): @sum(sede(j): X(i,j)) = 2);
@sum(sede(j): Y(j)) = 4;
@for(Sede(j):@sum(grupo(i): X(i,j)) <= Y(j));
@for(sede(j): @bin(Y(j)));
@for(GXS(i,j): @bin(X(i,j)));
End
Variable Value Reduced Cost Variable Value Reduced Cost
Y( 1) 1.000000 -20900.00 TRASLADO( A, 1) 820.0000 0.000000
Y( 2) 1.000000 -22840.00 TRASLADO( A, 2) 860.0000 0.000000
Y( 3) 0.000000 -19020.00 TRASLADO( A, 3) 780.0000 0.000000
Y( 4) 1.000000 -22080.00 TRASLADO( A, 4) 900.0000 0.000000
Y( 5) 1.000000 -19780.00 TRASLADO( A, 5) 800.0000 0.000000
ALQUILER( 1) 1700.000 0.000000 TRASLADO( B, 1) 880.0000 0.000000
ALQUILER( 2) 1800.000 0.000000 TRASLADO( B, 2) 820.0000 0.000000
ALQUILER( 3) 1500.000 0.000000 TRASLADO( B, 3) 800.0000 0.000000
ALQUILER( 4) 1800.000 0.000000 TRASLADO( B, 4) 840.0000 0.000000
ALQUILER( 5) 1600.000 0.000000 TRASLADO( B, 5) 840.0000 0.000000
PRECIO( 1) 14.00000 0.000000 ASISTENCIA( 1, A) 900.0000 0.000000
PRECIO( 2) 20.00000 0.000000 ASISTENCIA( 1, B) 500.0000 0.000000
X( A, 1) 1.000000 820.0000 ASISTENCIA( 2, A) 960.0000 0.000000
X( A, 2) 0.000000 860.0000 ASISTENCIA( 2, B) 560.0000 0.000000
X( A, 3) 0.000000 780.0000 ASISTENCIA( 3, A) 780.0000 0.000000
X( A, 4) 0.000000 900.0000 ASISTENCIA( 3, B) 480.0000 0.000000
X( A, 5) 1.000000 800.0000 ASISTENCIA( 4, A) 920.0000 0.000000
X( B, 1) 0.000000 880.0000 ASISTENCIA( 4, B) 550.0000 0.000000
X( B, 2) 1.000000 820.0000 ASISTENCIA( 5, A) 870.0000 0.000000
X( B, 3) 0.000000 800.0000 ASISTENCIA( 5, B) 460.0000 0.000000
X( B, 4) 1.000000 840.0000
X( B, 5) 0.000000 840.0000
Row Slack or Surplus Dual Price
1 82320.00 1.000000
2 0.000000 0.000000
Reporte lingo 3 0.000000 0.000000
4 0.000000 0.000000
5 0.000000 0.000000
6 0.000000 0.000000
7 0.000000 0.000000
8 0.000000 0.000000
9 0.000000 0.000000
Variable Value Reduced Cost Reporte administrativo
Y( 1) 1.000000 -20900.00 Las sedes elegidas para desarrollar los partidos de
Y( 2) 1.000000 -22840.00
Y( 3) 0.000000 -19020.00 futbol son 1, 2, 4 y 5 y los equipos de futbol del grupo
Y( 4) 1.000000 -22080.00
Y( 5) 1.000000 -19780.00 A jugarán en las sedes 1 y 5 y los del grupo B jugarán
ALQUILER( 1) 1700.000 0.000000 en las sedes 2 y 4, con la cual se obtendrá una utilidad
ALQUILER( 2) 1800.000 0.000000
ALQUILER( 3) 1500.000 0.000000 total de $82,320.
ALQUILER( 4) 1800.000 0.000000
ALQUILER( 5) 1600.000 0.000000
PRECIO( 1) 14.00000 0.000000 Utilidad óptima: $82320
PRECIO( 2) 20.00000 0.000000 Sedes elegidas
X( A, 1) 1.000000 820.0000 Sede 1 Sede 2 Sede 3 Sede 4 Sede 5
X( A, 2) 0.000000 860.0000
X( A, 3) 0.000000 780.0000 SI SI SI SI
X( A, 4) 0.000000 900.0000 Asignación de sede por grupo
X( A, 5) 1.000000 800.0000
Sede 1 Sede 2 Sede 3 Sede 4 Sede 5
X( B, 1) 0.000000 880.0000
X( B, 2) 1.000000 820.0000 Grupo A X X
X( B, 3) 0.000000 800.0000 Grupo B X X
X( B, 4) 1.000000 840.0000
X( B, 5) 0.000000 840.0000
Row Slack or Surplus Dual Price
1 82320.00 1.000000
2 0.000000 0.000000
3 0.000000 0.000000
4 0.000000 0.000000
5 0.000000 0.000000
6 0.000000 0.000000
7 0.000000 0.000000
8 0.000000 0.000000
9 0.000000 0.000000
Muchas gracias
INVESTIGACIÓN DE OPERACIONES I

Taller de programación de modelos de PL en los


casos de distribución
Tupia de la Cruz, Elmer Dr(c).
Consideraciones para el modelamiento:

Desarrollo de casos prácticos tipo examen final de


Investigación de Operaciones I, para construir modelos
matemáticos en sintaxis compacta del tipo algebraico
[uso de Ʃ y ∀] y lingo [@sum y @for] para modelos
lineales [X>=0] y mixtos [X>=0, continuos o enteros con
@gin y Y=0,1 con @bin]
Fabricación y distribución de cerveza artesanal
Una empresa que se dedica a la fabricación de cerveza artesanal, en botellas de 330 ml., y realiza su planeación
en forma semanal. La cerveza es producida en dos plantas: A y B. El cuadro siguiente muestra la información
para determinar la cantidad de cerveza semanal que pueden producir cada una de las plantas y los costos de
envío desde las plantas hacia los centros de distribución en US$/botella. Toda la cerveza producida se envía a
dos centros de distribución: CD1 y CD2, para ser etiquetada y empacada en cajas de 12 botellas.

Capacidad de producción Costo de producción Costos de envío a centros de distribución (US$/botella)


Planta
semanal (botellas) (US$/botella) CD1 CD2
A 500 3.0 0.1 0.2
B 400 2.5 0.3 0.3
La empresa ha considerado vender una parte de la cerveza en los centros de distribución. Las proyecciones de
ventas en los centros de distribución y los precios de venta se muestran en la siguiente tabla:
Centro de distribución CD1 Centro de distribución CD2
Venta mínima semanal (cajas) 3 5
Venta máxima semanal (cajas) 9 13
Precio de venta (US$/caja) 48.00 45.60
El resto de la cerveza se envía directamente a los puntos de venta: 1, 2 y 3. Los costos de transporte desde el
centro de distribución a los puntos de venta, en US$/caja y las proyecciones de venta se muestran en las
siguientes tablas:

Costos de transporte desde centros de distribución a punto de venta (US$/caja)


Centro de distribución
1 2 3
CD1 3.6 4.8 6.0
CD2 4.8 6 7.2

Punto de venta Venta mínima semanal (cajas) Precio de venta (US$/caja)


1 21 66.00
2 14 63.60
3 21 66.00
Se solicita:
a) Definir los índices y variables de decisión en sintaxis algebraico
b) Presentar la estructura de datos que empleará en el modelo
c) Presentar la información SETS y DATA que empleará en el modelo
d) Presente la función objetivo del modelo en lingo en sintaxis compacta que realmente represente el
problema y permita determinar su solución [uso de funciones @sum]
e) Presente las restricciones del modelo en notación compacta que realmente represente el problema y
permita determinar su solución [uso de funciones @sum y @for entre otros].
f) Presente su mejor y amplio reporte administrativo [con toda la información que se desprende del
problema y del reporte lingo] para toma de decisiones de optimización; no adjunte el reporte del lingo.
Sea explicito en su decisión para que sea considerado.
Representación gráfica del problema
Planta Centro de distribución CD Puntos de venta
(botellas) (cajas) (cajas)

Min 3 1 21
Capacidad (j) 3.6
Max 9
0.1 66.00
500 A 1 4.8
0.2 48.00 4.8
3.0
Oferta (i) 2 14 Demanda (k)
6.0
0.3 45.60
6.0 63.60
B
0.3
400 2
7.2
2.5 Min 5
Max 13 3 21
(i) (j)
66.00
(k)
Etapa (ij)
Etapa (jk)
Indices
i: planta (A B)
j: centro de distribución (1. 2)

j
k: puntos de venta (1. 3)
Variables de decisión
Xij= Cantidad (en botelas) a enviar de la planta i al centro de distribución j
Yj= Cantidad (en cajas) a vender en el centro de distribución j
Wjk= Cantidad (en cajas) a enviar del centro de distribución j a los puntos de venta k
Estructura de datos
capacidad i= 500 400
costoproduc ion i = 3 2.5
PV1 j = 48.0 45.6
VMin1 j= 3 5
VMax j= 9 13
PV2 k = 66 63.6 66
VMin2 k= 21 14 21
CEnvio1 ij= 0.1 0.2 03 0.3
CEnvio2 jk = 3.6 4.8 6 4.8 6 7.2

Capacidad de producción Costo de producción Costos de envío a centros de distribución (US$/botella)


Planta
semanal (botellas) (US$/botella) CD1 CD2
A 500 3 0.1 0.2
i
B 400 2.5 0.3 0.3
capacidad i costoproduccion i CEnvio1 ij
j

Centro de distribución CD1 Centro de distribución CD2


Venta mínima semanal (cajas) 3 5 VMin1 j
Venta máxima semanal (cajas) 9 13 VMax j
Precio de venta (US$/caja) 48.0 45.6 PV1 j
k

Costos de transporte desde centros de distribución a punto de venta (US$/caja) Indices


Centro de distribución
1 2 3 i: planta (A B)
CD1 3.6 4.8 6 j: centro de distribución (1..2)
j
CD2 4.8 6 7.2 k: puntos de venta (1..3)
CEnvio2 jk Variables de decisión
Punto de venta Venta mínima semanal (cajas) Precio de venta (US$/caja) Xij= Cantidad (en botellas) a enviar de la planta i al centro de distribución j
1 21 66 Yj= Cantidad (en cajas) a vender en el centro de distribución j
k 2 14 63.6 Wjk= Cantidad (en cajas) a enviar del centro de distribución j a los puntos de venta k
3 21 66 Estructura de datos
VMin2 k PV2 k capacidad i= 500 400
costoproduccion i = 3 2.5
PV1 j = 48.0 45.6
VMin1 j= 3 5
Simplificación para compactar VMax j= 9 13
PV2 k = 66 63.6 66
VMin2 k= 21 14 21
CEnvio1 ij= 0.1 0.2 03 0.3
CEnvio2 jk = 3.6 4.8 6 4.8 6 7.2
Modelamiento en sintaxis compacta algebraica
Max Z
2 2 3 2 2 2 3

= ෍ PV1j ∗ Yj + ෍ ෍ PV2k ∗ Wjk − ෍ ෍ (costoproduccioni + CEnvio1ij) ∗ Xij − ෍ ෍ CEnvio2jk ∗ Wjk


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

෍ Xij ≤ capacidadi ; i
j=1
Yj ≥ VMin1j ; j
Yj ≤ VMaxj ;
j
3

෍ Wjk ≥ VMin2k ; k
j=1
2 3
Xij
෍ = 𝑌𝑗 + ෍ Wjk ; j
12
i=1 k=1

Xij , Yj, Wjk ≥ 0 ; ∀ i, ∀j, ∀k


Índices, Variables y vectores y su relación con SETS y DATA
Indices Sets:
i: planta (A B) planta/A B/: capacidad, costoproduccion;
j: centro de distribución (1..2) centro/1 2/: Y, PV1, VMin1, VMax;
k: puntos de venta (1..3) punto/1..3/: PV2, VMin2;
Variables de decisión PXC(planta,centro): X, CEnvio1;
𝐗 𝐢𝐣 = Cantidad en botellas a enviar de la planta i al centro de distribución j CXP(centro,punto): W, CEnvio2;
𝐘𝐣 = Cantidad en cajas a vender en el centro de distribución j Endsets
𝐖𝐣𝐤 = Cantidad en cajas a enviar del centro de distribución j a los puntos de venta k
Estructura de datos: Data:
capacidadi = 500 400 capacidad = 500 400;
costoproduccioni = 3 2.5 costoproduccion = 3 2.5;
PV1j = 48.0 45.6 PV1 = 48 45.6;
VMin1j = 3 5 VMin1 = 3 5;
VMax j = 9 13 VMax = 9 13;
PV2k = 66 63.6 66 PV2 = 66 63.6 66;
VMin2k = 21 14 21 VMin2 = 21 14 21;
CEnvio1ij = 0.1 0.2 03 0.3 CEnvio1 = 0.1 0.2 0.3 0.3;
CEnvio2jk = 3.6 4.8 6 4.8 6 7.2 CEnvio2 = 3.6 4.8 6 4.8 6 7.2;
Enddata
Determinación de la función objetivo en sintaxis de lingo compacto

Max Z = Max =
2

෍ PV1j ∗ Yj + @Sum(centro(j): PV1(j)*Y(j)) +


j=1
2 3

෍ ෍ PV2k ∗ Wjk − @Sum(CXP(j,k): PV2(k)*W(j,k)) -


j=1 k=1
2 2

෍ ෍ (costoproduccioni + CEnvio1ij) ∗ Xij − @Sum(PXC(i,j): (costoproduccion(i) + CEnvio1(i,j))*X(i,j)) –


i=1 j=1
2 3

෍ ෍ CEnvio2jk ∗ Wjk @Sum(CXP(j,k): CEnvio2(j,k)*W(j,k));


j=1 k=1
Determinación de restricciones en sintaxis de lingo compacto

෍ Xij ≤ capacidadi ; i @For(planta(i): @Sum(centro(j): X(i,j)) <= capacidad(i));


j=1
Yj ≥ VMin1j ; j @For(centro(j): Y(j) >= VMin1(j));
Yj ≤ VMaxj ;
j @For(centro(j): Y(j) <= VMax(j));
3

෍ Wjk ≥ VMin2k ; k @For(punto(k): @Sum(centro(j): W(j,k)) >= VMin2(k));


j=1
2 3
Xij
෍ = 𝑌𝑗 + ෍ Wjk ; j @For(centro(j): @Sum(planta(i): X(i,j)/12) = Y(j) + @Sum(punto(k): W(j,k)));
12
i=1 k=1
Modelo Lineal

Sets: Max = @Sum(centro(j): PV1(j)*Y(j)) + @Sum(CXP(j,k): PV2(k)*W(j,k)) -


planta/A B/: capacidad, costoproduccion; @Sum(PXC(i,j): (costoproduccion(i) + CEnvio1(i,j))*X(i,j)) –
centro/1 2/: Y, PV1, VMin1, VMax; @Sum(CXP(j,k): CEnvio2(j,k)*W(j,k));
punto/1..3/: PV2, VMin2;
PXC(planta,centro): X, CEnvio1; @For(planta(i): @Sum(centro(j): X(i,j)) <= capacidad(i));
CXP(centro,punto): W, CEnvio2; @For(centro(j): Y(j) >= VMin1(j));
End sets @For(centro(j): Y(j) <= VMax(j));
Data: @For(punto(k): @Sum(centro(j): W(j,k)) >= VMin2(k));
capacidad = 500 400; @For(centro(j): @Sum(planta(i): X(i,j)/12) = Y(j) + @Sum(punto(k): W(j,k)));
costoproduccion = 3 2.5; End
PV1 = 48 45.6;
VMin1 = 3 5;
VMax = 9 13;
PV2 = 66 63.6 66;
VMin2 = 21 14 21;
CEnvio1 = 0.1 0.2 0.3 0.3;
CEnvio2 = 3.6 4.8 6 4.8 6 7.2;
End data
Reporte lingo
Variable Value Reduced Cost Variable Value Reduced Cost
CAPACIDAD( A) 500.0000 0.000000 W( 1, 1) 32.00000 0.000000
CAPACIDAD( B) 400.0000 0.000000 W( 1, 2) 14.00000 0.000000
COSTOPRODUCCION( A) 3.000000 0.000000 W( 1, 3) 21.00000 0.000000
COSTOPRODUCCION( B) 2.500000 0.000000 W( 2, 1) 0.000000 1.200000
Y( 1) 3.000000 0.000000 W( 2, 2) 0.000000 1.200000
Y( 2) 5.000000 0.000000 W( 2, 3) 0.000000 1.200000
PV1( 1) 48.00000 0.000000 CENVIO2( 1, 1) 3.600000 0.000000
PV1( 2) 45.60000 0.000000 CENVIO2( 1, 2) 4.800000 0.000000
VMIN1( 1) 3.000000 0.000000 CENVIO2( 1, 3) 6.000000 0.000000
VMIN1( 2) 5.000000 0.000000 CENVIO2( 2, 1) 4.800000 0.000000
VMAX( 1) 9.000000 0.000000 CENVIO2( 2, 2) 6.000000 0.000000
VMAX( 2) 13.00000 0.000000 CENVIO2( 2, 3) 7.200000 0.000000
PV2( 1) 66.00000 0.000000
PV2( 2) 63.60000 0.000000 Row Slack or Surplus Dual Price
PV2( 3) 66.00000 0.000000 1 1782.000 1.000000
VMIN2( 1) 21.00000 0.000000 2 0.000000 2.100000
VMIN2( 2) 14.00000 0.000000 3 0.000000 2.400000
VMIN2( 3) 21.00000 0.000000 4 0.000000 -14.40000
X( A, 1) 500.0000 0.000000 5 0.000000 -16.80000
X( A, 2) 0.000000 0.1000000 6 6.000000 0.000000
X( B, 1) 340.0000 0.000000 7 8.000000 0.000000
X( B, 2) 60.00000 0.000000 8 11.00000 0.000000
CENVIO1( A, 1) 0.1000000 0.000000 9 0.000000 -3.600000
CENVIO1( A, 2) 0.2000000 0.000000 10 0.000000 -2.400000
CENVIO1( B, 1) 0.3000000 0.000000 11 0.000000 -62.40000
CENVIO1( B, 2) 0.3000000 0.000000 12 0.000000 -62.40000
Reporte administrativo
La utilidad será de $1782
Numero de botellas de cerveza a enviar de cada planta a cada centro de distribución:
Centro de distribución
Planta
CD1 CD2
A 500 0
B 340 60
Numero de cajas de cerveza a vender en cada centro de distribución:
Centro de distribución
CD1 CD2
3 5
Numero de cajas de cerveza a enviar desde cada centro de distribución a los puntos de venta:
Punto de venta
Centro de distribución
1 2 3
CD1 32 14 21
CD2 0 0 0
Distribución de máquinas en el mercado internacional

Medical Tecnologies, Inc (MTI), es una empresa fabricante y distribuidora internacional de equipos de rayos X
de alta resolución que se utiliza en hospitales. Las plantas que tiene en Paris, Texas, pueden producir hasta 100
máquinas por año; la que se encuentra en Davenport, Iowa, produce hasta 200 máquinas y la planta de
Sprienfield. Oregon, puede producir hasta 150 máquinas. Para el año siguiente sus clientes en Japón han
pedido 120 máquinas, los de Corea del Sur ordenaron 80 máquinas, los de Nueva Zelanda 70 y los de Australia
110 máquinas.
El equipo producido en Texas y en Iowa puede ser enviado a los almacenes regionales situados en Hungría y/o
en Hawai. Los almacenes regionales, a su vez, pueden enviar a cualquiera de los almacenes de campo situados
en Fiji en las Filipinas. Ninguno de los almacenes regionales almacena máquinas en inventario, por
consiguiente deben enviar todas las máquinas que reciben. Los clientes de Corea del Sur y de Nueva Zelanda
pueden recibir máquinas de cualquiera de los almacenes de campo. Sin embargo, debido a los tratados de
comercio internacionales, los clientes del Japón deben obtener sus máquinas exclusivamente de las Filipinas y
los de Australia recibir las suyas solamente de las de Fiji.
Los costos de envío por máquina desde las plantas a los almacenes regionales, a los de campo y finalmente a
los de los clientes se dan en las siguientes tablas:
Costos de embarque ($/máquina) Costo de
Planta Almacenes regionales producción
Hungría Hawai (M$/máquina)
Texas 200 400 3
Iowa 300 400 2.5
Oregon --- 500 4

Costos de embarque ($/máquina)


Almacén regional Almacenes de campo [alquilado]
Filipinas Fiji
Hungría 800 600
Hawai 700 400
Costo de almacenamiento ($/máquina) 50 70

Costos de embarque ($/máquina)


Almacenes de campo Clientes
Japón Corea del sur Nueva Zelanda Australia
Filipinas 700 600 800 ---
Fiji --- 700 500 600
Precio de venta (M$/máquina) 7 6.5 7.5 8
Como Gerente de distribución se le ha pedido a usted que determine el plan de embarque con la mejor utilidad, para lo
cual debe considerar la información que a su vez se le indica en las tablas en la cual se incluye el precio a vender a cada
clientes y el derecho de uso de los almacenes de campo.
Se solicita:
a) Definir los índices y variables de decisión en sintaxis algebraico
b) Presentar la estructura de datos que empleará en el modelo
c) Presentar la información SETS y DATA que empleará en el modelo
d) Presente la función objetivo del modelo en lingo en sintaxis compacta que realmente represente el
problema y permita determinar su solución [uso de funciones @sum]
e) Presente las restricciones del modelo en notación compacta que realmente represente el problema y
permita determinar su solución [uso de funciones @sum y @for entre otros].
f) Presente su mejor y amplio reporte administrativo [con toda la información que se desprende del
problema y del reporte lingo] para toma de decisiones de optimización; no adjunte el reporte del lingo.
Sea explicito en su decisión para que sea considerado.
Representación gráfica del problema
Almacén Almacén de Clientes
Planta
regional campo (máquina)
(máquina)
(máquina) (máquina)
1 120
100 1 200 700

3mil 7mil
400 800 600
1 1
2 80
600 800
Oferta 3.0 50 Demanda
200 2 6.5mil
(i) 300 700 700 (k)
2.5mil 500
400 3 70
2 2
600 7.5mil
3 2.5 70
250 500 4 110
(j) (k)
4mil
8mil
(i) Etapa (jk) (l)
Etapa (ij) Etapa (kl)
j

Costosde mbarque ($/máquina) Capacidad e Costo de


Planta Almacenesregionales produc ión produc ión
Hungría Hawai (máquinas) (M$/máquina)
Texas 20 40 10 3
i Iowa 30 40 20 2.5
Oregon - 50 150 4
CEnvio1 ij capacidad i costoproduc ioni
k

Costosde mbarque ($/máquina)


Almacénregional Almacenesde campo [alquilado]
Filpinas Fij

Simplificación para compactar


Hungría 80 60
j CEnvio2 jk
Hawai 70 40
Costo de almacenamiento ($/máquina) 50 70 costoalmacenk
l

Costosde mbarque ($/máquina)


Almacenesde campo Clientes
Japón Corea delsur Nueva Zelanda Australia
Filpinas 70 60 80 -
k CEnvio3 kl
Fij - 70 50 60
Demanda (máquinas) 120 80 70 1 0 demanda l
Precio de venta (M$/máquina) 7 6.5 7.5 8 PVenta l

j Indices
i: planta (texas iowa oregon)
Costos de embarque ($/máquina) Capacidad de Costo de j: almacenregional(hungria hawai)
Planta Almacenes regionales producción producción k: almacendecampo (filipinas fiji)
Hungría Hawai (máquinas) (M$/máquina) l: clientes (japon coreadelsur nuevazelanda australia)
Texas 200 400 100 3 Variables de decisión
i Iowa 300 400 200 2.5 Xij= Cantidad (de máquinas) a enviar de la planta i al
Oregon --- 500 150 4 almacén regional j
CEnvio1 ij capacidad i costoproduccion i Yjk= Cantidad (de máquinas) a enviar de almacén regional j
k al almacén de campo k
Wkl= Cantidad (de máquinas) a enviar de almacén de
campo k al cliente l
Costos de embarque ($/máquina)
Almacén regional Almacenes de campo [alquilado] Estructura de datos
capacidad i= 100 200 150
Filipinas Fiji
costoproduccion i = 3000 2500 4000
Hungría 800 600
j CEnvio2 jk costoalmacen k= 50 70
Hawai 700 400
demanad l = 120 80 70 110
Costo de almacenamiento ($/máquina) 50 70 costoalmacen k
l Pventa l = 7000 6500 7500 8000
CEnvio1 ij = 200 400 300 400 10000 500
CEnvio2 jk= 800 600 700 400
Costos de embarque ($/máquina)
Almacenes de campo Clientes CEnvio3 kl = 700 600 800 10000 10000 700 500 600
Japón Corea del sur Nueva Zelanda Australia
Filipinas 700 600 800 ---
k CEnvio3 kl
Fiji --- 700 500 600
Demanda (máquinas) 120 80 70 110 demanda l
Precio de venta (M$/máquina) 7 6.5 7.5 8 PVenta l
Modelamiento en sintaxis compacta algebraica
Max Z
2 4 3 2

= ෍ ෍ PVl ∗ Wkl − ෍ ෍ (costoproduccioni + CEnvio1ij) ∗ Xij


k=1 l=1 i=1 j=1
2 2 2 4

− ෍ ෍(costoalmacenk ∗ CEnvio2jk ) ∗ Yjk − ෍ ෍ CEnvio3kl ∗ Wkl


j=1 k=1 k=1 l=1
Sujeto a:
3

෍ Xij ≤ capacidadi ; i
j=1
2

෍ Wkl ≥ demandal ; l
k=1
3 2

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

2 4

෍ Yjk = ෍ Wkl ; k
j=1 l=1

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


Índices, Variables y vectores y su relación con SETS y DATA
Sets:
Indices planta/1..3/: capacidad, costoproduccion;
i: planta (texas iowa oregon) regional/1..2/:;
j: almacenregional(hungria hawai) campo/1..2/: costoalmacen;
k: almacendecampo (filipinas fiji) cliente/1..4/: demanda, PVenta;
l: clientes (japon coreadelsur nuevazelanda australia) PXR(planta,regional): X, CEnvio1;
Variables de decisión RXC(regional,campo): Y, CEnvio2;
Xij= Cantidad (de máquinas) a enviar de la planta i al almacén regional j CXC(campo,cliente): W, CEnvio3;
Yjk= Cantidad (de máquinas) a enviar de almacén regional j al almacén de campo k Endsets
Wkl= Cantidad (de máquinas) a enviar de almacén de campo k al cliente l
Data:
Estructura de datos
capacidad = 100 200 150;
capacidad i= 100 200 150
costoproduccion i = 3000 2500 4000 costoproduccion = 3000 2500 4000;
costoalmacen k= 50 70 costoalmacen = 50 70;
demanad l = 120 80 70 110 demanad = 120 80 70 110;
PVenta l = 7000 6500 7500 8000 Pventa = 7000 6500 7500 8000;
CEnvio1 ij = 200 400 300 400 10000 500 CEnvio1 = 200 400 300 400 10000 500;
CEnvio2 jk= 800 600 700 400 CEnvio2 = 800 600 700 400;
CEnvio3 kl = 700 600 800 10000 10000 700 500 600 CEnvio3 = 700 600 800 10000 10000 700 500 600;
Enddata
Determinación de la función objetivo en sintaxis de lingo compacto

Max = Max =

2 4 @Sum(CXC(k,l): PVenta(l)*W(k,l))
෍ ෍ PVental ∗ Wkl
k=1 l=1

3 2

− ෍ ෍ (costoproduccion𝑖 + CEnvio1ij) ∗ Xij - @Sum(PXR(i,j): (costoproduccion(i) + CEnvio1(i,j))*X(i,j))


i=1 j=1

2 2

− ෍ ෍ (costoalmacenk ∗ CEnvio2jk ) ∗ Yjk - @Sum(RXC(j,k): (costoalmacen(k) + CEnvio2(j,k))*Y(j,k))


j=1 k=1

2 4

− ෍ ෍ CEnvio3kl ∗ Wkl - @Sum(CXC(k,l): CEnvio3(k,l)*W(k,l));


k=1 l=1
Determinación de restricciones en sintaxis de lingo compacto

෍ Xij ≤ capacidadi ; i @for(planta(i): @sum(regional(j): X(i,j)) <= capacidad(i));


j=1
2

෍ Wkl ≥ demandal ; l @for(cliente(l): @sum(campo(k): W(k,l)) <= demanda(l));


k=1
3 2

෍ Xij = ෍ Yjk ; j @for(regional(j): @sum(planta(i): X(i,j)) = @sum(campo(k): Y(j,k)));


i=1 k=1

2 4
@For(campo(k): @sum(regional(j): Y(j,k)) = @sum(cliente(l): W(k,l)));
෍ Yjk = ෍ Wkl ; k
j=1 l=1
Modelo Lineal
Sets: Max = @Sum(CXC(k,l): PVenta(l)*W(k,l)) - @Sum(PXR(i,j):
planta/1..3/: capacidad, costoproduccion; (costoproduccion(i) + CEnvio1(i,j))*X(i,j)) - @Sum(RXC(j,k):
regional/1..2/:; (costoalmacen(k) + CEnvio2(j,k))*Y(j,k)) - @Sum(CXC(k,l):
campo/1..2/: costoalmacen; CEnvio3(k,l)*W(k,l));
cliente/1..4/: demanda, PVenta; @for(planta(i): @sum(regional(j): X(i,j)) <= capacidad(i));
PXR(planta,regional): X, CEnvio1; @for(cliente(l): @sum(campo(k): W(k,l)) >= demanda(l));
RXC(regional,campo): Y, CEnvio2; @for(regional(j): @sum(planta(i): X(i,j)) = @sum(campo(k): Y(j,k)));
CXC(campo,cliente): W, CEnvio3; @For(campo(k): @sum(regional(j): Y(j,k)) = @sum(cliente(l): W(k,l)));
Endsets End
Data:
capacidad = 100 200 150;
costoproduccion = 3000 2500 4000;
costoalmacen = 50 70;
demanda = 120 80 70 110;
Pventa = 7000 6500 7500 8000;
CEnvio1 = 200 400 300 400 10000 500;
CEnvio2 = 800 600 700 400;
CEnvio3 = 700 600 800 10000 10000 700
500 600;
Enddata
Variable Value Reduced Cost Variable Value Reduced Cost
CAPACIDAD( 1) 100.0000 0.000000 Y( 1, 1) 100.0000 0.000000
CAPACIDAD( 2) 200.0000 0.000000 Y( 1, 2) 0.000000 100.0000
CAPACIDAD( 3) 150.0000 0.000000 Y( 2, 1) 20.00000 0.000000
COSTOPRODUCCION( 1) 3000.000 0.000000 Y( 2, 2) 330.0000 0.000000
COSTOPRODUCCION( 2) 2500.000 0.000000 CENVIO2( 1, 1) 800.0000 0.000000
COSTOPRODUCCION( 3) 4000.000 0.000000 CENVIO2( 1, 2) 600.0000 0.000000
COSTOALMACEN( 1) 50.00000 0.000000 CENVIO2( 2, 1) 700.0000 0.000000
COSTOALMACEN( 2) 70.00000 0.000000 CENVIO2( 2, 2) 400.0000 0.000000
DEMANDA( 1) 120.0000 0.000000 W( 1, 1) 120.0000 0.000000
DEMANDA( 2) 80.00000 0.000000 W( 1, 2) 0.000000 180.0000
DEMANDA( 3) 70.00000 0.000000 W( 1, 3) 0.000000 580.0000
DEMANDA( 4) 110.0000 0.000000 W( 1, 4) 0.000000 9680.000
PVENTA( 1) 7000.000 0.000000 W( 2, 1) 0.000000 9020.000
PVENTA( 2) 6500.000 0.000000 W( 2, 2) 80.00000 0.000000
PVENTA( 3) 7500.000 0.000000 W( 2, 3) 70.00000 0.000000
PVENTA( 4) 8000.000 0.000000 W( 2, 4) 180.0000 0.000000
X( 1, 1) 100.0000 0.000000 CENVIO3( 1, 1) 700.0000 0.000000
X( 1, 2) 0.000000 100.0000 CENVIO3( 1, 2) 600.0000 0.000000
X( 2, 1) 0.000000 0.000000 CENVIO3( 1, 3) 800.0000 0.000000
X( 2, 2) 200.0000 0.000000 CENVIO3( 1, 4) 10000.00 0.000000
X( 3, 1) 0.000000 9600.000 CENVIO3( 2, 1) 10000.00 0.000000
X( 3, 2) 150.0000 0.000000 CENVIO3( 2, 2) 700.0000 0.000000
CENVIO1( 1, 1) 200.0000 0.000000 CENVIO3( 2, 3) 500.0000 0.000000
CENVIO1( 1, 2) 400.0000 0.000000 CENVIO3( 2, 4) 600.0000 0.000000
CENVIO1( 2, 1) 300.0000 0.000000
CENVIO1( 2, 2) 400.0000 0.000000
CENVIO1( 3, 1) 10000.00 0.000000
CENVIO1( 3, 2) 500.0000 0.000000
Row Slack or Surplus Dual Price
1 1211900. 1.000000
2 0.000000 3630.000
3 0.000000 4030.000
4 0.000000 2430.000
5 0.000000 -1380.000
6 0.000000 -1600.000
7 0.000000 -400.0000
8 70.00000 0.000000
9 0.000000 -6830.000
10 0.000000 -6930.000
11 0.000000 -7680.000
12 0.000000 -7400.000
Muchas gracias
[email protected]

También podría gustarte