Está en la página 1de 9

Curso: CII-3402– Optimización aplicada.

Profesor: Felipe González.


Semestre: 2-2018.

Solemne 1
110 minutos.
Sin consultas, sin celular.

Ejercicio 1 (35%)
Una empresa que fabrica juguetes debe determinar su política óptima de inventario y producción para
cada mes t en un año (es decir, t  1, 2,...,12 ). La empresa dispone de una única máquina, la cual
es capaz de producir solo una orden i a la vez con I  1, 2,..., N  (una orden son muchos
productos del mismo tipo), el tiempo que demora en producir una orden i en un periodo t es
tpi (horas / orden) . La demanda de órdenes i en un mes t es conocida, siendo esta igual a Dit y
solamente se entregan al final de cada mes.

El costo de producción de una orden i es Ci ($ / orden) . Además la empresa cuenta con una
bodega, por lo que las órdenes producidas un mes t , pueden ser guardadas para los meses
posteriores. El costo de guardar una orden i por un mes en la bodega es CSi ($ / orden) .

Suponga que la producción funciona de manera continua, que se tiene suficiente capacidad para
satisfacer toda la demanda y que todos los parámetros son enteros.

a) Formule un modelo de programación lineal entero mixto a fin de encontrar la planificación de la


producción e inventario a costo mínimo, esto implica conocer el orden de los productos en la máquina,
la cantidad de ordenes guardados en inventario y la cantidad a producir. (3.0 puntos)

b) Si cada mes posee H horas disponibles, existiendo un costo por demanda no satisfecha por orden
i en t de COit ($ / orden) ¿Cómo cambia su modelo? Reescríbalo. (2.0 puntos)

c) ¿Cuál cree que es la restricción más difícil del modelo si se quiere resolver con Branch and Bound?.
Justifique. (1.0 puntos)

Ejercicio 2 (35%)
Una planta procesadora de leche dispone de una flota heterogénea de K camiones para recolectar
leche generada por un conjunto de proveedores del suministro a quienes compra diariamente. La
planta procesadora necesita de una cantidad mínima de leche diaria para fabricar sus productos
lácteos, es decir, solo compra y recolecta lo que necesita diariamente.

Para lo anterior, en la planta deben determinar las secuencias de recolección eficientes para cada
vehículo. Los vehículos inician y terminan sus secuencias de recolección en la planta. Todos los
vehículos son usados y el costo de transporte se determina en función de la distancia recorrida por los
camiones y del volumen cargado en cada visita.
Formule un problema de programación lineal entero que permita determinar la ruta de viaje (secuencia
de arcos) y a que proveedores visitar, con el objetivo de minimizar costos. Para la modelación, asuma
que si la planta decide comprar leche de un cliente, el camión se lleva toda la cantidad ofrecida por el
provedor, es decir, no se contempla la recolección parcial. Además considere que está disponible la
siguiente información:

 Red G( N0 , A) donde N 0 es el conjunto de nodos de la red (incluyendo la planta i  0 y


los proveedores i  1,..., N ), y A el conjunto de arcos, tal que
A  i  N0 , j  N0 : i  j
 C: Costo de transporte por kilometro
 d ij : distancia (en kilómetros) sobre el arco (i, j )  A
 Li : Costo por litro de leche del proveedor i  N
 qi : Cantidad de leche producida por proveedor i
 P : cantidad mínima de leche requerida por la planta

(6.0 puntos)

Ejercicio 3 (30%)
a) Dado el siguiente problema:
max Z  2 x1  x2  3 x3
s.a.
2 x1 3 x2  x3  4
x1 4 x2  3
3 x2 2 x3  2
x1 , x2 , x3  0

Suponga que en el óptimo las variables básicas son x1 , x5 , x3 y las no básicas son x4 , x2 , x6 .
Además:

 0.5 0 0.25  0.5 0.75 0.25


B 1   0.5 1 0.25  ; B 1 N   0.5 3.25 0.25 
 0 0 0.5   0 1.5 0.5 

i. Calcule los valores de las variables básicas en el óptimo. Compruebe que ésta es
efectivamente la solución óptima. Además indique el valor de Z * y si el óptimo encontrado es
global o local, y si es único o no. Justifique. (1.0 puntos)
ii. Cuál debería ser el costo asociado a x2 para que esta variable entre a la base. (0.5
Puntos)
iii. Escriba el problema dual y calcule el valor de las variables duales en el óptimo. (1.0 puntos)
iv. Dado el problema original, suponga ahora que se desea introducir una nueva variable cuyo
costo es de 2 y su columna de recursos traspuesta es (2 0 1) . Indique si la solución óptima
se modifica por este cambio. Justifique. (1.0 puntos)

