Análisis de Sensibilidad

Anuncio
Pontificia Universidad Católica
Escuela de Ingeniería
Departamento de Ingeniería Industrial y de Sistemas
Clase 22 • Análisis de Sensibilidad de los
Resultados
ICS 1102 • Optimización
Profesor : Claudio Seebach
20 de octubre de 2006
Apuntes de Clases • Optimización • Claudio Seebach
Programación Lineal • 105
Análisis de Sensibilidad de los Resultados
• El supuesto fundamental de los modelos de LP es que uno conoce en
forma exacta los distintos parámetros del problema
• En general, al modelar no se conocen los valores que pueden adoptar
los parámetros
• Muchas veces los paraḿetros no son determinı́sticos, sino que estocásticos
• Dado esto, es importante poder saber cuan robustas son nuestras soluciones frente a:
– Variaciones en los costos ci
– Variaciones en los niveles de los recursos bj
Apuntes de Clases • Optimización • Claudio Seebach
Programación Lineal • 106
Sensibilidad a variaciones en los costos
• ¿como varı́a la solución óptima de un problema de LP si varı́an los
costos de la función objetivo ?
1. Modificar la función objetivo no cambia el dominio del problema.
2. Una función objetivo diferente sólo puede modificar el vértice óptimo.
• Identifiquemos el rango de las perturbaciones en uno de los coeficientes
de la función objetivo de modo de no alterar la solución óptima alcanzada:
• El vector de costos de la función objetivo se puede dividir entre:
c!B xB + c!D xD
– c!B : Costos asociados a las variables básicas
– c!D : Costos asociados a las variables no básicas
• A medida que la base cambia en búsqueda de una base óptima, los
costos reducidos rD también cambian.
Apuntes de Clases • Optimización • Claudio Seebach
Programación Lineal • 107
Variaciones de los costos de variables No Básicas
• Para poder mantener la optimalidad de la solución óptima, los costos
reducidos deben permanecer positivos o nulos.
• Es decir:
• Por lo tanto:
rD = c!D − z! ≥ 0 donde z! = c!B B−1D.
rk = ck − zk ≥ 0, ∀k no básico.
• Si el costo cj asociado a la variable no básica xj varı́a en ∆cj para
que esta variable siga siendo no básica debe cumplirse que su respectivo
costo reducido siga siendo no negativo:
cj + ∆cj − zj ≥ 0 → rj + ∆cj ≥ 0
• Por lo tanto, el rango de esta variación ∆cj es:
−rj ≤ ∆cj ≤ ∞
Apuntes de Clases • Optimización • Claudio Seebach
Programación Lineal • 108
Variaciones de los costos de Variables Básicas
• El análisis respecto a variaciones de los costos asociados a variables
básicas es más complejo que en las no básicas:
– Una perturbación en algún elemento cj de cB , altera todos los componentes del vector z! = c!B B−1D.
• Si ante esta perturbación los costos reducidos no básicos siguen siendo
no negativos la base óptima permanece inalterada.
• Los costos reducidos básicos seguirán siendo nulos por construcción !
• Basta que uno de los costos reducidos no básicos se torne negativo para
que la base (y por tanto la solución) óptima cambie.
• Si definimos:
zk =
!
ciαik
i∈B
donde αik es el producto de la fila i de la matriz B−1, la inversa de la
base, con la columna k de la matriz D, es decir:
αik = B−1
fila i Dcolumna k
Apuntes de Clases • Optimización • Claudio Seebach
Programación Lineal • 109
Variaciones de los costos de Variables Básicas
• Si modificamos el costo cj en ∆cj , los costos reducidos r̂k de todas la
variables no básicas serán:
r̂k = ck − z!
k
= (ck −
ciαik ) − ∆cj αjk
i∈B
= rk − ∆cj αjk ≥ 0, ∀k ∈ D (i.e. no básico)
• En la medida que rk ≥ ∆cj αjk para todos los costos reducidos, la base
óptima no cambia.
• Dado que los αjk pueden ser positivos, negativos o nulos, deberá cumplirse
que:
rk
Si αjk > 0 ⇒ ∆cj ≤
αjk
rk
Si αjk < 0 ⇒ ∆cj ≥
αjk
Si αjk = 0 ⇒ ∆cj puede tomar cualquier valor
Apuntes de Clases • Optimización • Claudio Seebach
Programación Lineal • 110
Variaciones de los costos de variables Básicas
• El análisis anterior es para un k dado, pero para que no cambie la base
óptima se debe cumplir rk ≥ 0 ∀ k
• Por lo tanto el rango de la variación ∆cj que mantiene la base óptima
inalterada será:
" #
" #
rk
rk
max
≤ ∆cj ≤ min
.
∀k:αjk >0 αjk
∀k:αjk <0 αjk
• En este caso el valor óptimo cambia en ∆cj xj .
Apuntes de Clases • Optimización • Claudio Seebach
Programación Lineal • 111
Variaciones de los costos de la función objetivo
• ¿Qué ocurre si ∆cj llega a un lı́mite? ¿Cuál es la nueva base?
• En ambos casos de perturbaciones en el coeficiente cj de la función
objetivo de una variable xj ya sea básica o no básica, si ∆cj llega a
uno de los bordes de los intervalos, el costo reducido de (al menos) una
variable no básica se vuelve nulo.
• En ese caso la solución óptima no serı́a única pues de incorporar la
variable de costo reducido nulo a la base se obtendrı́a una nueva solución
básica con idéntico valor en la función objetivo.
i) si cj está asociada a una variable no-básica, entonces en la solución
óptima alternativa esta variable pasará a ser básica.
ii) si cj está asociada a una variable básica, entonces en la solución
óptima alternativa la variable de ı́ndice k que establece el lı́mite
entrará a la base, y dejará la base la variable de ı́ndice i tal que:
" #
xi
.
min
i tal que αik >0 αik
Apuntes de Clases • Optimización • Claudio Seebach
Programación Lineal • 112
Variaciones de los costos de variables Básicas
x2
• En ambos casos la solución óptima alternativa corresponderá a un vértice
adyacente al vértice asociado a la solución óptima original:
xB={x1,x2}
xD={x3,x4}
xB={x3,x2}
xD={x1,x4}
4
2
3
1
x1
Apuntes de Clases • Optimización • Claudio Seebach
Programación Lineal • 113
Ejemplo Variación Costos
• En el ejemplo de las planchas de aluminio:
¿cuánto podrı́a variar el beneficio c1 de las planchas tipo 1 sin que
cambie la polı́tica de producción ?
• El tableau inicial era:
x1
x2 x3 x4 x5
v.b.
15
5 1 0 0 600 x3
7
14 0 1 0 630 x4
0, 3 0, 3 0 0 1 15 x5
−800 −600 0 0 0 0
• Y el tableau final era:
x1 x2 x3 x4
1
1 0 10
0
7
0 0 10 1
0 1 −1
0
10
0 0 20 0
Apuntes de Clases • Optimización • Claudio Seebach
x5
−5
3
−175
3
v.b.
35 x1
175 x4
5
15 x2
5000
37000
3
Programación Lineal • 114
Ejemplo Variación Costos
• Como podemos ver:
 1


