b - U-Cursos

Anuncio
Análisis de Sensibilidad
Basado en Bertsimas, Tsitsiklis
“Introduction to Linear Optimization”
Chap. 5
IN3701 – Modelamiento y Optimización
Nelson Devia C.
Introducción
Consideremos el problema (P) en forma estándar y su dual (D):
( P ) Min c ' x
Ax = b
x≥0
( D ) Max y ' b
y ' A ≤ c'
Supongamos que tenemos la base óptima AB y la solución óptima
asociada x * .
Si alguno de los coeficientes de b ó c cambia:
¿Se mantiene la base óptima?
¿Cómo calcular la nueva solución óptima sin resolver el problema otra vez?
Como AB es la base óptima sabemos que cumple las condiciones de:
−1
Factibilidad: x B = AB b ≥ 0
Optimalidad: c ' N = c' N −c' B AB−1 AN ≥ 0'
Si al cambiar el problema se siguen cumpliendo ambas condiciones,
2
entonces la base se mantiene óptima.
Cambios en el Vector b
Supongamos que la i-ésima componente de b es aumentada
en
δ
Equivalentemente, b se reemplaza por b + δei
Nos interesa saber en qué rango se puede mover δ sin que
cambie la base óptima.
−1
Factibilidad: AB (b + δei ) ≥ 0
x B + δAB−1ei ≥ 0
−1
Sea g la i-ésima columna de AB :
Luego
3
δ
− (x B ) j

 ≥
gj


 ≤ − (x B ) j

gj

∀j / g j > 0
∀j / g j < 0
x B + δg ≥ 0
 − (x B ) j 
max 
≤ δ
{ j / g j >0} g j 


 − (x B ) j 
≤ min 
{ j / g j <0} g j 


Cambios en el Vector b
Optimalidad:
Al variar b, los costos reducidos no se ven afectados
c ' N = c' N −c' B AB−1 AN ≥ 0'
El nuevo costo óptimo está dado por:
c' B AB−1 (b + δei ) = y '* b + δy i
Donde y * es la solución óptima del problema dual (precio sombra)
Ejemplo:
Max 2 x1 + x 2
x2 ≤ 5
− x1 + x 2 ≤ −2
x1 , x 2 ≥ 0
4
Cambios en el Vector b
En forma estándar:
Min − 2 x1 − x 2
x 2 + x3 = 5
x1 − x 2 + x 4 = 2
x1 , x 2 , x3 , x 4 ≥ 0
La base óptima es:
x B = {x1 , x 2 }
0 1 
1 0
, AN = 
 y
.
con AB = 
{
}
x N = x3 , x 4
 1 − 1
0 1
Factibilidad:
1 1 

AB−1 = 
1 0 
1 1   5   7 
 ⋅   =   ≥ 0
AB−1b = 
1 0   2   5 
Optimalidad:
5
1 1   1 0 
 ⋅ 
 = (3 2) ≥ 0
c' N −c' B A AN = (0 0) − (− 2 − 1) ⋅ 
1
0
0
1

 

−1
B
Cambios en el Vector b
Si cambiamos b1:
Min − 2 x1 − x 2
x 2 + x3 = b1
x1 − x 2 + x 4 = 2
Factibilidad:
x1 , x 2 , x3 , x 4 ≥ 0
1 1   b1   b1 + 2 
 ≥ 0
 ⋅   = 
AB−1b = 
1 0   2   b1 
b1 ≥ −2
b1 ≥ 0
b1 ≥ 0
Es decir, para cualquier b1 positivo la base se mantiene óptima
6
b1 =-0,5 (infactible)
b1 =1 (base aún óptima)
b1 =7 (base aún óptima)
Cambios en el Vector b
Si cambiamos b2:
Min − 2 x1 − x 2
x 2 + x3 = 5
x1 − x 2 + x 4 = b2
Factibilidad:
x1 , x 2 , x3 , x 4 ≥ 0
1 1   5   5 + b2 
 ⋅   = 
 ≥ 0
A b = 
b
1
0
5

  2 

−1
B
b2 ≥ −5
Es decir, para cualquier b2 ≥ −5 la base se mantiene óptima
7
b2 =-6 (infactible)
b2 =-2 (base aún óptima)
b2 =5 (base aún óptima)
Cambios en el Vector c
Supongamos que la j-ésima componente de c es aumentada
en
δ
Nos interesa saber en qué rango se puede mover δ sin que
cambie la base óptima.
Factibilidad:
Al variar c, la región factible no cambia y no se afecta la
factibilidad:
Optimalidad:
AB−1b ≥ 0
c' N −c' B AB−1 AN ≥ 0
Si cj es el costo de una variable no básica, cB no cambia y se tiene
c' j +δ ≥ c' B AB−1 A j
la condición:
Equivalentemente, usando los costos reducidos:
8
δ ≥ −c' j
Cambios en el Vector c
Si c j es el costo de una variable básica y cambia a c j + δ
Equivalentemente los costos de las variables básicas ahora son:
c B + δek
Donde j = B(k ) (la k-ésima variable básica)
Se tiene que:
(c B + δek )' AB−1 AN
Luego:
≤ c' N
δ (AB−1 AN )k ≤ c ' N
Sea q la k-ésima fila de (AB−1 AN )
δ
9
(c N )i

≤

qi


 ≥ (c N )i

qi
qi > 0
qi < 0
 (c ) 
max  N i  ≤ δ
{i / q j <0} qi 
 (c ) 
≤ min  N i 
{i / q j >0} qi 
Cambios en el Vector c
Ejemplo:
Max 2 x1 + x 2
x2 ≤ 5
− x1 + x 2 ≤ −2
x1 , x 2 ≥ 0
En forma estándar:
Min − 2 x1 − x 2
x 2 + x3 = 5
x1 − x 2 + x 4 = 2
x1 , x 2 , x3 , x 4 ≥ 0
Al variar los coeficientes de la función objetivo se cambia su
pendiente…
10
Cambios en el Vector c
Si cambiamos c1:
Min c1 x1 − x 2
x 2 + x3 = 5
x1 − x 2 + x 4 = 2
x1 , x 2 , x3 , x 4 ≥ 0
Optimalidad:
c' N −c' B AB−1 AN = (0 0) − (c1
c1 ≤ 1
c1 ≤ 0
1 1   1 0 
 ⋅ 
 = (1 − c1
− 1) ⋅ 
1 0   0 1 
− c1 ) ≥ 0
c1 ≤ 0
Es decir, para cualquier c1 negativo la base se mantiene óptima
11
c1 =-200 (base aún óptima)
c1 =0 (base aún óptima)
c1 =2 (la base óptima cambió)
Cambios en el Vector c
Si cambiamos c2:
Min − 2 x1 + c 2 x 2
x 2 + x3 = 5
x1 − x 2 + x 4 = 2
Optimalidad:
x1 , x 2 , x3 , x 4 ≥ 0
1 1   1 0 
 ⋅ 
 = (2 − c 2
c' N −c' B AB−1 AN = (0 0) − (− 2 c 2 ) ⋅ 
1
0
0
1

 

2) ≥ 0
c2 ≤ 2
Es decir, para cualquier c 2 ≤ 2 la base se mantiene óptima
12
c2 =0 (base aún óptima)
c2 =2 (base aún óptima)
c2 =3 (la base óptima cambió)
Análisis de Sensibilidad
Basado en Bertsimas, Tsitsiklis
“Introduction to Linear Optimization”
Chap. 5
IN3701 – Modelamiento y Optimización
Nelson Devia C.
Descargar