Método simplex modificado Los pasos iterativos del método

Anuncio
Método simplex modificado
Los pasos iterativos del método simplex modificado o revisado son exactamente a los que seguimos con la tabla. La principal diferencia esá en que en
este método se usa el algebra de matrices, con la gran ventaja que reduce el
error de redondeo.
Desarrollo de las condiciones de optimalidad y factibilidad
El problema lineal general se puede plantear como sigue:
Pn
Maximizar
o
Minimizar
z
=
j=1 cj xj sujeta a
Pn
j=1 Pj xj = b, xj ≥ 0, j = 1, . . . , n.
Para un vector básico dado XB con su base B y vector objetivo CB correspondientes, la tabla general sı́mplex (matricial) indica que toda iteración
sı́mplex se puede representar con las siguientes ecuaciones:
z+
n
X
(zj − cj )xj = CB B −1 b
j=1
(XB )i +
n
X
(B −1 Pj )i xj = (B −1 b)i
j=1
en donde
zj − cj = CB B −1 Pj − cj
Se usa la notación (V )i , para representar al i-ésimo elemento del vector V .
Condición de optimalidad. En la ecuación de z de arriba, un aumento
de xj no básica por encima de su valor actual cero mejorará el valor de z en
relación con su valor actual, CB B −1 b, sólo si zj − cj es estrictamente negativo
en el caso de maximización, y estrictamente positivo en caso de minimización.
En caso contrario xj no puede mejorar la solución y debe permanecer como
no básica de valor cero. Aunque se puede escoger cualquier variable no básica
que satisfaga esta condición para mejorar la solución, en el método sı́mplex
se usa una regla aproximada, que selecciona a la variable entrante como la
1
que tiene zj − cj más negativo si es maximización y más positivo si es minimización.
Condición de factibilidad. La determinación del vector saliente se basa en
examinar la ecuación de restricción asociada con la i-ésima variable básica.
En forma especı́fica,
(XB )i +
n
X
(B −1 Pj )i xj = (B −1 b)i
j=1
Cuando se selecciona el vector Pj con la condición de optimalidad para entrar
a la base, su variable asociada xj aumentará sobre el valor cero. Al mismo
tiempo, todas las variables no básicas restantes quedan de valor cero. Ası́, la
i-ésima ecuación de restricción se reduce a
(XB )i = (B −1 b)i − (B −1 Pj )i xj
La ecuación indica que si (B −1 Pj )i > 0, un aumento de xj puede hacer
que (XB )i , se vuelva negativo, lo cual viola la condición de no negatividad,
(XB )i ≥ 0 para toda i. Entonces,
(B −1 b)i − (B −1 Pj )i xj ≥ 0, ∀ i
Esta condición lleva al siguiente valor máximo de la variable entrante xj :
mı́n (B −1 b)i
−1
| (B Pj )i > 0
xj =
(B −1 Pj )i
i
La variable básica asociada a la relación mı́nima sale de la solución básica y
se convierte en no básica con valor cero.
Algoritmo sı́mplex modificado
Después de desarrollar las condiciones de optimalidad y factibilidad, ahora
presentaremos los pasos de cómputo del método sı́mplex modificado (o revisado).
Paso 0. Forme una solución básica factible de arranque, y sean B y CB su
base asociada y vector de coeficientes objetivo, respectivamente.
2
Paso 1. Calcule la inversa B −1 usando un método adecuado de inversión.
Paso 2. Para cada variable xj no básica, calcule
zj − cj = CB B −1 Pj − cj
Si zj −cj ≥ 0 en maximización (≤ 0 en minimización) para toda xj no básica,
deténgase; la solución óptima es
XB = B −1 b, z = CB XB
En caso contrario, aplique la condición de optimalidad y determine la variable entrante xj como la variable no básica con el valor más negativo de
zj − cj en caso de maximización, y más positivo en caso de minimización.
Paso 3. Calcule B −1 Pj . Si todos los elementos de B −1 Pj son negativos o
cero, deténgase; el problema no tiene solución acotada (realmente esto es una
no acotación en el espacio, lo que en algunos problemas no afecta, como en los
de minimización. Es recomendable revisar el comportamiento de la función
objetivo.). En caso contrario, calcule B −1 b. Entonces, para todos los elementos estrictamente positivos de B −1 Pj , determine las relaciones definidas por
la condición de factibilidad. La variable básica xi asociada con la relación
mı́nima es la variable saliente.
Paso 4. A partir de la base actual B, forme una nueva base reemplazando
al vector saliente Pj con el vector entrante Pj . Vaya al paso 1 para iniciar
una nueva iteración.
Ejemplo 7.2-1
Se resolverá el modelo de Reddy Mikks con el algoritmo sı́mplex modificado.
El mismo modelo se resolvió con el método tabular previamente. Al comparar los dos métodos se demostrará que son uno y el mismo.
La forma de ecuación, del modelo de Reddy Mikks, se puede expresar como
sigue, en forma matricial:
Maximizar z = (5, 4, 0, 0, 0, 0)(x1 , x2 , x3 , x4 , x5 , x6 )T
3
sujeta a


