Fase II y Análisis Matricial del Simplex

Anuncio
Pontificia Universidad Católica
Escuela de Ingeniería
Departamento de Ingeniería Industrial y de Sistemas
Clase 21 • Simplex Fase I y II
ICS 1102 • Optimización
Profesor : Claudio Seebach
18 de octubre de 2006
Apuntes de Clases • Optimización • Claudio Seebach
Programación Lineal • 77
Segunda Fase
• El tableau inicial para la segunda fase que nos permite comenzar a iterar
de inmediato en búsqueda de la solución óptima al problema original:
• Eliminando del último tableau de la Fase I, la penúltima fila, asociada
a la función objetivo de la Fase I, y la columna de y3 asociada a la
variable auxiliar, obtenemos el tableau inicial para la Fase II:
x1
0
0
1
0
x2
0
1
0
0
x3 x4
x5
20
250
1 14
250
3
10
1
40
0 7
3
−1
20
0 7
−3
10
10000
−
0 −200
32000
7
3
v.b.
x3
x2
x1
• La S.I.F.B.: es: x1 = 10, x2 = 40, x3 = 250, x4 = 0, x5 = 0
Apuntes de Clases • Optimización • Claudio Seebach
Programación Lineal • 78
Segunda Fase
Tipo 2
• Se comienza desde un vértice del dominio del problema original:
(0,45)
(10,40)
D
(0,0)
Tipo 1
Apuntes de Clases • Optimización • Claudio Seebach
Programación Lineal • 79
Fin Segunda Fase
• Al hacer una iteración del algoritmo obtenemos el siguiente tableau:
x1
0
0
1
0
x2 x3 x4
3
3
0 250
175
15
1 −1
25 175
2
−5
0 25 175
0 40 5000
175
x5
1
3
0 30
0 30
0 42000
v.b.
x5
x2
x1
• Este tableau corresponde al óptimo del problema modificado, en cual
estamos forzados a usar al menos 15 litros de pintura.
• El punto óptimo es x1 = 30, x2 = 30, x3 = 0, x4 = 0, x5 = 3
• El valor óptimo del problema de minimización es -42.000, o sea la utilidad del problema equivalente de maximización es $42.000.
Apuntes de Clases • Optimización • Claudio Seebach
Programación Lineal • 80
Gráficamente Segunda Fase
Tipo 2
• El punto óptimo es x1 = 30, x2 = 30, x3 = 0, x4 = 0, x5 = 3
(0,45)
(10,40)
D
(30,30)
(0,0)
Tipo 1
Apuntes de Clases • Optimización • Claudio Seebach
Programación Lineal • 81
Pontificia Universidad Católica
Escuela de Ingeniería
Departamento de Ingeniería Industrial y de Sistemas
Clase 21 • Análisis Matricial del Método Simplex
ICS 1102 • Optimización
Profesor : Claudio Seebach
18 de octubre de 2006
Apuntes de Clases • Optimización • Claudio Seebach
Programación Lineal • 82
Análisis Matricial del Método Simplex
• La forma estándar, una vez agregadas las variables de holgura y de
exceso necesarias, es:
min c!x
s.a. Ax = b
x ≥ 0
• Los componentes del vector b deben ser mayor o igual a cero.
• En cada iteración los componentes del vector x se dividen en:
– Las variables básicas: xB
– Las variables no básicas: xD
• El problema se puede escribir entonces como:
min c!B xB + c!D xD
s.a. BxB + DxD = b
xB , xD ≥ 0
Apuntes de Clases • Optimización • Claudio Seebach
Programación Lineal • 83
Análisis Matricial del Método Simplex
• La matriz B es una matriz de m × m que debe ser de rango máximo.
• Si multiplicamos la restricción en ambos lado por B−1 queda:
xB = B−1b − B−1DxD
• Reemplazando en la función objetivo queda:
v̂ = c!B B−1b + (c!D − c!BB−1D)xD
• El siguiente problema es equivalente al original:
min
c!B B−1b + (c!D − c!BB−1D)xD
s.a. xB +B−1DxD = B−1b
xB , xD ≥ 0
• Si todos los elementos de B−1b son no negativos, la siguiente solución
corresponde a una solución básica factible del problema:
xB = B−1b, xD = 0. El valor de la función objetivo es: v̂ = c!B B−1b
Apuntes de Clases • Optimización • Claudio Seebach
Programación Lineal • 84
Análisis Matricial del Método Simplex
• Si el tableau inicial se expresa en forma gruesa del siguiente modo:
xB xD
B D b
c!B c!D 0
• El tableau correspondiente a una solución básica es:
xB
xD
I
B−1D
B−1b
!
! −1
0 cD − cB B D −c!B B−1b
• Si los elementos del vector de costos reducidos r!D = c!D − c!BB−1D
son no negativos, la solución básica factible es también óptima.
• Cada elemento de este vector pueden expresarse como cj − c!B B−1Dj
• cj y Dj corresponden al coeficiente asociado a la variable xj (no básica)
en la función objetivo original y la columna en A asociada a la variable
xj , respectivamente.
Apuntes de Clases • Optimización • Claudio Seebach
Programación Lineal • 85
Análisis Matricial del Método Simplex
• Ejemplo:
min −x1 − 2x2 − 3x3
−3x1 + 2x2 + x3
−x1 + 2x2 − x3
x1 + x2 + 4x3
x 1 , x2 , x 3
≤
≤
≤
≥
2
4
5
0
• Para transformar el problema a formato estándar hay que agregar tres
variables de holgura, que forman además la base inicial.
min −x1 − 2x2 − 3x3
−3x1 + 2x2 + x3 + x4
−x1 + 2x2 − x3 + x5
x1 + x2 + 4x3 + x6
x 1 , x2 , x 3 , x 4 , x 5 , x 6
Apuntes de Clases • Optimización • Claudio Seebach
=
=
=
≥
2
4
5
0
Programación Lineal • 86
Análisis Matricial del Método Simplex
• xB = {x4, x5, x6} y xD = {x1, x2, x3}
• Las matrices iniciales son:



