Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Ejemplo
Considérese el conjunto de soluciones posibles del ejemplo que hemos venido
siguiendo en el tema anterior:
Max E + 2D
s.a.: E + D ≤ 10
−E + D ≤ 1
D ≤ 4
E, D ≥ 0
à !
0
Supongamos que iniciamos el algoritmo en el vértice , cuyo valor
0
objetivo es z = 0. Nos podemos desplazar a uno cualquiera de los vértices
adyacentes:
à !
0
−→ z = 2,
1
à !
10
−→ z = 10,
0
à !
10
Evidentemente nos interesa desplazarnos al ya que, de los dos posi-
0
bles, es el que proporciona
à ! el mejor valor de la función objetivo.
10
A partir del podrı́amos desplazarnos al:
0
El método Simplex. Algoritmo de las dos fases
à !
0
−→ z = 0, que evidentemente no nos interesa ya que empeo-
0
rarı́amos la situación actual, o al
à !
6
−→ z = 14.
4
Dado que 14 es mejor que 2, el algoritmo se desplazarı́a hasta este
vértice en la siguiente iteración.
à !
6
De nuevo, desde el , podemos ir al:
4
à !
3
−→ z = 11, o al
4
à !
10
−→ z = 10.
0
Como cualquiera de las dos alternativas proporciona un valor de la función
objetivo peor que el actual el algoritmo se detendrı́a. STOP, concluyendo que
tenemos una única solución óptima
à !
6
cuyo valor óptimo es z ∗ = 14
4
En el ejemplo se observa que los vértices del conjunto de soluciones po-
sibles son precisamente los puntos que se obtienen como intersección de dos
de las rectas asociadas a las restricciones del problema.
Sin embargo, no son intersección de dos rectas cualesquiera ya que el
punto (E, D) = ( 92 , 11
2
), no es una solución posible del problema ya que
incumple la restricción D ≤ 4. Formalmente se dice que el punto viola una
restricción.
Tampoco son soluciones los puntos
à ! à !
0 0
, ni
4 10
Necesitamos un procedimiento que nos permita obtener algebraicamen-
te los vértices del conjunto de soluciones posibles del problema. Además,
El método Simplex. Algoritmo de las dos fases 5
nos interesa que sea un proceso generalizable a problemas con más de dos
variables.
E + D + H1 = 10
−E + D + H2 = 1
D + H3 = 4
Observar que cada vez que igualamos a cero dos cualesquiera de las va-
riables nos quedamos con un sistema de tres ecuaciones con tres incógnitas
que sı́ sabemos resolver. Por ejemplo, si hacemos H1 = H2 = 0, nos queda:
E + D = 10
−E + D = 1
D + H3 = 4
que no puede ser solución del problema de programación lineal porque in-
cumple una restricción de no negatividad. Observar que el punto asociado
queda fuera del conjunto de soluciones posibles.
( E, D, H1 , H2 , H3 )
0 0 10 1 4 (0,0) Solución posible
? 0 ? ? 0 Sistema Incompatible
Las soluciones posibles básicas cumplen todas las restricciones del proble-
ma y proporcionan, después de eliminar las variables de holgura, los vértices
del poliedro de soluciones del problema.
En principio, diferentes soluciones posibles básicas podrı́an conducirnos
al mismo vértice.
Una vez sabemos calcular los vértices del poliedro necesitamos caracteri-
zar cuáles son adyacentes y cómo podemos desplazarnos entre ellos.
Este resultado nos permite trasladarnos de una SPB a otra SPB adyacente
cambiando simplemente el estado de una variable de no básica a básica y
viceversa. Lo que necesitamos es saber identificar de una manera sencilla
si estamos o no en una solución óptima del problema, y si no lo estamos,
determinar qué variable no básica interesa hacer básica para alcanzar una
nueva SPB mejor que la actual.
Veremos cómo hacerlo siguiendo con el ejemplo de Carlos.
Ejemplo, continuación . . .
Max E + 2D
s.a.: E + D ≤ 10
−E + D ≤ 1
D ≤ 4
E, D ≥ 0
- Min z
s.a.: z + E + 2D = 0
E + D + H1 = 10
− E + D + H2 = 1
D + H3 = 4
E, D, H1 , H2 , H3 ≥ 0
y además hemos añadido una variable de holgura en cada una de las res-
tricciones originales. Esta situación nos permite identificar rápidamente una
solución posible básica inicial (un vértice), basta con igualar a cero las va-
riables originales, E y D, que se convertirán en variables no básicas. De este
modo el valor de las variables básicas se obtiene directamente del sistema:
z + E + 2D = 0
E + D + H1 = 10
− E + D + H2 = 1
D + H3 = 4
z + 0 + 2D = 0 → z = 0 − 2D
0 + 1D + H1 = 10 → H1 = 10 − D ≥ 0
− 0 + 1D + H2 = 1 → H2 = 1 − D ≥ 0
1D + H3 = 4 → H3 = 4 − D ≥ 0
Fila 0 → z + E + 2D = 0
Fila 1→ E + D + H1 = 10
Fila 2→ − E + D + H2 = 1
Fila 3→ D + H3 = 4
z + 3E − 2H2 = −2
2E + H1 − H2 = 9
− E + D + H2 = 1
E − H2 + H3 = 3
z + 3E − 2H2 = −2
2E + H1 − H2 = 9
− E + D + H2 = 1
E − H2 + H3 = 3
podemos aplicar el Criterio de la Razón Mı́nima para calcular el valor que
tomará E y también la variable que dejará de ser básica.
2 9
y = −1 y b̄ = 1
1 3
b̄i 9 3
E = mı́n{ : yi > 0} = mı́n{ , } = 3
yi 2 1
Como el mı́nimo se alcanza en el cociente asociado a la última restricción, la
única variable que se hará cero al aumentar el valor de E desde 0 hasta 3 es
la variable H3 , ésta será por tanto la nueva variable no básica.
Pivotando sobre el cruce entre la fila pivote (Fila 3) y la columna pivote
(columna de coeficientes de la variable E),
Fila 0 → z + 3E − 2H2 = −2
Fila 1→ 2E + H1 − H2 = 9
Fila 2→ − E + D + H2 = 1
Fila 3→ E − H2 + H3 = 3
z + H2 − 3H3 = −11
H1 + H2 − 2H3 = 3
D + H3 = 4
E − H2 + H3 = 3
z + H2 = −11
H1 + H2 + H3 = 3
D + H3 = 4
E − H2 + H3 = 3
1 3
y= 0 y b̄ = 4
−1 3
El método Simplex. Algoritmo de las dos fases 15
z − H1 − H3 = −14
H1 + H2 − 2H3 = 3
D + H3 = 4
E + H1 − H3 = 6
Notar que los coeficientes en el sistema de las variables que se van haciendo
básicas en cada iteración proporcionan las direcciones en las que hay que
moverse para ir de una solución posible básica a otra (de un vértice a otro):
E 0 0 0
D 0 1 1
H1 = 10 + (1) −1 = 9 ; (D = 1)
H2 1 1 0
H3 4 −1 3
0 1 3
1 1 4
9 + (3) −2 = 3 ; (E = 3)
0 0 0
3 −1 0
3 1 6
4 0 4
3 + (3) −1 = 0 ; (H2 = 3)
0 1 3
0 0 0
Además recordemos que el problema original era de maximizar, por lo
tanto el valor óptimo será en realidad de 14 unidades.
El método Simplex. Algoritmo de las dos fases 17
Coste reducido de E:
1 0 0 1
zE − cE = ctB B −1 aE − cE = (0, 0, 0) 0 1 0 −1 − (−1) = 1
0 0 1 0
Coste reducido de D:
1 0 0 1
t −1
zD − cD = cB B aD − cD = (0, 0, 0) 0 1 0 1 − (−2) = 2
0 0 1 1
El método Simplex. Algoritmo de las dos fases
1 0 0 10 10
b̄ = B −1 b = 0 1 0 1 = 1
0 0 1 4 4
E D H1 H2 H3 rhs
z 1 2 0 0 0 0
H1 1 1 1 0 0 10
H2 -1 1 0 1 0 1
H3 0 1 0 0 1 4
Observar que está asociada a una SPB que no es óptima ya que hay costes
reducidos de variables no básicas estrictamente positivos.
Primera Iteración
¿Qué variable no básica se hace básica? D, ya que su coste reducido es el
máximo de los costes reducidos.
¿Qué variable deja de ser básica?, H2 , pues aplicando el criterio de la
razón mı́nima tenemos:
10 1 4
mı́n{ , , } = 1
1 1 1
Pivotamos sobre el elemento intersección de la fila y la columna pivote y
llegamos a:
E D H1 H2 H3 rhs
z 3 0 0 -2 0 -2
H1 2 0 1 -1 0 9
D -1 1 0 1 0 1
H3 1 0 0 -1 1 3
El método Simplex. Algoritmo de las dos fases 19
0
1
que como vemos está asociada a la SPB,
9 , que tampoco es óptima ya
0
3
que la variable no básica E tiene un coste reducido positivo.
Segunda Iteración
¿Qué variable no básica se hace básica? E, ya que es la única con un coste
reducido estrictamente positivo.
¿Qué variable deja de ser básica?, aplicando de nuevo el criterio de la
razón mı́nima, será H3 . Pivotando,
E D H1 H2 H3 rhs
z 3 0 0 -2 0 -2
H1 2 0 1 -1 0 9
D -1 1 0 1 0 1
H3 1 0 0 -1 1 3
E D H1 H2 H3 rhs
z 0 0 0 1 -3 -11
H1 0 0 1 1 -2 3
D 0 1 0 0 1 4
E 1 0 0 -1 1 3
E D H1 H2 H3 rhs
z 0 0 -1 0 -1 -14
H2 0 0 1 1 -2 3
D 0 1 0 0 1 4
E 1 0 1 0 -1 6
El método Simplex. Algoritmo de las dos fases