Está en la página 1de 9

Método Simplex

Parte 1

Edgar Ramos Flores

21 de junio de 2021

1. Introducción
Como se verifico en la sección anterior, es posible resolver gráficamente los problemas de programación
lineal cunado no están consideradas mas de tres variables de decisión. Es importante encontrar proce-
dimientos que sean suficientemente exhaustivo que permitan la resolución de problemas para cualquiera
que sea sus dimensiones, ya sea a nivel del número de variables, ya sea a nivel de numero de restricciones
envueltas. Uno de esos procedimientos, que se debe a George B. Dantzing, es llamado metodo Simplex.
El método Simplex es un método iterativo que recorre los puntos extremos del conjunto de soluciones ad-
misibles del problema. Este método esta fromado por un grupo de criterios para escoger de las soluciones
basicas que mejoren el valor de la funcion objetivo.

En esta seccion, sera presentada la froma habitual del algoritmo primal del método Simplex y sera
referencia a su forma revisada. Una mejor forma de iniciar el estudio de este método es a través de
ejemplos simples siguientes:

Ejemplo 1 Se considere el PL (con tres variables y dos restricciones)

Maximizar: z = x1 + 2x2 + 2x3


sujeto a: x1 + 3x2 + x3 ≤ 12
2x1 − x2 + 2x3 ≤ 10
x1 , x2 , x3 ≥ 0

El primer paso en este método consiste en escribir estándar a través de la introducción de variables de
holgura
Maximizar: z = x1 + 2x2 + 2x3
sujeto a: x1 + 3x2 + x3 + x4 = 12
2x1 − x2 + 2x3 + x5 = 10
x1 , x2 , x3 .x4 , x5 ≥ 0
En terminos matriciales tenemos
Maximizar: z = ct x
sujeto a: Ax = b (1)
x≥0

1
donde  
x
 1
  x   
 2
1 3 1 1 0 h i 12
 , x = x3  , ct = 1
 
A= 2 2 0 0 ,b =  
2 −1 2 0 1 10
 
 
x4 
 
x5

Definición 1 Sea el sistema Ax = b definido en (1) y AB ∈ R2×2 una submatriz base (o básica)
de A, entonces las variables asociadas a la submatriz AB , son denominadas variables básicas. Definida
la submatriz AB , las restantes columnas en A ∈ R2×3 forman una submatriz designada por submatriz
no básica, denotada por AN ∈ R2×3 . Las varibales asociadas a esta submatriz AN son denominadas
variables no básicas.

Para obtener una solucion vamos a fijar 3 variables a cero (son las llamadas variables no básicas),
para simplificar, vamos a considerar x1 , x2 y x3 , y resolver el sistema en relacion a las restantes (variables
basicas) x4 y x5 . De este modo la matriz A puede ser separada en dos partes. Por el hecho de que la
parte relativa a las variables basicas tienen que formar una base, AB ∈ R2×2 , donde AB = [ 10 01 ]. La par-
te restante, cosntituidas por las columnas de las variables no basicas es AN ∈ R2×3 , donde AN = 12 −1
 3 1
2 .

Tenemos por lo tanto que:


h i
A = AB AN (2)

De acuerdo de esta division (2), dividimos las variables tambien en xB y xN , donde xB = [x1 x2 x3 ]t y
xB = [x4 x5 ]t , tenemos por lo tanto que:
h it
x = xB xN (3)

2. Solucion basica admisible, puntos extremos y optimalidad


Consideremos el problema de programación lineal en la forma estándar matricial y recordemos que
las soluciones optimas de un problema de programación lineal están relacionadas con los puntos o rayos
extremos del poliedro definido por el conjunto de restricciones, tenemos

Min/Max: z = ct x
sujeto a: Ax = b
x≥0

donde:

A ∈ Rm×n es la matriz de coeficientes de las incógnitas de las restricciones (siendo m es el numero


de restricciones y n el numero de variables).

x ∈ Rn×1 es el vector columna de las incognitas.

b ∈ Rm×1 es el vector de los terminos independientes de las restricciones.

ct ∈ R1×n es el vector fila de los coeficientes de la función objetivo.