6
 1

 −1
0
4
2
1
1
1
0
0
0
0
1
0
0
0
0
1
0

0 


0 

0 

1 
x1
x2
x3
x4
x5
x6




 
=
 



24
6 

1 
2
Usaremos la notación C = (c1 , c2 , . . . , c6 ) para representar a los coeficientes de
la función objetivo, y (P1 , P2 , . . . , P6 ) para representar los vectores columna
de las ecuaciones de restricción. El lado derecho de las restricciones expresan
al vector b.
En los cálculos siguientes presentaremos la fórmula algebraica para cada paso,
y su respuesta numérica final, sin detallar las operaciones aritméticas. Es instructivo que usted complete el desarrollo de cada paso.
Iteración 0.
XB0 = (x3 , x4 , x5 , x6 ), CB0 = (0, 0, 0, 0)
B0 = (P3 , P4 , P5 , P6 ) = I, B0−1 = I
Ası́,
XB0 = B0−1 b = (24, 6, 1, 2)T , z = CB0 XB0 = 0
Cálculos de optimalidad
CB0 B0−1 = (0, 0, 0, 0)
{zj − cj }j=1,2 = CB0 B0−1 (P1 , P2 ) − (c1 , c2 ) = (−5, −4)
Por consiguiente, P1 es vector entrante.
Cálculos de factibilidad
XB0 = (x3 , x4 , x5 , x6 )T = (24, 6, 1, 2)T
4
B0−1 P1 = (6, 1, −1, 0)T
Por consiguiente,
x1 = mı́n
24 6
, , −, − = mı́n{4, 6, −, −} = 4
6 1
y P3 es el vector saliente.
Los resultados anteriores se pueden resumir en el conocido formato de tabla
sı́mplex. La presentación debe contribuir a convencer al lector de que los dos
métodos son esencialmente el mismo.
Básica x1 x2 x3 x4 x5 x6 Solución
z
−5 −4 0 0 0 0
0
x3
6
24
x4
1
6
x5
−1
1
x6
0
2
Iteración 1.
XB1 = (x1 , x4 , x5 , x6 ), CB1 = (5, 0, 0, 0)


6 0 0 0
 1 1 0 0 

B1 = (P1 , P4 , P5 , P6 ) = 
 −1 0 1 0 
0 0 0 1
Al usar un método adecuado de inversión, la inversa resulta:


1/6 0 0 0
 −1/6 1 0 0 

B1−1 = 
 1/6 0 1 0 
0 0 0 1
Por consiguiente,
XB1 = B1−1 b = (4, 2, 5, 2)T , z = CB1 XB1 = 20
5
Cálculos de optimalidad:
CB1 B1−1 = (5/6, 0, 0, 0)
{zj − cj }j=2,3 = CB1 B1−1 (P2 , P3 ) − (c2 , c3 ) = (−2/3, 5/6)
Ası́, el vectro entrante es P2 .
Cálculos de factibilidad:
XB1 = (x1 , x4 , x5 , x6 )T = (4, 2, 5, 2)T
B1−1 P2 = (2/3, 4/3, 5/3, 1)T
Por consiguiente,
x2 = mı́n
4
2
5 2
,
,
,
2/3 4/3 5/3 1
= mı́n{6, 3/2, 3, 2} = 3/2
y P4 se vuelve vector saliente.
Iteración 2.
XB2 = (x1 , x2 , x5 , x6 )T , CB2 = (5, 4, 0, 0)


6 4 0 0
 1 2 0 0 

B2 = (P1 , P2 , P5 , P6 ) = 
 −1 1 1 0 
0 1 0 1
Por lo tanto,


1/4 −1/2 0 0
 −1/8
3/4 0 0 

B2−1 
 3/8 −5/4 1 0 
1/8 −3/4 0 1
Ası́,
XB2 = B2−1 b = (3, 3/2, 5/2, 1/2)T , z = CB2 XB2 = 21
6
Cálculos de optimalidad:
CB2 B2−1 = (3/4, 1/2, 0, 0)
{zj − cj }j=3,4 = CB2 B2−1 (P3 , P4 ) − (c3 , c4 ) = (3/4, 1/2)
Ası́, XB2 es óptimo y terminan los cálculos.
Resumen de la solución óptima:
x1 = 3, x2 = 1.5, z = 21
Otro ejemplo:
Resolver:
Minimizar z = 7x2 + 11x3 − 10x4 + 26x6
sujeta a
x1
x2 −x3
+x5 +x6
x2 −x3 +x4
+3x6
+x2 −3x3 +x4 +x5
xk
= 6
= 8
= 12
≥ 0, ∀ k.
Supongamos que escogemos como solución básica factible de inicio, XB0 =
(x2 , x4 , x5 )T . En efecto se tiene que:


 


 

  
1 0 1
x2
6
x2
1
1 −1
6
2
 1 1 0   x4  =  8  ⇒  x4  =  −1
