Vista previa del material en texto
Ejercicios resueltos
Modelos y Optimización I
Segundo cuatrimestre 2020
Ejercicios resueltos Índice
Índice
1.1 5
1.2 10
1.3 16
1.6 20
2.1 25
2.2 30
2.3 37
2.5 42
2.7 46
2.10 50
2.16 58
2.17 65
2.23 72
2.33 78
3.3 84
3.4 90
3.6 99
3.7 108
3.9 118
3.13 123
3.16 130
Segundo cuatrimestre 2020 2
Ejercicios resueltos Índice
3.20 141
3.34 149
4.2 169
4.8 173
4.10 177
4.12 183
5.1 187
5.6 192
5.7 202
6.1 205
6.2 209
6.12 218
6.16 224
7.2 227
Coloquio 2019-12-19 232
Coloquio 2020-09-07 240
Coloquio 2020-09-14 246
Coloquio 2020-09-21 253
Coloquio 2020-10-05 260
Coloquio 2021-03-22 267
Extra del 6.2 275
Parcial 2020-07-11 278
Parcial 2020-08-01 284
Segundo cuatrimestre 2020 3
Ejercicios resueltos Índice
Parcial 2020-08-27 290
Teórico-práctica 296
Segundo cuatrimestre 2020 4
Ejercicios resueltos 1.1
1.1
1. Enunciado
Una pequeña empresa de productos químicos debe consumir más de 40 M3mes de un determinado alcohol,
debido a que ha firmado un contrato con la municipalidad de la zona (este alcohol es producido allí
mismo). En compensación recibe beneficios impositivos.
Produce dos tipos de fertilizantes: A y B. En la tabla siguiente se da la información básica:
Producto A Producto B
Consumo de alcohol 3 M3unit
2
3
M3
unit
Consumo de ciclohexano 1 tnunit 2
tn
unit
Disponibilidad de ciclohexano: 20 tn. por mes.
Con estas restricciones, y sabiendo que la contribución marginal es 1200$/u para el producto A y 400$/u
para el producto B, ¿cuál es el plan óptimo de producción?
2. Análisis de la situación problemática.
Al tener dos productos diferentes para fabricar, se debe plantear cuántos de cada uno se debe producir
considerando la restricción del alcohol mínimo a consumir y la disponibilidad de ciclohexano.
3. Objetivo
Los productos tienen contribuciones por unidad y a su vez se sabe cuánto de alcohol y ciclohexano se
necesita para producir una unidad de cada uno. No se considerarán los precios de alcohol y ciclohexano
por no conocerlos.
El objetivo será maximizar la ganancia: producir la cantidad máxima de productos A y B con la mayor
ganancia asociada considerando las restricciones de material.
4. Hipótesis y supuestos
• Se vende todo lo que se produce.
• No se encuentran límites físicos de almacenamiento de los productos.
Segundo cuatrimestre 2020 5
Ejercicios resueltos 1.1
• No hay fallas de producción.
• No hay desperdicio al producir.
• No hay restricciones de mano de obra.
• No hay inflación ni variación de precios.
5. Definición de variables (con tipos y unidades)
• A: La cantidad del producto A a producir por mes.
• B: La cantidad del producto B a producir por mes.
A partir de esto se conoce:
• Ganancia por producto A:
GA = A ·
1200$
unit
• Ganancia por producto B:
GB = B ·
400$
unit
• Función a maximizar:
G = GA +GB
• Consumo de alcohol:
Ca =
3M3
unit
A+ 23
M3
unit
B ≥ 40M
3
mes
• Consumo de ciclohexano:
Cc =
1tn
unit
A+ 2 tn
unit
B ≥ 20tn
mes
6. Modelo de programación lineal
• Nuestra función objetivo es: MAX 1200 A + 400 B
• La restricción de alcohol: ALCOHOL)3 A + 2 B / 3 >= 40
• La restricción de ciclohexano: CICLOHEXANO)A + 2 B <= 20
7. Resolución gráfica
Los ejes X e Y representan la cantidad de productos de A y B, respectivamente.
Segundo cuatrimestre 2020 6
Ejercicios resueltos 1.1
8. Resolución por so�ware (modelo y resultados)
• Modelo
1 MAX 1200 A + 400 B
2 ST
3 ALCOHOL) 3 A + 0.666 B >= 40
4 CICLOHEX) A + 2 B <= 20
5 END
• Resultado
1 LP OPTIMUM FOUND AT STEP 1
2
3 OBJECTIVE FUNCTION VALUE
4
5 1) 24000.00
6
7 VARIABLE VALUE REDUCED COST
8 A 20.000000 0.000000
9 B 0.000000 2000.000000
10
11
12 ROW SLACK OR SURPLUS DUAL PRICES
13 ALCOHOL) 20.000000 0.000000
14 CICLOHEX) 0.000000 1200.000000
15
16 NO. ITERATIONS= 1
17
18
19 RANGES IN WHICH THE BASIS IS UNCHANGED:
20
21 OBJ COEFFICIENT RANGES
22 VARIABLE CURRENT ALLOWABLE ALLOWABLE
Segundo cuatrimestre 2020 7
Ejercicios resueltos 1.1
23 COEF INCREASE DECREASE
24 A 1200.000000 INFINITY 1000.000000
25 B 400.000000 2000.000000 INFINITY
26
27 RIGHTHAND SIDE RANGES
28 ROW CURRENT ALLOWABLE ALLOWABLE
29 RHS INCREASE DECREASE
30 ALCOHOL 40.000000 20.000000 INFINITY
31 CICLOHEX 20.000000 INFINITY 6.666667
9. Informe de la solución óptima (recomendación al tomador de la decisión)
Se tiene una cantidad limitada de ciclohexano y se requiere menos de este para producir del producto
A que del producto B. Adicionalmente, la ganancia del producto A es mayor a la del producto B por lo
que la solución óptima será fabricar solo del producto A, en particular 20 unidades del mismo
Correcciones
Calificación general: Bien +
Análisis: Regular
El anális que hacés es un resumen del enunciado. ¿Qué clase de problema es? También podrías
usar un diagrama para ayudarte en el entendimiento del problema y la modelización.
Objetivo: Regular
El objetivo definido está bien encausado pero está incompleto. Un objetivo correcto y completo
responde tres preguntas: ¿Qué determinar? ¿Para maximizar/minimizar qué cosa? ¿Durante
cuánto tiempo? Cuidado también cuando decís “producir la cantidad máxima de A y B”, ya que
no es lo mismo que “maximizar las ganancias”.
Hipótesis: Bien
Las hipótesis están muy bien, tienen sentido y ayudan a acotar el modelo. Las hipótesis de “certeza”
están cubiertas. Podrías agregar alguna hipótesis de “proporcionalidad” (que el consumo de
los recursos es directamente proporcional a la cantidad fabricada) y “divisibilidad” (se pueden
producir cantidades arbitrariamente pequeñas de producto); en este ejercicio no aplican las
hipótesis de “aditividad”.
Variables: Excelente
La identificación de las variables principales es correcta, y guarda coherencia con el objetivo
que planteaste. También es positivo que hayas indicado las unidades. No es necesario indicar
todas las varibles que no sean de decisión, sino únicamente las que utilices dentro del modelo
Segundo cuatrimestre 2020 8
Ejercicios resueltos 1.1
matemático.
Modelo: Excelente
Las restricciones y la función objetivo son correctas. El funcional guarda coherencia con el objetivo
definido. Las unidades cierran perfectamente. No hay restricciones redundantes. Las restricciones
están claramente identificadas.
Resolución gráfica: Muy Bien
El poliedro de soluciones está bien graficado. La traza del funcional está graficada correctamente.
Podrías indicar las coordenadas de los vértices del poliedro. El valor del óptimo es correcto.
Podrías calcular analíticamente las coordenadas de los vértices del poliedro y el valor del funcional
en ellos.
Resolución por so�ware: Excelente
La resolución es correcta, y están incluidos el modelo y la salida del so�ware.
Informe solución: Bien -
El informe es correcto: está redactado en términos del dominio del problema; deberías agregarle
el valor del funcional en el óptimo. El informe podría incluir los sobrantes y recursos saturados.
Presentación: Bien
El documento entregado es claro, y las secciones están claramente separadas. A medida que los
modelos vayan creciendo, podrías incluir también carátula, numeración de páginas, e índice. De
paso, te va a servir también para las entregas del TP.
Segundo cuatrimestre 2020 9
Ejercicios resueltos 1.2
1.2
1. Enunciado
Hay tres máquinas disponibles para la producción de dos productos. Cada uno de ellos requiere los
tiempos de proceso que se indican en la tabla siguiente (expresados en horas/unidad).
Producto Máq. A Máq. B Máq. C
X 2 3 4
Y 4 2 2
Disponibilidad (hr/mes) 80 60 100
El esquema del proceso productivo es el siguiente: - Ambos productos deben pasar sucesivamente por
las tres máquinas (en el orden “A ⇒ B ⇒ C”) para quedar totalmente terminados. Una máquina
puede procesar un solo producto por vez. - El precio de venta de X es de 60 $/u y el de Y es de 50 $/u. Se
planea la operación para el mes que viene. ¿Cuál es el uso óptimo de estos recursos frente al objetivo
de maximizar las ventas?
2. Análisis de la situación problemática.
Se quiere optimizar el uso de las máquinascuya disponibilidad por mes se encuentra limitada.
3. Objetivo
Al tener un límite de disponibilidad de máquina por mes para fabricar dos productos con precio de
venta diferentes, se busca obtener la cantidad de productos X e Y por mes para fabricar, maximizando
la ganancia.
4. Hipótesis y supuestos
• Se vende todo lo que se produce.
• No se encuentran límites físicos de almacenamiento de los productos.
• No hay fallas de producción cuando un producto pasa por las tres máquinas.
• No hay desperdicio al producir.
• No hay restricciones de materiales de producción.
• No hay inflación ni variación de precios.
Segundo cuatrimestre 2020 10
Ejercicios resueltos 1.2
5. Definición de variables (con tipos y unidades)
• X : La cantidad del producto X a producir por mes.
• Y : La cantidad del producto Y a producir por mes.
A partir de esto se conoce:
• Ganancia por producto X:
GX = X ·
60$
unit
• Ganancia por producto Y:
GY = Y ·
50$
unit
• Función a maximizar:
G = GX +GY
• Uso de máquina A por mes:
CA =
2hrs
unit
X + 4hrs
unit
Y ≤ 80hrs
mes
• Uso de máquina B por mes:
CB =
3hrs
unit
X + 2hrs
unit
Y ≤ 60hrs
mes
• Uso de máquina C por mes:
CC =
4hrs
unit
X + 2hrs
unit
Y ≤ 100hrs
mes
6. Modelo de programación lineal
• Nuestra función objetivo es: MAX 60 X + 50 Y
• La restricción de la máquina A: MAQ_A)2 X + 4 Y <= 80
• La restricción de la máquina B: MAQ_B)3 X + 2 Y <= 60
• La restricción de la máquina C: MAQ_C)4 X + 2 Y <= 100
Segundo cuatrimestre 2020 11
Ejercicios resueltos 1.2
7. Resolución gráfica
8. Resolución por so�ware (modelo y resultados)
• Modelo
1 MAX 60 X + 50 Y
2 ST
3 MAQ_A) 2 X + 4 Y <= 80
4 MAQ_B) 3 X + 2 Y <= 60
5 MAQ_C) 4 X + 2 Y <= 100
6 END
• Resultado
1 LP OPTIMUM FOUND AT STEP 2
2
3 OBJECTIVE FUNCTION VALUE
4
5 1) 1350.000
6
7 VARIABLE VALUE REDUCED COST
8 X 10.000000 0.000000
9 Y 15.000000 0.000000
10
11
12 ROW SLACK OR SURPLUS DUAL PRICES
13 MAQ_A) 0.000000 3.750000
14 MAQ_B) 0.000000 17.500000
15 MAQ_C) 30.000000 0.000000
16
17 NO. ITERATIONS= 2
Segundo cuatrimestre 2020 12
Ejercicios resueltos 1.2
18
19
20 RANGES IN WHICH THE BASIS IS UNCHANGED:
21
22 OBJ COEFFICIENT RANGES
23 VARIABLE CURRENT ALLOWABLE ALLOWABLE
24 COEF INCREASE DECREASE
25 X 60.000000 15.000000 35.000000
26 Y 50.000000 70.000000 10.000000
27
28 RIGHTHAND SIDE RANGES
29 ROW CURRENT ALLOWABLE ALLOWABLE
30 RHS INCREASE DECREASE
31 MAQ_A 80.000000 40.000000 40.000000
32 MAQ_B 60.000000 20.000000 20.000000
33 MAQ_C 100.000000 INFINITY 30.000000
9. Informe de la solución óptima (recomendación al tomador de la decisión)
Considerando el precio de venta y la disponibilidad de las máquinas, la mejor opción para maximizar
la ganancia es producir 10 unidades del producto X y 15 unidades del producto Y, obteniendo así una
ganancia de 1350$.
¿Es conveniente conseguir 20 horas/mes más de equipo B?
Si. Observando el gráfico, el tiempo de la máquina B es una restricción limitante. Volviendo a correr el
so�ware con el modelo considerando la nueva restricción MAQ_B)3 X + 2 Y <= 80 obtenemos que la
nueva solución óptima es producir 20 de X, y 10 de Y para una ganancia de 1700$.
1 LP OPTIMUM FOUND AT STEP 1
2
3 OBJECTIVE FUNCTION VALUE
4
5 1) 240.0000
6
7 VARIABLE VALUE REDUCED COST
8 X 4.000000 0.000000
9 Y 0.000000 70.000000
10
11
12 ROW SLACK OR SURPLUS DUAL PRICES
13 MAQ_A) 0.000000 30.000000
14 MAQ_B) 68.000000 0.000000
15 MAQ_C) 84.000000 0.000000
16
17 NO. ITERATIONS= 1
18
19
20 RANGES IN WHICH THE BASIS IS UNCHANGED:
21
22 OBJ COEFFICIENT RANGES
23 VARIABLE CURRENT ALLOWABLE ALLOWABLE
24 COEF INCREASE DECREASE
25 X 60.000000 INFINITY 35.000000
26 Y 50.000000 70.000000 INFINITY
27
Segundo cuatrimestre 2020 13
Ejercicios resueltos 1.2
28 RIGHTHAND SIDE RANGES
29 ROW CURRENT ALLOWABLE ALLOWABLE
30 RHS INCREASE DECREASE
31 MAQ_A 8.000000 42.000000 8.000000
32 MAQ_B 80.000000 INFINITY 68.000000
33 MAQ_C 100.000000 INFINITY 84.000000
Correcciones
Buenas tardes Javier, Te dejo mis impresiones sobre la entrega. Saludos, PC
Calificación general: Bien
Análisis: Regular Cuidado cuando decis “se quiere optimizar el uso de las máquinas”, en realidad
no nos importa cuánto se usan las máquinas en este problema sino qué cantidad de cada producto
se fabrica. Lo que buscamos en este apartado es que puedan abstraer las características salientes
y distintivas del problema. En este caso se puede hablar de un problema con dos productos y tres
máquinas. Podría incluirse un pequeño gráfico que muestre cómo es el proceso.
Objetivo: Regular Como comentáramos en clase, lo que el modelo hace no es calcular el valor
de una incógnita sino determinar los valores de las variables del problema. En este caso lo que
se determina es la cantidad de producto 1 y 2 a fabricar (eso, a su vez determina el uso de los
recursos, pero no es necesario aclararlo). Lo que el enunciado indica es que se desea maximizar
las ventas (cantidad total de unidades vendidas), no las ganancias. Los productos son 1 y 2, no X
e Y
Hipótesis: Bien Las hipótesis son correctas se podrían agregar: + No se considera la secuencia
entre máquinas (o se asume que se procesa todo en A, luego todo en B y finalmente todo en C
y un mes alcanza para hacerlo). + No hay otras restricciones (financieras, mano de obra) + No
hay restricciones de demanda sobre los productos + El consumo de los recursos es directamente
proporcional a la cantidad fabricada + Se pueden producir cantidades arbitrariamente pequeñas
de producto
Variables: Bien La nomenclatura de los productos es incorrecta. Se deberían incluir las unidades
de las variables [u/mes] No es necesario indicar las distintas variables calculables, basta con las 2
variables principales del problema.
Modelo: Muy Bien El funcional es coherente con el objetivo indicado.
Resolución gráfica: Muy Bien El gráfico es clarísimo, usando todas las herramientas del so�ware.
Se marca la traza del funcional y el punto óptimo. Se podría agregar el valor del funcional en cada
vértice del poliedro como método alternativo de resolución.
Resolución por so�ware: Bien(+) Se incluye el fuente y la salida del so�ware.
Segundo cuatrimestre 2020 14
Ejercicios resueltos 1.2
Informe solución: Bien(+) Se podría agregar algo que mencionás luego al analizar la pregunta
adicional: el uso de los recursos.
Pregunta adicional: Bien(-) Si bien es correcto el análisis preliminar que hacés respecto de que
B es limitanteo, la idea de estas preguntas de análisis de sensibilidad no es volver a resolver el
problema desde cero sino trabajar a partir de la solución óptima (en este caso, desplazando la
recta en el gráfico). Veremos más herramientas para hacerlo en las prácticas 5 y 6.
Presentación: Bien La presentación es correcta y no hay un exceso de archivos (está bien que el
modelo esté aparte por si se quiere correr). A medida que los modelos vayan creciendo, podrías
incluir también separación de secciones, numeración de páginas, carátula e índice. De paso, te va
a servir también para las entregas del TP.
Segundo cuatrimestre 2020 15
Ejercicios resueltos 1.3
1.3
1. Enunciado
Se desea definir las cantidades a fabricar de dos productos, A y B cuyo procesamiento se realiza en dos
centros de máquinas, conociéndose los datos referentes a los tiempos de proceso y disponibilidades
en los centros. Se sabe además que debe cumplirse con un pedido mínimo de 50 unidades de A. Al
mismo tiempo, la producción de B debe ser por lo menos cuatro veces superior a la producción de A.
Se conocen los márgenes brutos de beneficio de cada producto.
2. Análisis de la situación problemática.
Se quiere optimizar el uso de las máquinas, cuya disponibilidad se encuentra limitada, a su vez
cumpliendo con una producción mínima.
3. Objetivo
Además de tener un límite de disponibilidad para cada máquina, se debe fabricar un mínimo de
productos de A y B. Considerando esto, se busca obtener la cantidad de productos A y B para fabricar,
maximizando la ganancia.
4. Hipótesis y supuestos.
• Se vende todo lo que se produce.
• No se encuentran límitesfísicos de almacenamiento de los productos.
• No hay fallas de producción cuando un producto pasa por las máquinas.
• No hay desperdicio al producir.
• No hay restricciones de materiales de producción.
• No hay inflación ni variación de precios.
Segundo cuatrimestre 2020 16
Ejercicios resueltos 1.3
5. Definición de variables (con tipos y unidades)
• A: La cantidad del producto A a producir por mes.
• B: La cantidad del producto B a producir por mes.
A partir de esto se conoce:
• Ganancia por producto A:
GA = A×
12$
unit
• Ganancia por producto B:
GB = B ×
8$
unit
• Función a maximizar:
G = GA +GB
• Uso de máquina 1:
C1 =
1
unit
A+ 0.4
unit
B ≤ 200
• Uso de máquina 2:
C2 =
0.5
unit
A+ 1
unit
B ≤ 200
• Mínimo de productos A:
A ≥ 50
• Mínimo de productos B:
B ≥ 4A
6. Modelo de programación lineal
• Nuestra función objetivo es: MAX 12 A + 8 B
• La restricción de la máquina A: MAQ_1)A + 0.4 B <= 200
• La restricción de la máquina B: MAQ_2)0.5 A + B <= 200
• La restricción del producto A: PROD_A)A >= 50
• La restricción del producto B: PROD_B)B >= 4 A
7. Resolución gráfica.
Los ejes X e Y representan la cantidad de productos de A y B, respectivamente.
Segundo cuatrimestre 2020 17
Ejercicios resueltos 1.3
8. Resolución por so�ware (modelo y resultados).
• Modelo:
1 MAX 12 A + 8 B
2 ST
3 MAQ_1) A + 0.4 B <= 200
4 MAQ_2) 0.5 A + B <= 200
5 PROD_A) A >= 50
6 PROD_B) B - 4 A >= 0
7 END
• Resultados:
1 Status: Infeasible
2 Iterations: 2
3 Infeasibility: 5.55556
4 Objective: 1955.56
5 Best IP: N/A
6 IP Bound: N/A
7 Branches: N/A
8 Elapsed Time: 00:00:02
9. Informe de la solución óptima
No existe una región factible donde se cumplan las cuatro restricciones, por lo que el modelo es
incompatible.
Segundo cuatrimestre 2020 18
Ejercicios resueltos 1.3
Observando el gráfico, para que el modelo tenga solución óptima se podría eliminar o modificar una
de las restricciones existentes.
Correcciones
Análisis: Cuidado cuando decis “se quiere optimizar el uso de las máquinas”, en realidad no nos
importa cuánto se usan las máquinas en este problema, por más que intuitivamente un uso
óptimo de ellas conlleven a una obtención óptima del margen bruto, no es algo que queramos
optimizar.
Objetivo: Bien en términos generales. Cumplir con el marco propuesto de “Determinar X para
maximizar/minimizar Y en el período de tiempo Z” (acá el período de tiempo puede ser abstracto,
“para un período dado”, al no estar especificado en el enunciado)
Hipótesis correctas. Una adicional marcada en clase sería la de que los productos deben pasar
por ambas máquinas para considerarse completados.
Modelo correcto. La definición de variables no debería llevar las ecuaciones asociadas, esas van
directamente en el modelo. Simplemente definiendo A y B es suficiente, al esas dos nuestras
únicas variables de decisión. G, G_A, G_B no aparecieron en el modelo como variables, entonces
están de más en la definición
Correcta la resolución e informe.
Segundo cuatrimestre 2020 19
Ejercicios resueltos 1.6
1.6
1. 1.6
Dado el siguiente sistema de inecuaciones:
1 4 X1 - 2 X2 <= 4
2 4 X1 + 2 X2 <= 8
3 X1 + X2 >= 1
Y el funcional:
1 MAX Z = 8 X1 + 4 X2
Encontrar un enunciado compatible con el modelo.
2. Enunciado
Pedro está interesado en hacer dinero extra desde su casa, y decide investigar sobre el mundo de las
criptomonedas.
Por un lado encontró una la plataforma web Kraken para el intercambio de las criptomonedas, con las
siguientes tasas de cambio:
• 1 Taler = 8 pesos
• 1 Zcoin = 4 pesos
Los términos y condiciones de uso le exigen intercambiar al menos una moneda al mes para que su
cuenta no se vea desactivada.
Para el minado de las monedas en sí, encontró un servicio que ofrece tiempo de procesamiento gratuito
mensual con su correo electrónico de la facultad. Investigando los recursos que necesita cada moneda
y los planes disponibles, encontró cuánto tiempo en horas de CPU y GPU necesita para cada moneda y
el tiempo disponible que provee el servicio mensualmente.
Criptomoneda GPU CPU
Taler 4 4
Zcoin 2 -2
Disponibilidad (hrs/mes) 8 4
Segundo cuatrimestre 2020 20
Ejercicios resueltos 1.6
3. Resolución gráfica.
Valor deX1,X2 yZ sobre los vértices de la región factible:
• A:
– X1 = 0
– X2 = 4
– Z = 16
• B:
– X1 = 1.5
– X2 = 1
– Z = 16
Segundo cuatrimestre 2020 21
Ejercicios resueltos 1.6
• C:
– X1 = 1
– X2 = 0
– Z = 8
• D:
– X1 = 0
– X2 = 1
– Z = 4
4. Indicar la o las soluciones que optimicen el funcional.
Observando los límites de la región factible y sus vértices, cualquier punto que se encuentra alineado
y entre los puntosA yB optimizan la función. De esta forma la ganancia sería de 16.
5. Dar el valor de las variables débiles o slacks, sus unidades y significado en cada uno
de los vértices del poliedro.
• X1: Cantidad de moneda Taler.
• X2: Cantidad de moneda Zcoin.
• S1: Sobrante de tiempo de CPU [hrs/mes].
• S2: Sobrante de tiempo de GPU [hrs/mes].
• S3: Moneda sobrante para marcar la cuenta de Kraken como activa.
Las restricciones con las variables slack:
4X1 − 2X2 + S1 = 4
4X1 + 2X2 + S2 = 8
X1 +X2 − S3 = 1
Valor de S1, S2, S3 yZ sobre los vértices de la región factible:
• A: Solo el uso de GPU mensual es limitante.
– S1 = 12
– S2 = 0
– S3 = 3
Segundo cuatrimestre 2020 22
Ejercicios resueltos 1.6
– Z = 16
• B: El uso de GPU y CPU mensual es limitante.
– S1 = 0
– S2 = 0
– S3 = 1.5
– Z = 16
• C: El uso de CPU mensual y el mínimo de moneda mensual necesario es limitante.
– S1 = 0
– S2 = 4
– S3 = 0
– Z = 8
• D: El mínimo de moneda mensual necesario es limitante.
– S1 = 6
– S2 = 6
– S3 = 0
– Z = 4
Correcciones
Calificación general: Muy Bien
Enunciado: Bien -
El tema que redactaste es muy original! El enunciado que armaste está bien, aunque haría falta
encontrarle una explicación al consumo negativo de CPU de los ZCoin.
Resolución Gráfica: Excelente
El poliedro de soluciones factibles está bien graficado. La traza del funcional es correcta. El
segmento óptimo de soluciones está correctamente indicado.
Soluciones Alternativas: Excelente
La descripción de las soluciones alternativas es correcta. El valor del funcional que se indica es
correcto.
Slacks: Excelente
La incorporación de las variables slack al modelo es correcta. Los valores de las slacks son
correctos. La descripción de las variables slack es correcta. Indicás las unidades de las slacks.
Segundo cuatrimestre 2020 23
Ejercicios resueltos 1.6
Presentación: Bien
El documento entregado es claro, y las secciones están claramente separadas. A medida que los
modelos vayan creciendo, podrías incluir también carátula, numeración de páginas, e índice. De
paso, te va a servir también para las entregas del TP.
Segundo cuatrimestre 2020 24
Ejercicios resueltos 2.1
2.1
1. Enunciado
Un taller de tejido elabora varios modelos de pullóver. Estos modelos de pullóver se pueden agrupar,
desde un punto de vista técnico-económico, en tres tipos diferentes de prendas, a los cuales llamaremos
A,B yC.
El taller posee dos máquinas (I y II). Los pullóveresA sólo pueden hacerse en la máquina I , losC
sólo pueden hacerse en la máquina II y losB pueden hacerse tanto en la máquina I como en la II .
Las dos máquinas trabajan dos turnos por día, 8 horas en cada turno, de lunes a viernes.
La materia prima utilizada es lana de dos calidades distintas (Mejorada yNormal). La lana Mejorada se
utiliza para los pullóveres de tipoA yC. Los pullóveres de tipoB se hacen con lana Normal. De la lana
Mejorada se pueden conseguir hasta 20kg./semana y de la lana Normal hasta 36kg./semana.
Existe un compromiso de entregar 10 pullóveresB por semana a un importante distribuidor.
No es necesario que las prendas que comienzan a fabricarse en una semana se terminen durante la
misma, es decir que pueden quedar pullóveres a medio hacer de una semana para la próxima.
Los estándares de producción y materia prima y los beneficios unitarios para cada tipo de pullóver, se
indican en el siguiente cuadro:
¿Qué es lo mejor quese puede hacer con la información disponible?
2. Análisis de la situación problemática
El problema tiene tres productos distintos,A,B yC.
Se tiene una cantidad limitada de materia prima por semana, donde los productosA yC se producen
con la misma tela.
Para la producción se utilizan dos máquinas con una disponibilidad de 8horasturno ×
2turnos
dia ×
5dias
semana =
80horas
semana por máquina. Una de ellas se utiliza para producirA yB, y la otra para producirB yC, donde
se observar que el tiempo de para producirB varía entre las dos máquinas.
Segundo cuatrimestre 2020 25
Ejercicios resueltos 2.1
Finalmente, cada producto tiene un costo de venta respectivo por unidad.
3. Objetivo
Determinar la cantidad de pullóver A y B a producir en el plazo de una semana para maximizar la
ganancia mediante ventas de dichos pullóvers.
4. Hipótesis y supuestos
• Se vende todo lo que se produce dentro del plazo del modelo.
• Se podrá producir todo el producto dentro del plazo del modelo, considerando las restricciones.
• No hay stock inicial ni final de producto.
• No se encuentran límites físicos de almacenamiento de los productos.
• No hay fallas de producción.
• No hay desperdicio al producir ni desgaste al dejar un producto a medio hacer.
• No hay restricciones de mano de obra ni financieras.
• No hay inflación ni variación de precios.
• El consumo de los recursos es directamente proporcional a la cantidad fabricada.
• Se pueden producir cantidades arbitrariamente pequeñas de producto.
5. Definición de variables
• AM1: La cantidad de pulloversA a producir en la máquina 1 por semana.
• BM1: La cantidad de pulloversB a producir en la máquina 1 por semana.
• BM2: La cantidad de pulloversB a producir en la máquina 2 por semana.
• CM2: La cantidad de pulloversC a producir en la máquina 2 por semana.
6. Modelo de programación lineal
La función objetivo a maximizar será la ganancia por la producción de producto:
Z = 10$
pullóverAM1 +
15$
pullóverBM1 +
15$
pullóverBM2 +
18$
pullóverCM2
Las restricciones serán:
Segundo cuatrimestre 2020 26
Ejercicios resueltos 2.1
• Producir 10 pullóveresB por semana para un distribuidor.
BM1 +BM2 ≥
10pullóver
semana
• Límite de lana mejorada:
LM =
1.6kg
pullóverAM1 +
1.2kg
pullóverCM2 ≤
20kg
semana
• Límite de lana normal:
LN =
1.8kg
pullóverBM1 +
1.8kg
pullóverBM2 ≤
36kg
semana
• Límite de uso de la máquina 1:
M1 = 5hrs
pullóverAM1 +
6hrs
pullóverBM1 ≤
80horas
semana
• Límite de uso de la máquina 2:
M2 = 4hrs
pullóverBM2 +
4hrs
pullóverCM2 ≤
80horas
semana
7. Resolución por so�ware (modelo y resultados)
• Modelo de programación lineal en LINDO:
1 MAX 10 AM1 + 15 BM1 + 15 BM2 + 18 CM2
2 ST
3 DIST) BM1 + BM2 >= 10
4 LM) 1.6 AM1 + 1.2 CM2 <= 20
5 LN) 1.8 BM1 + 1.8 BM2 <= 36
6 M1) 5 AM1 + 6 BM1 <= 80
7 M2) 4 BM1 + 4 CM2 <= 80
8 END
• Resultado:
1 LP OPTIMUM FOUND AT STEP 1
2
3 OBJECTIVE FUNCTION VALUE
4
5 1) 550.0000
6
7 VARIABLE VALUE REDUCED COST
8 AM1 0.000000 6.500000
9 BM1 13.333333 0.000000
10 BM2 3.333333 0.000000
Segundo cuatrimestre 2020 27
Ejercicios resueltos 2.1
11 CM2 16.666666 0.000000
12
13
14 ROW SLACK OR SURPLUS DUAL PRICES
15 DIST) 6.666667 0.000000
16 LM) 0.000000 2.500000
17 LN) 6.000000 0.000000
18 M1) 0.000000 2.500000
19 M2) 0.000000 3.750000
20
21 NO. ITERATIONS= 1
22
23
24 RANGES IN WHICH THE BASIS IS UNCHANGED:
25
26 OBJ COEFFICIENT RANGES
27 VARIABLE CURRENT ALLOWABLE ALLOWABLE
28 COEF INCREASE DECREASE
29 AM1 10.000000 6.500000 INFINITY
30 BM1 15.000000 INFINITY 7.800000
31 BM2 15.000000 3.000000 15.000000
32 CM2 18.000000 INFINITY 3.000000
33
34 RIGHTHAND SIDE RANGES
35 ROW CURRENT ALLOWABLE ALLOWABLE
36 RHS INCREASE DECREASE
37 DIST 10.000000 6.666667 INFINITY
38 LM 20.000000 4.000000 4.000000
39 LN 36.000000 INFINITY 6.000000
40 M1 80.000000 20.000000 39.999996
41 M2 80.000000 13.333334 13.333333
8. Informe de la solución óptima
La solución óptima considerando las restricciones de tela y máquina será producir por semana:
• 13 y un tercio más de pullóvers B con la máquina I.
• 3 y un tercio más de pullóvers B con la máquina II.
• 16 y dos tercio más de pullóvers C con la máquina II.
Al vender dicho stock, se obtendría una ganancia de $550.
Los recursos limitantes serán el tiempo de las dos máquinas y la cantidad de lana mejorada. Adicional-
mente, sobrarán 6 kilos de lana normal para la semana siguiente.
Correcciones
Buenas noches Javier, Te dejo nuestras correcciones. Saludos, PC
El análisis de la situación problemática no tiene que ser un resumen del enunciado. Se puede
decir “se trata de un problema de producción con recursos limitantes” en este caso. Cuando
tengamos problemas más complejos, por ejemplo de armado o metas, se indicará eso en el
Segundo cuatrimestre 2020 28
Ejercicios resueltos 2.1
análisis. También se puede hacer un diagrama.
Habría que agregar al objetivo que hay que determinar también en qué máquina se producen los
pulóveres (en el caso de los pulóveres B)
En las hipótesis faltaría incluir que los pulóveres B son de la misma calidad, independientemente
de en qué máquina se hayan fabricado.
El modelo está bien y el informe de la solución óptima es correcto.
Segundo cuatrimestre 2020 29
Ejercicios resueltos 2.2
2.2
1. Enunciado
“Copani”, una compañía dedicada a la minería, explota tres yacimientos (Sierra Alta, Sierra Chica y
El Abra), de cada uno de los cuales obtiene un mineral que contiene cuatro metales: Cobre, Estaño,
Manganeso y Zinc. Con estos cuatro metales, y siguiendo las especificaciones que pueden verse en el
cuadro que figura a continuación, Copani elabora dos aleaciones: A y B.
La proporción de cada metal que está en el mineral depende del yacimiento del cual proviene ese
mineral. La siguiente tabla indica esos datos, así como los costos de extracción de mineral:
La aleación A se vende a $A por tonelada y la aleación B a $B por tonelada. Con la información indicada:
¿Qué es lo mejor que puede hacer “Copani”?
Para facilitar el análisis se incluyen las siguientes definiciones: - Aleación: Producto homogéneo de
propiedades metálicas, compuesto de dos o más elementos, uno de los cuales, al menos, debe ser un
metal. Ej: Bronce, Acero. - Metal: Cada uno de los elementos químicos, buenos conductores del calor y
de la electricidad. Ej: Oro, Cobre, Hierro. - Mineral: Sustancia inorgánica que se halla en la superficie o
en diversas capas de la tierra, cuya explotación ofrece interés. Ej: Ferrita, Pirita
Segundo cuatrimestre 2020 30
Ejercicios resueltos 2.2
2. Análisis de la situación problemática
Se trata de un problema de producción con recursos limitantes. Los metales pueden provenir de tres
yacimientos con extracción limitada y costo asociado, los cuales se utilizan para la producción de dos
aleaciones diferentes.
3. Objetivo
Se busca optimizar la cantidad en toneladas de cobre, estaño, manganeso y zinc destinadas a la
producción de aleaciones A y B, y las toneladas de mineral a obtener de los yacimientos, para maximizar
la ganancia en el plazo de tiempo de los datos.
4. Hipótesis y supuestos
• Los metales obtenidos de yacimientos distintos son indistinguibles entre si.
• Las aleaciones se producen solo con los tres metales especificados.
• Los precios de venta de aleaciones son constantes.
• Los datos son todos sobre el mismo plazo de tiempo genérico T.
• Se vende todo lo que se produce dentro del plazo del modelo.
• Se produce lo necesario dentro del plazo del modelo.
• No hay fallas de producción ni desperdicio.
Segundo cuatrimestre 2020 31
Ejercicios resueltos 2.2
• Todo lo extraído de los yacimientos es utilizable.
• No hay límites físicos de almacenamiento de productos.
• Se puede extraer cantidades arbitrariamente pequeñas de metales.
• El consumo de metales es directamente proporcional a la cantidad fabricada.
• No hay restricciones de mano de obra ni financieras.
• No hay inflación ni variación de precios.
5. Definición de variables
• CA: Toneladas de cobre utilizadas para la producción de aleación A.
• EA: Toneladas de estañoutilizadas para la producción de aleación A.
• EB : Toneladas de estaño utilizadas para la producción de aleación B.
• MB : Toneladas de manganeso utilizadas para la producción de aleación B.
• ZA: Toneladas de zinc utilizadas para la producción de aleación A.
• ZB : Toneladas de zinc utilizadas para la producción de aleación B.
• YSA: Toneladas de metal obtenidas en el yacimiento Sierra Alta.
• YSC : Toneladas de metal obtenidas en el yacimiento Sierra Chica.
• YEA: Toneladas de metal obtenidas en el yacimiento El Abra.
6. Modelo de programación lineal
La función objetivo a maximizar será la ganancia por la producción de producto:
Z = A$
tn
(CA + EA + ZA) +
B$
tn
(EB +MB + ZB)−
10$
tn
YSA −
40$
tn
YSC −
50$
tn
YEA
Las restricciones serán:
• Obtención de cobre:
0.2YSA + 0.1YSC + 0.05YEA ≥ CA
• Obtención de estaño:
0.1YSA + 0.2YSC + 0.05YEA ≥ EA + EB
• Obtención de manganeso:
0.3YSA + 0.3YSC + 0.7YEA ≥MB
Segundo cuatrimestre 2020 32
Ejercicios resueltos 2.2
• Obtención de zinc:
0.3YSA + 0.3YSC + 0.2YEA ≥ ZA + ZB
• Porcentajes de aleación A:
0.8(CA + EA + ZA) ≥ CA
0.3(CA + EA + ZA) ≥ EA
0.5(CA + EA + ZA) ≤ ZA
• Porcentajes de aleación B:
0.4(EB +MB + ZB) ≤ EB ≤ 0.6(EB +MB + ZB)
0.3(EB +MB + ZB) ≤MB
0.7(EB +MB + ZB) ≥ ZB
• Disponibilidad de los yacimientos:
YSA ≤ 1000
YSC ≤ 2000
YEA ≤ 3000
7. Resolución por so�ware
• Para la resolución del modelo, utilizo los siguientes valores de precio de ventaA yB:
– A = 70
– B = 60
• Modelo de programación lineal en LINDO:
1 MAX 70 CA + 70 EA + 70 ZA + 60 EB + 60 MB + 60 ZB
2 - 10 YSA - 40 YSC - 50 YEA
3 ST
4 COB) 0.2 YSA + 0.1 YSC + 0.05 YEA - CA >= 0
5 EST) 0.1 YSA + 0.2 YSC + 0.05 YEA - EA - EB >= 0
6 MNG) 0.3 YSA + 0.3 YSC + 0.7 YEA - MB >= 0
7 ZNC) 0.3 YSA + 0.3 YSC + 0.2 YEA - ZA - ZB >= 0
8 A_COB) - 0.2 CA + 0.8 EA + 0.8 ZA >= 0
9 A_EST) 0.3 CA - 0.7 EA + 0.3 ZA >= 0
10 A_ZNC) 0.5 CA + 0.5 EA - 0.5 ZA <= 0
11 B_EST_1) - 0.6 EB + 0.4 MB + 0.4 ZB <= 0
12 B_EST_2) - 0.4 EB + 0.6 MB + 0.6 ZB >= 0
13 B_MNG) 0.3 EB - 0.7 MB + 0.3 ZB <= 0
14 B_ZNC) 0.7 EB + 0.7 MB - 0.3 ZB >= 0
15 MAX_YSA) YSA <= 1000
16 MAX_YSC) YSC <= 2000
Segundo cuatrimestre 2020 33
Ejercicios resueltos 2.2
17 MAX_YEA) YEA <= 3000
18 END
• Resultado:
1 LP OPTIMUM FOUND AT STEP 0
2
3 OBJECTIVE FUNCTION VALUE
4
5 1) 76000.00
6
7 VARIABLE VALUE REDUCED COST
8 CA 400.000000 0.000000
9 EA 0.000000 80.000000
10 ZA 900.000000 0.000000
11 EB 500.000000 0.000000
12 MB 750.000000 0.000000
13 ZB 0.000000 70.000000
14 YSA 1000.000000 0.000000
15 YSC 2000.000000 0.000000
16 YEA 0.000000 25.000000
17
18
19 ROW SLACK OR SURPLUS DUAL PRICES
20 COB) 0.000000 -70.000000
21 EST) 0.000000 -150.000000
22 MNG) 150.000000 0.000000
23 ZNC) 0.000000 -70.000000
24 A_COB) 640.000000 0.000000
25 A_EST) 390.000000 0.000000
26 A_ZNC) 250.000000 0.000000
27 B_EST_1) 0.000000 150.000000
28 B_EST_2) 250.000000 0.000000
29 B_MNG) 375.000000 0.000000
30 B_ZNC) 875.000000 0.000000
31 MAX_YSA) 0.000000 40.000000
32 MAX_YSC) 0.000000 18.000000
33 MAX_YEA) 3000.000000 0.000000
34
35 NO. ITERATIONS= 0
36
37
38 RANGES IN WHICH THE BASIS IS UNCHANGED:
39
40 OBJ COEFFICIENT RANGES
41 VARIABLE CURRENT ALLOWABLE ALLOWABLE
42 COEF INCREASE DECREASE
43 CA 70.000000 500.000000 70.000000
44 EA 70.000000 80.000000 INFINITY
45 ZA 70.000000 125.000000 59.999996
46 EB 60.000000 500.000000 80.000000
47 MB 60.000000 333.333313 53.333332
48 ZB 60.000000 70.000000 INFINITY
49 YSA -10.000000 INFINITY 40.000000
50 YSC -40.000000 INFINITY 18.000000
51 YEA -50.000000 25.000000 INFINITY
52
53 RIGHTHAND SIDE RANGES
54 ROW CURRENT ALLOWABLE ALLOWABLE
55 RHS INCREASE DECREASE
56 COB 0.000000 400.000000 500.000000
57 EST 0.000000 500.000000 100.000000
58 MNG 0.000000 150.000000 INFINITY
Segundo cuatrimestre 2020 34
Ejercicios resueltos 2.2
59 ZNC 0.000000 500.000000 INFINITY
60 A_COB 0.000000 640.000000 INFINITY
61 A_EST 0.000000 390.000000 INFINITY
62 A_ZNC 0.000000 INFINITY 250.000000
63 B_EST_1 0.000000 60.000000 166.666672
64 B_EST_2 0.000000 250.000000 INFINITY
65 B_MNG 0.000000 INFINITY 375.000000
66 B_ZNC 0.000000 875.000000 INFINITY
67 MAX_YSA 1000.000000 INFINITY 999.999939
68 MAX_YSC 2000.000000 INFINITY 2000.000000
69 MAX_YEA 3000.000000 INFINITY 3000.000000
8. Informe de la solución óptima
Existe una región factible donde se cumplen todas las restricciones. Para ayudar a Compani, habría
que determinar los valores de venta de las aleaciones para encontrar la o las soluciones óptimas.
Correcciones
Calificación general: Bien +
Análisis: Excelente
El análisis que presentás es un resumen del enunciado, pero el diagrama que hiciste para las
variables es un excelente análisis: me quedo con el diagrama.
Objetivo: Muy Bien
La idea del objetivo está bien, pero se puede mejorar la redacción. Para formalizarlo adecuada-
mente, recordá utilizar siempre la estructura "Determinar xxxx, para maximizar/minimizar yyyy,
durante zzzz).
Hipótesis: Excelente
Las hipótesis están bien, tienen sentido y ayudan a acotar el modelo. Las hipótesis de “certeza”,
“proporcionalidad”, “divisibilidad” y “aditividad” están correctamente contempladas.
Variables: Excelente
La identificación de las variables principales es correcta, y guarda coherencia con el objetivo que
planteaste. También es positivo que hayas indicado las unidades.
Modelo: Muy Bien
Las restricciones de apertura de los metales de las minas son correctas. Las restricciones de
composición de las aleaciones están bien, pero permiten la producción de aleación A con un solo
metal. La función objetivo es correcta y guarda coherencia con el objetivo definido. Las unidades
Segundo cuatrimestre 2020 35
Ejercicios resueltos 2.2
cierran perfectamente. No hay restricciones redundantes. Las restricciones están claramente
identificadas.
Resolución por so�ware: Bien
La resolución presenta un resultado coherente. Están incluidos el modelo y la salida del so�ware.
Informe de solución: Mal
El informe que entregás carece de contenido.
Presentación: Muy Bien
El documento entregado es claro, y las secciones están claramente separadas. Incluye carátula e
índice. Podrías incluir también numeración de páginas. De paso, te va a servir también para las
entregas del TP.
Segundo cuatrimestre 2020 36
Ejercicios resueltos 2.3
2.3
1. Enunciado
Tu grupo de Modelos I quiere entrar al negocio de los dulces. Se está considerando producir dos tipos
de dulces: Candy y Sweety, que se componen solamente de azúcar, nueces y chocolate.
Actualmente se cuenta con 100 kg. de azúcar, 20 kg. de nueces y 30 kg. de chocolate.
La mezcla para producir Candy tiene que contener por lo menos un 20% de nueces.
La mezcla para producir Sweety tiene que contener por lo menos un 10% de nueces y por lo menos un
10% de chocolate.
Cada kg. de mezcla de Candy se vende a 25 pesos y cada kg. de mezcla de Sweety se vende a 20
pesos.
¿Qué es lo mejor que se puede hacer con los datos disponibles?
2. Análisis de la situación problemática
Se trata de un problema de producción con mezclas, con tres tipos de materia prima para fabricar dos
productos distintos.
3. Objetivo
Determinar la cantidad de azúcar, nueces y chocolate para utilizar en las mezclas de Candy y Sweety
para maximizar la ganancia por ventas en el periodo de los datos.
Segundo cuatrimestre 2020 37
Ejercicios resueltos 2.3
4. Hipótesis y supuestos
• La producción es indistinguible, sin importar cómo está compuesta la mezcla.
• Se vende todo lo que se produce.
• El precio de venta es proporcional a la cantidad vendida.
• Se puede fabricar cantidades arbitrariamente pequeñas de producto.
• Se puede producir Sweety y Candy con cualquier proporción de la materia prima indicada, con
tal de respetar los porcentajes indicados por los datos.
• No hace falta que las mezclas de Sweety y Cando estén compuestos por los tres tipos de materia
prima.
• La mezcla es aditiva.
• No hay fallas de producción ni desperdicio.
• No hay otras restricciones además de las indicadas por los datos.
5. Definición de variables
Las variablesde decisión son:
• Mi,j : Kilos de materia prima i utilizados para la fabricación de producto j.
– Donde i ∈MAT = {Azucar,Nueces, Chocolate}.
– Donde j ∈ PROD = {Candy, Sweety}.
También se definen las siguientes variables:
• Pj : Kilos de producto j a fabricar.
6. Modelo de programación lineal
Se considera la cantidad limitada de cada tipo de materia prima.
• Azucar:
MAzucar,Candy +MAzucar,Sweety ≤ 100kg
• Nueces:
MNueces,Candy +MNueces,Sweety ≤ 20kg
• Chocolate:
MChocolate,Candy +MChocolate,Sweety ≤ 30kg
Segundo cuatrimestre 2020 38
Ejercicios resueltos 2.3
Se vinculan las variables de producto P y de materia primaM :
∀ j ∈ PROD : Pj =
∑
i∈MAT
Mi,j
La mezcla de Candy tiene que contener por lo menos un 20% de nueces:
PCandy · 0.20 ≤MNueces,Candy
La mezcla de Sweety tiene que contener por lo menos un 10% de nueces y un 10% de chocolate:
PSweety · 0.10 ≤MNueces,Sweety
PSweety · 0.10 ≤MChocolate,Sweety
Finalmente, el funcional a maximizar:
MAX Z = 25$
kg
· PCandy +
20$
kg
· PSweety
7. Resolución por so�ware
El modelo en GLPK es:
1 set MAT;
2 set PROD;
3
4 var M{i in MAT, j in PROD} >= 0;
5 var P{j in PROD} >= 0;
6
7 s.t. LIMITE_AZUCAR: M['AZUCAR', 'CANDY'] + M['AZUCAR', 'SWEETY'] <= 100;
8 s.t. LIMITE_NUECES: M['NUECES', 'CANDY'] + M['NUECES', 'SWEETY'] <= 20;
9 s.t. LIMITE_CHOCOLATE: M['CHOCOLATE', 'CANDY'] + M['CHOCOLATE', 'SWEETY'] <= 30;
10
11 s.t. VINCULACION_PROD{j in PROD}: P[j] = sum{i in MAT} M[i, j];
12
13 s.t. PROP_NUECES_CANDY: P['CANDY'] * 0.2 <= M['NUECES', 'CANDY'];
14 s.t. PROP_NUECES_SWEETY: P['SWEETY'] * 0.1 <= M['NUECES', 'SWEETY'];
15 s.t. PROP_CHOCOLATE_SWEETY: P['SWEETY'] * 0.1 <= M['CHOCOLATE', 'SWEETY'];
16
17 maximize z: 25 * P['CANDY'] + 20 * P['SWEETY'];
18
19 data;
20
21 set MAT := 'AZUCAR' 'NUECES' 'CHOCOLATE';
22 set PROD := 'CANDY' 'SWEETY';
Y su resolución:
1 Problem: 2
2 Rows: 9
Segundo cuatrimestre 2020 39
Ejercicios resueltos 2.3
3 Columns: 8
4 Non-zeros: 22
5 Status: OPTIMAL
6 Objective: z = 3250 (MAXimum)
7
8 No. Row name St Activity Lower bound Upper bound Marginal
9 ------ ------------ -- ------------- ------------- ------------- -------------
10 1 LIMITE_AZUCAR
11 NU 100 100 15
12 2 LIMITE_NUECES
13 NU 20 20 65
14 3 LIMITE_CHOCOLATE
15 NU 30 30 15
16 4 VINCULACION_PROD[CANDY]
17 NS 0 -0 = 15
18 5 VINCULACION_PROD[SWEETY]
19 NS 0 -0 = 15
20 6 PROP_NUECES_CANDY
21 NU 0 -0 50
22 7 PROP_NUECES_SWEETY
23 NU 0 -0 50
24 8 PROP_CHOCOLATE_SWEETY
25 B -20 -0
26 9 z B 3250
27
28 No. Column name St Activity Lower bound Upper bound Marginal
29 ------ ------------ -- ------------- ------------- ------------- -------------
30 1 M[AZUCAR,SWEETY]
31 B 60 0
32 2 M[AZUCAR,CANDY]
33 B 40 0
34 3 M[NUECES,SWEETY]
35 B 10 0
36 4 M[NUECES,CANDY]
37 B 10 0
38 5 M[CHOCOLATE,SWEETY]
39 B 30 0
40 6 M[CHOCOLATE,CANDY]
41 NL 0 0 < eps
42 7 P[CANDY] B 50 0
43 8 P[SWEETY] B 100 0
44
45 Karush-Kuhn-Tucker optimality conditions:
46
47 KKT.PE: max.abs.err = 0.00e+00 on row 0
48 max.rel.err = 0.00e+00 on row 0
49 High quality
50
51 KKT.PB: max.abs.err = 0.00e+00 on row 0
52 max.rel.err = 0.00e+00 on row 0
53 High quality
54
55 KKT.DE: max.abs.err = 0.00e+00 on column 0
56 max.rel.err = 0.00e+00 on column 0
57 High quality
58
59 KKT.DB: max.abs.err = 0.00e+00 on row 0
60 max.rel.err = 0.00e+00 on row 0
61 High quality
62
63 End of output
Segundo cuatrimestre 2020 40
Ejercicios resueltos 2.3
8. Informe de la solución óptima
Para obtener una ganancia por venta de producción de $3250, se deben producir:
• 50kg de Candy, utilizando 40kg de azucar y 10kg de nueces.
• 100kg de Sweety, utilizando 60kg de azucar, 10kg de nueces y 30kg de chocolate.
Se puede observar que se respeta las proporciones necesarias indicadas por los datos y las hipótesis.
Segundo cuatrimestre 2020 41
Ejercicios resueltos 2.5
2.5
1. Enunciado
“Takayama”, una tintorería textil cuenta con dos tipos de Estampadoras: Rápidas y Lentas. Dispone de
70 estampadoras Rápidas y 60 Lentas.
Aclaremos que estampar consiste en imprimir dibujos con colores sobre tela cruda, de modo que el
rollo de tela cruda va pasando por la estampadora y ésta le va imprimiendo el dibujo con los colores y
formas seleccionados.
Takayama ha tomado dos trabajos para hacer: Dibujo Snoopy y Dibujo Scooby. Cada uno de estos
estampados se puede hacer en una máquina de cualquiera de los dos tipos, sólo que la eficiencia será
distinta según el tipo. Una máquina Rápida estampa R m. de dibujo Snoopy por hora. Una máquina
Lenta estampa 2 m. de dibujo Snoopy por hora. Una máquina Rápida estampa 7 m. de dibujo Scooby
por hora. Una máquina Lenta estampa L metros de dibujo Scooby por hora. Una misma estampadora
(sea Rápida o Lenta) no puede destinarse en el mismo día a trabajar en dos tipos distintos de dibujo.
Cada metro de tela Snoopy se vende a $K y un metro de tela Scooby se vende a $M.
Para mañana le han pedido a Takayama que entregue 10000 metros de tela Snoopy y 9000 metros de
Scooby. Tiene todo el día de hoy (ocho horas) para trabajar.
¿Qué es lo mejor que puede hacer con la información disponible?
2. Análisis de la situación problemática
Se trata de un problema de planificación de producción. A cada una de las máquinas se les puede
asignar dos posibles trabajos, resultando en diferentes tiempos de producción.
Segundo cuatrimestre 2020 42
Ejercicios resueltos 2.5
3. Objetivo
Determinar cuántas máquinas de cada tipo destinar a la fabricación de los dos tipos de estampados
para maximizar la ganancia del día.
4. Hipótesis y supuestos
• La demanda indicada es una demanda mínima, y se vende (al precio correspondiente) toda
producción que supere dichos números.
• No hay fallas, interrupciones ni pérdidas en la producción.
• Los estampados hechos por máquinas de distintos tipos son indistinguibles entre sí.
• No hay restricciones financieras, de mano de obra, físicas o de materia prima.
• El precio de venta es proporcional a la cantidad vendida.
• Los tiempos de producción son exactos.
• No hay stock inicial.
5. Definición de variables
Las variables de control son:
• Mi,j [maq/dia] [entera]: Cantidad de máquinas i destinadas a la producción de estampados j
durante el día.
– Donde i ∈MAQUINAS = {Rapida, Lenta}
– Donde j ∈ ESTAMPADOS = {Snoopy, Scooby}
También se definen las siguientes variables:
• Pj [m/dia]: Cantidad de metros de estampado j fabricado durante el día.
6. Modelo de programación lineal
Solo se dispone de 70 máquinas rápidas y 60 lentas.
MRapida,Snoopy +MRapida,Scooby ≤
70maq
dia
MLenta,Snoopy +MLenta,Scooby ≤
60maq
dia
Segundo cuatrimestre 2020 43
Ejercicios resueltos 2.5
Vinculación de la producción de estampados con las máquinas utilizadas:
PSnoopy =
(
Rm
maq · hora
·MRapida,Snoopy +
2m
maq · hora
·MLenta,Snoopy
)
· 8horas
dia
PScooby =
( 7m
maq · hora
·MRapida,Scooby +
Lm
maq · hora
min ·MLenta,Scooby
)
· 8horas
dia
La demanda mínima de cada tipo de estampado:
10000m
dia
≤ PSnoopy
9000m
dia
≤ PScooby
Finalmente, el funcional a maximizar:
MAX Z = K$
m
· PSnoopy +
M$
m
· PScooby
7. Resolución por so�ware
El modelo en GLPK, fijando los valores de las constantes, es el siguiente:
1 param R := 10;
2 param L := 4;
3 param K := 3;
4 param M := 6;
5
6 var M_RAPIDA_SNOOPY >= 0, integer;
7 var M_RAPIDA_SCOOBY >= 0, integer;
8 var M_LENTA_SNOOPY >= 0, integer;
9 var M_LENTA_SCOOBY >= 0, integer;
10
11 var P_SNOOPY >= 0;
12 var P_SCOOBY >= 0;
13
14 s.t. MAX_RAPIDAS: M_RAPIDA_SNOOPY + M_RAPIDA_SCOOBY <= 70;
15 s.t. MAX_LENTAS: M_LENTA_SNOOPY + M_LENTA_SCOOBY <= 60;
16
17 s.t. VINCULACION_SNOOPY: P_SNOOPY = (R * M_RAPIDA_SNOOPY + 2 * M_LENTA_SNOOPY) * 8;
18 s.t. VINCULACION_SCOOBY: P_SCOOBY = (7 * M_RAPIDA_SCOOBY + L * M_LENTA_SCOOBY) * 8;
19
20 s.t. DEMANDA_MINIMA_SNOOPY: 10000 <= P_SNOOPY;
21 s.t. DEMANDA_MINIMA_SCOOBY: 9000 <= P_SCOOBY;
22
23 maximize z: K * P_SNOOPY + M * P_SCOOBY;
Y su resolución:
1 Problem: 2
2 Rows: 7
3 Columns: 6 (4 integer, 0 binary)
Segundo cuatrimestre 2020 44
Ejercicios resueltos 2.5
4 Non-zeros: 14
5 Status: INTEGER EMPTY
6 Objective:z = 0 (MAXimum)
7
8 No. Row name Activity Lower bound Upper bound
9 ------ ------------ ------------- ------------- -------------
10 1 MAX_RAPIDAS 0 70
11 2 MAX_LENTAS 0 60
12 3 VINCULACION_SNOOPY
13 0 -0 =
14 4 VINCULACION_SCOOBY
15 0 -0 =
16 5 DEMANDA_MINIMA_SNOOPY
17 0 -10000
18 6 DEMANDA_MINIMA_SCOOBY
19 0 -9000
20 7 z 0
21
22 No. Column name Activity Lower bound Upper bound
23 ------ ------------ ------------- ------------- -------------
24 1 M_RAPIDA_SNOOPY
25 * 0 0
26 2 M_RAPIDA_SCOOBY
27 * 0 0
28 3 M_LENTA_SNOOPY
29 * 0 0
30 4 M_LENTA_SCOOBY
31 * 0 0
32 5 P_SNOOPY 0 0
33 6 P_SCOOBY 0 0
34
35 Integer feasibility conditions:
36
37 KKT.PE: max.abs.err = 0.00e+00 on row 0
38 max.rel.err = 0.00e+00 on row 0
39 High quality
40
41 KKT.PB: max.abs.err = 1.00e+04 on row 5
42 max.rel.err = 1.00e+00 on row 5
43 SOLUTION IS INFEASIBLE
44
45 End of output
8. Informe de la solución óptima
Suponiendo que las constantes R y L tienen valores aptos para sus tipos de máquinas, el modelo
no tendrá solución. Es decir que no es posible producir los suficientes metros de estampados para
cumplir la demanda.
Para que el modelo tenga solución se podrían conseguir más máquinas, o bien bajar la demanda
mínima.
Segundo cuatrimestre 2020 45
Ejercicios resueltos 2.7
2.7
1. Enunciado
“Tasmania”, una empresa de muñecos de peluche, quiere planificar la producción de sus famosos
muñecos de para los próximos dos meses. Fabricar un muñequito les insume 2 horas máquina y 1,5 kg.
de materia prima. Por mes se puede disponer de 150 kilos de materia prima y de M horas máquina. El
primer mes se comprometió a entregar 70 muñequitos y el segundo mes el compromiso asciende a
110 muñequitos. Puede vender más de lo comprometido, pero no menos. Cada muñequito vendido le
reporta una ganancia de $P.
¿Qué es lo mejor que puede hacer “Tasmania” con la información disponible?
2. Análisis de la situación problemática
Se trata de un problema de planificación de ventas con recursos limitantes y varios periodos.
Cada muñeco necesita un tiempo de máquina y materia prima para su producción. La diferencia entre
los dos periodos son la demanda mínima a cumplir.
3. Objetivo
Determinar la cantidad de muñecos a producir y vender en cada mes para cumplir con la demanda
mínima y maximizar la ganancia.
4. Hipótesis y supuestos
• No hay defectos de producción.
• No hay defectos al usar la máquina o en la materia prima.
• No hay stock inicial en el primer mes.
• En el último mes se puede vender todo el stock restante.
• Se vende todo lo que se produce en el mes.
• No hay inflación ni variación de precios.
• No hay límites físicos de almacenamiento de productos.
• Se pueden dejar muñecos por medio hacer.
• No hay restricciones de mano de obra ni financieras.
• El consumo de los recursos es directamente proporcional a la cantidad fabricada.
Segundo cuatrimestre 2020 46
Ejercicios resueltos 2.7
• La constanteM , que representa las horas máquina por mes, no será mayor que la cantidad de
horas de ese mes.
• La materia prima no utilizada en un mes se puede utilizar en el siguiente.
• Las horas máquina no utilizadas en un mes no se pueden utilizar en el siguiente (por ser un
servicio).
5. Definición de variables
• Pi: Muñecos producidos en el mes i.
• Vi: Muñecos vendidos en el mes i.
6. Modelo de programación lineal
La función a maximizar será:
Z = (V1 + V2) ∗
P$
muñeco
La restricción de ventas mínimas por mes:
V1 ≥ 70
V2 ≥ 110
La restricción del stock disponible por mes:
V1 ≤ P1
V2 ≤ P2 + (P1 − V1)
La restricción de producción: - Materia prima primer mes:
150kg
mes
≥ 1.5kg
muñecoP1
- Materia prima segundo mes:
300kg
mes
− 1.5kg
muñecoP1 ≥
1.5kg
muñecoP2
- Horas máquina primer mes:
Mhr
mes
≥ 2hr
muñecoP1
Segundo cuatrimestre 2020 47
Ejercicios resueltos 2.7
- Horas máquina segundo mes:
Mhr
mes
≥ 2hr
muñecoP2
7. Resolución por so�ware
Para encontrar una solución, asigno un valor a las constantes P yM : - P = 30 -M = 180
El modelo en GLPK será:
1 /* Variables */
2 var P1 >= 0;
3 var P2 >= 0;
4 var V1 >= 0;
5 var V2 >= 0;
6
7 /* Funcional */
8 maximize z: (V1 + V2) * 30;
9
10 /* Restricciones */
11 s.t. VentasMes1Min: V1 >= 70;
12 s.t. VentasMes2Min: V2 >= 110;
13
14 s.t. StockMes1: V1 <= P1;
15 s.t. StockMes2: V2 <= P2 + (P1 - V1);
16
17 s.t. MateriaPrimaMes1: 150 >= 1.5 * P1;
18 s.t. MateriaPrimaMes2: 300 - 1.5 * P1 >= 1.5 * P2;
19 s.t. HorasMaquinaMes1: 180 >= 2 * P1;
20 s.t. HorasMaquinaMes2: 180 >= 2 * P2;
El resultado:
1 Problem: 2
2 Rows: 9
3 Columns: 4
4 Non-zeros: 15
5 Status: OPTIMAL
6 Objective: z = 5400 (MAXimum)
7
8 No. Row name St Activity Lower bound Upper bound Marginal
9 ------ ------------ -- ------------- ------------- ------------- -------------
10 1 z B 5400
11 2 VentasMes1Min
12 B 70 70
13 3 VentasMes2Min
14 NL 110 110 < eps
15 4 StockMes1 B -20 -0
16 5 StockMes2 NU 0 -0 30
17 6 MateriaPrimaMes1
18 B -135 -150
19 7 MateriaPrimaMes2
20 B -270 -300
21 8 HorasMaquinaMes1
22 NL -180 -180 -15
23 9 HorasMaquinaMes2
24 NL -180 -180 -15
25
26 No. Column name St Activity Lower bound Upper bound Marginal
27 ------ ------------ -- ------------- ------------- ------------- -------------
Segundo cuatrimestre 2020 48
Ejercicios resueltos 2.7
28 1 P1 B 90 0
29 2 P2 B 90 0
30 3 V1 B 70 0
31 4 V2 B 110 0
32
33 Karush-Kuhn-Tucker optimality conditions:
34
35 KKT.PE: max.abs.err = 0.00e+00 on row 0
36 max.rel.err = 0.00e+00 on row 0
37 High quality
38
39 KKT.PB: max.abs.err = 0.00e+00 on row 0
40 max.rel.err = 0.00e+00 on row 0
41 High quality
42
43 KKT.DE: max.abs.err = 0.00e+00 on column 0
44 max.rel.err = 0.00e+00 on column 0
45 High quality
46
47 KKT.DB: max.abs.err = 0.00e+00 on row 0
48 max.rel.err = 0.00e+00 on row 0
49 High quality
50
51 End of output
8. Informe de la solución óptima
La solución óptima dependerá de la cantidad de horas máquina por mes. - SiM < 180, el modelo
será incompatible por no llegar a producir suficientes muñecos en ambos meses. - Si 180 ≤M < 200,
el modelo tendrá solución óptima, siendo las horas máquina por mes la restricción limitante. - Si
200 ≤M , el modelo tendrá solución óptima, siendo la materia prima la restricción limitante.
Correcciones
Buenas tardes Javier, Te dejo nuestras impresiones sobre la entrega. Saludos PC
Buen objetivo
Interesante la opción de guardar materia prima.
Bien el modelo y la resolución y muy completo el informe de la solución
Segundo cuatrimestre 2020 49
Ejercicios resueltos 2.10
2.10
1. Enunciado
Un amigo florista se dedica a comprar flores al por mayor en un mercado. Con esas flores arma ramos
que vende al público. Los precios actuales, por cada atado de flores (así como la cantidad de flores por
atado), son los siguientes:
Los ramos que arma el florista son una creación propia. Tiene siete tipos de ramos, y para cada uno
definió una composición (en términos de cuántas flores de cada tipo necesita para armar un ramo
de cada tipo) y estudió cuál puede ser la demanda máxima diaria. Eso se muestra en el siguiente
cuadro:
¿Qué es lo mejor que puede hacer el florista con la información disponible?
Segundo cuatrimestre 2020 50
Ejercicios resueltos 2.10
2. Análisis de la situación problemática
Se trata de un problema de planificación de producción con demanda máxima y costo de materia
prima.
Hay cuatro productos que necesitan solo un tipo de flor para su producción. Para la producción de
ramos chicos se utilizan crisantemos y margaritas, mientras que los ramos medianos y grandes utilizan
estos dos y alguna de las rosas. Al plantear el modelo, hay que considerar cuáles son las rosas que se
utilizan para estos ramos y cuáles no.
3. Objetivo
Determinar la cantidad de los distintos tipos de ramos producir, considerando también las distintas
formas de armar los ramos, para maximizar la ganancia diaria.
Segundo cuatrimestre 2020 51
Ejercicios resueltos 2.10
4. Hipótesis y supuestos
• No hay límite de stock del mercado de flores.
• Las flores compradas del mercado son indistinguibles entre si, y siempre son utilizables.• Los ramos producidos son indistinguibles entre si, independiente de cómo fueron formados.
• Se puede comprar atados parciales.
• Se vende todo lo que se produce en el día, con tal de que esté debajo de la demanda máxima
estimada.
• La demanda máxima para cada ramo no varía.
• No hay restricciones de mano de obra ni financieras.
• El consumo de los recursos es directamente proporcional a la cantidad fabricada.
• No hay inflación ni variación de precios.
• No hay límites físicos de almacenamiento de productos.
5. Definición de variables
• Ff,r: Cantidad de flores f destinadas a producir un ramo de r en el día.
– Donde f puede ser: rosas de tallo largoL, rosas amarillasA, rosas rojasR, crisantemosC
o margaritasM .
– Donde r puede ser: rosas tallo largo L, rosas amarillas A, rosas rojas R, crisantemos C,
ramos chicosRC, ramos medianosRM , ramos grandesRG.
6. Modelo de programación lineal
Algunas igualdades para simplificar la función objetivo y las restricciones:
• Pr: Cantidad de ramos r a producir en el día.
PL = FL,L
9flor
ramo
PA = FA,A
7flor
ramo
PR = FR,R
18flor
ramo
PC = FC,C
6flor
ramo
PRC = FC,RC
Segundo cuatrimestre 2020 52
Ejercicios resueltos 2.10
8flor
ramo
PRC = FM,RC
10flor
ramo
PRM = FC,RM
10flor
ramo
PRM = FM,RM
2flor
ramo
PRM = FL,RM + FA,RM + FR,RM
15flor
ramo
PRG = FC,RG
10flor
ramo
PRG = FM,RG
5flor
ramo
PRG = FL,RG + FA,RG + FR,RG
• Af : Cantidad de atados de f para comprar en el día.
20flor
atado
AL = FL,L + FL,RM + FL,RG
50flor
atado
AA = FA,A + FA,RM + FA,RG
50flor
atado
AR = FR,R + FR,RM + FR,RG
100flor
atado
AC = FC,C + FC,RC + FC,RM + FC,RG
100flor
atado
AM = FM,RC + FM,RM + FM,RG
Con esto, la función objetivo a maximizar será:
Z = 3$
ramo
PL +
10$
ramo
PA +
8$
ramo
PR +
3$
ramo
PC +
2$
ramo
PRC +
4$
ramo
PRM
+ 6$
ramo
PRG −
20$
atado
AL −
20$
atado
AA −
10$
atado
AR −
5$
atado
AC −
3$
atado
AM
Y las restricciones a partir de la demanda estimada:
PL ≤ 650ramos
PA ≤ 350ramos
PR ≤ 250ramos
Segundo cuatrimestre 2020 53
Ejercicios resueltos 2.10
PC ≤ 600ramos
PRC ≤ 1100ramos
PRM ≤ 990ramos
PRG ≤ 625ramos
7. Resolución por so�ware
El modelo en GLPK será:
1 /* Variables */
2
3 /* Rosas de tallo largo */
4 var FLL >= 0;
5 var FLRM >= 0;
6 var FLRG >= 0;
7
8 /* Rosas amarillas */
9 var FAA >= 0;
10 var FARM >= 0;
11 var FARG >= 0;
12
13 /* Rosas rojas */
14 var FRR >= 0;
15 var FRRM >= 0;
16 var FRRG >= 0;
17
18 /* Crisantemos */
19 var FCC >= 0;
20 var FCRC >= 0;
21 var FCRM >= 0;
22 var FCRG >= 0;
23
24 /* Margaritas */
25 var FMRC >= 0;
26 var FMRM >= 0;
27 var FMRG >= 0;
28
29 /* Atados */
30 var AL >= 0;
31 var AA >= 0;
32 var AR >= 0;
33 var AC >= 0;
34 var AM >= 0;
35
36 /* Ramos */
37 var PL >= 0;
38 var PA >= 0;
39 var PR >= 0;
40 var PC >= 0;
41 var PRC >= 0;
42 var PRM >= 0;
43 var PRG >= 0;
44
45 /* Funcional */
46 maximize z: 3*PL + 10*PA + 8*PR + 3*PC + 2*PRC + 4*PRM + 6*PRG - 20*AL - 20*AA - 10*AR -
5*AC - 3*AM;
Segundo cuatrimestre 2020 54
Ejercicios resueltos 2.10
47
48 /* Igualdades */
49 s.t. ProdTaloLargo: PL = FLL;
50 s.t. ProdAmarillas: 9*PA = FAA;
51 s.t. ProdRojas: 7*PR = FRR;
52 s.t. ProdCrisantemos: 18*PC = FCC;
53 s.t. ProdRamoChico_Crisantemos: 6*PRC = FCRC;
54 s.t. ProdRamoChico_Margaritas: 8*PRC = FMRC;
55 s.t. ProdRamoMediano_Crisantemos: 10*PRM = FCRM;
56 s.t. ProdRamoMediano_Margaritas: 10*PRM = FMRM;
57 s.t. ProdRamoMediano_Rosas: 2*PRM = FLRM + FARM + FRRM;
58 s.t. ProdRamoGrande_Crisantemos: 15*PRG = FCRG;
59 s.t. ProdRamoGrande_Margaritas: 10*PRG = FMRG;
60 s.t. ProdRamoGrande_Rosas: 5*PRG = FLRG + FARG + FRRG;
61
62 s.t. CompraAtadoTaloLargo: 20*AL = FLL + FLRM + FLRG;
63 s.t. CompraAtadoAmarillas: 50*AA = FAA + FARM + FARG;
64 s.t. CompraAtadoRojas: 50*AR = FRR + FRRM + FRRG;
65 s.t. CompraAtadoCrisantemos: 100*AC = FCC + FCRC + FCRM + FCRG;
66 s.t. CompraAtadoMargaritas: 100*AM = FMRC + FMRM + FMRG;
67
68 /* Restricciones */
69 s.t. DemandaTaloLargo: PL <= 650;
70 s.t. DemandaAmarillas: PA <= 350;
71 s.t. DemandaRojas: PR <= 250;
72 s.t. DemandaCrisantemos: PC <= 600;
73 s.t. DemandaRamoChico: PRC <= 1100;
74 s.t. DemandaRamoMediano: PRM <= 990;
75 s.t. DemandaRamoGrande: PRG <= 625;
76
77 end;
La solución al problema:
1 Problem: 2
2 Rows: 25
3 Columns: 28
4 Non-zeros: 68
5 Status: OPTIMAL
6 Objective: z = 13296.75 (MAXimum)
7
8 No. Row name St Activity Lower bound Upper bound Marginal
9 ------ ------------ -- ------------- ------------- ------------- -------------
10 1 z B 13296.8
11 2 ProdTaloLargo
12 NS 0 -0 = 1
13 3 ProdAmarillas
14 NS 0 -0 = 0.4
15 4 ProdRojas NS 0 -0 = 0.2
16 5 ProdCrisantemos
17 NS 0 -0 = 0.05
18 6 ProdRamoChico_Crisantemos
19 NS 0 -0 = 0.05
20 7 ProdRamoChico_Margaritas
21 NS 0 -0 = 0.03
22 8 ProdRamoMediano_Crisantemos
23 NS 0 -0 = 0.05
24 9 ProdRamoMediano_Margaritas
25 NS 0 -0 = 0.03
26 10 ProdRamoMediano_Rosas
27 NS 0 -0 = 0.2
28 11 ProdRamoGrande_Crisantemos
29 NS 0 -0 = 0.05
30 12 ProdRamoGrande_Margaritas
Segundo cuatrimestre 2020 55
Ejercicios resueltos 2.10
31 NS 0 -0 = 0.03
32 13 ProdRamoGrande_Rosas
33 NS 0 -0 = 0.2
34 14 CompraAtadoTaloLargo
35 NS 0 -0 = -1
36 15 CompraAtadoAmarillas
37 NS 0 -0 = -0.4
38 16 CompraAtadoRojas
39 NS 0 -0 = -0.2
40 17 CompraAtadoCrisantemos
41 NS 0 -0 = -0.05
42 18 CompraAtadoMargaritas
43 NS 0 -0 = -0.03
44 19 DemandaTaloLargo
45 NU 650 650 2
46 20 DemandaAmarillas
47 NU 350 350 6.4
48 21 DemandaRojas NU 250 250 6.6
49 22 DemandaCrisantemos
50 NU 600 600 2.1
51 23 DemandaRamoChico
52 NU 1100 1100 1.46
53 24 DemandaRamoMediano
54 NU 990 990 2.8
55 25 DemandaRamoGrande
56 NU 625 625 3.95
57
58 No. Column name St Activity Lower bound Upper bound Marginal
59 ------ ------------ -- ------------- ------------- ------------- -------------
60 1 FLL B 650 0
61 2 FLRM NL 0 0 -0.8
62 3 FLRG NL 0 0 -0.8
63 4 FAA B 3150 0
64 5 FARM NL 0 0 -0.2
65 6 FARG NL 0 0 -0.2
66 7 FRR B 1750 0
67 8 FRRM B 1980 0
68 9 FRRG B 3125 0
69 10 FCC B 10800 0
70 11 FCRC B 6600 0
71 12 FCRM B 9900 0
72 13 FCRG B 9375 0
73 14 FMRC B 8800 0
74 15 FMRM B 9900 0
75 16 FMRG B 6250 0
76 17 AL B 32.5 0
77 18 AA B 63 0
78 19 AR B 137.1 0
79 20 AC B 366.75 0
80 21 AM B 249.5 0
81 22 PL B 650 0
82 23 PA B 350 0
83 24 PR B 250 0
84 25 PC B 600 0
85 26 PRC B 1100 0
86 27 PRM B 990 0
87 28 PRG B 625 0
88
89 Karush-Kuhn-Tucker optimality conditions:
90
91 KKT.PE: max.abs.err = 0.00e+00 on row 0
92 max.rel.err = 0.00e+00 on row 0
93 High quality
94
Segundo cuatrimestre 2020 56
Ejercicios resueltos 2.10
95 KKT.PB: max.abs.err = 0.00e+00 on row 0
96 max.rel.err = 0.00e+00 on row 0
97 High quality
98
99 KKT.DE: max.abs.err = 5.55e-17 on column 7
100 max.rel.err = 3.97e-17 on column 7
101 High quality
102
103 KKT.DB: max.abs.err = 0.00e+00 on row 0
104 max.rel.err = 0.00e+00 on row 0
105 High quality
106
107 End of output
8. Informe de la solución óptima
Para obtener una ganancia de $13296.75, se deben comprar atados hasta llegar a la demanda máxima
de cada ramo. Luego para los ramos medianos y grandes deberían usarse rosas rojas, ya que el atado
de esta son las más baratas por flor.
Correcciones
Análisis y objetivo: Muy buenos, sólo marco que en vez de hablar de “producción” podríamos
hablar de “armado”
Hipótesis: Lo marcaste en el análisis, lo hiciste así en el modelo, pero falta explicitar la idea de que
se puede usar cualquier tipo de rosas para los ramos medianos y grandes, porque el enunciado
es ambiguo.
Muy bien planteado y resuelto el modelo. Ojo con declarar variables en la sección (el modelo
en sí), por más que sean auxiliares deberían estar bajo la definición de variables, en la sección
anterior.
Segundo cuatrimestre 2020 57
Ejercicios resueltos 2.16
2.16
1. Enunciado
Una empresa vende un único producto. Para planificar y organizar la producción del mismo cuenta
con un pronóstico trimestral de ventas para el año próximo. La demanda de un trimestre puede ser
satisfecha con unidades producidas en el mismo trimestre o con unidades producidas en trimestres
anteriores. La capacidad de almacenamiento está limitadaa 5.000 unidades de producto.
La producción programada para el cuarto trimestre del corriente año es de 6.000 unidades y se quiere
que el nivel de inventarios a fin del año próximo sea de 1.000 unidades.
Incrementar en una unidad la capacidad productiva, de un trimestre a otro, cuesta 1$/unidad y
disminuir en una unidad la capacidad productiva, de un trimestre a otro, cuesta 0.50 $/unidad.
El pronóstico trimestral para el año próximo es el que se indica a continuación:
Trimestre Pronóstico de Ventas (unidades)
1° 9.000
2° 24.000
3° 20.000
4° 7.000
Se quiere definir el programa de producción trimestral que haga mínimo el costo de variaciones del
nivel de producción y que asegure un stock suficiente para satisfacer las cantidades pronosticadas de
ventas.
Segundo cuatrimestre 2020 58
Ejercicios resueltos 2.16
2. Análisis de la situación problemática
Se trata de un problema de planificación de producción multiperiodo.
Se debe considerar un mínimo de stock a cumplir por periodo, un costo asociado al variar la producción
entre periodos, una cantidad máxima de almacenamiento, y las condiciones iniciales de stock inicial y
final del año.
3. Objetivo
Determinar la cantidad de producto a producir en cada trimestre del año, cumpliendo con un stock
necesario para las ventas, para minimizar el costo de variación de nivel de producción.
4. Hipótesis y supuestos
• El stock inicial se encuentra en buen estado, y es indistinguible del stock producido del próximo
año.
• La producción de cada trimestre es indistinguible.
• No hay diferencia en los productos al subir o bajar la producción entre trimestres.
• No hay defectos ni fallas de producción.
• Se vende exactamente lo pronosticado en ventas por trimestre.
• La restricción de almacenamiento solo se considera al almacenar el stock no vendido de un
trimestre.
• Se puede dejar un producto a medio hacer para finalizarse el siguiente trimestre.
• El stock al comienzo del año es cero. Es decir, todo el stock producido en el último trimestre del
año anterior fue vendido.
• Se necesitan exactamente 1000 unidades a fin de año.
• No hay restricciones de mano de obra ni financieras.
Segundo cuatrimestre 2020 59
Ejercicios resueltos 2.16
• No hay inflación ni variación de precios.
5. Definición de variables
• Pi [ unidadtrimestre ]: Cantidad de producto a fabricar en el trimestre i.
– Donde i puede ser 1, 2, 3 o 4.
– P0, la producción del último trimestre del año anterior, es dato del enunciado: P0 =
6000 unidadtrimestre
• SFi [ unidadtrimestre ]: Stock a fin del trimestre i. Con i = 0, se trata del stock al comienzo del año.
• Ei [ unidadtrimestre ]: Exceso de diferencia de producción entre el trimestre i y i− 1.
• Di [ unidadtrimestre ]: Defecto de diferencia de producción entre el trimestre i y i− 1.
6. Modelo de programación lineal
Variables para considerar la restricción de cada trimestre: - Vi: Cantidad de producto a vender en el
trimestre i.
V1 = 9000
unidad
trimestre
V2 = 24000
unidad
trimestre
V3 = 20000
unidad
trimestre
V4 = 7000
unidad
trimestre
El stock restante, a partir de los datos e hipótesis:
SF0 = 0unidades
SF4 = 1000unidades
Para cada trimestre i se relaciona la cantidad producida y vendida con el stock restante:
Vi + SFi = Pi + SFi−1
Considerando la capacidad de almacenamiento:
SF1 ≤ 5000
unidad
trimestre
Segundo cuatrimestre 2020 60
Ejercicios resueltos 2.16
SF2 ≤ 5000
unidad
trimestre
SF3 ≤ 5000
unidad
trimestre
SF4 ≤ 5000
unidad
trimestre
Función a minimizar es costo por diferencia de producción entre trimestres. Se usa el dato de la
producción del último trimestre del año pasado:
P0 = 6000
unidad
trimestre
Para distinguir los casos donde la diferencia de producción es positiva o negativa se utilizan las variables
de exceso y defecto:
Ei −Di = Pi − Pi−1
Finalmente, la función a minimizar:
Z = (E1 + E2 + E3 + E4) ·
1$
unidad
+ (D1 +D2 +D3 +D4)
0.5$
unidad
7. Resolución por so�ware
El modelo en GLPK será:
1 /* Variables */
2
3 /* Producción trimestral */
4 var P0 = 6000;
5 var P1 >= 0;
6 var P2 >= 0;
7 var P3 >= 0;
8 var P4 >= 0;
9
10 /* Stock a fin de cada trimestre */
11 var SF0 = 0;
12 var SF1 >= 0;
13 var SF2 >= 0;
14 var SF3 >= 0;
15 var SF4 = 1000;
16
17 /* Exceso de diferencia de producción trimestral */
18 var E1 >= 0;
19 var E2 >= 0;
20 var E3 >= 0;
21 var E4 >= 0;
22
23 /* Defecto de diferencia de producción trimestral */
Segundo cuatrimestre 2020 61
Ejercicios resueltos 2.16
24 var D1 >= 0;
25 var D2 >= 0;
26 var D3 >= 0;
27 var D4 >= 0;
28
29 /* Ventas por trimestre */
30 var V1 = 9000;
31 var V2 = 24000;
32 var V3 = 20000;
33 var V4 = 7000;
34
35
36 /* Restricciones */
37
38 /* Relación ventas y cantidad producida de cada trimestre */
39 s.t. V1 + SF1 = P1 + SF0;
40 s.t. V2 + SF2 = P2 + SF1;
41 s.t. V3 + SF3 = P3 + SF2;
42 s.t. V4 + SF4 = P4 + SF3;
43
44 /* Relación por la diferencia de producción trimestral */
45 s.t. E1 - D1 = P1 - P0;
46 s.t. E2 - D2 = P2 - P1;
47 s.t. E3 - D3 = P3 - P2;
48 s.t. E4 - D4 = P4 - P3;
49
50 /* Funcional */
51 minimize z: (E1 + E2 + E3 + E4) + (D1 + D2 + D3 + D4) * 0.5;
52
53 end;
La solución al problema:
1 Problem: 2
2 Rows: 13
3 Columns: 22
4 Non-zeros: 44
5 Status: OPTIMAL
6 Objective: z = 19250 (MINimum)
7
8 No. Row name St Activity Lower bound Upper bound Marginal
9 ------ ------------ -- ------------- ------------- ------------- -------------
10 1 TRIM1 NS 0 -0 = < eps
11 2 TRIM2 NS 0 -0 = -0.75
12 3 TRIM3 NS 0 -0 = -0.75
13 4 TRIM4 NS 0 -0 = 0.5
14 5 DIFPROD1 NS 0 -0 = 1
15 6 DIFPROD2 NS 0 -0 = 1
16 7 DIFPROD3 NS 0 -0 = 0.25
17 8 DIFPROD4 NS 0 -0 = -0.5
18 9 STOCK1 NU 5000 5000 -0.75
19 10 STOCK2 B 500 5000
20 11 STOCK3 B 0 5000
21 12 STOCK4 B 1000 5000
22 13 z B 19250
23
24 No. Column name St Activity Lower bound Upper bound Marginal
25 ------ ------------ -- ------------- ------------- ------------- -------------
26 1 P0 NS 6000 6000 = -1
27 2 P1 B 14000 0
28 3 P2 B 19500 0
29 4 P3 B 19500 0
30 5 P4 B 8000 0
31 6 SF0 NS 0 0 = < eps
Segundo cuatrimestre 2020 62
Ejercicios resueltos 2.16
32 7 SF1 B 5000 0
33 8 SF2 B 500 0
34 9 SF3 NL 0 0 1.25
35 10 SF4 NS 1000 1000 = -0.5
36 11 E1 B 8000 0
37 12 E2 B 5500 0
38 13 E3 NL 0 0 0.75
39 14 E4 NL 0 0 1.5
40 15 D1 NL 0 0 1.5
41 16 D2 NL 0 0 1.5
42 17 D3 NL 0 0 0.75
43 18 D4 B 11500 0
44 19 V1 NS 9000 9000 = < eps
45 20 V2 NS 24000 24000 = 0.75
46 21 V3 NS 20000 20000 = 0.75
47 22 V4 NS 7000 7000 = -0.5
48
49 Karush-Kuhn-Tucker optimality conditions:
50
51 KKT.PE: max.abs.err = 0.00e+00 on row 0
52 max.rel.err = 0.00e+00 on row 0
53 High quality
54
55 KKT.PB: max.abs.err = 0.00e+00 on row 0
56 max.rel.err = 0.00e+00 on row 0
57 High quality
58
59 KKT.DE: max.abs.err = 0.00e+00 on column 0
60 max.rel.err = 0.00e+00 on column 0
61 High quality
62
63 KKT.DB: max.abs.err = 0.00e+00 on row 0
64 max.rel.err = 0.00e+00 on row 0
65 High quality
66
67 End of output
8. Informe de la solución óptima
Para gastar solo $19250 en el año, se debe producir 14000 unidades en el primer trimestre, 19500 en el
segundo y el tercero, y finalmente 8000 en el cuarto.
Se puede observar que el único punto donde decrece la cantidad de producción es en el último
trimestre, fabricando 11500 unidades menos que el trimestre anterior. Esto se debe principalmente a
las restricción de 5000 unidades de almacenamiento y la restricción que exige 1000 unidades de stock
a fin de año. Para bajar este costo, se podría evaluar la posibilidad de expandir el almacenamiento y/o
admitir más de 1000 unidades de stoc a fin de año.
Correcciones
Calificación General: Muy Bien
Análisis: Muy Bien
Segundo cuatrimestre 2020 63
Ejercicios resueltos 2.16
Identificás correctamente el tipo de problema. El resto es un resumen del enunciado: no está
mal, pero suma poco. Sin embargo, el gráfico es muy bueno y refleja perfectamente tu modelo.
Objetivo: Excelente
El objetivo definido es correcto. Brillante redacción!
Hipótesis: Muy Bien
Las hipótesis están bien, tienen sentido y ayudan a acotar el modelo. Las hipótesis de“certeza”,
“divisibilidad” y “aditividad” están correctamente contempladas. Entre las hipótesis de “propor-
cionalidad”, podrías indicar que el costo de variación del nivel de producción es directamente
proporcional a la cantidad variada.
Variables: Excelente
La identificación de las variables principales es correcta, y guarda coherencia con el objetivo que
planteaste. También es positivo que hayas indicado las unidades.
Modelo: Excelente
Las restricciones y la función objetivo son correctas. El funcional guarda coherencia con el objetivo
definido. Las unidades cierran perfectamente. No hay restricciones redundantes. Las restricciones
están claramente identificadas. Las ecuaciones de stock están correctamente planteadas. Las
metas para establecer las variaciones del nivel de producción son correctas.
Resolución: Excelente
La resolución es correcta, y está incluida la salida del so�ware. Entiendo que el modelo es simple,
y no hace falta incluir la modelización en el so�ware, pero en los próximos ejercicios convendría
que la incluyas.
Informe: Bien
El informe es correcto: está redactado en términos del dominio del problema.
Presentación: Excelente
El documento entregado es claro, y las secciones están claramente separadas. Incluye carátula,
numeración de páginas e índice.
Segundo cuatrimestre 2020 64
Ejercicios resueltos 2.17
2.17
1. Enunciado
El encargado de un supermercado está organizando el trabajo para los próximos días viernes, sábado
y domingo. Cuenta con 18 empleados. Las tareas a realizar cada día son las siguientes: - Reponer
mercadería (viernes, sábado y domingo). - Ordenar mercadería (viernes y domingo). - Marcar códigos
en la mercadería (viernes, sábado y domingo).
Está probado que el personal que cambia de tarea (de un día para otro) aumenta su eficiencia en un
10% (se aburre menos).
La eficiencia normal de un empleado en cada tarea y la tarea total diaria a realizar son:
El personal propio tiene un costo de $12 por día. Sólo cobran los que trabajan. La jornada de trabajo
es de 8 horas.
¿Qué es lo mejor que se puede hacer con la información disponible?
Segundo cuatrimestre 2020 65
Ejercicios resueltos 2.17
2. Análisis de la situación problemática
Se trata de un problema de planificación diaria de mano de obra, con un mínimo de cada tarea a
cumplir cada día.
3. Objetivo
Administrar la cantidad de personal en cada área de cada día para minimizar el costo de los empleados
durante el fin de semana.
4. Hipótesis y supuestos
• El aumento de eficiencia del 10% no se considera si un empleado no trabajó el día anterior.
• El aumento de eficiencia no se vuelve a aplicar más de una vez.
• No hay variación en los datos de tareas a realizar por día.
Segundo cuatrimestre 2020 66
Ejercicios resueltos 2.17
• El costo del empleado diario es el mismo, y no depende del aumento de eficiencia.
• Se puede usar parcialmente el tiempo del empleado.
• La cantidad de tiempo de cada empleado es proporcional a lo que gana.
• No hay costos adicionales.
• La eficiencia de cada empleado es exactamente como indican los datos.
• El valor de las variables A y C es positivo.
5. Definición de variables
• Vt [ empleadodia ]: Cantidad de empleados realizando la tarea t el viernes, donde t puede ser:
Reponer,Ordenar,Marcar oLibre.
• St,p [ empleadodia ]: Cantidad de empleados realizando la tarea t el sábado y que hicieron la tarea p
el viernes.
• Dt,p [ empleadodia ]: Cantidad de empleados realizando la tarea t el domingo y que hicieron la tarea p
el sábado.
6. Modelo de programación lineal
La función a minimizar será el costo del personal que trabajó en cada día:
Z = (VR + VO + VM + SR,R + SR,O + SR,M +DR,R +DR,M +
DR,L +DO,R +DO,M +DO,L +DM,R +DM,M +DM,L) ∗
12$
empleado
Se deben vincular las variables del trabajo del día actual con el trabajo del día anterior. Sea T =
{Reponer,Ordenar,Marcar, Libre}:
• Vinculación variables viernes/sábado:
∀t ∈ T : Vt =
∑
p∈T
Sp,t
• Vinculación variables sábado/domingo:
∀t ∈ T :
∑
p∈T
St,p =
∑
q∈T
Dq,t
Mínimo a realizar por día:
Segundo cuatrimestre 2020 67
Ejercicios resueltos 2.17
• Mínima tarea a realizar el viernes:
VR ∗
15unidad
hora
∗ 8hora >= Aunidad
dia
VO ∗
30unidad
hora
∗ 8hora >= 300unidad
dia
VM ∗
35unidad
hora
∗ 8hora >= 150unidad
dia
• Mínima tarea a realizar el sábado:
(SR,R ∗ 1.1 + SR,O + SR,M ) ∗
15unidad
hora
∗ 8hora
empleado
>= 500unidad
dia
(SM,R + SM,O + SM,M ∗ 1.1) ∗
35unidad
hora
∗ 8hora
empleado
>= 139unidad
dia
• Mínima tarea a realizar el domingo:
(DR,R ∗ 1.1 +DR,M ) ∗
15unidad
hora
∗ 8hora
empleado
>= 350unidad
dia
(DO,R +DO,M ) ∗
30unidad
hora
∗ 8hora
empleado
>= Cunidad
dia
(DM,R +DM,M ∗ 1.1) ∗
35unidad
hora
∗ 8hora
empleado
>= Cunidad
dia
7. Resolución por so�ware
Tomando A := 450 y C := 360, el modelo en GLPK será:
1 /* Parametros */
2 param A := 450;
3 param C := 360;
4 param HORAS := 8;
5
6 /* Variables viernes */
7 var V_R >= 0;
8 var V_O >= 0;
9 var V_M >= 0;
10 var V_L >= 0;
11
12 /* Variables sabado */
13 var S_R_R >= 0;
14 var S_R_O >= 0;
15 var S_R_M >= 0;
16 var S_R_L >= 0;
17
18 var S_M_R >= 0;
19 var S_M_O >= 0;
20 var S_M_M >= 0;
Segundo cuatrimestre 2020 68
Ejercicios resueltos 2.17
21 var S_M_L >= 0;
22
23 var S_L_R >= 0;
24 var S_L_O >= 0;
25 var S_L_M >= 0;
26 var S_L_L >= 0;
27
28 /* Variables domingo */
29 var D_R_R >= 0;
30 var D_R_M >= 0;
31 var D_R_L >= 0;
32
33 var D_O_R >= 0;
34 var D_O_M >= 0;
35 var D_O_L >= 0;
36
37 var D_M_R >= 0;
38 var D_M_M >= 0;
39 var D_M_L >= 0;
40
41 var D_L_R >= 0;
42 var D_L_M >= 0;
43 var D_L_L >= 0;
44
45 /* Restricciones */
46
47 s.t. MAXEMP_V: V_R + V_O + V_M + V_L <= 18;
48 s.t. MAXEMP_S: S_R_R + S_R_O + S_R_M + S_R_L + S_M_R
49 + S_M_O + S_M_M + S_M_L + S_L_R + S_L_O + S_L_M + S_L_L <= 18;
50 s.t. MAXEMP_D: D_R_R + D_R_M + D_R_L + D_O_R + D_O_M
51 + D_O_L + D_M_R + D_M_M + D_M_L + D_L_R + D_L_M + D_L_L <= 18;
52
53 /* Vinculacion tareas viernes/sabado */
54 s.t. VINC_REP_S: V_R = S_R_R + S_M_R + S_L_R;
55 s.t. VINC_ORD_S: V_O = S_R_O + S_M_O + S_L_O;
56 s.t. VINC_MAR_S: V_M = S_R_M + S_M_M + S_L_M;
57 s.t. VINC_LIB_S: V_L = S_R_L + S_M_L + S_L_L;
58
59 /* Vinculacion tareas sabado/domingo */
60 s.t. VINC_REP_D: S_R_R + S_R_O + S_R_M + S_R_L = D_R_R + D_O_R + D_M_R + D_L_R;
61 s.t. VINC_MAR_D: S_M_R + S_M_O + S_M_M + S_M_L = D_R_M + D_O_M + D_M_M + D_L_M;
62 s.t. VINC_LIB_D: S_L_R + S_L_O + S_L_M + S_L_L = D_R_L + D_O_L + D_M_L + D_L_L;
63
64 /* Mínima tarea a realizar el viernes */
65 s.t. MIN_REP_V: V_R * 15 * HORAS >= A;
66 s.t. MIN_ORD_V: V_O * 30 * HORAS >= 300;
67 s.t. MIN_MAR_V: V_M * 35 * HORAS >= 150;
68
69 /* Mínima tarea a realizar el sábado */
70 s.t. MIN_REP_S: (S_R_R * 1.1 + S_R_O + S_R_M) * 15 * HORAS >= 500;
71 s.t. MIN_MAR_S: (S_M_R + S_M_O + S_M_M * 1.1) * 35 * HORAS >= 139;
72
73 /* Mínima tarea a realizar el domingo */
74 s.t. MIN_REP_D: (D_R_R * 1.1 + D_R_M) * 15 * HORAS >= 350;
75 s.t. MIN_ORD_D: (D_O_R + D_O_M) * 30 * HORAS >= C;
76 s.t. MIN_MAR_D: (D_M_R + D_M_M * 1.1) * 35 * HORAS >= C;
77
78 /* Funcional */
79 minimize z: (V_R + V_O + V_M + S_R_R + S_R_O + S_R_M
80 + D_R_R + D_R_M + D_R_L + D_O_R + D_O_M
81 + D_O_L + D_M_R + D_M_M + D_M_L) * 12;
Y su resolución:
Segundo cuatrimestre 2020 69
Ejercicios resueltos 2.17
1 Problem: 2
2 Rows: 19
3 Columns: 28
4 Non-zeros: 98
5 Status: OPTIMAL
6 Objective: z = 175.7727273 (MINimum)
7
8 No. Row name St Activity Lower bound Upper bound Marginal
9 ------ ------------ -- ------------- ------------- ------------- -------------
10 1 MAXEMP_V B 5.53571 18
11 2 MAXEMP_S B 5.53571 18
12 3 MAXEMP_D B 5.53571 18
13 4 VINC_REP_S NS 0 -0 = 1.2
14 5 VINC_ORD_S NS 0 -0 = < eps
15 6 VINC_MAR_S NS 0 -0 = < eps
16 7 VINC_LIB_S NS 0 -0 = < eps
17 8 VINC_REP_D NS 0 -0 = < eps
18 9 VINC_MAR_D NS 0 -0 = < eps
19 10 VINC_LIB_D NS 0 -0 = < eps
20 11 MIN_REP_V NL 450 450 0.09
21 12 MIN_ORD_V NL 300 300 0.05
22 13 MIN_MAR_V NL 150 150 0.0428571
23 14 MIN_REP_S NL 500 500 0.1
24 15 MIN_MAR_S B 435.833 139
25 16 MIN_REP_D NL 350 350 0.0909091
26 17 MIN_ORD_D NL360 360 0.05
27 18 MIN_MAR_D NL 360 360 0.038961
28 19 z B 175.773
29
30 No. Column name St Activity Lower bound Upper bound Marginal
31 ------ ------------ -- ------------- ------------- ------------- -------------
32 1 V_R B 3.75 0
33 2 V_O B 1.25 0
34 3 V_M B 0.535714 0
35 4 V_L B 0 0
36 5 S_R_R B 3.75 0
37 6 S_R_O NL 0 0 < eps
38 7 S_R_M B 0.0416667 0
39 8 S_R_L NL 0 0 < eps
40 9 S_M_R NL 0 0 1.2
41 10 S_M_O B 1.25 0
42 11 S_M_M B 0.27868 0
43 12 S_M_L NL 0 0 < eps
44 13 S_L_R NL 0 0 1.2
45 14 S_L_O NL 0 0 < eps
46 15 S_L_M B 0.215368 0
47 16 S_L_L NL 0 0 < eps
48 17 D_R_R B 2.65152 0
49 18 D_R_M NL 0 0 1.09091
50 19 D_R_L NL 0 0 12
51 20 D_O_R B 1.14015 0
52 21 D_O_M B 0.359848 0
53 22 D_O_L NL 0 0 12
54 23 D_M_R NL 0 0 1.09091
55 24 D_M_M B 1.16883 0
56 25 D_M_L NL 0 0 12
57 26 D_L_R NL 0 0 < eps
58 27 D_L_M NL 0 0 < eps
59 28 D_L_L B 0.215368 0
60
61 Karush-Kuhn-Tucker optimality conditions:
62
63 KKT.PE: max.abs.err = 1.71e-13 on row 17
64 max.rel.err = 2.37e-16 on row 17
Segundo cuatrimestre 2020 70
Ejercicios resueltos 2.17
65 High quality
66
67 KKT.PB: max.abs.err = 0.00e+00 on row 0
68 max.rel.err = 0.00e+00 on row 0
69 High quality
70
71 KKT.DE: max.abs.err = 3.55e-15 on column 7
72 max.rel.err = 2.17e-16 on column 11
73 High quality
74
75 KKT.DB: max.abs.err = 1.73e-15 on column 26
76 max.rel.err = 1.73e-15 on column 26
77 High quality
78
79 End of output
8. Informe de la solución óptima
Bajo los valores elegidos, se gastaría aproximadamente 176$ en los empleados.
Con valores A y C “parecidos” al resto, solo 6 empleados realizarían tareas, dejando a unos 12 sin
trabajar. La cantidad de empleados no es limitante.
Correcciones
El análisis está bien, solamente como aporte agregamos que el problema es de un tipo particular
que es el de rotación de tareas.
En el objetivo más que “administrar” habría que determinar la cantidad de empleados que hacen
cada tarea cada día y qué harán el día siguiente.
¿cómo asegurás que el cambio de eficiencia no se vuelva a aplicar más de una vez? Si alguien
hace tareas distintas viernes, sábado y domingo ¿no se merece el aumento de eficiencia? ¿O la
idea es que no sea acumulativo?
El modelo es correcto, así como la resolución
Segundo cuatrimestre 2020 71
Ejercicios resueltos 2.23
2.23
1. Enunciado
Una empresa fabrica y vende Etolones, Krakos y Sultos. Los fabrica a partir de 3 recursos básicos; Horas
Hombre (HH), Horas Máquina (HM) y Materia Prima (MP).
A continuación se indican los consumos unitarios de cada recurso para los tres productos (en lugar de
mostrar los números los indicamos con letras):
Producto HH HM MP
Etolones E1 E2 E3
Krakos K1 K2 K3
Sultos S1 S2 S3
Se dispone de 2500 HH, 1000 HM y 5000 kg de MP por mes, siendo el costo por unidad de recurso de $5
por HH, $7 por HM y $2 por kg. de MP. Si sobrara MP se la podría guardar en el depósito, las HH y las
HM no se pueden atesorar de un mes para el otro.
Los precios de venta de los productos son de $100, $150 y $200 por unidad para los Etolones, Krakos y
Sultos respectivamente. Asimismo es posible vender los recursos no utilizados a $4 la HH, $8 la HM y a
$2 el kg de MP.
La caja inicial del mes es de $ 30.000 y se quiere que, a fin de mes, la caja sea, como mínimo, de $
45.000. Si existe un sobrante de dinero se coloca en un banco a interés al 0.5 % mensual y si falta dinero
se puede tomar prestado pagando el 1% mensual. El préstamo máximo que se puede obtener es de $
20.000. Ambos intereses se cobran o pagan por adelantado.
2. Análisis de la situación problemática
Se trata de un problema de planificación de producción, donde también existe la posibilidad de obtener
una ganancia por venta de recursos no utilizados.
La estructura de la caja presenta una meta, permitiendo colocarla en un banco con un interés mensual
si supera un valor o bien tomar un préstamo si es necesario.
Segundo cuatrimestre 2020 72
Ejercicios resueltos 2.23
3. Objetivo
Determinar la cantidad de Etolones, Krakos y Sultos a producir para maximizar la ganancia del próximo
mes.
4. Hipótesis y supuestos
• Todo lo que se produce se vende.
• Todo recurso no utilizado se podrá vender.
• No hay stock inicial.
• No es necesario mantener un mínimo de materia prima al finalizar el mes, por lo que se podría
vender todo su stock restante.
• Se puede fabricar proporciones de cada producto, proporcional a los recursos utilizados.
• El precio de venta es proporcional a la cantidad vendida.
• Se puede fabricar cantidades arbitrariamente pequeñas de producto.
• El stock a comprar de cada recurso está limitado a los valores indicados por los datos.
• No hay fallas ni desperdicio en la producción.
• No hay una demanda mínima o máxima a cumplir por ventas de productos o recursos.
• La tasa de interés es fija para cualquier monto de dinero.
• Los recursos solo se pueden comprar con la caja inicial del mes.
• No hay limitaciones físicas.
• No hay inflación.
5. Definición de variables
Las variables de decisión serán:
• Pj : Cantidad de producto j a vender en el mes.
– Donde j ∈ PROD = {E, J, S}.
Se definen también las siguientes variables:
• Mi,j : Cantidad de recurso i destinada a la producción de j en el mes.
– Donde i ∈ REC = {HH,HM,MP}.
• Ui,SOB : Recurso i que sobró a fin del mes.
• Ui,UT IL: Recurso i utilizado en el mes.
• GANANCIA: Ganancia de dinero obtenida por ventas de producto y recursos en el mes.
• COSTO: Pérdida de dinero por compra de recursos en el mes.
Segundo cuatrimestre 2020 73
Ejercicios resueltos 2.23
• CAJAEXC : Exceso de dinero de $45.000 a depositar en el banco a fin de mes.
• CAJADEF : Defecto de dinero de $45.000 para pedir un prestamo a fin de mes.
6. Modelo de programación lineal
Se vinculan las variables de producción:
PE · E1 = MHH,E
PK ·K1 = MHH,K
PS · S1 = MHH,S
PE · E2 = MHM,E
PK ·K2 = MHM,K
PS · S2 = MHM,S
PE · E3 = MMP,E
PK ·K3 = MMP,K
PS · S3 = MMP,S
Se vinculan las variables de recursos utilizados:
∀ i ∈ REC : Ui,UT IL =
∑
j ∈P ROD
Mi,j
La disponibilidad de recursos es fija:
UHH,UT IL + UHH,SOB = 2500
UHM,UT IL + UHM,SOB = 1000
UMP,UT IL + UMP,SOB = 5000
La meta de la caja:
GANANCIA− COSTO + 30000− 45000 = CAJAEXC − CAJADEF
Segundo cuatrimestre 2020 74
Ejercicios resueltos 2.23
Las variables relacionadas con la ganancia:
GANANCIA = 4 · UHH,SOB + 8 · UHM,SOB + 2 · UMP,SOB + 100 · PE + 150 · PK + 200 · PS
Las varaibles relacionadas con el costo:
COSTO = 5 · UHH,UT IL + 7 · UHM,UT IL + 2 · UMP,UT IL
Los recursos solo se pueden comprar con la caja inicial del mes:
COSTO ≤ 30000
Finalmente, el funcional a maximizar:
MAX Z = GANANCIA− COSTO + 0.005 · CAJAEXC − 0.01 · CAJADEF
7. Resolución por so�ware
El modelo en GKPK, fijando el valor de las constantes, es:
1 set REC;
2 set PROD;
3
4 param E_1 := 1;
5 param E_2 := 4;
6 param E_3 := 2;
7
8 param K_1 := 4;
9 param K_2 := 1;
10 param K_3 := 3;
11
12 param S_1 := 6;
13 param S_2 := 2;
14 param S_3 := 7;
15
16 var M{i in REC, j in PROD} >= 0;
17 var P{j in PROD} >= 0;
18 var U_UTIL{i in REC} >= 0;
19 var U_SOB{i in REC} >= 0;
20 var GANANCIA >= 0;
21 var COSTO >= 0;
22 var CAJA_EXC >= 0;
23 var CAJA_DEF >= 0;
24
25 s.t. VINCULACION_PROD_E_1: P['E'] * E_1 = M['HH', 'E'];
26 s.t. VINCULACION_PROD_K_1: P['K'] * K_1 = M['HH', 'K'];
27 s.t. VINCULACION_PROD_S_1: P['S'] * S_1 = M['HH', 'S'];
28
29 s.t. VINCULACION_PROD_E_2: P['E'] * E_2 = M['HM', 'E'];
30 s.t. VINCULACION_PROD_K_2: P['K'] * K_2 = M['HM', 'K'];
31 s.t. VINCULACION_PROD_S_2: P['S'] * S_2 = M['HM', 'S'];
Segundo cuatrimestre 2020 75
Ejercicios resueltos 2.23
32
33 s.t. VINCULACION_PROD_E_3: P['E'] * E_3 = M['MP', 'E'];
34 s.t. VINCULACION_PROD_K_3: P['K'] * K_3 = M['MP', 'K'];
35 s.t. VINCULACION_PROD_S_3: P['S'] * S_3 = M['MP', 'S'];
36
37 s.t. USO_RECURSO_TOTAL{i in REC}: U_UTIL[i] = sum{j in PROD} M[i, j];
38
39 s.t. TOTAL_HH: U_UTIL['HH'] + U_SOB['HH'] = 2500;
40 s.t. TOTAL_HM: U_UTIL['HM'] + U_SOB['HM'] = 1000;
41 s.t. TOTAL_MP: U_UTIL['MP'] + U_SOB['MP'] = 5000;
42
43 s.t. META_CAJA: GANANCIA - COSTO + 30000 - 45000= CAJA_EXC - CAJA_DEF;
44
45 s.t. TOTAL_GANANCIA: GANANCIA = 4 * U_SOB['HH'] + 8 * U_SOB['HM'] + 2 * U_SOB['MP'] + 100
* P['E'] + 150 * P['K'] + 200 * P['S'];
46
47 s.t. TOTAL_COSTO: COSTO = 5 * U_UTIL['HH'] + 7 * U_UTIL['HM'] + 2 * U_UTIL['MP'];
48
49 s.t. CAJA_INICIAL_COMPRA_RECURSOS: COSTO <= 30000;
50
51 maximize z: GANANCIA - COSTO + 0.005 * CAJA_EXC - 0.01 * CAJA_DEF;
52
53 data;
54
55 set REC := 'HH' 'HM' 'MP';
56 set PROD := 'E' 'K' 'S';
Y su resolución:
1 set REC;
2 set PROD;
3
4 param E_1 := 1;
5 param E_2 := 4;
6 param E_3 := 2;
7
8 param K_1 := 4;
9 param K_2 := 1;
10 param K_3 := 3;
11
12 param S_1 := 6;
13 param S_2 := 2;
14 param S_3 := 7;
15
16 var M{i in REC, j in PROD} >= 0;
17 var P{j in PROD} >= 0;
18 var U_UTIL{i in REC} >= 0;
19 var U_SOB{i in REC} >= 0;
20 var GANANCIA >= 0;
21 var COSTO >= 0;
22 var CAJA_EXC >= 0;
23 var CAJA_DEF >= 0;
24
25 s.t. VINCULACION_PROD_E_1: P['E'] * E_1 = M['HH', 'E'];
26 s.t. VINCULACION_PROD_K_1: P['K'] * K_1 = M['HH', 'K'];
27 s.t. VINCULACION_PROD_S_1: P['S'] * S_1 = M['HH', 'S'];
28
29 s.t. VINCULACION_PROD_E_2: P['E'] * E_2 = M['HM', 'E'];
30 s.t. VINCULACION_PROD_K_2: P['K'] * K_2 = M['HM', 'K'];
31 s.t. VINCULACION_PROD_S_2: P['S'] * S_2 = M['HM', 'S'];
32
33 s.t. VINCULACION_PROD_E_3: P['E'] * E_3 = M['MP', 'E'];
34 s.t. VINCULACION_PROD_K_3: P['K'] * K_3 = M['MP', 'K'];
35 s.t. VINCULACION_PROD_S_3: P['S'] * S_3 = M['MP', 'S'];
Segundo cuatrimestre 2020 76
Ejercicios resueltos 2.23
36
37 s.t. USO_RECURSO_TOTAL{i in REC}: U_UTIL[i] = sum{j in PROD} M[i, j];
38
39 s.t. TOTAL_HH: U_UTIL['HH'] + U_SOB['HH'] = 2500;
40 s.t. TOTAL_HM: U_UTIL['HM'] + U_SOB['HM'] = 1000;
41 s.t. TOTAL_MP: U_UTIL['MP'] + U_SOB['MP'] = 5000;
42
43 s.t. META_CAJA: GANANCIA - COSTO + 30000 - 45000 = CAJA_EXC - CAJA_DEF;
44
45 s.t. TOTAL_GANANCIA: GANANCIA = 4 * U_SOB['HH'] + 8 * U_SOB['HM'] + 2 * U_SOB['MP'] + 100
* P['E'] + 150 * P['K'] + 200 * P['S'];
46
47 s.t. TOTAL_COSTO: COSTO = 5 * U_UTIL['HH'] + 7 * U_UTIL['HM'] + 2 * U_UTIL['MP'];
48
49 s.t. CAJA_INICIAL_COMPRA_RECURSOS: COSTO <= 30000;
50
51 maximize z: GANANCIA - COSTO + 0.005 * CAJA_EXC - 0.01 * CAJA_DEF;
52
53 data;
54
55 set REC := 'HH' 'HM' 'MP';
56 set PROD := 'E' 'K' 'S';
8. Informe de la solución óptima
Para obtener una ganancia de $82837.5, deben producirse 100 Etolones y 600 Krakos. Sobrarán 3000kg
de materia prima.
Segundo cuatrimestre 2020 77
Ejercicios resueltos 2.33
2.33
1. Enunciado
Una empresa de catering produce y comercializa tres tipos de torta.
La torta tipo A requiere 1 kg de harina, 500 gramos de azúcar, 400 gramos de chocolate, 6 huevos y 200
gramos de dulce de frutillas. La torta tipo B requiere 1,5 kg de harina, 600 gramos de azúcar, 6 huevos
y 500 gramos de chocolate. La torta tipo C requiere 800 gramos de harina, 400 gramos de azúcar, 4
huevos y 400 gramos de dulce de frutillas.
Las tortas “A” y “B” llevan además una cobertura especial. La mezcla para coberturas lleva un 20% de
chocolate, entre 40% y un 60% de crema y el resto de dulce de leche. La torta “A” lleva 200 gramos de
cobertura y la torta “B” lleva 250 gramos de esta cobertura.
Por último, las tortas se guardan en cajas decoradas, de las que se puede disponer de 300 por semana.
Semanalmente, se puede disponer de 500 kg de harina, 200 kg de azúcar, 120 kg de chocolate, 150
docenas de huevos, 40 kg de dulce de frutillas, 30 kg de crema y 15 kg de dulce de leche.
Se ha calculado que el beneficio de cada torta es el siguiente: Tortas “A”: 20 pesos, Tortas “B”: 25 pesos,
Tortas “C”: 12 pesos.
2. Análisis de la situación problemática
Se trata de un problema de producción, con tres diferentes productos y restricciones de materia
prima.
3. Objetivo
Determinar la cantidad de tortas del tipo A, B, y C a producir, y la cantidad de chocolate, crema y dulce
de leche para las coberturas de las tortas A y B, para maximizar la ganacia por ventas de la próxima
semana.
4. Hipótesis y supuestos
• No hay stock inicial de tortas o de materia prima.
• No hay productos vencidos, fallas ni desperdicio en la producción.
• Las coberturas son indistinguibles entre sí, sin importar la proporción de crema y dulce de leche.
• La mezcla de cobertura es aditiva.
Segundo cuatrimestre 2020 78
Ejercicios resueltos 2.33
• El precio de las tortas A y B es el mismo, sin importar de cómo están compuestas las coberturas.
• Las tortas A y B pueden tener la misma composición de coberturas.
• No hay restricciones financieras, de mano de obra, o físicas.
• En cada caja se puede guardar cualquier tipo de torta.
• Se pueden vender porciones de torta, y su producción y precio de venta es proporcional a la
cantidad a producir.
• Se puede producir cantidades arbitrariamente pequeñas de torta.
• Se puede utilizar una caja para guardar varias porciones de torta.
• Todo lo que se produce se vende en la semana.
• No hay un mínimo de demanda mínima de tipos de torta a cumplir.
5. Definición de variables
Las variables de control son:
• Pi [torta/semana]: Cantidad de torta i a producir en la semana.
– Donde i ∈ {A,B,C}
• Cj [kg/semana]: Kilogramos de j para utilizar en la cobertura de las tortas A y B.
– Donde j ∈ {choc, ddl, crema}
Además, se definen las siguientes variables:
• Uk [kg/semana]: Kilogramos de k para utilizar en la producción de tortas.
– Donde k ∈ {harina, azucar, choc, ddf, cob}.
• Uhuevos [huevos/semana]: Cantidad de huevos para utilizar en la producción de tortas.
6. Modelo de programación lineal
Primero, se vincula la cantidad de tortas producidas con los ingredientes.
(1 · PA + 1.5 · PB + 0.8 · PC) ·
kg
torta
= Uharina
(0.5 · PA + 0.6 · PB + 0.4 · PC) ·
kg
torta
= Uazucar
(6 · PA + 6 · PB + 4 · PC) ·
huevos
torta
= Uhuevos
(0.2 · PA + 0.4 · PC) ·
kg
torta
= Uddf
Segundo cuatrimestre 2020 79
Ejercicios resueltos 2.33
(0.4 · PA + 0.5 · PB) ·
kg
torta
= Uchoc
(0.2 · PA + 0.25 · PB) ·
kg
torta
= Ucob
Se vincula la cobertura usada en las tortas con su composición:
Ucob = Cchoc + Cddl + Ccrema
Ucob · 0.2 = Cchoc
Ucob · 0.4 ≤ Ccrema
Ucob · 0.6 ≥ Ccrema
La restricción de materia prima semanal:
Uharina ≤
500kg
semana
Uazucar ≤
200kg
semana
Uchoc + Cchoc ≤
120kg
semana
Uhuevos ≤
150docenas
semana
· 12huevos
docena
Uddf ≤
40kg
semana
Ccrema ≤
30kg
semana
Cddl ≤
15kg
semana
(PA + PB + PC)
caja
torta
≤ 300cajas
semana
Finalmente, el funcional a maximizar:
MAX Z = 20$
torta
· PA +
25$
torta
· PB +
12$
torta
· PC
7. Resolución por so�ware
El modelo en GLPK es:
Segundo cuatrimestre 2020 80
Ejercicios resueltos 2.33
1 /* Variables */
2
3 var P_A >= 0;
4 var P_B >= 0;
5 var P_C >= 0;
6
7 var C_choc >= 0;
8 var C_ddl >= 0;
9 var C_crema >= 0;
10
11 var U_harina >= 0;
12 var U_azucar >= 0;
13 var U_choc >= 0;
14 var U_ddf >= 0;
15 var U_cob >= 0;
16 var U_huevos >= 0;
17
18 /* Restricciones */
19
20 ## Vinculacion de tortas con sus ingredientes
21 s.t. VINC_TORTA_HARINA: (1 * P_A + 1.5 * P_B + 0.8 * P_C ) = U_harina;
22 s.t. VINC_TORTA_AZUCAR: (0.5 * P_A + 0.6 * P_B + 0.4 * P_C) = U_azucar;
23 s.t. VINC_TORTA_HUEVOS: (6 * P_A + 6 * P_B + 4 * P_C) = U_huevos;
24 s.t. VINC_TORTA_DDF: (0.2 * P_A + 0.4 * P_C) = U_ddf;
25 s.t. VINC_TORTA_CHOC: (0.4 * P_A + 0.5 * P_B) = U_choc;
26 s.t. VINC_TORTA_COB: (0.2 * P_A + 0.25 * P_B) = U_cob;
27
28
29 ## Vinculacion de la cobertura usada con su composicion
30 s.t. VINC_COBERTURA_TOTAL: U_cob = C_choc + C_ddl + C_crema;
31 s.t. VINC_COBERTURA_CHOC: U_cob * 0.2 = C_choc;
32 s.t. VINC_COBERTURA_DDL_MIN: U_cob * 0.4 <= C_crema;
33 s.t. VINC_COBERTURA_DDL_MAX: U_cob * 0.6 >= C_crema;
34
35 ## La restricción de materia prima semanal:
36 s.t. MAX_HARINA: U_harina <= 500;
37 s.t. MAX_AZUCAR: U_azucar <= 200;
38 s.t. MAX_CHOC: U_choc + C_choc <= 120;
39 s.t. MAX_HUEVOS: U_huevos <= 150 * 12;
40 s.t. MAX_DDF: U_ddf <= 40;
41 s.t. MAX_CREMA: C_crema <= 30;
42 s.t. MAX_DDL: C_ddl <= 15;
43 s.t. MAX_CAJAS: (P_A + P_B + P_C) <= 300;
44
45
46 /* Funcional */
47
48 maximize z: 20 * P_A + 25 * P_B + 12 * P_C;
Y su resolución:
1 Problem: 2
2 Rows: 19
3 Columns:12
4 Non-zeros: 45
5 Status: OPTIMAL
6 Objective: z = 6436.363636 (MAXimum)
7
8 No. Row name St Activity Lower bound Upper bound Marginal
9 ------ ------------ -- ------------- ------------- ------------- -------------
10 1 VINC_TORTA_HARINA
11 NS 0 -0 = < eps
12 2 VINC_TORTA_AZUCAR
13 NS 0 -0 = < eps
Segundo cuatrimestre 2020 81
Ejercicios resueltos 2.33
14 3 VINC_TORTA_HUEVOS
15 NS 0 -0 = < eps
16 4 VINC_TORTA_DDF
17 NS 0 -0 = < eps
18 5 VINC_TORTA_CHOC
19 NS 0 -0 = 23.6364
20 6 VINC_TORTA_COB
21 NS 0 -0 = 4.72727
22 7 VINC_COBERTURA_TOTAL
23 NS 0 -0 = < eps
24 8 VINC_COBERTURA_CHOC
25 NS 0 -0 = 23.6364
26 9 VINC_COBERTURA_DDL_MIN
27 B -6.81818 -0
28 10 VINC_COBERTURA_DDL_MAX
29 B 4.09091 -0
30 11 MAX_HARINA B 392.727 500
31 12 MAX_AZUCAR B 163.636 200
32 13 MAX_CHOC NU 120 120 23.6364
33 14 MAX_HUEVOS B 1636.36 1800
34 15 MAX_DDF B 32.7273 40
35 16 MAX_CREMA B 28.6364 30
36 17 MAX_DDL NU 15 15 < eps
37 18 MAX_CAJAS NU 300 300 12
38 19 z B 6436.36
39
40 No. Column name St Activity Lower bound Upper bound Marginal
41 ------ ------------ -- ------------- ------------- ------------- -------------
42 1 P_A NL 0 0 -2.4
43 2 P_B B 218.182 0
44 3 P_C B 81.8182 0
45 4 C_choc B 10.9091 0
46 5 C_ddl B 15 0
47 6 C_crema B 28.6364 0
48 7 U_harina B 392.727 0
49 8 U_azucar B 163.636 0
50 9 U_choc B 109.091 0
51 10 U_ddf B 32.7273 0
52 11 U_cob B 54.5455 0
53 12 U_huevos B 1636.36 0
54
55 Karush-Kuhn-Tucker optimality conditions:
56
57 KKT.PE: max.abs.err = 0.00e+00 on row 0
58 max.rel.err = 0.00e+00 on row 0
59 High quality
60
61 KKT.PB: max.abs.err = 0.00e+00 on row 0
62 max.rel.err = 0.00e+00 on row 0
63 High quality
64
65 KKT.DE: max.abs.err = 0.00e+00 on column 0
66 max.rel.err = 0.00e+00 on column 0
67 High quality
68
69 KKT.DB: max.abs.err = 0.00e+00 on row 0
70 max.rel.err = 0.00e+00 on row 0
71 High quality
72
73 End of output
Segundo cuatrimestre 2020 82
Ejercicios resueltos 2.33
8. Informe de la solución óptima
Para maximizar las ganancias y obtener $6436.36, deben producirse 218.18 tortas B, y 81.81 tortas C.
La cobertura debe estar compuesta por un 20% de chocolate, un 52.5% de crema y un 27.5% de dulce
de leche.
Los recursos limitantes son el chocolate, el dulce de leche y la cantidad de cajas disponibles por
semana.
Segundo cuatrimestre 2020 83
Ejercicios resueltos 3.3
3.3
Enunciado
Suponiendo hechas las declaraciones de las variablesMES (1-12)Ei e Yi (0-1) como enteras yCi
como continuas, pensar las ecuaciones y/o inecuaciones necesarias para:
Inciso A
Que si Y2 vale 0, entonces Y1 no valga 1.
Se propone la siguiente restricción:
Y1 + Y2 ≤ 2Y2
Solo restringe Y1 al valor 0 cuando Y2 = 0:
Y2 = 0 ⇒ Y1 ≤ 0
Y2 = 1 ⇒ Y1 + 1 ≤ 2 ≡ Y1 ≤ 1
Alternativamente, la siguiente restricción también funcionaría:
Y1 ≤ Y2 + Y3 + Y4 ≤ 3Y1
Inciso B
Que Y1 valga 1 siMES es igual a 12 y 0 si no lo es.
Se utiliza a Y1 como variable indicadora:
Y1 =
1 si MES = 120 caso contrario
Para eso se utiliza la siguiente restricción:
11Y1 + 1 ≤MES ≤ 11 + Y1
Con esto la variableMES solo puede tomar valores entre 1 y 11 cuando Y1 = 0:
Segundo cuatrimestre 2020 84
Ejercicios resueltos 3.3
Y1 = 0 ⇒ 1 ≤MES ≤ 11
Y1 = 1 ⇒ 12 ≤MES ≤ 12
Inciso C
Que Y1 valga igual al resultado de Y2 or Y3 or Y4.
Se utiliza a Y1 como una relación lógica:
Y1 =
1 si Y2 = 1 ∨ Y3 = 1 ∨ Y4 = 10 caso contrario
Las nuevas restricciones serán:
Y2 − Y1 ≤ 0
Y3 − Y1 ≤ 0
Y4 − Y1 ≤ 0
Y4 − Y1 ≤ 0
Y1 ≤ Y2 + Y3 + Y4
Solo alcanza que alguna de Y2, Y3 o Y4 sea igual a 1 para exigir que Y1 = 1. La última restricción
asegura que Y1 solo pueda valer 0 si todas las demás variables son igual a 0.
Inciso D
Que Y1 valga igual al resultado de Y2 and Y3.
Se utiliza a Y1 como una relación lógica:
Y1 =
1 si Y2 = 1 ∧ Y3 = 10 caso contrario
La nueva restricción será:
Segundo cuatrimestre 2020 85
Ejercicios resueltos 3.3
2Y1 ≤ Y2 + Y3 ≤ 1 + Y1
Evaluando con los posibles valores de Y1:
Y1 = 0 ⇒ 0 ≤ Y2 + Y3 ≤ 1
Y2 = 1 ⇒ 2 ≤ Y2 + Y3 ≤ 2
Inciso E
Que Y1 sea distinto de Y2
Como ambas variables son binarias, solo hay que considerar dos casos:
Y1 =
1 si Y2 = 00 si Y2 = 1
Se puede utilizar la siguiente restricción:
1− Y1 = Y2
Inciso F
QueE1 tome únicamente alguno de los siguientes valores: 1, 2, 3, 5, 6, 7.
E1 solo puede estar dentro de dos intervalos [1, 3] y [5, 7].
Se utiliza una variable binariaA para determinar estos dos casos:
1 + 4A ≤ E1 ≤ 3 + 4A
Entonces dependiendo del valor deA se restringe el valor deE entre cada intervalo:
A = 0 ⇒ 1 ≤ E1 ≤ 3
A = 1 ⇒ 5 ≤ E1 ≤ 7
Segundo cuatrimestre 2020 86
Ejercicios resueltos 3.3
Inciso G
QueC1 sea mayor que 10.
En programación lineal no se pueden utilizar desigualdades estrictas, por lo que se toma una constante
m con valor “muy pequeño” para la desigualdad:
10 +m ≤ C1
Inciso H
QueE1 tome únicamente valores impares.
Se necesita una variable entera adicionalA. A partir de esta se puede utilizar la restricción:
E1 − 2A = 1
El valor de 2A siempre será par, por lo queE1 requerirá ser impar.
Inciso I
QueE1 tome únicamente alguno de los siguientes valores: 4, 9, 16.
Se pueden utilizar tres variables binarias donde solo una de ellas puede ser 1. A partir del valor de la
seleccionada, se restringe el valor deE1. Las restricciones serían:
E1,A + E1,B + E1,C = 1
4E1,A + 9E1,B + 16E1,C = E1
Inciso J
QueC1 sea mayor o igual a 50 si Y1 = 1 ó a 75 si Y1 = 0.
Se encuentran dos intervalos posibles para el deC1 según el valor de Y1. Se puede utilizar la siguiente
restricción:
50Y1 + 75(1− Y1) ≤ C1
Segundo cuatrimestre 2020 87
Ejercicios resueltos 3.3
Inciso K
QueE1 sea mayor a 100 o sino menor que 80.
Se utiliza una variable indicadora para evaluar siE1 es menor que 80:
A =
1 si E1 ≤ 800 caso contrario
Y a partir de esta, restringir el valor deE1 para que sea mayor a 100 siA = 0.
Entonces, las restricciones serán:
(100 +m)(1−A) ≤ E1 ≤ (80−m)A+M(1−A)
DondeM es constante con valor “muy grande” ym es constante con valor “muy chico”.
Correcciones
Buenas tardes Javier,
Te dejo las correcciones del ejercicio
Saludos
a) Bien
Está bien pero rebuscado el planteo, operando podés encontrar la versión más simple de lo
mismo que pusiste:
Y1 <= Y2
b) Bien
c) Bien
d) Bien
e) Bien
f) Bien
g) Bien
h) Bien
Segundo cuatrimestre 2020 88
Ejercicios resueltos 3.3
i) Bien
j) Bien
k) Bien
Segundo cuatrimestre 2020 89
Ejercicios resueltos 3.4
3.4
1. Enunciado
Una importante firma está planeando la formación de un grupo de trabajo para encarar un nuevo
proyecto de gran importancia.
Como va a ser un proyecto de largo alcance, se debe tratar con cuidado la selección del personal que
ocupará los cargos de gerencia.
La firma decidió elegir los miembros que conformarán ese grupo, de tal manera que se minimice el
costo de reemplazo de ese personal en el puesto que ocupa actualmente.
El grupo será de 6 personas que se elegirán entre una lista de 12; las características y los costos de
reemplazo se dan en la tabla.
Segundo cuatrimestre 2020 90
Ejercicios resueltos 3.4
De los cuatro caracteres definidos en la tabla, los extremos 1 y 4 son antagónicos, y si tenemos miembros
del grupo 1 no podemos tener del 4, y viceversa. Si hay dos benevolentes o más se ahorran $ 100.
Otras restricciones:
• Debe haber por lo menos 1 ingeniero, 1 químico y 2 contadores.
• No deben encontrarse en el grupo 2 personalidades antagónicas.
• Protegido y mentor significa que el protegido es sólo eficiente si está el mentor.
• No puede haber más de 3 contadores, salvo que pertenezcan Vidal y Smith al grupo, entonces
puede haber hasta 4 contadores.
Segundo cuatrimestre 2020 91
Ejercicios resueltos 3.4
2. Análisis de la situación problemática
Se trata de un problema de selección de personal, donde se debe considerar el carácter, profesión y
costo de reemplazo de cada empleado.
3. Objetivo
Determinar la composición del equipo que formará parte del nuevo proyecto de la firma minimizando
el costo de reemplazo del personal elegido en el plazo de los datos.4. Hipótesis y supuestos
• El protegido sin el mentor no se lo considerará como opción por “no ser eficiente”.
• No hay ningún otro conflicto de carácter o personalidad además de los mencionados en los
datos.
• Las profesiones de Lima (6) y Salmain (12) no se consideran restrictivas para la formación del
nuevo equipo.
Segundo cuatrimestre 2020 92
Ejercicios resueltos 3.4
• No hay problemas o limitaciones para encontrar los reemplazos de cualquiera de los puestos
actuales.
• No hay limitaciones al considerar las personas que no fueron elegidas (por ejemplo, pueden
quedar un autoritario y un partidario fuera del equipo).
• Todas las personas del equipo tendrán su rendimiento máximo.
• Las personas de cada profesión son indistinguibles entre sí en cuanto a su desempeño.
• No hay costos adicionales además del costo de reemplazo.
• El carácter de cada empleado no varía.
• La relación entre cada grupo y empleado no varía.
• El personal elegido aceptará ser parte del equipo.
5. Definición de variables
• Xi [binaria]: Toma valor 1 si se eligió al empleado i para ser parte del equipo nuevo.
– Donde i ∈ {1, 2, ..., 12} representando cada código de empleado.
Se definen también las siguientes variables indicadoras:
• CONaut [binaria]: Toma valor 1 si se eligió a al menos un empleado con carácter autoritario.
• CONprt [binaria]: Toma valor 1 si se eligió a al menos un empleado con carácter partidario del
trabajo de grupo.
• CON7,11 [binaria]: Toma valor 1 si el equipo está compuesto por Vidal y Smith.
• CONmasben [binaria]: Toma valor 1 si se eligió a al menos dos empleados con carácter benevo-
lente.
6. Modelo de programación lineal
Restricciones para las variables indicadoras:
• Se eligió a al menos un empleado autoritario (CONaut):
CONaut ≤ X1 +X5 +X7 ≤ 3CONaut
• Se eligió a al menos un empleado partidario (CONprt):
CONprt ≤ X2 +X6 ≤ 2CONprt
Segundo cuatrimestre 2020 93
Ejercicios resueltos 3.4
• En el equipo se encuentran Vidal y Smith (CON7,11):
2CON7,11 ≤ X7 +X11 ≤ 1 + CON7,11
• En el equipo se encuentran al menos dos benevolentes:
2CONmasben ≤ X4 +X8 +X11 +X12 ≤ 1 + 3CONmasben
El equipo está formado por seis personas:
12∑
i=1
Xi = 6
Se consideran el conflicto entre Mariano (2) y Vidal (11) y el conflicto entre Bettega (3) y Marotta (4),
donde solo puede participar uno de cada par:
X2 +X11 ≤ 1
X3 +X4 ≤ 1
Se considera la relación el mentor Marotta (4) y el protegido Lima (6), donde no puede elegirse al
protegido sin el mentor:
X6 ≤ X4
Se considera el mínimo de cada profesión:
• Mínimo ingenieros:
1 ≤ X3 +X9 +X10
• Mínimo químicos:
1 ≤ X2 +X7
• Mínimo contadores:
2 ≤ X1 +X4 +X5 +X8 +X11
Se considera el máximo de contadores condicional a Vidal (11) y Smith (7):
X1 +X4 +X5 +X8 +X11 ≤ 3 + CON7,11
Finalmente, siendoCi con i ∈ {1, 2, ..., 12} el costo de reemplazo en pesos asociado a cada empleado,
el funcional a minimizar será:
Segundo cuatrimestre 2020 94
Ejercicios resueltos 3.4
Z = −100$ · CONmasben +
12∑
i=1
Xi · Ci
7. Resolución por so�ware
• El modelo en GLPK:
1 /* Variables */
2
3 ## Personal elegido
4 var X1, binary;
5 var X2, binary;
6 var X3, binary;
7 var X4, binary;
8 var X5, binary;
9 var X6, binary;
10 var X7, binary;
11 var X8, binary;
12 var X9, binary;
13 var X10, binary;
14 var X11, binary;
15 var X12, binary;
16
17 ## Indicadora de personal autoritario
18 var CON_AUT, binary;
19
20 ## Indicadora de personal partidario del trabajo de grupo
21 var CON_PRT, binary;
22
23 ## Indicadora del equipo formado por Vidal y Smith
24 var CON_7_11, binary;
25
26 ## Indicadora de dos o mas benevolentes
27 var CON_MAS_BEN, binary;
28
29 /* Restricciones */
30
31 ## Restringir valor de indicadora de personal autoritario
32 s.t. INDICADORA_CON_AUT_MIN: CON_AUT <= X1 + X5 + X7;
33 s.t. INDICADORA_CON_AUT_MAX: X1 + X5 + X7 <= 3 * CON_AUT;
34
35 ## Restringir valor de indicadora de personal partidario
36 s.t. INDICADORA_CON_PRT_MIN: CON_PRT <= X2 + X6;
37 s.t. INDICADORA_CON_PRT_MAX: X2 + X6 <= 2 * CON_PRT;
38
39 ## Restringir valor del equipo formado por Vidal y Smith
40 s.t. INDICADORA_CON_7_11_MIN: 2 * CON_7_11 <= X7 + X11;
41 s.t. INDICADORA_CON_7_11_MAX: X7 + X11 <= 1 + CON_7_11;
42
43 ## Restringir valor de indicadora de al menos dos benevolentes
44 s.t. INDICADORA_CON_MAS_BEN_MIN: 2 * CON_MAS_BEN <= X4 + X8 + X11 + X12;
45 s.t. INDICADORA_CON_MAS_BEN_MAX: X4 + X8 + X11 + X12 <= 1 + 3 * CON_MAS_BEN;
46
47 ## Equipo de 6 personas
48 s.t. CANT_EQUIPO: X1 + X2 + X3 + X4 + X5 + X6
49 + X7 + X8 + X9 + X10 + X11 + X12 = 6;
50
51 ## Conflicto entre autoritarios y partidarios del trabajo de grupo
52 s.t. CONFLICTO_CARACTER: CON_AUT + CON_PRT <= 1;
Segundo cuatrimestre 2020 95
Ejercicios resueltos 3.4
53
54 ## Conflicto entre Marino (2) y Vidal (11)
55 s.t. CONFLICTO_2_11: X2 + X11 <= 1;
56
57 ## Conflicto entre Bettega (3) y Marotta (4)
58 s.t. CONFLICTO_3_4: X3 + X4 <= 1;
59
60 ## Restriccion mentor Marotta (4) y Lima (6)
61 s.t. MENTOR_4_6: X6 <= X4;
62
63 s.t. MINIMO_INGENIEROS: 1 <= X3 + X9 + X10;
64 s.t. MINIMO_QUIMICOS: 1 <= X2 + X7;
65 s.t. MINIMO_CONTADORES: 2 <= X1 + X4 + X5 + X8 + X11;
66
67 s.t. MAXIMO_CONTADORES: X1 + X4 + X5 + X8 + X11 <= 3 + CON_7_11;
68
69
70 minimize z: X1 * 2500 + X2 * 2000 + X3 * 1800 + X4 * 3000 + X5 * 2500
71 + X6 * 1500 + X7 * 3500 + X8 * 4000 + X9 * 2800 + X10 * 3000
72 + X11 * 2500 + X12 * 5000 - CON_MAS_BEN * 100;
• Y su solución:
1 Problem: 3
2 Rows: 18
3 Columns: 16 (16 integer, 16 binary)
4 Non-zeros: 79
5 Status: INTEGER OPTIMAL
6 Objective: z = 15600 (MINimum)
7
8 No. Row name Activity Lower bound Upper bound
9 ------ ------------ ------------- ------------- -------------
10 1 INDICADORA_CON_AUT_MIN
11 -2 -0
12 2 INDICADORA_CON_AUT_MAX
13 0 -0
14 3 INDICADORA_CON_PRT_MIN
15 0 -0
16 4 INDICADORA_CON_PRT_MAX
17 0 -0
18 5 INDICADORA_CON_7_11_MIN
19 0 -0
20 6 INDICADORA_CON_7_11_MAX
21 1 1
22 7 INDICADORA_CON_MAS_BEN_MIN
23 -1 -0
24 8 INDICADORA_CON_MAS_BEN_MAX
25 1 1
26 9 CANT_EQUIPO 6 6 =
27 10 CONFLICTO_CARACTER
28 1 1
29 11 CONFLICTO_2_11
30 1 1
31 12 CONFLICTO_3_4
32 1 1
33 13 MENTOR_4_6 0 -0
34 14 MINIMO_INGENIEROS
35 -2 -1
36 15 MINIMO_QUIMICOS
37 -1 -1
38 16 MINIMO_CONTADORES
39 -3 -2
40 17 MAXIMO_CONTADORES
Segundo cuatrimestre 2020 96
Ejercicios resueltos 3.4
41 2 3
42 18 z 15600
43
44 No. Column name Activity Lower bound Upper bound
45 ------ ------------ ------------- ------------- -------------
46 1 X1 * 1 0 1
47 2 X2 * 0 0 1
48 3 X3 * 1 0 1
49 4 X4 * 0 0 1
50 5 X5 * 1 0 1
51 6 X6 * 0 0 1
52 7 X7 * 1 0 1
53 8 X8 * 0 0 1
54 9 X9 * 1 0 1
55 10 X10 * 0 0 1
56 11 X11 * 1 0 1
57 12 X12 * 0 0 1
58 13 CON_AUT * 1 0 1
59 14 CON_PRT * 0 0 1
60 15 CON_7_11 * 1 0 1
61 16 CON_MAS_BEN * 0 0 1
62
63 Integer feasibility conditions:
64
65 KKT.PE: max.abs.err = 0.00e+00 on row 0
66 max.rel.err = 0.00e+00 on row 0
67 High quality
68
69 KKT.PB: max.abs.err = 0.00e+00 on row 0
70 max.rel.err = 0.00e+00 on row 0
71 High quality
72
73 End of output
8. Informe de la solución óptima
La solución óptima forma un equipo conformado por José Doporto (1), Carlos Bettega (3), Saúl Ramoa
(5), Jorge Smith (7), Francisco Flores (9) y Ricardo Vidal (11), para un costo de reemplazo de $15600.
Se puede observar que:
• Se eligió a los empelados de carácter autoritario.
• No se llega al bonus de $100 por empleados de carácter Benevolente.
• El equipo está compuesto por Vidal (11) y Smith (7), pero no se aprovecha el contador máximo
adicional, y se llega a solo tres contadores.
Correcciones
Lindo diagrama para el análisis!
Objetivo correcto. El plazo de los datos sería, durante este proceso de selección de personal.
Muy buenas hipótesis.
Segundo cuatrimestre 2020 97
Ejercicios resueltos 3.4
El modelo está bien salvo una restricción que te faltó: impedir que autoritarios y partidarios de
trabajo en equipo estén juntos.
CONaut + CONprt = 1
Segundo cuatrimestre 2020 98
Ejercicios resueltos 3.6
3.6
1. Enunciado
Una empresa produce aceite comestible mediante la refinación de aceite crudos y su posterior mezcla.El producto final se vende a 150 $/ton.
Los aceites A y B requieren una línea de producción de refinado distinta de la de los aceites C, D y E.
Las capacidades de refinación de cada línea son respectivamente, 200 ton/mes y 250 ton/mes.
Hay una restricción tecnológica de dureza del aceite comestible. Esta debe encontrarse entre 3 y 6 (en
unidades de dureza). Se asume que la dureza de aceite comestible es una combinación lineal de las
durezas de los aceite crudos.
Además se desean imponer las siguientes condiciones adicionales:
• El aceite comestible no debe contener más de 3 aceites crudos.
• Si se usa un tipo de aceite crudo, deben usarse 20 ton., como mínimo.
• Si se usan el aceite A o el B entonces el aceite C debe también usarse.
En la siguiente tabla, se detalla el precio de cada tipo de aceite crudo (en $/ton) y su correspondiente
nivel de dureza.
Tipo Precio Dureza
A 110 8.8
B 120 6.1
C 130 2.0
D 110 4.2
E 115 5.0
Refinar los aceites crudos lleva X min/ton. El costo de mantenimiento de la máquina de refinado varía
según la cantidad de horas que funciona, como se detalla a continuación:
Horas Costo de Mantenimiento
Menos de 100 $5000
Entre 100 y 200 $8000
Más de 200 y menos de 500 $9500
Segundo cuatrimestre 2020 99
Ejercicios resueltos 3.6
Horas Costo de Mantenimiento
500 ó más $10000
2. Análisis de la situación problemática
Se trata de un problema de producción donde se debe seleccionar la materia prima a refinar para
luego utilizar en la mezcla.
3. Objetivo
Seleccionar qué cuántas toneladas de aceites crudos a refinar para maximizar la ganancia de la fabri-
cación de aceites comestibles del próximo mes.
4. Hipótesis y supuestos
• No hay desperdicio ni fallas de producción.
• No hay stock inicial de aceite refinado.
• El producto final es indistinguible sin importar los aceites crudos elegidos (considerando las
restricciones de los datos).
• Se vende todo el aceite comestible que se produce en el mes.
• La máquina refinadora es única, y tiene dos líneas de refinamiento.
• Se puede refinar cantidades arbitrariamente pequeñas de aceite crudo.
• Se puede producir cantidades arbitrariamente pequeñas de aceite comestible.
Segundo cuatrimestre 2020 100
Ejercicios resueltos 3.6
• Puede utilizarse el aceite C si no se utiliza el aceite A o el B.
• EL aceite comestible se puede hacer con al menos un aceite.
• El costo de mantenimiento es fijo por intervalo.
• No hay inflación ni variación de precios.
• No hay límites físicos de almacenamiento de los aceites.
• No hay restricciones de mano de obra ni financieras.
• El consumo de los recursos es directamente proporcional a la cantidad fabricada.
5. Definición de variables
Las variables de decisión serán:
• Ri [ tnmes ]: Toneladas de aceite i a refinar en el mes.
– Donde i ∈ {A,B,C,D,E}.
Se definen las siguientes variables adicionales:
• Ui [binaria]: Toma valor 1 si se refinó del aceite crudo i.
• A [ tnmes ]: Toneladas de aceite comestible a fabricar.
• H [ hrsmes ]: Horas de maquina refinadora a usar en el mes.
• Ij [binaria]: Toma valor 1 si las horas de maquina refinadoraH se encuentra en el intervalo j,
donde:
– j = 1 para el intervalo [0, 100)
– j = 2 para el intervalo [100, 200]
– j = 3 para el intervalo (200, 500)
– j = 4 para el intervalo [500, inf)
• Hj [ hrsmes ]: Horas de maquina refinadora a usar en el mes, perteneciendo al intervalo j.
6. Modelo de programación lineal
Restricciones para las variables indicadoras:
• Intervalos de las horas de máquina refinadora. Se tomam con valor “muy chico” yM con valor
“muy grande” para modelar los intervalos:
0 ≤ H1 ≤ (100−m) · I1
100 · I2 ≤ H2 ≤ 200 · I2
Segundo cuatrimestre 2020 101
Ejercicios resueltos 3.6
(200 +m) · I3 ≤ H3 ≤ (500−m) · I3
(500 +m) · I4 ≤ H4 ≤M · I4
• Indicadoras de aceites a refinar, también considerando que el mínimo a refinar si se elige tiene
que ser de 20 tnmes :
UA ·
20tn
mes
≤ RA ≤ UA ·
Mtn
mes
UB ·
20tn
mes
≤ RB ≤ UB ·
Mtn
mes
UC ·
20tn
mes
≤ RC ≤ UC ·
Mtn
mes
UD ·
20tn
mes
≤ RD ≤ UD ·
Mtn
mes
UE ·
20tn
mes
≤ RE ≤ UE ·
Mtn
mes
Vinculación del aceite comestible producido:
A = RA +RB +RC +RD +RE
Vinculación de horas de maquina refinadora utilizadas en el mes.
H = H1 +H2 +H3 +H4
Vinculación de horas de máquina refinadora con el aceite refinado:
H
60min
hr
= AXmin
tn
El aceite comestible no debe contener más de 3 aceites crudos:
UA + UB + UC + UD + UE ≤ 3
El aceiteC se debe utilizar si se usaA oB:
UA − UC ≤ 0
UB − UC ≤ 0
Segundo cuatrimestre 2020 102
Ejercicios resueltos 3.6
Restricciones de maquinaria:
RA +RB ≤ 200
hrs
mes
RC +RD +RE ≤ 250
hrs
mes
Restricción de dureza del aceite comestible:
3A ≤ 8.8RA + 6.1RB + 2.0RC + 4.2RD + 5.0RE ≤ 6A
Finalmente, el funcional a maximizar será
Z = A150$
tn
−RA
110$
tn
−RB
120$
tn
−RC
130$
tn
−RD
110$
tn
−RE
115$
tn
−I1
5000$
mes
− I2
8000$
mes
− I3
9500$
mes
− I4
10000$
mes
7. Resolución por so�ware
• Tomando como parámetros M = 10000, m = 0.001, X = 75, el modelo en GLPK será:
1 /* Parametros */
2
3 param M := 10000;
4 param m := 0.001;
5 param X := 75;
6
7 /* Variables */
8
9 ## Toneladas de aceite a usar
10 var R_A >= 0;
11 var R_B >= 0;
12 var R_C >= 0;
13 var R_D >= 0;
14 var R_E >= 0;
15
16 ## Variables indicadoras de que aceites crudos se usan
17 var U_A, binary;
18 var U_B, binary;
19 var U_C, binary;
20 var U_D, binary;
21 var U_E, binary;
22
23 ## Variables de horas dentro del intervalo de tiempo de refinado
24 ## Y sus respectivas variables indicadoras
25 var H_1 >= 0;
26 var I_1, binary;
27
28 var H_2 >= 0;
29 var I_2, binary;
30
31 var H_3 >= 0;
32 var I_3, binary;
Segundo cuatrimestre 2020 103
Ejercicios resueltos 3.6
33
34 var H_4 >= 0;
35 var I_4, binary;
36
37 ## Horas maquina utilizadas:
38 var H >= 0;
39
40 ## Total a producir
41 var A >= 0;
42
43 /* Restricciones */
44
45 ## Restricciones de las indicadoras de intervalos
46 s.t. INTERVALO_1_MIN: 0 <= H_1;
47 s.t. INTERVALO_1_MAX: H_1 <= (100 - m) * I_1;
48
49 s.t. INTERVALO_2_MIN: 100 * I_2 <= H_2;
50 s.t. INTERVALO_2_MAX: H_2 <= 200 * I_2;
51
52 s.t. INTERVALO_3_MIN: (200 + m) * I_3 <= H_3;
53 s.t. INTERVALO_3_MAX: H_3 <= (500 - m) * I_3;
54
55 s.t. INTERVALO_4_MIN: (500 + m) * I_4 <= H_4;
56 s.t. INTERVALO_4_MAX: H_4 <= M * I_4;
57
58 ## Restricciones de las indicadoras de aceites
59 ## Si se usa un aceite crudo, se usan 20 ton como minimo
60 s.t. USA_A_MIN: U_A * 20 <= R_A;
61 s.t. USA_A_MAX: R_A <= U_A * M;
62
63 s.t. USA_B_MIN: U_B * 20 <= R_B;
64 s.t. USA_B_MAX: R_B <= U_B * M;
65
66 s.t. USA_C_MIN: U_C * 20 <= R_C;
67 s.t. USA_C_MAX: R_C <= U_C * M;
68
69 s.t. USA_D_MIN: U_D * 20 <= R_D;
70 s.t. USA_D_MAX: R_D <= U_D * M;
71
72 s.t. USA_E_MIN: U_E * 20 <= R_E;
73 s.t. USA_E_MAX: R_E <= U_E * M;
74
75 ## Vinculacion aceite comestible producido:
76 s.t. ACEITE_COMESTIBLE: A = R_A + R_B + R_C + R_D + R_E;
77
78 ## Vinculacion de horas de maquina utilizadas:
79 s.t. HORAS_TOTAL: H = H_1 + H_2 + H_3 + H_4;
80
81 ## Vinculacion de horas de maquina refinadora con aceite refinado:
82 s.t. HORAS_REFINAMIENTO: H = A * X / 60;
83
84 ## El aceite comestible no debe contener mas de 3 aceites crudos:
85 s.t. MAX_ACEITES: U_A + U_B + U_C + U_D + U_E <= 3;
86
87 ## Utilizar C si se usa A o B
88 s.t. USAR_C_SI_A: U_A - U_C <= 0;
89 s.t. USAR_C_SI_B: U_B - U_C <= 0;
90
91 ## Restricciones de maquinaria:
92 s.t. MAQUINA_LINEA_1: R_A + R_B <= 200;
93 s.t. MAQUINA_LINEA_2: R_C + R_D + R_E <= 250;
94
95 ## Restriccion de dureza:
96 s.t. DUREZA_MIN: A * 3 <= R_A * 8.8 + R_B * 6.1 + R_C * 2.0
Segundo cuatrimestre 2020 104
Ejercicios resueltos 3.6
97 + R_D * 4.2 + R_E * 5.0;
98 s.t. DUREZA_MAX: R_A * 8.8 + R_B * 6.1 + R_C * 2.0
99 + R_D * 4.2 + R_E * 5.0 <= A * 6;
100
101
102 /* Funcional */
103
104 maximize z: A * 150
105 - R_A * 110 - R_B * 120 - R_C * 130 - R_D * 110 - R_E * 115
106 - I_1 * 5000 - I_2 * 8000 - I_3 * 9500 - I_4 * 10000;
• Y su resolución:
1 Problem: 3
2 Rows: 29
3 Columns: 20 (9 integer, 9 binary)
4 Non-zeros: 84
5 Status: INTEGER OPTIMAL
6 Objective:z = 7000 (MAXimum)
7
8 No. Row name Activity Lower bound Upper bound
9 ------ ------------ ------------- ------------- -------------
10 1 INTERVALO_1_MIN
11 0 -0
12 2 INTERVALO_1_MAX
13 0 -0
14 3 INTERVALO_2_MIN
15 0 -0
16 4 INTERVALO_2_MAX
17 0 -0
18 5 INTERVALO_3_MIN
19 0 -0
20 6 INTERVALO_3_MAX
21 0 -0
22 7 INTERVALO_4_MIN
23 -62.499 -0
24 8 INTERVALO_4_MAX
25 -9437.5 -0
26 9 USA_A_MIN -180 -0
27 10 USA_A_MAX -9800 -0
28 11 USA_B_MIN 0 -0
29 12 USA_B_MAX 0 -0
30 13 USA_C_MIN -30 -0
31 14 USA_C_MAX -9950 -0
32 15 USA_D_MIN -180 -0
33 16 USA_D_MAX -9800 -0
34 17 USA_E_MIN 0 -0
35 18 USA_E_MAX 0 -0
36 19 ACEITE_COMESTIBLE
37 0 -0 =
38 20 HORAS_TOTAL 0 -0 =
39 21 HORAS_REFINAMIENTO
40 0 -0 =
41 22 MAX_ACEITES 3 3
42 23 USAR_C_SI_A 0 -0
43 24 USAR_C_SI_B -1 -0
44 25 MAQUINA_LINEA_1
45 200 200
46 26 MAQUINA_LINEA_2
47 250 250
48 27 DUREZA_MIN -1350 -0
49 28 DUREZA_MAX 0 -0
50 29 z 7000
Segundo cuatrimestre 2020 105
Ejercicios resueltos 3.6
51
52 No. Column name Activity Lower bound Upper bound
53 ------ ------------ ------------- ------------- -------------
54 1 R_A 200 0
55 2 R_B 0 0
56 3 R_C 50 0
57 4 R_D 200 0
58 5 R_E 0 0
59 6 U_A * 1 0 1
60 7 U_B * 0 0 1
61 8 U_C * 1 0 1
62 9 U_D * 1 0 1
63 10 U_E * 0 0 1
64 11 H_1 0 0
65 12 I_1 * 0 0 1
66 13 H_2 0 0
67 14 I_2 * 0 0 1
68 15 H_3 0 0
69 16 I_3 * 0 0 1
70 17 H_4 562.5 0
71 18 I_4 * 1 0 1
72 19 H 562.5 0
73 20 A 450 0
74
75 Integer feasibility conditions:
76
77 KKT.PE: max.abs.err = 0.00e+00 on row 0
78 max.rel.err = 0.00e+00 on row 0
79 High quality
80
81 KKT.PB: max.abs.err = 0.00e+00 on row 0
82 max.rel.err = 0.00e+00 on row 0
83 High quality
84
85 End of output
8. Informe de la solución óptima
Con X = 75, se encontró una solución óptima que se basa en refinar 200 toneladas de aceite A, 50 de
aceite C y 200 de aceite D, para producir 450 toneladas de aceite comestible y obtener una ganancia de
7000$.
El valor de X cambiará el intervalo de las horas máquina y el funcional encontrado. La cantidad de
aceites a refinar será siempre la misma.
Correcciones
Calificación General: Muy Bien
Análisis: Muy Bien
Utilizás un diagrama para apoyar el análisis y la modelización. ¡Excelente idea! En la tipificación
del ejercicio, también deberías mencionar que hay un costo fijo por intervalo, y restricciones
Segundo cuatrimestre 2020 106
Ejercicios resueltos 3.6
lógicas con variables binarias.
Objetivo: Muy Bien
El objetivo definido está completo y correcto. Cuidado con la redacción: más que “seleccionar”,
debería ser “determinar”.
Hipótesis: Bien
Las hipótesis están bien, tienen sentido y ayudan a acotar el modelo. Las hipótesis de “certeza”
y “divisibilidad” están correctamente contempladas. Entre las hipótesis de “proporcionalidad”,
deberías indicar cómo medirás la dureza del aceite refinado, y podrías suponer que el tiempo de
funcionamiento de la máquina de refinado es directamente proporcional a la cantidad refinada
de aceites crudos. Además, entre las hipótesis de “aditividad”, debés incluir que se obtiene tanto
aceite refinado como crudo se haya procesado, y que los aceites crudos se pueden mezclar sin
alterar la cantidad resultante.
Variables: Excelente
La identificación de las variables principales es correcta, y guarda coherencia con el objetivo que
planteaste. También es positivo que hayas indicado las unidades.
Modelo: Muy Bien
Las restricciones y la función objetivo son correctas. El funcional guarda coherencia con el ob-
jetivo definido. Las unidades cierran perfectamente. No hay restricciones redundantes. Las
restricciones están claramente identificadas. La mezcla del producto final es correcta. Las restric-
ciones de composición sobre los aceites crudos son correctas. El cálculo y las restricciones sobre
la dureza son correctos. Las restricciones para usar A, B y C son correctas. El cálculo del costo de
mantenimiento está mal: tenés que obligar a que se encienda exactamente una de las Ii.
Resolución: Excelente
La resolución es correcta, y están incluidos el modelo y la salida del so�ware.
Informe: Excelente
El informe es correcto: está redactado en términos del dominio del problema. El nivel de detalle
del informe es ideal. Es interesante el análisis que hacés sobre el parámetro X: ¿por qué podría
estar sucediendo eso?
Presentación: Excelente
El documento entregado es claro, y las secciones están claramente separadas. Incluye carátula,
numeración de páginas e índice.
Segundo cuatrimestre 2020 107
Ejercicios resueltos 3.7
3.7
1. Enunciado
Una empresa mayorista compra y vende 3 productos A, B y C. En este momento tiene en stock 50, 100
y 300 unidades respectivamente. El precio de venta de A varía con la cantidad vendida: si vende hasta
500 unidades, $20 c/u, de 500 a 1000, $18 y más de 1000, $15.
Los precios de venta de B y C son de $35 y $40 respectivamente.
La cantidad a entregar de A debe ser la menor de las tres pero si la cantidad entregada de B es menor
que la de C esta limitación no se toma en cuenta.
Los precios de compra son los siguientes:
• producto A: $3 c/u
• producto B: $4 c/u si la compra de producto C es menor de 2500 un. y $3. si la compra de C es
mayor de 2500 unidades.
• producto C: $6 c/u si se compran hasta 1000 un., $5 si se compran menos de 3000 un. y $4 para
compras mayores de 3000 unidades.
Las demandas máximas son de 2000, 3000, y 4000 unidades respectivamente.
2. Análisis de la situación problemática
Se trata de un problema de planificación de compra de productos. Algunas de sus características a
considerar:
• El precio de venta del producto A y el de compra del producto C son diferenciales por intervalo.
• El precio de compra del producto B es condicional a la cantidad de producto C comprado.
3. Objetivo
Determinar la cantidad de productos A, B y C a comprar para maximizar la ganancia por venta, en el
plazo de los datos.
4. Hipótesis y supuestos
• Los costos por intervalos no se acumulan (costo es fijo en cada intervalo).
• El precio de compra del producto B es $4 si la compra de C es exactamente de 2500 unidades.
Segundo cuatrimestre 2020 108
Ejercicios resueltos 3.7
• El precio de compra del producto C es $5 si la compra de C es exactamente de 3000 unidades.
• El plazo de los datos es génerico (T ).
• No hay límite para la cantidad a comprar de producto.
• Se logra vender hasta la demanda máxima de cada producto.
• No hay costos adicionales más allá de los mencionados en los datos.
• Se pueden comprar y vender cantidades arbitrariamente pequeñas de producto, y el precio será
proporcional a la cantidad comprada o vendida.
• No hay productos con fallas.
• No hay restricciones de almacenamiento.
• No hay restricciones para finalizar el periodo con stock sin vender.
• No hay inflación ni variación de precios (más alla del indicado por los datos).
5. Definición de variables
Las variables de decisión serán:
• Ci [unidad/T ]: Cantidad del producto i a comprar, donde i ∈ {A,B,C}
Se definen también las siguientes variables:
• Vi [unidad/T ]: Cantidad del producto i a vender en el plazo T .
• VA,a [unidad/T ]: Cantidad del productoA a vender en el plazoT , si dicha cantidad se encuentra
en el intervalo a, donde:
– a = 1 para el intervalo [0, 500)
– a = 2 para el intervalo [500, 1000]
– a = 3 para el intervalo (1000, inf)
• CCB,b [unidad/T ]: Cantidad del producto C a comprar en el plazo T , si dicha cantidad se
encuentra en el intervalo b, donde:
– b = 1 para el intervalo [0, 2500)
– b = 2 para el intervalo [2500, inf)
• CC,c [unidad/T ]: Cantidad del productoC a comprar en el plazo T , si dicha cantidad se encuen-
tra en el intervalo c, donde:
– c = 1 para el intervalo [0, 1000)
– c = 2 para el intervalo [1000, 3000]
– c = 3 para el intervalo [3000, inf)
• COSTOi [ $T ]: Costo total por la compra del producto i en el plazo T .
Segundo cuatrimestre 2020 109
Ejercicios resueltos 3.7
• BENEFi [ $T ]: Beneficio total por la venta del producto i en el plazo T .
Finalmente, algunas variables indicadoras:
• IA,a [binaria]: Toma valor 1 si la cantidad a venderdeA se encuentra en el intervalo a.
• ICB,b [binaria]: Toma valor 1 si la cantidad a comprar deC se encuentra en el intervalo b.
• IC,c [binaria]: Toma valor 1 si la cantidad a comprar deC se encuentra en el intervalo c.
• IB,MENOR [binaria]: Toma valor 1 si la cantidad a vender deB es menor que la deC.
6. Modelo de programación lineal
Se toman las constantesM con valor “muy grande” ym con valor “muy chico”.
Primero, las restricciones de las variables indicadoras:
• Intervalos de ventas deA para el precio de venta deA:
0 ≤ VA,1 ≤ (500−m) · IA,1 · unidad/T
500IA,2 · unidad/T ≤ VA,2 ≤ 1000IA,2 · unidad/T
(1000 +m) · IA,3 · unidad/T ≤ VA,3 ≤M · IA,3 · unidad/T
IA,1 + IA,2 + IA,3 = 1
VA = VA,1 + VA,2 + VA,3
• Intervalos de compras deC para el precio de compra deB:
(2500 +m) · ICB,2 · unidad/T ≤ CC ≤ (2500 · ICB,1 +M · ICB,2) · unidad/T
ICB,1 + ICB,2 = 1
CCB,1 ≤M · ICB,1 · unidad/T
CCB,2 ≤M · ICB,2 · unidad/T
CB = CCB,1 + CCB,2
• Intervalos de compras deC para el precio de compra deC:
0 ≤ CC,1 ≤ (1000−m) · IC,1 · unidad/T
Segundo cuatrimestre 2020 110
Ejercicios resueltos 3.7
1000IC,2 · unidad/T ≤ CC,2 ≤ 3000IC,2 · unidad/T
(3000 +m) · IC,3 · unidad/T ≤ CC,3 ≤M · IC,3 · unidad/T
IC,1 + IC,2 + IC,3 = 1
CC = CC,1 + CC,2 + CC,3
• Si las ventas deB menores aC, restringir las ventas deA para que sean menores a las deB:
−M · IB,MENOR · unidad/T ≤ VB − VC ≤M · (1− IB,MENOR) · unidad/T
VA ≤ (VB −m) + IB,MENOR ·M
Máximo de ventas, considerando el stock inicial:
VA = CA + 50 · unidad/T
VB = CB + 100 · unidad/T
VC = CC + 300 · unidad/T
VA ≤ 2000
VB ≤ 3000
VC ≤ 4000
Relación de las variables de costo:
COSTOA = 3 · CA · ($/unidad)
COSTOB = (4 · CCB,1 + 3 · CCB,2) · ($/unidad)
COSTOC = (6 · CC,1 + 5 · CC,2 + 4 · CC,3) · ($/unidad)
Relación de las variables de beneficio:
BENEFA = (20 · VA,1 + 18 · VA,2 + 15 · VA,3) · ($/unidad)
BENEFB = 35 · VB · ($/unidad)
BENEFC = 40 · VC · ($/unidad)
Segundo cuatrimestre 2020 111
Ejercicios resueltos 3.7
Finalmente, el funcional a maximizar:
Z = BENEFA +BENEFB +BENEFC − COSTOA − COSTOB − COSTOC
7. Resolución por so�ware
• El modelo en GLPK será:
1 /* Parametros */
2 param M := 100000;
3 param m := 0.0001;
4
5 /* Variables */
6
7 ## Compra de productos
8 var C_A >= 0;
9 var C_B >= 0;
10 var C_C >= 0;
11
12 ## Venta de productos
13 var V_A >= 0;
14 var V_B >= 0;
15 var V_C >= 0;
16
17 ## Suma de intervalos
18 var V_A_1 >= 0;
19 var V_A_2 >= 0;
20 var V_A_3 >= 0;
21
22 var C_C_B_1 >= 0;
23 var C_C_B_2 >= 0;
24
25 var C_C_1 >= 0;
26 var C_C_2 >= 0;
27 var C_C_3 >= 0;
28
29 ## Variables de costo por producto
30 var COSTO_A >= 0;
31 var COSTO_B >= 0;
32 var COSTO_C >= 0;
33
34 ## Variables de beneficio por producto
35 var BENEF_A >= 0;
36 var BENEF_B >= 0;
37 var BENEF_C >= 0;
38
39 ## Variables indicadoras
40 var I_A_1, binary;
41 var I_A_2, binary;
42 var I_A_3, binary;
43
44 var I_C_1, binary;
45 var I_C_2, binary;
46 var I_C_3, binary;
47
48 var I_C_B_1, binary;
49 var I_C_B_2, binary;
50
51 var I_B_MENOR, binary;
52
Segundo cuatrimestre 2020 112
Ejercicios resueltos 3.7
53 /* Restricciones */
54
55 s.t. INTERVALO_VA_1_MIN: 0 <= V_A_1;
56 s.t. INTERVALO_VA_1_MAX: V_A_1 <= (500 - m) * I_A_1;
57 s.t. INTERVALO_VA_2_MIN: 500 * I_A_2 <= V_A_2;
58 s.t. INTERVALO_VA_2_MAX: V_A_2 <= 1000 * I_A_2;
59 s.t. INTERVALO_VA_3_MIN: (1000 + m) * I_A_3 <= V_A_3;
60 s.t. INTERVALO_VA_3_MAX: V_A_3 <= M * I_A_3;
61 s.t. INTERVALO_UNICO_VA: I_A_1 + I_A_2 + I_A_3 = 1;
62 s.t. SUMA_V_A: V_A = V_A_1 + V_A_2 + V_A_3;
63
64 s.t. INTERVALO_CC_1_MIN: 0 <= C_C_1;
65 s.t. INTERVALO_CC_1_MAX: C_C_1 <= (1000 - m) * I_C_1;
66 s.t. INTERVALO_CC_2_MIN: 1000 * I_C_2 <= C_C_2;
67 s.t. INTERVALO_CC_2_MAX: C_C_2 <= 3000 * I_C_2;
68 s.t. INTERVALO_CC_3_MIN: (3000 + m) * I_C_3 <= C_C_3;
69 s.t. INTERVALO_CC_3_MAX: C_C_3 <= M * I_C_3;
70 s.t. INTERVALO_UNICO_CC: I_C_1 + I_C_2 + I_C_3 = 1;
71 s.t. SUMA_C_C: C_C = C_C_1 + C_C_2 + C_C_3;
72
73 s.t. INTERVALO_C_2500_MIN: (2500 + m) * I_C_B_2 <= C_C;
74 s.t. INTERVALO_C_2500_MAX: C_C <= I_C_B_1 * 2500 + I_C_B_2 * M;
75 s.t. INTERVALO_UNICO_CB: I_C_B_1 + I_C_B_2 = 1;
76 s.t. INTERVALO_CB_1_MAX: C_C_B_1 <= M * I_C_B_1;
77 s.t. INTERVALO_CB_2_MAX: C_C_B_2 <= M * I_C_B_2;
78 s.t. SUMA_C_B: C_B = C_C_B_1 + C_C_B_2;
79
80 s.t. B_MENOR_C_MIN: - M * I_B_MENOR <= V_B - V_C;
81 s.t. B_MENOR_C_MAX: V_B - V_C <= M * (1 - I_B_MENOR);
82
83 s.t. MAX_VENTAS_A: V_A <= 2000;
84 s.t. MAX_VENTAS_B: V_B <= 3000;
85 s.t. MAX_VENTAS_C: V_C <= 4000;
86
87 s.t. CONDICIONAL_VENTAS_A_1: V_A <= (V_B - m) + I_B_MENOR * M;
88 s.t. CONDICIONAL_VENTAS_A_2: V_A <= I_B_MENOR * M;
89
90 s.t. STOCK_INICIAL_A: V_A = C_A + 50;
91 s.t. STOCK_INICIAL_B: V_B = C_B + 100;
92 s.t. STOCK_INICIAL_C: V_C = C_C + 300;
93
94 s.t. COSTO_FINAL_A: COSTO_A = 3 * C_A;
95 s.t. COSTO_FINAL_B: COSTO_B = C_C_B_1 * 4 + 3 * C_C_B_2;
96 s.t. COSTO_FINAL_C: COSTO_C = 6 * C_C_1 + 5 * C_C_2 + 4 * C_C_3;
97
98 s.t. BENEF_FINAL_A: BENEF_A = 20 * V_A_1 + 18 * V_A_2 + 15 * V_A_3;
99 s.t. BENEF_FINAL_B: BENEF_B = 35 * V_B;
100 s.t. BENEF_FINAL_C: BENEF_C = 40 * V_C;
101
102
103 /* Funcional */
104 maximize z: BENEF_A + BENEF_B + BENEF_C - COSTO_A - COSTO_B - COSTO_C;
• Resolución:
1 Problem: 3
2 Rows: 39
3 Columns: 29 (9 integer, 9 binary)
4 Non-zeros: 93
5 Status: INTEGER OPTIMAL
6 Objective: z = 265650 (MAXimum)
7
8 No. Row name Activity Lower bound Upper bound
Segundo cuatrimestre 2020 113
Ejercicios resueltos 3.7
9 ------ ------------ ------------- ------------- -------------
10 1 INTERVALO_VA_1_MIN
11 0 -0
12 2 INTERVALO_VA_1_MAX
13 0 -0
14 3 INTERVALO_VA_2_MIN
15 0 -0
16 4 INTERVALO_VA_2_MAX
17 0 -0
18 5 INTERVALO_VA_3_MIN
19 -1000 -0
20 6 INTERVALO_VA_3_MAX
21 -98000 -0
22 7 INTERVALO_UNICO_VA
23 1 1 =
24 8 SUMA_V_A 0 -0 =
25 9 INTERVALO_CC_1_MIN
26 0 -0
27 10 INTERVALO_CC_1_MAX
28 0 -0
29 11 INTERVALO_CC_2_MIN
30 0 -0
31 12 INTERVALO_CC_2_MAX
32 0 -0
33 13 INTERVALO_CC_3_MIN
34 -700 -0
35 14 INTERVALO_CC_3_MAX
36 -96300 -0
37 15 INTERVALO_UNICO_CC
38 1 1 =
39 16 SUMA_C_C 0 -0 =
40 17 INTERVALO_C_2500_MIN
41 -1200 -0
42 18 INTERVALO_C_2500_MAX
43 -96300 -0
44 19 INTERVALO_UNICO_CB
45 1 1 =
46 20 INTERVALO_CB_1_MAX
47 0 -0
48 21 INTERVALO_CB_2_MAX
49 -97100 -0
50 22 SUMA_C_B 0 -0 =
51 23 B_MENOR_C_MIN
52 -99000 -0
53 24 B_MENOR_C_MAX
54 99000 100000
55 25 MAX_VENTAS_A 2000 2000
56 26 MAX_VENTAS_B 3000 3000
57 27 MAX_VENTAS_C 4000 4000
58 28 CONDICIONAL_VENTAS_A_1
59 -101000 -0.0001
60 29 CONDICIONAL_VENTAS_A_2
61 -98000 -0
62 30 STOCK_INICIAL_A
63 50 50 =
64 31 STOCK_INICIAL_B
65 100 100 =
66 32 STOCK_INICIAL_C
67 300 300 =
68 33 COSTO_FINAL_A
69 0 -0 =
70 34 COSTO_FINAL_B
71 0 -0 =
72 35 COSTO_FINAL_C
Segundo cuatrimestre 2020 114
Ejercicios resueltos 3.7
73 0 -0 =
74 36 BENEF_FINAL_A
75 0 -0 =
76 37 BENEF_FINAL_B
77 0 -0 =
78 38 BENEF_FINAL_C
79 0 -0 =
80 39 z 265650
81
82 No. Column name Activity Lower bound Upper bound
83 ------ ------------ ------------- ------------- -------------
84 1 C_A 1950 0
85 2 C_B 2900 0
86 3 C_C 3700 0
87 4 V_A 2000 0
88 5 V_B 3000 0
89 6 V_C 4000 0
90 7 V_A_1 0 0
91 8 V_A_2 0 0
92 9 V_A_3 2000 0
93 10 C_C_B_1 0 0
94 11 C_C_B_2 2900 0
95 12 C_C_1 0 0
96 13 C_C_2 0 0
97 14 C_C_3 3700 0
98 15 COSTO_A 5850 0
99 16 COSTO_B 8700 0
100 17 COSTO_C 14800 0
101 18 BENEF_A 30000 0
102 19 BENEF_B 105000 0
103 20 BENEF_C 160000 0
104 21 I_A_1 * 0 0 1
105 22 I_A_2 * 0 0 1
106 23 I_A_3 * 1 0 1
107 24 I_C_1 * 0 0 1
108 25 I_C_2 * 0 0 1
109 26 I_C_3 * 1 0 1
110 27 I_C_B_1 * 0 0 1
111 28 I_C_B_2 * 1 0 1
112 29 I_B_MENOR * 1 0 1
113
114 Integer feasibility conditions:
115
116 KKT.PE: max.abs.err = 0.00e+00 on row 0
117 max.rel.err = 0.00e+00 on row 0
118 High quality
119
120 KKT.PB: max.abs.err = 0.00e+00 on row 0
121 max.rel.err = 0.00e+00 on row 0
122 High quality
123
124 End of output
8. Informe de la solución óptima
Se debe comprar 1950 unidades deA, 2900 unidades deB y 3700 unidades deC para una ganancia
máxima de $265650.
Por el bajo precio de compra de los productos sin importar los intervalos diferenciales, es conveniente
Segundo cuatrimestre2020 115
Ejercicios resueltos 3.7
comprar todo lo posible para llegar a la demanda máxima. En esta situación, las restricciones limitantes
serán aquellas relacionadas con las cantidades máximas a vender de cada producto.
La cantidad a comprar deB es menor que la deC, pero no se aprovecha de la cantidad de compra
ilimitada deA porque se busca comprar todo lo posible hasta satisfacer la demanda. ComoA tiene la
menor demanda de las tres, naturalmente se comprarán menos unidades de este producto de queB o
C.
Correcciones
Calificación General: Muy Bien
Análisis: Muy Bien
La caracterización del problema está bien orientada, aunque podrías mejorar la redacción. Podrías
decir que se trata de un problema de planificación de la producción (NO ES DE PRODUCCIÓN,
ACLARADO EN CLASES), con stocks y costos/precios diferenciales por intervalo.
Objetivo: Muy Bien
El objetivo es completo y correcto, aunque le podrías agregar que también querés determinar la
cantidad a vender de cada producto.
Hipótesis: Muy Bien
Las hipótesis que pusiste están bien, tienen sentido y ayudan a acotar el modelo. Las hipótesis
de “certeza”, “proporcionalidad” y“divisibilidad” están correctamente contempladas. Entre las
hipótesis de “aditividad”, debés incluir que las unidades compradas son indistinguibles de las
unidades en el stock.
Variables: Excelente
La identificación de las variables principales es correcta, y guarda coherencia con el objetivo que
planteaste. También es positivo que hayas indicado las unidades.
Modelo: Muy Bien
La determinación del precio de venta de A es correcta. Las determinaciones sobre los costos
de compra de B y C son correctas. Las restricciones sobre la cantidad a entregar de A tienen un
problema cuando B=C. Las restricciones sobre stocks y demandas son correctas, pero te faltó
poner el tope máximo de ventas de cada producto (vi que está en la resolución por so�). Te faltó
poner la función objetivo, aunque vi que está en la resolución por so�ware. Las restricciones
están claramente identificadas.
Resolución: Excelente
Segundo cuatrimestre 2020 116
Ejercicios resueltos 3.7
La resolución es correcta, y están incluidos el modelo y la salida del so�ware.
Informe: Muy Bien
El informe es correcto: está redactado en términos del dominio del problema. Es interesante el
análisis que hacés del resultado obtenido.
Presentación: Excelente
El documento entregado es claro, y las secciones están claramente separadas. Incluye carátula,
numeración de páginas e índice.
Segundo cuatrimestre 2020 117
Ejercicios resueltos 3.9
3.9
Enunciado
Suponiendo hechas las declaraciones de las variables Ei e Yi (0-1) como enteras y Ci como con-
tinuas, pensar las ecuaciones y/o inecuaciones necesarias para. . .
Inciso A
Que, siC1 es mayor que 0, entonces también sea mayor o igual que 22.
Utilizando la variable Y1 por siC1 es distinto a 0:
22Y1 ≤ C1 ≤M · Y1
Se toma la constanteM con valor “muy grande”.
Evaluando los valores posibles de Y1:
Y1 = 0 ⇒ 0 ≤ C1 ≤ 0
Y1 = 1 ⇒ 22 ≤ C1 ≤M
Inciso B
QueE1 tome el máximo valor entreE2,E3 yE4.
Se toman las siguientes variables ∀ j ∈ Q = {2, 3, 4}:
• Yj : Toma valor 1 si la variableEj es la mayor del conjunto.
Por definición, solo puede haber una única variable “mayor”:
Y2 + Y3 + Y4 = 1
Y con estas se restringe el valor deE1:
E2 ≤ E1 ≤ E2 +M(1− Y2)
E3 ≤ E1 ≤ E3 +M(1− Y3)
Segundo cuatrimestre 2020 118
Ejercicios resueltos 3.9
E4 ≤ E1 ≤ E4 +M(1− Y4)
Para ejemplificar, se toma un caso dondeE2 ≤ E3 ≤ E4:
• Cuando Y4 = 1, al simplificar las restricciones considerando que el mayor esE4 se llega a:
E4 ≤ E1 ≤ E4
• Cuando Y3 = 1, al simplificar las restricciones se llega a una expresión que contradiceE3 ≤ E4,
por lo que bajo esta situación no habría solución:
E4 ≤ E1 ≤ E3
Inciso C
QueC1 tome el segundo menor valor entreC2,C3,C4 yC5.
Se toman las siguientes variables binarias ∀ j ∈ Q = {2, 3, 4, 5}:
• Yj : Vale 1 si la variableCj es la menor variable del conjunto.
• Xj : Vale 1 si la variableCj es la menor o segunda menor variable del conjunto.
Por definición de las mismas, se debe cumplir:
Y2 + Y3 + Y4 + Y5 = 1
X2 +X3 +X4 +X5 = 2
A partir de estas se restringe el valor deC1:
C2 −M(1−X2) ≤ C1 ≤ C2 +M · Y2
C3 −M(1−X3) ≤ C1 ≤ C3 +M · Y3
C4 −M(1−X4) ≤ C1 ≤ C4 +M · Y4
C5 −M(1−X5) ≤ C1 ≤ C5 +M · Y5
Para ejemplificar, se toma un caso dondeC2 ≤ C3 ≤ C4 ≤ C5, y se deberían activar las variables Y2,
X2 yX3:
• La elección de variablesXj causa que las variablesC4 yC5 no se consideren para la cota inferior.
ComoC2 ≤ C3 la cota inferior deC1 seráC3.
Segundo cuatrimestre 2020 119
Ejercicios resueltos 3.9
• Luego, la elección de variable Yj causa que la variableC2 no se considere para la cota superior.
ComoC3 ≤ C4 ≤ C5, la cota superior deC1 también seráC3.
• Finalmente, resulta en C3 ≤ C1 ≤ C3. Cualquier otra combinación de variables Yj y Xj no
funcionarían para el casoC2 ≤ C3 ≤ C4 ≤ C5.
Inciso D
Que, siC2 es 0, entoncesC1 también sea 0.
Como las variablesCi son continuas, se debe utilizar una variable binaria (se toma Y2) para determinar
siC2 es cero.
Se proponen las siguientes restricciones:
m · Y2 ≤ C2 ≤M · Y2
C1 ≤M · Y2
Evaluando los valores posibles de Y2:
Y2 = 0 ⇒ C1 ≤ 0 , 0 ≤ C2 ≤ 0
Y2 = 1 ⇒ C1 ≤M , m ≤ C2 ≤M
Inciso E
QueC1 no sea igual a 13.
C1 es continua y en programación lineal no pueden realizarse desigualdades estrictas, por lo que se
propone la siguiente restricción con una variable binaria Y1 que vale 1 cuandoC1 > 13:
Y1(13 +m) ≤ C1 ≤ (1− Y1)(13−m) +M · Y1
Evaluando los valores posibles de Y1:
Y1 = 0 ⇒ 0 ≤ C1 ≤ 13−m
Y1 = 1 ⇒ 13 +m ≤ C1 ≤M
Segundo cuatrimestre 2020 120
Ejercicios resueltos 3.9
Inciso F
QueE1 tome el valor deC1 redondeado.
La forma más sencilla sería restringiendo el valor deC1 para que pueda tomar cualquier valor posible
dentro del intervalo (E1 − 0.5, E1 + 0.5] se encuentre entre todos los valores posibles de la variable
E1 redondeada:
E1 − 0.5 +m ≤ C1 ≤ E1 + 0.5
Por ejemplo, conE1 = 3:
E1 − 0.5 +m ≤ C1 ≤ E1 + 0.5
2.5 +m ≤ C1 ≤ 3.5
Inciso G
Que E1 tome un valor igual a la cantidad de variables (E2, E3, E4 y E5) cuyo valor es mayor que
5.
Se necesitan cuatro variables binarias Yi que toman valor 1 cuando su respectivo parEi es mayor que
5:
6Y2 ≤ E2 ≤ 5(1− Y2) +M · Y2
6Y3 ≤ E3 ≤ 5(1− Y3) +M · Y3
6Y4 ≤ E4 ≤ 5(1− Y4) +M · Y4
6Y5 ≤ E5 ≤ 5(1− Y5) +M · Y5
E1 = Y2 + Y3 + Y4 + Y5
Correcciones
Buen día Javier, Te dejo mis observaciones sobre la entrega. Saludos, PC
a) Bien
b) Bien. Cuidado, no se puede afirmar que solamente puede haber un máximo (salvo que eso
Segundo cuatrimestre 2020 121
Ejercicios resueltos 3.9
implique que el modelo define un máximo de entre los que tengan el máximo valor). Si hay
más de un máximo el modelo puede elegir arbitrariamente qué Yi se prende por lo que la
definición indicada debería tener esa aclaración.
c) Bien. Puede ser un poco confuso que de un lado se anule con el 1 de la bivalente y del otro
con el 0, pero anda perfectamente
d) Bien
e) Bien
f) Bien
g) Bien
Segundo cuatrimestre 2020 122
Ejercicios resueltos 3.13
3.13
1. Enunciado
Un corredor de jugos “Que podemos agregar” tiene que recorrer diariamente 5 comercios partiendo
de la fábrica y volviendo a ella. Para ir de un comercio a otro debe calcular los costos, que son propor-
cionales a los litros de na�a que le insume cada trayecto. Estos costos entre cada comercio I – J se
expresan en la tabla adjunta.
Los costos de traslado, comida, etc. deben ser abonados por el corredor. Conoce que por cada litro de
na�a que cuesta $1, gasta $9 aproximadamente en comida, art. de librería, etc.
Por razones comerciales, el corredor no puede ir al comercio número 4 sin pasar antes por el 3. Como
el comerciante 2 cierra tarde, antes de ir a ese negocio, tendrá que ir a los negocios 3 y 5.
¿Qué es lo mejor que puede hacer el corredor?
2. Análisis de la situación problemática
Segundo cuatrimestre 2020 123
Ejercicios resueltos 3.13
Se trata de un problema del viajante, donde el corredor debe pasarpor cada comercio considerando
también un orden necesario.
3. Objetivo
Determinar el orden en el cuál visitar los comercios, para minimizar el costo de viaje del día.
4. Hipótesis y supuestos
• El costo i - j representa el costo de ir del comercio i al comercio j.
• Al no tener el dato de costo de viaje de la fábrica hacia los comercios y viceversa, este se desprecia.
• El origen y el destino del tour es la fábrica.
• Solo se pasa una vez por cada comercio.
• No hay costos adicionales además de los mencionados en los datos.
• Siempre gasta exactamente $9 en comida, artículos de librería, y demás por cada litro de na�a
insumidos.
• Tampoco varía el costo de na�a.
• No hay un mínimo ni máximo de na�a que se debe mantener a todo momento.
• No hay otras restricciones de orden además de las mencionadas en los datos (comercio 3 antes
del comercio 4, y comercios 3 y 5 antes del comercio 2).
• En los viajes no hay inconvenientes, retrasos, cambios de ruta, caminos cerrados, etc.
• Los comercios no se encontrarán cerrados (con tal de que se cumplan las restricciones de orden).
5. Definición de variables
Las variables de decisión serán:
• Yi,j [binaria]: El recorrido del día incluye ir del punto i al punto j.
– Donde i, j ∈ {0, 1, 2, 3, 4, 5}, i 6= j. La fábrica representa el punto 0 y el resto son los
comercios.
Para completar el problema del viajante, se incluyen las variables secuenciales:
• Ui [natural]: Número de secuencia del punto i en el recorrido del día.
Además, se asignan los siguientes parámetros a partir de los datos del enunciado:
• Ci,j [litros]: Costo en litros de ir del punto i al punto j.
Segundo cuatrimestre 2020 124
Ejercicios resueltos 3.13
– Al no conocer el costo de ir a la fábrica a los comercios y viceversa, se asume que este es
cero.
6. Modelo de programación lineal
Cada comercio se visita una sola vez, por lo que a partir de cada comercio solo hay un único destino.
∀ i ∈ {0, 1, · · · , 5} :
5∑
j=1
j 6=i
Yi,j = 1
De la misma forma, a partir de cada comercio solo hay un único origen:
∀ j ∈ {0, 1, · · · , 5} :
5∑
i=1
i 6=j
Yi,j = 1
Se restringen las variables secuenciales, y así evitar subtours:
∀ j ∈ {1, · · · , 5} : Ui − Uj + 5 · Yi,j ≤ 4
El corredor no puede ir al comercio 4 sin pasar antes por el comercio 3:
U3 ≤ U4
El corredor no puede ir al comercio 2 sin pasar antes por el comercio 3 y el comercio 5:
U3 ≤ U2
U4 ≤ U2
Finalmente el funcional a minimizar, recordando que el costo de na�a es de $1 por litro y luego hay $9
de gasto por litro de na�a en otros consumos:
Z =
( 9$
litro
+ 1$
litro
) 5∑
i=1
i 6=j
Yi,j · Ci,j
7. Resolución por so�ware
• El modelo en GLPK será:
Segundo cuatrimestre 2020 125
Ejercicios resueltos 3.13
1 /* Parametros */
2
3 ## Costo de ir de un comercio "i" a un comercio "j"
4 param C{i in 0..5, j in 0..5};
5
6 /* Variables */
7
8 ## Se elije el camino de "i" a "j"
9 var Y{i in 0..5, j in 0..5}, binary;
10
11 ## Numero de secuencia en la cual el comercio "i" es visitado
12 var U{i in 0..5}, integer;
13
14
15 /* Restricciones */
16
17 ## A partir de cada comercio "i" solo se puede ir a un solo comercio "j"
18 s.t. MAX_DESTINO{i in 0..5}: sum{j in 0..5: j <> i} Y[i,j] = 1;
19
20 ## Cada comercio "j" se visitó desde un solo comercio "i"
21 s.t. MAX_ORIGEN{j in 0..5}: sum{i in 0..5: i <> j} Y[i,j] = 1;
22
23 ## Restringir los numeros de secuencia
24 s.t. SEQ{i in 1..5, j in 1..5: i <> j}: U[i] - U[j] + 5 * Y[i,j] <= 4;
25
26 ## Corredor no puede ir al comercio 4 sin pasar antes por el 3:
27 s.t. ORDEN_3_4: U[3] <= U[4];
28
29 ## Antes de ir a 2, deberia ir al 3 y 5:
30 s.t. ORDEN_3_2: U[3] <= U[2];
31 s.t. ORDEN_5_2: U[5] <= U[2];
32
33
34 /* Funcional */
35
36 minimize z: sum{i in 0..5, j in 0..5: j <> i} Y[i,j] * C[i,j] * 10;
37
38
39 /* Valores de parametros */
40
41 data;
42 param C : 0 1 2 3 4 5 :=
43 0 0 0 0 0 0 0
44 1 0 0 7 7 5 8
45 2 0 8 0 12 13 6
46 3 0 6 10 0 9 5
47 4 0 4 15 8 0 14
48 5 0 9 7 7 12 0;
• Y su resolución:
1 Problem: 3
2 Rows: 36
3 Columns: 35 (35 integer, 30 binary)
4 Non-zeros: 146
5 Status: INTEGER OPTIMAL
6 Objective: z = 250 (MINimum)
7
8 No. Row name Activity Lower bound Upper bound
9 ------ ------------ ------------- ------------- -------------
10 1 MAX_DESTINO[0]
11 1 1 =
Segundo cuatrimestre 2020 126
Ejercicios resueltos 3.13
12 2 MAX_DESTINO[1]
13 1 1 =
14 3 MAX_DESTINO[2]
15 1 1 =
16 4 MAX_DESTINO[3]
17 1 1 =
18 5 MAX_DESTINO[4]
19 1 1 =
20 6 MAX_DESTINO[5]
21 1 1 =
22 7 MAX_ORIGEN[0]
23 1 1 =
24 8 MAX_ORIGEN[1]
25 1 1 =
26 9 MAX_ORIGEN[2]
27 1 1 =
28 10 MAX_ORIGEN[3]
29 1 1 =
30 11 MAX_ORIGEN[4]
31 1 1 =
32 12 MAX_ORIGEN[5]
33 1 1 =
34 13 SEQ[1,2] 1 4
35 14 SEQ[1,3] 3 4
36 15 SEQ[1,4] 4 4
37 16 SEQ[1,5] 2 4
38 17 SEQ[2,1] 4 4
39 18 SEQ[2,3] 2 4
40 19 SEQ[2,4] -2 4
41 20 SEQ[2,5] 1 4
42 21 SEQ[3,1] -3 4
43 22 SEQ[3,2] -2 4
44 23 SEQ[3,4] -4 4
45 24 SEQ[3,5] 4 4
46 25 SEQ[4,1] 1 4
47 26 SEQ[4,2] 2 4
48 27 SEQ[4,3] 4 4
49 28 SEQ[4,5] 3 4
50 29 SEQ[5,1] -2 4
51 30 SEQ[5,2] 4 4
52 31 SEQ[5,3] 1 4
53 32 SEQ[5,4] -3 4
54 33 ORDEN_3_4 -4 -0
55 34 ORDEN_3_2 -2 -0
56 35 ORDEN_5_2 -1 -0
57 36 z 250
58
59 No. Column name Activity Lower bound Upper bound
60 ------ ------------ ------------- ------------- -------------
61 1 Y[0,1] * 0 0 1
62 2 Y[0,2] * 0 0 1
63 3 Y[0,3] * 1 0 1
64 4 Y[0,4] * 0 0 1
65 5 Y[0,5] * 0 0 1
66 6 Y[1,0] * 0 0 1
67 7 Y[1,2] * 0 0 1
68 8 Y[1,3] * 0 0 1
69 9 Y[1,4] * 1 0 1
70 10 Y[1,5] * 0 0 1
71 11 Y[2,0] * 0 0 1
72 12 Y[2,1] * 1 0 1
73 13 Y[2,3] * 0 0 1
74 14 Y[2,4] * 0 0 1
75 15 Y[2,5] * 0 0 1
Segundo cuatrimestre 2020 127
Ejercicios resueltos 3.13
76 16 Y[3,0] * 0 0 1
77 17 Y[3,1] * 0 0 1
78 18 Y[3,2] * 0 0 1
79 19 Y[3,4] * 0 0 1
80 20 Y[3,5] * 1 0 1
81 21 Y[4,0] * 1 0 1
82 22 Y[4,1] * 0 0 1
83 23 Y[4,2] * 0 0 1
84 24 Y[4,3] * 0 0 1
85 25 Y[4,5] * 0 0 1
86 26 Y[5,0] * 0 0 1
87 27 Y[5,1] * 0 0 1
88 28 Y[5,2] * 1 0 1
89 29 Y[5,3] * 0 0 1
90 30 Y[5,4] * 0 0 1
91 31 U[2] * 1
92 32 U[1] * 2
93 33 U[3] * -1
94 34 U[4] * 3
95 35 U[5] * 0
96
97 Integer feasibility conditions:
98
99 KKT.PE: max.abs.err = 0.00e+00 on row 0
100 max.rel.err = 0.00e+00 on row 0
101 High quality
102
103 KKT.PB: max.abs.err = 0.00e+00 on row 0
104 max.rel.err = 0.00e+00 on row 0
105 High quality
106
107 End of output
8. Informe de la solución óptima
El camino óptimo para reducir el gasto de viaje será:
• Ir de la fábrica al comercio 3.
• Ir del comercio 3 al comercio 5, gastando 50$.
• Ir del comercio 5 al comercio 2, gastando 70$.
• Ir del comercio 2 al comercio 1, gastando 80$.
• Ir del comercio 1 al comercio 4, gastando 50$.
• Ir del comercio 4 a la fábrica, terminando el recorrido.
El costo total del recorrido será de $250.
Se puede observar que se cumplen las restricciones de orden de visita. El comercio 2 se visita después
que el comercio 3 y 5, y el comercio 4 se visita después que el comercio 3.
Segundo cuatrimestre 2020 128
Ejercicios resueltos 3.13
Correcciones
Buen análisis. Ojo con el fraseado: hay restricciones sobre el orden en este problema, pero no es
que consideramos completamente un orden establecido.
Muy buen objetivo e hipótesis.
Modelo bien resuelto. Te faltó el otro “para todo” i en las restricciones de subtours. Y además que
i != j
Segundo cuatrimestre 2020 129
Ejercicios resueltos 3.16
3.16
1. Enunciado
La empresa Black Hole, radicada en Africa, debe transportar un contenedor de Cadmio enriquecido
a través de seis regiones de la zona del Sahara, para luego regresarlo a la filial de partida. En cada
región deberá agregarle un componente químico al cadmio y así, cuando regrese a la fábrica tendrá el
producto final listo para procesarlo.
Cuando el contenedor parte, la temperatura del Cadmio es exactamente de cero grados centígrados.
Alguno de los componentes que se van agregando aumentan la temperatura del Cadmio en una
determinada cantidad de grados, y otros bajan esa temperatura. Ninguno de los componentes puede
faltar en el producto final.
Por razones de seguridad, en ningún momento la mezcla del contenedor puede tener una temperatura
inferiora cero grados (el contenedor está perfectamente aislado del exterior).
Las distancias entre dos regiones cualesquiera i y j (medidas en kilómetros) son datos fijos, que se
representan como constantes Dij. Así también la distancia entre la filial y cada región j es una constante
conocida Rj
A continuación se indica el efecto que tiene el componente de cada región sobre el Cadmio; las
variaciones de temperatura que éstos producen son constantes y se indican con letras.
Segundo cuatrimestre 2020 130
Ejercicios resueltos 3.16
2. Análisis de la situación problemática
Se trata de un problema del viajante, con la particularidad de que se debe mantener un orden en
particular para que la temperatura del contenedor no sea menor a cero grados.
3. Objetivo
Determinar en qué orden visitar las regiones del Sahara para minimizar la distancia de viaje.
4. Hipótesis y supuestos
• Solo se pasa una vez por cada región.
• No hay limitaciones para ir de una región a otra.
• Todos los caminos entre las regiones están habilitados.
• En los viajes no hay inconvenientes, retrasos, cambios de ruta, caminos cerrados, etc.
• El cambio de temperatura no depende del tiempo empleado en la región ni de otros factores
que no sean simplemente llegar a la región.
• El cambio de temperatura al llegar a una región será el mismo independientemente del origen.
• No hay límite máximo de temperatura para el contenedor.
5. Definición de variables
Las variables de decisión serán:
• Yi,j [binaria]: El recorrido incluye ir del punto i al punto j.
Segundo cuatrimestre 2020 131
Ejercicios resueltos 3.16
– Donde i, j ∈ {0, 1, 2, 3, 4, 5, 6}, i 6= j. La filial representa el punto 0 y el resto son las
regiones.
Se definen también las siguientes variables:
• Ui [natural]: Número de secuencia del punto i en el recorrido, con i 6= 0.
• Xi [◦C]: Temperatura del contenedor al llegar al punto i.
También, para simplificar el modelo, se reescriben los datos proporcionados:
• Di,j [km]: Distancia en kilómetros para ir del punto i al punto j.
– Donde ∀ j ∈ {1, · · · , 6} : Dj,0 = Rj , D0,j = Rj
• Ti [◦C]: Diferencia de temperatura al llegar a la región i.
6. Modelo de programación lineal
Cada región se visita una sola vez, por lo que a partir de cada región solo hay un único destino.
∀ i ∈ {0, 1, · · · , 6} :
6∑
j=1
j 6=i
Yi,j = 1
De la misma forma, a partir de cada región solo hay un único origen:
∀ j ∈ {0, 1, · · · , 6} :
6∑
i=1
i 6=j
Yi,j = 1
Se restringen las variables secuenciales, y así evitar subtours:
∀ i ∈ {1, · · · , 6}, j ∈ {1, · · · , 6} : Ui − Uj + 6 · Yi,j ≤ 5
Se restringe cada variableXi a partir de la diferencia de temperatura entre dos regiones (tomandoM
con valor “muy grande”). También por la condición de no negatividad, se asegura que en cada región
la temperatura será mayor o igual a cero.
∀ i ∈ {0, · · · , 6}, j ∈ {1, · · · , 6}, i 6= j : −M · (1− Yi,j) + Tj ≤ Xj −Xi ≤ Tj +M · (1− Yi,j)
En el punto de partida la temperatura del contenedor es cero:
X0 = 0
Segundo cuatrimestre 2020 132
Ejercicios resueltos 3.16
Finalmente, el funcional a minimizar será la distancia de las regiones a visitar:
Z =
6∑
j=1
6∑
i=1
i 6=j
Yi,j · Ci,j
7. Resolución por so�ware
Se toman los siguientes parámetros para la resolución:
• Distancias entre regiones D:
i/j 0 1 2 3 4 5 6
0 0 4 14 22 17 10 5
1 4 0 25 14 22 23 4
2 14 14 0 25 4 20 1
3 22 4 4 0 21 19 12
4 17 11 18 4 0 13 13
5 10 10 14 4 11 0 4
6 5 8 6 16 9 20 0
• Temperaturas de regiones T:
0 1 2 3 4 5 6
0 -1 3 6 -8 5 9
El modelo en GLPK será:
1 /* Parametros */
2
3 param M := 10000;
4
5 ## Costo de ir de una region "i" a otra region "j"
6 param D{i in 0..6, j in 0..6};
7
8 ## Diferencia de temperatura al llegar a la región T.
9 param T{i in 0..6};
10
11 /* Variables */
12
Segundo cuatrimestre 2020 133
Ejercicios resueltos 3.16
13 ## Se elije el camino de "i" a "j"
14 var Y{i in 0..6, j in 0..6}, binary;
15
16 ## Numero de secuencia en la cual la region "i" es visitada
17 var U{i in 0..6}, integer;
18
19 ## Temperatura cuando el contenedor pasa por la región "i"
20 var X{i in 0..6} >= 0;
21
22
23 /* Restricciones */
24
25 ## A partir de cada región "i" solo se puede ir a una sola región "j"
26 s.t. MAX_DESTINO{i in 0..6}: sum{j in 0..6: j <> i} Y[i,j] = 1;
27
28 ## Cada región "j" se visitó desde una sola región "i"
29 s.t. MAX_ORIGEN{j in 0..6}: sum{i in 0..6: i <> j} Y[i,j] = 1;
30
31 ## Restringir los numeros de secuencia
32 s.t. SEQ{i in 1..6, j in 1..6: i <> j}: U[i] - U[j] + 6 * Y[i,j] <= 5;
33
34 ## Vinculacion temperatura y orden de visita
35 s.t. VINC_TEMP_MIN{i in 0..6, j in 1..6: i <> j}: -M * (1 - Y[i,j]) + T[j] <= X[j] - X[i];
36 s.t. VINC_TEMP_MAX{i in 0..6, j in 1..6: i <> j}: X[j] - X[i] <= T[j] + M * (1 - Y[i,j]);
37
38 ## Temperatura nunca puede bajar de cero grados
39 s.t. TEMP_INICIAL: X[0] = 0;
40
41 minimize z: sum{i in 0..6, j in 0..6: j <> i} Y[i,j] * D[i,j];
42
43
44 data;
45
46 param D:
47 0 1 2 3 4 5 6 :=
48 0 0 4 14 22 17 10 5
49 1 4 0 25 14 22 23 4
50 2 14 14 0 25 4 20 1
51 3 22 4 4 0 21 19 12
52 4 17 11 18 4 0 13 13
53 5 10 10 14 4 11 0 4
54 6 5 8 6 16 9 20 0;
55
56 param T :=
57 0 0
58 1 3
59 2 -1
60 3 6
61 4 -8
62 5 5
63 6 9;
Y su resolución:
1 Problem: 3
2 Rows: 118
3 Columns: 55 (48 integer, 42 binary)
4 Non-zeros: 433
5 Status: INTEGER OPTIMAL
6 Objective: z = 36 (MINimum)
7
8 No. Row name Activity Lower bound Upper bound
9 ------ ------------ ------------- ------------- -------------
10 1 MAX_DESTINO[0]
Segundo cuatrimestre 2020 134
Ejercicios resueltos 3.16
11 1 1 =
12 2 MAX_DESTINO[1]
13 1 1 =
14 3 MAX_DESTINO[2]
15 1 1 =
16 4 MAX_DESTINO[3]
17 1 1 =
18 5 MAX_DESTINO[4]
19 1 1 =
20 6 MAX_DESTINO[5]
21 1 1 =
22 7 MAX_DESTINO[6]
23 1 1 =
24 8 MAX_ORIGEN[0]
25 1 1 =
26 9 MAX_ORIGEN[1]
27 1 1 =
28 10 MAX_ORIGEN[2]
29 1 1 =
30 11 MAX_ORIGEN[3]
31 1 1 =
32 12 MAX_ORIGEN[4]
33 1 1 =
34 13 MAX_ORIGEN[5]
35 1 1 =
36 14 MAX_ORIGEN[6]
37 1 1 =
38 15 SEQ[1,2] 3 5
39 16 SEQ[1,3] 1 5
40 17 SEQ[1,4] 2 5
41 18 SEQ[1,5] 5 5
42 19 SEQ[1,6] 4 5
43 20 SEQ[2,1] -3 5
44 21 SEQ[2,3] -2 5
45 22 SEQ[2,4] 5 5
46 23 SEQ[2,5] 2 5
47 24 SEQ[2,6] 1 5
48 25 SEQ[3,1] 5 5
49 26 SEQ[3,2] 2 5
50 27 SEQ[3,4] 1 5
51 28 SEQ[3,5] 4 5
52 29 SEQ[3,6] 3 5
53 30 SEQ[4,1] -2 5
54 31 SEQ[4,2] 1 5
55 32 SEQ[4,3] 5 5
56 33 SEQ[4,5] 3 5
57 34 SEQ[4,6] 2 5
58 35 SEQ[5,1] -5 5
59 36 SEQ[5,2] -2 5
60 37 SEQ[5,3] -4 5
61 38 SEQ[5,4] -3 5
62 39 SEQ[5,6] 5 5
63 40 SEQ[6,1] -4 5
64 41 SEQ[6,2] 5 5
65 42 SEQ[6,3] -3 5
66 43 SEQ[6,4] -2 5
67 44 SEQ[6,5] 1 5
68 45 VINC_TEMP_MIN[0,1]
69 -14 10001
70 46 VINC_TEMP_MIN[0,2]
71 -17 9997
72 47 VINC_TEMP_MIN[0,3]
73 -15 9994
74 48 VINC_TEMP_MIN[0,4]
Segundo cuatrimestre 2020 135
Ejercicios resueltos 3.16
75 -9 10008
76 49 VINC_TEMP_MIN[0,5]
77 9995 9995
78 50 VINC_TEMP_MIN[0,6]
79 -14 9991
80 51 VINC_TEMP_MIN[1,2]
81 -3 9997
82 52 VINC_TEMP_MIN[1,3]
83 -1 9994
84 53 VINC_TEMP_MIN[1,4]
85 5 10008
86 54 VINC_TEMP_MIN[1,5]
87 9 9995
88 55 VINC_TEMP_MIN[1,6]
89 0 9991
90 56 VINC_TEMP_MIN[2,1]
91 3 10001
92 57 VINC_TEMP_MIN[2,3]
93 2 9994
94 58 VINC_TEMP_MIN[2,4]
95 10008 10008
96 59 VINC_TEMP_MIN[2,5]
97 12 9995
98 60 VINC_TEMP_MIN[2,6]
99 3 9991
100 61 VINC_TEMP_MIN[3,1]
101 10001 10001
102 62 VINC_TEMP_MIN[3,2]
103 -2 9997
104 63 VINC_TEMP_MIN[3,4]
105 6 10008
106 64 VINC_TEMP_MIN[3,5]
107 10 9995
108 65 VINC_TEMP_MIN[3,6]
109 1 9991
110 66 VINC_TEMP_MIN[4,1]
111 -5 10001
112 67 VINC_TEMP_MIN[4,2]
113 -8 9997
114 68 VINC_TEMP_MIN[4,3]
115 9994 9994
116 69 VINC_TEMP_MIN[4,5]
117 4 9995
118 70 VINC_TEMP_MIN[4,6]
119 -5 9991
120 71 VINC_TEMP_MIN[5,1]
121 -9 10001
122 72 VINC_TEMP_MIN[5,2]
123 -12 9997
124 73 VINC_TEMP_MIN[5,3]
125 -10 9994
126 74 VINC_TEMP_MIN[5,4]
127 -4 10008
128 75 VINC_TEMP_MIN[5,6]
129 9991 9991
130 76 VINC_TEMP_MIN[6,1]
131 0 10001
132 77 VINC_TEMP_MIN[6,2]
133 9997 9997
134 78 VINC_TEMP_MIN[6,3]
135 -1 9994
136 79 VINC_TEMP_MIN[6,4]
137 5 10008
138 80 VINC_TEMP_MIN[6,5]
Segundo cuatrimestre 2020 136
Ejercicios resueltos 3.16
139 9 9995
140 81 VINC_TEMP_MAX[0,1]
141 14 9999142 82 VINC_TEMP_MAX[0,2]
143 17 10003
144 83 VINC_TEMP_MAX[0,3]
145 15 10006
146 84 VINC_TEMP_MAX[0,4]
147 9 9992
148 85 VINC_TEMP_MAX[0,5]
149 10005 10005
150 86 VINC_TEMP_MAX[0,6]
151 14 10009
152 87 VINC_TEMP_MAX[1,2]
153 3 10003
154 88 VINC_TEMP_MAX[1,3]
155 1 10006
156 89 VINC_TEMP_MAX[1,4]
157 -5 9992
158 90 VINC_TEMP_MAX[1,5]
159 -9 10005
160 91 VINC_TEMP_MAX[1,6]
161 0 10009
162 92 VINC_TEMP_MAX[2,1]
163 -3 9999
164 93 VINC_TEMP_MAX[2,3]
165 -2 10006
166 94 VINC_TEMP_MAX[2,4]
167 9992 9992
168 95 VINC_TEMP_MAX[2,5]
169 -12 10005
170 96 VINC_TEMP_MAX[2,6]
171 -3 10009
172 97 VINC_TEMP_MAX[3,1]
173 9999 9999
174 98 VINC_TEMP_MAX[3,2]
175 2 10003
176 99 VINC_TEMP_MAX[3,4]
177 -6 9992
178 100 VINC_TEMP_MAX[3,5]
179 -10 10005
180 101 VINC_TEMP_MAX[3,6]
181 -1 10009
182 102 VINC_TEMP_MAX[4,1]
183 5 9999
184 103 VINC_TEMP_MAX[4,2]
185 8 10003
186 104 VINC_TEMP_MAX[4,3]
187 10006 10006
188 105 VINC_TEMP_MAX[4,5]
189 -4 10005
190 106 VINC_TEMP_MAX[4,6]
191 5 10009
192 107 VINC_TEMP_MAX[5,1]
193 9 9999
194 108 VINC_TEMP_MAX[5,2]
195 12 10003
196 109 VINC_TEMP_MAX[5,3]
197 10 10006
198 110 VINC_TEMP_MAX[5,4]
199 4 9992
200 111 VINC_TEMP_MAX[5,6]
201 10009 10009
202 112 VINC_TEMP_MAX[6,1]
Segundo cuatrimestre 2020 137
Ejercicios resueltos 3.16
203 0 9999
204 113 VINC_TEMP_MAX[6,2]
205 10003 10003
206 114 VINC_TEMP_MAX[6,3]
207 1 10006
208 115 VINC_TEMP_MAX[6,4]
209 -5 9992
210 116 VINC_TEMP_MAX[6,5]
211 -9 10005
212 117 TEMP_INICIAL 0 -0 =
213 118 z 36
214
215 No. Column name Activity Lower bound Upper bound
216 ------ ------------ ------------- ------------- -------------
217 1 Y[0,1] * 0 0 1
218 2 Y[0,2] * 0 0 1
219 3 Y[0,3] * 0 0 1
220 4 Y[0,4] * 0 0 1
221 5 Y[0,5] * 1 0 1
222 6 Y[0,6] * 0 0 1
223 7 Y[1,0] * 1 0 1
224 8 Y[1,2] * 0 0 1
225 9 Y[1,3] * 0 0 1
226 10 Y[1,4] * 0 0 1
227 11 Y[1,5] * 0 0 1
228 12 Y[1,6] * 0 0 1
229 13 Y[2,0] * 0 0 1
230 14 Y[2,1] * 0 0 1
231 15 Y[2,3] * 0 0 1
232 16 Y[2,4] * 1 0 1
233 17 Y[2,5] * 0 0 1
234 18 Y[2,6] * 0 0 1
235 19 Y[3,0] * 0 0 1
236 20 Y[3,1] * 1 0 1
237 21 Y[3,2] * 0 0 1
238 22 Y[3,4] * 0 0 1
239 23 Y[3,5] * 0 0 1
240 24 Y[3,6] * 0 0 1
241 25 Y[4,0] * 0 0 1
242 26 Y[4,1] * 0 0 1
243 27 Y[4,2] * 0 0 1
244 28 Y[4,3] * 1 0 1
245 29 Y[4,5] * 0 0 1
246 30 Y[4,6] * 0 0 1
247 31 Y[5,0] * 0 0 1
248 32 Y[5,1] * 0 0 1
249 33 Y[5,2] * 0 0 1
250 34 Y[5,3] * 0 0 1
251 35 Y[5,4] * 0 0 1
252 36 Y[5,6] * 1 0 1
253 37 Y[6,0] * 0 0 1
254 38 Y[6,1] * 0 0 1
255 39 Y[6,2] * 1 0 1
256 40 Y[6,3] * 0 0 1
257 41 Y[6,4] * 0 0 1
258 42 Y[6,5] * 0 0 1
259 43 U[2] * 2
260 44 U[1] * 5
261 45 U[3] * 4
262 46 U[4] * 3
263 47 U[5] * 0
264 48 U[6] * 1
265 49 X[0] 0 0
266 50 X[1] 14 0
Segundo cuatrimestre 2020 138
Ejercicios resueltos 3.16
267 51 X[2] 17 0
268 52 X[3] 15 0
269 53 X[4] 9 0
270 54 X[5] 5 0
271 55 X[6] 14 0
272
273 Integer feasibility conditions:
274
275 KKT.PE: max.abs.err = 1.78e-15 on row 64
276 max.rel.err = 6.13e-17 on row 80
277 High quality
278
279 KKT.PB: max.abs.err = 7.28e-12 on row 77
280 max.rel.err = 7.28e-16 on row 77
281 High quality
282
283 End of output
8. Informe de la solución óptima
Para recorrer una distancia de 36 kilómetros, se deben visitar las regiones en el orden: 5, 6, 2, 4, 3, 1.
Sin importar los datos de T y D, las regiones 1 y 4 nunca podrán ser las primeras en ser visitadas
porque se estaría permitiendo al contenedor bajar a menos de cero grados.
En el caso que la suma de diferencias de temperatura de las regiones 2, 3, 5 y 6 es menor que la suma
de las diferencias de temperatura de las regiones 1 y 4, el modelo no tendrá solución.
Correcciones
Buenas noches Javier,
Te dejo las correcciones del ejercicio.
Segundo cuatrimestre 2020 139
Ejercicios resueltos 3.16
Saludos!
Análisis: Excelente
Está perfecto el análisis ya que identifica el TSP y además marcás la diferencia de acumulación.
A modo informativo nada más, este tipo de problemas se llama “Problema del viajante con
acumulación” (de todos modos, cómo dije antes, el análisis que hiciste está perfecto).
El gráfico es muy bueno también.
Objetivo: Pobre
Las dos partes presentes son correctas, pero falta el cuándo. Lamentablemente a estas alturas
vamos a penalizar mucho este tipo de errores (de la misma forma que se haría en el parcial)
Hipótesis: Muy Bien
Ojo con la hipótesis 2, como siempre decimos, cuando ponen ese tipo de restricciones aclaren
“más allá de la temperatura” o más genérico “más allá de las mencionadas en el enunciado”.
Variables: Muy Bien
Modelo: Excelente
Resolución por so�ware: Muy Bien
Informe: Excelente
Sería útil además aclarar qué temperatura tiene el cadmio en cada región.
Nuevamente el gráfico es muy útil para mostrar la solución
Segundo cuatrimestre 2020 140
Ejercicios resueltos 3.20
3.20
1. Enunciado
TURBIFORT, importante productor de turbinas, posee dos divisiones básicas: aeronáutica y represas
La División Aeronáutica tiene el siguiente proceso:
Cada avión dispone de 4 turbinas. El armado del fuselaje implica 48.000 horas hombre por unidad y se
dispone de 40.000 horas hombre por mes. Es decisión tomada que si no se producen más de 5 aviones
en el año que viene, la planta se cierra, implicando un costo por indemnizaciones de $1.000.000. El
precio de venta de cada avión es $16.000.000. El costo del fuselaje, $3.000.000.
La División Represas tiene dos propuestas:
• Represa A – Requiere una obra civil de 50.000m2 y se instalarán 8 turbinas. Monto del contrato,
$A
• Represa B – Requiere una obra civil de 80.000m2 y se instalarán 10 turbinas. Monto del contrato,
$B
Para efectuar las obras civiles cuenta con 800 operarios que trabajan razón de 1m2/operario por día.
La dotación no se incrementará. Se estima un costo por obra civil de $ 70 x 106 para la Represa A y de $
110 x 106 para B.
La obra A se debe entregar a los 120 días a contar del 1o de enero próximo y la B a los 300 días. No hay
prórrogas.
El proceso de construcción es como sigue:
El costo del montaje es $15.000.000.
La fábrica de turbinas que abastece a las dos divisiones tiene un estándar de 24.000 hh/turbina y
cuenta con 2 turnos de 100 personas c/u que trabajan 8 hs. El costo de cada turbina terminada es
$2.000.000
Segundo cuatrimestre 2020 141
Ejercicios resueltos 3.20
2. Análisis de la situación problemática
Se trata de un problema de planificación de producción con múltiples periodos.
Las dos distintas divisiones de la empresa pueden producir y construir su propio producto, y ambas
comparten la producción de turbinas.
También se deben considerar los periodos sobre los cuáles se deben completar las represas A y B.
3. Objetivo
Determinar cuáles de las propuestas de las obras aceptar y la cantidad de aviones a producir para
maximizar la ganancia del próximo año.
4. Hipótesis y supuestos
• Aunque se produzcan cinco aviones o menos y se cierre la planta aeronáutica, lo producido se
venderá.
• De la misma forma, la planta aeronáutica permanecerá abierta si se producen cinco aviones y
uno sin terminar.
• No hay más costos asociados al cerrar la planta además de la indemnización.
• Todos los aviones producidos se venden.
• Se puede producir y vender cantidades arbitrariamente pequeñas de avión, proporcional a su
cantidad de turbinas y fuselaje.
• El único costo y limitante para el armado de aviones son las turbinas y el fuselaje.
• El tiempo del montaje final de los aviones es despreciable (menor a un día).
• No hay fallas de producción.
• No hay criterios ni cambios en la producción de turbinas si estas se utilizan para los aviones o
las represas.
• Los operarios y mano de obra están disponibles para trabajar todos los días del año.
Segundo cuatrimestre 2020 142
Ejercicios resueltos 3.20
• El costo de montaje para cada represa es fijo (no varía con la cantidad de turbinas ni de metros
cuadrados de la obra).
• Los contratos de las represas no se cancelarán por factores externos a mitad del año.
• No hay limitaciones financieras ni de almacenamiento.
• La mano de obra de la división aeronáutica y la de represas no son intercambiables entresí.
• Las turbinas y la obra civil para cada represa debe estar lista antes del periodo de 30 días de
montaje.
5. Definición de variables
Las variables de decisión serán:
• PAV [aviones/año]: Aviones a producir en el año.
• IA [binaria]: Se acepta la obra para la represa A.
• IB [binaria]: Se acepta la obra para la represa B.
Se definen las siguientes variables relacionadas a la producción de aviones:
• TAV,i [turbinas/año]: Cantidad de turbinas a producir en el periodo idestinadas a la producción
de aviones, donde:
– i = 1 para el periodo entre los días 0 y 90.
– i = 2 para el periodo entre los días 90 y 270.
– i = 3 para el periodo entre los días 270 y 365.
• IAV [binaria]: Toma valor 1 no se cierra la planta.
Las siguientes variables relacionadas a la represa A:
• OPA,1 [operarios/año]: Cantidad de operarios asignados a la represa A en el periodo 1.
• TA,1 [turbinas/año]: Cantidad de turbinas a producir en el periodo 1 destinadas a la represa A.
Las siguientes variables relacionadas a la represa B:
• OPB,1 [operarios/año]: Cantidad de operarios asignados a la represa B en el periodo 1.
• OPB,2 [operarios/año]: Cantidad de operarios asignados a la represa B en el periodo 2.
• TB,1 [turbinas/año]: Cantidad de turbinas a producir en el periodo 1 destinadas a la represa B.
• TB,2 [turbinas/año]: Cantidad de turbinas a producir en el periodo 2 destinadas a la represa B.
Finalmente, algunas variables generales:
• TT OT AL [turbinas/año]: Cantidad total de turbinas a producir en el año.
• COSTOT OT AL [$/año]: Dinero total invertido en el año.
• BENEFT OT AL [$/año]: Dinero total ganado en el año.
Segundo cuatrimestre 2020 143
Ejercicios resueltos 3.20
6. Modelo de programación lineal
Horas hombre máxima para la producción del fuselaje de los aviones:
PAV ·
fuselaje
avion
· 48000hh
fuselaje
≤ 40000hh
mes
· 12mes
año
Cantidad de turbinas necesarias para la producción de aviones
PAV
4 · turbinas
avion
= TAV,1 + TAV,2 + TAV,3
Indicadora para la producción mínima de aviones sin cerrar la planta (siendom una constante con
valor “muy chico”):
(5 +m) · IAV ≤ PAV
Máximo de turbinas para cada periodo:
(TA,1 + TB,1 + TAV,1) ·
24000hh
turbina
≤ 8hh
persona
· 100personas
turno
· 2turnos
dia
· 90dias
año
(TB,2 + TAV,2) ·
24000hh
turbina
≤ 8hh
persona
· 100personas
turno
· 2turnos
dia
· 18dias
año
(TAV,3) ·
24000hh
turbina
≤ 8hh
persona
· 100personas
turno
· 2turnos
dia
· 95dias
año
Vinculación de todas las turbinas fabricadas:
TT OT AL = TA,1 + TB,1 + TB,2 + TAV,1 + TAV,2 + TAV,3
Si se acepta la represa A, se debe fabricar las turbinas necesarias para esta:
8turbina
año · IA ≤ TA,1 ≤
8turbina
año · IA
Lo mismo con la represa B:
10turbina
año · IB ≤ TB,1 ≤
10turbina
año · IB
Se debe considerar la cantidad de operarios necesarios para las obras de las represas:
50000operarios
año · IA ≤ OPA,1 ≤
50000operarios
año · IA
Segundo cuatrimestre 2020 144
Ejercicios resueltos 3.20
80000operarios
año · IB ≤ OPB,1 +OPB,2 ≤
80000operarios
año · IB
Y la disponibilidad de operarios para cada periodo:
OPA,1 +OPB,1 ≤
800operarios
dia
· 90dia
año
OPB,2 ≤
800operarios
dia
· 180dia
año
La vinculación total del costo, recordando el costo asociado a cada obra y su montaje:
COSTOT OT AL = TT OT AL ·
2.000.000$
turbina
+ IA ·
(70.000.000 + 15.000.000)$
año
+IB ·
(110.000.000 + 15.000.000)$
año + (1− IAV ) ·
1.000.000$
año
+PAV ·
3.000.000$
avion
La vinculación total del beneficio:
BENEFT OT AL = IA ·
A$
año + IB ·
B$
año + PAV ·
16.000.000$
avion
Finalmente, el funcional a maximizar:
Z = BENEFT OT AL − COSTOT OT AL
7. Resolución por so�ware
Tomando los siguientes parámetros:
• A = 120000000
• B = 170000000
El modelo en GLPK será:
1 /* Parametros */
2 param A := 120000000;
3 param B := 170000000;
4 param m := 0.001;
5
6 /* Variables */
7
8 ## Produccion de aviones
9 var P_AV >= 0;
10 var T_AV_1 >= 0;
Segundo cuatrimestre 2020 145
Ejercicios resueltos 3.20
11 var T_AV_2 >= 0;
12 var T_AV_3 >= 0;
13 var I_AV, binary;
14
15 ## Represa A
16 var T_A_1 >= 0;
17 var OP_A_1 >= 0;
18 var I_A, binary;
19
20 ## Represa B
21 var T_B_1 >= 0;
22 var T_B_2 >= 0;
23 var OP_B_1 >= 0;
24 var OP_B_2 >= 0;
25 var I_B, binary;
26
27 ## Turbinas
28 var T_TOTAL >= 0;
29
30 var COSTO_TOTAL >= 0;
31 var BENEF_TOTAL >= 0;
32
33 /* Restricciones */
34
35 s.t. MAX_HH_FUSELAJE: P_AV * 48000 <= 40000 * 12;
36 s.t. VINCULACION_TURBINAS_AVION: P_AV * 4 = T_AV_1 + T_AV_2 + T_AV_3;
37
38 s.t. VINCULACION_PROD_AVIONES_MIN: (5 + m) * I_AV <= P_AV;
39
40 s.t. VINCULACION_TURBINAS: T_TOTAL = T_A_1 + T_B_1 + T_B_2 + T_AV_1 + T_AV_2 + T_AV_3;
41
42 s.t. MAX_TURBINAS_1: (T_A_1 + T_B_1 + T_AV_1) * 24000 <= 2 * 100 * 8 * 90;
43 s.t. MAX_TURBINAS_2: (T_B_2 + T_AV_2) * 24000 <= 2 * 100 * 8 * 180;
44 s.t. MAX_TURBINAS_3: (T_AV_3) * 24000 <= 2 * 100 * 8 * 95;
45
46 s.t. TURBINAS_REPRESA_A_MIN: 8 * I_A <= T_A_1;
47 s.t. TURBINAS_REPRESA_A_MAX: T_A_1 <= 8 * I_A;
48
49 s.t. TURBINAS_REPRESA_B_MIN: 10 * I_B <= T_B_1 + T_B_2;
50 s.t. TURBINAS_REPRESA_B_MAX: T_B_1 + T_B_2 <= 10 * I_B;
51
52 s.t. OP_A_MIN: 50000 * I_A <= OP_A_1;
53 s.t. OP_A_MAX: OP_A_1 <= 50000 * I_A;
54
55 s.t. OP_B_MIN: 80000 * I_B <= OP_B_1 + OP_B_2;
56 s.t. OP_B_MAX: OP_B_1 + OP_B_2 <= 80000 * I_B;
57
58 s.t. OP_TOTAL_1_MAX: OP_A_1 + OP_B_1 <= 800 * 90;
59 s.t. OP_TOTAL_2_MAX: OP_B_2 <= 800 * 180;
60
61 s.t. VINCULACION_COSTO_TOTAL: COSTO_TOTAL = T_TOTAL * 2000000 + I_A * (70000000 +
15000000) + I_B * (110000000 + 15000000) + (1 - I_AV) * 1000000 + P_AV * 3000000;
62
63 s.t. VINCULACION_BENEF_TOTAL: BENEF_TOTAL = I_A * A + I_B * B + P_AV * 16000000;
64
65 /* Funcional */
66 maximize z: BENEF_TOTAL - COSTO_TOTAL;
Y su resolución:
1 Problem: 3
2 Rows: 20
3 Columns: 16 (3 integer, 3 binary)
4 Non-zeros: 55
Segundo cuatrimestre 2020 146
Ejercicios resueltos 3.20
5 Status: INTEGER OPTIMAL
6 Objective: z = 41916666.67 (MAXimum)
7
8 No. Row name Activity Lower bound Upper bound
9 ------ ------------ ------------- ------------- -------------
10 1 MAX_HH_FUSELAJE
11 172000 480000
12 2 VINCULACION_TURBINAS_AVION
13 0 -0 =
14 3 VINCULACION_PROD_AVIONES_MIN
15 -3.58333 -0
16 4 VINCULACION_TURBINAS
17 0 -0 =
18 5 MAX_TURBINAS_1
19 144000 144000
20 6 MAX_TURBINAS_2
21 288000 288000
22 7 MAX_TURBINAS_3
23 152000 152000
24 8 TURBINAS_REPRESA_A_MIN
25 0 -0
26 9 TURBINAS_REPRESA_A_MAX
27 0 -0
28 10 TURBINAS_REPRESA_B_MIN
29 0 -0
30 11 TURBINAS_REPRESA_B_MAX
31 0 -0
32 12 OP_A_MIN 0 -0
33 13 OP_A_MAX 0 -0
34 14 OP_B_MIN 0 -0
35 15 OP_B_MAX 0 -0
36 16 OP_TOTAL_1_MAX
37 72000 72000
38 17 OP_TOTAL_2_MAX
39 8000 144000
40 18 VINCULACION_COSTO_TOTAL
41 1e+06 1e+06 =
42 19 VINCULACION_BENEF_TOTAL
43 0 -0 =
44 20 z 4.19167e+07
45
46 No. Column name Activity Lower bound Upper bound
47 ------ ------------ ------------- ------------- -------------
48 1 P_AV 3.58333 0
49 2 T_AV_1 0 0
50 3 T_AV_2 8 0
51 4 T_AV_3 6.33333 0
52 5 I_AV * 0 0 1
53 6 T_A_1 0 0
54 7 OP_A_1 0 0
55 8 I_A * 0 0 1
56 9 T_B_1 6 0
57 10 T_B_2 4 0
58 11 OP_B_1 72000 0
59 12 OP_B_2 8000 0
60 13 I_B * 1 0 1
61 14 T_TOTAL 24.3333 0
62 15 COSTO_TOTAL 1.85417e+08 0
63 16 BENEF_TOTAL 2.27333e+08 0
64
65 Integer feasibility conditions:
66
67 KKT.PE: max.abs.err = 0.00e+00 on row 0
68 max.rel.err = 0.00e+00 on row 0
Segundo cuatrimestre 2020 147
Ejercicios resueltos 3.20
69 High quality
70
71 KKT.PB: max.abs.err = 2.91e-11 on row 5
72 max.rel.err = 2.02e-16 on row 5
73 High quality
74
75 End of output
8. Informe de la solución óptima
Se encontró que, para los parámetros elegidos, la solución óptima es construir la represa B y construir
3.58333 de aviones (cerrando la planta), para una ganancia de $41916666.67.
Sin importar el valor del parámetro A, la represa A nunca se va a construir porque no se pueden fabricar
suficientes turbinas en ese periodo de 90 días.
Si se cambiara la hipótesis “las turbinas y la obra civil para cada represa debe estar lista antes del
periodo de 30 días de montaje” de tal forma que se puedan construir turbinas durante el periodo de
montaje, permitiríaun total de 120 días para la producción de turbinas, posibilitando la construcción
de esta represa.
Segundo cuatrimestre 2020 148
Ejercicios resueltos 3.34
3.34
1. Enunciado
Usted trabaja en una empresa que construye edificios de departamentos. En este momento cuentan
con 4 terrenos, con planos aprobados, todo listo para comenzar. Los 4 edificios son distintos en tamaño
y características técnicas.
La construcción la realizan tres equipos, primero trabaja el Alfa que hace el pozo y construye el
hormigón, luego viene el equipo Beta que construye las paredes y coloca las cañerías; por último el
equipo Gama, azuleja, pinta, instala artefactos, etc. hasta dejar el edificio listo. Cuenta con un equipo
de cada tipo.
La venta de cada uno de los edificios se inicia cuando comienza su trabajo el equipo Gama y se
completa en un mes, es decir que en un mes ya tienen todas las unidades del edificio vendidas (burbuja
inmobiliaria, que le dicen).
Para poder financiar la obra cuenta con $X al comenzar. Sin embargo, la idea es financiarse con la
venta de los edificios que se van terminando, dado que con los $X probablemente no alcance para
todos los gastos que hay que pagar de los cuatro edificios. Los costos de cada tarea (Alfa, Beta, Gama)
en cada edificio, hay que pagarlos al comenzar a trabajar el equipo en esa tarea para ese edificio.
A continuación se indica, para cada edificio, cuántos meses de trabajo implica cada tarea y cuál es el
costo de esa tarea. También se indica cuánto dinero se obtendrá por la venta del edificio completo.
2. Análisis de la situación problemática
Se trata de un problema de calendarización con cuatro edificios que deben pasar por tres tareas
distintas, considerando también una restricción financiera.
3. Objetivo
Determinar el orden en realizar cada tarea de cada edificio para minimizar el tiempo de fin de obra
durante el plazo de construcción.
Segundo cuatrimestre 2020 149
Ejercicios resueltos 3.34
4. Hipótesis y supuestos
• Siempre se venden todos los edificios a tiempo (un mes después de que empieza a trabajar el
equipo Gamma en este) y por el precio mencionado en los datos.
• Cuando un equipo termina una tarea, inmediatamente pueden comenzar con otra.
• No hay retrasos ni fallas en las tareas.
• No hay costos adicionales más allá de los mencionados en los datos.
• No hay inflación ni variación en los precios.
• No hay tiempo límite para finalizar las obras.
• De la misma forma, no hay tiempo límite para pasar de una tarea a otra.
• Cada equipo no puede trabajar en dos edificios al mismo tiempo.
• Cada equipo trabaja en el edificio de forma ininterrumpida hasta finalizar su tarea.
• Exactamente un mes después de que el equipo Gama comienza su tarea, estará disponible el
dinero de la venta de ese edificio.
5. Definición de variables
Se definen las variables de control:
• Ii,j [mes]: Mes de inicio de la tarea del edificio i con el equipo j, donde:
– i ∈ {1, 2, 3, 4} = EDIF .
– j ∈ {A,B,G} = EQUIP .
También se definen las siguientes variables:
• Fi,j [mes]: Mes de finalización de la tarea del edificio i con el equipo j.
• Y anuloj,i,k [binaria]: Toma valor 1 si se termina la tarea del equipo j en el edificio i después de
que el equipo empiece la tarea en el edificio k.
– Donde k ∈ EDIF .
• Dm [$]: Dinero disponible el mesm.
– Donde se utiliza una constanteMAX_MES, y luegom ∈ {−1, 0, 1, ...,MAX_MES} =
MESES.
– D−1 es el dinero al comienzo de las obras.
• Y inicioi,j,m [binaria]: Toma valor 1 si la tarea del edificio i con el equipo j empezó en el mesm.
• FINAL [mes]: Mes en el cuál se finalizaron todas las obras.
Y se generalizan todos los parámetros del problema:
Segundo cuatrimestre 2020 150
Ejercicios resueltos 3.34
• Ci,j [$]: Costo para que el equipo j haga la tarea en el edificio i.
• MGi,j [meses]: Meses que emplea el equipo j en realizar la tarea en el edificio i.
• EDi [$]: Dinero al recibir por la venta del edificio i.
• X [$]: Dinero inicial.
6. Modelo de programación lineal
La vinculación inicio/fin de las tareas:
∀ i ∈ EDIF, j ∈ EQUIP : Fi,j = Ii,j +MGi,j
Las tareas deben realizarse en orden:
∀ i ∈ EDIF :
Fi,A ≤ Ii,B
Fi,A ≤ Ii,G
Fi,B ≤ Ii,G
La vinculación de las variables Y anuloj,i,k:
∀ i, k ∈ EDIF, j ∈ EQUIP, i 6= k :
Fi,j ≤ Ik,j +M · Y anuloj,i,k
Y anuloj,i,k + Y anuloj,k,i = 1
La vinculación de las variables Y inicioi,j,m:
∀ i ∈ EDIF, j ∈ EQUIP, m ∈MESES − {−1} :
m · Y inicioi,j,m −M · (1− Y inicioi,j,m) ≤ Ii,j ≤ m · Y inicioi,j,m +M · (1− Y inicioi,j,m)
Solo existe un único mes de inicio por edificio y equipo:
∀ i ∈ EDIF, j ∈ EQUIP :
∑
m∈MESES
Y inicioi,j,m = 1
Segundo cuatrimestre 2020 151
Ejercicios resueltos 3.34
En el primer mes el dinero será X:
D−1 = X
Se vincula el dinero de cada mes a partir del dinero del mes anterior y si se empezó una tarea (resta
dinero), o bien pasó un mes desde que el equipo Gama empezó su tarea (suma dinero). Por la condición
de no negatividad, se asegura que el valor de estas variables no caerán debajo de cero:
∀ m ∈MESES − {−1} :
Dm = Dm−1 +
( ∑
i∈EDIF
EDi · Y inicioi,G,m−1
)
−
∑
i∈EDIF
j∈EQUIP
Ci,j · Y inicioi,j,m
Por último, vinculación de la variable FINAL y el funcional:
∀ i ∈ EDIF, j ∈ EQUIP : Fi,j ≤ FINAL
Z = FINAL
7. Resolución por so�ware
Por un problema con GLPK y variables enteras, se modifica levemente la restricción de la vin-
culación de las variables Y inicioi,j,m para que las variables Ii,j puedan tomar un rango con un
error de K = 0.0001. Sin esta modificación habría una superposición de tareas en algún edificio.
Se utilizan los siguientes parámetros para la resolución:
1 param C:
2 'A' 'B' 'G' :=
3 1 10 90 7
4 2 14 19 5
5 3 14 11 26
6 4 10 17 3;
7
8
9 param MG:
10 'A' 'B' 'G' :=
11 1 5 2 6
12 2 4 3 3
13 3 3 4 2
14 4 2 5 3;
15
16 param ED :=
17 1 45
18 2 40
19 3 50
20 4 47;
21
22 param X := 95;
Segundo cuatrimestre 2020 152
Ejercicios resueltos 3.34
El modelo en GLPK será:
1 /* Parametros */
2
3 param M := 100000;
4 param K := 0.0001;
5 param MAX_MESES := 25;
6
7 set EDIFICIOS := {1..4};
8 set EQUIPOS;
9
10 param C{i in EDIFICIOS, j in EQUIPOS};
11
12 param MG{i in EDIFICIOS, j in EQUIPOS};
13
14 param ED{i in EDIFICIOS};
15
16 param X;
17
18 /* Variables */
19
20 var I{i in EDIFICIOS, j in EQUIPOS} >= 0;
21 var F{i in EDIFICIOS, j in EQUIPOS} >= 0;
22
23 var Y_ANULO{j in EQUIPOS, i in EDIFICIOS, k in EDIFICIOS: i <> k}, binary;
24
25 var D{m in -1..MAX_MESES} >= 0;
26
27 var Y_INICIO{i in EDIFICIOS, j in EQUIPOS, m in -1..MAX_MESES}, binary;
28
29 var FINAL >= 0;
30
31 /* Restricciones */
32
33 s.t. VINCULACION_I_F{i in EDIFICIOS, j in EQUIPOS}: F[i,j] = I[i,j] + MG[i,j];
34
35 s.t. TAREAS_EN_ORDEN_A_B{i in EDIFICIOS, j in EQUIPOS, k in EQUIPOS: j < k}: F[i,'A'] <= I
[i,'B'];
36 s.t. TAREAS_EN_ORDEN_A_G{i in EDIFICIOS, j in EQUIPOS, k in EQUIPOS: j < k}: F[i,'A'] <= I
[i,'G'];
37 s.t. TAREAS_EN_ORDEN_B_G{i in EDIFICIOS, j in EQUIPOS, k in EQUIPOS: j < k}: F[i,'B'] <= I
[i,'G'];
38
39 s.t. VINCULACION_FINAL{i in EDIFICIOS, j in EQUIPOS}: F[i,j] <= FINAL;
40
41 s.t. UNICA_TAREA_POR_EDIFICIO_1{i in EDIFICIOS, k in EDIFICIOS, j in EQUIPOS: i <> k}: F[i
,j] <= I[k,j] + M * Y_ANULO[j,i,k];
42 s.t. INDICADORA_UNICA_TAREA{j in EQUIPOS, i in EDIFICIOS, k in EDIFICIOS: i <> k}: Y_ANULO
[j,i,k] + Y_ANULO[j,k,i] = 1;
43
44 s.t. VINCULACION_MES_INICIO_TAREA_MIN{i in EDIFICIOS, j in EQUIPOS, m in 0..MAX_MESES}: (m
- K) * Y_INICIO[i,j,m] - M*(1-Y_INICIO[i,j,m]) <= I[i,j];
45 s.t. VINCULACION_MES_INICIO_TAREA_MAX{i in EDIFICIOS, j in EQUIPOS, m in 0..MAX_MESES}: I[
i,j] <= (m + K) * Y_INICIO[i,j,m] + M*(1-Y_INICIO[i,j,m]);
46 s.t. MES_INICIAL_TAREA{i in EDIFICIOS, j in EQUIPOS}: Y_INICIO[i,j,-1] = 0;
47
48 s.t. UNICO_MES_DE_INICIO{i in EDIFICIOS, j in EQUIPOS}: sum{m in -1..MAX_MESES} Y_INICIO[i
,j,m] = 1;
49
50 s.t. CAJA_INICIAL: D[-1] = X;
51
52 s.t. DIFERENCIA_CAJA{m in 0..MAX_MESES}: D[m] = D[m-1] + (sum{j in EDIFICIOS} ED[j] *
Y_INICIO[j, 'G', m-1]) - (sum{j in EDIFICIOS, k in EQUIPOS} C[j,k] * Y_INICIO[j, k, m
]);
Segundocuatrimestre 2020 153
Ejercicios resueltos 3.34
53
54 minimize z: FINAL;
55
56 data;
57
58 set EQUIPOS := 'A' 'B' 'G';
59
60
61 param C:
62 'A' 'B' 'G' :=
63 1 10 90 7
64 2 14 19 5
65 3 14 11 26
66 4 10 17 3;
67
68
69 param MG:
70 'A' 'B' 'G' :=
71 1 5 2 6
72 2 4 3 3
73 3 3 4 2
74 4 2 5 3;
75
76 param ED :=
77 1 45
78 2 40
79 3 50
80 4 47;
81
82
83 param X := 95;
84
85 end;
Y su resultado:
1 Problem: 3
2 Rows: 808
3 Columns: 412 (360 integer, 360 binary)
4 Non-zeros: 2354
5 Status: INTEGER OPTIMAL
6 Objective: z = 22.9999 (MINimum)
7
8 No. Column name Activity Lower bound Upper bound
9 ------ ------------ ------------- ------------- -------------
10 1 I[1,A] 6 0
11 2 I[1,B] 11 0
12 3 I[1,G] 13 0
13 4 I[2,A] 2 0
14 5 I[2,B] 7 0
15 6 I[2,G] 10 0
16 7 I[3,A] 13.9999 0
17 8 I[3,B] 16.9999 0
18 9 I[3,G] 20.9999 0
19 10 I[4,A] 0 0
20 11 I[4,B] 2 0
21 12 I[4,G] 7 0
22 13 F[1,A] 11 0
23 14 F[1,B] 13 0
24 15 F[1,G] 19 0
25 16 F[2,A] 6 0
26 17 F[2,B] 10 0
27 18 F[2,G] 13 0
28 19 F[3,A] 16.9999 0
Segundo cuatrimestre 2020 154
Ejercicios resueltos 3.34
29 20 F[3,B] 20.9999 0
30 21 F[3,G] 22.9999 0
31 22 F[4,A] 2 0
32 23 F[4,B] 7 0
33 24 F[4,G] 10 0
34 25 Y_ANULO[A,1,2]
35 * 1 0 1
36 26 Y_ANULO[B,1,2]
37 * 1 0 1
38 27 Y_ANULO[G,1,2]
39 * 1 0 1
40 28 Y_ANULO[A,1,3]
41 * 0 0 1
42 29 Y_ANULO[B,1,3]
43 * 0 0 1
44 30 Y_ANULO[G,1,3]
45 * 0 0 1
46 31 Y_ANULO[A,1,4]
47 * 1 0 1
48 32 Y_ANULO[B,1,4]
49 * 1 0 1
50 33 Y_ANULO[G,1,4]
51 * 1 0 1
52 34 Y_ANULO[A,2,1]
53 * 0 0 1
54 35 Y_ANULO[B,2,1]
55 * 0 0 1
56 36 Y_ANULO[G,2,1]
57 * 0 0 1
58 37 Y_ANULO[A,2,3]
59 * 0 0 1
60 38 Y_ANULO[B,2,3]
61 * 0 0 1
62 39 Y_ANULO[G,2,3]
63 * 0 0 1
64 40 Y_ANULO[A,2,4]
65 * 1 0 1
66 41 Y_ANULO[B,2,4]
67 * 1 0 1
68 42 Y_ANULO[G,2,4]
69 * 1 0 1
70 43 Y_ANULO[A,3,1]
71 * 1 0 1
72 44 Y_ANULO[B,3,1]
73 * 1 0 1
74 45 Y_ANULO[G,3,1]
75 * 1 0 1
76 46 Y_ANULO[A,3,2]
77 * 1 0 1
78 47 Y_ANULO[B,3,2]
79 * 1 0 1
80 48 Y_ANULO[G,3,2]
81 * 1 0 1
82 49 Y_ANULO[A,3,4]
83 * 1 0 1
84 50 Y_ANULO[B,3,4]
85 * 1 0 1
86 51 Y_ANULO[G,3,4]
87 * 1 0 1
88 52 Y_ANULO[A,4,1]
89 * 0 0 1
90 53 Y_ANULO[B,4,1]
91 * 0 0 1
92 54 Y_ANULO[G,4,1]
Segundo cuatrimestre 2020 155
Ejercicios resueltos 3.34
93 * 0 0 1
94 55 Y_ANULO[A,4,2]
95 * 0 0 1
96 56 Y_ANULO[B,4,2]
97 * 0 0 1
98 57 Y_ANULO[G,4,2]
99 * 0 0 1
100 58 Y_ANULO[A,4,3]
101 * 0 0 1
102 59 Y_ANULO[B,4,3]
103 * 0 0 1
104 60 Y_ANULO[G,4,3]
105 * 0 0 1
106 61 D[-1] 95 0
107 62 D[0] 85 0
108 63 D[1] 54.0002 0
109 64 D[2] 53.9999 0
110 65 D[3] 53.9999 0
111 66 D[4] 53.9999 0
112 67 D[5] 44 0
113 68 D[6] 25.0002 0
114 69 D[7] 22 0
115 70 D[8] 69 0
116 71 D[9] 64.0004 0
117 72 D[10] 104 0
118 73 D[11] 14 0
119 74 D[12] 14 0
120 75 D[13] 7 0
121 76 D[14] 38 0
122 77 D[15] 38 0
123 78 D[16] 27.0001 0
124 79 D[17] 27 0
125 80 D[18] 27 0
126 81 D[19] 27 0
127 82 D[20] 27 0
128 83 D[21] 1 0
129 84 D[22] 51 0
130 85 D[23] 51 0
131 86 D[24] 51 0
132 87 D[25] 51 0
133 88 Y_INICIO[1,A,0]
134 * 0 0 1
135 89 Y_INICIO[1,A,1]
136 * 0 0 1
137 90 Y_INICIO[1,A,2]
138 * 0 0 1
139 91 Y_INICIO[1,A,3]
140 * 0 0 1
141 92 Y_INICIO[1,A,4]
142 * 0 0 1
143 93 Y_INICIO[1,A,5]
144 * 1 0 1
145 94 Y_INICIO[1,A,6]
146 * 0 0 1
147 95 Y_INICIO[1,A,7]
148 * 0 0 1
149 96 Y_INICIO[1,A,8]
150 * 0 0 1
151 97 Y_INICIO[1,A,9]
152 * 0 0 1
153 98 Y_INICIO[1,A,10]
154 * 0 0 1
155 99 Y_INICIO[1,A,11]
156 * 0 0 1
Segundo cuatrimestre 2020 156
Ejercicios resueltos 3.34
157 100 Y_INICIO[1,A,12]
158 * 0 0 1
159 101 Y_INICIO[1,A,13]
160 * 0 0 1
161 102 Y_INICIO[1,A,14]
162 * 0 0 1
163 103 Y_INICIO[1,A,15]
164 * 0 0 1
165 104 Y_INICIO[1,A,16]
166 * 0 0 1
167 105 Y_INICIO[1,A,17]
168 * 0 0 1
169 106 Y_INICIO[1,A,18]
170 * 0 0 1
171 107 Y_INICIO[1,A,19]
172 * 0 0 1
173 108 Y_INICIO[1,A,20]
174 * 0 0 1
175 109 Y_INICIO[1,A,21]
176 * 0 0 1
177 110 Y_INICIO[1,A,22]
178 * 0 0 1
179 111 Y_INICIO[1,A,23]
180 * 0 0 1
181 112 Y_INICIO[1,A,24]
182 * 0 0 1
183 113 Y_INICIO[1,A,25]
184 * 0 0 1
185 114 Y_INICIO[1,B,0]
186 * 0 0 1
187 115 Y_INICIO[1,B,1]
188 * 0 0 1
189 116 Y_INICIO[1,B,2]
190 * 0 0 1
191 117 Y_INICIO[1,B,3]
192 * 0 0 1
193 118 Y_INICIO[1,B,4]
194 * 0 0 1
195 119 Y_INICIO[1,B,5]
196 * 0 0 1
197 120 Y_INICIO[1,B,6]
198 * 0 0 1
199 121 Y_INICIO[1,B,7]
200 * 0 0 1
201 122 Y_INICIO[1,B,8]
202 * 0 0 1
203 123 Y_INICIO[1,B,9]
204 * 0 0 1
205 124 Y_INICIO[1,B,10]
206 * 0 0 1
207 125 Y_INICIO[1,B,11]
208 * 1 0 1
209 126 Y_INICIO[1,B,12]
210 * 0 0 1
211 127 Y_INICIO[1,B,13]
212 * 0 0 1
213 128 Y_INICIO[1,B,14]
214 * 0 0 1
215 129 Y_INICIO[1,B,15]
216 * 0 0 1
217 130 Y_INICIO[1,B,16]
218 * 0 0 1
219 131 Y_INICIO[1,B,17]
220 * 0 0 1
Segundo cuatrimestre 2020 157
Ejercicios resueltos 3.34
221 132 Y_INICIO[1,B,18]
222 * 0 0 1
223 133 Y_INICIO[1,B,19]
224 * 0 0 1
225 134 Y_INICIO[1,B,20]
226 * 0 0 1
227 135 Y_INICIO[1,B,21]
228 * 0 0 1
229 136 Y_INICIO[1,B,22]
230 * 0 0 1
231 137 Y_INICIO[1,B,23]
232 * 0 0 1
233 138 Y_INICIO[1,B,24]
234 * 0 0 1
235 139 Y_INICIO[1,B,25]
236 * 0 0 1
237 140 Y_INICIO[1,G,0]
238 * 0 0 1
239 141 Y_INICIO[1,G,1]
240 * 0 0 1
241 142 Y_INICIO[1,G,2]
242 * 0 0 1
243 143 Y_INICIO[1,G,3]
244 * 0 0 1
245 144 Y_INICIO[1,G,4]
246 * 0 0 1
247 145 Y_INICIO[1,G,5]
248 * 0 0 1
249 146 Y_INICIO[1,G,6]
250 * 0 0 1
251 147 Y_INICIO[1,G,7]
252 * 0 0 1
253 148 Y_INICIO[1,G,8]
254 * 0 0 1
255 149 Y_INICIO[1,G,9]
256 * 0 0 1
257 150 Y_INICIO[1,G,10]
258 * 0 0 1
259 151 Y_INICIO[1,G,11]
260 * 0 0 1
261 152 Y_INICIO[1,G,12]
262 * 0 0 1
263 153 Y_INICIO[1,G,13]
264 * 1 0 1
265 154 Y_INICIO[1,G,14]
266 * 0 0 1
267 155 Y_INICIO[1,G,15]
268 * 0 0 1
269 156 Y_INICIO[1,G,16]
270 * 0 0 1
271 157 Y_INICIO[1,G,17]
272 * 0 0 1
273 158 Y_INICIO[1,G,18]
274 * 0 0 1
275 159 Y_INICIO[1,G,19]
276 * 0 0 1
277 160 Y_INICIO[1,G,20]
278 * 0 0 1
279 161 Y_INICIO[1,G,21]
280 * 0 0 1
281 162 Y_INICIO[1,G,22]
282 * 0 0 1
283 163 Y_INICIO[1,G,23]
284 * 0 0 1
Segundo cuatrimestre 2020 158
Ejercicios resueltos 3.34
285 164 Y_INICIO[1,G,24]
286 * 0 0 1
287 165 Y_INICIO[1,G,25]
288 * 0 0 1
289 166 Y_INICIO[2,A,0]
290 * 0 0 1
291 167 Y_INICIO[2,A,1]
292 * 1 0 1
293 168 Y_INICIO[2,A,2]
294 * 0 0 1
295 169 Y_INICIO[2,A,3]
296 * 0 0 1
297 170 Y_INICIO[2,A,4]
298 * 0 0 1
299 171 Y_INICIO[2,A,5]
300 * 0 0 1
301 172 Y_INICIO[2,A,6]
302 * 0 0 1
303 173 Y_INICIO[2,A,7]
304 * 0 0 1
305 174 Y_INICIO[2,A,8]
306 * 0 0 1
307 175 Y_INICIO[2,A,9]
308 * 0 0 1
309 176 Y_INICIO[2,A,10]
310 * 0 0 1
311 177 Y_INICIO[2,A,11]
312 * 0 0 1
313 178 Y_INICIO[2,A,12]
314 * 0 0 1
315 179 Y_INICIO[2,A,13]
316 * 0 0 1
317 180 Y_INICIO[2,A,14]
318 * 0 0 1
319 181 Y_INICIO[2,A,15]
320 * 0 0 1
321 182 Y_INICIO[2,A,16]
322 * 0 0 1
323 183 Y_INICIO[2,A,17]
324 * 0 0 1
325 184 Y_INICIO[2,A,18]
326 * 0 0 1
327 185 Y_INICIO[2,A,19]
328 * 0 0 1
329 186 Y_INICIO[2,A,20]
330 * 0 0 1
331 187 Y_INICIO[2,A,21]
332 * 0 0 1
333 188 Y_INICIO[2,A,22]
334 * 0 0 1
335 189 Y_INICIO[2,A,23]
336 * 0 0 1
337 190 Y_INICIO[2,A,24]
338 * 0 0 1
339 191 Y_INICIO[2,A,25]
340 * 0 0 1
341 192 Y_INICIO[2,B,0]
342 * 0 0 1
343 193 Y_INICIO[2,B,1]
344 * 0 0 1
345 194 Y_INICIO[2,B,2]
346 * 0 0 1
347 195 Y_INICIO[2,B,3]
348 * 0 0 1
Segundo cuatrimestre 2020 159
Ejercicios resueltos 3.34
349 196 Y_INICIO[2,B,4]
350 * 0 0 1
351 197 Y_INICIO[2,B,5]
352 * 0 0 1
353 198 Y_INICIO[2,B,6]
354 * 1 0 1
355 199 Y_INICIO[2,B,7]
356 * 0 0 1
357 200 Y_INICIO[2,B,8]
358 * 0 0 1
359 201 Y_INICIO[2,B,9]
360 * 0 0 1
361 202 Y_INICIO[2,B,10]
362 * 0 0 1
363 203 Y_INICIO[2,B,11]
364 * 0 0 1
365 204 Y_INICIO[2,B,12]
366 * 0 0 1
367 205 Y_INICIO[2,B,13]
368 * 0 0 1
369 206 Y_INICIO[2,B,14]
370 * 0 0 1
371 207 Y_INICIO[2,B,15]
372 * 0 0 1
373 208 Y_INICIO[2,B,16]
374 * 0 0 1
375 209 Y_INICIO[2,B,17]
376 * 0 0 1
377 210 Y_INICIO[2,B,18]
378 * 0 0 1
379 211 Y_INICIO[2,B,19]
380 * 0 0 1
381 212 Y_INICIO[2,B,20]
382 * 0 0 1
383 213 Y_INICIO[2,B,21]
384 * 0 0 1
385 214 Y_INICIO[2,B,22]
386 * 0 0 1
387 215 Y_INICIO[2,B,23]
388 * 0 0 1
389 216 Y_INICIO[2,B,24]
390 * 0 0 1
391 217 Y_INICIO[2,B,25]
392 * 0 0 1
393 218 Y_INICIO[2,G,0]
394 * 0 0 1
395 219 Y_INICIO[2,G,1]
396 * 0 0 1
397 220 Y_INICIO[2,G,2]
398 * 0 0 1
399 221 Y_INICIO[2,G,3]
400 * 0 0 1
401 222 Y_INICIO[2,G,4]402 * 0 0 1
403 223 Y_INICIO[2,G,5]
404 * 0 0 1
405 224 Y_INICIO[2,G,6]
406 * 0 0 1
407 225 Y_INICIO[2,G,7]
408 * 0 0 1
409 226 Y_INICIO[2,G,8]
410 * 0 0 1
411 227 Y_INICIO[2,G,9]
412 * 1 0 1
Segundo cuatrimestre 2020 160
Ejercicios resueltos 3.34
413 228 Y_INICIO[2,G,10]
414 * 0 0 1
415 229 Y_INICIO[2,G,11]
416 * 0 0 1
417 230 Y_INICIO[2,G,12]
418 * 0 0 1
419 231 Y_INICIO[2,G,13]
420 * 0 0 1
421 232 Y_INICIO[2,G,14]
422 * 0 0 1
423 233 Y_INICIO[2,G,15]
424 * 0 0 1
425 234 Y_INICIO[2,G,16]
426 * 0 0 1
427 235 Y_INICIO[2,G,17]
428 * 0 0 1
429 236 Y_INICIO[2,G,18]
430 * 0 0 1
431 237 Y_INICIO[2,G,19]
432 * 0 0 1
433 238 Y_INICIO[2,G,20]
434 * 0 0 1
435 239 Y_INICIO[2,G,21]
436 * 0 0 1
437 240 Y_INICIO[2,G,22]
438 * 0 0 1
439 241 Y_INICIO[2,G,23]
440 * 0 0 1
441 242 Y_INICIO[2,G,24]
442 * 0 0 1
443 243 Y_INICIO[2,G,25]
444 * 0 0 1
445 244 Y_INICIO[3,A,0]
446 * 0 0 1
447 245 Y_INICIO[3,A,1]
448 * 0 0 1
449 246 Y_INICIO[3,A,2]
450 * 0 0 1
451 247 Y_INICIO[3,A,3]
452 * 0 0 1
453 248 Y_INICIO[3,A,4]
454 * 0 0 1
455 249 Y_INICIO[3,A,5]
456 * 0 0 1
457 250 Y_INICIO[3,A,6]
458 * 0 0 1
459 251 Y_INICIO[3,A,7]
460 * 0 0 1
461 252 Y_INICIO[3,A,8]
462 * 0 0 1
463 253 Y_INICIO[3,A,9]
464 * 0 0 1
465 254 Y_INICIO[3,A,10]
466 * 0 0 1
467 255 Y_INICIO[3,A,11]
468 * 0 0 1
469 256 Y_INICIO[3,A,12]
470 * 0 0 1
471 257 Y_INICIO[3,A,13]
472 * 0 0 1
473 258 Y_INICIO[3,A,14]
474 * 1 0 1
475 259 Y_INICIO[3,A,15]
476 * 0 0 1
Segundo cuatrimestre 2020 161
Ejercicios resueltos 3.34
477 260 Y_INICIO[3,A,16]
478 * 0 0 1
479 261 Y_INICIO[3,A,17]
480 * 0 0 1
481 262 Y_INICIO[3,A,18]
482 * 0 0 1
483 263 Y_INICIO[3,A,19]
484 * 0 0 1
485 264 Y_INICIO[3,A,20]
486 * 0 0 1
487 265 Y_INICIO[3,A,21]
488 * 0 0 1
489 266 Y_INICIO[3,A,22]
490 * 0 0 1
491 267 Y_INICIO[3,A,23]
492 * 0 0 1
493 268 Y_INICIO[3,A,24]
494 * 0 0 1
495 269 Y_INICIO[3,A,25]
496 * 0 0 1
497 270 Y_INICIO[3,B,0]
498 * 0 0 1
499 271 Y_INICIO[3,B,1]
500 * 0 0 1
501 272 Y_INICIO[3,B,2]
502 * 0 0 1
503 273 Y_INICIO[3,B,3]
504 * 0 0 1
505 274 Y_INICIO[3,B,4]
506 * 0 0 1
507 275 Y_INICIO[3,B,5]
508 * 0 0 1
509 276 Y_INICIO[3,B,6]
510 * 0 0 1
511 277 Y_INICIO[3,B,7]
512 * 0 0 1
513 278 Y_INICIO[3,B,8]
514 * 0 0 1
515 279 Y_INICIO[3,B,9]
516 * 0 0 1
517 280 Y_INICIO[3,B,10]
518 * 0 0 1
519 281 Y_INICIO[3,B,11]
520 * 0 0 1
521 282 Y_INICIO[3,B,12]
522 * 0 0 1
523 283 Y_INICIO[3,B,13]
524 * 0 0 1
525 284 Y_INICIO[3,B,14]
526 * 0 0 1
527 285 Y_INICIO[3,B,15]
528 * 0 0 1
529 286 Y_INICIO[3,B,16]
530 * 1 0 1
531 287 Y_INICIO[3,B,17]
532 * 0 0 1
533 288 Y_INICIO[3,B,18]
534 * 0 0 1
535 289 Y_INICIO[3,B,19]
536 * 0 0 1
537 290 Y_INICIO[3,B,20]
538 * 0 0 1
539 291 Y_INICIO[3,B,21]
540 * 0 0 1
Segundo cuatrimestre 2020 162
Ejercicios resueltos 3.34
541 292 Y_INICIO[3,B,22]
542 * 0 0 1
543 293 Y_INICIO[3,B,23]
544 * 0 0 1
545 294 Y_INICIO[3,B,24]
546 * 0 0 1
547 295 Y_INICIO[3,B,25]
548 * 0 0 1
549 296 Y_INICIO[3,G,0]
550 * 0 0 1
551 297 Y_INICIO[3,G,1]
552 * 0 0 1
553 298 Y_INICIO[3,G,2]
554 * 0 0 1
555 299 Y_INICIO[3,G,3]
556 * 0 0 1
557 300 Y_INICIO[3,G,4]
558 * 0 0 1
559 301 Y_INICIO[3,G,5]
560 * 0 0 1
561 302 Y_INICIO[3,G,6]
562 * 0 0 1
563 303 Y_INICIO[3,G,7]
564 * 0 0 1
565 304 Y_INICIO[3,G,8]
566 * 0 0 1
567 305 Y_INICIO[3,G,9]
568 * 0 0 1
569 306 Y_INICIO[3,G,10]
570 * 0 0 1
571 307 Y_INICIO[3,G,11]
572 * 0 0 1
573 308 Y_INICIO[3,G,12]
574 * 0 0 1
575 309 Y_INICIO[3,G,13]
576 * 0 0 1
577 310 Y_INICIO[3,G,14]
578 * 0 0 1
579 311 Y_INICIO[3,G,15]
580 * 0 0 1
581 312 Y_INICIO[3,G,16]
582 * 0 0 1
583 313 Y_INICIO[3,G,17]
584 * 0 0 1
585 314 Y_INICIO[3,G,18]
586 * 0 0 1
587 315 Y_INICIO[3,G,19]
588 * 0 0 1
589 316 Y_INICIO[3,G,20]
590 * 0 0 1
591 317 Y_INICIO[3,G,21]
592 * 1 0 1
593 318 Y_INICIO[3,G,22]
594 * 0 0 1
595 319 Y_INICIO[3,G,23]
596 * 0 0 1
597 320 Y_INICIO[3,G,24]
598 * 0 0 1
599 321 Y_INICIO[3,G,25]
600 * 0 0 1
601 322 Y_INICIO[4,A,0]
602 * 1 0 1
603 323 Y_INICIO[4,A,1]
604 * 0 0 1
Segundo cuatrimestre 2020 163
Ejercicios resueltos 3.34
605 324 Y_INICIO[4,A,2]
606 * 0 0 1
607 325 Y_INICIO[4,A,3]
608 * 0 0 1
609 326 Y_INICIO[4,A,4]
610 * 0 0 1
611 327 Y_INICIO[4,A,5]
612 * 0 0 1
613 328 Y_INICIO[4,A,6]
614 * 0 0 1
615 329 Y_INICIO[4,A,7]
616 * 0 0 1
617 330 Y_INICIO[4,A,8]
618 * 0 0 1
619 331 Y_INICIO[4,A,9]
620 * 0 0 1
621 332 Y_INICIO[4,A,10]
622 * 0 0 1
623 333 Y_INICIO[4,A,11]
624 * 0 0 1
625 334 Y_INICIO[4,A,12]
626 * 0 0 1
627 335 Y_INICIO[4,A,13]
628 * 0 0 1
629 336 Y_INICIO[4,A,14]
630 * 0 0 1
631 337 Y_INICIO[4,A,15]
632 * 0 0 1
633 338 Y_INICIO[4,A,16]
634 * 0 0 1
635 339 Y_INICIO[4,A,17]
636 * 0 0 1
637 340 Y_INICIO[4,A,18]
638 * 0 0 1
639 341 Y_INICIO[4,A,19]
640 * 0 0 1
641 342 Y_INICIO[4,A,20]
642 * 0 0 1
643 343 Y_INICIO[4,A,21]
644 * 0 0 1
645 344 Y_INICIO[4,A,22]
646 * 0 0 1
647 345 Y_INICIO[4,A,23]
648 * 0 0 1
649 346 Y_INICIO[4,A,24]
650 * 0 0 1
651 347 Y_INICIO[4,A,25]
652 * 0 0 1
653 348 Y_INICIO[4,B,0]
654 * 0 0 1
655 349 Y_INICIO[4,B,1]
656 * 1 0 1
657 350 Y_INICIO[4,B,2]
658 * 0 0 1
659 351 Y_INICIO[4,B,3]
660 * 0 0 1
661 352 Y_INICIO[4,B,4]
662 * 0 0 1
663 353 Y_INICIO[4,B,5]
664 * 0 0 1
665 354 Y_INICIO[4,B,6]
666 * 0 0 1
667 355 Y_INICIO[4,B,7]
668 * 0 0 1
Segundo cuatrimestre 2020 164
Ejercicios resueltos 3.34
669 356 Y_INICIO[4,B,8]
670 * 0 0 1
671 357 Y_INICIO[4,B,9]
672 * 0 0 1
673 358 Y_INICIO[4,B,10]
674 * 0 0 1
675 359 Y_INICIO[4,B,11]
676 * 0 0 1
677 360 Y_INICIO[4,B,12]
678 * 0 0 1
679 361 Y_INICIO[4,B,13]
680 * 0 0 1
681 362 Y_INICIO[4,B,14]
682 * 0 0 1
683 363 Y_INICIO[4,B,15]
684 * 0 0 1
685 364 Y_INICIO[4,B,16]
686 * 0 0 1
687 365 Y_INICIO[4,B,17]
688 * 0 0 1
689 366 Y_INICIO[4,B,18]
690 * 0 0 1
691 367 Y_INICIO[4,B,19]
692 * 0 0 1
693 368 Y_INICIO[4,B,20]
694 * 0 0 1
695 369 Y_INICIO[4,B,21]
696 * 0 0 1
697 370 Y_INICIO[4,B,22]
698 * 0 0 1
699 371 Y_INICIO[4,B,23]
700 * 0 0 1
701 372 Y_INICIO[4,B,24]
702 * 0 0 1
703 373 Y_INICIO[4,B,25]
704 * 0 0 1
705 374 Y_INICIO[4,G,0]
706 * 0 0 1
707 375 Y_INICIO[4,G,1]
708 * 0 0 1
709 376 Y_INICIO[4,G,2]
710 * 0 0 1
711 377 Y_INICIO[4,G,3]
712 * 0 0 1
713 378 Y_INICIO[4,G,4]
714 * 0 0 1
715 379 Y_INICIO[4,G,5]
716 * 0 0 1
717 380 Y_INICIO[4,G,6]
718 * 0 0 1
719 381 Y_INICIO[4,G,7]
720 * 1 0 1
721 382 Y_INICIO[4,G,8]
722 * 0 0 1
723 383 Y_INICIO[4,G,9]
724 * 0 0 1
725 384 Y_INICIO[4,G,10]
726 * 0 0 1
727 385 Y_INICIO[4,G,11]
728 * 0 0 1
729 386 Y_INICIO[4,G,12]
730 * 0 0 1
731 387 Y_INICIO[4,G,13]
732 * 0 0 1
Segundo cuatrimestre 2020 165
Ejercicios resueltos 3.34
733 388 Y_INICIO[4,G,14]
734 * 0 0 1
735 389 Y_INICIO[4,G,15]
736 * 0 0 1
737 390 Y_INICIO[4,G,16]
738 * 0 0 1
739 391 Y_INICIO[4,G,17]
740 * 0 0 1
741 392 Y_INICIO[4,G,18]
742 * 0 0 1
743 393 Y_INICIO[4,G,19]
744 * 0 0 1
745 394 Y_INICIO[4,G,20]
746 * 0 0 1
747 395 Y_INICIO[4,G,21]
748 * 0 0 1
749 396 Y_INICIO[4,G,22]
750 * 0 0 1
751 397 Y_INICIO[4,G,23]
752 * 0 0 1
753 398 Y_INICIO[4,G,24]
754 * 0 0 1
755 399 Y_INICIO[4,G,25]
756 * 0 0 1
757 400 Y_INICIO[1,A,-1]
758 * 0 0 1
759 401 Y_INICIO[1,B,-1]
760 * 0 0 1
761 402 Y_INICIO[1,G,-1]
762 * 0 0 1
763 403 Y_INICIO[2,A,-1]
764 * 0 0 1
765 404 Y_INICIO[2,B,-1]
766 * 0 0 1
767 405 Y_INICIO[2,G,-1]
768 * 0 0 1
769 406 Y_INICIO[3,A,-1]
770 * 0 0 1
771 407 Y_INICIO[3,B,-1]
772 * 0 0 1
773 408 Y_INICIO[3,G,-1]
774 * 0 0 1
775 409 Y_INICIO[4,A,-1]
776 * 0 0 1
777 410 Y_INICIO[4,B,-1]
778 * 0 0 1
779 411 Y_INICIO[4,G,-1]
780 * 0 0 1
781 412 FINAL 22.9999 0
782
783 Integer feasibility conditions:
784
785 KKT.PE: max.abs.err = 0.00e+00 on row 0
786 max.rel.err = 0.00e+00 on row 0
787 High quality
788
789 KKT.PB: max.abs.err = 1.00e+00 on row 450
790 max.rel.err = 4.50e-04 on row 791
791 Low quality
792
793 End of output
Segundo cuatrimestre 2020 166
Ejercicios resueltos 3.34
8. Informe de la solución óptima
Con lo parámetros indicados, el tiempo óptimo de finalización de las obras será en 23 meses.
Se puede observar que no hay un edificio con más de una equipo a la vez, y que tampoco hay un equipo
trabajando en dos edificios a la vez.
De la misma forma, durante todo el proceso no se acaban los fondos. Para la construcción del edificio
3 el dinero es el limitante,y es necesario que se construya a lo último.
Correcciones
Calificación General: Excelente
Análisis: Excelente
Excelente: lo bueno, si breve, dos veces bueno.
Objetivo: Excelente
El objetivo definido es completo y correcto. Brillante redacción!
Hipótesis: Muy Bien
Las hipótesis que pusiste están bien, tienen sentido y ayudan a acotar el modelo. Entre las
hipótesis de “certeza” tenés que suponer que se construyen los cuatro edificios; y tenés que
Segundo cuatrimestre 2020 167
Ejercicios resueltos 3.34
tomar una hipótesis acerca de la duración del período del modelo. Además, entre las hipótesis de
“divisibilidad”, podés suponer que la duración de las tareas (en meses) es un valor entero. En este
ejercicio no aplican las hipótesis de “proporcionalidad” ni de “aditividad”.
Variables: Muy Bien
La identificación de las variables principales es correcta, y guarda coherencia con el objetivo que
planteaste. También es positivo que hayas indicado las unidades (acordate de poner el período
cuando corresponda). No se entiende el significado de la variable Yanulojik.
Modelo: Excelente
La determinación del inicio/fin de cada equipo en cada edificio es correcta. Desarrollás cor-
rectamente la precedencia entre los equipos en un mismo edificio, sin obligar a que comience
inmediatamente después del equipo anterior. Evitás adecuadamente que un equipo trabaje en
dos edificios al mismo tiempo. Las restricciones para la caja mensual son correctas. La determi-
nación del último edificio que se completa es correcta. La función objetivo es correcta. El funcional
guarda coherencia con el objetivo definido. Las restricciones están claramente identificadas.
Resolución: Excelente
La resolución es correcta, y están incluidos el modelo, la salida del so�ware, y la definición de
constantes. Para evitar el problema que mencionás con Iij, podrías definirlas como enteras.
Informe: Excelente
El informe es correcto: está redactado en términos del dominio del problema. El nivel de detalle
del informe es ideal, y el diagrama es muy apropiado para explicar la solución hallada.
Presentación: Excelente
El documento entregado es claro, y las secciones están claramente separadas. Incluye carátula,
numeración de páginas e índice.
Segundo cuatrimestre 2020 168
Ejercicios resueltos 4.2
4.2
1. Enunciado
Resolver por el método Simplex y gráficamente el siguiente ejercicio. En caso de encontrar algún caso
particular, indicar cuál es y cómo se detecta en la tabla,
−2X1 +X2 ≤ 2
X1 −X2 ≤ 2
X1 +X2 ≤ 5
MAX Z = 10X1 + 3X2
2. Resolución por Método Simplex
2.1. Planteo inicial - Variables slack
−2X1 +X2 +X3 = 2
X1 −X2 +X4 = 2
X1 +X2 +X5 = 5
El sistema en expresión vectorial:
MAX Z =
(
10 3 0 0 0
)
X1
X2
X3
X4
X5
X1
X2
X3
X4
X5
≥
0
0
0
0
0
Segundo cuatrimestre 2020 169
Ejercicios resueltos 4.2
−2 1 1 0 0
1 −1 0 4 0
1 1 0 0 5
X1
X2
X3
X4
X5
=
2
2
5
2.2. Vértice (0, 0)
Comenzando en el vértice (0, 0), con una primer solución básica factible, con X1 y X2 fuera de la
base.
Los dosZj − Cj para j ∈ 1, 2 resultan negativos. La próxima variable a entrar a la base seráX1 por
tener mayor valor absoluto (convención). A partir de la misma se calculan los valores de θ, la cuál
resulta que θ3 tiene el menor valor positivo, por lo queX4 saldrá de la base.
El pivote está en la intersección de la fila de la variable que sale de la base (X4) con la columna de la
variable que entra a la base (X1). Este tiene valor 1.
La tabla hasta el momento es la siguiente:
10 3
Ck Xk Bk A1 A2 A3 A4 A5 θ
0 X3 2 −2 1 1 0 0 −1
0 X4 2 1 −1 0 1 0 2
0 X5 5 1 1 0 0 1 5
Z = 0 −10 −3 0 0 0
2.3. Vértice (2, 0)
Utilizando el método del pivote para cambiar la base de variables, la nueva tabla corresponde al vértice
(2, 0). El resultado deZ2 − C2 es negativo, por lo que la próxima variable a entrar a la base seráX2.
Calculando los θ con respecto a esta variable, resulta que θ5 tiene el menor valor positivo, por lo que
X5 saldrá de la base.
El pivote en esta tabla tiene valor 2.
La tabla hasta el momento es la siguiente:
Segundo cuatrimestre 2020 170
Ejercicios resueltos 4.2
10 3
Ck Xk Bk A1 A2 A3 A4 A5 θ
0 X3 6 0 −1 1 2 0 −6
10 X1 2 1 −1 0 1 0 −2
0 X5 5 0 2 0 −1 1 2.5
Z = 20 −10 −13 0 10 0
2.4. Vértice (3.5, 1.5)
La nueva tabla corresponde al vértice (3.5, 1.5). El resultado de losZj − Cj para j ∈ 1, 2 son iguales a
cero, indicando que este es el vértice óptimo.
10 3
Ck Xk Bk A1 A2 A3 A4 A5
0 X3 7.5 0 0 1 1.5 0.5
10 X1 3.5 1 0 0 0.5 0.5
3 X2 1.5 0 1 0 −0.5 0.5
Z = 39.5 0 0 0 3.5 6.5
Finalmente, el vector solución es:
X1 = 3.5
X2 = 1.5
X3 = 7.5
X4 = 0
X5 = 0
Segundo cuatrimestre 2020 171
Ejercicios resueltos 4.2
3. Resolución gráfica.
Se puede observar que por el método simplex se pasó por los vérticesE (0, 0),D (2, 0) y finalmente el
óptimoA (3.5, 1.5).
Correcciones
Faltó indicar qué tipo de solución se halló.
Segundo cuatrimestre 2020 172
Ejercicios resueltos 4.8
4.8
1. Enunciado
Resolver por el método Simplex y gráficamente el siguiente ejercicio. En caso de encontrar algún caso
particular, indicar cuál es y cómo se detecta en la tabla,
2X1 + 4X2 ≤ 48
4X1 + 2X2 ≤ 60
3X1 ≤ 45
MAX Z = 6X1 + 4X2
2. Resolución por Método Simplex
2.1. Planteo inicial - Variables slack
2X1 + 4X2 +X3 = 48
4X1 + 2X2 +X4 = 60
3X1 +X5 = 45
El sistema en expresión vectorial:
MAX Z =
(
6 4 0 0 0
)
X1
X2
X3
X4
X5
X1
X2
X3
X4
X5
≥
0
0
0
0
0
Segundo cuatrimestre 2020 173
Ejercicios resueltos 4.8
2 4 1 0 0
4 2 0 1 0
3 0 0 0 1
X1
X2
X3
X4
X5
=
48
60
45
2.2. Vértice (0, 0)
Comenzando en el vértice (0, 0), con una primer solución básica factible, con X1 y X2 fuera de la
base.
Los dosZj − Cj para j ∈ 1, 2 resultan negativos. La próxima variable a entrar a la base seráX1 por
tener mayor valor absoluto (convención). A partir de la misma se calculan los valores de θ, la cuál
resulta que θ4 y θ5 tienen el menor valor positivo, indicando que la próxima tabla pertenecerá a la de
un punto degenerado. Se elije la variableX4 para sacar de la base.
El pivote está en la intersección de la fila de la variable que sale de la base (X4) con la columna de la
variable que entra a la base (X1). Este tiene valor 1.
La tabla hasta el momento es la siguiente:
6 4
Ck Xk Bk A1 A2 A3 A4 A5 θ
0 X3 48 2 4 1 0 0 24
0 X4 60 4* 2 0 1 0 15
0 X5 45 3 0 0 0 1 15
Z = 0 −6 −4 0 0 0
2.3. Vértice (15, 0)
Utilizando el método del pivote para cambiar la base de variables, la nueva tabla corresponde al vértice
(15, 0). Hay una variable en la base cuyo valor es 0, indicando que es una tabla de punto degenerado.
El resultado deZ2−C2 es negativo, por lo que la próxima variable a entrar a la base seráX2. Calculando
los θ con respecto a esta variable (donde el valor de θ5 no se calcula porque el valor en a2,5 es menor
igual a cero), resulta que θ3 tiene el menor valor positivo, por lo queX3 saldrá de la base.
Segundo cuatrimestre 2020 174
Ejercicios resueltos 4.8
El pivote en esta tabla tiene valor 3.
La tabla hasta el momento es la siguiente:
6 4
Ck Xk Bk A1 A2 A3 A4 A5 θ
0 X3 18 0 3* 1 −1/2 0 6
6 X1 15 1 1/2 0 1/4 0 30
0 X5 0 0 −3/2 0 −3/4 1 −
Z = 90 0 −1 0 3/2 0
2.4. Vértice (12, 6)
La nueva tabla corresponde al vértice (12, 6). El resultado de losZj −Cj son mayores o iguales a cero,
indicando que este es el vértice óptimo.
6 4
Ck Xk Bk A1 A2 A3 A4 A5 θ
4 X2 6 0 1 1/3 −1/6 0 −
6 X1 12 1 0 −1/6 1/3 0 −
0 X5 9 0 0 1/2 −1 1 −
Z = 96 0 0 1/3 1/3 0
Segundo cuatrimestre 2020 175
Ejercicios resueltos 4.8
3. Resolución gráfica.
Se puede observar que por el método simplex se pasó por los vérticesC (0, 0),D (15, 0) y finalmente
el óptimoB (12, 6).
Correcciones
Detecta bien el punto degeneradoy justifica por qué lo es. El z4-c4 de la última tabla da 4/3 y no
1/3
Segundo cuatrimestre 2020 176
Ejercicios resueltos 4.10
4.10
1. Enunciado
Resolver por el método Simplex y gráficamente el siguiente ejercicio. En caso de encontrar algún caso
particular, indicar cuál es y cómo se detecta en la tabla,
X2 ≥ 2
4X1 + 6X2 ≥ 24
10X1 − 30X2 ≥ 30
MAX Z = X1 + 8X2
2. Resolución por Método Simplex
2.1. Planteo inicial - Variables slack
El modelo tiene restricciones mayor igual. Como el método simplex comienza con el vértice (0, 0), es
necesario agregar variables artificiales µi de tal forma que el (0, 0) sea una solución válida.
X2 −X3 + µ1 = 2
4X1 + 6X2 −X4 + µ2 = 24
10X1 − 30X2 −X5 + µ3 = 30
MAX Z = X1 + 8X2 −Mµ1 −Mµ2 −Mµ3
El sistema en expresión vectorial:
Segundo cuatrimestre 2020 177
Ejercicios resueltos 4.10
MAX Z =
(
6 4 0 0 0 M M M
)
X1
X2
X3
X4
X5
µ1
µ2
µ3
X1
X2
X3
X4
X5
µ1
µ2
µ3
≥
0
0
0
0
0
0
0
0
0 1 −1 0 0 1 0 0
4 6 0 −1 0 0 1 0
10 −30 0 0 −1 0 0 1
X1
X2
X3
X4
X5
µ1
µ2
µ3
=
2
24
30
2.2. Vértice (0, 0)
Todas las restricciones del modelo son del tipo mayor igual, por lo que todas las variables que estén
en la base serán las artificiales.
Segundo cuatrimestre 2020 178
Ejercicios resueltos 4.10
La próxima variable a entrar a la base seráX1 por tener menorZj−Cj . A partir de la misma se calculan
los valores de θ, la cuál resulta que θmu3 tiene el menor valor positivo. Entonces la variable µ3 saldrá
de la base.
El pivote está en la intersección de la fila de la variable que sale de la base (µ3) con la columna de la
variable que entra a la base (X1). Este tiene valor 10.
La tabla hasta el momento es la siguiente:
1 8 −M −M −M
Ck Xk Bk A1 A2 A3 A4 A5 µ1 µ2 µ3 θ
−M µ1 2 0 1 −1 0 0 1 0 0 −
−M µ2 24 4 6 0 −1 0 0 1 0 6
−M µ3 30 10* −30 0 0 −1 0 0 1 3
Z = −56M −14M − 1 23M − 8 M M M 0 0 0
2.3. Vértice (3, 0)
Utilizando el método del pivote para cambiar la base de variables, la nueva tabla corresponde al vértice
(3, 0).
La próxima variable a entrar a la base seráX2 por tener menorZj−Cj . A partir de la misma se calculan
los valores de θ, la cuál resulta que θmu2 tienen el menor valor positivo. Entonces la variable µ2 saldrá
de la base.
El pivote tiene valor 18.
La tabla hasta el momento es la siguiente:
1 8 −M −M −M
Ck Xk Bk A1 A2 A3 A4 A5 µ1 µ2 µ3 θ
−M µ1 2 0 1 −1 0 0 1 0 0 2
−M µ2 12 0 18* 0 −1 2/5 0 1 −2/5 2/3
1 X1 3 1 −3 0 0 −1/10 0 0 1/10 −
Z = −14M + 3 0 −19M − 11 M M −2/5M − 1/10 0 0 7/5M + 1/10
Segundo cuatrimestre 2020 179
Ejercicios resueltos 4.10
2.4. Vértice (5, 2/3)
Utilizando el método del pivote para cambiar la base de variables, la nueva tabla corresponde al vértice
(5, 2/3).
La próxima variable a entrar a la base seráX4 por tener menorZj−Cj . A partir de la misma se calculan
los valores de θ, la cuál resulta que θmu1 tienen el menor valor positivo. Entonces la variable µ1 saldrá
de la base.
El pivote tiene valor 1/18.
La tabla hasta el momento es la siguiente:
1 8 −M −M −M
Ck Xk Bk A1 A2 A3 A4 A5 µ1 µ2 µ3 θ
−M µ1 4/3 0 0 −1 1/18* −1/45 1 −1/18 1/45 24
8 X2 2/3 0 1 0 −1/18 1/45 0 1/18 −1/45 −
1 X1 5 1 0 0 −1/6 −1/30 0 1/6 1/30 −
Z = −4M/3 + 31/3 0 0 M −M/18− 11/18 M/45− 13/90 0 19/18M + 11/18 44/45M − 13/90
2.5. Vértice (9, 2)
Utilizando el método del pivote para cambiar la base de variables, la nueva tabla corresponde al vértice
(5, 2/3).
La próxima variable a entrar a la base seráX3 por tener menorZj − Cj . Al momento de calcular los
valores de θ, se observa que todos los valores de la columna deX3 son negativos, indicando que no
hay variable candidata para sacar de la base.
Al tener una variable a ingresar pero no una variable a sacar, se trata de un problema cuyo poliedro de
soluciones es abierto.
La tabla final es la siguiente:
1 8 −M −M −M
Ck Xk Bk A1 A2 A3 A4 A5 µ1 µ2 µ3 θ
0 X4 24 0 0 −18 1 −2/5 18 −1 2/5 −
8 X2 2 0 1 −1 0 0 1 0 0 −
1 X1 9 1 0 −3 0 −1/10 3 0 1/10 −
Z = 25 0 0 −11 0 −1/10 M + 11 M M + 0.1
Segundo cuatrimestre 2020 180
Ejercicios resueltos 4.10
3. Resolución gráfica
El método simplex pasó por los puntosA (0, 0),B (3, 0),C (5, 2/3) y finalmente elD (9, 2). Como los
primeros tres vértices tenían tablas cuya base incluían variables artificiales, estas no se encuentran
dentro del poliedro de soluciones.
Se puede observar que efectivamente se trata de un poliedro abierto.
Correcciones
Segundo cuatrimestre 2020 181
Ejercicios resueltos 4.10
Resuelve correctamente y marca bien el poliedro abierto. Detalle, en la última tabla son dos las
variables candidatas a entrar (X3 y X5) con lo que tendrías que haber probado, cuando la que
querías hacer entrar no podía formar titas, si podías hacer entrar la otra (tampoco se puede) Es
poliedro abierto cuando ninguna variable puede entrar porque ninguna puede salir
Segundo cuatrimestre 2020 182
Ejercicios resueltos 4.12
4.12
1. Enunciado
Resolver por el método Simplex y gráficamente el siguiente ejercicio. En caso de encontrar algún caso
particular, indicar cuál es y cómo se detecta en la tabla,
X1 +X2 ≤ 6
2X1 +X2 ≤ 1
−X1 + 2X2 ≥ 8
MAX Z = 3X1 +X2
2. Resolución por Método Simplex
2.1. Planteo inicial - Variables slack
Como el método simplex comienza con el vértice (0, 0), es necesario agregar una variable artificial µ a
la restricción de mayor igual de tal forma que el (0, 0) sea una solución válida.
X1 +X2 +X3 = 6
2X1 +X2 +X4 = 1
−X1 + 2X2 −X5 + µ = 8
MAX Z = 3X1 +X2 −Mµ
El sistema en expresión vectorial:
MAX Z =
(
3 1 0 0 0 M
)
X1
X2
X3
X4
X5
µ
Segundo cuatrimestre 2020 183
Ejercicios resueltos 4.12
X1
X2
X3
X4
X5
µ
≥
0
0
0
0
0
0
1 1 1 0 0 0
2 1 0 1 0 0
−1 2 0 0 −1 1
X1
X2
X3
X4
X5
µ
=
6
1
8
2.2. Vértice (0, 0)
Comenzando en el vértice (0, 0), con una primer solución básica factible, conX1 yX2 fuera de la base.
Para que (0, 0) sea una solución, la base debe incluir la variable artificial µ.
La próxima variable a entrar a la base seráX2 por tener menorZj−Cj . A partir de la misma se calculan
los valores de θ, la cuál resulta que θ4 tiene el menor valor positivo. A partir de esto, se elije la variable
X4 para sacar de la base.
El pivote está en la intersección de la fila de la variable que sale de la base (X4) con la columna de la
variable que entra a la base (X2). Este tiene valor 1.
La tabla hasta el momento es la siguiente:
3 1 −M
Ck Xk Bk A1 A2 A3 A4 A5 µ θ
0 X3 6 1 1 1 0 0 0 6
0 X4 1 2 1* 0 1 0 0 1
−M µ 8 −1 2 0 0 −1 1 4
Z = −8M M − 3 −2M − 1 0 0 M 0
Segundo cuatrimestre 2020 184
Ejercicios resueltos 4.12
2.3. Vértice (0, 1)
Utilizando el método del pivote para cambiar la base de variables, la nueva tabla corresponde al vértice
(0, 1).
En la nueva tabla se cumple la condición de óptimo para un objetivo de maximización: todoZj − Cj
es mayor a cero. A pesar de esto, en la base se encuentra la variable artificial µ, lo que significa que el
problema es incompatible.
La tabla final es la siguiente:
3 1 −M
Ck Xk Bk A1 A2 A3 A4 A5 µ θ
0 X3 5 −1 0 1 −1 0 0 −
1 X2 1 2 1 0 1 0 0 −
−M µ 6 −5 0 0 −2 −1 1 −
Z = −6M + 1 5M − 1 0 0 2M + 1 M 0
Segundo cuatrimestre 2020 185
Ejercicios resueltos 4.12
3. Resolución gráfica.
Se puede observar que no hay un punto donde cumplan las tres restricciones y a su vez X1 ≥ 0,
X2 ≥ 0.
Correcciones
La resolución y el gráfico son correctos. En la primera tabla, no es que X2 entra porque tiene el
menor zj-cj. Entra porque es el único zj-cj negativo.
Segundo cuatrimestre 2020 186
Ejercicios resueltos 5.1
5.1
1. Enunciado
Basándose en el ejercicio 4.2:
−2X1 +X2 ≤ 2
X1 −X2 ≤ 2
X1 +X2≤ 5
MAX Z = 10X1 + 3X2
2. Plantear y resolver su problema dual.
El planteo directo del problema con variables slack es el siguiente:
−2X1 +X2 +X3 = 2
X1 −X2 +X4 = 2
X1 +X2 +X5 = 5
La matriz de correspondencia se define de la siguiente manera:
X1 X2
Y1 −2 1 X3 2
Y2 1 −1 X4 2
Y3 1 1 X5 5
Y4 Y5
10 3
Donde:
• X1: Cantidad del producto 1 ≡ Y4: Costo de oportunidad producto 1.
• X2: Cantidad del producto 2 ≡ Y5: Costo de oportunidad producto 2.
• X3: Sobrante del recurso 1 ≡ Y1: Valor marginal del recurso 1.
Segundo cuatrimestre 2020 187
Ejercicios resueltos 5.1
• X4: Sobrante del recurso 2 ≡ Y2: Valor marginal del recurso 2.
• X5: Sobrante del recurso 3 ≡ Y3: Valor marginal del recurso 3.
A partir de esta, el correspondiente problema dual planteado con inecuaciones es:
MIN Z = 2Y1 + 2Y2 + 5Y3
−2Y1 + Y2 + Y3 ≥ 10
Y1 − Y2 + Y3 ≥ 3
Se define con ecuaciones utilizando variables slack. Como se trata de ecuaciones con mayor igual, se
agregan variables artificiales µi, utilizando una constanteM con valor “muy grande”:
MIN Z = 2Y1 + 2Y2 + 5Y3 +Mµ1 +Mµ2
−2Y1 + Y2 + Y3 − Y4 + µ1 = 10
Y1 − Y2 + Y3 − Y5 + µ2 = 3
Y en expresión vectorial:
MIN Z =
2
2
5
0
0
M
M
(
Y1 Y2 Y3 Y4 Y5 µ1 µ2
)
(
Y1 Y2 Y3 Y4 Y5 µ1 µ2
)
≥
(
0 0 0 0 0 0 0
)
(
Y1 Y2 Y3 Y4 Y5 µ1 µ2
)−2 1 1 −1 0 1 0
1 −1 1 0 −1 0 13.
=
10
3
Se busca la tabla óptima por método simplex.
Segundo cuatrimestre 2020 188
Ejercicios resueltos 5.1
2.1. Vértice (0, 0, 0)
Por ser un problema que tiene únicamente restricciones mayor igual, el vértice (0, 0, 0) tendrá las
variables artificiales en la base.
El objetivo es minimizar el funcional, por lo que la variable a entrar a la base deberá tener Zj − Cj
positivo. De estas, la variable Y3 cumple esta condición. Calculando el valor de θ para las variables que
están el la base, y µ2 tiene el menor valor de θ, entonces esta saldrá de la base.
La tabla hasta el momento es la siguiente:
2 2 5
Ck Yk Bk A1 A2 A3 A4 A5 µ1 µ2 θ
M µ1 10 −2 1 1 −1 0 1 0 10
M µ2 3 1 −1 1∗ 0 −1 0 1 3
Z = 13M −M − 2 −2 2M − 5 −M −M 0 0
2.2. Vértice (0, 0, 3)
Cambiando de base, el vértice de la nueva tabla es (0, 0, 3) y todavía hay variables conZj − Cj mayor
a cero. La próxima variable a entrar a la base es Y2. Calculando los θ, se determina que µ1 sale de la
base (el valor de a3,Y3 es negativo, no se calcula el θ de Y3).
La tabla hasta el momento es la siguiente:
2 2 5
Ck Yk Bk A1 A2 A3 A4 A5 µ1 µ2 θ
M µ1 7 −3 2∗ 0 −1 1 1 −1 7/2
5 Y3 3 1 −1 1 0 −1 0 1 −
Z = 7M + 15 −3M + 5 2M − 5 0 −M −5
2.3. Vértice (0, 7/2, 13/2)
Cambiando de base, se cumple la condición para la tabla óptima de un problema de minimización:
todos losZj − Cj son menores o iguales a cero. El vértice (0, 7/2, 13/2) es el óptimo del problema.
Segundo cuatrimestre 2020 189
Ejercicios resueltos 5.1
2 2 5
Ck Yk Bk A1 A2 A3 A4 A5 µ1 µ2
2 Y2 7/2 −3/2 1 0 −1/2 1/2 1/2 −1/2
5 Y3 13/2 −1/2 0 1 −1/2 −1/2 −1/2 1/2
Z = 39.5 −15/2 0 0 −7/2 −3/2
3. Obtener su tabla óptima del dual a partir de su tabla óptima directa.
La tabla óptima directa ya fue calculada en el ejercicio 4.2:
10 3
Ck Xk Bk A1 A2 A3 A4 A5
0 X3 7.5 0 0 1 1.5 0.5
10 X1 3.5 1 0 0 0.5 0.5
3 X2 1.5 0 1 0 −0.5 0.5
Z = 39.5 0 0 0 3.5 6.5
Recordando la relación de variablesXi e Yj , las variables Yj que estarán en la base de la tabla dual
serán aquellas cuyo parXi de la tabla directa no se encuentren en la base. Su valorBk en la tabla dual
es su valorZj − Cj de la tabla directa. Sus valores de la columnaAj serán el vector canónico.
2 2 5
Ck Yk Bk A1 A2 A3 A4 A5
2 Y2 7/2 1 0
5 Y3 13/2 0 1
Z = 39.5
El resto de los valores será el correspondiente al parXi/Yj , con su signo invertido. Con esto se llega a
la misma tabla planteada en el punto anterior.
Segundo cuatrimestre 2020 190
Ejercicios resueltos 5.1
2 2 5
Ck Yk Bk A1 A2 A3 A4 A5
2 Y2 7/2 −3/2 1 0 −1/2 1/2
5 Y3 13/2 −1/2 0 1 −1/2 −1/2
Z = 39.5 −15/2 0 0 −7/2 −3/2
4. Comparar las tablas óptimas duales obtenidas.
Las tablas obtenidas tienen los mismos valores en todas sus celdas.
Correcciones
Calificación General: Excelente
Punto A: Excelente
El planteo del dual es impecable. La resolución por Simplex está perfecta.
Punto B: Excelente
El pasaje de la tabla óptima directa a la tabla óptima dual es correcto, y la justificación del pasaje
es correcta.
Punto C: Excelente
La comparación es correcta.
Presentación: Excelente
El documento es prolijo, tiene las secciones claramentes separadas. Incluye carátula, índice y
numeración de páginas.
Segundo cuatrimestre 2020 191
Ejercicios resueltos 5.6
5.6
1. Enunciado
Para el ejercicio 2.1 se pide:
a- Definir las variables del problema (directo y dual).
b- Expresar la solución en términos de un programa de producción, indicando el porcentaje de uti-
lización de recursos.
c- Determinar los valores marginales y los costos de oportunidad. Efectuar los cálculos tanto sobre la
tabla óptima como sobre la resolución del LINDO.
d- Calcular usando la tabla el rango de variación de los coeficientes del funcional y de los valores de
las restricciones, conservando la estructura óptima de 1a solución.
e- ¿Cuánto habría que aumentar el precio de los pulóveres “A” para que su fabricación sea conve-
niente?
Las siguientes son las tablas primera y óptima del problema 2.1 resuelto:
Y ésta es su resolución en el LINDO:
Segundo cuatrimestre 2020 192
Ejercicios resueltos 5.6
2. Definir las variables del problema (directo y dual)
2.1. Problema directo
Las variables de control son:
• A ≡ X1: La cantidad de pulloversA a producir en la máquina 1 por semana.
• B1 ≡ X2: La cantidad de pulloversB a producir en la máquina 1 por semana.
• B2 ≡ X3: La cantidad de pulloversB a producir en la máquina 2 por semana.
• C ≡ X4: La cantidad de pulloversC a producir en la máquina 2 por semana.
Las restricciones serán:
• Producir 10 pullóveresB por semana para un distribuidor.
X2 +X3 ≥ 10 ⇒ −X2 −X3 ≤ −10
• Límite de lana mejorada:
1.6X1 + 1.2X4 ≤ 20
• Límite de lana normal:
1.8X2 + 1.8X3 ≤ 36
• Límite de uso de la máquina 1:
5X1 + 6X2 ≤ 80
Segundo cuatrimestre 2020 193
Ejercicios resueltos 5.6
• Límite de uso de la máquina 2:
4X3 + 4X4 ≤ 80
Y su funcional:
MAX Z = 10X1 + 15X2 + 15X3 + 18X4
Finalmente, utilizando variables slack y artificiales, el modelo final será el siguiente:
−X2 −X3 +X5 − µ = −10
1.6X1 + 1.2X4 +X6 = 20
1.8X2 + 1.8X3 +X7 = 36
5X1 + 6X2 +X8 = 80
4X3 + 4X4 +X9 = 80
MAX Z = 10X1 + 15X2 + 15X3 + 18X4 −Mµ
2.2. Problema dual
La matriz de correspondencia, manteniendo consistencia con las variables de la tabla óptima del
enunciado, se define de la siguiente manera:
X1 X2 X3 X4
Y1 5 6 0 0 X5 80
Y2 0 0 4 4 X6 80
Y3 1.6 0 0 1.2 X7 20
Y4 0 1.8 1.8 0 X8 36
Y5 0 −1 −1 0 X9 −10
Y6 Y7 Y8 Y9
10 15 15 18
Donde:
• X1: PulloversA a producir ≡ Y6: Costo de oportunidad de pulloversA.
Segundo cuatrimestre 2020 194
Ejercicios resueltos 5.6
• X2: PulloversB a producir en M1 ≡ Y7: Costo de oportunidad de pulloversB a producir en M1.
• X3: PulloversB a producir en M2 ≡ Y8: Costo de oportunidad de pulloversB a producir en M2.
• X4: PulloversC a producir ≡ Y9: Costo de oportunidad de pulloversC.
• X5: Sobrante de uso de M1 ≡ Y1: Valor marginal de uso de M1.
• X6: Sobrante de uso de M2 ≡ Y2: Valor marginal de uso de M2.
• X7: Sobrante de lana mejorada ≡ Y3: Valor marginal de lana mejorada.
• X8: Sobrante de lana normal ≡ Y4: Valor marginal de lana normal.
• X9: Sobrante de pulloversB a entregar ≡ Y4: Valor marginal de pulloversB a entregar.
Su modelo de programación lineal será:
5Y1 + 1.6Y3 ≥ 10
6Y1 + 1.8Y4 − Y5 ≥ 15
4Y2 + 1.8Y4 − Y5 ≥ 15
4Y2 + 1.2Y3 ≥ 18
MIN Z = 80Y1 + 80Y2 + 20Y3 + 36Y4 − 10Y5
Utilizando variables slack y artificiales:
5Y1 + 1.6Y3 − Y6 + µ1 = 10
6Y1 + 1.8Y4 − Y5 − Y7 + µ2 = 15
4Y2 + 1.8Y4 − Y5 − Y8 + µ3 = 15
4Y2 + 1.2Y3 − Y9 + µ4 = 18
MIN Z = 80Y1 + 80Y2 + 20Y3 + 36Y4 − 10Y5 +Mµ1 +Mµ2 +Mµ3 +Mµ4
3. Expresar la solución en términos de un programa deproducción, indicando el
porcentaje de utilización de recursos
Para la próxima semana, se producen:
• Ningún pullover del tipoA.
• 403 pulloveres del tipoB, fabricados utilizando la máquina 1.
• 103 pulloveres del tipoB, fabricados utilizando la máquina 2.
• 493 pulloveres del tipoC.
Segundo cuatrimestre 2020 195
Ejercicios resueltos 5.6
En cuanto a la utilización de recursos:
• Se usa el 100% de las 80 horas semanales disponibles de máquina 1.
• Se usa el 100% de las 80 horas semanales disponibles de máquina 2.
• Se usa el 100% de los 20 kg disponibles de lana mejorada.
• Se usa el 83.3% de los 36 kg disponibles de lana normal, sobrando 6kg para la semana siguiente.
• Se satisface la producción de 10 pulloveresB para el importante distribuidor, restando otros 203
para vender de forma particular.
Se obtendrá una ganancia de $550.
4. Determinar los valores marginales y los costos de oportunidad.
4.1. Sobre la tabla óptima
Los valores marginales del problema corresponden a losZj − Cj de las variables slack del problema
(X5,X6,X7,X8 yX9). Observando la tabla óptima del enunciado, estos son:
• Valor marginal de pulloversB a entregar = 52
• Valor marginal de lana mejorada = 154
• Valor marginal de lana normal = 52
• Valor marginal de uso de M1 = 0
• Valor marginal de uso de M2 = 0
Por otro lado, los costos de oportunidad corresponden a losZj−Cj de las variables reales del problema
(X1,X2,X3 yX4). Estos son:
• Costo de oportunidad de pulloversA a producir = 132
• Costo de oportunidad de pulloversB a producir en M1 = 0
• Costo de oportunidad de pulloversB a producir en M2 = 0
• Costo de oportunidad de pulloversC a producir = 0
4.2. Sobre la resolución de LINDO
Los valores marginales del problema corresponden a la columna DUAL PRICES de las restricciones de la
resolución, mientras que los costos de oportunidad corresponden a la columna REDUCED COST de las
variables de la resolución.
Tanto en la tabla óptima como en la resolución de LINDO indican las mismas variables.
Segundo cuatrimestre 2020 196
Ejercicios resueltos 5.6
5. Calcular usando la tabla el rango de variación
5.1. Coeficientes del funcional
Se trata de un problema de maximización. El óptimo seguirá siendo el mismo con tal de que todo
Zj − Cj sea mayor o igual a cero. Entonces para calcular el rango de variación, se parte de la tabla
óptima y luego se dejan en constantes cada uno de los coeficientes de las variables reales que están en
la base, analizando el rango de variación tal que cadaZj − Cj no baje de cero.
5.1.1. C2 La tabla óptima, dejando en constante el valor deC2, es la siguiente:
10 C2 15 18
CK XK BK A1 A2 A3 A4 A5 A6 A7 A8 A9
C2 X2 40/3 5/6 1 0 0 1/6 0 0 0 0 Y7
15 X3 10/3 −4/3 0 1 0 0 1/4 −5/6 0 0 Y8
18 X4 50/3 4/3 0 0 1 0 0 5/6 0 0 Y9
X8 6 9/10 0 0 0 −3/10 −9/20 3/2 1 0 Y4
X9 20/3 −1/2 0 0 0 1/6 1/4 −5/6 0 1 Y5
Z = 550 EQ1 0 0 0 EQ2 15/4 5/2 0 0
EQ1 :
5
6 · C2 − 6 ≥ 0 ⇒ C2 ≥
36
5
EQ2 :
C2
6 ≥ 0 ⇒ C2 ≥ 0
El rango de variación para C2 (la ganancia para los pulloveres B hechos en la máquina 1) será la
intersección de las ecuaciones, igual a [365 ,∞) = [7.2,∞).
5.1.2. C3 Repitiendo el proceso paraC3, las inecuaciones para los valores deZj − Cj son:
EQ1 : −
4
3 · C3 −
53
2 ≥ 0 ⇒ C3 ≤
159
8
EQ2 :
1
4 · C3 ≥ 0 ⇒ C3 ≥ 0
Segundo cuatrimestre 2020 197
Ejercicios resueltos 5.6
EQ3 : −
5
6 · C3 + 15 ≥ 0 ⇒ C3 ≤ 18
El rango de variación paraC3 (la ganancia para los pulloveresB hechos en la máquina 2) es [0, 18]
5.1.3. C4 Repitiendo el proceso paraC4, las inecuaciones para los valores deZj − Cj son:
EQ1 :
4
3 · C4 −
35
2 ≥ 0 ⇒ C4 ≥
105
8
EQ2 :
5
6 · C4 −
25
2 ≥ 0 ⇒ C4 ≥ 15
El rango de variación paraC4 (la ganancia para los pulloveresC) es [15,∞)
5.1.4. C1 Repitiendo el proceso paraC1, solo hay una única inecuación a tener en cuenta:
EQ1 :
33
2 − C1 ≥ 0 ⇒ C1 ≥
33
2
El rango de variación paraC1 (la ganancia para los pulloveresA) es (−∞, 332 ] = (−∞, 16.5]
5.2. Valores de las restricciones
Para calcular la variación de los valores de las restricciones, primero se debe encontrar la tabla óptima
dual. Para esto se utilizan los datos de la tabla óptima directa, tomando en cuenta los paresXi/Yj .
• Las variables Yj que estarán en la base de la tabla dual serán aquellas cuyo parXi de la tabla
directa no se encuentren en la base. Su valorBk en la tabla dual es su valorZj − Cj de la tabla
directa. Sus valores de la columnaAj serán el vector canónico.
• El resto de los valores será el correspondiente al parXi/Yj , con su signo invertido. Con esto se
llega a la misma tabla planteada en el punto anterior.
Entonces, la tabla dual óptima es:
Segundo cuatrimestre 2020 198
Ejercicios resueltos 5.6
80 80 20 36 −10
CK YK BK A1 A2 A3 A4 A5 A6 A7 A8 A9
80 Y1 5/2 1 0 0 3/10 −1/6 0 −1/6 0 0
80 Y2 15/4 0 1 0 9/20 −1/4 0 0 −1/4 0
20 Y3 5/2 0 0 1 −3/2 5/6 0 0 5/6 −5/6
Y6 13/2 0 0 0 −9/10 1/2 1 −5/6 4/3 −4/3
Z = 550 0 0 0 −6 −20/3 0 −40/3 −10/3 −50/3
Con esto se puede calcular el rango de variación para los valores de las restricciones, recordando que
cambió el objetivo de la función de tal forma que ahora se busca minimizar Z. Entonces para que no
cambie el óptimo, el valor de todoZj − Cj debe ser menor o igual a cero.
5.2.1. b1 Dejando en constante el valor de b1, las inecuaciones para los valores deZj − Cj son:
EQ1 : −30 + b1 ·
3
10 ≤ 0 ⇒ b1 ≤ 100
EQ2 :
20
3 − b1 ·
1
6 ≤ 0 ⇒ b1 ≥ 40
EQ3 : −b1 ·
1
6 ≤ 0 ⇒ b1 ≥ 0
El rango de variación para b1 (tiempo disponible de máquina 1) es [40, 100]
5.2.2. b2 Dejando en constante el valor de b2, las inecuaciones para los valores deZj − Cj son:
EQ1 : −42 + b2 ·
9
20 ≤ 0 ⇒ b2 ≤
280
3
EQ2 :
40
3 − b2 ·
1
4 ≤ 0 ⇒ b2 ≥
160
3
EQ3 :
50
3 − b2 ·
1
4 ≤ 0 ⇒ b2 ≥
200
3
El rango de variación para b2 (tiempo disponible de máquina 2) es [2003 ,
280
3 ] = [66.66, 93.33]
Segundo cuatrimestre 2020 199
Ejercicios resueltos 5.6
5.2.3. b3 Dejando en constante el valor de b3, las inecuaciones para los valores deZj − Cj son:
EQ1 : 24− b3 ·
3
2 ≤ 0 ⇒ b3 ≥ 16
EQ2 : −
70
3 + b3 ·
5
6 ≤ 0 ⇒ b3 ≤ 28
EQ3 : −20 + b3 ·
5
6 ≤ 0 ⇒ b3 ≤ 24
El rango de variación para b3 (kg de lana mejorada disponible) es [16, 24]
5.2.4. b4 Dejando en constante el valor de b4, solo hay una única inecuación a tener en cuenta:
EQ1 : 30− b4 ≤ 0 ⇒ b4 ≥ 30
El rango de variación para b4 (kg de lana normal disponible) es [30,∞)
5.2.5. b5 Dejando en constante el valor de b5, solo hay una única inecuación a tener en cuenta:
EQ1 : −
50
3 + b5 ≤ 0 ⇒ b5 ≤
50
3
El rango de variación para b5 (mínima demanda de pulloverB) es (∞, 503 ] = (∞, 16.66]
6. ¿Cuánto habría que aumentar el precio de los pullovers “A” para que su fabricación
sea conveniente?
Esto corresponde al rango de variación del coeficiente correspondiente al precio de pullovers A
(coeficienteC1), que ya fue calculado. Su rango de variación esC1 ≤ 16.5.
Esto quiere decir que si el precio de los pulloversA es mayor a 16.5, cambiará el óptimo del problema,
indicando que en este nuevo vértice se fabricarían pulloversA.
Correcciones
Segundo cuatrimestre 2020 200
Ejercicios resueltos 5.6
Calificación General: Muy Bien
Punto A: Muy Bien
La definición es correcta para las variables del directo y del dual. Podrías indicadar las unidades. La
descripción más adecuada para Y5 (ojo que te quedó “Y4”) sería “costo de oportunidad encubierto
de la demanda mínima de pulóveres B”
Punto B: Excelente
Formulás correctamente la resolución en términos del dominio del problema. Indicás el por-
centaje de utilización de recursos. Ojo que se fabrican 50/3 puloveres C, en lugar de 49/3.
Punto C: Excelente
Los valores son los correctos, y la justificación es correcta.
Punto D: Muy Bien
Los rangos de variación de los coeficientes del funcional son correctos (tenés un error de tipeo
en la desigualdad de C1), y la justificación es correcta. Los rangos de variación de los términos
independientes están bien, excepto el de Y5, que te quedó mal el signo de B5.
Punto E: Excelente
Calculás correctamente el aumento necesario. La justificaciónes correcta.
Presentación: Excelente
El documento es prolijo, tiene las secciones claramentes separadas. Incluye carátula, índice y
numeración de páginas.
Segundo cuatrimestre 2020 201
Ejercicios resueltos 5.7
5.7
1. Enunciado
Para el ejercicio 2.1 se pide analizar la conveniencia de solicitar un aumento en la provisión de lana
tipo “M” si se sabe que dicho aumento solo sería factible reduciendo la provisión de lana de tipo “N” a
razón de 2 kg. de merma en esta última por cada 1 kg. adicional de la primera.
Por ejemplo, si el proveedor entregara 21 kg. de M, la entrega máxima de “N”, sería de 34 kg.
En caso de ser conveniente dicho aumento, determinar:
a- ¿Cuál es el máximo beneficio adicional que puede obtenerse?
b- ¿Cuál sería la cantidad de lana de cada tipo a entregar semanalmente por cada proveedor?
c- ¿Cuál sería el reordenamiento de producción necesario para obtener dicho beneficio máximo?
Analizar el cambio a realizar en relación a la utilización de las disponibilidades de los otros recursos.
2. ¿Cuál es el máximo beneficio adicional que puede obtenerse?
Recordando las restricciones para las lanas “M” y “N” respectivamente:
1.6X1 + 1.2X4 +X6 = 20
1.8X2 + 1.8X3 +X7 = 36
La nueva oportunidad del recurso implica una relación entre los recursos “M” y “N”. Se utiliza un
coeficiente α >= 0 para relacionarlos.
1.6X1 + 1.2X4 +X6 = 20 + α
1.8X2 + 1.8X3 +X7 = 36− 2α
Al buscar cómo cambia el óptimo según una variación en los coeficientes bi, se debe analizar la tabla
dual. La misma con los coeficientes modificados es la siguiente:
Segundo cuatrimestre 2020 202
Ejercicios resueltos 5.7
80 80 20 + α 36− 2α −10
CK YK BK A1 A2 A3 A4 A5 A6 A7 A8 A9
80 Y1 5/2 1 0 0 3/10 −1/6 0 −1/6 0 0
80 Y2 15/4 0 1 0 9/20 −1/4 0 0 −1/4 0
20 + α Y3 5/2 0 0 1 −3/2 5/6 0 0 5/6 −5/6
Y6 13/2 0 0 0 −9/10 1/2 1 −5/6 4/3 −4/3
Z = 550 0 0 0 −6 + α/2 −20/3 + α5/6 0 −40/3 −10/3 + α5/6 −50/3 + α5/6
Al tratarse de un problema de maximización, se busca que todos los Zj − Cj de la tabla dual sean
menores o iguales que cero. Entonces:
−6 + α/2 ≤ 0 ⇒ α ≤ 12
−20/3 + α · 5/6 ≤ 0 ⇒ α ≤ 8
−10/3 + α · 5/6 ≤ 0 ⇒ α ≤ 4
−50/3 + α · 5/6 ≤ 0 ⇒ α ≤ 20
Para que el problema siga siendo óptimo, el valor de α correspondiente debe ser menor o igual que
4.
En el caso particular de α = 4 hay una solución alternativa (determinado por unZj − Cj igual a cero
cuya variable Y8 no se encuentra en la base). Analizando los θ, para que ingrese Y8 a la base debe salir
la variable Y3.
80 80 24 28 −10
CK YK BK A1 A2 A3 A4 A5 A6 A7 A8 A9 θ
80 Y1 5/2 1 0 0 3/10 −1/6 0 −1/6 0 0 −
80 Y2 15/4 0 1 0 9/20 −1/4 0 0 −1/4 0 −
24 Y3 5/2 0 0 1 −3/2 5/6 0 0 5/6* −5/6 3
Y6 13/2 0 0 0 −9/10 1/2 1 −5/6 4/3 −4/3 39/8
Z = 560 0 0 0 −4 −10/3 0 −40/3 0 −40/3
Realizando el cambio de base, se puede observar que el valor marginal de Y3 es cero, indicando que
no es favorable seguir aumentando la cantidad de lana mejorada. Es decir, se mantiene α = 4.
Segundo cuatrimestre 2020 203
Ejercicios resueltos 5.7
80 80 24 28 −10
CK YK BK A1 A2 A3 A4 A5 A6 A7 A8 A9 θ
80 Y1 5/2 1 0 0 3/10 −1/6 0 −1/6 0 0
80 Y2 9/2 0 1 −3/10 0 0 0 0 0 −1/4
Y8 3 0 0 6/5 −9/5 1 0 0 1 −1
Y6 5/2 0 0 0 3/2 −5/6 1 −5/6 0 0
Z = 560 0 0 0 −4 −10/3 0 −40/3 0 −20
A partir de esto, el maximo beneficio que se puede obtener es de 560$.
3. ¿Cuál sería la cantidad de lana de cada tipo a entregar semanalmente por cada
proveedor?
Se determinó un α = 4, por lo que deberá ordenarse 24kg de lana mejorada y 28kg de lana normal.
4. ¿Cuál sería el reordenamiento de producción necesario para obtener dicho
beneficio máximo?
No es necesario buscar toda la tabla equivalente directa a la tabla dual obtenida. Alcanza con conocer
los valores Bk correspondientes a las variables X1, X2, X3, X4, que son equivalentes a los valores
marginales de la tabla dual para las variables Y6, Y7, Y8, Y9 (cambiando su signo).
Entonces:
• No se producen pullovers A.
• Se producen 40/3 pullovers B en la máquina 1.
• No se producen pullovers B en la máquina 2.
• Se producen 20 pullovers C.
En conclusión, se aumenta la producción de pullovers C.
Segundo cuatrimestre 2020 204
Ejercicios resueltos 6.1
6.1
1. Enunciado
Partiendo del ejercicio 5.8, se pide responder las siguientes preguntas:
1.1. Enunciado del ejercicio 5.8
Se trata de una empresa que desea establecer el plan de producción para sus tres productos A, B y C
sujeto a las restricciones de producción total mínima (4 un. por semana), disponibilidad de mano de
obra (24 hh. por semana) y disponibilidad de materia prima (10 kg. por semana). Los coeficientes son
pesos de utilidad unitaria.
2. Inciso A
¿Qué utilidad unitaria mínima deberá tener un producto D para que sea conveniente producirlo,
sabiendo que por unidad requiere 4 horas hombre de mano de obra, 3 kilos de materia prima y no
está incluido dentro de la restricción de producción mínima conjunta? Detallar todos los cálculos.
Primero, se reescriben las ecuaciones del problema incorporando el nuevo productoD (X7):
−X1 −X2 −X3 ≤ −4
Segundo cuatrimestre 2020 205
Ejercicios resueltos 6.1
X1 + 4X2 + 2X3 + 4X7 ≤ 24
X1 + 2X2 + 4X3 + 3X7 ≤ 10
MAX Z = 2X1 + 8X2 + 6X3 + C7 ·X7
Obs: No sirve calcular el lucro cesante porque solo ayuda para determinar cuándo no debe
fabricarse de ese producto. En cualquier otro caso es necesario incorporar el producto a la tabla
óptima y analizar la misma.
Para incorporar el producto en la tabla óptima, se calculan los valores de la columna correspondiente
aA7.
Primero se busca la matriz inversa óptima. Estará dada por las columnas de la matrizA de la tabla
óptima, correspondientes a las columnas de los vectores canónicos de la matrizA de la tabla inicial
(cuyas variables se encontraban en la base). Otra particularidad es que si en la tabla inicial la columna
incluía un−1, se cambia el signo de toda esa columna de la tabla óptima.
Luego, esta matriz se multiplica por los coeficientes de uso de cada uno de los recursos:
A7 =
0 0 1/2
−1 0 1/2
0 1 −2
0
4
3
=
3/2
3/2
−2
El valor marginal (suZj − Cj) debe ser menor o igual a cero para que sea conveniente producir dicho
producto (y con la tabla nueva se realiza un cambio de base). Entonces:
Z7 − C7 = 8 · 3/2− C7 ≤ 0 ⇒ C7 ≥ 12
Para que sea conveniente producir el productoD, la utilidad unitaria deD debe ser mayor o igual a
12.
3. Inciso B
Determinar si altera o no la estructura de la solución óptima el hecho de incorporar un nuevo pro-
ceso con coeficientes tecnológicos de 4, 2 y 3 para A, B y C respectivamente, con una disponibilidad
de 11. Justificar la respuesta detallando los cálculos.
La nueva restricción es:
Segundo cuatrimestre 2020 206
Ejercicios resueltos 6.1
4X1 + 2X2 + 3X3 ≤ 11
Considerando los valores de producción actuales de la tabla óptima:
4 · 0 + 2 · 5 + 3 · 0 = 10 ≤ 11
Como ya se cumple la restricción con los valores de la tabla óptima, no cambia la solución óptima.
4. Inciso C
Determinar si altera o no la estructura de la solución óptima el hecho de incorporar un nuevo pro-
ceso con coeficientes tecnológicos de 3, 3 y 3 para A, B y C respectivamente, con una disponibilidad
de 14. Justificar la respuesta detallando los cálculos.
La nueva restricción es:
3X1 + 3X2 + 3X3 ≤ 14
Considerando los valores de producción actuales de la tabla óptima:
3 · 0 + 3 · 5 + 3 · 0 = 15 6≤ 11
Al no cumplirse la restricción, cambiará el óptimo resultando en un menorZ.
5. Inciso D
¿Qué consumo máximo de mano de obra deberá un producto E para que sea conveniente pro-
ducirlo, sabiendo que por unidad requiere 2 kilos de materia prima, está incluido dentro de la
restricción de producción mínima conjunta y se vende a 8 pesos por unidad? Detallar todos los
cálculos realizados.
Primero, se reescriben las ecuaciones del problema incorporando el nuevo productoE (X7):
−X1 −X2 −X3 −X7 ≤ −4
X1 + 4X2 + 2X3 +A ·X7 ≤ 24
X1 + 2X2 + 4X3 + 2X7 ≤ 10
Segundo cuatrimestre 2020 207
Ejercicios resueltos 6.1
MAX Z = 2X1 + 8X2 + 6X3 + 8X7
Se repiteel mismo proceso que el inciso A:
A7 =
0 0 1/2
−1 0 1/2
0 1 −2
−1
A
2
=
1
2
A− 4
El valor marginal deX7:
Z7 − C7 = 8 · 1− 8 = 0
Existen soluciones alternativas, pero no mejores a la actual. Se podría mantener el plan de producción
actual y no habría valor deA para el cuál dicho óptimo cambie.
En el caso que se quiera producir E y buscamos responder “¿Cuál es el consumo máximo de mano
de obra de E para que no haya otra solución alternativa?”, se analiza la tabla óptima incorporando el
productoE.
Los valores de θ considerando la nueva columna son los siguientes:
θ2 = 5
θ4 = 1/2
θ5 = 4/(A− 4)
Si la variable a salir de la base es θ5, la mano de obra pasaría a ser un recurso limitante. Entonces para
que no salgaX5 de la base se debe cumplir:
4/(A− 4) ≥ 1/2 ⇒ 12 ≥ A
Entonces para que sea viable la solución óptima alternativa con el productoE el valor deA debe ser
menor o igual a 12.
Segundo cuatrimestre 2020 208
Ejercicios resueltos 6.2
6.2
1. Enunciado
Una empresa fabrica y vende tres productos (1, 2 y 3). Se dispone de 10 kg. diarios de materia prima y
de 20 hs. de máquina diaria. Cada producto requiere 1, 2 y 1 kg. de materia prima, respectivamente, y
de 4, 2 y 2 hs. de máquina por unidad. Los beneficios unitarios son de 4, 3 y 2 $/unidad
Debido a un contrato firmado con un cliente se deben producir, como mínimo, 2 unidades diarias de
producto 2.
Dados el enunciado de un problema de Programación Lineal y las tablas inicial y final de su resolución
por el método Simplex, se pide:
2. Inciso A
¿Qué utilidad unitaria mínima debería tener un producto P7 para que sea conveniente producirlo,
sabiendo que por unidad requiere 2 kg. de materia prima y 3 horas de máquina? Detallar los
cálculos.
El funcional y restricciones del problema son los siguientes:
MAX Z = 4 ·X1 + 3 ·X2 + 2 ·X3
Materia Prima) 1 ·X1 + 2 ·X2 + 1 ·X3 ≤ 10
Segundo cuatrimestre 2020 209
Ejercicios resueltos 6.2
Horas Máquina) 4 ·X1 + 2 ·X2 + 2 ·X3 ≤ 20
Demanda mínima)X2 ≥ 2
Para determinar la utilidad unitaria mínima del producto P7 (X7), sería necesario agregarlo a la tabla
óptima. Para incorporar a la tabla óptima del problema sin resolver todo de nuevo, hay que encontrar
la matriz de cambio de base que permita pasar el vector expresado en la base inicial (que se obtiene
de los datos del producto a agregar) a la base óptima.
Se calculan los valores de la columna correspondiente a A7. La misma estará dada por la matriz A
(considerando solo las columnas de las variables slack) multiplicada por los coeficientes de uso de
cada uno de los recursos:
A7 =
−1/3 0 1/3
2/3 0 −1/6
2/3 −1 −1/6
·
2
0
3
=
1/3
5/6
5/6
El valor marginal (suZj − Cj) debe ser menor o igual a cero para que sea conveniente producir dicho
producto (y con la tabla nueva se realiza un cambio de base). Entonces:
Z7 − C7 = 4 · 1/3 + 3 · 5/6 + 0 · 5/6− C7 ≤ 0
⇒ C7 ≥ 23/6
Para que sea conveniente producir el producto P7, su utilidad unitaria debe ser mayor o igual a
$3.83.
3. Inciso B
Graficar la variación de la cantidad de producto 1, del valor marginal del recurso hs. de máquina
y del funcional, al variar la disponibilidad de materia prima entre 8 y 30 kg. por día. Indicar el
valor de las pendientes señalando en qué parte de la tabla se encuentran.
Para variar la disponibilidad de materia prima será necesario recurrir a la tabla óptima dual. Primero
se plantean la correspondencia de variables:
• X1: La cantidad de productos 1 ≡ Y 4: Costo de oportunidad del producto 1
• X2: Cantidad de productos 2 ≡ Y 5: Costo de oportunidad del producto 2
• X3: Cantidad de productos 3 ≡ Y 6: Costo de oportunidad del producto 3
Segundo cuatrimestre 2020 210
Ejercicios resueltos 6.2
• X4: Sobrante de Materia Prima ≡ Y 1: Valor marginal de la materia prima
• X5: Cantidad de demanda insatisfecha de producto 2 ≡ Y 2: Valor marginal de la demanda
mínima de producto 2.
• X6: Sobrante de horas máquina ≡ Y 3: Valor marginal de las horas máquinas
Obtenemos la tabla dual a partir de la tabla directa óptima:
4 3 2
Bk Xk Ck A1 A2 A3 A4 A5 A6
10/3 X1 4 1 0 1/3 -1/3 0 1/3
10/3 X2 3 0 1 1/3 2/3 0 -1/6
4/3 X5 0 0 1/3 2/3 1 -1/6
Z = 70/3 0 0 1/3 2/3 0 5/6
10 -2 20
Bk Yk Ck A1 A2 A3 A4 A5 A6
1/3 Y6 0 0 -1/3 0 -1/3 -1/3 1
2/3 Y1 10 1 -2/3 0 1/3 -2/3 0
5/6 Y3 20 0 1/6 1 -1/3 1/6 0
Z = 70/3 0 -4/3 0 -10/3 -10/3 0
Se busca graficar cómo varían la cantidad del producto 1 (X1), el valor marginal de las horas máquina
(Y3) y el funcional (Z) según la disponibilidad de la materia prima entre 8 y 30kg (b1).
A partir de la tabla dual óptima, se busca el rango de variación para b1
b1 -2 20
Bk Yk Ck A1 A2 A3 A4 A5 A6
1/3 Y6 0 0 -1/3 0 -1/3 -1/3 1
2/3 Y1 b1 1 -2/3 0 1/3 -2/3 0
5/6 Y3 20 0 1/6 1 -1/3 1/6 0
Z = b1 · 2/3 + 50/3 0 16/3-b1 · 2/3 0 -20/3 + b1/3 10/3 -b1 · 2/3 0
Segundo cuatrimestre 2020 211
Ejercicios resueltos 6.2
Al ser una tabla de un problema de minimización, para que la solución siga siendo óptima todoZj−Cj
debe ser menor o igual a cero:
16/3− b1 · 2/3 ≤ 0 ⇒ b1 ≥ 8
−20/3 + b1/3 ≤ 0 ⇒ b1 ≤ 20
20/6− b1 · 2/3 ≤ 0 ⇒ b1 ≥ 5
El rango de variación de b1 para esta solución es [8, 20]. También se puede observar:
• El valor que toma el funcional en este rango: Z = b1 · 2/3 + 50/3
• El valor marginal de las horas máquina se mantiene constante: Y3 = 5/6
• El valor que toma la cantidad de producto 1: X1 = 20/3− b1/3
Para encontrar cómo varían estos valores cuando b1 es mayor a 20, se busca el nuevo óptimo reem-
plazando b1 por 20 y realizando el correspondiente cambio de base.
20 -2 20
Bk Xk Ck A1 A2 A3 A4 A5 A6 θ
1/3 Y6 0 0 -1/3 0 -1/3 -1/3 1 -
2/3 Y1 20 1 -2/3 0 1/3 -2/3 0 2/9
5/6 Y3 20 0 1/6 1 -1/3 1/6 0 -
Z = 30 0 -8 0 0* -10 0
Con b1 = 20, existe una solución alternativa donde sale la variable Y1 de la base y entra Y4.
20 -2 20
Bk Xk Ck A1 A2 A3 A4 A5 A6
1 Y6 0 1 -1 0 0 -1 1
2 Y4 0 3 -2 0 1 -2 0
3/2 Y3 20 1 -1/2 1 0 -1/2 0
Z = 30 0* -8 0 0 -10 0
Nuevamente, se vuelve a dejar el valor de b1 como constante y se analiza su rango de variación.
Segundo cuatrimestre 2020 212
Ejercicios resueltos 6.2
b1 -2 20
Bk Xk Ck A1 A2 A3 A4 A5 A6
1 Y6 0 1 -1 0 0 -1 1
2 Y4 0 3 -2 0 1 -2 0
3/2 Y3 20 1 -1/2 1 0 -1/2 0
Z = 30 20-b1 -8 0 0 -10 0
En esta nueva tabla solo hay un únicoZj − Cj que depende de b1:
20− b1 ≤ 0 ⇒ b1 ≥ 20
El rango de variación para este punto es de [20,∞). En este punto se observa:
• El funcional en este rango es constante: Z = 30
• El valor marginal de las horas máquina se mantiene constante con un valor diferente al encon-
trado en el rango de variación previo: Y3 = 3/2
• No se fabrica producto 1: X1 = 0
Finalmente, el gráfico de estos valores variando b1 en el rango [8, 36]:
Segundo cuatrimestre 2020 213
Ejercicios resueltos 6.2
4. Inciso C
¿A qué valor total resulta conveniente vender a una empresa interesada, disponibilidad del
recurso hs. de máquina en una magnitud de 12 horas? Detallar claramente y justificar los cálculos
realizados.
Actualmente se disponen de 20 horas máquina. Vender 12 de estas horas implicaría variar b3 para que
sea igual a 8.
Similar al inciso anterior, se comienza dejando el valor de b3 constante en la tabla dual óptima para
obtener su rango de variación.
Segundo cuatrimestre 2020 214
Ejercicios resueltos 6.2
10 -2 b3
Bk Yk Ck A1 A2 A3 A4 A5 A6
1/3 Y6 0 0 -1/3 0 -1/3 -1/3 1
2/3 Y1 10 1 -2/3 0 1/3 -2/3 0
5/6 Y3 b3 0 1/6 1 -1/3 1/6 0
Z = 20/3 + b3 · 5/6 0 -14/3+b3/6 0 10/3 - b3/3 -20/3 + b3/6 0
LosZj − Cj deben ser menores o iguales a cero:
−14/3 + b3/6 ≤ 0 ⇒ b3 ≤ 28
10/3− b3/3 ≤ 0 ⇒ b3 ≥ 10
−20/3 + b3/6 ≤ 0 ⇒ b3 ≤ 40
El rango de variación de b3 en la tabla óptima dual es de [10, 28]. Se busca el estado del problema para
b3 = 8, así que se iguala b3 = 10 para encontrar una solución alternativa y así reducir el valor de b3
nuevamente.
10 -2 10
Bk Yk Ck A1 A2 A3 A4 A5 A6 θ
1/3 Y6 0 0 -1/3 0 -1/3 -1/3 1 -
2/3 Y1 10 1 -2/3 0 1/3 -2/3 0 2/9
5/6 Y3 10 0 1/61 -1/3 1/6 0 -
Z = 15 0 -7 0 0* -5 0
En la solución alternativa sale la variable Y1 de la base y entra Y4, igual que en el último inciso.
Segundo cuatrimestre 2020 215
Ejercicios resueltos 6.2
10 -2 10
Bk Xk Ck A1 A2 A3 A4 A5 A6
1 Y6 0 1 -1 0 0 -1 1
2 Y4 0 3 -2 0 1 -2 0
3/2 Y3 10 1 -1/2 1 0 -1/2 0
Z = 15 0* -8 0 0 -10 0
Se deja constante el valor de b3 y se encuentra su rango de variación.
10 -2 b3
Bk Xk Ck A1 A2 A3 A4 A5 A6
1 Y6 0 1 -1 0 0 -1 1
2 Y4 0 3 -2 0 1 -2 0
3/2 Y3 b3 1 -1/2 1 0 -1/2 0
Z = b3 · 3/2 -10+b3 2-b3/2 0 0 -b3/2 0
TodoZj − Cj debe ser menor o igual a cero para que esta solución sea la óptima:
−10 + b3 ≤ 0 ⇒ b3 ≤ 10
2− b3/2 ≤ 0 ⇒ b3 ≥ 4
−b3/2 ≤ 0 ⇒ b3 ≥ 0
El rango de variación para b3 en esta solución es [4, 10], el cuál incluye a b3 = 8.
Con b3 = 8, el funcional tendrá como valorZ = $12. Con 12 horas máquinas menos, el funcional bajó
$11.33. Entonces para que sea conveniente vender las horas, el precio de venta debe ser al menos
$11.33.
5. Inciso D
Determinar si altera o no la estructura de la solución óptima el hecho de incorporar una nueva
restricción, sobre mano de obra, cuya disponibilidad diaria es de 40 hs. hombre, sabiendo que
cada producto utiliza 5, 6 y 1 hs. hombre respectivamente por cada unidad. Justificar la respuesta
Segundo cuatrimestre 2020 216
Ejercicios resueltos 6.2
detallando todos los cálculos.
Se busca incorporar la siguiente restricción:
5 ·X1 + 6 ·X2 + 1 ·X3 ≤ 40
Se analiza si los valores de las variables en la solución óptima (X1 = 10/3, X2 = 10/3, X3 = 0)
cumplen con la restricción:
5 · 10/3 + 6 · 10/3 + 1 · 0 = 110/3 ≈ 36.67 ≤ 40
La solución óptima actual respeta la nueva restricción. Se puede incorporar manteniendo el plan de
producción actual y la ganancia de $23.33.
Correcciones
6.2.a: Muy Bien
La matriz inversa óptima es correcta. La premultiplicación del nuevo vector columna es correcta.
La conclusión está bien. Sólo habría que asegurarse de que el nuevo producto ingresará con un
valor no nulo, lo cual es sencillo de probar ya que no hay punto degenerado en la tabla óptima
actual.
6.2.b: Excelente
El pasaje al dual es correcto. El rango de variación para la tabla actual es correcto. Las conclusiones
para el rango actual de la tabla son correctas. Idem para el rango siguiente. Los diagramas son
correctos.
6.2.c: Muy Bien
El procedimiento es correcto y es el más directo para resolver este punto, aunque hay un error de
cálculo en el B3 para la segunda tabla. La conclusión, aunque arrastra error, es coherente.
6.2.d: Excelente
El análisis de la nueva restricción es correcto. Es el modo más rápido de resolver la pregunta. La
conclusión es correcta.
Segundo cuatrimestre 2020 217
Ejercicios resueltos 6.12
6.12
1. Enunciado
Dadas la tabla óptima directa y dual de un problema de P.L. que consiste en la producción de tres
productos (X1, X2 y X3) a partir de tres recursos de los que se dispone de 12, 12 y 4 unidades respectiva-
mente.
2X1 +X2 + 3X3 ≤ 12
X1 + 2X2 + 3X3 ≤ 12
X1 − 2X2 + 3X3 ≤ 4
MAX Z = 4X1 + 5X2 + 6X3
Tabla óptima directa:
Tabla óptima dual:
Se pide:
2. Inciso A
Segundo cuatrimestre 2020 218
Ejercicios resueltos 6.12
Disponiendo de $16 y sabiendo que se puede comprar recurso 1 a $2, recurso 2 a $1 y recurso 3 a
$5 cada unidad. ¿Qué es lo más conveniente? Indique claramente: Hipótesis necesarias para el
análisis, cómo selecciona la mejor alternativa, por qué lo hace de esa forma
Las hipótesis para el análisis:
• No hay límite de stock a la hora de comprar cada recurso.
• Se pueden comprar fracciones de cada recurso, y su precio será proporcional a la cantidad
comprada.
• Se pueden comprar cantidades arbitrariamente pequeñas de cada recurso.
• Toda la nueva producción se vende.
Comprar recursos para la producción de productos implica modificar los bi del problema hasta gastar
todos los 16$. Se utilizan los valores marginales de las variables slack para determinar cuál restricción
conviene “aflojar”, y así comprar más de ese recurso.
2.1. $16 restantes
Analizando los valores marginales con el precio de cada recurso, el cambio del funcional comprando
una unidad de cada uno son los siguientes:
• Recurso 1: $1− $2 = −$1
• Recurso 2: $2− $1 = $1
• Recurso 3: $0− $5 = −$5
Conviene comprar unidades del recurso 2. Utilizando la tabla óptima dual se busca el rango de variación
del mismo (dejando como constante b2 y asegurando que todoZj − Cj sea menor o igual a cero):
EQ1 (j = 3) : 12−
5
3b2 ≤ 0 ⇒ b2 ≥
36
5 = 7.2
EQ2 (j = 4) : −8 +
1
3b2 ≤ 0 ⇒ b2 ≤ 24
EQ3 (j = 5) : 4−
2
3b2 ≤ 0 ⇒ b2 ≥ 6
Sin que cambie el óptimo, b2 puede tomar valores dentro del intervalo [7.2, 24]. Disponiendo de
$16, se puede comprar 12 unidades del mismo y la tabla dual se encontraría en una solución óptima
alternativa.
En este punto, con 12 unidades más de recurso 2 el funcional aumenta en 12·($2−$1) = 12, resultando
en una ganancia neta de $36 + $12 = $48.
Segundo cuatrimestre 2020 219
Ejercicios resueltos 6.12
2.2. $4 restantes
Se determinó que no conviene comprar más del recurso 2, y comprar de los otros recursos resulta en
una pérdida.
Al estar posicionado en un borde en el rango de variación de b2, existe una solución alternativa. La
tabla dual con b2 = 24 es la siguiente:
12 24 4
Bk Y k Ck A1 A2 A3 A4 A5 A6 θ
12 Y 1 1 1 0 4/3 −2/3 1/3 0 −
24 Y 2 2 0 1 −5/3 1/3 −2/3 0 6
Y 6 3 0 0 −4 −1 −1 1 −
Z = 60 0 0 −28 0∗ −12 0
Sale la variable Y2 y entra Y4:
12 24 4
Bk Y k Ck A1 A2 A3 A4 A5 A6
12 Y 1 5 1 2 −2 0 −1 0
Y 4 6 0 3 −5 1 −2 0
Y 6 9 0 3 −9 0 −3 1
Z = 60 0 0 −28 0∗ −12 0
En esta solución alternativa se producen soloX2. El único recurso limitante es el recurso 1, cuyo valor
marginal es de $5. Por cada unidad a comprar de recurso 1 hay una ganancia de $5− $2 = $3.
Se analiza el rango de variación de b1 en la tabla dual nueva:
EQ1 (j = 2) : −24 + 2b1 ≤ 0 ⇒ b1 ≤ 12
EQ2 (j = 3) : −4− 2b1 ≤ 0 ⇒ b1 ≥ −2
EQ3 (j = 5) : −b1 ≤ 0 ⇒ b1 ≥ 0
Entonces, b1 solo puede tomar valores dentro del intervalo [0, 12]. La cota superior está dada por el
coeficiente b2. Dejando tanto b1 como b2 constantes, laEQ1 resulta en:
Segundo cuatrimestre 2020 220
Ejercicios resueltos 6.12
EQ1 (j = 2) : −b2 + 2b1 ≤ 0 ⇒ 2b1 ≤ b2
El rango de variación de b1 depende de b2. Esto indica que por cada dos unidades de recurso 1 que se
compren, debe comprarse una de recurso 2. Con $4 restantes, se busca la mejor forma de gastar este
dinero. Sean d1 y d2 la cantidad de recurso 1 y recurso 2 comprados con los $4:
b1 = 12 + d1
b2 = 24 + d2
d2 = 2d1
4 = 2d1 + d2
⇒ d1 = 1 , d2 = 2
Comprando una unidad más de recurso 1 y dos de recurso 2, y recordando que el valor marginal del
recurso 1 es de $5, se tendría una ganancia de $1.
2.3. Conclusión
Se utilizan los $16 para comprar:
• 1 unidad de recurso 1.
• 14 unidades de recurso 2.
El plan de producción cambia para producir solamente 13 unidades deX2. La ganancia por producción
es de Z = $65, y considerando el costo de $16 para la compra de recursos la ganancia neta es de
$49.
3. Inciso B
Para el mismo problema del punto anterior se debe decidir la compra de una máquina. Existen
tres alternativas excluyentes.
Aclaración: amortizar significa recuperar una inversión en un tiempo prefijado
Para financiar la compra se cuenta con una línea de crédito especial con un costo del 20% anual
(sobre el valor de la máquina).
Se pide: hipótesis necesarias para el análisis, cuál máquina comprar (si es que conviene alguna).
Justificar la respuesta y explicar el criterio de selección utilizado.
Nota: es un programa mensual
Segundo cuatrimestre 2020 221
Ejercicios resueltos 6.12
Las hipótesis para el nuevo análisis:
• La disponibilidad de recursos del problema inicial se renueva cada mes.
• La disponibilidad de recursos por la producción de cada máquina se renueva cada mes.
• Solo se consideran los próximos 12 meses para determinar el beneficio de cada máquina.
• No existe oportunidad para vender o reutilizar los recursos no utilizados en cada mes.
• El costode la línea de crédito solo se puede pagar al finalizar el año, no antes o después.
• No habrá fallas o defectos en la producción de la máquina.
Nuevamente se utilizan los valores marginales de cada recurso en la solución óptima del problema.
• Recurso 1, VM = $1
• Recurso 2, VM = $2
• Recurso 3, VM = $0
3.1. Sin comprar una máquina
Con las hipótesis establecidas, la ganancia sería:
Z = $36 · 12 = $432
3.2. Máquina A
Se busca el rango de variación del recurso 1 (b1) utilizando la tabla dual óptima para determinar cuánto
puede cambiar el valor hasta que cambie el óptimo del problema:
EQ1 (j = 3) : −24 +
4
3b1 ≤ 0 ⇒ b1 ≤ 18
EQ2 (j = 4) : 4−
2
3b1 ≤ 0 ⇒ b1 ≥ 6
EQ3 (j = 5) : −8 +
1
3b1 ≤ 0 ⇒ b1 ≤ 24
Segundo cuatrimestre 2020 222
Ejercicios resueltos 6.12
El recurso 1 puede tomar valores entre [6, 18] sin que cambie la solución del problema. Con una
máquina que produce 5 unidades adicionales del recurso, no cambia el óptima. Por cada una de estas
unidades, el funcional mejorará 1$.
Considerando el costo de la máquina con la línea de crédito, pasados los 12 meses la ganancia sería:
Z = ($36 + $1 · 5) · 12− $36 · 1.2 = $484.4
3.3. Máquina B
El rango de variación para el recurso 2 ya fue calculado, y con b2 = 20 no cambia el óptimo del problema.
Al finalizar el año la ganancia sería:
Z = ($36 + 8 · $2) · 12− 140$ · 1.2 = $456
3.4. Máquina C
Al no conseguir beneficio al conseguir más unidades del recurso 3 (valor marginal igual a cero), se
descarta la máquina para producir el mismo.
3.5. Conclusión
Conviene comprar la máquina A, que al finalizar el año permitirá una ganancia de $484.4.
Segundo cuatrimestre 2020 223
Ejercicios resueltos 6.16
6.16
1. Enunciado
Una empresa fabrica y vende tres productos (X1, X2 y X3) a partir de los recursos R1, R2 y R3. El producto
X2 tiene una demanda mínima de 40 un./mes. La empresa usa el siguiente modelo de programación
lineal para programar su producción mensual.
X2 ≥ 40
X1 + 2X2 +X3 ≤ 100 [R1]
3X1 + 2X2 +X3 ≤ 120 [R2]
2X1 +X2 + 3X3 ≤ 120 [R3]
MAX Z = 10X1 + 5X2 + 2X3
Tabla óptima directa:
Tabla óptima dual:
2. Inciso A
Se ofrecen dos negocios y hay que ver cuál es el más conveniente. Un negocio consiste en comprar
21 kilos de R2 pagando en total $100. El otro negocio consiste en vender 41 kilos de R2 cobrando
en total $250. ¿Cuál de los negocios es el más conveniente? Justificar la respuesta
Segundo cuatrimestre 2020 224
Ejercicios resueltos 6.16
Primero se analiza el rango de variación del recurso 2 desde la tabla óptima dual. Dicho recurso
corresponde a la variable Y3.
Al ser un problema de maximización, su variante dual buscará minimizar, por lo que el rango de
variación del recurso determinará que losZj − Cj sean menores o iguales a cero.
EQ1 (j = 2) : −140/3 + b3/3 ≤ 0 ⇒ b3 ≤ 140
EQ2 (j = 4) : −400/3 + 2/3 · b3 ≤ 0 ⇒ b3 ≤ 200
EQ3 (j = 5) : 80/3− b3/3 ≤ 0 ⇒ b3 ≥ 80
Para que el punto óptimo del problema no cambie, b3 debe encontrarse dentro del intervalo [80, 140].
La opción 1 resulta en un b3 = 141 y la opción 2 resulta en un b3 = 79. Al irse del rango de variación
establecido, cambiará el punto óptimo del problema dual.
Ambas opciones solo varían en una unidad de los respectivos bordes del intervalo, por lo que antes de
analizar los nuevos óptimos, se analizan los bordes del intervalo utilizando el valor marginal (3.33$).
• b3 = 140:
– Hay un pago de 100$ para obtener 21 kilos más de recurso 2.
– Al obtener 20 kilos más de recurso 2, se obtiene un beneficio de 3.33 · 20 = 66.6$.
– La ganancia final es de−33.3$
– Con b3 = 141 el recurso 2 deja de ser un limitante, por lo que el beneficio será el mismo
que con 140 unidades del mismo.
• b3 = 80:
– Hay un beneficio de 250$ al vender 41 kilos de recurso 2.
– Al tener 40 kilos menos del recurso 2, se perderá un beneficio de 3.33 · 40 = 133.33$.
– La ganancia final es de 116.66$
– Con b3 = 79 cambia el óptimo de la tabla dual, y será necesario realizar el cambio de base
correspondiente para determinar si esta opción es más conveniente que la opción 1. La
variable a entrar a la base es Y5, pero toda la columnaA5 tienen valores negativos. Al tener
un variable para entrar pero ninguna para salir, el problema dual con b3 = 79 resulta en un
poliedro abierto, indicando que el problema directo es incompatible.
En conclusión, como la opción 2 resulta en un sistema sin solución, es más conveniente elegir la opción
1 y comprar 21 kilos de R2.
Segundo cuatrimestre 2020 225
Ejercicios resueltos 6.16
3. Inciso B
Un cliente que necesita producto X3 y que sabe que no lo estamos fabricando nos ofrece pagar
$3,50 por una unidad de X3. Si decidimos aceptar el ofrecimiento habrá que fabricar una unidad
de X3 o comprarla a $3. ¿Conviene vender una unidad de X3? Si conviene, ¿la fabricamos o la
compramos? Justificar la respuesta.
El costo de oportunidad deX3 indica cuánto va a empeorar el funcional si tenemos la obligación de
fabricar y vender una unidad deX3.
• Si se opta por comprar el producto, se tendría una ganancia de 3.50$− 3$ = 0.50$
• Si se opta por fabricar el producto, se debe recordar que el costo de oportunidad considera
el coeficiente actual de X3 en el funcional, entonces la ganancia depende de la diferencia
entre lo que pagaría el cliente y el precio de venta actual. Finalmente, la ganancia ganancia de
(3.50$− 2$)− 1.33$ = 0.16$
Es más conveniente comprar el producto en vez de producirlo.
4. Inciso C
Nos ofrecen vendernos una unidad de X2 a $6. ¿Conviene comprarla o no? Justificar la respuesta.
Una nueva unidad deX2 a comprar implica que la restricción de la demanda mínima se podría reducir
en uno de tal forma queX2 ≥ 39. El valor marginal de dicha restricción es 1.33$, y esto ya considera el
cambio en el plan de producción.
Comprar la unidad de X2 resultaría en una pérdida de 6$ − 1.33$ = 4.67$. No es conveniente
comprarla.
Correcciones
Inciso c) Te falta considerar que al comprar un producto X2, también lo vas a vender por el precio
de venta típico de 5$. Al ser la compra y venta por fuera del modelo no se ve reflejado en los valores
marginales, pero también es parte de la ecuación para considerar si el negocio es conveniente.
Segundo cuatrimestre 2020 226
Ejercicios resueltos 7.2
7.2
1. Enunciado
Un barco de las Naciones Unidas debe ir a Ruanda con un cargamento de alimentos. Estos se enviarán
en cajas, todas del mismo tamaño, por lo que se desea saber cuál es la mejor combinación de productos
que debe contener cada una. A continuación se muestran los posibles componentes del cargamento
y, para cada uno de ellos, la cantidad de personas que se puede alimentar colocando una unidad de
producto en la caja (promedio de la UNESCO) y el volumen ocupado por una unidad del producto (se
debe considerar que la caja tiene 1 metro cúbico de volumen):
Cada una de las cajas puede contener más de una unidad de un mismo producto, pero no más de cinco.
La ONU desea que el contenido de cada caja alimente a la mayor cantidad posible de personas.
Por cada caja de leche en polvo se deben incluir, al menos 3 botellas de agua mineral. Además por
cada 5 personas que se puedan alimentar con la caja, esta debe contener, al menos, una botella de
agua mineral.
2. Análisis de la situación problemática
Se trata de un problema de la mochila, donde la mochila es la caja y el valor de cada elemento a
guardar es la cantidad de personas a alimentar por unidad.
3. Objetivo
Determinar los productos de las cajas a enviar en el barco para maximizar las personas a alimentar
con dichos productos en el plazo de la operación a Ruanda.
Segundo cuatrimestre 2020 227
Ejercicios resueltos 7.2
4. Hipótesis y supuestos
• No hay límite de stock para los productos a enviar, ni restricciones financieras para conseguirlos.
• El contenido de cada caja puede ser idéntico.
• Si la caja alimenta a cuatro personas o menos, no es necesario incluir una botella de agua.
• No hay restricciones para enviar un producto en particular, además de las botellas de agua por
cada cinco personas quealimente la caja.
• Los productos se mantendrán en condiciones aptas durante el viaje, y no habrá pérdidas durante
el mismo.
• Se podrá aprovechar todo el espacio de la caja, sin importar la combinación de productos elegida.
• La limitación de no más de cinco productos del mismo tipo no aplica al agua mineral.
5. Cálculo de datos
Al tener un espacio limitado en la caja se busca maximizar la cantidad de personas alimentadas con
sus productos. Entonces, para cada producto se calcula la proporción de personas alimentadas por
metro cuadrado.
Como por cada unidad de leche en polvo se necesita incluir tres botellas de agua mineral, se suma a
su volumen el correspondiente a las tres botellas.
Producto Volumen Personas Personas por volumen
[u] [m3/u] [pers/u] [pers/m3]
Arroz 0.10 4 40
Polenta 0.07 5 71.43
Almidón 0.25 10 40
Harina 0.09 3 33.33
Agua Mineral 0.15 0 0
Conservas 0.04 2 50
Leche en Polvo 0.55 7 12.72
A partir de esta información:
• Siempre se va a buscar agregar con mayor personas alimentadas por volumen pers/m3.
• El producto solo podrá agregarse si se cumplen las siguientes condiciones:
– El producto entra en la caja.
Segundo cuatrimestre 2020 228
Ejercicios resueltos 7.2
– Si la cantidad de personas a alimentar supera un múltiplo de cinco, debe restar espacio
para todas las botellas de agua necesarias.
– No hay cinco del mismo producto presentes en la caja.
6. Pseudocódigo de la heurística
1. V olRestante := 1
2. PersonasAlimentadas := 0
3. BotellasDeAgua := 0
4. Caja := []
5. Por cada prod ∈ Productos:
i. prod.cantidadRestante = 5
ii. prod.personasPorV olumen = prod.personas/prod.volumen
6. Se selecciona el prod ∈ Productos con mayor personasPorV olumen y se intenta agregar a la
caja. Si ningún producto es elegible, ir a (7):
i. Si prod tiene cantidadRestante igual a cero, se vuelve a (6) eligiendo el próximo producto
con mayor personasPorV olumen
ii. BotellasNecesarias := bprod.personas+P ersonasAlimentadas5 c −BotellasDeAgua
iii. Si V olRestante es menor a prod.volumen − BotellasNecesarias · 0.15, el producto
(considerando las botellas de agua necesarias) no entra en la caja y se vuelve a (6) eligiendo
el próximo producto con mayor personasPorV olumen.
iv. V olRestante := V olRestante− prod.volumen−BotellasNecesarias · 0.15.
v. Se agrega prod aCaja.
vi. Se agreganBotellasNecesarias cantidad de botellas de agua aCaja.
vii. BotellasDeAgua := BotellasDeAgua+BotellasNecesarias
viii. PersonasAlimentadas := PersonasAlimentadas+ prod.personas
ix. prod.cantidadRestante := prod.cantidadRestante− 1
x. Volver a (6) repitiendo el proceso con todos los productos.
7. Caja tiene los productos a enviar. Fin del algoritmo.
7. Resolución por so�ware
El código correspondiente en el lenguaje Python:
1 productos = [
2 [0.1, 4, 'Arroz'],
3 [0.07, 5, 'Polenta'],
Segundo cuatrimestre 2020 229
Ejercicios resueltos 7.2
4 [0.25, 10, 'Almidón'],
5 [0.09, 3, 'Harina'],
6 [0.15, 0, 'Agua Mineral'],
7 [0.04, 2, 'Conservas'],
8 [0.55, 7, 'Leche en Polvo']
9 ]
10
11 for prod in productos:
12 prod += [prod[1] / prod[0], 5]
13
14 volumen_restante = 1
15 personas_alimentadas = 0
16 botellas_agua = 0
17 caja = []
18
19 productos = sorted(productos, key=lambda x: x[3], reverse=True)
20
21 while True:
22 prox_producto = None
23 agua_necesaria = 0
24
25 for prod in productos:
26 if prod[4] == 0:
27 continue
28
29 agua_necesaria = (prod[1] + personas_alimentadas) // 5 - botellas_agua
30 if prod[0] + agua_necesaria * 0.15 <= volumen_restante:
31 prox_producto = prod
32 break
33
34 if prox_producto == None:
35 break
36
37 caja += [prox_producto[2]]
38 botellas_agua += agua_necesaria
39 volumen_restante -= agua_necesaria * 0.15 + prox_producto[0]
40 personas_alimentadas += prox_producto[1]
41 prod[4] -= 1
42 caja += ['Agua Mineral'] * agua_necesaria
43
44 print('Volumen restante', volumen_restante)
45 print('Personas alimentadas', personas_alimentadas)
46 print(caja)
Y su salida:
1 Volumen restante 0.04000000000000007
2 Personas alimentadas 24
3 ['Polenta',
4 'Agua Mineral',
5 'Polenta',
6 'Agua Mineral',
7 'Polenta',
8 'Agua Mineral',
9 'Polenta',
10 'Agua Mineral',
11 'Conservas',
12 'Conservas']
Segundo cuatrimestre 2020 230
Ejercicios resueltos 7.2
8. Informe de la solución de la heurística
Para alimentar a 24 personas con una caja, debe incluir:
• 4 paquetes de polenta.
• 2 latas de conservas.
• 4 botellas de agua mineral.
Se usa 0.96m3 del espacio de la caja, restando 0.04m3 de espacio libre. Se podría agregar otra lata de
conservas porque ocupa exactamente 0.04m3, pero con esta la caja pasaría a alimentar 26 personas
(requiriendo botella de agua adicional y no hay espacio restante para esta).
Segundo cuatrimestre 2020 231
Ejercicios resueltos COLOQUIO 2019-12-19
Coloquio 2019-12-19
1. Parte A
Un emprendedor compra y vende tres modelos de conectores externos para computadoras portátiles
(los vamos a llamar 1, 2 y 3). Cada mes prepara un estimado de sus ventas y compra conectores para
satisfacerlas, Para el mes que viene sus ventas estimadas son de Vi para cada conector i. Además piensa
ofrecer una promo para minoristas que consiste en una bolsa con 20 conectores de cada modelo, no
tiene idea de cuantas bolsas puede vender pero no quiere tener menos de 30 bolsas armadas porque
le interesa impulsar este nuevo producto. Los precios de venta son PCi para los conectores i y PB para
la bolsa. Para comprar las mercaderías tiene distintas alternativas, puede comprar a un proveedor
local las cantidades que quiera pero también puede comprar lotes a importadores de China, estos
lotes tienen distintas cantidades de los tres conectores. Se sabe el contenido de cada lote y el precio.
Se compra el lote entero o no se compra. Para el mes que viene hay 5 lotes en oferta, se indica para
cada lote la cada cantidad de conectores de cada modelo y el precio de compra
Todas las compras son al contado, dispone de $MES para hacer sus compras. Si compra al menos tres
lotes y le sobra más de $DEMAS puede usar el dinero sobrante en hacer publicidad, Estima que por
cada 10000$ que gaste en publicidad sus ventas aumentaran un 1%.
¿Qué es lo mejor que se puede hacer con la información disponible?
1.1. Inciso 1
Análisis del problema, Objetivo completo y claro. Hipótesis necesarias para su resolución, defini-
ción de variables. Modelo de programación lineal para su resolución óptima. NO SE PUEDE
CAMBIAR EL NOMBRE A LOS DATOS DADOS.
1.1.1. Análisis de la situación problemática Se trata de un problema de armado.
Se disponen de dos alternativas para la compra de conectores, una de ellas siendo ilimitada y otra por
compra de hasta cinco lotes diferentes.
Segundo cuatrimestre 2020 232
Ejercicios resueltos COLOQUIO 2019-12-19
El dinero disponible en el mes presenta una meta, con una alternativa de invertir el dinero que sobra
en publicidad, aumentando las ventas totales.
1.1.2. Objetivo Determinar cuáles de los lotes a comprar de china, la cantidad de conectores a
comprar del local y la cantidad de bolsas a armar para maximizar la ganancia por venta de conectores
y bolsas del próximo mes.
1.1.3. Hipótesis y supuestos
• La demanda para cada conector no es la misma que la demanda de las bolsas.
• La demanda para cada conector es un mínimo a satisfacer.
• Los conectores comprados en el local y los importados de China son indistinguibles entre sí.
• No hay problemas de importación, demoras adicionales o costos adicionales para la compra de
los lotes.
• Todas las bolsas que se arman y conectores que se compran se logran vender.
• El aumento del 1% es directamente proporcional al dinero invertido.
• Para la inversión de publicidad, solo se puede utilizar el dinero que sobre por las compras y
superior a $DEMAS.
• Solo se puede comprar un lote de cada tipo.
• Solo se considera el dinero inicial $MES para las compras de conectores y publicidad.
• No hay defectos en los conectores comprados.
• No hay restricciones de mano de obra.
• No hay restricciones físicas de almacenamiento.
• No hay inflación.1.1.4. Definición de variables Se definen las variables de decisión:
• COMPi [conector/mes, entera]: Cantidad de conectores i a comprar al local en el mes.
– Donde i ∈ CONECT = {1, 2, 3}.
• Ylote,j [binaria]: Toma valor 1 si se decide comprar el lote j para el próximo mes.
– Donde j ∈ LOTES = {A,B,C,D,E}.
• BOLSAS [bolsas/mes, entera]: Cantidad de bolsas de conectores a armar en el mes.
Se definen también las siguientes variables:
• DISPi [conector/mes, entera]: Cantidad de lotes idisponibles para la venta y armado de bolsas
del mes.
Segundo cuatrimestre 2020 233
Ejercicios resueltos COLOQUIO 2019-12-19
• INDi [conector/mes, entera]: Cantidad de conectores i para vender de forma individual.
• CAJAexceso [$/mes]: Exceso de dinero para compras, pasado de $DEMAS.
• CAJAdefecto [$/mes]: Defecto de dinero para compras, debajo de $DEMAS.
• Y3lotes [binaria]: Toma valor 1 si se deciden comprar al menos tres lotes.
• BENEF [$/mes]: Beneficio de dinero obtenido por venta de conectores y bolsas en el mes.
• COSTOcompra [$/mes]: Costo de dinero resultante por compra de conectores y lotes en el mes.
• COSTOpublicidad [$/mes]: Dinero invertido en publicidad en el mes.
1.1.5. Modelo de programación lineal Se vinculan los lotes y conectores a comprar con la disponi-
bilidad de conectores en el mes. Para todo i ∈ CONECT :
DISPi = COMPi +
∑
j∈LOT ES
Ylote,j · Lj,i
Para el armado de bolsas y venta de conectores solo se dispone de una cantidad limitada de conectores.
Para todo i ∈ CONECT :
INDi + 20 ·BOLSAS ≤ DISPi
Se vincula la variable binaria Y3lotes:
3 · Y3lotes ≤
∑
j∈LOT ES
Ylote,j ≤ 2 + 3 · Y3lotes
Se vincula el beneficio obtenido por ventas.
BENEF = PB ·BOLSAS +
∑
i∈CONECT
PCi · INDi
Se vincula el costo relacionado a las compras:
COSTOcompra =
( ∑
i∈CONECT
Ci · COMPi
)
+
∑
j∈LOT ES
Lj · Ylote,j
Se vincula la meta del dinero disponible para la compra de conectores:
(MES − COSTOcompra)−DEMAS = CAJAexceso
Solo se puede invertir en publicidad el dinero que sobró CAJAexceso y si se compraron tres o más
Segundo cuatrimestre 2020 234
Ejercicios resueltos COLOQUIO 2019-12-19
lotes. Se toma una constanteM con valor “muy grande”.
COSTOpublicidad ≤ CAJAexceso
COSTOpublicidad ≤ Y3lotes ·M
Existe una demanda mínima por venta de conectores individuales. Para todo i ∈ CONECT :
(Vi + COSTOpublicidad ·
0.01
10000) ≤ INDi
Se busca armar un mínimo de bolsas:
30 ≤ BOLSAS
Finalmente, el funcional a maximizar:
MAX Z = BENEF − COSTOcompra − COSTOpublicidad
1.2. Inciso 2
Un amigo le propone una Heurística de construcción muy simple: Dividir el total de conectores
de cada lote por el precio del lote, ordenar de menor a mayor y comprar los tres primeros de la
lista, si faltan conectores para cumplir con la demanda comprarlos al proveedor local. Indicar
qué ventajas e inconvenientes tiene la heurística propuesta. ¿Cuándo va a funcionar mal? y ¿qué
condiciones se deberían dar para que funcione bien?
La heurística trae varios problemas:
• Para que funcione correctamente, si el criterio para ordenarlos es la relación de “conectores por
precio”, debería ordenarse de mayor a menor en vez de menor a mayor. Por ejemplo: si todos
los lotes salen lo mismo, la heurística terminará eligiendo aquellos lotes con menor cantidad de
conectores.
• No existe desempate si dos lotes tienen la misma relación de conectores por precio.
• No considera los tipos de conectores que trae cada lote.
• No considera el dinero disponible.
• No considera el precio que salen los conectores en el local.
Para que funcione bien, se debe disponer de suficiente dinero para la compra de los tres lotes y estos
deberían alcanzar para satisfacer la demanda mínima.
Segundo cuatrimestre 2020 235
Ejercicios resueltos COLOQUIO 2019-12-19
1.3. Inciso 3
Plantee una heurística de construcción para resolver el problema. Recuerde que su heurística
debe tender al mejor resultado y que no debe tener los problemas que criticó en el punto A2.
1. Para cada tipo i de conector:
a. Se divide el precio del lote por la cantidad de conector de tipo i que posee, obteniendo así
el precio unitario de ese conector para cada lote. Se los ordena de menor a mayor; si hay
empate se los ordena alfabéticamente.
b. Por cada uno de los lotes ordenados j que no han sido comprados:
i. Si el precio unitario del lote j para el conector i no es mayor al precio del local, queda
suficiente dinero para comprar el lote, y todavía no se llegó a la cantidad necesaria de
conectores i, se compra el lote.
2. Se compran al local los conectores necesarios para llegar a la demanda mínima. Si no se dispone
de suficiente dinero, el problema no tiene solución.
3. Fin de la heurística.
Nota post-clase: Una “buena” heurística tendría el mismo objetivo que el modelo (maximizar la
ganancia) pero esta solo tiene como objetivo minimizar los costos para cumplir con la demanda
mínima.
2. Parte B
Una empresa fabrica dos productos (X1 y X2) a partir de R1 y R2. Hay una demanda mensual máxima
para el producto P1 y que es de 15 unidades. Tiene un Programa Lineal para determinar su nivel mensual
de producción. Del recurso R1 la disponibilidad mensual es de 90 kg. La disponibilidad mensual del
recurso R2 es de 50 kg. Los precios de venta de los productos son $36 y $30, respectivamente. El z es
de máximo.
2.1. Inciso 1
Sabiendo que el producto X1 consume 2 kilos de cada recurso y que el producto 2 consume 3 kilos
Segundo cuatrimestre 2020 236
Ejercicios resueltos COLOQUIO 2019-12-19
de R1 y 1 kilo de R2, analice la alternativa de eliminar la demanda máxima de P1 ¿se fabricará
más producto X1 o menos? Idem para el producto X2.
Primero se plantea la correspondencia de variables de la tabla óptima y la dual:
• X1: La cantidad de producto 1 ≡ Y4: Costo de oportunidad del producto 1
• X2: Cantidad de producto 2 ≡ Y5: Costo de oportunidad del producto 2
• X3: Sobrante de recurso 1≡ Y1: Valor marginal del recurso 1.
• X4: Sobrante de recurso 2 ≡ Y2: Valor marginal del recurso 2.
• X5: Demanda insatisfecha del producto 1 ≡ Y3: Valor marginal de la demanda mínima de
producto 1.
Eliminar la demanda máxima de P1 implica cambiar el valor de su coeficiente en la restricción porM
(siendo esta una constante con valor “muy grande”).
X1 ≤M
Se deja constante el valor de b3 en la tabla óptima dual para encontrar su rango de variación.
90 50 b3
Ck Yk Bk A1 A2 A3 A4 A5
90 Y1 6 1 0 -1/4 1/4 -1/2
50 Y2 12 0 1 3/4 -3/4 1/2
Z = 1140 0 0 15-b3 -15 -20
El problema dual es de minimización, y para que la tabla sea óptima todoZj − Cj debe ser menor o
igual a cero. Con b3 constante solo cambiaZ3 − C3.
15− b3 ≤ 0 ⇒ b3 ≥ 15
La solución óptima se mantiene igual variando b3 en el intervalo [15,M ]. Entonces el plan de produc-
ción no cambia, es decir que no se fabricarán más deX1 o deX2.
2.2. Inciso 2
Segundo cuatrimestre 2020 237
Ejercicios resueltos COLOQUIO 2019-12-19
Una empresa ofrece la posibilidad de conseguir recurso R2 entregando 2 kilos de R1 por cada kg
de R2 que nos entregue. ¿Cuánto conviene pedir de R2 y cuánto conviene entregar de R1?. Se
quiere saber cuál es la estructura óptima de producción luego de analizar esta posibilidad.
Sean b1 y b2 la cantidad disponible de recurso 1 y 2 respectivamente, se plantea la siguiente relación
entre ellas considerando la nueva alternativa:
b1 = 90− 2αb2 = 50 + α
Dejando constante el valor de α en la tabla óptima dual se observa que este no cambia el valor del
funcional:
Z = 6 · (90− 2α) + 12 · (50 + α)
Z = 540− 12 · α+ 600 + 12 · α
Z = 1140
No obstante, se busca su rango de variación para analizar si permite una solución alternativa.
90 - 2 α 50 + α 15
Ck Yk Bk A1 A2 A3 A4 A5
90 - 2 α Y1 6 1 0 -1/4 1/4 -1/2
50 + α Y2 12 0 1 3/4 -3/4 1/2
Z = 1140 0 0 α· 5/4 -15 - α· 5/4 -20
TodoZj − Cj debe ser menor o igual a cero:
α · 5/4 ≤ 0 ⇒ α ≤ 0
15− α · 5/4 ≤ 0 ⇒ α ≤ 12
Como α no tiene rango de variación en el óptimo, inmediatamente realizar el intercambio implica un
cambio en la base de la tabla óptima.
Observando losZj− Cj y los θ, entraría la variable Y3 y saldría la variable Y2. Cuando ocurre esto, el
nuevo valor marginal de R2 pasa a ser cero, lo cual significa que que no mejoraría el funcional si se
consigue más de R2. El funcional solo empeoraría al variar α.
Segundo cuatrimestre 2020 238
Ejercicios resueltos COLOQUIO 2019-12-19
Entonces no conviene intercambiar recurso 1 para obtener recurso 2.
3. Parte C
3.1. Inciso 1
Dada la siguiente restricción de un problema mochila 15X1 + 12X2 + 8X3 + 7X4 + 6X5 + 5X6 + 2X7
<= 17
a) Encuentre 2 cortes cover
b) Extienda y li�ee uno de los cortes encontrados
Ejercicio práctico de plano de corte no aplica a 2C 2020.
3.2. Inciso 2
Compare cortes Gomory y cortes Cover. Indique pros y contras de cada uno
Los cortes Gomory se destaca por tratar a todas las variables del problema como contínuas. Ningún
paso intermedio resulta en una solución inválida. El algoritmo converge, pero requiere una gran
cantidad de planos de corte y esto puede generar soluciones incorrectas.
Los cortes Cover por otro lado son más fuertes. Dependen de la formulación del problema, y no se
pueden aplicar en todos los casos.
Segundo cuatrimestre 2020 239
Ejercicios resueltos COLOQUIO 2020-09-07
Coloquio 2020-09-07
1. Parte 2
Una empresa fabrica los productos X1 y X2 a partir de los recursos R1 y R2. Además hay una restricción
de producción mínima para X2 de 100 unidades por mes. Aquí vemos el planteo del problema:
1 2 X1 + 2 X2 <= 800 (kg. de R1/mes);
2 X1 - X2 <= 200 (kg. de R2/mes);
3 X2 >= 100 (un./mes)
4 Z = 80 X1 + 20 X2 (MAXIMO)
5 (80 es el beneficio unitario de X1 y 20 es el beneficio unitario de X2)
1.1. Inciso 1
Se agrega una restricción a este problema. Esa restricción no modifica el poliedro de soluciones
que tenía el problema antes de agregarla, pero tampoco tiene sobrante en el óptimo (la slack de
esa restricción vale cero en el óptimo) ¿Qué características tenía la restricción que se agregó?. Dé
un ejemplo de cuál podría ser esa restricción
Significa que la recta de la restricción nueva contiene al punto óptimo. Esto significaría que el punto
óptimo es un punto degenerado.
Una posible restricción de este estilo podría ser:
X1 ≤ 300
La variable slack correspondiente a la restricción se encontraría en la base de la tabla óptima, y valdría
cero.
1.2. Inciso 2
Uno de los técnicos de la empresa dice haber descubierto que por más que disminuya el coe-
ficiente de X1 (siempre manteniéndolo mayor que cero) el modelo elige seguir fabricando X1
¿puede suceder esto? Si no puede suceder indique claramente por qué. Idem si puede suceder.
Detalle los cálculos efectuados
Se analiza el rango de variación del coeficienteC1. Para esto se lo deja constante en la tabla óptima.
Segundo cuatrimestre 2020 240
Ejercicios resueltos COLOQUIO 2020-09-07
C1 20
Ck Xk Bk A1 A2 A3 A4 A5
0 X5 0 0 0 1/4 -1/2 1
C1 X1 300 1 0 1/4 1/2 0
20 X2 100 0 1 1/4 -1/2 0
Z = 2000 + 300C1 0 0 5 +C1 -10 +C1/2 0
Por ser un problema de maximización, todoZj−Cj debe ser mayor o igual a cero para que se mantenga
el plan actual de producción.
Se observa que cuandoC1 < 20,Z4 − C4 resulta mayor a cero. Acá se produce un cambio de variable
donde entra X4 y sale X1 por tener el único valor de θ elegible (valor de la columna mayor a cero).
CuandoX1 sale de la base, se deja de producir X1. Entonces lo que dice el técnico no es correcto.
2. Parte 3
En diversas ciudades de una determinada provincia hacen falta médicos y cirujanos. La necesidad
de cada ciudad depende del número de habitantes y de los médicos clínicos y cirujanos que ya estén
trabajando en ella. En el cuadro respectivo se indica cuántos médicos clínicos y cuántos cirujanos
habría que enviar a cada ciudad para cubrir sus necesidades al 100%.
Por otra parte, en la provincia se cuenta con 20 equipos médicos ya formados, compuestos de médicos
clínicos y cirujanos. Por experiencias anteriores se sabe que si no se desarma un equipo sus integrantes,
como están acostumbrados a trabajar en grupo, rinden un 25% más, que si desarmamos el equipo y
reasignamos sus integrantes en forma individual.
Segundo cuatrimestre 2020 241
Ejercicios resueltos COLOQUIO 2020-09-07
Una simple sumatoria permite saber que no es posible cubrir el 100% de las necesidades existentes.
¿Qué es lo mejor que puede hacer el gobierno de la provincia con la información disponible?.
2.1. Inciso 1
Análisis del problema, Objetivo completo y claro. Hipótesis necesarias para su resolución, defini-
ción de variables. Modelo de programación lineal para su resolución óptima. Si este punto no es
lineal, el examen está insuficiente
2.1.1. Análisis de la situación problemática Se trata de un problema de distribución, con la posi-
bilidad de desarmar conjuntos ya armados en vez de suministrarlos a una ciudad aunque sea menos
óptimo.
2.1.2. Objetivo Determinar la cantidad de equipos a asignar a ciudades, equipos a separar y clínicos
y cirujanos a asignar a las ciudades de forma individual para maximizar la proporción de puestos
cubiertos en las ciudades de forma pareja, en el plazo de los datos.
2.1.3. Hipótesis y supuestos
• Cuando un equipo “rinde un 25% más”, se asume que pueden cubrir un 25% más de puestos.
Por ejemplo, un equipo de 4 clínicos podría cubrir 5 puestos.
• Todos los integrantes son escenciales para el equipo. Si falta un solo clínico o cirujano, este deja
de rendir de forma eficiente.
• Todos los clínicos y cirujanos estarán conformes con los resultados de la asignación.
• No importa cómo se distribuyen a los profesionales dentro de las mismas ciudades.
• Puede haber más profesionales que puestos disponibles en cada ciudad.
• No existen otros profesionales además de los equipos mencionados.
• No hay un mínimo de puestos a cubrir.
• Existe una constanteTOLpara indicar la mayor diferencia permitida entre proporción de puestos
cubiertos por trabajo por ciudad.
2.1.4. Definición de variables Se definen las siguientes variables de control:
• ASSIGNi,j [bivalente]: Toma valor 1 si se asignó el equipo i a la ciudad j.
– Donde i ∈ {1, ..., 20} = EQUIPOS
– Donde j ∈ {A, ..., G} = CIUDADES
• BREAKi [bivalente]: Toma valor 1 si se desarmó el equipo i.
Segundo cuatrimestre 2020 242
Ejercicios resueltos COLOQUIO 2020-09-07
• INDk,j [profesional/ciudad, entera]: Cantidad de profesionales k asignados a la ciudad j de
forma individual.
– Donde k ∈ {CLI,CIR} = TRABAJOS
Se definen también las siguientes variables:
• INDk [profesionales, entera]: Cantidad de profesionales disponibles para asignar a las ciu-
dades de forma individual.
• TOTALk,j [profesionales/ciudad, entera]: Cantidad total de profesionales k asignados a la
ciudad j.
• PROPk,j : Toma valores entre 0 y 1, indicando la proporción de personal asignado k en la ciudad
j.
• YP ROP MIN,k,j [bivalente]: Toma valor 1 si la ciudad j tiene la menor proporción de profesionales
k.
• PROPMINk: Toma valores entre 0 y 1, indicando la proporción mínima de personal asignado
k entre todas las ciudades.
• YP ROP MAX,k,j [bivalente]: Toma valor 1 si la ciudad j tiene la mayor proporción de profesionales
k.
• PROPMAXk: Toma valores entre 0 y 1, indicando la proporción máxima de personal asignado
k entre todas las ciudades.
Se reescriben también los datos del problema para dejarlos en constantes nombradas:
• NEEDk,j [profesionales/ciudad, entera]: Cantidad de puestos para la profesión k a llenar en
la ciudad j.
• COMPi,k [profesionales/ciudad, entera]: Cantidad de profesionales de k en el equipo i.
• TOL: Indica la mayor diferencia permitida entre proporción de puestos cubiertos por trabajo
por ciudad
2.1.5. Modelo de programación lineal Si un equipo se asigna, no se puede romper:
∀ i ∈ EQUIPOS , j ∈ CIUDADES :
ASSIGNi,j ≤ (1−BREAKi)
Solo se puede asignar un equipo por ciudad:
∀ i ∈ EQUIPOS :
∑
j∈CIUDADES
ASSIGNi,j = 1
Segundo cuatrimestre 2020 243
Ejercicios resueltos COLOQUIO 2020-09-07
Se vincula la cantidad de profesionales individuales disponibles con los equipos separados:
∀ k ∈ TRABAJOS :∑
i∈EQUIP OS
BREAKi · COMPi,k = INDk
Se vincula la cantidad de profesionales individuales disponibles con los asignados en cada ciudad,
donde pueden quedar trabajadores sin asignar a ciudades:
∀ k ∈ TRABAJOS :
∑
j∈CIUDADES
INDk,j ≤ INDk
La cantidad total de profesionales se considera a partir de los individuales y los equipos:
∀ k ∈ TRABAJOS , j ∈ CIUDADES :
TOTALk,j = INDk,j +
∑
i∈EQUIP OS
ASSIGNi,k · COMPi,k · 1.25
Se vincula la proporción de profesionales asignada a las ciudades:
∀ k ∈ TRABAJOS , j ∈ CIUDADES :
PROPk,j =
TOTALk,j
NEEDk,j
Se busca la proporción mínima entre todas las ciudades, siendoM una constante con un valor “muy
grande”:
∀ k ∈ TRABAJOS :
∑
j∈CIUDADES
YP ROP MIN,k,j = 1
∀ k ∈ TRABAJOS , j ∈ CIUDADES :
PROPk,j −M · (1− YP ROP MIN,k,j) ≤ PROPMINk ≤ PROPk,j
Se repite el procedimiento para buscar la proporción máxima entre todas las ciudades:
∀ k ∈ TRABAJOS :
∑
j∈CIUDADES
YP ROP MAX,k,j = 1
∀ k ∈ TRABAJOS , j ∈ CIUDADES :
PROPk,j ≤ PROPMAXk ≤ PROPk,j +M · (1− YP ROP MAX,k,j)
Segundo cuatrimestre 2020 244
Ejercicios resueltos COLOQUIO 2020-09-07
Buscando mantener una proporción con el porcentaje de trabajadores asignados por ciudad:
∀ k ∈ TRABAJOS : PROPMAXk − PROPMINk ≤ TOL
Finalmente, el funcional a maximizar:
MAX Z =
∑
k∈T RABAJOS
∑
j∈T RABAJOS
PROPj,k
2.2. Inciso 2
Plantee una heurística de construcción para resolver el problema agregando la siguiente simplifi-
cación del problema: “los equipos no se pueden desarmar”. Recuerde que su heurística debe
tender al mejor resultado posible.
Para el planteo de la siguiente heurística, se busca mantener lo más posible la diferencia entre la mayor
y menor proporción de profesionales asignados.
También se simplifican los datos: como ningún equipo se desarma, todos trabajan de forma eficiente.
Entonces a todos los equipos se “aumenta” la cantidad de profesionales de cada categoría por un
25%.
1. Por cada uno de los equipos i, ordenados de menor a mayor por cantidad total de profesionales:
a. Por cada una de las ciudades j, ordenadas de menor a mayor por puestos totales:
i. Si el equipo a asignar no sobrepasa la cantidad de clínicos o cirujanos restantes nece-
sarios, asignar el equipo a la ciudad y se vuelve a (1).
ii. Como no se asignó el equipo, se vuelve a (a).
2. Los equipos quedaron asignados. Fin de la heurística.
Segundo cuatrimestre 2020 245
Ejercicios resueltos COLOQUIO 2020-09-14
Coloquio 2020-09-14
1. Parte 2
Nuestra empresa fabrica los productos X1 y X2 a partir de los recursos R1 y R2. Además tenemos una
serie de pedidos comprometidos de X2 que suman 10 unidades por mes. Aquí vemos el planteo del
problema:
1 2 X1 + 2 X2 <= 80 (kilos de R1/mes)
2 X1 + 2 X2 <= 50 (kilos de R2/mes)
3 X2 >= 10 (unidades/mes)
4 Z = 30 X1 + 20 X2 (MAXIMO)
5 (30 es el precio de venta de X1 y 20 es el precio de venta de X2)
1.1. Inciso 1
Una famosa empresa amiga nos ofrece lo siguiente: Nos vende R1, pero nos obliga a aumentar
la exigencia de producción mínima. Entonces, por cada kg. de R1 que nos vendan debemos
aumentar la producción mínima de X2 en dos unidades (por ejemplo, si nos venden 2 kg. de R1,
estaremos obligados a fabricar 14 como mínimo de X2). Te pedimos que nos digas si la alternativa
es conveniente y, si conviene, cuál es la estructura óptima de producción luego de analizar esta
alternativa. Si no conviene, justificá la respuesta.
Se observan los valores marginales de las variables slack correspondientes al recurso 1 (X3) y la
demanda mínima (X5). Dichos valores nos indican que al conseguir un kilogramo más de R1 el funcional
aumenta $15, pero al aumentar la demanda mínima en dos el funcional bajaría $20. En definitiva
causaría una pérdida de $5 por cada nuevo kilogramo de R1. No es conveniente el intercambio.
1.2. Inciso 2
Si se pudiera comprar producto X2 ya procesado y listo para vender (los clientes no son capaces
de distinguir entre el X2 producido por nosotros y el comprado) ¿a qué precio –como máximo-
Segundo cuatrimestre 2020 246
Ejercicios resueltos COLOQUIO 2020-09-14
convendría pagarlo?. ¿Cuántas unidades de X2 conviene comprar a un precio menor al máximo
que acabamos de obtener?
Se deben considerar dos valores:
• La ganancia por vender un producto X2 es de $20.
• El valor marginal de la demanda mínima de X2. Al aflojar una unidad de esta restricción el
funcional aumenta $10.
Entonces para que sea conveniente, se debe comprar X2 a menos de $30.
Si se compra a menos de $20, inmediatamente conseguiríamos la ganancia al venderlo, por lo que
podríamos comprar todo el stock de X2 sin tener pérdidas.
En cambio, si el precio de compra se encuentra entre $20 y $30, depende de la restricción de la demanda
mínima. Se analiza el rango de variación del coeficiente b3 en la restricción correspondiente, dejando
constante el valor en la tabla óptima dual.
80 50 b3
Bk Yk Ck A1 A2 A3 A4 A5
80 Y1 15 1 1/2 0 -1/2 0
b3 Y3 10 0 -1 1 -1 1
Z=1200+10b3 0 -10-b3 0 -40-b3 b3
Como el problema dual es uno de minimización, todoZj − Cj debe ser menor o igual a cero. Con un
b3 = 0, se mantiene el óptimo y el plan de producción, y por cada X2 a comprar se podría aprovechar
una ganancia de $30. Entonces si el precio de compra se encuentra entre $20 y $30, se deben comprar
10 unidades de X2.
2. Parte 3
Un emprendedor prepara y vende sandwiches de vegetales grillados y de queso gruyere con tomate
seco, los insumos necesarios se indican en la siguiente tabla.
Segundo cuatrimestre 2020 247
Ejercicios resueltos COLOQUIO 2020-09-14
El emprendedor también tiene una promoción que consiste en una caja con 3 sandwiches de Vegetales
Grillados y dos sandwiches de queso Gruyere y tomate seco que vende a 800$ cada caja.
Tiene estimadas las demandas máximas para el día de mañana que son de SVG, SGT y CAJAS para los
sandwiches de vegetales grillados, de queso y tomate seco y de las cajas. Para que el emprendimiento
sea sustentable en el tiempo es necesario que las ganancias sean superiores al 50% de los costos y
también que se fabrique y venda lo más posible de los tres productos ya que la diversidad de productos
ayuda a mantener y aumentar la cantidad de clientes.
Del sandwich que más unidades prepare tendrá un beneficio adicional de $15 por sandwich por
disminución de costos.
¿Qué es lo mejor que puede hacer el emprendedor?
2.1. Inciso 1
Análisis del problema, Objetivo completo y claro. Hipótesis necesarias para su resolución, defini-
ción de variables. Modelo de programación lineal para su resolución óptima. Si este punto no es
lineal, el examen está insuficiente
2.1.1. Análisis de la situación problemática Se trata de un problema de producción, con armado
de una caja y venta unitaria de cada producto.
2.1.2. Objetivo Determinar la cantidad de cajas, sandwiches de vegetales grilados, de gruyere y
tomate seco a vender de forma individual para maximizar las ganancias del próximo día.
2.1.3. Hipótesis y supuestos
• La producción de los sandwiches destinados al armado de cajas son los mismos que aquellos
que se venden de forma individual.
Segundo cuatrimestre 2020 248
Ejercicios resueltos COLOQUIO 2020-09-14
• Todo lo que se produce se vende, con tal de que cada cantidad se encuentre debajo de la
demanda máxima, y la máxima diferencia de cantidad de ventas entre los productos no supere
una constante conocida TOL.
• Para el beneficio adicional de $15 por sandwich se considera la producción destinada a la venta
de cajas como la individual.
• El costo de producción de los sandwiches es mayor al beneficio de $15.
• Solo se podrá llevar a cabo el plan de producción si la ganancia diaria estimada es superior al
50% de los costos diarios.
• El costo de armar una caja será el mismo que producir el equivalente de sandwiches individuales
(tanto en costo monetario como en materia prima).
• No hay que respetar una demanda mínima.
• No hay stock inicial ni materia prima sobrante del día anterior.
• No hay desperdicio ni fallas de producción.
• No hay restricciones de mano de obra nitiempo para llevar a cabo el plan de producción.
• No hay otros costos más allá de los relacionados con la producción de sandwiches.
2.1.4. Definición de variables Se definen las variables de control:
• V ENTAi [producto/dia, entera]: Cantidad de producto a vender en el día.
– Donde i ∈ {V G,GT,CAJA} = PRODUCTO.
También se definen las siguientes variables:
• PRODj [sandwiches/dia, entera]: Cantidad de sandwiches j a producir en el día.
– Donde j ∈ {V G,GT} = SANDWICHES.
• BENEF [$/dia]: Beneficio obtenido por ventas de producto en el día.
• COSTO [$/dia]: Costo resultante por la fabricación de producto en el día.
• YV ENT AMIN,i [binaria]: Toma valor 1 si el producto i tiene las menores ventas del día.
• V ENTAMIN [producto/dia, entera]: Toma el menor valor de las ventas de los tres productos
en el día.
• YV ENT AMAX,i [binaria]: Toma valor 1 si el producto i tiene las mayores ventas del día.
• V ENTAMAX [producto/dia, entera]: Toma el mayor valor de las ventas de los tres productos
en el día.
• YP RODMAX,j [binaria]: Toma valor 1 si el sandwich j tiene la menor cantidad de producción del
día.
• PRODMAX [producto/dia, entera]: Toma el mayor valor de la cantidad de producción de los
sandwiches en el día.
Segundo cuatrimestre 2020 249
Ejercicios resueltos COLOQUIO 2020-09-14
2.1.5. Modelo de programación lineal La producción de sandwiches depende de las ventas:
PRODV G = V ENTAV G + 3V ENTACAJA
PRODGT = V ENTAGT + 2V ENTACAJA
Disponibilidad de materia prima:
• Vegetales grillados:
0.100 · PRODV G ≤ 20
• Pan casero:
0.120 · PRODV G + 0.095 · PRODGT ≤ 30
• Queso gruyere:
0.075 · PRODGT ≤ 12
• Tomate seco:
0.030 · PRODGT ≤ 5
Existe una demanda máxima:
V ENTAV G ≤ SV G
V ENTAGT ≤ SGT
V ENTACAJAS ≤ CAJAS
Se vincula el sandwich más producido, siendoM una constante con un valor “muy grande”:
∑
j∈SANDW ICHES
YP RODMAX,j = 1
∀ j ∈ SANDWICHES :
PRODj ≤ PRODMAX ≤ PRODj +M · (1− YP RODMAX,j)
Se vincula el producto más vendido:
∑
i∈P RODUCT O
YV ENT AMAX,i = 1
∀ i ∈ PRODUCTO :
V ENTAi ≤ V ENTAMAX ≤ V ENTAi +M · (1− YV ENT AMAX,i)
Segundo cuatrimestre 2020 250
Ejercicios resueltos COLOQUIO 2020-09-14
Se repite el proceso para encontrar el producto menos vendido:
∑
i∈P RODUCT O
YV ENT AMIN,i = 1
∀ i ∈ PRODUCTO :
V ENTAi −M · (1− YV ENT AMIN,i) ≤ V ENTAMIN ≤ V ENTAi
Vinculando el costo, recordando el bonus de $15 por el sandwich más producido:
COSTO = V G · PRODV G +Q · PRODGT − 15 · PRODMAX
Respetando la tolerancia entre diferencia máxima de ventas de productos, para ofrecer diversidad en
los productos:
V ENTAMAX − V ENTAMIN ≤ TOL
Vinculando el beneficio:
BENEF = 180 · V ENTAV G + 210 · V ENTAGT + 800 · V ENTACAJAS
Restricción de beneficio mínimo:
COSTO · 1.5 ≤ BENEF
Finalmente, el funcional a maximizar:
MAX Z = BENEF − COSTO
2.2. Inciso 2
Plantee una heurística de construcción para resolver el problema. Recuerde que su heurística
debe tender al mejor resultado posible
1. Se ordenan los productos a vender por ganancia neta en relación a la cantidad de pan casero
necesario para producirlos
2. Por cada uno de los productos ordenados j:
a. Mientras quede suficiente materia prima para producir una unidad más del producto j:
i. Producir una unidad más del producto j.
Segundo cuatrimestre 2020 251
Ejercicios resueltos COLOQUIO 2020-09-14
3. Con los productos fabricados, si la diferencia entre la cantidad de cajas y la cantidad de sand-
wiches supera TOL, desarmar o armar cajas para cumplir con la diferencia especificada.
4. Quedaron fabricados los productos a vender. Fin de la heurísitca.
Segundo cuatrimestre 2020 252
Ejercicios resueltos COLOQUIO 2020-09-21
Coloquio 2020-09-21
1. Parte 2
Una empresa fabrica los productos X1 y X2 a partir de los recursos R1 y R2. Además hay una restricción
de producción mínima para X2 de 10 unidades por mes. Aquí vemos el planteo del problema:
1 2 X1 + 2 X2 <= 80 (kg. de R1/mes);
2 X1 + 2 X2 <= 50 (kg. de R2/mes);
3 X2 >= 10 (unidades/mes)
4 Z = 60 X1 + 40 X2 (MAXIMO) (60 es el beneficio unitario de X1 y 40 es el beneficio
unitario de X2)
1.1. Inciso 1
Se sabe que el beneficio de $40 para X2 se compone de un precio de venta de $60 y un costo
de fabricación de $20. Nos ofrecen vendernos producto X2 ya elaborado a $P. ¿Cuál debería ser
el valor de P para que convenga comprar producto X2? ¿Cómo determinarías la cantidad de
producto X2 a comprar?.
El ahorro por unidad de producto 2 sería de $80. Entonces para que sea conveniente comprar una
unidad sola de X2, el precio de compra P de X2 debe ser menor a $80.
Si P es menor a $60, se puede comprar todo el X2 posible porque se obtendría una ganancia con tan
solo venderlo.
Para valores de P entre $60 y $80, se debe analizar el costo de fabricación de X2, que está relacionado
con el valor marginal de la demanda mínima a cumplir de X2. Para esto se deja constante la demanda
b3 en la tabla dual óptima y se analiza el rango de variación.
Segundo cuatrimestre 2020 253
Ejercicios resueltos COLOQUIO 2020-09-21
80 50 b3
Ck Yk Bk A1 A2 A3 A4 A5
80 Y1 30 1 1/2 0 -1/2 0
b3 Y3 20 0 -1 1 -1 1
Z=2400 + 20b3 0 -10 -b3 0 -40 - b3 b3
Como el problema dual es uno de minimización, con todoZj − Cj menor o igual a cero indica que la
tabla es óptima, y se puede observar que con b3 = 0 la tabla sigue siendo óptima. Es decir, reduciendo
la demanda mínima a cero, se mantendría el plan actual de producción y se obtendría la ganancia de
$20 cada vez que se reduce en una unidad la demanda mínima.
Entonces, si P se encuentra entre $60 y $80, se deben comprar 10 unidades de X2 para obtener una
ganancia.
1.2. Inciso 2
Para este problema, se decide analizar la posibilidad de agregar un nuevo recurso (R6) para la
producción de X1 y X2. El producto X1 consume 4 kg. de R6 por unidad y X2 consume 1 kg. de R6
por unidad. Existe una disponibilidad de 140 kg. de R6 por mes y se pagan 5 $/kg. consumido de
R6 (sólo se paga lo que se consume). La incorporación de este nuevo recurso hará que el beneficio
de X1 aumente en $10 y el beneficio de X2 aumente en $20. ¿Cuál es la estructura óptima de
producción luego de analizar esta posibilidad?
La nueva restricción a agregar es la siguiente:
4X1 +X2 ≤ 140
Reemplazando con los valores correspondientes de X1 y X2 en el óptimo:
4 · 30 + 10 = 130 ≤ 140
La restricción no cambia el óptimo del problema.
Por otro lado, se analiza el cambio en el funcional, recordando el costo por kg uso de R6:
MAX Z = X1 · (60 + 10) +X2 · (40 + 20)− 5 · (4X1 +X2)
MAX Z = 50X1 + 55X2
Segundo cuatrimestre 2020 254
Ejercicios resueltos COLOQUIO 2020-09-21
Se reemplazan los nuevos coeficientes en la tabla óptima directa:
50 55
Ck Xk Bk A1 A2 A3 A4 A5
50 X1 30 1 0 1/2 0 1
55 X2 10 0 1 0 0 -1
0 X4 0 0 0 -1/2 1 1
Z=2050 0 0 25 0 -5
La tabla dejó de ser la óptima, porqueZ5 − C5 dejó de ser mayor o igual a cero. Se realiza el cambio
de variable correspondiente calculando los valores de θ, y se cambia la variableX4 porX5. La nueva
tabla es la siguiente:
50 55
Ck Xk Bk A1 A2 A3 A4 A5
50 X1 30 1 0 1 -1 0
55 X2 10 0 1 -1/2 1 0
0 X5 0 0 0 -1/2 1 1
Z=2050 0 0 45/2 5 0
El nuevo plan de producción óptimo para obtener una ganancia de $2050 será:
• Producir 30 unidades de X1.
• Producir 10 unidades de X2.
2. Parte 3
La empresa QED debe planificar la forma de realizar los trabajos que le encargaron (los llamaremos A,
B, C, D y E) de forma de terminarlos en el transcurso de las próximas 12 semanas. Se sabe que el plazo
total de 12 semanas, acordado con el cliente, es más que suficiente para realizar los trabajos.
Es norma de la empresa que cada vez que se comienza un trabajo no se puede interrumpir hasta que
se termine. Los cinco trabajos que deben realizarse tienen distintas duraciones entre sí, pero ninguno
dura menos de dos semanas o más de cuatro semanas. Cada semana que dura el trabajo se necesita
una cantidad de personas dedicadas exclusivamente a ese trabajo. Por ejemplo, en el caso del trabajo
Segundo cuatrimestre 2020 255
Ejercicios resueltos COLOQUIO2020-09-21
A, cada semana en que se está trabajando en A se necesitan 2 trabajadores dedicados exclusivamente
a ese trabajo.
QED tiene disponibles T trabajadores full-time cada semana y no puede contratar más. (T es una
constante conocida)
A continuación se muestran los datos de los trabajos que le encargaron a QED:
Como todos los trabajos son para el mismo cliente y se deben entregar todos juntos, cada vez que se
finaliza un trabajo debe ser trasladado a un depósito a la espera que se terminen todos, Ese depósito
se alquila por semana desde el día en que se finaliza el primer trabajo hasta que se finaliza el ultimo y
sale $X por semana. (X es dato).
¿Qué es lo mejor que puede hacer QED?
2.1. Inciso 1
Análisis del problema, Objetivo completo y claro. Hipótesis necesarias para su resolución, defini-
ción de variables. Modelo de programación lineal para su resolución óptima. Si este punto no es
lineal, el examen está insuficiente
2.1.1. Análisis de la situación problemática Se trata de un problema de calendarización con una
restricción de tiempo y de mano de obra.
2.1.2. Objetivo Determinar cuándo empezar cada trabajo para minimizar el costo por alquiler
durante el plazo de 12 semanas.
2.1.3. Hipótesis y supuestos
Segundo cuatrimestre 2020 256
Ejercicios resueltos COLOQUIO 2020-09-21
• Todos los T trabajadores full-time estarán disponibles y capacitados para hacer las tareas nece-
sarias.
• No hay inconvenientes ni retrasos en la programación dada por los datos.
• No hay obligación ni incentivo para terminar los trabajos en menos de 12 semanas.
• El costo del alquiler es independiente de la cantidad o tipos de trabajos ya terminados.
• Cuando un trabajador finaliza con una tarea, inmediatamente puede ser asignado a otra.
• Pueden realizarse varios trabajos a la vez.
• Se deben completar todas las tareas y etapas.
• La cantidad de trabajadores necesarias por semana y por trabajo es exacta, y no podrá hacerse
más rápido con más trabajadores.
2.1.4. Definición de variables Se definen las variables de control:
• Ii,j [semanas, entera]: Semana de inicio del trabajo i en la etapa j:
– Donde i ∈ {A,B,C,D,E} = TRABAJOS.
– Donde j ∈ {1, 2, 3, 4} = ETAPAS.
Se definen también las siguientes variables:
• Fi,j [semanas, entera]: Semana de finalización de la etapa j del trabajo i.
• Yi,j,k [binaria]: Toma valor 1 si en la semana k se comienza la etapa j del trabajo i.
– Donde k ∈ {1, ..., 12} = SEMANAS.
• FMIN [semanas, entera]: Toma el menor valor de las semanas de finalización.
• YMINi [binaria]: Toma valor 1 si el trabajo i fue el primero en terminar.
• FMAX [semanas, entera]: Toma el mayor valor de las semanas de finalización.
• YMAXi [binaria]: Toma valor 1 si el trabajo i fue el último en terminar.
Por último, se reescriben algunos datos del problema como constantes nombradas:
• TIEMPOi,j [semanas, entera]: Tiempo en semanas que tarda en hacerse la etapa j del trabajo
i.
• NECi,j [trabajadores, entera]: Cantidad de trabajadores full-time necesarios para terminar la
etapa k del trabajo i.
2.1.5. Modelo de programación lineal La vinculación inicio/fin de las tareas:
∀ i ∈ TRABAJOS , j ∈ ETAPAS : Fi,j = Ii,j + TIEMPOi,j
Segundo cuatrimestre 2020 257
Ejercicios resueltos COLOQUIO 2020-09-21
El tiempo límite para hacer todas las tareas:
∀ i ∈ TRABAJOS , j ∈ ETAPAS : Fi,j ≤ 12
Las etapas deben realizarse en orden:
∀ i ∈ TRABAJOS :
Fi,1 ≤ Ii,2
Fi,2 ≤ Ii,3
Fi,3 ≤ Ii,4
Vinculación de las variables Yi,j,k:
• La primer etapa de cada trabajo se realiza una sola vez:
∀ i ∈ TRABAJOS :
∑
k∈SEMANAS
Yi,1,k = 12
• Como los trabajos no se interrumpen:
∀ i ∈ TRABAJOS , j ∈ ETAPAS − {4} , k ∈ SEMANAS − {12} :
Yi,j,k = Yi,j+1,k+1
El máximo de trabajadores disponibles:
∀ k ∈ SEMANAS :
∑
i∈T RABAJOS
j∈ET AP AS
Yi,j,k ·NECi,j ≤ T
Se vinculan las variables de mínima semana de finalización, siendoM una constante con valor “muy
grande”: ∑
i∈T RABAJOS
YMINi = 1
∀ i ∈ TRABAJOS :
Fi,4 −M · (1− YMINi) ≤ FMIN ≤ Fi,4
Segundo cuatrimestre 2020 258
Ejercicios resueltos COLOQUIO 2020-09-21
El mismo procedimiento para las variables de máxima semana de finalización:
∑
i∈T RABAJOS
YMAXi = 1
∀ i ∈ TRABAJOS :
Fi,4 ≤ FMAX ≤ Fi,4 +M · (1− YMAXi)
Finalmente, el funcional a minimizar:
MIN Z = X · (FMAX − FMIN)
2.2. Inciso 2
Plantee una heurística de construcción para resolver el problema. Recuerde que su heurística
debe tender al mejor resultado posible.
1. En la primer semana se comienza el trabajoPRIMERO que más semanas lleve. Si hay empate,
se elije el que menos trabajadores en total requiera. Si hay otro empate, se elije selecciona el
primero alfabéticamente.
2. Para el resto de los trabajos, se los ordena de menor a mayor según la cantidad total de traba-
jadores necesarios que necesiten.
3. Por cada uno de los trabajos restantes i:
a. Si hay suficientes trabajadores con tal de que se pueda finalizar el trabajo i al mismo tiempo
que el trabajo PRIMERO, se coloca el trabajo en el cronograma y se vuelve a (3).
b. Hasta que el trabajo i se haya colocado:
i. Se intenta colocar el trabajo i una semana después de lo previamente intentado. Si
hay suficientes trabajadores, se coloca en dicha semana y se vuelve a (3).
4. Todos los trabajos quedaron establecidos. Si un trabajo finaliza después de la semana 12, el
problema no tiene solución.
5. Fin de la heurística.
Segundo cuatrimestre 2020 259
Ejercicios resueltos COLOQUIO 2020-10-05
Coloquio 2020-10-05
1. Parte 2
Una empresa fabrica los productos X1 y X2 a partir de los recursos R1 y R2. Además hay una restricción
de producción mínima para X2 de 100 unidades por mes. Aquí vemos el planteo del problema:
1 2 X1 + 2 X2 <= 800 (kg. de R1/mes);
2 X1 - X2 <= 200 (kg. de R2/mes);
3 X2 >= 100 (unidades/mes)
4 Z = 80 X1 + 20 X2 (MAXIMO)
5 (80 es el beneficio unitario de X1 y 20 es el beneficio unitario de X2)
1.1. Inciso 1
El dueño de la empresa piensa que, ya que tiene una demanda mínima de 100 unidades para X2,
si la disminuyera a 50 unidades aumentaría su funcional. ¿Tiene razón? Justifique por qué se da
ese resultado.
Se observa cómo varia el coeficiente b3, correspondiente a la demanda mínima de X2 a cumplir. Para
esto se deja el valor constante en la tabla óptima dual.
800 200 b3
Ck Yk Bk A1 A2 A3 A4 A5
800 Y1 25 1 0 -1/4 -1/4 -1/4
200 Y2 30 0 1 1/2 -1/2 1/2
Z=26000 0 0 -100-b3 -300 -100
Segundo cuatrimestre 2020 260
Ejercicios resueltos COLOQUIO 2020-10-05
Como el problema dual es de minimización, para que el punto sea el óptimo todoZj − Cj debe ser
menor o igual a cero. El valor deZ3−C3 es el único que depende de b3, y asignando b3 = −50 seguiría
manteniendo un valor negativo.
Entonces se puede cambiar la restricción para disminuirla a solo un mínimo de 50 unidades, pero el
funcional se mantendría constante por no depender de b3. El dueño no tiene razón.
1.2. Inciso 2
Se presenta la posibilidad de vender a otra empresa 300 kilos de R1 a $39 por unidad ¿Es conve-
niente? Indique claramente los cálculos en los cuales se basa su conclusión.
Implicaría reducir la disponibilidad total de R1 a 500 kilos. Se modifica el correspondiente valor en la
tabla dual óptima:
500 200 -100
Ck Yk Bk A1 A2 A3 A4 A5
500 Y1 25 1 0 -1/4 -1/4 -1/4
200 Y2 30 0 1 1/2 -1/2 1/2
Z=18500 0 0 75 -225 -25
Con el cambio, la tabla deja de ser la óptima porqueZ3−C3 es mayor a cero. Será necesario un cambio
de variable en la base, donde entra Y3 y (evaluando los θ) sale Y2. La nueva tabla es la siguiente:
500 200 -100
Ck Yk Bk A1 A2 A3 A4 A5
500 Y1 40 1 1/2 0 -1/2 0
-100 Y3 60 0 2 1 -1 1
Z=14000 0 -150 0 -150 -100
Se encontró el nuevo óptimo restringiendo los kilos disponibles de R1 a 500, y la ganancia obtenida
sería de $14000. La pregunta inicial buscaba evaluar si es conveniente el negocio vendiendo cada kilo
de R1 por $39. En este caso, el cambio de dinero sería de 14000− 26000 + 300 · 39 = −300. Estaríamos
perdiendo $300, por lo que no es conveniente el intercambio.
Segundo cuatrimestre 2020 261
Ejercicios resueltos COLOQUIO2020-10-05
2. Parte 3
Hace algún tiempo, a los Analizadores les habían planteado el problema de un viajante que debía
recorrer 9 ciudades. En ese momento resolvieron el problema y tienen un modelo funcionando para
ese caso. El otro día los llamó la misma persona que les había planteado aquél problema y les pidió
que le agregaran algo. Como los Analizadores andan algo cortos de tiempo, te pedimos que los ayudes
a agregarle a un modelo del viajante con nueve ciudades a visitar los siguiente:
El problema original minimizaba la cantidad total de kilómetros recorridos. Ahora se quiere incorporar
el costo del viaje. El costo de cada tramo que une la ciudad i con la j es una constante conocida que
llamaremos Cij. Ese costo no es proporcional a la distancia entre las dos ciudades que conforman el
tramo (esa distancia Dij era la que figuraba en el funcional del problema original).
Para poder pagar el costo del viaje se dispone de $N (para todo el viaje). Si no llegara a alcanzar ese
dinero, el viajante tiene la posibilidad de pedir un préstamo en la segunda ciudad visitada (la cual
tendría que ser la ciudad 4 o la 5) o pedirlo en la quinta ciudad visitada (la cual tendría que ser la
ciudad 3 o la 9). Si pide el préstamo en la segunda ciudad visitada, debe pagar un interés del 10% de la
cantidad pedida. Si en cambio lo pide en la quinta ciudad visitada, debe pagar un interés del 8% de la
cantidad pedida.
¿Qué es lo mejor que pueden hacer los Analizadores (y vos) con la información disponible?
2.1. Inciso 1
Analizá este problema, planteando las hipótesis importantes. Modelizá el problema de tal manera
que el modelo pueda resolverse con métodos de Programación Lineal. Aclará cuáles son los
elementos (variables, hipótesis, etc) que pertenecen al problema original y cuáles los que vos
agregás. Si este punto no es lineal, el examen está insuficiente.
2.1.1. Análisis de la situación problemática Se trata de un problema del viajante. Con la incorpo-
ración del costo pasa a ser un problema del viajante con acumulación, y la solución óptima previa
puede que deje de ser viable si el viajante se queda sin dinero en el medio del tour.
2.1.2. Objetivo Determinar el orden de las ciudades a visitar para minimizar la distancia recorrida
del viaje en el plazo del viaje.
2.1.3. Hipótesis y supuestos Del problema original:
• La distancia entre una ciudad origen y otra destino no necesariamente es la misma en la dirección
inversa.
Segundo cuatrimestre 2020 262
Ejercicios resueltos COLOQUIO 2020-10-05
• El recorrido debe comenzar y terminar en una ciudad origen, y se desprecia la distancia entre
estas ciudades y la origen.
• No hay otras restricciones ni orden a respetar para visitar las ciudades.
• No hay retrasos, inconvenientes ni caminos cortados.
• Solo se puede pasar una vez por ciudad.
• Todos los caminos están habilitados.
De la modificación al problema:
• En total solo se puede pedir un préstamo. Y no se puede solicitar salvo que sea en las ciudades
determinadas en el orden que indican los datos.
• El viajante nunca puede estar endeudado (el dinero siempre será mayor a cero).
• El costo entre una ciudad origen y otra destino no necesariamente es el mismo en la dirección
inversa.
• Sse desprecia el costo entre de a la primer ciudad origen y el resto.
• El costo entre ciudades es completamente independiente de la distancia.
• No hay costos adicionales además de lo necesario para ir de una ciudad a otra.
• La cantidad del préstamo a solicitar está dada por una constante $PREST , y es el mismo en
todas las ciudades (solo cambia el interés si se solicitó en una ciudad o en la otra).
2.1.4. Definición de variables Las variables del problema original son:
• Yi,j [binaria]: El recorrido incluye ir de la ciudad i a la ciudad j.
– Donde i, j ∈ {0, 1, 2, ..., 9}, i 6= j. Para representar al origen: i = 0.
• Ui [entera]: Número de secuencia de la ciudad i en el recorrido, con i 6= 0
Se agregan las siguientes variables:
• Xi [$]: Dinero del viajante al llegar a la ciudad i.
• SOL2,4 [binaria]: Toma valor 1 si se solicitó el préstamo en la ciudad 4, que fue la segunda que
se recorrió.
• SOL2,5 [binaria]: Toma valor 1 si se solicitó el préstamo en la ciudad 5, que fue la segunda que
se recorrió.
• SOL5,3 [binaria]: Toma valor 1 si se solicitó el préstamo en la ciudad 3, que fue la quinta que se
recorrió.
• SOL5,9 [binaria]: Toma valor 1 si se solicitó el préstamo en la ciudad 3, que fue la quinta que se
recorrió.
Segundo cuatrimestre 2020 263
Ejercicios resueltos COLOQUIO 2020-10-05
2.1.5. Modelo de programación lineal Las restricciones del modelo original:
• Cada ciudad se visita una sola vez, y a partir de cada ciudad solo hay un único destino:
∀ i ∈ {0, ..., 9} :
9∑
j=1
j 6=i
Yi,j = 1
• De la misma forma, a partir de cada ciudad solo hay un único origen:
∀ j ∈ {0, ..., 9} :
9∑
i=1
i 6=j
Yi,j = 1
• Se restringen las variables secuenciales, evitando subtours:
∀ i, j ∈ {1, ..., 9}, i 6= j :
Ui − Uj + 9 · Yi,j ≤ 8
Ahora las nuevas restricciones:
• En el punto de partida el viajante tieneN pesos:
X0 = N
• Solo se puede tomar hasta un préstamo:
SOL2,5 + SOL2,4 + SOL5,9 + SOL5,3 ≤ 1
• Solo se pueden solicitar los préstamos en las ciudades dadas. Se toma una constanteM con un
valor “muy grande”:
2−M · (1− SOL2,4) ≤ U4 ≤ 2 +M · (1− SOL2,4)
2−M · (1− SOL2,5) ≤ U5 ≤ 2 +M · (1− SOL2,5)
5−M · (1− SOL5,9) ≤ U9 ≤ 5 +M · (1− SOL5,9)
5−M · (1− SOL5,3) ≤ U3 ≤ 5 +M · (1− SOL5,3)
• Se restringe cada variableXi a partir de la diferencia de dinero entre dos ciudades. Primero se
Segundo cuatrimestre 2020 264
Ejercicios resueltos COLOQUIO 2020-10-05
establece la diferencia para las ciudades correspondientes a los préstamos:
∀i ∈ {0, ..., 9} :
−M ·(1−Yi,4)−Ci,j+PRES·0.9·SOL2,4 ≤ X4−Xi ≤M ·(1−Yi,4)−Ci,j+PRES·0.9·SOL2,4
−M ·(1−Yi,5)−Ci,j+PRES·0.9·SOL2,5 ≤ X5−Xi ≤M ·(1−Yi,5)−Ci,j+PRES·0.9·SOL2,5
−M ·(1−Yi,9)−Ci,j+PRES·0.92·SOL5,9 ≤ X9−Xi ≤M ·(1−Yi,9)−Ci,j+PRES·0.92·SOL5,9
−M ·(1−Yi,3)−Ci,j+PRES·0.92·SOL5,3 ≤ X3−Xi ≤M ·(1−Yi,3)−Ci,j+PRES·0.92·SOL5,3
• Y ahora se establece la diferencia para el resto de los caminos:
∀i ∈ {0, ..., 9}, j ∈ {1, 2, 6, 7, 8} : i 6= j
−M · (1− Yi,j)− Ci,j ≤ Xj −Xi ≤M · (1− Yi,j)− Ci,j
Finalmente, el funcional a minimizar:
MIN Z =
9∑
j=1
9∑
i=1
i 6=j
Yi,j ·Di,j
2.2. Inciso 2
Planteá una heurística de construcción que tienda a buscar un buen resultado para resolver
el problema. Consigná las reglas heurísticas aplicadas en la heurística, indicando por qué las
elegiste.
1. Prestamo2 := False
2. Prestamo5 := False
3. Tour := [0]
4. Mientras queden ciudades que no fueron visitadas en el tour:
a. Si ninguna de las ciudades se puede visitar por falta de dinero:
i. Si la cantidad de elementos del tour es menor a 2, el problema no tiene solución.
ii. Si la cantidad de elementos del tour se encuentra entre 2 y 5, se vuelve a (3) estable-
ciendo Prestamo2 := True y Prestamo5 := False. Si ya se intentó buscar una
solución con esa combinación, el problema no tiene solución.
iii. Si la cantidad de elementos del tour es mayor a 5, se vuelve a (3) estableciendo
Prestamo2 := False y Prestamo5 := True. Si ya se intentó buscar una solución
Segundo cuatrimestre 2020 265
Ejercicios resueltos COLOQUIO 2020-10-05
con esta combinación, el sistema no tiene solución.
b. Si la próxima ciudad a visitar es la segunda y Prestamo2 == True, se visita la ciudad
4 o 5 (determinada por menor costo de viaje, si hay empate se selecciona 4) pidiendo el
préstamo. Se vuelve a (4).
c. Si la próxima ciudad a visitar es la segunda y Prestamo5 == True, se visita la ciudad
3 o 9 (determinada por menor costo de viaje, si hay empate se selecciona 3) pidiendo el
préstamo. Se vuelve a (4).
d. Se agrega al tour la próxima ciudad con menor distancia y que se pueda visitar por disponi-
bilidad de dinero.
5. Quedaron todas las ciudades visitadas. Fin de la heurística.
Segundo cuatrimestre 2020 266
Ejercicios resueltos COLOQUIO 2021-03-22
Coloquio 2021-03-22
1. Parte 1
Una empresafarmacéutica llamada “SuFarmy” fabrica los productos X1 y X2 a partir de los recursos R1
y R2. Para el producto X2 tiene pedidos ya comprometidos por 10 unidades cada mes. A continuación
el planteo del problema y las tablas óptimas del directo y del dual:
1 2 X1 + 2 X2 <= 80 (kilos de R1/mes)
2 X1 + 2 X2 <= 50 (kilos de R2/mes)
3 X2 >= 10 (unidades/mes)
4 Z = 60 X1 + 40 X2 (MAXIMO)
5 (60 es el beneficio unitario de X1 y 40 es el beneficio unitario de X2)
1.1. Inciso 1
¿Le conviene a SuFarmy recibir $300 a cambio de tener la obligación de fabricar y vender como
mínimo 15 unidades de producto X2 en lugar de las que actualmente tiene que hacer como
mínimo (10)? Justifique con los cálculos realizados.
Para evaluar esta alternativa, se analiza cómo cambia el problema óptimo a partir de la variación del
mínimo de demanda a cumplir deX2. Para esto, se deja constante b3 en la tabla dual óptima.
80 50 b3
C Y B A1 A2 A3 A4 A5 θ
80 Y1 30 1 1/2 0 -1/2 0 50
b3 Y3 20 0 -1 1 -1 1 -
Z=2400+20b3 0 -10-b3 0 -40-b3 b3
Como el problema dual es uno de minimización, para que la tabla sea óptima todoZj − Cj debe ser
menor o igual a cero. Con un b3 = −15, se observa que la tabla deja de ser óptima porqueZ2−C2 = 5.
Segundo cuatrimestre 2020 267
Ejercicios resueltos COLOQUIO 2021-03-22
Se realiza el correspondiente cambio de variables en la base, donde entra Y2 y sale Y1 (por tener el
único θ válido).
La nueva tabla será la siguiente:
80 50 b3
C Y B A1 A2 A3 A4 A5
50 Y2 60 2 1 0 -1 0
b3 Y3 80 2 0 1 -2 1
Z=3000+80b3 20+2b3 0 0 -50-2b3 b3
Ahora si, con un b3 = −15, la tabla es la óptima. La nueva ganancia sería de Z = 1800, entonces
subiendo la demanda mínima a cumplir de X2 se tendría una pérdida de $400. En conclusión, no es
conveniente el negocio porque con tan solo $300 de ganancia y $400 de pérdida, SuFarmy perdería
$100.
1.2. Inciso 2
Para este problema, se decide analizar la posibilidad de agregar un nuevo recurso (R6) para la
producción de X1 y X2. El producto X1 consume 4 kg. de R6 por unidad y X2 consume 1 kg. de R6
por unidad. Existe una disponibilidad de 800 kg. de R6 por mes. La incorporación de este nuevo
recurso hará que el beneficio de X1 aumente en $10 y el beneficio de X2 aumente en $20. ¿Cuál es
la estructura óptima de producción luego de analizar esta posibilidad?
Primero se analiza si el plan de producción actual cumple con la nueva restricción:
4X1 +X2 ≤ 800
4 · 30 + 10 = 130 ≤ 800
Se puede seguir adelante con el plan de producción actual. Se cambian los coeficientes del funcional
de X1 y X2 utilizando la tabla óptima directa:
Segundo cuatrimestre 2020 268
Ejercicios resueltos COLOQUIO 2021-03-22
70 60
C X B A1 A2 A3 A4 A5
70 X1 30 1 0 1/2 0 1
0 X4 0 0 0 -1/2 1 1
60 X2 10 0 1 0 0 -1
Z=2700 0 0 35 0 10
Entonces la nueva estructura óptima de producción con esta posibilidad sería:
• Producir 30 de X1.
• Producir 10 de X2.
• Se obtendría una ganancia deZ = 2700
2. Parte 2
Seguimos repartiendo vacunas antes de que se terminen: En una provincia argentina ya vacunaron
a los grupos de riesgo y a parte de la población, pero todavía queda mucha gente por ser vacunada.
Se dispone de N cajas (N es una constante conocida) con 400 vacunas cada una. con esa cantidad
no alcanza para vacunar a todos los que faltan, pero esta bueno repartirlas y seguir vacunando. Se
seleccionaron las 8 localidades más necesitadas de vacunas para enviarles estas N cajas. Las cajas no
se pueden fraccionar, los envíos son por caja entera.
Se conoce para cada localidad i:
1.- Cuanta gente hay para vacunar como máximo. (Gi )
2.- Cuanto cuesta enviar cada caja de vacunas (CVi)
3.- Cuanto cuesta armar un puesto sanitario para vacunar en esa localidad (PSi)
Se dispone de un presupuesto de $X para pagar los gastos indicados.
El criterio para repartir las vacunas es el siguiente:
a) Si las vacunas y el presupuesto alcanzan se quiere enviar vacunas a las 8 localidades de tal forma
que la localidad que más vacunas reciba no reciba más de tres veces la cantidad de vacunas que
recibió la que menos recibe.
b) Si el presupuesto o las vacunas no alcanzan para hacer lo indicado en a) se quiere enviar vacunas
como mínimo a 5 localidades de tal forma que la localidad que más recibe no reciba más de dos
veces la cantidad de vacunas que recibió la que menos recibe. En este caso no se consideran las
Segundo cuatrimestre 2020 269
Ejercicios resueltos COLOQUIO 2021-03-22
localidades que no reciben ninguna vacuna. (por ejemplo, si se reparten 11 cajas en 5 localidades
se podrían repartir así: 2,2,2,2,3,0,0,0 es decir que 4 localidades recibieron 2 cajas cada una, una
localidad recibió 3 cajas y las tres localidades restantes no recibieron nada).
¿Qué es lo mejor que pueden hacer los responsables de Salud con la información disponible?
2.1. Inciso 1
Analizá este problema, planteando las hipótesis importantes. Modelizá el problema de tal manera
que el modelo pueda resolverse con métodos de Programación Lineal. Si este punto no es lineal,
el examen está insuficiente.
2.1.1. Análisis de la situación problemática Se trata de un problema de asignación con un único
origen y ocho localidades destino. Debe también considerarse una restricción financiera.
2.1.2. Objetivo Determinar la cantidad de cajas de vacunas a enviar a cada una de las localidades
para maximizar la cantidad de personas vacunadas en el plazo del tiempo del plan de vacunación.
2.1.3. Hipótesis y supuestos
• Se puede enviar una caja a una localidad aunque no se usen todas las vacunas.
• Todas las vacunas disponibles se encuentran en buen estado.
• No habrá problemas de infraestructura o demoras para aplicarlas.
• A cada persona que falte vacunar solo se le aplica una vacuna.
• No hay costos adicionales además del costo para enviar cada caja de vacunas y armar los puestos
sanitarios.
• El costo de los puestos sanitarios es el mismo, independientemente de cuántas cajas se envíen.
• En el criterio/plan de envío A solo se puede llevar a cabo si se envían vacunas a las ocho locali-
dades.
• En el criterio/plan de envío B solo se puede llevar a cabo si se envían vacunas a cinco o más
localidades.
• Para los criterios A y B solo se consideran la cantidad de cajas enviadas, en vez de vacunas
aplicadas.
• Si no se puede aplicar alguno de los criterios A o B, el problema no tendría solución.
• Todos los habitantes a vacunar estarán dispuestos a hacerlo.
2.1.4. Definición de variables Se definen las variables de control:
Segundo cuatrimestre 2020 270
Ejercicios resueltos COLOQUIO 2021-03-22
• ENV IARi [cajas/localidad]: Cantidad de cajas a enviar a la localidad i.
– Donde i ∈ {1, ..., 8} = LOCS.
Se definen también las siguientes variables:
• COSTOS [$]: Dinero invertido para distribuir las vacunas y armar los puestos sanitarios.
• V ACUNADOSi [vacunados/localidad]: Cantida de personas vacunadas en la localidad i.
• RECIBEi [bivalente]: Toma valor 1 si la localidad i recibe al menos una caja de vacunas.
• PLANA [bivalente]: Toma valor 1 si el plan a llevar a cabo es el A (vacunar 8 localidades).
• PLANB [bivalente]: Toma valor 1 si el plan a llevar a cabo es el B (vacunar 5 localidades).
• MIN [cajas/localidad]: Toma el menor valor de la cantidad de cajas enviadas de las localidades
a las cuáles se enviaron vacunas.
• YMIN,i [bivalente]: Toma valor 1 si la localidad i tiene la menor cantidad de vacunados.
• MAX [cajas/localidad]: Toma el mayor valor de la cantidad de cajas enviadas de las locali-
dades a las cuáles se enviaron vacunas.
• YMAX,i [bivalente]: Toma valor 1 si la localidad i tiene la mayor cantidad de vacunados.
2.1.5. Modelo de programación lineal Se vinculan las variables RECIBE, siendo M una con-
stante con valor “muy grande”:
∀ i ∈ LOCS :
RECIBEi ≤ ENV IARi ≤M ·RECIBEi
Se vincula el costo relacionado para llevar a cabo el plan:
COSTOS =
∑
i∈LOCS
CVi · ENV IARi + PSi ·RECIBEi
Existe un presupuesto máximo:
COSTOS ≤ X
Se establece la cantidad máxima de vacunados en cada localidad:
∀ i ∈ LOCS :
V ACUNADOSi ≤ Gi
V ACUNADOSi≤ 400 · ENV IARi
Segundo cuatrimestre 2020 271
Ejercicios resueltos COLOQUIO 2021-03-22
Se vinculan las variables relacionadas con el mínimo de cajas enviadas por localidad:
∑
i∈LOCS
YMIN,i = 1
∀ i ∈ LOCS :
ENV IARi −M(1− YMIN,i) ≤MIN ≤ ENV IARi +M · (1−RECIBEi)
Repitiendo el procedimiento para las variables relacionadas con el máximo de cajas enviadas:
∑
i∈LOCS
YMAX,i = 1
∀ i ∈ LOCS :
ENV IARi ≤MAX ≤ ENV IARi +M(1− YMAX,i)
Hay un máximo de cajas a enviar:
∑
i∈LOCS
ENV IARi ≤ N
Solo se aplica un plan:
PLANA = 1− PLANB
En el plan A se envían vacunas para las ocho localidades, y en el plan B se envían vacunas para un
mínimo de cinco localidades:
5 · PLANB + 8 · PLANA ≤
∑
i∈LOCS
RECIBEi ≤ 7 + PLANA
Si se aplica el plan A, la localidad que más cajas reciba no tiene que recibir más de tres veces la cantidad
de cajas que recibió la que menos recibe.
MAX ≤ 3MIN +M(1− PLANA)
Si se aplica el plan B, la localidad que más cajas reciba no tiene que recibir más de dos veces la cantidad
de cajas que recibió la que menos recibe.
MAX ≤ 2MIN +M(1− PLANB)
Segundo cuatrimestre 2020 272
Ejercicios resueltos COLOQUIO 2021-03-22
Finalmente, el funcional a maximizar:
MAX Z =
∑
i∈LOCS
V ACUNADOSi
2.2. Inciso 2
Planteá una heurística de construcción para resolver el problema. Recordá que tu heurística
debe tender al mejor resultado. Formulá tu heurística de acuerdo con el objetivo del modelo que
realizaste en el punto anterior.
1. localidades ← Ordenar de menor a mayor las localidadessegún la cantidad de vacunas que
recibió (inicialmente todas 0). De ser empate, ordeno según el costo de envío de cada caja de
vacunas. Si nuevamente coinciden, ordenarla de menor a mayor según la cantidad máximade
personas avacunar por localidad. Como última instancia, ordenar según el índice de su localidad
(1,2,. . .8).
2. DineroGastado← 0
3. CantidadDeLocalidades← 0
4. Mientras queden cajas:
a. localidad← Saco la siguiente localidad de localidades.
b. SiDineroGastado + Precio para enviar caja a localidad > $X , voy a (5).
c. Si no tiene un puesto sanitario:
i. DineroGastado + = Precio de armarlo
ii. SiDineroGastado > $X , voy a (5).
iii. CantidadDeLocalidades + = 1
d. DineroGastado + = Precio de envío.
e. Ordeno localidades según el criterio enunciado en (1) con los 400 nuevos vacunados actu-
alizados en localidad.
5. SiCantidadDeLocalidades es igual a la cantidad total de localidades, voy a 8, ya que alcanzó
el presupuesto para repartir con el criterio 1.
6. Se vuelven a inicializar las variables de (1), (2) y (3).
7. Mientras queden cajas:
a. localidad← Saco la siguiente localidad de localidades.
b. SiDineroGastado + Precio para enviar caja a localidad > $X , voy a (8).
c. Si no tiene un puesto sanitario:
i. SiCantidadDeLocalidades >= 5 y no conviene enviar a esta localidad, vuelvo a 7.
ii. DineroGastado + = Precio de armarlo
Segundo cuatrimestre 2020 273
Ejercicios resueltos COLOQUIO 2021-03-22
iii. SiDineroGastado > $X , voy a (8).
iv. CantidadDeLocalidades + = 1
d. DineroGastado + = Precio de envío.
e. Ordeno localidades según el criterio enunciado en (1) con los 400 nuevos vacunados actu-
alizados en localidad.
8. FIN. Si no logro enviar al menos una caja a cada localidad con el criterio A, o al menos 5 en el
criterio B, el problema con estos datos, no tiene solución con la heurística planteada.
Segundo cuatrimestre 2020 274
Ejercicios resueltos EXTRA DEL 6.2
Extra del 6.2
1. Enunciado
A partir del enunciado del 6.2, responder.
2. Inciso A
¿Cuál sería el valor del Z y el plan de producción en la solución óptima si el beneficio del producto
1 ahora fuera de 5,50 pesos? Indique de dónde salen sus cálculos.
Es posible que el óptimo cambie, por lo que es necesario analizar el rango de variación del coeficiente
del producto (C1) en el funcional.
C1 3 2
Ck Xk Bk A1 A2 A3 A4 A5 A6
C1 X1 10/3 1 0 1/3 -1/3 0 1/3
3 X2 10/3 0 1 1/3 2/3 0 -1/6
0 X5 4/3 0 0 1/3 2/3 1 -1/6
Z = 10 + C1*10/3 0 0 C1/3 2 - C1/3 0 -1/2 + C1/3
Por ser un problema de maximización, todoZj − Cj debe ser mayor o igual a cero:
C1/3 ≥ 0 ⇒ C1 ≥ 0
2− C1/3 ≥ 0 ⇒ C1 ≤ 6
−1/2 + C1/3 ≥ 0 ⇒ C1 ≥ 3/2
El rango de variación es de [3/2, 6]. Se puede modificar el coeficiente a 5.50 sin que cambie el óptimo.
El nuevo valor de Z será de 85/3 y el plan de producción es el mismo que el original
3. Inciso B
¿Cuánto debería aumentar como mínimo el beneficio del producto 3 para que conviniera empezar
a fabricarlo? Justifique
Segundo cuatrimestre 2020 275
Ejercicios resueltos EXTRA DEL 6.2
De la misma forma que en el inciso anterior, se deja constante el coeficiente correspondiente al
producto 3 (C3) y se analiza su rango de variación. En este caso, solo Z3 − C3 depende de este
coeficiente.
7/3− C3 ≥ 0 ⇒ C3 ≤ 7/3
CuandoC3 es igual a 7/3, existe una solución óptima alternativa donde se produce el producto 3. Para
llegar a dicha tabla entraría a la base la variable X3.
Entonces para que sea conveniente empezar a fabricar el producto 3, su ganancia debe aumentar al
menos 1/3. O en otras palabras, su coeficiente debería ser de al menos 7/3
Alternativamente, y más rápido: Se analiza el costo de oportunidad del producto 3 (Z3 − C3). Este
indica en cuanto empeoraría el funcional si tenemos la obligación de fabricar una unidad de ese
producto. Con unZ3 −C3 = 1/3, será necesario que el coeficienteC3 aumente al menos 1/3 para que
sea conveniente fabricarlo.
4. Inciso C
Si nos ofrecen la oportunidad de pagar para disminuir la demanda mínima del producto 2 de
dos unidades a una unidad ¿sería conveniente? Si lo fuera ¿cuánto pagaríamos para disminuir la
demanda mínima de producto 2 de dos unidades a una unidad (que la restricción ahora sea X2 >=
1)? Si no es conveniente disminuir de esa manera la demanda mínima ¿por qué?
El valor marginal de la demanda mínima del producto 2 corresponde aZ5 − C5 = 0. Inmediatamente,
el funcional no cambiaría al disminuir una unidad de la demanda mínima del producto 2.
No es conveniente pagar para reducir la demanda mínima del producto 2 para que pase de dos unidades
a una unidad.
5. Inciso D
Analizar la chance de fabricar un cuarto producto. Para obtener una unidad de este producto se
necesitan 4 kilos de materia prima y 5 horas de la máquina. El beneficio unitario de este nuevo
producto es de $5,50. Indicar, utilizando el método del lucro cesante si se puede descartar esta
alternativa o podría llegar a ser conveniente.
Primero se analiza el lucro cesante. Al ser una estimación, solo va a indicar cuando no es conveniente
producir el producto. Recordando que el lucro cesante se calcula de la siguiente forma:
LucroCesante =
∑
i∈RECURSOS
Usoi · VMi
Segundo cuatrimestre 2020 276
Ejercicios resueltos EXTRA DEL 6.2
Recordando que el nuevo producto usa 4kg de materia prima y 5 horas de horas máquina:
LucroCesante = 4 · 23 + 5 ·
5
6 = 41/6
Si el lucro cesante de un nuevo producto es mayor que el beneficio obtenido por ese producto, entonces
no conviene producirlo. Si es menor o igual, puede o no que sea conveniente.
Resulta que LucroCesante = 41/6 = 6.83 ≥ 5.50 = C4, entonces no es conveniente agregar el
nuevo producto al plan de producción.
Segundo cuatrimestre 2020 277
Ejercicios resueltos PARCIAL 2020-07-11
Parcial 2020-07-11
1. Enunciado
Petronilo SA ha decidido lanzar dos promociones de productos luego de las cuarentenas. Estas promo-
ciones estarán integradas por tres tipos de dulce llamados Alfa, Beta y Gama y también por una barrita
de cereal.
Petronilo SA tiene una línea de producción que puede hacer hasta 330 unidades mensuales de dulce
(en total de los tres tipos) pero no quiere hacer de ningún dulce más del triple que de otro. Las barritas
de cereal puede fabricarlas y también puede comprarlas. Las barras de cereal se fabrican en la misma
línea que los dulces y puede hacer hasta B barritas por mes. Sin embargo, si en la línea de producción
se hacen exactamente 330 unidades mensuales de dulce no podrá fabricar barritas de cereal y tendrá
que comprar todas lasque necesite. La línea de producción tiene un costo de $30 por cada dulce (de
cualquier tipo) y de $2 por cada barrita. Comprar las barritas cuesta $3/unidad.
En la siguiente tabla se muestra cómo se componen las promociones, la demanda máxima mensual y
el precio de venta de cada una de ellas:
De la promoción que menos unidades venda tendrá un beneficio adicional de $4 por unidad siempre y
cuando la suma de promociones que fabrica (en total) no sea menor que SP unidades.
¿Qué es lo mejor que se puede hacer con la información disponible?
NOTA: B, DS1, DS2, $V11, $V12, $V2 y SP son constantes conocidas
2. Análisis de la situación problemática
A1: Caracterizar la situación problemática en no más de cinco renglones.
Se trata de un problema de planificación de producción, considerando un armado para producir las
promos.
También se debe considerar la producción de dulces y compra o producción de barritas para las
distintas promos.
El precio de venta de la promo uno se trata de una función cóncava seleccionalmente lineal.
Segundo cuatrimestre 2020 278
Ejercicios resueltos PARCIAL 2020-07-11
3. Objetivo
A2: Objetivo del problema, completo y claro.
Determinar la cantidad de dulces a producir, la cantidad de barritas a producir y comprar, la cantidad
de cada promoción a producir con la cantidad de dulces para cada una para maximizar la ganancia del
próximo mes.
4. Hipótesis y supuestos
A2: Hipótesis y supuestos.
• Las barritas de cereal no suman para el total de la línea de producción del máximo de 330
unidades de dulces.
• No hay límite para la cantidad de comprar de barritas.
• Todo lo que se produce, con tal de que la cantidad sea menor o igual a la demanda máxima, se
vende.
• Las promociones hechas con distintos tipos de dulces son indistinguibles entre sí.
• Las barritas compradas y producidas son indistinguibles entre sí.
• El tiempo de producción para los dulces, barritas o promociones no es limitante.
• La promoción 2 puede estar formada únicamente por dulces del tipo Alfa (y la barrita de cereal).
• No hay restricciones de mano de obra.
• No hay inflación.
5. Definición de variables
A3: Definición de variables del modelo matemático, indicando si son enteras o continuas.
Las variables de decisión serán:
• Pd [unidad/mes] [entera]: Cantidad de d a producir en el mes.
– Donde d ∈ {alfa, beta, gama, barra}.
• Pp [promo/mes] [entera]: Cantidad de promoción p a producir en el mes.
– Donde p ∈ {1, 2}.
• Cbarra [unidad/mes] [entera]: Cantidad de barritas a comprar en el mes.
• Mp,d [unidad/promo] [entera]: Cantidad de unidades de d para utilizar en la producción de
promo p.
Segundo cuatrimestre 2020 279
Ejercicios resueltos PARCIAL 2020-07-11
Se definen también las siguientes variables:
• P1,1 [unidades/mes] [entera]: Cantidad de promo 1 a producir (hasta 8 unidades, inclusive) en
el mes.
• P1,2 [unidades/mes] [entera]: Cantidad de promo 1 a producir (pasadas las 8 unidades) en el
mes.
• Y1,sup8 [binaria]: Toma valor 1 si se producen al menos 8 unidades de la promo 1
• Y330dulces [binaria]: Toma valor 1 si la cantidad de dulces a producir es exactamente 330.
• Ybenef [binaria]: Toma valor 1 si se aplica el beneficio.
• MP [unidades/mes] [entera]: Toma el menor valor entre las promocionesP1 yP2 (si se cumple
Ybenef , caso contrario toma valor 0).
• Yp,menor [binaria]: Toma valor 1 si la cantidad a producir de la promoción p es la menor de las
promociones (si se cumple Ybenef ).
• BENEF [$/mes]: Beneficio del mes.
• COSTO [$/mes]: Costo del mes.
6. Modelo de programación lineal
A4 Modelo matemático de programación lineal. Indicar claramente qué función cumple cada
ecuación. Tener en cuenta que si el modelo no es lineal, este punto se anulará. NO SE PUEDE
CAMBIAR EL NOMBRE A LOS DATOS/CONSTANTES DADOS.
Primero se vinculan la cantidad de dulces con las promociones:
7 · P1 = M1,alfa +M1,beta +M1,gama
9 · P2 = M2,alfa +M2,beta +M2,gama
La vinculación de la cantidad de dulces a producir con la cantidad de dulces a utilizar en cada promo-
ción:
∀ d ∈ {alfa, beta, gama} : Pd = M1,d +M2,d
Considerando los dulces necesarios para la promo 1:
∀ d ∈ {alfa, beta, gama} : M1,alfa +M1,beta +M1,gama ≤ 7 ·M1,d
Considerando los dulces necesarios para la promo 2:
0.3 · (M2,alfa +M2,beta +M2,gama) ≤M2,alfa
Segundo cuatrimestre 2020 280
Ejercicios resueltos PARCIAL 2020-07-11
También es necesario vincular la cantidad de barritas con las promociones a hacer:
M1,barra +M2,barra = Pbarra + Cbarra
2 · P1 = M1,barra
P2 = M2,barra
La restricción del máximo de 330 dulces con la línea de producción, vinculando con la variable bivalente
Y330dulces:
330 · Y330dulces ≤ Palfa + Pbeta + Pgama ≤ 330 · Y330dulces + 329 · (1− Y330dulces)
No se quiere hacer de ningún dulce más del triple que de otro:
∀ i, j ∈ {alfa, beta, gama}, i 6= j : Pi ≤ 3 · Pj
La cantidad a producir de barritas debe ser menor aB, o bien cero si se producen 330 dulces:
Pbarras ≤ (1− Y330dulces) ·B
Existe una demanda máxima para las promociones:
P1 ≤ DS1
P2 ≤ DS2
Vinculación de la bivalente Ybenef , tomandoM con un valor “muy grande”:
Ybenef · SP ≤ P1 + P2 ≤ (1− Ybenef ) · (SP − 1) + Ybenef ·M
Vinculación de las bivalentes Yp,menor:
Y1,menor + Y2,menor = 1
P1 −M · (1− Y1,menor)−M · (1− Ybenef ) ≤MP ≤ P1
P2 −M · (1− Y2,menor)−M · (1− Ybenef ) ≤MP ≤ P2
MP ≤M · Ybenef
Segundo cuatrimestre 2020 281
Ejercicios resueltos PARCIAL 2020-07-11
Vinculación de las variables P1,1 y P1,2:
P1 = P1,1 + P1,2
Y1,sup8 · 8 ≤ P1,1 ≤ 8
P1,2 ≤ Y1,sup8 ·M
Vinculación del beneficio del mes:
BENEF = P1,1 · V 11 + P1,2 · V 12 + P2 · V 2 +MP · 4
Vinculación del costo del mes:
COSTO = (Palfa + Pbeta + Pgama) · 30 + Pbarra · 2 + Cbarra · 3
Finalmente, el funcional a maximizar:
Z = BENEF − COSTO
7. Extensión del enunciado
A5: Al modelo de A4 se le agrega lo siguiente: Se decide que, si la promoción más vendida es la
Promouno, se obtendrá un premio de $15 por cada unidad de Promouno vendida. Si no es así, el
premio que se obtendrá es de $300 (fijo, no por unidad). ¿qué modificaciones hay que hacer en el
modelo para que refleje estos agregados?. Se debe indicar qué variables se agregan, si hay que
modificar o agregar hipótesis y se deben escribir las restricciones que se agregan o se modifican
en el modelo de A4.Tener en cuenta que si el modelo no es lineal, este punto se anulará. NO SE
PUEDE CAMBIAR EL NOMBRE A LOS DATOS/CONSTANTES DADOS.
Se agrega la siguiente hipótesis recordando la hipótesis “todo lo que se produce se vende si está debajo
de la demanda máxima.”:
• Si la cantidad producida de las promociones es la misma, se puede elegir qué premio se obtiene.
No se pueden utilizar las variables Yp,menor porque están vinculadas con Ybenef . Es decir, si Ybenef = 0,
entonces las variables Yp,menor no necesariamente indicarán si su promoción es la menor. Habría que
reescribir estas restricciones con nuevas variables sin vincularlas con Ybenef .
A partir de esto, se agregan las siguientes variables:
Segundo cuatrimestre 2020 282
Ejercicios resueltos PARCIAL 2020-07-11
• BENEF1,premio [$/mes]: Beneficio obtenido en el mes por el premio de 15$ por unidad de
promo 1 si la cantidad producida de esta es menor que la cantidad producida de la promo 2.
• Yp,menor,premio [binaria]: Toma valor 1 si la cantidad a producir de la promoción p es la menor
de las promociones.
• MP2 [unidades/mes] [entera]: Toma el menor valor entre las promociones P1 y P2.
Se vinculan las nuevas variables del menor valor:
Y1,menor,premio + Y2,menor,premio = 1
P1 −M · (1− Y1,menor,premio) ≤MP2 ≤ P1
P2 −M · (1− Y2,menor,premio) ≤MP2 ≤ P2
Se vinculaBENEF1,premio con la variable de producción y Y2,menor,premio:
BENEF1,premio ≤ P1
BENEF1,premio ≤ Y2,menor,premio ·M
Luego, se modifica la variableBENEF para agregar los premios:
BENEF = P1,1 · V 11 + P1,2 · V 12 + P2 · V 2 +MP · 4
+Y1,menor,premio · 300 +BENEF1,premio · 15
El resto de las restricciones y el funcional se mantienen iguales.
Correcciones
En el análisis falta indicar queademás es un problema de armado
En el objetivo falta agregar que hay que determinar la composición de las promociones.
El modelo es correcto.
Segundo cuatrimestre 2020 283
Ejercicios resueltos PARCIAL 2020-08-01
Parcial 2020-08-01
1. Enunciado
Un emprendedor compra y vende tres tipos de conectores externos para TV de plasma (llamados A, B y
C). Para el mes que viene las demandas mínimas son de Vi para cada tipo de conector i. Sabe que la
demanda máxima conjunta es de T conectores (para los tres tipos en total).
Planea ofrecer una promoción para minoristas que consiste en una bolsa con 20 conectores de cada
tipo y no quiere tener menos de B bolsas armadas para el mes que viene.
Para vender los conectores de manera individual ha fijado un precio de venta de PCi para cada conector
de tipo i. El precio de venta de cada bolsa es de PB1, si vende 30 bolsas o menos, y si vende más de 30
bolsas el precio de venta de cada bolsa es PB2.
Para comprar las mercaderías tiene distintas alternativas: puede comprar a un proveedor local las
cantidades que quiera de cada conector pero también puede comprar lotes importados. Como vemos
en la tabla de más abajo, estos lotes tienen una cantidad determinada de cada tipo de conector.
Para el mes que viene hay 5 lotes en oferta que llamaremos Lote 1, Lote 2, Lote 3, Lote 4 y Lote 5.
Hay solamente un Lote 1, solamente un Lote 2, solamente un Lote 3, solamente un Lote 4 y solamente
un Lote 5. El emprendedor puede decidir comprar o no un lote, pero si lo compra lo compra entero
(ejemplo, si compra el Lote 1 está comprando 70 conectores A, 30 conectores B y 15 conectores C).
En la tabla siguiente se indica para cada lote la cada cantidad de conectores de cada modelo que
contiene y el precio de compra.
Todas las compras son al contado, dispone de $MES para hacer sus compras. Si compra al menos tres
lotes y le sobra más de $DEMAS puede usar el dinero sobrante en hacer publicidad, Sabe que por cada
$1000 que gaste en publicidad la demanda máxima conjunta de conectores (que actualmente es T)
aumentará un 2%.
¿Qué es lo mejor que se puede hacer con la información disponible?
NOTA: Vi, T, B, PCi, PB1, PB2, $C1, $C2, $C3, $L1, $L2, $L3, $L4, $L5, $MES, $DEMAS son constantes
conocidas
Segundo cuatrimestre 2020 284
Ejercicios resueltos PARCIAL 2020-08-01
2. Análisis de la situación problemática
Se trata de un problema de planificación de compra y venta. Se deben considerar dos formas de
compra distintas (local e importación), y dos tipos de venta distintas (individual o bolsa). El precio de
venta de las bolsas se trata de un costo diferencial por intervalo.
3. Objetivo
Determinar la cantidad de conectores a comprar al proveedor local, los lotes a importar, la cantidad
de bolsas a armar y vender, y el dinero a invertir en publicidad para maximizar la ganancia del mes
que viene.
4. Hipótesis y supuestos
• No hay stock inicial.
• No es necesario mantener un stock final de conectores individuales.
• No hay limitaciones físicas.
• No hay inflación.
• Las demandas mínimas se pueden cumplir con la venta de conectores de forma individual o por
bolsa.
• Los lotes a comprar llegarán a tiempo para la venta de los conectores.
• No hay límite de compra de conectores por el proveedor local.
• La demanda mínima individual y máxima conjunta es exacta.
• Los conectores son indistinguibles si se compran por lote o al proveedor local.
• El dinero restante necesario para la compra de publicidad solo se considera con el dinero inicial
MES y la compra de conectores, y no las ganancias.
• No debe quedar stock final de conectores individuales.
5. Definición de variables
Se definen las variables de control:
• COMi,local [conectores/mes], [entera]: Cantidad de conectores i a comprar al proveedor local
en el mes.
– Donde i ∈ {A,B,C}.
• Ylote,j [binaria]: Toma valor 1 si se decidió comprar el Lote j en el mes.
Segundo cuatrimestre 2020 285
Ejercicios resueltos PARCIAL 2020-08-01
– Donde j ∈ {1, 2, 3, 4, 5}.
• PRODbolsas [bolsas/mes]: Cantidad de bolsas a producir en el mes.
• V ENbolsas [bolsas/mes]: Cantidad de bolsas a vender en el mes.
• Dpublicidad [$/mes]: Dinero a invertir en publicidad en el mes.
Se definen también las siguientes variables:
• COMi,lote [conectores/mes], [entera]: Cantidad de conectores i comprados por lotes en el mes.
• COMi,total [conectores/mes], [entera]: Cantidad total de conectores i comprados en el mes.
• PRODi,bolsas [conectores/mes], [entera]: Cantidad conectores i destinados al armado de bol-
sas.
• V ENi [conectores/mes], [entera]: Cantidad conectores i a vender de forma individual en el
mes.
• V ENbolsas,1 [conectores/mes], [entera]: Cantidad de bolsas a vender si son 30 o menos.
• V ENbolsas,2 [conectores/mes], [entera]: Cantidad de bolsas a vender si son más de 30.
• Y30bolsas [binaria]: Toma valor 1 si la cantidad de bolsas a vender en el mes es menor o igual a 30.
• Y3lotes [binaria]: Toma valor 1 si se compran al menos tres lotes.
• YDEMAS [binaria]: Toma valor 1 si sobra $DEMAS dinero luego de la compra de conec-
tores/lotes.
• Ypublicidad [binaria]: Toma valor 1 si se cumplen las condiciones para contratar publicidad (es
decir, si se cumplen Y30bolsas e Ytreslotes).
Se reescriben también algunos datos del enunciado en constantes:
• Sj,i [conectores/lote], [entera]: Cantidad de lotes del tipo i que vienen en el lote j.
6. Modelo de programación lineal
Se vinculan las variables de lote con la cantidad total de conectores:
∀ i ∈ {A,B,C} : COMi,lote =
∑
j
Ylote,j · Sj,i
Se vinculan todos los conectores a comprar:
∀ i ∈ {A,B,C} : COMi,lote + COMi,local = COMi,total
Se vinculan los conectores destinados a bolsas:
∀ i ∈ {A,B,C} : PRODi,bolsas = 20 · PRODbolsas
Segundo cuatrimestre 2020 286
Ejercicios resueltos PARCIAL 2020-08-01
Se vinculan la cantidad de conectores a vender:
∀ i ∈ {A,B,C} : COMi,total − PRODi,bolsas = V ENi
Cantidad de bolsas a vender y producir:
V ENbolsas ≤ PRODbolsas −B
B ≤ Pbolsas
Es necesario cumplir con un mínimo de ventas de conectores:
∀ i ∈ {A,B,C} : Vi ≤ V ENbolsas · 20 + V ENi
El máximo de venta conjunta:
V ENbolsas · 60 + V ENA + V ENB + V ENC ≤ T ·
(
1 +Dpublicidad
0.02
1000
)
El dinero disponible para la compra de conectores:
∑
i
Ci · COMi,local +
∑
j
Lj · Ylote,j ≤MES
Vinculación de la variableYDEMAS , siendoM una constante con valor “muy grande” ymuna constante
con valor “muy chico”:
(DEMAS+m)·YDEMAS ≤MES−
∑
i
Ci·COMi,local−
∑
j
Lj ·Ylote,j ≤ DEMAS·(1−YDEMAS)+YDEMAS ·M
Vinculación de la variable Y3lotes:
4 · Y3lotes ≤
∑
j
Ylote,j ≤ 3 · (1− Y3lotes) + 5 · Y3lotes
Vinculación de la variable Ypublicidad:
2 · Ypublicidad ≤ YDEMAS + Y3lotes ≤ 1 + Ypublicidad
Segundo cuatrimestre 2020 287
Ejercicios resueltos PARCIAL 2020-08-01
Solo se puede invertir en publicidad si se cumplen las condiciones previas:
Dpublicidad ≤M · Ypublicidad
Restricciones relacionadas al precio de venta diferencial por intervalo de las bolsas:
V ENbolsas = V ENbolsas,1 + V ENbolsas,2
V ENbolsas,1 ≤ 30 · Y30bolsas
(30 +m) · (1− Y30bolsas) ≤ V ENbolsas,2 ≤M · (1− Y30bolsas)
Finalmente, el funcional a maximizar:
Z = V ENbolsas,1 · PB1 + V ENbolsas,2 · PB2 +
∑
i
V ENi · Vi
−
∑
i
COMi,local · Ci −
∑
j
Ylote,j · Lj −Dpublicidad
7. Extensión del enunciado
Si se compran todos los lotes, se agrega a la disponibilidad un sexto lote de regalo que tiene 70
conectores de cada tipo. Si se compran 3 lotes y son el 1, el 2 y el 3, se agregan 40 conectores de tipo A
de regalo
8. Extensión del modelo
Se agrega la siguiente hipótesis: - El costo del nuevo Lote 6 es de L6 y solo se podrá comprar si se
compran todos los lotes anteriores.
Se agregan las siguientes variables:
• El conjunto de variables Ylote,j tendrá una nueva variable, con j = 6.
• Y5lotes [binaria]: Toma valor 1 si se compran todos los lotes.
• Yprimeros3 [binaria]: Toma valor 1 si solo se compran los lotes 1, 2 y 3.
Se vincula la variable Y5lotes:
5Y5lotes ≤
5∑
j=1
Ylote,j ≤ 4 + Y5lotes
Segundo cuatrimestre 2020288
Ejercicios resueltos PARCIAL 2020-08-01
Se restringe el valor de Ylote,6:
Ylote,6 ≤ Y5lotes
Se vincula la variable Yprimeros3:
5 · Yprimeros3 ≤ Ylote,1 + Ylote,2 + Ylote,3 + (1− Ylote,4) + (1− Ylote,5) ≤ 4 + Yprimeros3
Se agregan los 40 contectores del tipo A de regalo:
COMA,lote + COMA,local + 40 · Yprimeros3 = COMA,total
El resto de las restricciones y el funcional quedan iguales (recordando que ahora se encuentra el lote 6
en el conjunto posible de lotes j).
Segundo cuatrimestre 2020 289
Ejercicios resueltos PARCIAL 2020-08-27
Parcial 2020-08-27
1. Enunciado
La ya conocida empresa COMPUQUICK lanza su nueva plataforma en línea para el dictado de cursos
en español. Para el próximo mes está analizando la compra de 3 cursos para subir en su plataforma:
CriptoMonedas (CURSO1), Reconocimiento Facial (CURSO2), y Voto Electrónico (CURSO3).
Para comprar los cursos tiene alternativas: puede comprarlos con el contenido ya en español, o también
puede comprarlos en inglés y traducirlos al español. En la tabla siguiente se indica para cada curso el
precio de compra en español, el precio de compra en inglés, y el costo de traducción (todos los montos
están en pesos argentinos):
Si compra los 3 cursos en inglés tiene un descuento del 15% sobre cada curso. Ya tiene un convenio
con una empresa de sistemas para venderle hasta un máximo determinado de suscripciones por cada
curso. Si no son rentables, algunos cursos podrían no dictarse.
Se cuenta con 5 profesores con aptitudes para dictar cualquier curso, pero cada profesor puede dictar
a lo sumo 1 curso. Cada profesor cobra $HONORARIOS sólo si dicta el curso.
Todas las compras y ventas son al contado. En la primera semana del mes se dispone de $MES para
hacer las compras y para pagar la traducción. En la segunda semana se cobran todas las suscripciones.
En la tercera semana se pagan los honorarios.
¿Qué es lo mejor que se puede hacer con la información disponible?
NOTA: $Ci_es, $Ci_en, $Ci_TR, SUSC_Ci (i=1,2,3), $VTA_C1A, $VTA_C1B, $VTA_C2, $VTA_C3, $HONO-
RARIOS, $MES, son constantes conocidas
Segundo cuatrimestre 2020 290
Ejercicios resueltos PARCIAL 2020-08-27
2. Análisis de la situación problemática
Se trata de un problema de decisión, con una restricción monetaria que se encuentra en diferentes
periodos.
3. Objetivo
Determinar cuáles de los tres cursos comprar, qué variación comprar, y cuántas suscripciones aceptar
en cada uno, para maximizar la ganancia durante el periodo de dictado de cursos.
El precio de venta del curso de criptomonedas es una función cóncava seleccionalmente lineal.
4. Hipótesis y supuestos
• No es necesario comprar los tres cursos.
• Se cumple la oferta de suscripciones para cada curso con tal de que este número se encuentre
debajo del máximo de suscripciones.
• Los profesores aceptarán dictar el curso que les toque.
• El descuento del 15% por comprar los cursos en ingles no se aplica a los costos de traducción.
• La cantidad de profesores necesarios tiene que ser igual o superior a la indicada por los datos
de cada curso.
• El costo de honorarios no varía por profesor ni curso.
• No hay costos adicionales.
• No hay inflación ni variación de precios más allá de los indicados por los datos.
• No hay otros recursos limitantes mas allá de los indicados por los datos.
• Pago de honorarios y cobro de suscripciones es único (es decir, no se trata de un pago mensual).
• No habrá ningún retraso de pago por las suscripciones.
• Es indiferente la elección de los profesores para dictar los cursos.
5. Definición de variables
Se definen las variables de control:
• Yi,j [binaria]: Toma valor 1 si se compró el curso i en el idioma j.
– Donde i puede ser 1 = (Criptomonedas), 2 = (Reconocimiento Facial), 3 = (Voto Electrónico).
– Donde j puede ser es = (español), en = (inglés).
• Si [suscripciones/curso], [entera]: Cantidad de suscripciones a aceptar en el curso i.
Segundo cuatrimestre 2020 291
Ejercicios resueltos PARCIAL 2020-08-27
Se definen también las siguientes variables:
• Yi [binaria]: Toma valor 1 si se compró el curso i en cualquiera de sus variantes.
• Yen [binaria]: Toma valor 1 si se compraron los tres cursos en inglés.
• S1,1 [suscripciones/curso], [entera]: Cantidad de suscripciones a aceptar en el curso i, hasta
10.
• S1,2 [suscripciones/curso], [entera]: Cantidad de suscripciones a aceptar en el curso i, superi-
ores a 10.
• Y1,sup10 [binaria]: Toma valor 1 si se aceptaron más de 10 suscripciones en el curso 1.
• P [profesores/curso], [entera]: Cantidad de profesores a asignar a los cursos.
• COSTOcursos [$/curso]: Costo total por contratar los cursos y traducirlos si es necesarios.
• COSTOcursos,en [$/curso]: Costo total por contratar los cursos en ingles.
• COSTOcursos,tr [$/curso]: Costo total por traducir los cursos en ingles.
• COSTOcursos,es [$/curso]: Costo total por contratar los cursos en español.
• COSTOprof [$/profesor]: Costo total por los honorarios de los profesores.
• BENEFcursos,en [$/suscripciones]: Beneficio obtenido por el descuento de comprar todos los
cursos en ingles.
• BENEFsus [$/suscripciones]: Beneficio total por las suscripciones.
6. Modelo de programación lineal
Se vinculan las variables binarias de contratación de cursos:
∀ i ∈ {1, 2, 3} : Yi = Yi,en + Yi,es
Se contrata solo una variación del curso.
∀ i ∈ {1, 2, 3} : Yi ≤ 1
Vinculación de la variable Yen:
3 · Yen ≤ Y1,en + Y2,en + Y3,en ≤ 2 + Yen
Vinculación de las variables deCOSTO:
COSTOcursos,es =
∑
i
Y1,es · Ci,es
COSTOcursos,en =
∑
i
Y1,en · Ci,en
Segundo cuatrimestre 2020 292
Ejercicios resueltos PARCIAL 2020-08-27
COSTOcursos,tr =
∑
i
Y1,en · Ci,tr
COSTOcursos = COSTOcursos,es + COSTOcursos,en + COSTOcursos,tr
Se debe considerar el descuento por contratar los tres cursos en ingles:
Yen · (C1,en + C2,en + C3,en) · 0.15 ≤ BENEFcursos,en ≤ Yen · (C1,en + C2,en + C3,en) · 0.15
La restricción monetaria en la primer semana:
COSTOcursos ≤MES +BENEFcursos,en
Para las suscripciones, primero se considera la restricción de profesores:
S1 · 0.166 + S2 · 0.125 + S3 · 0.25 ≤ P ≤ 5
Solo se aceptan suscripciones si se contrata el curso. Siendo M una constante con valor “muy
grande”:
∀ i ∈ {1, 2, 3} : Yi ≥ S1 ≥M · Yi
Vinculaciones de las variables S1,1 y S1,2:
S1 = S1,1 + S1,2
10 · Y1,sup10 ≤ S1,1 ≤ 10
S1,2 ≤M · Y1,sup10
Vinculación de la variableBENEFsus:
BENEFsus = S1,1 · V TAC1A + S1,d · V TAC1B + S2 · V TAC2 + S3 · V TAC3
Vinculación de la variableCOSTOprof :
COSTOprof = HONORARIOS · P
Restricción monetaria para el costo de honorarios de los profesores:
COSTOprof ≤MES +BENEFcursos,en − COSTOcursos +BENEFsus
Segundo cuatrimestre 2020 293
Ejercicios resueltos PARCIAL 2020-08-27
Finalmente, el funcional a maximizar:
Z = BENEFcursos,en +BENEFsus − COSTOcursos − COSTOprof
7. Extensión del enunciado
Para brindar cursos de calidad se dispone de N colaboradores. Cada profesor debe contar con 2
colaboradores. Cada colaborador puede estar sin asignación, o puede ayudar en uno o dos cursos, ya
que su participación es asincrónica. Cada colaborador cobra $COLABORADOR por cada curso en el
que participe.
NOTA: N, $COLABORADOR son constantes conocidas
8. Extensión del modelo
Se agregan las siguientes hipótesis:
• Los colaboradores aceptarán dictar el curso que les toque.
• Es indiferente la elección de los colaboradores para dictar los cursos.
Se definen las siguientes variables adicionales:
• Ai [colaboradores/curso], [entera]: Cantidad de colaboradores asignados al curso i.
• COSTOcolab [$/colab]: Costo total por los honorarios de los colaboradores.
Vinculando las nuevas variables con los cursos habilitados:
S1 · 0.333 ≤ A1 ≤ N
S2 · 0.25 ≤ A2 ≤ N
S3 · 0.5 ≤ A3 ≤ N
Cada colaborador puede participar en hasta dos cursos:
S1 · 0.333 + S2 · 0.25 ≤ A1 +A2 ≤ N
S2 · 0.25 + S3 · 0.5 ≤ A2 +A3 ≤ N
S1 · 0.333 + S3 · 0.5 ≤ A1 +A3 ≤ N
Segundo cuatrimestre 2020 294
Ejercicios resueltos PARCIAL 2020-08-27
Vinculación deCOSTOcolab:
COSTOcolab = (A1 +A2 +A3) · COLABORADORSe actualiza la restricción monetaria para la tercer semana:
COSTOprof + COSTOcolab ≤MES +BENEFcursos,en − COSTOcursos +BENEFsus
Finalmente, se actualiza el funcional:
Z = BENEFcursos,en +BENEFsus − COSTOcursos − COSTOprof − COSTOcolab
Segundo cuatrimestre 2020 295
Ejercicios resueltos TEÓRICO-PRÁCTICA
Teórico-práctica
1. Semana 1 - Introducción a la modelización y programación lineal.
1.1.
¿Qué errores de modelización creés que cometieron los que hicieron el mapa del imperio?
Un mapa muy detallado (“tenía el Tamaño del Imperio”) no sirve como representación del imperio. En
un mapa se busca simplificar las características del terreno, y su error fue no sacrificar detalles.
1.2.
En la clase calculamos la ganancia para el producto DC. Ahora te pedimos que escribas los cálculos
para la ganancia de LV Recordemos: ¿Cómo calculamos la ganancia unitaria de cada producto?:
Ingreso por ventas = Precio de venta
Costos de fabricación para cada recurso = Cantidad que usa el producto de ese recurso multipli-
cado por costo de una unidad de ese recurso
Ganancia por unidad de LV =
= Precio venta LV - Costo SB para LV - Costo Arom para LV - Costo botella para LV - Costo etiqueta para
LV
= 9.85$/unit - (0.1L/unit * 10$/L) - (0.250L/unit * 15$/L) - (1/unit * 1$) - (1/unit * 0.1$)
= 4 $/unit
1.3
Identifique cuál es el caso particular en la solución óptima que se verifica en el gráfico de la
imagen
Segundo cuatrimestre 2020 296
Ejercicios resueltos TEÓRICO-PRÁCTICA
a. Solución óptima única
b. Incompatible
c. Soluciones alternativas óptimas
d. Poliedro abierto - Solución no acotada
2. Semana 2 - Condiciones de vínculo, mezcla y armado
2.1.
En el problema de mezcla para fabricar medallas ¿cuánto va a incluir de cobre (Cu) dado que no
tiene restricción de mínimo ni máximo en la mezcla de la aleación?
Ag >= 0,9 (Ag + Cu + Sn)
Sn <= 0,005 (Ag + Cu + Sn)
Reescribiendo las restricciones:
Ag / 9 - Sn >= Cu 199 Sn - Ag <= Cu
Entonces:
199 Sn - Ag <= Cu <= Ag / 9 - Sn
2.2.
En el armado de la bolsa Alfa, recordando que la bolsa lleva 3 medallas doradas y 2 medallas
plateadas, ¿qué pasaría si pusiéramos la siguiente restricción en lugar de las dos restricciones de
armado que indicamos en la clase?: Alfa = (MDAlfa + MPAlfa) / 5
a. No es correcta porque pone menos de 5 medallas por bolsa
Segundo cuatrimestre 2020 297
Ejercicios resueltos TEÓRICO-PRÁCTICA
b. No es correcta porque no asegura que haya 3 medallas doradas y 2 medallas plateadas en
cada bolsa Alfa
c. Es correcta
2.3.
¿Por qué el modelo del rey de Arabia (el segundo) era más difícil de resolver que el del rey de
Babilonia (el primer laberinto)?
a. Porque no tiene restricciones
b. Porque el objetivo es diferente
c. Porque tiene demasiadas restricciones
3. Semana 3 - Progamación de metas
3.1.
En el problema de metas de la camioneta de Tito, si pudieran cargar menos de 300 botellas sin
pagar $1 por cada botella de menos ¿sería necesario plantear un esquema de metas con EXCESO
y DEFECTO?
a. Sí, porque es la manera de plantear que la cantidad de botellas puede ser menor, igual o
mayor que 300
b. Sí, porque agregaremos la variable DEFECTO en el funcional aunque no tenga costo
c. No, porque la variable DEFECTO no se usa en el Z, entonces no es necesario ponerla
3.2.
En el problema con varios períodos, si las ventas no fueran una demanda mínima sino máxima
¿serviría el mismo modelo planteado?
a. Sí, sin cambios
b. No, porque el modelo si la demanda es máxima no tiene sentido porque siempre el valor
del funcional da cero (en un modelo de minimización siempre tiene que haber alguna re-
stricción de mayor o igual)
c. Sí, cambiando solamente los signos de las restricciones que afectan a las variables Vi por un
signo de menor o igual (en lugar de mayor o igual)
Segundo cuatrimestre 2020 298
Ejercicios resueltos TEÓRICO-PRÁCTICA
4. Semana 4 - Programación lineal entera
4.1.
En las decisiones condicionales vimos cómo definir una variable que tome valor 1 si la suma de
cinco variables es mayor o igual que 15. Si quisiéramos obtener una variable YMEN que valiera 1
cuando la variable entera X3 es menor o igual que 10 ¿cuál de estas será la estructura apropiada?
a. 10 - 9 YMEN <= X3 <= 9 YMEN + M
b. 10 YMEN <= X3 <= 9 + M YMEN
c. 11 (1 -YMEN) <= X3 <= 10 + M (1 - YMEN)
4.2.
Cuando anulamos las restricciones de las máquinas Alfa y Beta, dijimos que podíamos usar una
sola variable bivalente en lugar de usar dos (YALFA e YBETA). Si ese fuera el caso ¿cuál de estas
tres estructuras sería la correcta?
a. 1 X2 + 1,5 X4 < 25 + M Yalfa; 2 X2 + 1 X4 < 30 + M (1 - Yalfa)
b. 1 X2 + 1,5 X4 < 25 - M Yalfa; 2 X2 + 1 X4 < 30 - M (1 - Yalfa)
c. 1 X2 + 1,5 X4 < 25 + M Yalfa; 2 X2 + 1 X4 < 30 + M Yalfa
4.3.
En la estructura de costo diferencial por intervalo (la de costo de mantenimiento de horas de
máquina). . .
a. . . . para que una variable Hi sea distinta de cero, la variable Hi del rango anterior debe ser distinta
de cero
b. . . .solamente una de las variables Hi es distinta de cero
5. Semana 5 - Problema del viajante
5.1.
Las variables Yij del problema del viajante. . .
a. . . . indican el número de orden en que la ciudad es visitada
b. . . . indican si una ciudad del viajante es visitada o no
c. . . . indican qué tramos del grafo serán parte del tour del viajante
Segundo cuatrimestre 2020 299
Ejercicios resueltos TEÓRICO-PRÁCTICA
5.2.
Las variables Ui del problema del viajante MTZ van tomando valor a medida que el viajante va
pasando por las ciudades
a. Verdadero
b. Falso
5.3.
Si agregamos en el problema estándar del viajante que una ciudad determinada (por ejemplo la
D) puede o no visitarse según lo elija el modelo y ponemos una variable en el modelo llamada YD
que cuando vale 1 significa que se visita D y cuando vale 0 significa que D no se visita..
a. . . .Hay que igualar las restricciones de sumatoria de Yij variando j cuando i es D y de sumatoria
de Yij variando i cuando j es D a cero
b. Hay que eliminar la UD
c. . . .Hay que igualar las restricciones de sumatoria de Yij variando j cuando i es D y de suma-
toria de Yij variando j cuando i es D a YD
6. Semana 6 - Problema de distribución y asignación
6.1.
Si resolvemos el problema de distribución o transporte como si fuera de programación lineal
continua, las variables igualmente toman valor entero si. . .
a. . . .el problema tiene la misma cantidad de orígenes que de destinos
b. . . .el problema no tiene ni orígenes ni destinos ficticios.
c. . . . la suma de las ofertas de los orígenes es igual a la suma de las demandas de los destinos
6.2.
Si en un problema de distribución o transporte la oferta total de los 3 orígenes es de 200 unidades
y la demanda total de los 5 destinos es de 150 unidades, para resolverlo por programación lineal
continua es necesario. . .
a. . . .agregar dos destinos ficticios con demanda 25 cada uno
b. . . .agregar un destino ficticio con demanda 50
c. . . .agregar un origen ficticio con oferta 50
Segundo cuatrimestre 2020 300
Ejercicios resueltos TEÓRICO-PRÁCTICA
6.3.
Si tenemos un problema de asignación con 5 orígenes y 3 destinos, para poder resolverlo es
necesario. . .
a. . . .no es necesario agregar ningún origen ni ningún destino
b. . . .agregar un destino con disponibilidad 2
c. . . .agregar 2 destinos, cada uno con demanda 1
7. Semana 7 - Problemas de cobertura de conjuntos, packing y scheduling
7.1.
De las tres variantes del problema de cobertura de conjuntos ¿cuál es la más restrictiva (tanto
que es bastante común que dé incompatible)?
a. Cobertura con solapamiento
b. Particionamiento o partición de conjuntos
c. Packing
7.2.
Si en la variante Packing del problema de cobertura de conjuntos (la tercera que presentamos) el
objetivo fuera elegir los subconjuntos de manera de minimizar el valor del funcional, ¿cuánto
valdría la función objetivo en el óptimo?
a. a veces cero y a veces mayor que cero
b. Igual al del problema de cobertura con solapamiento
c. cero
7.3.
En el problema de scheduling o secuenciamientode tareas que presentamos, si hubiera más
máquinas (por ejemplo 4 en total), además de tener más variables para inicio de las tareas en
las otras máquinas (3 y 4), agregar las precedencias de las tareas en tareas 3 y 4 y relacionar la
variable FINAL con la finalización de las tareas en la máquina 4 (en vez de la máquina 2) . . .
a. . . .se modificaría el funcional
b. . . .se modificaría el grupo de restricciones para impedir que se haga más de una tarea al
mismo tiempo
c. . . .no habría que modificar más cosas del modelo
Segundo cuatrimestre 2020 301
Ejercicios resueltos TEÓRICO-PRÁCTICA
8. Semana 8 - Problema de la mochila, coloreo de grafos
8.1.
En el problema de la mochila si tenemos varios objetos de cada tipo y hay múltiples mochilas
¿qué significan las variables principales del problema?
a. Xij: variable entera que mide la cantidad de objetos de tipo i que van en la mochila j
b. Xij vale 1 si el objeto i va en la mochila j
c. Xj: variable entera que mide la cantidad de objetos que van en la mochila j
8.2.
En el caso anterior del problema de la mochila (si tenemos varios objetos de cada tipo y hay
múltiples mochilas) ¿cuántas restricciones de capacidad habrá?
a. Solamente una por cada mochila (<= capacidad de esa mochila)
b. Solamente una por cada tipo de objeto (<= cantidad de objetos de ese tipo)
c. Una por cada mochila (<= capacidad de esa mochila) y una por cada tipo de objeto (<=
cantidad de objetos de ese tipo)
8.3.
En el problema de coloreo de grafos ¿cómo podemos definir el problema de simetría en la solución
óptima?
a. Se presenta cuando hay varias soluciones óptimas que pintan los nodos con distinta cantidad
de colores
b. Se produce cuando tenemos varias soluciones óptimas que usan la misma cantidad de col-
ores pero pintan los nodos de distinta forma (cada una con al menos una diferencia de
color en algún nodo respecto de las otras)
9. Semana 9 - Método simplex
9.1.
Cuando en una restricción de mayor o igual de un problema de máximo se agrega una variable
artificial, ¿qué valor tiene el coeficiente en el funcional de esa variable?
a. Cero
b. Una constante de valor grande con signo negativo
c. Una constante de valor grande con signo positivo
Segundo cuatrimestre 2020 302
Ejercicios resueltos TEÓRICO-PRÁCTICA
9.2.
Cuando en una tabla óptima hay una variable artificial en la base eso implica que el problema. . .
a. . . . tiene solución no acotada
b. . . . tiene soluciones alternativas
c. . . .es incompatible
9.
Un problema de programación lineal de mínimo con coeficientes positivos en el funcional ¿puede
tener solución no acotada?
a. Verdadero
b. Falso
10. Semana 10 - Análisis de sensibilidad
10.1.
Los recursos con sobrante. . .
a. . . .siempre tienen valor marginal mayor que cero
b. . . .siempre tienen valor marginal cero
c. . . . a veces tienen valor marginal cero
10.
Si se propone aumentar el valor de un Cj y esa variación está dentro del rango de variación en el
cual se puede aumentar ese Cj. . .
a. . . .el valor de las variables reales en el óptimo no varía pero el valor de las slack sí puede variar
b. . . .el valor de las variables (reales y slack) en el óptimo no varía
c. . . .el valor del funcional no varía
10.3.
La curva de oferta de un producto. . .
a. . . . tiene tantos escalones como valores posibles (en los vértices) tiene la variable que representa
a ese producto.
b. . . .tiene tantos escalones como tablas se hayan calculado desde la primera tabla hasta la
óptima
Segundo cuatrimestre 2020 303
Ejercicios resueltos TEÓRICO-PRÁCTICA
11. Semana 11 - Planteo dual
11.
En el ejemplo de los helados están saturados el azúcar y el almidón. Vimos que consiguiendo
solamente azúcar el valor del funcional aumenta en 3 pesos por kilo de azúcar conseguido hasta
que. . .
a. . . .ya no se fabrican más unidades de X2 y no hay de dónde sacar almidón para fabricar X1
b. . . .empieza a sobrar almidón
c. . . .ya no se fabrican más unidades de X1 y no hay de dónde sacar azúcar para fabricar X2
11.2.
El problema dual de un problema de minimización. . .
a. . . .tiene un funcional de maximización
b. . . . tiene un funcional de minimización
c. . . .puede tener un funcional de maximización o de minimización
11.3.
Mientras la disponibilidad de un recurso con límite de <= (como el azúcar) aumente dentro del
rango. . .
a. . . .el valor del funcional no varía
b. . . . los valores marginales no varían
c. . . . las cantidad producidas de los productos no varían
11.4.
En el gráfico de valor marginal de un recurso con un límite superior de uso (como el azúcar):
a. cuando se dispone de más cantidad de ese recurso, el valor marginal en un momento baja
su valor
b. cuando se dispone de más cantidad de ese recurso, el valor marginal en un momento sube su
valor
c. el hecho de que el valor marginal suba o baje es independiente de que se consiga más de ese
recurso o no.
Segundo cuatrimestre 2020 304
Ejercicios resueltos TEÓRICO-PRÁCTICA
12. Semana 12 - Introducción de un nuevo producto o restricciones
12.1.
En un caso de variación simultánea, se sigue analizando el negocio de variación simultánea hasta
que. . .
a. . . .se llega a una tabla óptima en la cual el negocio ya no conviene
b. . . .el recurso que se entrega deja de sobrar
c. . . . la tabla que actualmente es la óptima deja de serlo
12.2.
La estimación del zj que se hace con el método del lucro cesante para analizar la introducción de
un nuevo producto. . . .
a. ..no tiene relación con el valor de Zj
b. Es mayor o igual que el verdadero Zj
c. . . .es menor o igual que el verdadero zj
12.3.
Cuando analizamos la incorporación de una nueva restricción dijimos que antes de ponernos a
hacer cálculos hay que pensar y reemplazamos los valores de las variables Xj en el óptimo en la
nueva restricción a ver si ésta se cumple con los valores de las Xj en el óptimo. Una vez hecha esta
prueba. . .
a. . . .si se cumple la restricción con los valores de Xj en el óptimo ya no seguimos analizando
b. . . . independientemente de si se cumple o no, hay que agregar la restricción en el modelo
c. . . .si NO se cumple la restricción con los valores de Xj en el óptimo ya no seguimos analizando
13. Semana 13 - Heurísticas
13.1. Cuestionario teórico-práctico
13.1.1.
Las heurísticas se utilizan para resolver problemas. . .
a. . . .de programación lineal entera y optimización combinatoria
b. . . .de programación lineal continua
Segundo cuatrimestre 2020 305
Ejercicios resueltos TEÓRICO-PRÁCTICA
13.1.2.
El hecho de que un algoritmo heurístico dé un buen resultado para un determinado problema. . .
a. . . .es independiente de los datos del problema
b. . . .depende de los datos que tiene un problema determinado
13.1.3.
En los problemas de Job-shop scheduling. . .
a. . . . la secuencia de las tareas es la misma para todas las tareas
b. . . . la secuencia de las tareas NO es la misma para todas las tareas
13.2. Autoevaluación
13.2.1.
El problema de secuenciamiento de una sola máquina con costo o tiempo de set-up para pasar
de una tarea a otra es un problema. . .
a. . . .de secuenciamiento de tareas
b. . . .del viajante
c. . . .de distribución
13.2.2.
Los algoritmos heurísticos que parten del problema sin resolver y permiten encontrar una solución
suficientemente buena (que no tiene garantía de ser la óptima) son las. . .
a. . . .heurísticas de construcción
b. . . .heurísticas de mejoramiento
c. . . .heurísticas combinadas
13.2.3.
El propósito de una función heurística es el de guiar el proceso de búsqueda en la dirección más
provechosa sugiriendo qué camino tomar cuando hay más de uno disponible.
a. Verdadero
b. Falso
14. Semana 14 - Heurísticas para el problema del viajante
14.1.
Segundo cuatrimestre 2020 306
Ejercicios resueltos TEÓRICO-PRÁCTICA
La cantidad de soluciones posibles para un problema del viajante es. . .
a. . . .n! (siendo n el número de ciudades a visitar)
b. (n + 1)! (siendo n el número de ciudades a visitar y se le agrega 1 por el origen)
c. n x (n - 1) (siendo n elnúmero de ciudades a visitar)
14.2.
En la heurística del vecino más cercano. . .
a. . . .cada paso de la iteración parte de la última ciudad visitada
b. . . .no necesariamente cada paso comienza en la ciudad donde terminó el anterior
c. . . .cada paso parte del origen del viajante
14.3.
En la heurística de inserción más cercana. . .
a. . . .se cierra el tour cuando ya se han visitado todas las ciudades
b. . . .no se cierra el tour
c. . . .se cierra el tour en cada paso
15. Semana 15 - Heurísticas para el problema del viajante
15.1.
Cuando se resuelve la relajación lineal (resolver el modelo como si todas las variables fueran
continuas) del problema de coloreo de grafos. . .
a. . . .siempre da que se necesitan 4 colores
b. . . .el resultado es que siempre se necesitan solamente dos colores para colorear
c. . . .da una cantidad de colores mayor que el coloreo óptimo
15.2.
Cuando se resuelve la relajación lineal (resolver el modelo como si todas las variables fueran
continuas) del problema de la mochila. . .
a. . . .el resultado no tiene relación con la mochila óptima
b. . . .el resultado obtenido sirve como cota de la resolución
c. . . .el resultado da siempre que todos los objetos entran en la mochila
Segundo cuatrimestre 2020 307
Ejercicios resueltos TEÓRICO-PRÁCTICA
15.3.
El elemento crítico de las heurísticas de la mochila. . .
a. . . .es el primer elemento que no entra en la mochila
b. . . .es el siguiente elemento después del primero que no entra
c. . . .es el último elemento que entra
16. Semana 16 - Complejidad
16.1
Se dice que un problema es de “clase P” respecto a su complejidad. . .
a. . . .cuando algunas instancias se pueden resolver en tiempo polinómico
b. . . .cuando existe un algoritmo de clase P que lo resuelve Correcto
c. . . .cuando se necesita una máquina de Turing NO determinística para resolverlo
16.2
La complejidad se puede definir como la relación. . .
a. . . .entre el tiempo que se tarda en resolver el problema y el tiempo promedio de resolución de
ese tipo de problemas
b. . . .entre la cantidad de instrucciones computadas y el tamaño de la instancia
c. . . .entre la cantidad de variables del problema y la cantidad de restricciones del mismo
16.3
Un problema B “NO es más fácil” que un problema A. . .
a. . . .si A es igual a B
b. . . .si A puede “convertirse” en B en un tiempo NO polinomial
c. . . .si A puede “convertirse” en B en tiempo polinomial
Segundo cuatrimestre 2020 308
1.1
1.2
1.3
1.6
2.1
2.2
2.3
2.5
2.7
2.10
2.16
2.17
2.23
2.33
3.3
3.4
3.6
3.7
3.9
3.13
3.16
3.20
3.34
4.2
4.8
4.10
4.12
5.1
5.6
5.7
6.1
6.2
6.12
6.16
7.2
Coloquio 2019-12-19
Coloquio 2020-09-07
Coloquio 2020-09-14
Coloquio 2020-09-21
Coloquio 2020-10-05
Coloquio 2021-03-22
Extra del 6.2
Parcial 2020-07-11
Parcial 2020-08-01
Parcial 2020-08-27
Teórico-práctica