−3 2 1
1 0 0
B = B−1 =  0 1 0  , D =  −1 2 −1 
0 0 1
1 1 4


 
 
0
−1
2
b =  4  , cB =  0  , cD =  −2  .
−3
0
5

• El tableau incial es el siguiente:
x1 x2 x3 x4 x5 x6
v.b.
−3 2 1 1 0 0 2 x4
−1 2 −1 0 1 0 4 x5
1 1 4 0 0 1 5 x6
−1 −2 −3 0 0 0 0
Apuntes de Clases • Optimización • Claudio Seebach
Programación Lineal • 87
Análisis Matricial del Método Simplex
• El vector cB es nulo, por lo tanto r!D = c!D ,
• Todas las variables no básicas tienen costo reducido negativo.
• min{−1, −2, −3} = −3; ⇒ x3 entra a la base
• Para la variable saliente debemos realizar el cuociente entre los elementos de la columna de B−1b y los elementos positivos de la columna de
D asociada a x3: min{ 21 , ·, 54 } = 54 . ⇒ x6 sale de la base.
• El próximo tableau lo podemos obtener pivoteando (mediante operaciones filas) en la posición de x3 de la tercera fila, o bien simplemente redefiniendo las matrices del problema acorde a la nueva base
xB = {x4, x5, x3}.
• Las variables no básicas son: xD = {x1, x2, x6}.
Apuntes de Clases • Optimización • Claudio Seebach
Programación Lineal • 88
Análisis Matricial del Método Simplex
• Las nuevas
 matrices asociadas a esta
 nueva 1base

 son: 
1 0 −4
1 0 1
−3 2 0
B =  0 1 −1  =⇒ B−1 =  0 1 14  , D =  −1 2 0  ,
0 0 4
0 0 14
1 1 1




 
−1
0
2
b =  4  , cB =  0  , cD =  −2 
0
−3
5
• Es importante mantener muy claro el orden en que las variables forman
el conjunto xB y xD de modo de garantizar consistencia.
• Las matrices del nuevo
son:
 −13 tableau
7 −1
B−1D = 
4
−3
4
1
4
(c!D
rD =
−
4
9
4
1
4
4
1
4
1
4

 , B−1b = 
c!B B−1D)T

3
4
21
4
5
4