2
Consideramos que rango[A|b] = rango(A) = m, esto es, el numero de filas o columnas linealmente
independientes de la matriz A es m, igual al numero de restricciones. Se considera la matriz A, como
h i
A = AB AN en el sentido (2). Esta división permite efectuar una clasificación de las variables en
básicas (las correspondientes a las columnas de la submatriz AB ∈ Rm×m ) y las variables no básicas (las
restantes n − m variables) correspondientes las columnas de AN ∈ Rm×(n−m) .

Tenemos, por lo tanto que:

AB es la matriz básica (de las columnas básicas).

AN es la matriz no básica (de las columnas no básicas).


 
xB
El vector de las variables x, tal como en (3), puede ser escrito en la forma x =  , donde xB es el
xN
vector de las variables básicas correspondientes alas columnas de AB y xN es el vector de las variables
no básicas correspondientes a las columnas de AN .

Nota 1 El sistema Ax = b puede ser reescrito del siguiente modo:


h ih it
Ax = b ⇐⇒ AB AN xB xN = b ⇐⇒ AB xB + AN xN = b

De ahi, se tiene que:


xB = A−1 −1
B b − AB AN x N (4)

Tenemos por lo tanto que:

Si xN = 0, entonces xB = A−1
B b y x = (xB , 0) es llamada solucion basica del sistema Ax = b.

Si xB ≥ 0, entonces decimos que la solucion basica x = (xB , 0) es admisible.

Nota 2 Notamos que la descomposicion A = [AB AN ] no es única, ya que el numero de matrices


AB ∈ Rm×m posibles, es igual a la combinatoria Cm
n

Ejemplo 2 (Solucion basica admisible “SBA”)


Considere la region admisible, como se muestra en la figura 1, determinado por las restricciones:

x1 + x2 ≤ 5
2x1 + 3x2 ≤ 12
x1 , x2 ≥ 0
Al introducir las variables de holgura x3 y x4 , se tiene la forma estándar siguiente:

x1 + x2 + x3 = 5
2x1 + 3x2 + x4 = 12
x1 , x2 , x3 , x4 ≥ 0

3
Figura 1: SBA del ejemplo 2

La matriz de los coeficientes de las restricciones esta dada por:


 
h i 1 1 1 0
A = a1 a2 a3 a4 =  
2 3 0 1

A cada solución básica admisible le corresponde una submatriz base AB ∈ R2×2 tal que A−1
B b es no
negativo. A continuación se presentan las fromas posibles de extraer AB de A. El valor de C24 = 6
corresponde al numero máximo de bases.
 
h i 1 1
I. Para AB = a1 a2 =  , se tiene que:
2 3
      
x1 3 −1 5 3
xB =   = A−1
B b=
   =  
x2 −2 1 12 2

   
x3 0
xN = = 
x4 0

4
 
h i 1 1
II. Para AB = a1 a3 = , se tiene que:
2 0
      
x1 0 0,5 5 6
xB =   = A−1 B b=
   =  
x3 1 −0,5 12 −1

   
x2 0
xN = = 
x4 0
 
h i 1 0
III. Para AB = a1 a4 = , se tiene que:
2 1
      
x1 1 0 5 5
xB =   = A−1 B b=
   =  
x4 −2 1 12 2

   
x2 0
xN = = 
x3 0
 
h i 1 1
IV. Para AB = a2 a3 = , se tiene que:
3 0
      
x1 0 1/3 5 4
xB =   = A−1 B b=
   =  
x2 1 −1/3 12 1

   
x1 0
xN = = 
x4 0
 
h i 1 0
V. Para AB = a2 a4 = , se tiene que:
3 1
      
x2 1 0 5 5
xB =   = A−1 B b=
   =  
x4 −3 1 12 −3

   
x1 0
xN = = 
x3 0
 
h i 1 0
VI. Para AB = a3 a4 = , se tiene que:
0 1
      
x3 1 0 5 5
xB =   = A−1 B b=
   =  
x4 0 1 12 12

   
x1 0
xN = = 
x2 0

5
Note que las soluciones obtenidas en (I), (III), (IV), (VI) son soluciones básicas admisibles, mientras
que las soluciones obtenidas en (II) y (V) son soluciones básicas no admisibles. En la figura 1 se puede
ver el punto extremo correspondiente a cada una de las soluciones básicas admisibles.

Definición 2 Sea el conjunto S = {x ∈ Rn : Ax = b, x ≥ 0}, donde A ∈ Rm×n , b ∈ Rm y x ∈ Rn con


