Está en la página 1de 35

Tema 5: Análisis de Sensibilidad

y Paramétrico
5.1 Introducción

5.2 Cambios en los coeficientes de la función objetivo

5.3 Cambios en el rhs

5.4 Análisis de Sensibilidad y Dualidad


5.4.1 Cambios en el coeficiente en la función objetivo de una variable
no básica
5.4.2 Cambios en la columna de una variable no básica
5.4.3 Añadir una nueva variable

5.5 Análisis Paramétrico con WinQSB

1
5.1 Introducción
Hipótesis en PL: parámetros deterministas (conocidos y fijos).
Realidad: los parámetros son estimaciones de los valores reales.
Análisis de Sensibilidad: ¿cómo afecta a la solución óptima los cambios
en los parámetros del modelo? Obtener de forma eficiente la nueva
solución óptima (si existe) sin resolver de nuevo el modelo.


 Min ct
x

Supongamos resuelto el ppl en forma estándar: s.a: Ax = b



x ≥ 0n
En la tabla óptima del Simplex tenemos:

zj − cj ≤ 0 ∀j = 1, . . . , n b¯i ≥ 0 ∀i = 1, . . . , m

2
¿Cómo afectan los cambios en:
los coeficientes de la función objetivo (cj )?
Posible pérdida de la posibilidad dual
Reoptimizar con el algoritmo Simplex
los términos de la derecha de las restricciones (bi )?
Posible pérdida de la posibilidad primal
Reoptimizar con el Dual del Simplex
una fila y/o columna de A (aij )?
Posible pérdida de la posibilidad primal
Posible pérdida de la posibilidad dual
Posible pérdida de ambas
Reoptimizar con dos Fases

3
5.2 Cambios en los coeficientes de la función objetivo
Pueden provocar la pérdida de la optimalidad primal

¿Para qué rango de valores de ck sigue siendo óptima la solución actual?

Coeficiente de una variable no básica: sólo afecta al coste re-


ducido de la variable cuyo coeficiente se ha cambiado.

zk − c0k = (zk − ck ) + (ck − c0k )

Si zk − c0k ≤ 0 −→ La solución sigue siendo óptima.


Si zk − c0k > 0 −→ Reoptimizamos con el algoritmo del Simplex,
haciendo básica xk .

4
Ejemplo 1
Min −2x1 + x2 − x3  
6
s.a.: x1 + x2 + x3 ≤ 6  
∗ 
x = 0 
 z ∗ = −12
−x1 + 2x2 ≤ 4
0
x1 , x2 , x3 ≥ 0

Tabla óptima:

x1 x2 x3 x4 x5 rhs
z 0 -3 -1 -2 0 -12
x1 1 1 1 1 0 6
x5 0 3 1 1 1 10

