Está en la página 1de 7

1 Pregunta 1 (100 puntos)

Considera el siguiente problema:

max 3𝑥1 + 5𝑥2 + 4𝑥3


(1)
s.a 2𝑥1 + 6𝑥2 + 3𝑥3 ≤ 8
(2)
5𝑥1 + 4𝑥2 + 4𝑥3 ≤ 8
(3)
6𝑥1 + 𝑥2 + 𝑥3 ≤ 12
(4)
𝑥1 , 𝑥2 , 𝑥3 ∈ 𝑍+
(5)

1. (75 puntos) Resuelve el problema por branch-and.bound. En cada nodo debes calcular las
penalizaciones y reforzar las cotas lo más posible. Explica el criterio de selección de variable de
ramificación utilizando en cada nodo, así como el criterio de selección de subproblema. Indica
claramente el criterio de eliminación utilizando cada vez que elimines un subproblema. ¿Cuál es el
valor óptimo del problema? ¿Cuál es una solución óptima del problema?.

2. (25 puntos) A partir de la solución óptima de la relajación lineal (LP) del problema, genera tantos
cortes fraccionales de Gomory como sean posibles. Expresa dichos cortes en términos de las
variables originales. Estudia la dominancia y resuelve nuevamente añadiendo aquellos cortes
convenientes. Indica cuál es la incumbente tras este proceso. ¿Has obtenido la solución óptima?.
SOLUCIÓN PROBLEMA 1:
Estandarizando:

max 3𝑥1 + 5𝑥2 + 4𝑥3


s.a 2𝑥1 + 6𝑥2 + 3𝑥3 + ℎ1 = 8

5𝑥1 + 4𝑥2 + 4𝑥3 + ℎ2 = 8


6𝑥1 + 𝑥2 + 𝑥3 + ℎ3 = 12

𝑥𝐵 = {ℎ1 , ℎ2 , ℎ3 }
𝑥𝑅 = {𝑥1 , 𝑥2 , 𝑥3 }
Iteración 0:

VB X1 X2 X3 h1 h2 h3 LD
h1 2 6 3 1 0 0 8 1,333333
h2 5 4 4 0 1 0 8 2
h3 6 1 1 0 0 1 12 12
(-Z) 3 5 4 0 0 0 0

𝑥𝐵 = {𝑥2 , ℎ2 , ℎ3 }
- Entra 𝑋2
8 8 12 8
- Sale 𝑀𝑖𝑛 { , , ̅ = ℎ1
} = = 1, 3 𝑥𝑅 = {𝑥1 , ℎ1 , 𝑥3 }
6 4 1 6

VB X1 X2 X3 h1 h2 h3 LD
X2 0,33333333 1 0,5 0,16666667 0 0 1,33333333 2,666667
h2 3,66666667 0 2 -0,66666667 1 0 2,66666667 1,333333
h3 5,66666667 0 0,5 -0,16666667 0 1 10,6666667 21,33333
(-Z) 1,33333333 0 1,5 -0,83333333 0 0 -6,66666667

- Entra 𝑋3 𝑥𝐵 = {𝑥2 , 𝑥3 , ℎ3 }
1.3333 2,6667 10,6667
- Sale 𝑀𝑖𝑛 { , , ̅ = ℎ2
} = 1, 3
0,5 2 0,5 𝑥𝑅 = {𝑥1 , ℎ1 , ℎ2 }

VB X1 X2 X3 h1 h2 h3 LD
X2 -0,58333333 1 0 0,33333333 -0,25 0 0,66666667
X3 1,83333333 0 1 -0,33333333 0,5 0 1,33333333
h3 4,75 0 0 0 -0,25 1 10
(-Z) -1,41666667 0 0 -0,33333333 -0,75 0 -8,66666667

∴ El valor óptimo inicial de 𝑥 ∗ = (0; 0.6667; 1.3333) con un valor inicial de Z=8,6667
Entonces la solución está dada por

𝑥𝐵 = {𝑥2 , 𝑥3 , ℎ3 }
𝑥𝑅 = {𝑥1 , ℎ1 , ℎ2 }
6 3 0 2 1 0 8
𝐵 = (4 4 0) 𝑅 = (5 0 1) 𝑏=(8)
1 1 1 6 0 0 12

