Modelos de Optimizacion Act 11 y 12
Modelos de Optimizacion Act 11 y 12
Modelos de Optimizacion Act 11 y 12
Actividad 11 y 12
MAESTRO: RICARDO CHAVERO RODRIGUEZ
Edson Anuar Gracia Orona
PROGRAMACION ENTERA
MIN Z=x1+3x2-2x3
S/A
4X1+8X2+6X3=25
7X1+5X2+9X3=30
X1,X2,X3≥0
Inicialización (iteración 1)
95 15 115
o Se resuelve el problema LP relajado Z = − 42 (X1,X2,X3) = (0,14, )
42
Iteración 2
o Se ramifica con la tercera variable que debiera ser entera y no lo es, X3.
4 31 43
o Rama 1: X3 ≤ 2 Z = 9 (X1,X2,X3) = (36,36, 2)
o Rama 2: X3 ≥ 3 No es factible, se poda la rama
Iteración 2
o Se ramifica con la primera variable en nodo 1 que debiera ser entera y no lo es, X1.
37 17 79
o Rama 4: X3 ≤ 2 Z = 42 (X1,X2,X3) = (1,14,42 )
• X1 ≥ 1
Iteración 2
o Se ramifica con la tercera variable en nodo 4 que debiera ser entera y no lo es, X3.
37 73 49
o Rama 5: X3 ≤ 2 Z = 9 (X1,X2,X3) = (36,36,1)
X1 ≥ 1
X3 ≤ 1
X1 ≥ 1
X3 ≥ 2
Iteración 2
o Se ramifica con la primera variable en nodo 5 que debiera ser entera y no lo es, X1.
X1 ≥ 1
X3 ≤ 1
X1 ≤ 2
43 31
o Rama 8: X3 ≤ 2 Z= (X1,X2,X3) = (3,2,6 )
6
X1 ≥ 1
X3 ≤ 1
X1 ≥ 3
Iteración 2
o Se ramifica con la tercera variable en nodo 8 que debiera ser entera y no lo es, X3.
70 115 55
o Rama 9: X3 ≤ 2 Z= (X1,X2,X3) = ( 36 ,36,0)
9
X1 ≥ 1
X3 ≤ 1
X1 ≥ 3
X3 ≤ 0
X1 ≥ 1
X3 ≤ 1
X1 ≥ 3
X3 ≥ 1
Iteración 2
o Se ramifica con la primera variable en nodo 9 que debiera ser entera y no lo es, X1.
o Rama 11: X3 ≤ 2 No es factible, se poda la rama.
X1 ≥ 1
X3 ≤ 1
X1 ≥ 3
X3 ≤ 0
X1 ≤ 1
X1 ≥ 1
X3 ≤ 1
X1 ≥ 3
X3 ≤ 0
X1 ≥ 2
3.Criterio de optimalidad.
x 1, x 2, x 3 ≥ 0
SUBPROBLEMA 4
Z = x 1+3x 2-2x 3
SUBPROBLEMA 3
S/A.
Z = x 1+3x 2-2x 3 4x 1+8x 2+6x 3 = 25
S/A. 7x 1+5x 2+9x 3 = 30
4x 1+8x 2+6x 3 = 25 X3≤2
7x 1+5x 2+9x 3 = 30 X1≥1
X3≤2 x 1, x 2, x 3 ≥ 0
X1≤0
SUBPROBLEMA 5
x 1, x 2, x 3 ≥ 0
Z = x 1+3x 2-2x 3
S/A.
4x 1+8x 2+6x 3 = 25
7x 1+5x 2+9x 3 = 30
X3≤2
X1≥1
X3≤1
x 1, x 2, x 3 ≥ 0
SUBPROBLEMA 6
Z = x 1+3x 2-2x 3
S/A.
4x 1+8x 2+6x 3 = 25
7x 1+5x 2+9x 3 = 30
X3≤2
X1≥1
X3≥2
x 1, x 2, x 3 ≥ 0
SUBPROBLEMA 7 SUBPROBLEMA 8
Z = x 1+3x 2-2x 3 Z = x 1+3x 2-2x 3
S/A. S/A.
4x 1+8x 2+6x 3 = 25 4x 1+8x 2+6x 3 = 25
7x 1+5x 2+9x 3 = 30 7x 1+5x 2+9x 3 = 30
X3≤2 X3≤2
X1≥1 X1≥1
X3≤1 X3≤1
X1≤2 X1≥3
x 1, x 2, x 3 ≥ 0 x 1, x 2, x 3 ≥ 0
SUBPROBLEMA 9
Z = x 1+3x 2-2x 3 SUBPROBLEMA 10
S/A.
Z = x 1+3x 2-2x 3
4x 1+8x 2+6x 3 = 25
S/A.
7x 1+5x 2+9x 3 = 30
4x 1+8x 2+6x 3 = 25
X3≤2
7x 1+5x 2+9x 3 = 30
X1≥1
X3≤2
X3≤1
X1≥1
X1≥3
X3≤1
X3≤0
X1≥3
x 1, x 2, x 3 ≥ 0
X3≥1
x 1, x 2, x 3 ≥ 0
SUBPROBLEMA 11 SUBPROBLEMA 12
Z = x 1 +3x 2 -2x 3 Z = x 1 +3x 2 -2x 3
S/A. S/A.
X3≤2
X3≤2
X1≥1
X1≥1
X3≤1
X3≤1
X1≥3
X1≥3
X3≤0
X3≤0
X2≤1
X2≤1
x 1, x 2, x 3 ≥ 0
x1, x2, x3 ≥ 0
1.¿Que es la programación por metas?
La Programación por metas (abreviada PM) apareció originalmente en un artículo de Charnes, Cooper y Ferguson en
1955 (Romero, 2002). Como se explicó anteriormente, se utiliza cuando existen varios objetivos o metas y se desea una
solución satisfactoria y suficiente (satisfaciente).
fi(x) + ni – pi = ti
En la expresión anterior fi(x) representa la expresión matemática de la meta, a la que se le añaden dos variables de
desviación (ni y pi). La primera, ni, representa un valor faltante para llegar a la meta. La segunda variable de desviación
pi, representa un valor excedente por sobre la meta.
Por ejemplo, suponga que una empresa tiene dos productos: el primero le deja 3 pesos de ganancia y el segundo le
produce solo 1 peso. Se desea obtener 50 pesos de ganancia. La meta estaría representada por
3x1 + x2 + n – p = 50
Tal vez alguien en la empresa sugiere que deberían producir 10 productos x1 y 15 productos x2. Eso implicaría:
3(10) + 1(15) + n – p = 50
30+15 + n – p = 50
45 + n – p = 50
Se necesita que n valga 5 para alcanzar la meta. En otras palabras el beneficio quedó 5 pesos abajo de lo esperado
porque se obtuvo un faltante.
Ahora piense que otra persona en la empresa sugiere que se fabriquen 15 productos de cada tipo. La meta estaría
representada por:
3(15) + 1(15) + n – p = 50
60 +n – p = 50
50 + n – p = 50
2. Que el impuesto para alimentos y medicinas no exceda el 10% del total de impuestos
x4 <= 2
Esperamos que esta explicación y este ejemplo te hayan permitido entender un poco más la programación por metas.
El algoritmo genera en forma recursiva cotas (o restricciones adicionales) que favorecen la obtención de valores enteros
para las variables de decisión. En este contexto resolver el modelo lineal asociado a un modelo de Programación Entera
se conoce frecuentemente como resolver la relajación continua del modelo entero .
5.Analizar un ejemplo de ramificación y acotamiento
Consideremos el siguiente modelo de Programación Entera el cual resolveremos con el algoritmo de Branch and
Bound:
1.
El paso inicial consiste en resolver este problema como si fuese un modelo de Programación Lineal (relajación
continua). Si la solución de dicho problema llegara a respetar las condiciones de integralidad para las variables de
decisión, ésta ya sería la solución óptima del problema entero.
Si bien este procedimiento se puede extender a problemas de mayor dimensión, utilizamos un modelo en 2 variables
para poder representar los pasos del algoritmo gráficamente. El gráfico a continuación muestra dicha resolución:
2.
La solución óptima del problema lineal asociado (que llamaremos P0) es X1=2,8 y X2=1,6 con valor óptimo V(P0)=20,8.
Claramente esta solución no cumple las condiciones de integralidad para las variables de decisión por tanto es necesario
generar cotas o restricciones adicionales de modo de poder obtener soluciones enteras. Para ello debemos seleccionar
una de las 2 variables de decisión con valores fraccionarios para poder generar cotas. En estricto rigor es indistinto cuál
de ellas seleccionemos debido a que el método nos debe llevar a conclusiones similares (aun cuando la cantidad de
pasos requeridos o rapidez de convergencia cambie).
En nuestro ejemplo generaremos cotas adicionales para la variable X1 aproximando su valor actual al entero inferior más
cercano (P1) y entero superior más cercano (P2).
La resolución gráfica del problema 1 (P1) nos da como solución óptima X1=2 y X2=2 que es una solución entera. El valor
óptimo del problema 1 es V(P1)=20. Notar que V(P1)<V(P0) lo cual es natural dado que el dominio de soluciones
factibles del P1 es menor (subconjunto) al dominio de soluciones factibles de P0.
Análogamente la resolución gráfica (Método Gráfico) del problema 2 (P2) determina
que X1=3 y X2=4/3 con V(P2)=20 según se observa a continuación:
Luego no sería del todo necesario seguir desarrollando el algoritmo dado que si generamos cotas para la variable X2
del P2 en ningún caso podríamos obtener una solución entera con valor óptimo superior a 20 (valor que reporta en la
función objetivo la actual solución entera de P1) y por tanto podríamos concluir que X1=2 y X2=2 es la solución óptima
del problema entero. No obstante el siguiente diagrama muestra los pasos adicionales en caso que quisiera agregar
cotas adicionales a partir del P2.
Un argumento similar al expuesto previamente en este caso explicaría la no necesidad de seguir ramificando el P21. Se
propone al lector verificar que se obtiene la misma solución óptima si luego del P0 ramificamos a través de X2 agregando
las restricciones X2<=1 y X2>=2.