Documentos de Académico
Documentos de Profesional
Documentos de Cultura
PROGRAMACIÓN ENTERA&BINARIA
Modelos
• Modelos de costo fijo
• Modelos de lote mínimo
• Restricciones excluyentes (K de N)
• Funciones con N valores posibles
• Variables que toman un conjunto de
valores
• Ejercicios diversos [revisar
3
y completar]
MODELO DE COSTO FIJO
Cuando la actividad económica incurre en dos tipos de costos: un costo fijo necesario para
iniciar la actividad y un costo variable proporcional al nivel de la actividad; y el costo fijo
sólo existe si la actividad se inicia (si se produce, si se contrata, si se alquila, etc). Dado
que F es el costo fijo, c es el costo unitario variable y X es el nivel de producción, la
función de costo se expresa como:
F + cX , si X > 0
C(X) =
0, en caso contrario
La función objetivo estaría representada por los costos totales (fijo + variable) y el
problema se puede expresar, para m variables:
m
Min Z = Fi ∗ Yi + cj ∗ Xi
i=1
Y la restricción que relaciona Xcon Y: (donde Mi es una cota superior para Xi)
Xi ≤ M ∗ Yi i
SELECCIÓN DE OPERADORES [COSTO FIJO]
Tres compañías telefónicas (operadores) me ofrecen suscribirme a su servicio de larga
distancia. Movistar cobra una cuota fija de $16 por mes más $0.25 por minuto. Claro
cobra $25 por mes, pero reduce el costo por minuto a $0.21. Por otro lado en Entel, la
cuota fija mensual es de $18 y el costo por minuto es de $0.22.
Usualmente utilizo un promedio de 200 minutos de llamada de larga distancia al mes.
Suponiendo que no tenga que pagar la cuota fija mensual a menos que realice llamadas
y que pueda repartirlas entre los tres operadores como me plazca.
Formule el programa matemático que represente el problema y presente el reporte
administrativo, es decir: ¿Cómo debería utilizar las tres compañías para minimizar mi
recibo telefónico mensual?
Costo Fijo Costo Variable
($) ($/minuto)
Movistar 16 0.25
Operadores
Claro 25 0.21 200 minutos → (tiempos)
de telefonía
Entel 18 0.22
Yi Xi
Xi = 200 @SUM(OPERADOR:X)=200;
i=1
∀i: Xi ≥ 0 y Yi = 𝟏 𝐨 𝟎 @FOR(OPERADOR:@BIN(Y));
SETS:
Variable Value Reduced Cost
OPERADOR/1..3/:X,Y,CUOTAFIJA,COSTOMINUTO; X( 1) 0.000000 0.4000000E-01
ENDSETS X( 2)
X( 3)
200.0000
0.000000
0.000000
0.1000000E-01
DATA: Y( 1) 0.000000 16.00000
Y( 2) 1.000000 23.00000
CUOTAFIJA= 16 23 24; Y( 3) 0.000000 24.00000
CUOTAFIJA( 1) 16.00000 0.000000
COSTOMINUTO= 0.25 0.21 0.22; CUOTAFIJA( 2) 23.00000 0.000000
CUOTAFIJA( 3) 24.00000 0.000000
ENDDATA COSTOMINUTO( 1) 0.2500000 0.000000
MIN=@SUM(OPERADOR:CUOTAFIJA*Y+COSTOMINUTO*X); COSTOMINUTO( 2)
COSTOMINUTO( 3)
0.2100000
0.2200000
0.000000
0.000000
@FOR(OPERADOR:X<=200*Y);
Row Slack or Surplus Dual Price
@SUM(OPERADOR:X)=200; 1 65.00000 -1.000000
2 0.000000 0.000000
@FOR(OPERADOR:@BIN(Y)); 3 0.000000 0.000000
4 0.000000 0.000000
END 5 0.000000 -0.2100000
MODEL:
[_1] MIN= 0.25 * X_1 + 16 * Y_1 + 0.21 * X_2 + 23 * Y_2 + 0.22 * X_3 + 24 * Y_3;
[_2] X_1 - 200 * Y_1 <= 0;
[_3] X_2 - 200 * Y_2 <= 0;
[_4] X_3 - 200 * Y_3 <= 0;
[_5] X_1 + X_2 + X_3 = 200;
@BIN( Y_1); @BIN( Y_2); @BIN( Y_3);
Reporte administrativo
END
170
1 100
150
200 A 90
CostoAlquiler = $7750 120
160 165
2 90
CAPACIDAD DEMANDA
(camiones) 250 B (camiones)|
CostoAlquiler = $4000 100
CONTRATAR 150 240
3 110
SOLO UN
MÁXIMO DE DOS 350 C 140 140
ALMACENES CostoAlquiler = $5500
60
4 60
costo de envío
($/camión)
Datos, información y modelamiento
Sets:
i: almacén (1..3) i= 1 (A) , i= 2 (B); i=3 (C) ALMACEN/A B C/:CAPACIDAD, ALQUILER, Y;
j: distrito (1..4) j= 1 (distrito 1) , j= 2 (distrito 2), DISTRITO/1..4/:DEMANDA;
CAMIONES(ALMACEN,DISTRITO): COSTO, X;
j= 3 (distrito 3) , j= 4 (distrito 4)
End Sets
Xi <= M*Yi
Xi >= m*Yi
Si el modelo completo incluye un conjunto de N restricciones posibles, entre las que solo
deben cumplir K de ellos (K<N). La lógica de optimización será elegir la combinación de K
restricciones que permita alcanzar el mejor objetivo. Este caso se considera:
Entonces, se debe plantear una formulación equivalente, para que se deban cumplir K
restricciones:
f1(X1, X2, … Xn) <= d1 + M*Y1
f2(X1, X2, … Xn) <= d2 + M*Y2
N
…
fN(X1, X2, … Xn) <= dN + M*YN Yi = N − K
i=1
PRODUCCIÓN ALTERNATIVA
Una empresa ha diseñado tres nuevos productos y dispone de dos plantas que los pueden producir. Sin
embargo, para evitar una diversificación excesiva de la línea de productos de la empresa, la administración
ha dispuesto en primer lugar que deben producirse como máximo dos de estos tres nuevos productos
posibles. Y, en segundo lugar, que solo una de las plantas debe asignarse para la fabricación de los nuevos
productos.
Se considera que el costo unitario de fabricación de cada producto sería el mismo en las dos plantas, pero
por diferencia de instalaciones, el número de horas de producción por unidad de cada producto puede diferir
entre ellas. Estos datos se dan en la tabla adjunta junto con la información del departamento de
mercadotecnia del número de unidades de cada producto que se pueden vender a la semana si se producen.
El objetivo es seleccionar los productos, la planta y las tasas de producción de los nuevos productos de
manera que se maximice la ganancia total. Hay que considerar que las tasas de producción no pueden
adoptar valores decimales
Tiempo de producción utilizado por cada unidad producida (horas) Horas disponibles
Producto 1 Producto 2 Producto 3 por semana
Planta 1 3 5 2 30
Planta 2 4 6 2 40
Ganancia unitaria 5 7 3 (miles de $)
Ventas potenciales 7 5 9 (unid/sem)
Datos, información y modelamiento
Índice Sets:
i: producto (1..3) PRODUCTO/1..3/:X, Y, GANANCIA, VENTA;
j: planta (1..2) PLANTA /1..2/: W, CAPACIDAD;
PXP (PRODUCTO,PLANTA):TIEMPO;
Variables de decisión End Sets
X(i) = Número de unidades de productos i a fabricar
Y(i) = 1 si se elaborar el producto i o 0 si no se elabora
W(j) = 1 NO se considera la planta j o 0 SI se considera
Yi ≤ 2 @Sum(PRODUCTO: Y)<= 2;
i=1
3
Data:
GANANCIA = 5 7 3;
VENTA = 7 5 9;
CAPACIDAD = 30 40;
TIEMPO = 3 4 5 6 2 2;
End Data
Índice Sets:
i: aleación (1..3) ALEACION/1..3/:X,COSTO;
j: agente contaminante (1..3) AGENTE/1..3/: Y, TOLERANCIA;
AXA (ALEACION,AGENTE):CONTAMINANTE;
Variables de decisión End Sets
X(i) = Número tonelada de aleación i a producir
Y(j) = 1 aceptar el contaminante i o 0 no aceptar
Datos estructurados:
Costo(i) = [190 200 185] Data:
Tolerancia(j) = [0.023 0.017 0.031] COSTO = 190 200 185;
Contaminante(i,j) = [0.022 0018 0.032 0.025 TOLERANCIA = 0.023 0.017 0.031;
0.015 0.041 0.024 0.019 0.029] CONTAMINANTE = 0.022 0018 0.032 0.025
0.015 0.041 0.024 0.019 0.029;
End Data
Datos, información y modelamiento
3
∀i: Xi ≥ 0
∀j: Yj = 0 o 1 @For(AGENTE:@Bin(Y));
Data:
COSTO = 190 200 185;
TOLERANCIA = 0.023 0.017 0.031;
CONTAMINANTE = 0.022 0.018 0.032 0.025 0.015 0.041 0.024 0.019 0.029;
End Data
Como Xj solo puede tomar un valor en el conjunto, entonces se tiene la siguiente restricción:
n
Yij = 1 j
i=1
Además, Xj vendrá dado por:
n
Xj = ai ∗ Yij
i=1
FABRICACIÓN DE MUEBLES
Un microempresario ofrece al público 3 modelos novedosos de muebles, para elaborar cada uno de éstos
necesita de 3 tipos de material. Él se encuentra indeciso puesto que le visitaron representantes de 3
distribuidoras de insumos que ofrecen abastecerle de los materiales que necesita bajo los mismos costos,
aunque en cantidades limitadas puesto que tienen también otros clientes. De estos 3 proveedores debe
trabajar solamente con uno.
El microempresario quiere fabricar la misma cantidad de muebles para sus 3 modelos. El beneficio
obtenido por cada mueble de los modelos 1, 2 y 3 es de $750, $900 y $800 respectivamente. En la tabla
adjunta se muestra la cantidad de cada material que necesita por unidad de cada modelo de mueble, así
como la cantidad de cada material de la que cada proveedor dispone mensualmente.
Material necesario (unidades) Disponibilidad de materiales (unidades)
Modelo 1 Modelo 2 Modelo 3 Proveedor A Proveedor B Proveedor C
Material 1 25 10 33 1200 1500 1750
Material 2 17 15 18 950 1200 800
Material 3 8 7 12 600 820 750
Según lo expuesto, sugiera un plan de producción una vez decidido con cuál de los proveedores es con
quien trabajará.
Datos, información y modelamiento
Índice SETS:
i: muebles (1..3) [Modelo 1 Modelo 2 Modelo 3] MUEBLES/1..3/:GANANCIA,X;
j: proveedores (1..3) [A B C] PROVEEDORES/1..3/:Y;
k: material (1..3) [MP1 MP2 MP3] MATERIAL/A B C/:;
MXM(MUEBLES,MATERIAL):MATERIAL_NECE;
Variables de decisión PXM(PROVEEDORES,MATERIAL):MATERIAL_DISPO;
X(i) = Cantidad de productos i a producir ENDSETS
Y(j) = 1 seleccionar proveedor j o 0 no seleccionar
MIN=@SUM(PAREJA(I,J): COSTO(I,J)*X(I,J));
@FOR(FABRICA(I): @SUM(PAREJA(I,J): COSTO(I,J)*X(I,J))<=GASTO(I));
@SUM(PAREJA(I,J): X(I,J))= 5;
Y(4)-Y(5)<=0;
Y(1)-Y(2)<=Y(3);
@FOR(PAREJA: @BIN(X));
@FOR(CONSTRUCION: @BIN(Y));
END
DISTRIBUCIÓN DE BEBIDAS
Un empresario se dedica a la venta de cerveza y tiene a su disposición 3 depósitos
para alquilar y poder almacenar su producto. Los almacenes están situados en
Trujillo, Arequipa y Chiclayo. El producto se vende en La Libertad, Arequipa y
Lambayeque.
Costo por camión Capacidad mensual
Almacenes
La Libertad Arequipa Lambayeque (camiones)
Trujillo 35 180 72 180
Arequipa 195 30 200 240
Chiclayo 65 240 45 250
Demanda mensual (camiones) 110 90 70
Se sabe que utilizar un almacén implica pagar un costo de alquiler mensual por ese
derecho. Si es almacén de Trujillo cuesta 1000 soles, el de Arequipa 800 y el de
Chiclayo 650. Formule un modelo matemático de programación lineal entera que
permita determinar cuantos camiones a los puntos de venta
SETS:
ALMACEN/1..3/:CAPACIDADMENSUAL,CF,Y;
TIENDA/1..3/:DEMANDA;
PAREJA1(ALMACEN,TIENDA):COSTO,X;
ENDSETS
DATA:
CAPACIDADMENSUAL=180 240 250;
CF=1000,800,650;
DEMANDA= 110 90 70;
COSTO= 35 180 72 195 30 200 65 240 45;
ENDDATA
!FUNCION OBJETIVA;
MIN=@SUM(PAREJA1(i,j):COSTO(i,j)*X(i,j))+@SUM(ALMACEN(i):CF(i)*Y(i));
!RESRICCIONES;
@FOR(ALMACEN(i):@SUM(TIENDA(j):X(i,j))<=CAPACIDADMENSUAL(i)*Y(i));
@FOR(TIENDA(j):@SUM(ALMACEN(i):X(i,j))>=DEMANDA(j));
@FOR(ALMACEN(i):@BIN(Y(i)));
END
APERTURA DE NUEVAS BODEGAS
Una compañía planea abrir unas bodegas en cuatro ciudades: Nueva York, Los Ángeles, Chicago, Atlanta.
Desde cada bodega se puede embarcar hasta 100 unidades. El costo fijo por semana para mantener en
operación cada bodega es de 400, 500, 300 y 150 dólares respectivamente. La región 1 del país requiere
80 unidades por semana, la región 2 demanda 70 unidades por semana y la región 3 necesita 40 unidades
por semana. Los costos por enviar una unidad desde la planta hasta la región están en la tabla siguiente. Se
desea cumplir con las demandas al costo mínimo, sujeto a la información precedente y al as restricciones
siguientes:
1) Si se abre la bodega de Nueva York, entonces se debe abrir la bodega de Los Ángeles.
2) Es posible abrir a lo más dos bodegas.
3) Se tiene que abrir la bodega de Atlanta o la de Los Ángeles.
Hasta (dólares)
Desde
Región 1 Región 2 Región 3
Nueva York 20 40 50
Los Ángeles 48 15 26
Chicago 26 35 18
Atlanta 24 50 35
SETS:
CIUDAD/C1,C2,C3,C4/:CAPACIDAD;
REGION/1,2,3/:DEMANDA;
RUTA(CIUDAD,REGION):COSTO,X;
CF/1/:COSTO_ELEGIR;
CIUDAD_ELEGIR/Y1,Y2,Y3,Y4/:ASIGNAR;
BINARIA(CF,CIUDAD_ELEGIR):COSTO_FIJO,T;
ENDSETS
DATA:
CAPACIDAD=100,100,100,100;
DEMANDA=80,70,40;
COSTO=20,40,50,48,15,26,26,35,18,24,50,35;
COSTO_FIJO=400,500,300,150;
ENDDATA
!FUNCION OBJETIVO;
Min= @SUM(RUTA(i,j):COSTO(i,j)*X(i,j))+@SUM(BINARIA(i,j):COSTO_FIJO(m,n)*T(m,n));
!RESTRICCION DE DEMANDA; @FOR(REGION(j):@SUM(CIUDAD(i):X(i,j))>=DEMANDA(j));
!RESTRICCION DE CAPACIDAD; @FOR(CIUDAD(i):@SUM(REGION(j):X(i,j))<=CAPACIDAD(i))*ASIGNAR(n));
!RESTRICCION BINARIA; @FOR(BINARIA:@BIN(T));
@FOR(CIUDAD_ELEGIR(n):ASIGNAR(n)+ASIGNAR(n+1)=2);
@FOR(CIUDAD_ELEGIR(n):
ASIGNAR(n)+ASIGNAR(n+1)+ASIGNAR(n+2)+ASIGNAR(n+3)<=2);
@FOR(CIUDAD_ELEGIR(n):ASIGNAR(n+1)+ASIGNAR(n+3)=1);
END
PREPARACIÓN DE COMPUTADORAS PARA EL GOBIERNO
La compañía SOFT se especializa en la preparación de programas de computadora para el gobierno y la industria. Estos
programas se escriben en varios lenguajes de programación. La compañía tiene tres programadores que realizan esta
labor y existen cinco trabajos de programación que deben terminarse lo máximo pronto posible. No todos los
programadores trabajan a la misma velocidad en todos los lenguajes y se les paga en forma diferente con base a su
experiencia. Cada uno de los trabajos debe elaborarlo un solo programador. Los costos de realización de cada trabajado
por programador se muestran en la tabla:
Costos de realización de los trabajos (UM)
Programador
Trabajo1 Trabajo2 Trabajo3 Trabajo 4 Trabajo5
Cesar 100 150 200 100 50
Luis 80 200 100 100 80
Raúl 200 250 250 150 100
Considere la siguiente información del tiempo para cada programador para terminar cada trabajo y su tiempo disponible
Tiempo de realización de los trabajos(horas) Disponibilidad
Programador
Trabajo1 Trabajo2 Trabajo3 Trabajo4 Trabajo5 (horas)
Cesar 10 15 20 10 5 35
Luis 4 10 5 5 4 20
Raúl 20 25 25 15 10 40
Plantee un problema de PE adecuado a esta situación
Muchas gracias