0
1  8  =  6 ,
1 1 1
x5
12
x5
0 −1
1
12
4
por lo tanto, es solución básica factible y las columnas de su matriz asociada
forman una base factible inicial.
Iteración 0.
XB0 = (x2 , x4 , x5 ), CB0 = (7, −10, 0)
7




1 0 1
1
1 −1
0
1 
B0 = (P2 , P4 , P5 ) =  1 1 0  , B0−1 =  −1
1 1 1
0 −1
1
Ası́,
XB0 = B0−1 b = (2, 6, 4)T , z = CB0 XB0 = −46
Cálculos de optimalidad
CB0 B0−1 = (17, 7, −17)
{zj − cj }j=1,3,6 = CB0 B0−1 (P1 , P3 , P6 ) − (c1 , c3 , c6 ) = (−17, 16, 12)
Por consiguiente, P3 es vector entrante.
Cálculos de factibilidad
XB0 = (x2 , x4 , x5 )T = (2, 6, 4)T
B0−1 P3 = (1, −2, −2)T
Por consiguiente,
x3 = mı́n {2, −, −} = 2
y P2 es el vector saliente.
Iteración 1.
XB1 = (x3 , x4 , x5 ), CB1 = (11, −10, 0)


−1 0 1
B1 = (P3 , P4 , P5 ) =  −1 1 0 
−3 1 1
Al usar un método adecuado de inversión,

1 1
B1−1 =  1 2
2 1
8
la inversa resulta:

−1
−1 
−1
Por consiguiente,
XB1 = B1−1 b = (2, 10, 8)T , z = CB1 XB1 = −78
Cálculos de optimalidad:
CB1 B1−1 = (1, −9, −1)
{zj − cj }j=1,2,6 = CB1 B1−1 (P1 , P2 , P6 ) − (c1 , c2 , c6 ) = (−1, −20, −52)
Ası́, XB1 es óptimo y terminan los cálculos.
Resumen de la solución óptima:
x1 = 0, x2 = 0, x3 = 2, x4 = 10, x5 = 8, x6 = 0, z = −78
Método simplex dual modificado
Los pasos del método dual son como sigue:
Paso 0. Sea B0 = I la base inicial y al menos uno de los elementos de XB0 sea
negativo (verificar optimalidad).
Paso 1. Calcular XB = B −1 b, los valores actuales de las variables básicas. Seleccionar la variable saliente xr que tenga el valor más negativo. Si todos
los elementos de XB son no negativos, detenerse; la solución actual es
factible.
Paso 2.
a) Calcular zj − cj = CB B −1 Pj − cj para todas las variables xj no
básicas.
b) Para todas las variables no básicas xj , calcular los coeficientes de
restricción (B −1 Pj )r asociado con la fila de la variable saliente xj .
9
c) La variable entrante está asociada a
mı́n zj − cj −1
θ=
(B −1 Pj )r , (B Pj )r < 0
j
Si todas las (B −1 Pj )r ≥ 0, no existe solución factible.
Paso 3. Obtener la base nueva invercambiando los vectores entrante y
saliente (Pj , Pr ). Calcular la nueva inversa y seguir en el paso
1.
Ejemplo.
Aplicar el método dual al siguiente problema:
Minimizar z = 2x1 + x2
sujeta a
≥
3
≥
6
≤
3
≥ 0, ∀ k.
3x1 + x2
4x1 + 3x2
x1 + x2
xk
Primero multiplico las dos primeras restricciones por −1. Luego agregamos
variables de holgura:
Minimizar z = 2x1 + x2
sujeta a
−3x1 − x2 + x3
−4x1 − 3x2 + x4
x1 + x2 + x5
xk
=
−3
=
−6
=
3
≥ 0, ∀ k.
Iteración 0
Paso 0.

XB0

1 0 0
= (x3 , x4 , x5 )T , B0 =  0 1 0  , B0−1 = B0
0 0 1
10
Paso 1.
XB0 = B0−1 b = (−3, −6, 3)T
Entonces la variable saliente es x4 (la segunda entrada en el vector r = 2).
Paso 2a.
{zj −cj }j=1,2 = CB0 B0−1 (P1 , P2 )−(c1 , c2 ) = (0, 0, 0)I(P1 , P2 )−(2, 1) = (−2, −1)
Paso 2b.
{(B0−1 P1 )2 , (B0−1 P2 )2 } = (−4, −3)
Paso 2c.
mı́n zj − cj −1
= mı́n(1/2, 1/3) = 1/2 ⇒ x2
(B −1 P ) , (B0 Pj )r < 0
j
j r
0
j=1,2,r=2
Paso 3.


