Está en la página 1de 2

ALGORITMO (PRIMAL) DEL SÍMPLEX PARA VARIABLES ACOTADAS

(Problema de minimización)

Paso 1. Determinar una base inicial B y sus matrices no básicas asociadas N1 y N2 , de


forma que lB ≤ B −1 b − B −1 N1 lN1 − B −1 N2 uN2 ≤ uB .

Paso 2. Poner xB = B −1 b − B −1 N1 lN1 − B −1 N2 uN2 , xN1 = lN1 y xN2 = uN2 . Calcular


yj = B −1 aj y zj − cj = ctB yj − cj ∀j ∈ J1 ∪ J2 .

Paso 3. Si zj − cj ≤ 0 ∀j ∈ J1 y zj − cj ≥ 0 ∀j ∈ J2 , PARAR (la solución es óptima:


Si ∃ k ∈ J1 ∪ J2 tal que zk − ck = 0 y ∆k > 0, donde ∆k se calcula como en el
Paso 5 si k ∈ J1 o como en el Paso 6 si k ∈ J2 , existen infinitas soluciones óptimas;
si zj − cj < 0 ∀j ∈ J1 y zj − cj > 0 ∀j ∈ J2 , la solución es única).

Paso 4. Calcular k = argmáx {{zj − cj | j ∈ J1 con zj − cj > 0}, {−(zj − cj ) | j ∈ J2


con zj − cj < 0}}. Si k ∈ J1 , ir al Paso 5. Si k ∈ J2 , ir al Paso 6.
 ( )

 mı́n xBi − lBi
| i ∈ {1, . . . , m} con yik > 0 si yk 6≤ 0
Paso 5. Calcular γ1 = 
y ik y

+∞ si yk ≤ 0
 ( )

 mı́n uB i − x B i
| i ∈ {1, . . . , m} con yik < 0 si yk 6≥ 0
γ2 = 
−y ik . Poner

+∞ si yk ≥ 0
∆k = mı́n {γ1 , γ2 , uk − lk }. Si ∆k = +∞, PARAR (el valor óptimo de la función
objetivo no está acotado). Si ∆k = uk − lk , eliminar la columna ak de la matriz N1 ,
introducirla en la matriz N2 e ir al Paso 2. Si ∆k = γ1 , intercambiar las columnas
aBr y ak de las matrices B y N1 e ir al Paso 2. Si ∆k = γ2 , eliminar la columna
aBr de la matriz B, introducir en su lugar la columna ak , eliminar la columna ak
de la matriz N1 , introducir la columna aBr en la matriz N2 e ir al Paso 2.
 ( )

 mı́n xBi − lBi
| i ∈ {1, . . . , m} con yik < 0 si yk 6≥ 0
Paso 6. Calcular γ1 = 
−y ik y

+∞ si yk ≥ 0
 ( )

 mı́n uB i − x B i
| i ∈ {1, . . . , m} con yik > 0 si yk 6≤ 0
γ2 = 
yik . Poner

+∞ si yk ≤ 0
∆k = mı́n {γ1 , γ2 , uk − lk }. Si ∆k = +∞, PARAR (el valor óptimo de la función
objetivo no está acotado). Si ∆k = uk − lk , eliminar la columna ak de la matriz N2 ,
introducirla en la matriz N1 e ir al Paso 2. Si ∆k = γ1 , eliminar la columna aBr
de la matriz B, introducir en su lugar la columna ak , introducir la columna aBr en
la matriz N1 , eliminar la columna ak de la matriz N2 e ir al Paso 2. Si ∆k = γ2 ,
intercambiar las columnas aBr y ak de las matrices B y N2 e ir al Paso 2.
ALGORITMO (PRIMAL) DEL SÍMPLEX PARA VARIABLES ACOTADAS
(Problema de maximización)

Paso 1. Determinar una base inicial B y sus matrices no básicas asociadas N1 y N2 , de


forma que lB ≤ B −1 b − B −1 N1 lN1 − B −1 N2 uN2 ≤ uB .

Paso 2. Poner xB = B −1 b − B −1 N1 lN1 − B −1 N2 uN2 , xN1 = lN1 y xN2 = uN2 . Calcular


yj = B −1 aj y zj − cj = ctB yj − cj ∀j ∈ J1 ∪ J2 .

Paso 3. Si zj − cj ≥ 0 ∀j ∈ J1 y zj − cj ≤ 0 ∀j ∈ J2 , PARAR (la solución es óptima:


Si ∃ k ∈ J1 ∪ J2 tal que zk − ck = 0 y ∆k > 0, donde ∆k se calcula como en el
Paso 5 si k ∈ J1 o como en el Paso 6 si k ∈ J2 , existen infinitas soluciones óptimas;
si zj − cj > 0 ∀j ∈ J1 y zj − cj < 0 ∀j ∈ J2 , la solución es única).

Paso 4. Calcular k = argmı́n {{zj − cj | j ∈ J1 con zj − cj < 0}, {−(zj − cj ) | j ∈ J2


con zj − cj > 0}}. Si k ∈ J1 , ir al Paso 5. Si k ∈ J2 , ir al Paso 6.
 ( )

 mı́n xBi − lBi
| i ∈ {1, . . . , m} con yik > 0 si yk 6≤ 0
Paso 5. Calcular γ1 = 
y ik y

+∞ si yk ≤ 0
 ( )

 mı́n uB i − x B i
| i ∈ {1, . . . , m} con yik < 0 si yk 6≥ 0
γ2 = 
−y ik . Poner

+∞ si yk ≥ 0
∆k = mı́n {γ1 , γ2 , uk − lk }. Si ∆k = +∞, PARAR (el valor óptimo de la función
objetivo no está acotado). Si ∆k = uk − lk , eliminar la columna ak de la matriz N1 ,
introducirla en la matriz N2 e ir al Paso 2. Si ∆k = γ1 , intercambiar las columnas
aBr y ak de las matrices B y N1 e ir al Paso 2. Si ∆k = γ2 , eliminar la columna
aBr de la matriz B, introducir en su lugar la columna ak , eliminar la columna ak
de la matriz N1 , introducir la columna aBr en la matriz N2 e ir al Paso 2.
 ( )

 mı́n xBi − lBi
| i ∈ {1, . . . , m} con yik < 0 si yk 6≥ 0
Paso 6. Calcular γ1 = 
−y ik y

+∞ si yk ≥ 0
 ( )

 mı́n uB i − x B i
| i ∈ {1, . . . , m} con yik > 0 si yk 6≤ 0
γ2 = 
yik . Poner

+∞ si yk ≤ 0
∆k = mı́n {γ1 , γ2 , uk − lk }. Si ∆k = +∞, PARAR (el valor óptimo de la función
objetivo no está acotado). Si ∆k = uk − lk , eliminar la columna ak de la matriz N2 ,
introducirla en la matriz N1 e ir al Paso 2. Si ∆k = γ1 , eliminar la columna aBr
de la matriz B, introducir en su lugar la columna ak , introducir la columna aBr en
la matriz N1 , eliminar la columna ak de la matriz N2 e ir al Paso 2. Si ∆k = γ2 ,
intercambiar las columnas aBr y ak de las matrices B y N2 e ir al Paso 2.

También podría gustarte