Inicialización del Algoritmo Simplex
Inicialización del Algoritmo Simplex
El algoritmo del simplex parte de una solución básica factible asociada a una
base B ⊂ A. Salvo casos particulares, la determinación de esta base inicial no
es una tarea trivial desde el punto de vista computacional, ya que implicarı́a la
inversión de matrices de
dimensión
m×m y el número de estas inversiones puede
n
alcanzar el valor lı́mite cuando el problema de programación lineal no
m
admita soluciones factibles.
El método de las dos fases y el de las penalizaciones son dos procedimientos
eficientes para determinar una solución básica factible inicial.
Ambos procedimientos detectan el caso de no existencia de solución facti-
ble sin necesidad de enumerar todas las bases. Además, en el caso en que haya
redundancia del sistema, es decir, cuando rg(A) < m, identifican la fila redun-
dante y la combinación lineal de filas asociada, permitiendo su eliminación y la
solución del problema.
holgura; es decir,
B = {ah1 , . . . , ahm }
M in x1 −3x2 −x3
x1 +4x2 +3x3 ≤ 12
x1 +2x2 −x3 ≤4
xj ≥ 0 ∀j = 1, 2, 3
M in x1 −3x2 −x3
x1 +4x2 +3x3 +xh1 = 12
x1 +2x2 −x3 +xh2 =4
xj ≥0 ∀j = 1, 2, 3
xhi ≥0 ∀i = 1, 2
x̄B = b z̄ = 0 yj = aj ∀j ∈ I ∪ J zj − cj = −cj ∀j ∈ I ∪ J
1 −3 −1 0 0
x1 x2 x3 xh1 xh2
−1 3 1 0 0 0
0 xh1 1 4 3 1 0 12
0 xh2 1 2 −1 0 1 4
Solución básica inicial. Variables artificiales I.O. Introducción 97
b≥0
S = {x ∈ IRn / Ax = b ; x ≥ 0}
a
a x n+m a a
S = ∈ IR / Ax + Ix = b x, x ≥ 0
xa
donde
⎛ ⎞
xa1
⎜ . ⎟
xa = ⎜ . ⎟
⎝ . ⎠≥0
xam
x∈S ⇐⇒ (x, 0) ∈ S a
La base inicial formada por los vectores columna unitarios asociados a las
variables artificiales
B = {aa1 , . . . , aam } = I
(0, b) ∈ S a
El objetivo es intentar anular las variables artificiales para obtener una so-
lución básica factible para el problema original. Dos procedimientos generales
son: el método de las dos fases y el método de las penalizaciones.
Método de las dos fases I.O. Introducción 99
1. Fase 1
Se introducen las variables artificiales según se ha detallado anteriormente
y se fuerza su salida mediante el algoritmo del simplex a partir de la
base inicial formada por los vectores asociados a las variables artificiales
resolviendo el siguiente problema:
⎧
⎪
⎪ 1t xa
⎨ M in
1
P Ax +Ixa =b
⎪
⎪
⎩ x, xa ≥0
I ∗ = Io∗ ∪ Ia∗
donde
I.O. Introducción 100 Algoritmo del simplex. Inicialización
a) Ia∗ = ∅
Necesariamente, todas las variables artificiales se anulan, por lo que
se eliminan de la tabla del simplex óptima. La primera fase ha ter-
minado. IR A LA FASE 2.
b) Ia∗ = ∅
Hay dos opciones:
∃i ∈ Ia∗ tal que x̄ai > 0
En este caso, no existe solución factible para el problema P . Ver
proposición 4.1.
NO EXISTE SOLUCIÓN FACTIBLE. FIN.
x̄ai = 0 ∀i ∈ Ia∗
En este caso, para cada fila i ∈ Ia∗ se distinguen dos casos:
• ∃j ∈ Jo∗ / yia j = 0
Sale de la base B ∗ el vector aai pivotando en el elemento
yia j = 0 obteniendo la misma solución con una base distinta
que no la incluye.
Para pivotar, al ser solución degenerada, no es preciso que
yia j > 0, pudiendo ser negativo.
Se actualiza la base B ∗ = B ∗ ∪ {aj } − {aai }.
• yia j = 0 ∀j ∈ Jo∗
En este caso, la fila ia -ésima puede ser suprimida al ser re-
dundante. Ver proposición 4.2.
En ambos casos, después de pivotar o suprimir filas redundantes
hasta eliminar todas las variables artificiales en la base con valor
Método de las dos fases I.O. Introducción 101
0, IR A LA FASE 2.
2. Fase 2
Se resuelve el problema P partiendo de la tabla del simplex óptima de la
Fase 1 y con la base inicial B ∗ . Al haber modificado los coeficientes de la
función objetivo, hay que volver a calcular la fila de los zj − cj y z̄.
Las dos posibles salidas para el problema P son ahora SOLUCIÓN NO
ACOTADA y SOLUCIÓN ÓPTIMA.
0 0 0 0 0 0 1 1 1
x1 x2 x3 x4 x5 x6 xa1 xa2 xa3
2 0 6 3 1 1 0 0 0 8
1 xa1 1 0 1 1 −1 2 1 0 0 2
1 xa2 −1 1 2 0 1 −1 0 1 0 1
1 xa3 2 −1 3 2 1 0 0 0 1 5
0 0 0 0 0 0 1 1 1
x1 x2 x3 x4 x5 x6 xa1 xa2 xa3
5 −3 0 3 −2 4 0 −3 0 5
1 xa1 3/2 −1/2 0 1 −3/2 5/2 1 −1/2 0 3/2
0 x3 −1/2 1/2 1 0 1/2 −1/2 0 1/2 0 1/2
1 xa3 7/2 −5/2 0 2 −1/2 3/2 0 −3/2 1 7/2
0 0 0 0 0 0 1 1 1
x1 x2 x3 x4 x5 x6 xa1 xa2 xa3
0 −4/3 0 −1/3 3 −13/3 −10/3 −4/3 0 0
0 x1 1 −1/3 0 2/3 −1 5/3 2/3 −1/3 0 1
0 x3 0 1/3 1 1/3 0 1/3 1/3 1/3 0 1
1 xa3 0 −4/3 0 −1/3 3 −13/3 −7/3 −1/3 1 0
I.O. Introducción 102 Algoritmo del simplex. Inicialización
0 0 0 0 0 0 1 1 1
x1 x2 x3 x4 x5 x6 xa1 xa2 xa3
0 0 0 0 0 0 −1 −1 −1 0
0 x1 1 −7/9 0 5/9 0 2/9 −1/9 −4/9 1/3 1
0 x3 0 1/3 1 1/3 0 1/3 1/3 1/3 0 1
0 x5 0 −4/9 0 −1/9 1 −13/9 −7/9 −1/9 1/3 0
B ∗ = {a1 , a3 , a5 }
Fase 2:
Después de eliminar las columnas asociadas a las variables artificiales, hay
que volver a calcular la primera fila siguiendo los siguientes pasos:
1 2 −1 −2 2 3
x1 x2 x3 x4 x5 x6
0 −4 0 2 0 −6 0
1 x1 1 −7/9 0 5/9 0 2/9 1
−1 x3 0 1/3 1 1/3 0 1/3 1
2 x5 0 −4/9 0 −1/9 1 −13/9 0
1 2 −1 −2 2 3
x1 x2 x3 x4 x5 x6
−18/5 −6/5 0 0 0 −34/5 −18/5
−2 x4 9/5 −7/5 0 1 0 2/5 9/5
−1 x3 −3/5 4/5 1 0 0 1/5 2/5
2 x5 1/5 −3/5 0 0 1 −7/5 1/5
Observación 4.1. Dada una base B que proporciona una solución básica fac-
tible, la tabla del simplex se construye multiplicando el sistema Ax = b por su
inversa B −1 y completando la primera fila de los zj − cj y z̄.
Recı́procamente, dada una tabla del simplex, la base B se construye a partir
de los vectores aj asociados a los vectores unitarios es de la tabla en el orden
canónico s = 1, 2, . . . , m.
Además, si la tabla inicial del simplex incorporaba una submatriz identidad
bien porque I ⊂ A o bien porque se hubieran añadido variables artificiales, se
puede recuperar de forma instantánea la inversa de la base B −1 sin más que
reproducir los yj de la tabla asociados a los vectores unitarios de la submatriz
identidad que originó la base inicial.
Para comprobar este resultado, y suponiendo que se han añadido las m va-
riables artificiales, es suficiente con observar que las últimas m columnas de la
tabla del simplex son el producto del sistema de ecuaciones ampliado por B −1 .
Concretamente, la tabla del simplex con variables artificiales es
xt xat
zj − c j zia − cai z̄
−1 −1
B A B I x̄B
Con el fin de identificar en cada iteración del simplex la inversa de la base
asociada, se pueden mantener las columnas de las variables artificiales en la Fase
2. Estos vectores nunca entrarán en ninguna base en la Fase 2.
El método de las dos fases no sólo proporciona una base inicial, sino que
I.O. Introducción 104 Algoritmo del simplex. Inicialización
Integrando el método de las dos fases para determinar una solución básica
inicial, se propone el siguiente esquema del algoritmo del simplex:
Método de las dos fases I.O. Introducción 105
Io = ∅ , Ia = {1, . . . , m} ; I = Io ∪ Ia Jo = {1, . . . , n} , Ja = ∅ ; J = Jo ∪ Ja
m m
zj − cj = i=1 aij ∀j ∈ Jo , zs − cs = 0 ∀s ∈ Ia , z̄ = i=1 bi
yj = aj ∀j ∈ Jo ys = es ∀s ∈ Ia x̄ = b
fase=1
do
J + ≡ {j ∈ J / zj − cj > 0}
if (J + = ∅) then
if (fase = 1) then
if (Ia = ∅) then ! Eliminar Variables artificiales de la tabla
zj − cj = ctB yj − cj ∀j ∈ Jo zs − cs = 0 ∀s ∈ Io z̄ = ctB x̄
fase = 2
else
Ia+ ≡ {i ∈ Ia / x̄ai > 0}
if (Ia+ = ∅) then
NO EXISTE SOLUCIÓN FACTIBLE. FIN.
else
do while (i ∈ Ia / x̄ai = 0)
Joi ≡ {j ∈ Jo / yia j = 0}
if (Joi = ∅) then
Eliminar la ecuación ia -ésima y la variable xai de la Tabla.
else
Sea j ∈ Joi .
Ia = Ia − {i} ; Ja = Ja ∪ {i} Jo = Jo − {j} ; Io = Io ∪ {j}
Pivotar la Tabla en yia j
endif
enddo
endif
endif
else ! Fase 2
SOLUCIÓN ÓPTIMA: x̄∗s = x̄s ∀s ∈ Io , x̄∗j = 0 ∀j ∈ Jo , z̄ ∗ = z̄. FIN.
endif
else ! ( J + = ∅)
if ( ∃k ∈ J + / yk ≤ 0) then
SOLUCIÓN NO ACOTADA. FIN.
else ! (∀k ∈ J + yk ≤ 0)
Criterio Entrada: Determinar k ∈ J tal que zk − ck = máxj∈J + {zj − cj }
Criterio Salida: Determinar l ∈ I tal que yx̄lkl = M in yx̄sks / ysk > 0
I = I ∪ {k} − {l} J = J ∪ {l} − {k}. Actualizar Io , Ia , Jo , Ja .
Pivotar la Tabla en ylk
endif
endif
enddo
I.O. Introducción 106 Algoritmo del simplex. Inicialización
Para ilustrar el caso i ∈ Ia∗ tal que existe un j ∈ Jo∗ verificando yia j = 0 se
propone el siguiente ejemplo.
0 0 1 1
x1 x2 xa1 xa2
3 2 0 0 3
1 xa1 1 1 1 0 1
1 xa2 2 1 0 1 2
0 0 1 1
x1 x2 xa1 xa2
0 −1 −3 0 0
0 x1 1 1 1 0 1
1 xa2 0 -1 −2 1 0
0 0 1 1
x1 x2 xa1 xa2
0 0 −1 −1 0
0 x1 1 0 −1 1 1
0 x2 0 1 2 −1 0
3 2 − −
x1 x2 xa1 xa2
0 0 − − 3
3 x1 1 0 −1 1 1
2 x2 0 1 2 −1 0
Demostración
Sea (x∗ , xa∗ ) la solución óptima de P 1 . Al verificar las hipótesis de la pro-
posición, el valor de la función objetivo de esta solución en el problema P 1 serı́a
positivo.
Si existiera solución factible de P , sea por ejemplo x0 , la solución (x0 , 0) serı́a
una solución del problema P 1 , y serı́a mejor que (x∗ , xa∗ ) puesto que el valor
de la función objetivo serı́a nulo. Por consiguiente, no puede existir solución
factible para P .
Fase 1:
I.O. Introducción 108 Algoritmo del simplex. Inicialización
⎧
⎪
⎪ M in xa1 +xa2 +xa3
⎪
⎪
⎪
⎪ −x3 +xa1
⎪
⎪
x1 +2x2 +2x4 =3
⎪
⎨ x1 −x2 +2x3 −3x4 +xa2 =4
P1
⎪
⎪ −x1 −5x2 +4x3 −7x4 +xa3 =2
⎪
⎪
⎪
⎪
⎪
⎪ xj ≥ 0 ∀j = 1, 2, 3, 4
⎪
⎩
xai ≥ 0 ∀i = 1, 2, 3
0 0 0 0 1 1 1
x1 x2 x3 x4 xa1 xa2 xa3
1 −4 5 −8 0 0 0 9
1 xa1 1 2 −1 2 1 0 0 3
1 xa2 1 −1 2 −3 0 1 0 4
1 xa3 −1 −5 4 −7 0 0 1 2
0 0 0 0 1 1 1
x1 x2 x3 x4 xa1 xa2 xa3
9/4 9/4 0 3/4 0 0 −5/4 13/2
1 xa1 3/4 3/4 0 1/4 1 0 1/4 7/2
1 xa2 3/2 3/2 0 1/2 0 1 −1/2 3
0 x3 −1/4 −5/4 1 −7/4 0 0 1/4 1/2
0 0 0 0 1 1 1
x1 x2 x3 x4 xa1 xa2 xa3
0 0 0 0 0 −3/2 −1/2 2
1 xa1 0 0 0 0 1 −1/2 1/2 2
0 x1 1 1 0 1/3 0 2/3 −1/3 2
0 x3 0 −1 1 −5/3 0 1/6 1/6 1
Demostración
Sea ai , con i ∈ {1, . . . , m}, el vector cuyos elementos son los de la fila i-ésima
de la matriz A de restricciones del problema P , es decir,
⎛ ⎞ ⎛ ⎞
(a1 )t ai1
⎜ .. ⎟ ⎜ . ⎟
A=⎜
⎝ .
⎟
⎠ ai = ⎜ . ⎟
⎝ . ⎠ ∀i ∈ {1, . . . , m}
m t
(a ) ain
m
λi ai = 0 ∈ IRn
i=1
siendo
I.O. Introducción 110 Algoritmo del simplex. Inicialización
λ = 0, λ ∈ IRm
m
λi bi = 0
i=1
λt = etk (B ∗ )−1
1. λ = 0
Ya que el vector λ coincide con la fila de una matriz que se puede invertir.
m
2. i=1 λi ai = 0 ∈ IRn
En efecto,
m
λi ai = λt A = etk (B ∗ )−1 A = etk (. . . , ei , . . . , yj , . . .)
i=1
etk ei = 0 ∀i ∈ Io∗
etk yj = 0 ∀j ∈ Jo∗
Método de las dos fases I.O. Introducción 111
m
3. i=1 λ i bi = 0
Por definición del vector λ, se verifica
m
λi bi = λt b = etk (B ∗ )−1 b = etk x̄B ∗ = x̄ak = 0
i=1
Fase 1:
⎧
⎪
⎪ M in xa1 +xa2 +xa3
⎪
⎪
⎪
⎪ −x3 +xa1
⎪
⎪
x1 +2x2 +2x4 =1
⎪
⎨ x1 −x2 +2x3 −3x4 +xa2 =4
P1
⎪
⎪ −x1 −5x2 +4x3 −7x4 +xa3 =2
⎪
⎪
⎪
⎪
⎪
⎪ xj ≥ 0 ∀j = 1, 2, 3, 4
⎪
⎩
xai ≥ 0 ∀i = 1, 2, 3
I.O. Introducción 112 Algoritmo del simplex. Inicialización
0 0 0 0 1 1 1
x1 x2 x3 x4 xa1 xa2 xa3
1 −4 5 −8 0 0 0 7
1 xa1 1 2 −1 2 1 0 0 1
1 xa2 1 −1 2 −3 0 1 0 4
1 xa3 −1 −5 4 −7 0 0 1 2
0 0 0 0 1 1 1
x1 x2 x3 x4 xa1 xa2 xa3
9/4 9/4 0 3/4 0 0 −5/4 9/2
1 xa1 3/4 3/4 0 1/4 1 0 1/4 3/2
1 xa2 3/2 3/2 0 1/2 0 1 −1/2 3
0 x3 −1/4 −5/4 1 −7/4 0 0 1/4 1/2
0 0 0 0 1 1 1
x1 x2 x3 x4 xa1 xa2 xa3
0 0 0 0 −3 0 −2 0
1 x1 1 1 0 1/3 4/3 0 1/3 2
1 xa2 0 0 0 0 −2 1 −1 0
0 x3 0 −1 1 −5/3 1/3 0 1/3 1
B ∗ = {a1 , aa2 , a3 }
que, como se puede comprobar, define la combinación lineal del sistema de ecua-
Método de las dos fases I.O. Introducción 113
Una vez tachadas la tercera fila de la tabla, la asociada a xa1 , y las columnas
asociadas a las variables artificiales, se pasa a la siguiente fase.
Fase 2:
Volviendo a calcular la primera fila a partir de los coeficientes de la función
objetivo del problema original, se obtiene la tabla del simplex:
2 1 −1 3
x1 x2 x3 x4
0 2 0 −2/3 3
2 x1 1 1 0 1/3 2
−1 x3 0 −1 1 −5/3 1
2 1 −1 3
x1 x2 x3 x4
−2 0 0 −4/3 −1
1 x2 1 1 0 1/3 2
−1 x3 1 0 1 −4/3 3
hay que construir una solución factible anulando las variables artificiales que
inicialmente están en la base. En la Fase 2 hay que considerar el problema de
máximo, bien multiplicando por −1 los coeficientes de la función objetivo para
convertir el problema de máximo en uno de mı́nimo o bien alterando el criterio
de entrada del algoritmo del simplex según se vio en la observación 3.2.
Al igual que con el método de las dos fases, la base inicial B está formada
por los vectores unitarios asociados a las variables artificiales, por lo que la tabla
del simplex inicial se obtiene fácilmente.
Es fácil demostrar que si (x∗ , xa∗ ) es la solución óptima de P M , x∗ será
la solución óptima de P si, y sólo si, xa∗ = 0. Esta situación se ilustra con el
siguiente ejemplo.
guiente problema
⎧
⎪
⎪ M in x1 +2x2 −x3 −2x4 +2x5 +3x6 +M xa1 +M xa2 +M xa3
⎪
⎪
⎪
⎪ −x5 +xa1
⎪
⎪
x1 +x3 +x4 +2x6 =2
⎪
⎨ −x1 +x2 +2x3 +x5 −x6 +xa2 =1
PM
⎪
⎪ 2x1 −x2 +3x3 +2x4 +x5 +xa3 =5
⎪
⎪
⎪
⎪
⎪
⎪ xj ≥ 0 ∀j = 1, . . . , 6
⎪
⎩
xai ≥ 0 ∀i = 1, . . . , 3
La tabla del simplex inicial asociada a la base B = {aa1 , aa2 , aa3 } es la siguiente
1 2 −1 −2 2 3 M M M
x1 x2 x3 x4 x5 x6 xa1 xa2 xa3
2M − 1 −2 6M + 1 3M + 2 M −2 M −3 0 0 0 8M
M xa1 1 0 1 1 −1 2 1 0 0 2
M xa2 −1 1 2 0 1 −1 0 1 0 1
M xa3 2 −1 3 2 1 0 0 0 1 5
x̄l 2 1 5 1
= M in{ ; ; }=
yl3 1 2 3 2
1 2 −1 −2 2 3 M M M
x1 x2 x3 x4 x5 x6 xa1 xa2 xa3
5M... −3M... 0 3M... −2M... 4M... 0 −3M... 0 5M − 1/2
M xa1 3/2 −1/2 0 1 −3/2 5/2 1 −1/2 0 3/2
−1 x3 −1/2 1/2 1 0 1/2 −1/2 0 1/2 0 1/2
M xa3 7/2 −5/2 0 2 −1/2 3/2 0 −3/2 1 7/2
1 2 −1 −2 2 3 M M M
x1 x2 x3 x4 x5 x6 xa1 xa2 xa3
0 −4/3M... 0 −1/3M... 3M... −12/3M... −10/3M... −4/3M... 0 0
1 x1 1 −1/3 0 2/3 −1 5/3 2/3 −1/3 0 1
−1 x3 0 1/3 1 1/3 0 1/3 1/3 1/3 0 1
M xa3 0 −4/3 0 −1/3 3 −13/3 −7/3 −1/3 1 0
1 2 −1 −2 2 3 M M M
x1 x2 x3 x4 x5 x6 xa1 xa2 xa3
0 −4 0 +2 0 −6 −M... −M... −M... 0
1 x1 1 −7/9 0 5/9 0 2/9 −1/9 −4/9 1/3 1
−1 x3 0 1/3 1 1/3 0 1/3 1/3 1/3 0 1
2 x5 0 −4/9 0 −1/9 1 −13/9 −7/9 −1/9 1/3 0
1 2 −1 −2 2 3 M M M
x1 x2 x3 x4 x5 x6 xa1 xa2 xa3
−18/5 −6/5 0 0 0 −34/5 −M... −M... −M... −18/5
−2 x4 9/5 −7/5 0 1 0 2/5 −1/5 −4/5 3/5 9/5
−1 x3 −3/5 4/5 1 0 0 1/5 2/5 3/5 −1/5 2/5
2 x5 1/5 −3/5 0 0 1 −7/5 −4/5 −1/5 2/5 1/5
La solución óptima es
2 1 −1 3 M M M
x1 x2 x3 x4 xa1 xa2 xa3
M −2 −4M − 2 5M + 1 −8M − 3 0 0 0 7M
M xa1 1 2 −1 2 1 0 0 1
M xa2 1 −1 2 −3 0 1 0 4
M xa3 −1 −5 4 −7 0 0 1 2
2 1 −1 3 M M M
x1 x2 x3 x4 xa1 xa2 xa3
9M/4.. 9M/4.. 0 3M/4.. 0 0 −5M/4.. 9M/2..
M xa1 3/4 3/4 0 1/4 1 0 1/4 3/2
M xa2 3/2 3/2 0 1/2 0 1 −1/2 3
−1 x3 −1/4 −5/4 1 −7/4 0 0 1/4 1/2
I.O. Introducción 118 Algoritmo del simplex. Inicialización
2 1 −1 3 M M M
x1 x2 x3 x4 xa1 xa2 xa3
−1 0 0 −19/12 −3M.. 0 −2M.. −1
1 x2 1 1 0 1/3 4/3 0 1/3 2
M xa2 0 0 0 0 −2 1 −1 0
−1 x3 1 0 1 −3/4 5/3 0 2/3 3
En esta tabla, que es la óptima, se elimina la segunda fila por ser redundante
y se obtiene directamente la solución óptima
zk − ck = máx{zj − cj } > 0 , yk ≤ 0
j
x̄a∗ = 0.
En este caso, P es no acotado. En efecto, si P M es no acotado es que
existe una dirección de S a
dt = (do t , da t ) ≥ (0t , 0t )
verificando
Ado + Ida = 0
ct d o + M t d a < 0
da = 0 , ct do < 0
6 5 −2 2 −1 1 M M M
x1 x2 x3 x4 x5 x6 xa1 xa2 xa3
−3 0 1 0 −6 0 −M.. −M.. −M..
5 x2 0 1 0 0 −2 0 5/4 −1/2 −3/4 5/4
2 x4 1 0 0 1 2 0 −1 1 1 1
1 x6 1 0 −1 0 −1 1 3/4 −1/2 −1/4 3/4
dt = (0, 0, 1, 0, 0, 1, 0, 0, 0)
ysj ≤ 0 , ∀j ∈ J ∗
s∈Ia∗
En efecto, ∀j ∈ J ∗ se verifica
I.O. Introducción 120 Algoritmo del simplex. Inicialización
zj − c j = cs ysj + M ysj − cj
s∈Io∗ s∈Ia∗
zk − ck = máx∗ {zj − cj } yk ≤ 0
j∈J
se deduce que
ysk = 0
s∈Ia∗
En caso contrario, si existiera un ysk < 0 para algún s ∈ Ia∗ , no podrı́a ser
zk − ck > 0, al ser M > 0 arbitrariamente grande.
Tampoco puede existir ningún j ∈ J ∗ tal que s∈I ∗ ysj > 0; en caso a
xs = x̄∗s − ysj xj , s ∈ Ia∗
j∈J ∗
se obtiene al sumarlas:
xs = x̄∗s − xj ( ysj )
s∈Ia∗ s∈Ia∗ j∈J ∗ s∈Ia∗
Si P tuviera solución factible, deberı́an existir unos valores para los paráme-
tros xj , con j ∈ J ∗ , que anulasen todas las componentes de la variable
artificial y, en consecuencia, la suma anterior, o lo que es lo mismo,
x̄∗s = xj ( ysj )
s∈Ia∗ j∈J ∗ s∈Ia∗
igual que cero, según acabamos de ver. Esta contradicción prueba que P
es no factible.
Io = ∅ , Ia = {1, . . . , m} ; I = Io ∪ Ia Jo = {1, . . . , n} , Ja = ∅ ; J = Jo ∪ Ja
m m
zj − cj = M · i=1 aij − cj ∀j ∈ Jo , zs − cs = 0 ∀s ∈ Ia , z̄ = M · i=1 bi
yj = aj ∀j ∈ Jo ys = es ∀s ∈ Ia x̄ = b
do
zk − ck = máxj∈J {zj − cj }
if (zk − ck ≤ 0) then
if (Ia = ∅) then
Ia+ ≡ {i ∈ Ia / x̄ai > 0}
if (Ia+ = ∅) then
NO EXISTE SOLUCIÓN FACTIBLE. FIN.
else
do while (i ∈ Ia / x̄ai = 0)
Joi ≡ {j ∈ Jo / yia j = 0}
if (Joi = ∅) then
Eliminar la ecuación ia -ésima y la variable xai de la Tabla.
else
Sea j ∈ Joi .
Ia = Ia − {i} ; Ja = Ja ∪ {i} Jo = Jo − {j} ; Io = Io ∪ {j}
Pivotar la Tabla en yia j
endif
enddo
endif
endif
SOLUCIÓN ÓPTIMA: x̄∗s = x̄s ∀s ∈ Io , x̄∗j = 0 ∀j ∈ Jo , z̄ ∗ = z̄. FIN.
else
if ( yk ≤ 0) then
if (∃i ∈ Ia tal que x̄ai > 0) then
NO EXISTE SOLUCIÓN FACTIBLE. FIN.
else
SOLUCIÓN NO ACOTADA. FIN.
endif
else
Criterio Entrada: Entra ak
x̄l x̄s
Criterio Salida: Determinar l ∈ I tal que ylk = M in ysk / ysk > 0
I = I ∪ {k} − {l} J = J ∪ {l} − {k}. Actualizar Io , Ia , Jo , Ja .
Pivotar la Tabla en ylk
endif
endif
enddo
Método de las penalizaciones I.O. Introducción 123
M ax{ct x − Mt xa }
o su equivalente
M in{−ct x + Mt xa }