𝐶𝐵 = (5 4 0) 𝐶𝑅 = (3 0 0)

−0,58333 0,3333 −0,25 0,6667


𝐵 −1 × 𝑅 = ( 1,83333 −0,3333 0,5 ) 𝐵 −1 × 𝑏 = (1,3333 )
4,75 0 −0,25 10

𝐶𝑅 − 𝐶𝐵 × 𝐵−1 × 𝑅 = (−1,416667 −0,3333 −0,75)

Realizando el método de las penalizaciones para el nodo Po

𝑥1 = 0
𝑥2 = 0,666666667 Valores de variables en el nodo Po
𝑥3 = 1,333333333
Para el nodo Po, calculamos
𝐷2 = 𝑚𝑖𝑛 {(0,66667 − 0) ×
−1,416667
, . , . } = 1,61904 los 𝐷𝑖 , los 𝑢𝑖 , los 𝑃̂ y los 𝑃 ∗ .
−0,583333
Posteriormente calculamos el
−0,3333
𝐷3 = 𝑚𝑖𝑛 {. , (1,33333 − 1) × −0,3333 , . } = 0,33333 nuevo Z´

−0,33333 −0,75
𝑢2 = 𝑚𝑖𝑛 {. , (0,66667 − 1) × = 0,0606 , (0,66667 − 1) × = 0,05263} = 0,05263
1,83333 4,75

−1,4166667
𝑢3 = 𝑚𝑖𝑛 {(1.33333 − 2) × 0,333333
, . , . } = 2,83333

𝑃2 = 𝑚𝑖𝑛{𝐷2 , 𝑢2 } = 0,05263
𝑃3 = 𝑚𝑖𝑛{𝐷3 , 𝑢3 } = 0,33333

𝑃̂ = 𝑚𝑖𝑛(−1.416667, −0.333, −0.75) = −1,41667

𝑃 ∗ = 𝑚𝑎𝑥{𝑃2 , 𝑃3 , 𝑃̂ } = 0,33333

𝑍´ = 8,333333
max(𝐷2 , 𝑢2 ) = 𝐷2 = 1,61904
2

max(𝐷3 , 𝑢3 ) = 𝑢3 = 2,83333 → 𝑥3 ≤ ⌊2.8⌋ = 2


3
Por lo tanto, como max(𝐷2 , 𝑢2 ) es menor que max(𝐷3 , 𝑢3 ), elegimos a la variable 𝑥3 para que sea
2 3
ramificada. Y además, el valor de max(𝐷3 , 𝑢3 ) es 𝑢3 , por lo que se ramifica con un ≤ a la cota inferior. Por
3
lo tanto nos que 𝑥3 ≤ 2. Por lo que la incumbente encerrada 𝑍´ = ⌊8,6667 − 0,3333⌋ = ⌊8,3333⌋ = 8

Ahora realizando el mismo calculo para el nodo 𝑃1


𝑥1 = 0
𝑥2 = 0,666667 Valores de variables en el nodo 𝑃1
𝑥3 = 2

Para el nodo 𝑃1 , calculamos


𝐷2 = 2 los 𝐷𝑖 , los 𝑢𝑖 , los 𝑃̂ y los 𝑃 ∗ .
𝑃2 = 0,052631 Posteriormente calculamos el
nuevo Z´
𝑢2 = 0,052631

𝑃̂ = −1,416667
𝑃 ∗ = 0,052631
𝑍´ = 8 ,280701
max(𝐷2 , 𝑢2 ) = 1
2

Como tan solo tenemos un max(𝐷2 , 𝑢2 ), ramificaremos la variable 𝑥2 . Y como el valor de max(𝐷2 , 𝑢2 ) es
2 2
igual a 𝐷2 , realizaremos el proceso con un ≤ 0. Por lo tanto, nos queda como 𝑥3 ≤ 0
Ahora realizando el diagrama de Branch-and-Bound

𝑷𝟎
𝑋 ∗ = (0 ; 0.6667 ; 1.3333)

𝑍 ∗ = 8.6667

𝑥3 ≤ 2

𝑷𝟏
𝑋 ∗ = (0 ; 0.6667 ; 2)
𝑍 ∗ = 11.33333