,
− 14
15
−1
=  − 54  , c!BB b = −
4
3
4
Apuntes de Clases • Optimización • Claudio Seebach
Programación Lineal • 89
Análisis Matricial del Método Simplex
• Esto equivale siguiente tableau:
x1
−13
4
−3
4
1
4
− 14
x2 x3
7
0
4
9
0
4
1
1
4
5
−4 0
x4
1
0
0
0
x5 x6
0 −1
4
1 14
0 14
0 34
3
4
21
4
5
4
15
4
v.b.
x4
x5
x3
• Este mismo tableau se hubiera alcanzado si se hubiera realizado operaciones fila pivoteando en el casillero de la tercera fila y tercera columna.
• ¿es esta solución óptima? No.
• min{− 14 , − 54 } = − 54 ⇒ x2 entra a la base.
• min{ 73 , 21
9 , 5} =
3
7
⇒ x4 sale de la base
Apuntes de Clases • Optimización • Claudio Seebach
Programación Lineal • 90
Análisis Matricial del Método Simplex
• Pivoteando obtenemos:
x1 x2
−13
1
7
24
0
7
5
0
7
−18
0
7
x3 x4
0 47
0 −9
7
1 −1
7
0 57
x5 x6
0 −1
7
1 47
0 27
0 47
3
7
30
7
8
7
30
7
v.b.
x2
x5
x3
• xB = {x5, x3, x2} y xD = {x1, x6, x4}.
• ¿Estamos en el óptimo? Aún no.
30 8
• min{·, 24
, 5} =
5
4
−18
7
⇒ x1 entra a la base.
⇒ x5 sale de la base.
• Pivoteando nuevamente:
x1 x2
0 1
1 0
0 0
0 0
x3 x4 x5 x6
13 1
0 −1
8 24 6
−3 7
0 8 24 16
1
1 18 −5
24 6
3
0 −1
4
4 1
11
4
5
4
1
4
15
2
Apuntes de Clases • Optimización • Claudio Seebach
v.b.
x2
x1
x3
Programación Lineal • 91
Análisis Matricial del Método Simplex
• Pivoteamos nuevamente:
x1 x2
0 1
1 0
0 0
0 0
x3
1
3
8
2
x4 x5 x6 v.b.
0 31 13 3 x2
2
0 −1
3
3 2 x1
−5 4
1 3 3 2 x4
0 31 43 8
• Todos los costos reducidos son mayores o iguales a cero.
• La solución óptima es:
x1 = 2
x2 = 3
x3 = 0
x4 = 2
x5 = 0
x6 = 0
• El valor óptimo es: v% = −8.
• Atención: la variable x4 estaba inicialmente en la base, luego salió de
ésta, y en la última iteración volvió a entrar. ¿qué pasó ?
Apuntes de Clases • Optimización • Claudio Seebach
Programación Lineal • 92
Solución Degenerada
• ¿Qué pasa si al buscar la variable que sale de la base me encuentro un
b
empate, es decir, hay dos cuocientes aijj de idéntico valor?
• Esto implica que la solución será degenerada, ya que alguna variable
básica tomará valor cero.
• Supongamos que tenemos el siguiente tableau
rior:
x1 x2 x3 x4 x5 x6
−3 2 1 1 0 0 2
−1 2 −1 0 1 0 4
1 1 4 0 0 1 8
−1 −2 −3 0 0 0 0
inicial del ejemplo antev.b.
x4
x5
x6
• Si x3 entra a la base, la variable saliente se obtiene de: min{ 21 , ·, 48 } = 2.
• Por lo tanto, tanto x4 o x6 podrán salir de la base.
Apuntes de Clases • Optimización • Claudio Seebach
Programación Lineal • 93
Solución Degenerada
• Pivoteando en x4, tenemos:
x1
−3
−4
13
−10
x2
2
4
−7
4
x3
1
0
0
0
x4
1
1
−4
3
x5
0
1
0
0
x6
0
0
1
0
v.b.
2 x3
6 x5
0 x6
6
• Si bien no estamos en el óptimo, estamos ante una solución factible
básica degenerada
• xB = {x3, x5, x6}, con x3 = 2, x5 = 6, y x6 = 0.
Apuntes de Clases • Optimización • Claudio Seebach
Programación Lineal • 94
x2
Solución Degenerada
D
x1
Apuntes de Clases • Optimización • Claudio Seebach
Programación Lineal • 95
Dominio No Acotado
• ¿Qué pasa si al buscar la variable que sale de la base, todos los aij son
negativos?
• En dicho caso la solución es no acotada, es decir, el dominio es no
acotado.
• Por ejemplo, si la última restricción hubiese sido −x1 + x2 + 4x3 ≤ 5:
min −x1 − 2x2 − 3x3
−3x1 + 2x2 + x3
−x1 + 2x2 − x3
−x1 + x2 + 4x3
x 1 , x2 , x 3
≤
≤
≤
≥
2
4
5
0
• Si se escoge a x1 para que entre a la base, no existe valor alguno de x1
que permita llevar a 0 algunas de las variables en la base.
Apuntes de Clases • Optimización • Claudio Seebach
Programación Lineal • 96
Dominio No Acotado
• Las restricciones, con las holguras respectivas, son:
−3x1 + 2x2 + x3 + x4 = 2
−x1 + 2x2 − x3 + x5 = 4
−x1 + x2 + 4x3 + x6 = 5
• Para determinar que variable sale de la base tenemos que:
x4 = 2 + 3x1
x5 = 4 + x1
x6 = 5 + x1
• Claramente ninguna de las tres variables se hace cero, con valores no
negativos de x1.
Apuntes de Clases • Optimización • Claudio Seebach
Programación Lineal • 97
Múltiples Soluciones
• ¿Qué pasa si al analizar la solución final observamos que hay un costo
reducido igual a cero asociado a una variable no básica?
– Si esa variable se incorpora a la base, el valor de la función objetivo
no se ve alterado.
– Dos vértices con idéntico valor objetivo y cualquier combinación convexa de ambos, será óptima también.
Apuntes de Clases • Optimización • Claudio Seebach
Programación Lineal • 98
x2
Múltiples Soluciones
x1
Apuntes de Clases • Optimización • Claudio Seebach
Programación Lineal • 99
Ejemplo Múltiples Soluciones
• En el ejemplo de la clase pasada, utilicemos el análisis matricial para
determinar cuánto debió haber sido c3 para que hubiese sido atractivo
de incorporar x3 a la base óptima final.
• En el óptimo habı́amos obtenido: xD = {x3, x5, x6}, xB = {x1, x2, x4}.
• El costo reducido final de las variables no básicas es: r!D = c!D −c!B B−1D