b) Resuelva el siguiente problema usando Branch and Bound.

max Z  x1  x2
s.a.
5 x1  3 x2  24
2 x1  4 x2  17
x1 , x2  0, enteras

Detalle los cálculos realizados e indique claramente la solución óptima. (2.5 Puntos)

Expresiones útiles

 Costo reducido:
RDT  CBT B1 N  CNT

 Dualidad lineal:
PAUTA

Ejercicio 1

a) Dado el enunciado se puede definir:

Conjuntos:

 Productos I  1, 2,..., N 


 Periodos T  1, 2,...,12

Parámetros:

$
 Ci 𝑂𝑟𝑑𝑒𝑛: Costo de producción de una orden i
$
 CSi 𝑂𝑟𝑑𝑒𝑛
: Costo de guardar una orden i por un mes en la bodega
ℎ𝑜𝑟𝑎𝑠
 tpi 𝑜𝑟𝑑𝑒𝑛: Tiempo que demora en producir una orden i en un periodo t
 Dit : La demanda de órdenes i en un mes t

Variables:

 I it : Inicio de producción de una orden i en t en la única máquina


 d it : Tiempo de producción de una orden i en t en la única máquina
 X it : Cantidad producida de orden i en t
 Sit : Cantidad almacenada en inventario de orden i en t
 Yijt :1 si la orden j es producida después de i en periodo t . 0 en caso contrario.

Entonces el modelo queda:

min   Ci X it  CSi Sit 


12 N

t 1 i 1

s.a
I it  X it tpi  I tj  M (1  yijt ) , t  T , i  N , j  N , i  j (1)
I tj  X it tpi  I it  M ( yijt ), t  T , i  N , j  N , i  j (2)
X it  Sit 1  Dit  Sit , i  I , t  T (3)
X it  0, Sit  0, I it  0, i  I , t  T (4)
yijt  {0,1}, t  T , i  I , j  I , i  j (5)
b) El nuevo incorpora una nueva variable:

 Z it : Demanda no satisfecha de orden i en periodo t

min   Ci X it  CSi Sit  COit Z it 


12 N

t 1 i 1

s.a
I it  X it tpi  I tj  M (1  yijt ) , t  T , i  N , j  N , i  j (1)
I tj  X it tpi  I it  M ( yijt ), t  T , i  N , j  N , i  j (2)
X it  Sit 1  Dit  Z it  Sit , i  I , t  T (3)
N

 X tp
i 1
i
t
i  H , t  T (4)

X it  0, Sit  0, I it  0, Z it , i  I , t  T (5)
yijt  {0,1}, t  T , i  I , j  I , i  j (6)

c) Branch and Bound es un método enumerativo, por lo mismo la restricción:

X it  tpi  dit , t  T , i  I

Es la que implica más tiempo computacional debido a que existen muchas formas de ordenar los
productos dentro de un mismo periodo, o en diferentes periodos, que tienen el mismo valor objetivo.

En la versión 2 podría ser cualquiera las restricciones (1), (2) o (3)

Ejercicio 2

Definiendo las variables:

xijk : 1 si el vehículo k viaja desde el nodo i al nodo j

yik : 1 si el vehículo k carga leche desde el proveedor i

El modelo se puede formular como sigue:


K K N
min Z  C   dij xijk   Li qi yik (minimizar costos)
k 1 ( i , j )A k 1 i 1

s.a.
K
(no necesariamente se visitan todos los proveedores)
y
k 1
k
i  1 i  N

x
hN0
k
hi  yik i  N , k  K (Si el vehículo 𝑘 carga leche, el proveedor 𝑖 debe estar en la ruta del

vehículo k )

x
jN
k
0j  1 k  K (Todos los vehículos son utilizados)

 x  x
jN0
k
ij
hN0
k
jh k  K , j  N0 (Balance de flujo para cada nodo y camión, es decir, sí el vehículo

llega a algún nodo, debe salir)

 q y
jN k 1
i
k
i  P (Cumplimiento cantidad mínima de leche)

 x
iS jS
k
ij  S  1k  K , S  N (Evitar subtour)