m ≤ n. El punto x es un punto extremo de S, si posee n − m variables nulas.

Teorema 1 Toda solución básica del sistema Ax = b con x ≥ 0 es un punto extremo del conjunto de
soluciones básicas admisibles de S = {x ∈ Rn : Ax = b, x ≥ 0}.

Demostración

Sea x̄ una solucion


 basica
 del sistema Ax = b con A = [AB AN ]. Sin perdida de generalidad, suponga
x̄B
que,x̄ = [xi ] =  , con x̄N = 0 (para i = m + 1, . . . , n). Por contradiccion, suponga que x̄ no sea
x̄N
punto extremo de S, entonces ∃x̄1 , x̄2 ∈ S tales que, para algun λ, 0 ≤ λ ≤ 1

x̄ = λx̄1 + (1 − λ)x̄2

y x̄1 6= x̄2 , pues x̄ 6= 0.


Como x̄i = 0, para i = m + 1, . . . , n, se cumple:

0 = λx̄1i + (1 − λ)x̄2i , i = m + 1, . . . , n

teniendo en cuenta que x̄1 , x̄2 ≥ 0, se tiene que:



λx̄1 = 0

i
para i = m + 1, . . . , n
(1 − λ)x̄2i = 0

Luego, implica que: 


x̄1 = 0

i
para i = m + 1, . . . , n (5)
x̄2i = 0

   
1
x̄ x̄2
Por otro lado, tenemos que x̄1 =   y x̄2 =  B , como x̄1 , x̄2 ∈ S, entonces las siguientes relaciones
B

x̄1N x̄2N
son validas
Ax̄1 = b Ax̄2 = b
x̄1 ≥ 0 x̄2 ≥ 0
Esto implica que,    
x̄1B x̄2B
[AB AN ]   = b [AB AN ]   = b
x̄1 x̄2
 N  N
x̄1 x̄2
 B ≥ 0  B ≥ 0
x̄1N x̄2N
De las igualdades (5), se tiene 
AB x̄1 = b

B

AB x̄2B = b

6
restando miembro a miembro
AB x̄1B − AB x̄2B = b − b

AB x̄1B − x̄2B = 0


Como x̄1B 6= x̄2B y por ende x̄1B − x̄2B 6= 0. Se deduce que AB = 0, que es una contradicción, pues por
hipótesis AB es una submatriz base, y por lo tanto, no singular. Por lo tanto, queda demostrado el
teorema.

Teorema 2 Si un problema de PL admite solucion optima, por lo menos un punto extremo del conjunto
de puntos admisibles es una solucion optima del problema (Se demuestra este teorema admitiendo que el
conjunto S es politopo).

Solución

Sean x1 , x2 , . . . , xP los puntos extremos del conjunto S. Entonces, por la definición de la combinacion
convexa de puntos extremos1 , para todo x ∈ S, x puede ser escrito como combinacion convexa de los
PP PP
puntos extremos x1 , x2 , . . . , xP de S, o sea, x = i=1 λi xi con i=1 λi = 1.
Luego, !
P
X
t i
c λi x = λ1 ct x1 + λ2 ct x2 + · · · + λP ct xP
i=1

Sea x un punto extremo tal que ct x∗ ≤ ct xi , (i = 1, . . . , P ). Pero


P
X
ct x = λ1 ct x1 + λ2 ct x2 + · · · + λP ct xP ≥ λ1 ct x∗ + λ2 ct x∗ + · · · + λP ct x∗ = λi ct x∗ = ct x∗
i=1

Tomando extremos,
ct x∗ ≤ ct x

para toso x ∈ S. Por lo tanto, x∗ es un punto extremo y es solucion optima del problema (minimización).

Nota 3 El valor optimo de un problema de programación lineal si existe, es alcanzando un punto extremo
del conjunto S de las soluciones admisibles (factibles) y corresponde auna solución básica admisible.
Cualquier combinación lineal convexa de soluciones optimas es ademas una solucion optima y si un
problema de programación lineal posee mas de una solución optima, entonces posee una infinidad de
soluciones optimas.

3. Adecuación del problema de PL


Las soluciones optimas de un problema de PL son alcanzadas en un punto extremo, por lo que interresa
saber como, de entre todos los puntos extremos del conjunto S de las soluciones admisibles, identificamos
la optima.