15 0 5
10 0
−1
7



7 1 14
1
B=
, B = 10
−1
0, 3 0 0, 3
10 0
−5
3
−175
3
5


1 0
y D=0 0
0 1


• Como c1 está asociado a una variable básica, entonces su rango de
variación está determinado por:
" #
" #
rk
rk
max
≤ ∆cj ≤ min
.
∀k:αjk <0 αjk
∀k:αjk >0 αjk
• Aquı́ tenemos k = 3 y k = 5, son las variables no-básicas. Tenemos que
calcular los α1k , es decir, α13 y α15.
 
+ 1
* 1
1
−5  
0 =
> 0,
α13 = 10 0 3
10
0
 
+ 0
* 1
−5
−5  
0
0
=
< 0.
α15 = 10
3
3
1
Apuntes de Clases • Optimización • Claudio Seebach
Programación Lineal • 115
Ejemplo Variación Costos
• Además sabemos que r3 = 20 y r5 =
$
%
max
α1k <0
5000
3
−5
3
5000
3 .
Ası́,
$
≤ ∆c1 ≤ min
α1k >0
20
1
10
%
,
por lo tanto, −1000 ≤ ∆c1 ≤ 200 para que no cambie la base óptima.
Apuntes de Clases • Optimización • Claudio Seebach
Programación Lineal • 116
Interpretación Gráfica Variación Costos
Tipo 2
• Si ∆c1 = −1000 ⇒ ∇f = (−1800, −600), y si ∆c1 = 200 ⇒ ∇f =
(−600, −600), que son colineales a los gradientes de las restricciones
activas en el punto óptimo, respectivamente.
( 0,3
0,3 )
(155)
x2= 15
(
)
-1800
-600
∆c1 = - 1000
∆c1 = 200
-600
-800
-600
-600
( )(
Apuntes de Clases • Optimización • Claudio Seebach
)
x1= 35
Tipo 1
Programación Lineal • 117
Variaciones en los niveles de los recursos
• Al cambiar el vector de nivel de recursos b, se mantiene inalterada la
función objetivo, pero se modifica el dominio de las soluciones.
• Si se modifica el nivel de recursos de una restricción activa, la solución
óptima, a menos que sea degenerada, cambia inmediatamente.
• Si la solución óptima continúa siendo definida por la misma base entonces los costos reducidos permanecen inalterados, ya que no dependen
de b.
Apuntes de Clases • Optimización • Claudio Seebach
Programación Lineal • 118
Variaciones en los niveles de los recursos
x2
• Perturbaciones pequeñas en uno de los recursos disponibles no cambia
el conjunto de variables básicas, pero si el valor que ellas toman en la
solución óptima.
xB={x1,x2}
xD={x3,x4}
4
2
3
1
x1
Apuntes de Clases • Optimización • Claudio Seebach
Programación Lineal • 119
Variaciones en los niveles de los recursos
x2
• Perturbaciones mayores a un determinado umbral pueden convertir la
base en una base infactible: el valor que toma una de las variables
básicas se hace negativo.
xB={x1,x2}
xD={x3,x4}
4
2
3
1
Apuntes de Clases • Optimización • Claudio Seebach
x1
Programación Lineal • 120
Variaciones en los niveles de los recursos
• ¿cuál es el rango de variación de un recurso, que mantiene la base óptima
actual dentro del dominio ?
• La factibilidad de una base queda definida por xB = B−1b, que debe
ser no negativo.
• La solución óptima puede

