Sunteți pe pagina 1din 7

Análisis de Sensibilidad

Alfredo Valencia-Toledo

November 29, 2018


0.1 Introducción
Consideremos el siguiente problema de programación lineal:

max. Z = 3x1 + 2x2


s.a. 2x1 + x2 ≤ 100
x1 + x2 ≤ 80
x1 , x2 ≥ 0
cuya solución oṕtima es x1 = 20, x2 = 60, con lo que se obtiene Z = 180.
Una pregunta natural que surge es: ¿Qué ocurrirı́a si se realizan cambios
en los coeficientes de la función objetivo? Observando la representación gráfica
de este problema en la figura 0.1, puede deducirse que si se hicieran pequeñas
modificaciones de los coeficientes de la función objetivo el resultado serı́a un
ligero giro en la representación gráfica de la función objetivo, sin que se altere,
el valor del punto donde se alcanza el valor óptimo, aunque si se alterarı́a el valor
de Z. En el análisis de sensibilidad, se estudiarán los efectos producidos por
algunas modificaciones en los datos iniciales. En el caso que estamos tratando,
un cambio en los coste, ci , podrı́a mantener la solución óptima para ciertos
intervalos de variación, aunque variarı́a en el valor de la función objetivo.
Si los que cambian son los recursos, bi , algunas aristas de la región factible
se desplazarán paralelamente. En este caso, pueda que se mantenga la base
óptima pero en muchos casos, con el problema considerado, variará la solución
óptima y por tanto el objetivo. Más complicado es ver qué ocurrirı́a cuando
cambien los coeficientes tecnológicos (aij ) auqnue también puede obtenerse al-
gunas simplificaciones.
L

2x1 + x2 = 100

x∗ = (20, 60)

x1 + x2 = 80

Figure 1: Región factible para el problema de sensibilidad.

Para realizar este estudio se supone que se tiene una solución óptima del
problema, y que debido a las fluctuaciones del mercado han variado los pre-
cios de alguno de los productos, o se han producido cambios en los recursos

1
disponibles. Partimos de una solución óptima del problema precedente, pero
es necesario realizar algunas modificaciones debido a los cambios producidos.
Por este motivo, el Análisis de Sensibilidad se conoce también con el nombre de
Análisis de Post-optimalidad.

0.1.1 Cambios discretos


Variación en un coste de una variable no básica
Consideremos el problema

max. Z = 60x1 + 30x2 + 20x3


s.a. 8x1 + 6x2 + x3 ≤ 48
4x1 + 2x2 + 1.5x3 ≤ 20
2x1 + 1.5x2 + 0.5x3 ≤ 8
x1 , x2 , x3 ≥ 0

La tabla de simplex es:


cB x1 x2 x3 h1 h2 h3
h1 0 8 6 1 1 0 0 48
h2 0 4 2 1.5 0 1 0 20
h3 0 2 1.5 0.5 0 0 1 8
−60 −30 −20 0 0 0 Z=0
La tabla de simplex que da solución óptima es:
60 30 20 0 0 0
cB x1 x2 x3 h1 h2 h3
h1 0 0 −2 0 1 2 −8 24
x3 20 0 −2 1 0 2 −4 8
x1 60 1 1.25 0 0 −0.5 1.5 2
0 5 0 0 10 10 Z = 280
Consideremos que vamos a realizar un cambio en el coste de x2 , cuyo valor
es 30 y sufre un cambio a 30 + ∆, de modo que se conserve la matriz óptima
actual. ¿Qué cambios se producirı́an en la tabla anterior?
Utilizando la forma matricial, que las filas correspondientes a las restricciones
pueden obtenerse ordenando los cálculos de la forma siguiente:
.. .. . . .. −1 .. −1 ..
     
−1 −1 . −1 . −1
B B .N .b = B B .B N .B b = I .B N .B .b

0 0
y los costes reducidos de las variables no básicas son cB B −1 N − cN , siendo nulo
los costes reducido de las variable básicas. La solución del problema es:
0
0
XB = B −1 .b Z 0 = cB B −1 b

que será óptima si 0 0


cB B −1 N − cN ≥ 0

2
Por tanto , como sólo vamos a cambiar una variable no básica sólo puede cam-
biar, en todo el proceso anterior esta útima expresión. Únicamente tendremos
que recalcular z2 − c2 , resultarı́a:
 
−2
z2 − c2 = (0, 20, 60)  −2  − (30 + ∆) = 5 − ∆
1.25

La tabla quedarı́a de la siguiente forma:


60 30 + ∆ 20 0 0 0
x1 x2 x3 h1 h2 h3
h1 0 0 −2 0 1 2 −8 24
x3 20 0 −2 1 0 2 −4 8
x1 60 1 1.25 0 0 −0.5 1.5 2
0 5−∆ 0 0 10 10 Z = 280
Se observa que la tabla presentará óptima si 5 − ∆ ≥ 0, es decir si ∆ ≤ 5.
Este hecho pone de manifiesto que el coste reducido, 5, de una variable no
básica, x2 , en la tabla óptima es la cantidad máxima que se puede aumentar
el coste de esta variable en la función objetivo sin que varı́e la actual solución
óptima. Por tanto el valor de c2 , puede aumentar hasta 35. También el valor de
0
la función objetivo será en este caso el mismo ya que Z 0 = cB B −1 b y ninguna
de estas matrices cambia si c2 ≤ 35. Igualmente, c2 puede disminuir todo lo que
se quiera, pues no hay restricciones para ∆ por la izquierda.
Si no se cumpliera esta condición y c2 pasa a ser, por ejemplo, 40, la tabla
final del simplex quedarı́a como sigue:
Max 60 40 20 0 0 0
x1 x2 x3 h1 h2 h3
h1 0 0 −2 0 1 2 −8 24
x3 20 0 −2 1 0 2 −4 8
x1 60 1 1.25 0 0 −0.5 1.5 2
0 −5 0 0 10 10 Z = 280
y habrı́a que continuar hasta obtener de nuevo optimalidad. Sale x1 y entra
x2 , con lo que la nueva tabla quedarı́a:
60 30 + ∆ 20 0 0 0
x1 x2 x3 h1 h2 h3
h1 0 1.6 0 0 1 1.2 −5.6 27.2
x3 20 1.6 0 1 0 1.2 −1.6 11.2
x2 60 0.8 1 0 0 −0.4 1.2 1.6
4 0 0 0 8 16 Z = 288
Esta es la tabla óptima.
La nueva solución óptima con la variación en c2 = 40 es:
x1 = 0, x2 = 1.6, x3 = 11.2, dando un Z = 288.

Variación en un coste de una variable básica


Supongamos que ahora el cambio se realiza en c1 = 60, que va a tomar el calor
de c1 = 60 + ∆. En este caso puede haber cambios en los costes reducidos de

3
todas la variables no básicas:
 
0 0
−2 2 −8
cB B −1 N − cN =
 
0 20 60 + ∆  −2 2 −4  − 30 0 0
1.25 −0.5 1.5

= 5 + 1.25∆ 10 − 0.5∆ 10 + 1.5∆

La tabla tomarı́a el siguiente aspecto:


60 + ∆ 30 20 0 0 0
x1 x2 x3 h1 h2 h3
h1 0 0 −2 0 1 2 −8 24
x3 20 0 −2 1 0 2 −4 8
x1 60 + ∆ 1 1.25 0 0 −0.5 1.5 2
0 5 + 1.25∆ 0 0 10 − 0.5∆ 10 + 1.25∆ Z = 280 + 2∆
La base se mantiene óptima si se verifica que todas las componentes del
vector 
5 + 1.25∆ 10 − 0.5∆ 10 + 1.5∆
son NO negativas:
5
5 + 1.25∆ ≥ 0 ∆ ≥ − 1.25 = −4
10 − 0.5∆ ≥ 0 =⇒ ∆ ≤ 20 =⇒ −4 ≤ ∆ ≤ 20
10
10 + 1.5∆ ≥ 0 ∆ ≥ − 1.25 = −6.6667

Es decir que c1 puede variar entre 56 y 80 manteniéndose óptima la base y la


solución anterior.
El valor de la función objetivo será

Z = (60 + ∆) ∗ 2 + 30 ∗ 0 + 20 ∗ 8 = 280 + 2∆

Si pasamos estos lı́mites, la solución deja de ser óptima. Supongamos que c1


toma el valor de 100 y por tanto ∆ = 40. La tabla serı́a:
100 30 20 0 0 0
x1 x2 x3 h1 h2 h3
h1 0 0 −2 0 1 2 −8 24
x3 20 0 −2 1 0 2 −4 8
x1 100 1 1.25 0 0 −0.5 1.5 2
0 55 0 0 −10 70 Z = 360
que no es óptima.
Habrı́a que continuar el problema a partir de esta tabla hasta obtener que
todos los costes reducidos sean positivos.
Entra h2 y sale x3 , y aplicamos el algoritmo simplex:
100 30 20 0 0 0
x1 x2 x3 h1 h2 h3
h1 0 0 −2 0 1 2 −8 24
x3 20 0 −2 1 0 2∗ −4 8
x1 100 1 1.25 0 0 −0.5 1.5 2
0 55 0 0 −10 70 Z = 360