1 Dadolos puntos extremos x1 , x2 , . . . , xk y el politopo S. Para todas las x ∈ S, x puede ser escrito como combinacion
convexa de los puntos extremos x1 , x2 , . . . , xk , esto es x = ki=1 λi xi , con
P Pk
i=1 λi = 1.

7
Consideremos la funcion objetivo z = ct x = ctB xB + ctN xN , teniendo en cuenta que si la solucion es
basica, asociada a la submatriz basica AB , tenemos

z = ctB A−1 b − A−1 AN xN +ctN xN



| B {zB }
xB

z = ctB A−1 t −1 t

B b − cB AB AN − cN xN (6)

Si fuera posible mejorar el valor del punto extremo actual es identificando una variable de la entrada y
otra de salida de la base, de esta forma se cambia un punto extremo para otro punto extremo adyacen-
te con mejor valor de la función objetivo. El Algoritmo Simplex examina los puntos extremos hasta
encontrar aquel que sea el mejor de los dos puntos extremos adyacentes (que es el que optimiza el valor
de la función objetivo), o hasta determinar que la solución optima ocurre a lo largo de una dirección
extrema o que el problema no tiene solución optima finita.

h it
Nota 4 Consideremos una solución básica cualquiera x = xB xN , para ser admisible, tiene que
cumplir que xB ≥ 0, xN ≥ 0. Ademas, considerando aj una columna de A asociadas a las variables no
básicas xj . Se cumplen las siguientes igualdades:
X
ctB A−1
B AN = ctB A−1
B aj xj (7)
j∈J
X
ctN xN = cj xj (8)
j∈J
X
A−1
B AN x N = A−1
B aj xj (9)
j∈J

Considerando las igualdades (7) y (8), en la función objetivo (6) dada en tenemos,

X
z = ctB A−1 ctB A−1

B b− B aj − cj xj
j∈J

X
z = ctB A−1
B b− (zj − cj ) xj (10)
j∈J

donde zj = ctB A−1


B aj para cada variable no básica y J es el conjunto de indices de las variables no
básicas.

El problema de PL estándar en forma matricial esta dado por:

Min(Max): z = ctB A−1 −1


t t

B b − cB AB AN − cN xN
sujeto a: xB = A−1 −1
B b − AB AN x N
x≥0

Por la nota 4, el problema de programación lineal, puede ser rescrito de la siguiente manera:

z = cB A−1
P
Min(Max): B b− j∈J (zj − cj )xj
xB = AB b − j∈J A−1
−1 P
sujeto a: B aj xj
(11)
x≥0

8
4. Criterios del Algoritmo Simplex
Considerando el problema de PL dado por (11) se tiene que:

I. El valor zj − cj se llama costo reducido de la variable xj .

II. Para un problema de maximización, si zj − cj ≥ 0, j ∈ J, entonces xj = 0, j ∈ J y xB = A−1


B b es
la solución básica admisible optima.

III. Para un problema de minimización, si zj − cj ≤ 0, j ∈ J, entonces la solución básica admisible es


optima.

IV. Caso contrario (problema de minimizacion), si zk −ck ≥ 0 para alguna variable no basica xk , entonces
xk puede aumentar de valor y mejorar (disminuir) el valor de la funcion objetivo. Ahora, fijando
xj = 0 para j ∈ J − {k}, obtenemos por las igualdades (10) y (11) que z = cB A−1
B b − (zk − ck )xk y
      
xB1 b1 a1k
      
x   b   a  
 B2   2   2k  
 .   .   .  
 .   .   .  
 .   .   .  
  = A−1   −   xk 
B 
 x Br   br   ark  
     
 ..   ..   ..  
      
 .   .   .  
      
x Bm bm amk

Si A−1
B aik ≤ 0, entonces xBi aumenta a medida que xk aumenta. Para determinar el nuevo valor de
xk tenemos que al aumentar xk las varibles básicas xBi tales que A−1
B aik ≥ 0 van ha disminuir el
valor. Ası́, para asegurar que las variables básicas sean no negativas, la variable xk puede aumentar
de valor hasta una variable básica xB tomar valor cero, osea,
 
br bi
xk = = mı́n
ark 1≤i≤m aik

cuando aik > 0.

Nota 5 Se resume en forma de cuadro el método Simplex en el cuadro siguiente. En particular aplicado
al ejemplo 1.

También podría gustarte