1 −1 0
B1 = (P3 , P2 , P5 ) =  0 −3 0 
0
1 1
Iteración 1
Paso 0.

XB1 = (x3 , x2 , x5 )T , B1−1

1 −1/3 0
=  0 −1/3 0  , CB1 = (0, 1, 0)
0
1/3 1
Paso 1.
XB1 = B1−1 b = (−1, 2, 1)T ,
entonces sale x3 , r = 1
11
Paso 2a.

{zj − cj }j=1,4


1 −1/3 0
−3 0
= CB1 B1−1 (P1 , P4 ) − (c1 , c4 ) = (0, 1, 0)  0 −1/3 0   −4 1  − (2, 0)
0
1/3 1
1 0
= (2/3, −2/3)
Paso 2b.
{(B0−1 P1 )1 , (B0−1 P4 )1 } = (−5/3, −1/3)
Paso 2c.
mı́n zj − cj −1
= mı́n(2/5, 2) = 2/5 ⇒ x1
(B −1 P ) , (B0 Pj )r < 0
j
j r
0
j=1,4,r=1
Paso 3.


−3 −1 0
B2 = (P1 , P2 , P5 ) =  −4 −3 0 
1
1 1
Iteración 2
Paso 0.

XB2 = (x1 , x2 , x5 )T , B2−1

−3/5
1/5 0
=  4/5 −3/5 0  , CB2 = (2, 1, 0)
−1/5
2/5 1
Paso 1.
XB2 = B2−1 b = (3/5, 6/5, 6/5)T ,
óptimo, x1 = 3/5, x2 = 6/5, z = CB2 XB2 = 12/5.
12
Matriz inversa
Método de la matriz adjunta
Dada A, matriz no singular de n × n,
A−1 =
1
adjA,
detA
donde
adjA = kAij kT , Aij = (−1)i+j Mij ,
y Mij es el menor del elemento aij . Este es el determinante de la matriz que
resulta de quitar de la matriz A la fila i y la clumna j.
Ejemplo: Calculemos la inversa de,
1 2
A=
,
3 4
primero, detA = −2. Luego M11 =det 4 = 4, M12 =det3 = 3, M21 =det2 =
2, M22 =det1 = 1. Entonces, A11 = (−1)1+1 M11 = 4, A12 = (−1)1+2 M12 =
−3, A21 = (−1)2+1 M21 = −2, A22 = (−1)2+2 M22 = 1. Por lo tanto,
adjA =
T
4 −3
−2
1
=
4 −2
−3
1
,
entonces,
A
−1
1
=
−2
4 −2
−3
1
=
−2
1
3/2 −1/2
.
Forma de producto de la inversa
Sean Bn y Bn+1 dos matrices no singulares de n × n que difieren en una
columna solamente. Si Bn−1 es conocida, entonces
−1
Bn+1
= E Bn−1 ,
donde E se construye de la siguiente forma: sea Pj la columna de Bn que se
sustituye por Pr para producir Bn+1 . Entonces la matriz E se forma como la
13
matriz identidad de n × n en la que se ha reemplazado su j-ésima columna
por,


(Bn−1 Pr )1
 (Bn−1 Pr )2 


..


1
.


ξ = − −1

,
(Bn Pr )j  (−1)j 


..


.
−1
(Bn Pr )j
−1
no existe.
si (Bn−1 Pr )j = 0, Bn+1
Ejemplo:
Tomemos una de las matrices

1 −1

0 −3
B1 =
0
1
del ejemplo del método dual modificado:



0
1 −1/3 0
0  , B1−1 =  0 −1/3 0  ,
1
0
1/3 1
y tenemos,


−3 −1 0
B2 =  −4 −3 0  .
1
1 1
Queremos encontrar B2−1 .
primera columna, entonces

1
−1

0
B1 P1B2 =
0
Primero, notemos que B1 y B2 difieren en la
j = 1. Luego,

 

−1/3 0
−3
−5/3
−1/3 0   −4  =  4/3  ,
1/3 1
1
−1/3
entonces (B1−1 P1B2 )1 = −5/3. Por lo tanto,


−3/5
ξ =  4/5  ,
−1/5
y tenemos,


−3/5 0 0
E =  4/5 1 0  .
−1/5 0 1
14
Finalmente,

B2−1 = EB1−1

 

1 −1/3 0
−3/5
1/5 0
−3/5 0 0
=  4/5 1 0   0 −1/3 0  =  4/5 −3/5 0 
−1/5 0 1
0
1/3 1
−1/5
2/5 1
15
Descargar