5
Ejemplo: Cambio en el Coeficiente de una Variable no Básica
c2 c02
z}|{ z}|{
z = −2x1 +1 x2 − x3 → z = −2x1 −3 x2 − x3

z2 − c02 = (z2 − c2 ) + (c2 − c02 ) = −3 + (1 − (−3)) = 1 > 0


x1 x2 x3 x4 x5 rhs
z 0 1 -1 -2 0 -12
x1 1 1 1 1 0 6
x5 0 3 1 1 1 10
Reoptimizamos con el Simplex, x2 se hace básica y x5 deja de serlo.

x1 x2 x3 x4 x5 rhs  
8
−4 −7 −1 −46 3
z 0 0  
3 3 3 3
x =

∗ 10
3

 z∗ = −46
3
2 2 −1 8
x1 1 0 3 3 3 3
1 1 1 10
0
x2 0 1 3 3 3 3

6
¿Para qué rango de valores del coeficiente de una variable no básica
sigue siendo óptima la solución actual?
La solución actual sigue siendo óptima sii:

zk − c0k ≤ 0 sii (zk − ck ) + (ck − c0k ) ≤ 0 sii c0k ≥ ck + (zk − ck )

c0k ∈ [ck + (zk − ck ), ∞[

Ejemplo, continuación . . .
En el Ejemplo 1, c2 = 1 y z2 − c2 = −3, luego la solución actual
seguirá siendo óptima sii:

c02 ∈ [1 + (−3), ∞[ = [−2, ∞[

 
6
 
x = 0 
∗
 z ∗ = −12
0

7
Coeficiente de una variable básica: cambiará toda la fila aso-
ciada a la función objetivo (Fila 0), excepto los costes reducidos de
las variables básicas, que seguirán siendo iguales a cero.
Nueva Fila 0 = (Fila 0 actual) + (c0k − ck ) (Fila actual de xk )
Si algún coste reducido se hace positivo reoptimizamos con el algoritmo
del Simplex. Para determinar el rango de valores para los cuales sigue
siendo óptima la solución actual se resuelve el sistema de inecuaciones
dado por:
zj0 − cj ≤ 0 ∀j ∈ N
En dicho rango, la solución óptima será la misma y el valor óptimo:

z ∗ = cB B −1 b + (c0k − ck )x∗k

8
Ejemplo: Cambio en el Coeficiente de una Variable Básica
c1 c01
z}|{ z}|{
z = −2 x1 + x2 − x3 → z = 0 x1 + x2 − x3 → z = x2 − x3

x1 x2 x3 x4 x5 rhs
z 0 -3 -1 -2 0 -12
x1 1 1 1 1 0 6
x5 0 3 1 1 1 10

Nueva Fila 0 = (Fila 0 actual) + (c01 − c1 ) (Fila actual de x1 )

x1 x2 x3 x4 x5 rhs
z 0 -1 1 0 0 0
x1 1 1 1 1 0 6
x5 0 3 1 1 1 10

9
x1 x2 x3 x4 x5 rhs
z 0 -1 1 0 0 0
x1 1 1 1 1 0 6
x5 0 3 1 1 1 10

Reoptimizamos con el Simplex, x3 se hace básica y x1 deja de serlo.

x1 x2 x3 x4 x5 rhs  
0
z -1 -2 0 -1 0 -6  
x = 0 
∗
 z ∗ = −6
x3 1 1 1 1 0 6
6
x5 -1 2 0 0 1 4

10
Ejemplo, continuación . . .
¿Para qué rango de valores del coeficiente de x1 sigue siendo óptima la
solución actual?
x1 x2 x3 x4 x5 rhs  
6
z 0 -3 -1 -2 0 -12  
 0 
x∗ =  z ∗ = −12

x1 1 1 1 1 0 6
0
x5 0 3 1 1 1 10
Nueva Fila 0 = (Fila 0 actual) + (c01 − c1 ) (Fila actual de x1 )

z20 − c2 = −3 + (c01 − c1 )1 ≤ 0 ↔ (c01 − c1 ) ≤ 3


z30 − c3 = −1 + (c01 − c1 )1 ≤ 0 ↔ (c01 − c1 ) ≤ 1 ↔ c01 ≤ 1 + c1
z40 − c4 = −2 + (c01 − c1 )1 ≤ 0 ↔ (c01 − c1 ) ≤ 2

En el ejemplo, c1 = −2, si c01 ∈] − ∞, −1] la solución óptima sigue siendo la


misma pero el valor óptimo será:

z ∗ = − 12 + (c01 − c1 )6 = −12 + 6c01 + 12 = 6c01

11
5.3 Cambios en el término de la derecha de una restricción
Pueden provocar la pérdida de la optimalidad dual ≡ pérdida de la
posibilidad primal
Si xB = B −1 b0 = b̄0 tiene alguna componente negativa será necesario reop-
timizar con el algoritmo Dual del Simplex.
¿Para qué rango de valores de bi sigue siendo óptima la base actual?
Aquél que se obtiene al resolver el sistema de inecuaciones:
b̄0 = b̄ + (columna i-ésima de B −1 ) (b0i − bi ) ≥ 0
| {z }
4i

En dicho rango, la solución óptima será:

x∗B = b̄ + (columna i-ésima de B −1 )(4i ), x∗N = 0

El valor óptimo:
z ∗ = ctB b̄ + ωi 4i

12
Ejemplo, cambio en el término de la derecha de una restricción
(no hay pérdida de posibilidad primal)

   
6 3
b=  → Cambiamos b1 → b0 =  
4 4

La nueva solución será:


      
1 0 3 3 0
b̄0 = B −1 b0 =   = ≥ 
1 1 4 7 0

La base B = {a1 , a5 } sigue siendo óptima, la nueva solución es:


 
3  
  3
∗   ∗ t 0
x =  0  → z = cB b̄ = (−2, 0)   = −6
7
0

13
Ejemplo, Continuación . . ., sı́ hay pérdida de posibilidad primal
Cambiamos b1 = 6 por b01 = −2. La nueva solución y el nuevo coste serán:
    
1 0 −2 −2
0 −1 0
b̄ = B b =     =  
1 1 4 2
 
−2
z= ctB b̄0 = (−2, 0)  =4
2

x1 x2 x3 x4 x5 rhs Nuevo
z 0 -3 -1 -2 0 -12 4
x1 1 1 1 1 0 6 → -2
x5 0 3 1 1 1 10 2
Perdemos la posibilidad primal, reoptimizamos con el Dual del Simpex:
Dual no acotado → Primal Imposible

14
Ejemplo
¿En cuánto podemos incrementar b1 sin que cambie la base óptima?
   
6 6+4
Si cambiamos b =   por b0 =  
4 4
      
6+4 1 0 6+4 6+4
xB = B −1  =  = 
4 1 1 4 10 + 4

proporcionará una solución óptima sii proporciona una solución posible:

6+4≥0
→ 4 ≥ −6 → b1 ∈ [0, ∞[
10 + 4 ≥ 0

La solución óptima y el valor óptimo serán, respectivamente:


   
6+4 6+4

xB =   ∗
xN = 0 ∗
z = (−2, 0)   = −12 − 24
10 + 4 10 + 4

15
¿Para qué rango de valores de b2 sigue siendo óptima la base actual?
      
−1  6  
1 0
 
6
 
6

xB = B = =
b2 1 1 b2 6 + b2

proporcionará una solución óptima sii proporciona una solución posible:

6≥0
→ b2 ≥ −6 → b2 ∈ [−6, ∞[
6 + b2 ≥ 0

La solución óptima y el valor óptimo serán, respectivamente:


   
6 6
x∗B =   x∗N = 0 z ∗ = (−2, 0)   = −12
6 + b2 6 + b2

Notar que el precio sombra para esta restricción será 0.

16
5.4 Análisis de Sensibilidad y Dualidad
Dada una solución posible básica del problema primal,

(xB = B −1 b, xN = 0),

dicha solución es óptima si y sólo si la solución obtenida a partir de


B, ω = ctB B −1 , es solución posible del dual.
Cambios en la función objetivo del coeficiente de una variable no
básica
Cambios en la columna de A de una variable no básica
Adición al problema de una nueva variable

17
La empresa Dakota Furniture Company fabrica escritorios, mesas y sillas.
La fabricación de cada tipo de mueble requiere madera y dos tipos de
procesos: carpinterı́a y acabado. La cantidad de recursos que necesita cada
tipo de mueble vienen dados en la siguiente tabla, en la que también se
incluyen los precios de venta de los muebles:

Recurso Escritorios Mesas Sillas


Madera (en pies de tablero) 8 6 1
Carpinterı́a (en horas) 2 1.5 0.5
Acabado (en horas) 4 2 1.5
Precio de Venta (en euros) 60 30 20
En la actualidad se dispone de 48 pies de tableros de madera, 20 horas de
acabado y 8 de carpinterı́a. Puesto que los recursos ya han sido adquiridos
y se supone que la demanda de cualquiera de los productos es ilimitada, la
empresa está interesada en planificar la producción de forma que se
maximicen los beneficios obtenidos.

18
x1 = escritorios x2 = mesas x3 = sillas

Max 60x1 + 30x2 + 20x3


s.a.: 8x1 + 6x2 + x3 ≤ 48
4x1 + 2x2 + 1,5x3 ≤ 20
2x1 + 1,5x2 + 0,5x3 ≤ 8
x1 , x2 , x3 ≥ 0

x1 = 2, x2 = 0, x3 = 8

19
ω1 = precio madera, ω2 = precio acabado, ω3 = precio carpint.

Min 48ω1 + 20ω2 + 8ω3


s.a.: 8ω1 + 4ω2 + 2ω3 ≥ 60
6ω1 + 2ω2 + 1,5ω3 ≥ 30
ω1 + 1,5ω2 + 0,5ω3 ≥ 20
ω1 , ω2 , ω3 ≥ 0

ω1 = 0, ω2 = 10, ω3 = 10 z = 280

20
5.4.1 Cambios en la función objetivo del coeficiente de
una variable no básica
¿Para qué valores de c2 seguirá siendo óptima la solución actual?
Una mesa consume,
6 pies de madera, a ω1 = 0 euros el pie
2 horas de acabado, a ω2 = 10 euros la hora, y
1.5 horas de carpinterı́a, a ω3 = 10 euros la hora
En total:
6 × 0 + 2 × 10 + 1,5 × 10 = 35
Mientras el precio de venta de las mesas c2 ≤ 35 euros seguirá sin
interesar fabricar mesas, x2 = 0.
La solución actual seguirá siendo óptima.

21
Los cambios en el coeficiente no afectan a la factibilidad de la
solución del primal.

Min 48ω1 + 20ω2 + 8ω3


s.a.: 8ω1 + 4ω2 + 2ω3 ≥ 60
6ω1 + 2ω2 + 1,5ω3 ≥ c2
ω1 + 1,5ω2 + 0,5ω3 ≥ 20
ω1 , ω2 , ω3 , ≥ 0
6ω1 + 2ω2 + 1,5ω3 ≥ c2

6 × 0 + 2 × 10 + 1,5 × 10 ≥ c2

35 ≥ c2

22
5.4.2 Cambios en la columna de una variable no básica
Supongamos que cambia el vector de coeficientes de las mesas y también su
precio de venta.
   
6 5
0   0  
 
c2 = 30 c2 = 43 a2 =  2  a2 =  2  

1,5 2
La nueva restricción del dual serı́a:

5ω1 + 2ω2 + 2ω3 ≥ 43

Que es violada por la solución del dual actual:

5 × 0 + 2 × 10 + 2 × 10 ≥ 43

40 ≥ 43
Fabricar una mesa consume 40 euros, si se vende por 43, interesará fabricar
mesas. El coste reducido cambiarı́a de signo.

23
5.4.3 Añadir una nueva variable
Dakota está considerando fabricar zapateros. Podrı́an venderse por 15 euros
y consumirı́an 1 pie de madera, 1 hora de acabado y 1 hora de carpinterı́a.
¿Seguirı́a siendo óptima la solución actual?, ¿Interesa fabricar zapateros?
 
1
 
Introducir una nueva variable, x4 , con, c4 = 15 a4 =  1  

1
Equivale a añadir una restricción al dual:

ω1 + ω2 + ω3 ≥ 15

Como la solución actual del dual, sı́ que cumple la restricción:

1 × 0 + 1 × 10 + 1 × 10 ≥ 15

No interesará fabricar zapateros.

z4 − c4 = ω1 + ω2 + ω3 − c4 = 20 − 15 = 5

24
5.5 Análisis Paramétrico
El análisis paramétrico es una extensión del análisis de sensibilidad.
Consiste en investigar cómo cambia la solución óptima y el valor ópti-
mo de un PPL cuando se efectúan cambios continuos en uno o más
parámetros, de la función objetivo:
0 0
z(µ) = c + µc , c y c conocidos, µ escalar

o del rhs:
0 0
b(µ) = b + µb , b y b conocidos, µ escalar

25
Procedimiento
1. Calcular la solución óptima para µ = 0.
2. Determinar el rango de valores para µ, [0, µ1 ], para los que la
solución sigue siendo óptima.
3. Para µ = µ1 se produce un cambio de base óptima. Realizar el
cambio. Obtener la nueva solución óptima.
4. Determinar el nuevo rango de valores de µ para los que es óptima
la solución actual. Sea [µ1 , µ2 ].
5. Repetir el proceso hasta que se detecta un µr tal que:
el problema es imposible ∀µ ≥ µr , o
la solución óptima actual sigue siendo óptima ∀µ ≥ µr .

26
Min − x1 − 3x2
s.a.: x1 + x2 ≤ 6
− x1 + 2x2 ≤ 6
x1 , x2 ≥0

     
−1 2 x1
z(µ) =   + µ   
−3 1 x2

z(µ) = (−1 + 2µ)x1 + (−3 + 1µ)x2

     
6 −1 6−µ
b(µ) =   + µ = 
6 1 6+µ

27
5.5.1 Análisis Paramétrico de la Función Objetivo

µ = 0 → µ ∈ [0, 1]
 
2

Solución Óptima: x =   Valor Óptimo: z ∗ = −14
4

z ∈ [−14, −6] con pendiente 8 → z ∗ (µ) = −14 + 8µ


Notar que la misma conclusión se obtiene para:

µ ∈ [−2, 0]

pero aquı́ z ∈ [−30, −14]

28
µ = 1 → µ ∈ [1, 3]

Cambio de base: x1 deja de ser básica, h1 se hace básica.

x2 + h1 = 6 x2 = 3

2x2 = 6 h1 = 3
 
0
Solución Óptima: x = 
∗  Valor Óptimo: z ∗ = −6
3
z ∈ [−6, 0] con pendiente 3 → z ∗ (µ) = −9 + 3µ

29
µ = 3 → µ ∈ [3, ∞[
Cambio de base: x2 deja de ser básica, h2 se hace básica.

h1 = 6
h2 = 6
 
0
Solución Óptima: x = 
∗  Valor Óptimo: z ∗ = 0
0
z ∈ [0, 0] con pendiente 0 → z ∗ (µ) = 0

30
µ = −2 → µ ∈] − ∞, −2]
Cambio de base: x2 deja de ser básica, h2 se hace básica.

x1 = 6 x1 = 6

−x1 + h2 = 6 h2 = 12
 
6
Solución Óptima: x = 
∗  Valor Óptimo: z ∗ = −30
0
z ∈ ] − ∞, −30] con pendiente 12 → z ∗ (µ) = −6 + 12µ

31
Resumiendo:
 
6
µ ∈] − ∞, −2] → x =
∗  → z ∗ (µ) = −6 + 12µ
0

 
2
µ ∈ [−2, 1] → x =
∗  → z ∗ (µ) = −14 + 8µ
4

 
0
µ ∈ [1, 3] → x =
∗  → z ∗ (µ) = −9 + 3µ
3

 
0
µ ∈ [3, ∞[ → x =
∗  → z ∗ (µ) = 0
0

32
5.5.2 Análisis Paramétrico del rhs
µ ∈ ] − ∞, 2]
Las variables básicas óptimas son x1 y x2 .

x1 + x2 = 6 − µ x1 = 2 − µ

−x1 + 2x2 = 6 + µ x2 = 4
 
2−µ
Solución Óptima: x = 
∗ 
4

Valor Óptimo: z ∗ = −14 + µ

33
µ = 2 → µ ∈ [2, 6]
Cambio de base: x1 deja de ser básica, h2 se hace básica.

x2 = 6 − µ x2 = 6 − µ

2x2 + h2 = 6 + µ h2 = −6 + 3µ
 
0
Solución Óptima: x = 
∗  Valor Óptimo: z ∗ = −18 + 3µ
6−µ

34
µ = 6 → µ ∈]6, ∞[
Cambio de base: x2 deja de ser básica, No es posible determinar la
variable que se hace básica: Dual no Acotado −→ Primal Imposible
Resumiendo:
 
2−µ
µ ∈] − ∞, 2] → x =
∗  → z ∗ (µ) = −14 + µ
4

 
0
µ ∈ [2, 6] → x∗ =   → z ∗ (µ) = −18 + 3µ
6−µ

µ ∈ [6, ∞[ → Problema Imposible

35

También podría gustarte