Buenos días
Hice el planteo de este ejercicio y al correr el programa obtengo como resultado que el beneficio es -1000 que se debe al costo por producir menos de 20 unidades del producto 5 y que además lo óptimo es producir 0 unidades de los 7 productos. Me llama mucho la atención el resultado, quería saber si a alguno le había dado lo mismo o es que tengo un error en el modelo que dejo a continuación:
MAX Z) G - CO - 2000I7 - 1000I520 - 3000I
! Ni: "Cantidad de unidades fabricadas del producto i"
! Ii se prende si Ni > 0
! I se prende si se producen más de 4 tipos diferentes de productos
! I520 se prende si se producen menos de 20 unidades del ítem 5
! N22: "Cantidad de unidades fabricadas del producto 2 que tardan 2HH"
! N23: "Cantidad de unidades fabricadas del producto 2 que tardan 3HH"
! HH: "Cantidad de horas hombre requeridas para la producción semanal"
! MO: "Cantidad de kilogramos de materia prima requeridas para la producción semanal"
ST
!No se pueden vender más de 100 unidades del producto 1 ni 50 del producto 5
N1 < 100
N5 < 50
! Si se fabrican más de 4 productos diferentes en la semana, entonces se incurre en un costo fijo de $3000
N1 - 1000I1 < 0
N2 - 1000I2 < 0
N3 - 1000I3 < 0
N4 - 1000I4 < 0
N5 - 1000I5 < 0
N6 - 1000I6 < 0
N7 - 1000I7 < 0
I1 + I2 + I3 + I4 + I5 + I6 + I7 - IT = 0
IT - 1000I < 4
!Si se producen menos de 20 unidades del ítem 5, entonces se incurre en un costo fijo de $1000
N5 + 1000I520 > 20
! Cualquier unidad del producto 2 que se fabrique por encima de 100 unidades requiere un tiempo de producción de 3 HH en lugar de 2
N22 + N23 - N2 = 0
N22 < 100
! Si se fabrican los productos 3 y 4 (ambos), se necesitan 75 HH para la preparación de la línea de producción
N1 + 2N22 + 3N23 + 3.7N3 + 2.4N4 + 4.5N5 + 0.7N6 + 9.5N7 - HH = 0
I3 + I4 - I34 < 1
HH + 75I34 < 720
! Disponibilidad MP
2N1 + 3N2 + 5N3 + 3N4 + 10N5 + 3N6 + 20N7 - MP = 0
MP < 1000
! Costo operativo
25HH + 2.4MP - CO = 0
!Ingreso por ventas
10N1 + 22N2 + 35N3 + 19N4 + 55N5 + 3N6 + 115N7 - G = 0
END
GIN N1
GIN N2
GIN N3
GIN N4
GIN N5
GIN N6
GIN N7
GIN IT
INT I1
INT I2
INT I3
INT I4
INT I5
INT I6
INT I7
INT I
INT I520
INT I34
Te dejo mi código el funcional me dio 2750
MAX 10X1 + 22X2 + 35X3 + 19X4 + 55X5 + 3X6 + 115X7 - 2000I7 - 1000I521 - 3000I - 2.4CMP - 2.5CHH
ST
X1 - 100I1 < 0
X2 - 10000I2 < 0
X3 - 10000I3 < 0
X4 - 10000I4 < 0
X5 - 50I5 < 0
X6 - 10000I6 < 0
X7 - 10000I7 < 0
!si x2 es mayor a 100, activo I21
X2-100000I21<100
X21 + 100000I21 < 100000 + 100
X21 - 100I21 > 0
!SI I21 se activo, x21 tiene que ser 100
!si x2 es menor igual a 100, activo I22
X2 + 101I22 > 101
X22 + 100000I22 < 100000
!si I22 se acrivo x22 tiene que ser menor igual a 0
-X2 + X21 + X22 = 0
I21+I22<1
I3 + I4 - 2I34 > 0
X5 + 20I521 > 20
!I521 prende solo si X5 es menor a 20
I1 + I2 + I3 + I4 + I5 + I6 + I7 - 3I < 4
1X1 + 3.7X3 + 2.4X4 + 4.5X5 + 0.7X6 + 9.5X7 + 2X21 + 3X22 - CHH = 0
2X1 + 3X2 + 5X3 + 3X4 + 10X5 + 3X6 + 20X7 - CMP = 0
CHH + 75I34 < 720
CMP < 1000
END
GIN X1
GIN X2
GIN X3
GIN X4
GIN X5
GIN X6
GIN X7
GIN X22
GIN X21
INT I1
INT I2
INT I3
INT I4
INT I5
INT I6
INT I7
INT I521
INT I
INT I34
INT I21
INT I22
Esta restricción me hace ruido:
I3 + I4 - 2I34 > 0
Vos querés que I34=1 cuando se produce 3 y 4 al mismo tiempo, o sea I3=1 e I4 = 1.
Si I3=0 e I4=0: 0 - 2I34 > 0 entonces I34=0
Si I3=1 e I4=0: 1 - 2I34 > 0 entonces I34=0
Si I3=0 e I4=1: 1 - 2I34 > 0 entonces I34=0
Si I3=1 y I4=1: 2 - 2I34 > 0 entonces I34=0 y en realidad debería ser 1
En este caso yo escribí
I3 + I4 - I34 < 1
De manera que si:
Si I3=0 e I4=0: 0 - I34 < 1 entonces I34=0
Si I3=1 e I4=0: 1 - I34 < 1 entonces I34=0
Si I3=0 e I4=1: 1 - I34 < 1 entonces I34=0
Si I3=1 y I4=1: 2 - I34 < 1 entonces I34=1
De todas maneras no te cambia el resultado porque no se producen 3 y 4 al mismo tiempo en tu solución óptima
Claro en realidad me falto agregar esto I3 + I4 - I34 < 1 , porque creoque no es es el caso pero si dejas solo eso y estuvieses minimizando I34 se activaria siempre por estar en el funcional independientemente de que I3 e I4 = 0. En cambio si agregas esto ademas I3 + I4 - 2I34 > 0 te aseguras que solo prenda cuando ambas son 1