c!D = [−3 0 0] (i.e. c3 = −3) 



c!B = [−1 − 2 0]










3 2 1



−4


−1
2
0
c!B B−1D = [−5 −1
B=
3
3 ]
!
! −1
1 4
1 1 0
⇒ cD −cB B D = [2 3 3 ]










1 0 0






D = −1 1 0



4 0 1
Apuntes de Clases • Optimización • Claudio Seebach
Programación Lineal • 100
Ejemplo Múltiples Soluciones
• Para que x3 sea atractiva de incorporarla a la base, c3 − (−5) ≤ 0 ⇒
c3 ≤ −5.
• Supongamos que c3 = −5, ası́ la solución:
x1 = 2
x2 = 3
x3 = 0
x4 = 2
x5 = 0
x6 = 0
sigue siendo óptima, ya que r3 = 0, que sigue siendo no negativo.
• Podrı́amos incorporar x3 a la base. Vemos que tendrı́a que salir x4.
x1 x2 x3 x4 x5 x6
v.b.
1
1
0 1 1 0 3 3 3 x2
1 0 3 0 13 23 2 x1
4
0 0 8 1 −5
3
3 2 x4
0 0 0 0 13 43 8
Apuntes de Clases • Optimización • Claudio Seebach
Programación Lineal • 101
Ejemplo Múltiples Soluciones
• Pivoteando para que salga x4 de la base:
x1 x2 x3 x4 x5 x6
13
1 11
0 1 0 −1
8
24
6 4
7
1 5
1 0 0 −3
8
24
6 4
1 −5
0 0 1 8 24 23 14
0 0 0 0 13 43 8
v.b.
x2
x1
x3
• Otra solución de vértice es:
5
x4 = 0
4
11
x2 =
x5 = 0
4
1
x6 = 0
x3 =
4
x1 =
• Esta nos da el mismo valor de la función objetivo v% = −8 y tiene todos
los costos reducidos no negativos, por lo tanto, también es solución
óptima.
Apuntes de Clases • Optimización • Claudio Seebach
Programación Lineal • 102
Ejemplo Múltiples Soluciones
• Cualquier combinación convexa también será solución óptima, es decir,
todo x tal que
 5 
 
2
4
 11 
3
 41 
 
 
0
4



x = α   + (1 − α) 
con 0 ≤ α ≤ 1.
2
0
 
 
 0 
0
0
0
Apuntes de Clases • Optimización • Claudio Seebach
Programación Lineal • 103
Agregando una variable al tableau final
• Para incorporar una nueva variable que podrı́a ser atractiva en la solución
óptima basta tomar el tableau final y vemos cuáles son las variables
básicas y cuáles las no básicas.
• Si una nueva actividad x7 aportara −6 por unidad a la función objetivo
y consumiera una unidad de cada recurso en las restricciones, el costo
reducido respectivo serı́a:

−1  
−3 2 1
1
−13



1=
<0
r7 = −6 − [−1 − 2 0] −1 2 0
3
1 1 0
1
• Por lo tanto, sı́ nos interesarı́a incorporar x7 a la base y ası́ mejorar la
solución actual.
Apuntes de Clases • Optimización • Claudio Seebach
Programación Lineal • 104
Agregando una variable al tableau final
• Los aij asociados a x7 en el tableau actual son:

−1    2 
−3 2 1
1
3
B−1D7 =  −1 2 0   1  =  13 
2
1 1 0
1
3
• El tableau serı́a por lo tanto:
x1 x2 x3 x4 x5 x6 x7
13
1
2
11
0 1 0 −1
8
24
6
3
4
−3
7
1
1
1 0 0 8 24 6 3 54
2
2
1
0 0 1 18 −5
24
3
3
4
0 0 0 0 31 43 −13
8
3
Apuntes de Clases • Optimización • Claudio Seebach
v.b.
x2
x1
x3
Programación Lineal • 105
Descargar