𝑥2 ≥ 0

𝑷𝟐
Se poda esta rama, debido a
𝑋 ∗ = (0 ; 0 ; 2) que nos encontramos en
una situación de integridad.
𝑍∗ = 8

Por lo tanto, podemos ver que el vector final será de 𝑋 = (0 ; 0 ; 2). Con un valor final de 𝑍 = 8
SOLUCIÓN PROBLEMA 2:
Recapitulando la información que obtuvimos de la relajación Lineal

𝑥𝐵 = {𝑥2 , 𝑥3 , ℎ3 }
𝑥𝑅 = {𝑥1 , ℎ1 , ℎ2 }
6 3 0 2 1 0 8
𝐵 = (4 4 0) 𝑅 = (5 0 1) 𝑏=(8)
1 1 1 6 0 0 12

𝐶𝐵 = (5 4 0) 𝐶𝑅 = (3 0 0)

−0,58333 0,3333 −0,25 0,6667


𝐵 −1
× 𝑅 = ( 1,83333 −0,3333 0,5 ) 𝐵 −1 × 𝑏 = (1,3333 )
4,75 0 −0,25 10

𝑥 ∗ = (0, 0.6667, 0.1333)

Ahora, calculando los cortes Fraccionales de Gomory para este problema

(−0,58333 − ⌊−0,58333⌋)𝑥1 + (0,3333 − ⌊0,3333⌋)ℎ1 + (−0,25 − ⌊−0,25⌋)ℎ2 ≥ 0,6667 − ⌊0,6667⌋ (1)


(1,83333 − ⌊1,83333⌋)𝑥1 + (0,3333 − ⌊−0,3333⌋)ℎ1 + (−0,5 − ⌊−0,5⌋)ℎ2 ≥ 1,3333 − ⌊1,3333⌋ (2)
(4,75 − ⌊4,75⌋)𝑥1 + (−0,25 − ⌊−0,25⌋)ℎ2 ≥ 10 − ⌊10⌋ (3)

Resolviendo y simplificando

0,416667𝑥1 + 0,3333ℎ1 + 0,75ℎ2 ≥ 0,66667 (1)

0,83333𝑥1 + 0,66667ℎ1 + 0,5ℎ2 ≥ 0,3333 (2)

0,75𝑥1 + 0,75ℎ2 ≥ 0 (3)

Luego, como ℎ1 = 8 − 2𝑥1 − 6𝑥2 − 3𝑥3


ℎ2 = 8 − 5𝑥1 − 4𝑥2 − 4𝑥3

ℎ3 = 12 − 6𝑥1 − 𝑥2 − 𝑥3

Reemplazando en los cortes de Gomory, los valores de ℎ1 y ℎ2 . Y posteriormente, agrupando los términos
4𝑥1 + 5𝑥2 + 4𝑥3 ≤ 8 (1)

3𝑥1 + 6𝑥2 + 4𝑥3 ≤ 9 (2)

3𝑥1 + 3𝑥2 + 3𝑥3 ≤ 6 (3)

Entonces, la dominancia está dada por


5 8
(1) Domina a (2)? (4,5,4) > 𝜆(3,6,4) ∧ 8 ≤ 𝜆9 ( > 𝜆) ⋂ ( ≤ 𝜆) = 𝜙
6 9
NO

3 9
(2) Domina a (1)? (3,6,4) > 𝜆(4,5,4) ∧ 9 ≤ 𝜆8 ( > 𝜆) ⋂ ( ≤ 𝜆) = 𝜙
4 8
NO

4 8
(1) Domina a (3)? (4,5,4) > 𝜆(3,3,3) ∧ 8 ≤ 𝜆6 ( > 𝜆) ⋂ ( ≤ 𝜆) = 𝜙
3 6
NO

3 6
(3) Domina a (1)? (3,3,3) > 𝜆(4,5,4) ∧ 6 ≤ 𝜆8 ( > 𝜆) ⋂ ( ≤ 𝜆) = 𝜙
5 8
NO

3 6
(3) Domina a (2)? (3,3,3) > 𝜆(3,6,4) ∧ 6 ≤ 𝜆9 ( > 𝜆) ⋂ ( ≤ 𝜆) = 𝜙 NO
6 9

También podría gustarte