Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Método Simplex
para resolver problemas de PL
Julio, 2020
Contenido
1 Método Simplex
Teorema fundamental de la programación lineal
Lógica del método simplex
2 Forma estándar del problema de programación lineal
Escribir un problema de PL en la forma estándar
Escribir una Solución Básica Inicial (SBI)
3 Álgebra del método sı́mplex
Criterio de detención - Prueba de la condición de óptimo
Iteraciones en el método sı́mplex
Inicialización del método sı́mplex
Degeneración y ciclaje
Prevención del ciclaje
Método Sı́mplex Revisado
Teorema fundamental de la PL
Método Simplex
Lógica del método
Si el conjunto de soluciones óptimas de un problema de programación lineal es
no vacı́o ⇒ contiene por lo menos un punto extremo del dominio factible.
La solución se halla mediante movimientos sistemáticos, entre puntos extremos
adyacentes hasta alcanzar un punto extremo óptimo.
Inicialización mediante
Método de las dos fases o
Método de la gran M
JPP-YANV Método Simplex Revisado
Método Simplex
Forma estándar
Forma estándar del problema de programación lineal
Escribir una Solución Básica Inicial (SBI)
Álgebra del método sı́mplex
Restricciones de igualdad
Todas las restricciones deben expresarse como relaciones de igualdad, ası́:
Restricciones de menor o igual: Dado que el valor de la función en el lado
izquierdo es menor o igual que el valor del parámetro del lado
derecho, se adiciona una variable de holgura.
Ejemplo: x1 + 3x2 ≤ 15 puede reescribirse como
x1 + 3x2 + x3 = 15
Restricciones de mayor o igual: Como la función del lado izquierdo es mayor o
igual que el valor del parámetro del lado derecho, se sustrae
una variable de superávit.
Ejemplo: x1 + 2x2 ≥ 20 puede reescribirse como
x1 + 2x2 − x4 = 20
Sea x una solución factible, con xB los valores de las variables básicas y xN los
valores de las variables no básicas, con xB ≥ 0 y xN = 0 para una SBF, el
vector c, la matriz A y el vector x se pueden expresar como sigue:
B es una matriz no singular de m × m que se conoce como la base
N es la matriz conocida como no base, cuya dimensión es de m × (n − m)
Como:
cT cTB cTN
= Ax = b
A = B N Se tiene que:
xB
xB
x =
xN B N = BxB + NxN = b
xN
Conocida una base B, cada solución factible x ∈ P, puede ser expresada como
xB y xN no negativos.
Por lo tanto:
−1 −1
z = cT T
B (B b − B NxN ) + cN xN
−1 T −1
= cT T
B B b + (cN − cB B N)xN
(6)
T −1 T xB
= cB B b + r
xN
Donde:
0
r= (7)
cN − (B−1 N)T cB
Solución óptima
Si r ≥ 0, esto es que cada componente de cTN − cTB B−1 N es no negativo,
entonces z − z ∗ ≥ 0, para cada solución factible x ∈ P
Costes reducidos
Si r contiene por lo menos un elemento menor que cero, la variable asociada en
xN puede incrementarse desde cero hasta un valor positivo, mejorando la
función objetivo.
El vector r se conoce como el vector de los costos reducidos.
Iteración: movimiento hasta una nueva solución básica factible (SBF) con una
mejora en la función objetivo, se requiere una buena dirección de traslación y
una adecuada longitud de desplazamiento.
Dirección de traslación
Vector d ∈ Rn , sólo se tienen en cuenta las direcciones de desplazamiento a un
punto adyacente. Una solución adyacente comparte m − 1 variables con la
solución actual.
Bajo el supuesto de no degeneración, cada SBF de P tiene exactamente
n − m puntos extremos adyacentes.
Una dirección de arista correspondiente a incrementar la variable no básica xq
está dada por:
−B−1 Aq
q
d = para q ∈ Ne (9)
eq
donde eq es un vector indicador,
Se requiere que el costo reducido sea menor que cero rq < 0 para asegurar una
buena dirección de traslación.
Teorema 1
Sea
B−1 b
x∗ = (12)
0
una solución factible para un PL con base B. Si rq < 0, el costo reducido para
alguna variable no básica xq es menor que cero, entonces la dirección evaluada
conduce a una mejora de la función objetivo.
Teorema 2
Sea x∗ una SBF al problema de PL. Si existe una dirección factible dq ≥ 0 con
un costo reducido rq < 0 para alguna variable no básica xq , entonces el
problema es no acotado.
Método de la gran M
Establece una penalización M muy grande (M >> 0) para cada variable
artificial de la base, y se resuelve de forma normal.
JPP-YANV Método Simplex Revisado
Método Simplex Criterio de detención - Prueba de la condición de óptimo
Forma estándar del problema de programación lineal Iteraciones en el método sı́mplex
Álgebra del método sı́mplex Método Sı́mplex Revisado
m
X
Minimizar z = xia
i=1
sujeto a: Ax + xa = b; (14)
x≥0
xa ≥ 0
La fase I del problema conduce a una solución óptima que resulta en:
0
x
(15)
xa∗
Método de la Gran M
Se modifica la función objetivo de la forma estándar, agregando un coeficiente
M para cada una de las variables artificiales.
n
X m
X
Minimizar z = xj + Mxia
j=1 i=1
a (16)
sujeto a: Ax + x = b;
x≥0
xa ≥ 0
Degeneración y ciclaje
Una SBF degenerada puede ser óptima aún con costos reducidos negativos, si
las posibles direcciones son no factibles.
α = 0 si por lo menos una de las variables básicas es igual a cero en la PRM
Degeneración y ciclaje
Regla de Bland
Tiene en cuenta tanto la variable que entra a la base como la que sale de ésta.
Es necesario seguir el procedimiento:
1 Entre las variables con costo reducido negativo (rT ), se escoge la de
menor ı́ndice como candidata a entrar a la base.
2 En presencia de empate entre dos variables, en la prueba de la razón
mı́nima, se selecciona la variable con el menor ı́ndice para que deje la
base.
La regla de Bland crea la siguiente propiedad monótona: Si una variable xq
entra a la base, esta no puede abandonar la base hasta que otra variable con un
ı́ndice mayor, la cual era no básica cuando xq entró, también entra a la base.
Esto evita el ciclaje pues en un ciclo una variable que entra a la base debe salir
de ella, lo que implica una variable de ı́ndice mayor que entra y sale de la base,
contradiciendo la propiedad monótona explicada.
Ventajas
Ahorro en términos de memoria o espacio de almacenamiento
Trabaja siempre a partir de los datos iniciales
Minimiza el error de precisión que se causa cuando se trabaja
con números irracionales.
x = B−1 b
z = cTB x
wT = cTB B−1
Primera fase
cTN = cTB =
0 0 0 0 1 0 0 0 1
6 1 −1 0 1 0 0 0 0 12
5 2 0 0
0 1 0 0 0
30
N=
8 10 0 0
B=
0 0 1 0 0
b=
80
1 −4 0 0 0 0 0 1 0 1
1 1 0 −1 0 0 0 0 1 5
1 0 0 0 0
0 1 0 0 0
T T −1
w = cB B = 1 0 0 0 1 0 0 1 0 0 = 1 0 0 0 1
0 0 0 1 0
0 0 0 0 1
6 1 −1 0
5 2 0 0
T T T
r = cN − w N = 0 0 0 0 − 1 0 0 0 1 8 10 0 0
1 −4 0 0
1 1 0 −1
= −7 −2 1 1
Primera Fase
cTN = cTB =
0 0 0 0 1 0 0 0 1
0 1 −1 0 1 0 0 6 0 12
0 2 0 0
0 1 0 5 0
30
N=
0 10 0 0
B=
0 0 1 8 0
b=
80
1 −4 0 0 0 0 0 1 0 1
0 1 0 −1 0 0 0 1 1 5