4
Resolviendo se obtiene que la solución óptima del nuevo problema es: x1 = 4,
x2 = 0, x3 = 0, con esta solución el valor de la funicón objetivo es Z = 400
Queda como ejercicio comprobar que esta solcuión se obtiene.

Cambios en los recursos


Ahora vamos a cambiar un recurso sin cambiar la base, por lo tanto permanece
el valor de B. Revisando las formulas que nos dan la evolución de la tabla
observamos que los cambios sólo pueden darse en l a última columna, ya que
0
XB0
= B −1 .b y Z 0 = cB B −1 b son las únicas fórmulas donde intervienen los
recursos. En concreto si el cambio se realiza en el segundo recurso, de b2 = 20
a b2 = 20 + ∆:
Lo que varı́a es
 −1    
1 2 −8 48 24 + 2∆
0
XB = B −1 .b =  0 2 −4   20 + ∆  =  8 + 2∆ 
0 −0.5 1.5 8 2 − 0.5∆

que tendrı́a que tomar todos los valores positivos si queremos que se mantenga
la base actual.  
24 + 2∆ ≥ 0
 8 + 2∆ ≥ 0 
2 − 0.5∆ ≥ 0
Si no se cumple la restricción anterior, por ejemplo, ∆ = 10, la tabla resultante
serı́a
60 30 20 0 0 0
x1 x2 x3 h1 h2 h3
h1 0 0 −2 0 1 2 −8 44
x3 20 0 −2 1 0 2 −4 28
x1 60 1 1.25 0 0 −0.5 1.5 −3
0 5 0 0 10 10 Z = 280
Esta solución es dual factible, pero no primal factible y debemos aplicar
el algoritmo dual del Simplex para continuar la resolución del problema. Tras
hacer una iteración del algoritmo dual del Simplex, se obtiene que la solución
óptima del programa modificado, con b2 = 20 + ∆ = 30, es la siguiente: x1 = 0,
x2 = 0 y x3 = 16, con Z = 320.
Queda como ejercicio comprobar que se obtenga dicho resultado.

Cambios en los coeficientes tecnológicos


En una columna de una variable no básica
Si en le ejemplo anterior, cambiamos la segunda columna de la matriz de
coeficientes tecnológicos, y ésta pasa a ser (5, 2, 2)t , entonces la tabla inicial
quedarı́a:

5
cB x1 x2 x3 h1 h2 h3
h1 0 8 5 1 1 0 0 48
h2 0 4 2 1.5 0 1 0 20
h3 0 2 2 0.5 0 0 1 8
−60 −43 −20 0 0 0 Z=0
Esto sólo originarı́a un cambio en la columna 2 de la tabla final, que quedarı́a
como sigue:     
2 2 8 5 −7
 0 2 −4   2  =  −4  .
0 −0.5 1.5 2 2
Y en el coste reducido de esta columna serı́a:
 
 −7
z2 − c2 = 0 20 60  −4  − 43 = −3
2

Por tanto, la tabla quedarı́a:


60 30 20 0 0 0
x1 x2 x3 h 1 h2 h3
h1 0 0 −7 0 1 2 −8 24
En este caso cambia
x3 20 0 −4 1 0 2 −4 8
x1 60 1 2 0 0 −0.5 1.5 2
0 −3 0 0 10 10 Z = 280
la base óptima, ya que hay un coste reducido positivo y continuamos aplicando
el método simplex, hasta obtener todos los costes reducidos no negativos.
Si aplicamos el algoritmo Simplex a la última tabla, obtenemos la solución
óptima del programa modificado, con los cambios en la columna de la segunda
variable. Dicha solución óptima es: x1 = 0, x2 = 0, x3 = 16, con un Z = 320.
Queda pendiente sus comprobación la obtención de dichos resultados.
Observación: Si lo que cambia es la columna de una variable básica el
problema es absolutamente distinto, porque ya no se mantiene la matriz básica,
por lo que hay que resolver el problema desde el principio.

Trabajo.- Investigar los dos sigueintes casos:

• Incorporación de una nueva actividad.


• Incorporación de nuevas restricciones.

S-ar putea să vă placă și