xijk , yik 0,1 k  K ,  i, j   A (Naturaleza variables)

Ejercicio 3

a)

 X B   X B   B 1b 
i. Los valores de las variables básicas en el óptimo serán tal que: X     
 XN   0   0 

Entonces:

 x1   0.5 0 0.25  4   1.5 


      
 x5    0.5 1 0.25   3   1.5 
x   0 0 0.5   2  1.0 
 3 

Efectivamente es la solución óptima ya que los costos reducidos de las variables no básicas son  0 .
RDT   1 5 1

 0.5 0 0.25  4 
 
El valor óptimo de Z* es  Z min  C B b    2 0 3  0.5 1 0.25   3   6
T
B
1

 0 0 0.5   2 

Al ser un problema de programación lineal el óptimo encontrado es global. La solución es única, ya


que todos los costos reducidos de las variables no básicas son negativos.

ii. La variable x2 entrara a la base si su costo reducido es  0 . Por lo tanto, si consideramos un


cambio en el costo asociado a la variable igual a C2 , el nuevo costo reducido para la variable lo
T 1
escribimos como: RDx '2  CB B N x2  (C2  C2 )  0 entonces, RDx '2  RDx2  C2 )  0 , es decir,

si C2  RDx2 la variable x2 entrara a la base (cuando estamos minimizando).

Entonces, el costo asociado a x2 debe ser  6 para que esta variable entre a la base (si
consideramos el problema de minimización el costo debe ser  6 ).

iii. El problema dual es:

minZ D  41  32  23


s.a.:
21  2  2
31  42  33  1
1  23  3
1 , 2 , 3  0

 0.5 0 0.25
 
Y el valor de las variables duales en el óptimo es C B   2 0 3 0.5 1 0.25 , es decir,
T 1
B  
 0 0 0.5 

1*  1; 2*  0; 3*  1

iv. Asumiendo que la nueva variable entrante está acotada, para determinar si la solución óptima se
modificar o no, basta con estimar el costo reducido de esta nueva variable, llamada x7 .

T 1
Si RDx7  CB B N x7  C7  0 entonces se modificara la solución óptima. Haciendo los cálculos
tenemos:
 0.5 0 0.25  2 
 
RDx7  CBT B 1 N x7  C7   2 0 3  0.5 1 0.25   0   (2)  1
 0 0 0.5   1 

Por lo tanto, no se modifica la solución encontrada.

b) Resolviendo mediante B&B, tenemos:

Paso Inicial:

Inicializar la cota superior (C.S.) y la cota inferior (C.I.), entonces: C.S  ; C.I .  0 . Luego se
resuelve el problema lineal asociado:

max Z  x1  x2
s.a.
 PL0: 2 x1  4 x2  17
5 x1  3 x2  24
x1 , x2  0, enteras

Resolviendo se obtiene: Z  5.85; x1  3.21; x2  2.64 , x1 , x2 no es entero. Actualizando la cota


superior C.S  18.5; C.I .  0

Iteración 1

Como x1 no es entero se utiliza como variable de ramificación, entonces agregando las siguientes
restricciones x1  3 ; x1  4 tenemos 2 sub problemas:

 PL1: PL0+ x1  3
 PL2: PL0+ x1  4

Resolviendo PL1 obtenemos: Z  5.75; x1  3; x2  2.75

Resolviendo PL2 obtenemos: Z  5.33; x1  4; x2  4 / 3 .

Como no quedan subproblemas, es posible actualizar la cota superior: C.S  5.75; C.I .  0

x2 no es entero se convierte en la variable de ramificación.


Iteración 2

A partir de PL1, como x2 no es entero se agregan las siguientes restricciones x2  2 ; x2  3 tenemos


2 sub problemas:

 PL3: PL1+ x2  2
 PL4: PL1+ x2  3

Resolviendo PL3 obtenemos: Z  5; x1  3; x2  2 , la solución es entera, se puede actualizar la cota


inferior: C.S  5.75; C.I .  5

Dado que los coeficientes de la función objetivo son enteros, no existe otra solución entera que permita
mejorar la cota inferior, por lo que estamos en el óptimo. Otras soluciones óptimas son:

Z *  5; x1*  3; x2*  2
Z *  5; x1*  2; x2*  3
Z *  5; x1*  4; x2*  1

Desarrollando el árbol:

También podría gustarte