β11 β12
..
x∗ = B−1b =  ..
βm1 βm2
expresarse como:


 
b1β11 + b2β12 + · · · + bmβ1m
b1
· · · β1m
..
. . . ..   ..  = 

b1βm1 + b2βm2 + · · · + bmβmm
bm
· · · βmm
• Si el nivel del recurso j varı́a en ∆bj , debe cumplirse que


b1β11 + b2β12 + · · · + bmβ1m + ∆bj β1j
..
≥0
x̂∗ = 
b1βm1 + b2βm2 + · · · + bmβmm + ∆bj βmj
Apuntes de Clases • Optimización • Claudio Seebach
Programación Lineal • 121
Variaciones en los niveles de los recursos
• Es decir, x∗i + βij ∆bj ≥ 0, ∀i = 1, ..., m.
• Para que la base óptima no cambie, debe cumplirse:
" ∗#
" ∗#
−xi
−xi
max
≤ ∆bj ≤ min
∀i:βij >0
∀i:βij <0
βij
βij
• Al hacer cambios en los bj , dentro de este rango, la nueva solución
óptima será x∗i + βij ∆bj para todo i.
• El cambio en la función objetivo será: λj ∆bj .
• Dentro de este rango de variación, los costos reducidos no se alterarán.
Apuntes de Clases • Optimización • Claudio Seebach
Programación Lineal • 122
Descargar