Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Dual Simplex
Dual Simplex
4.1 Introducción
4.1. Introducción
Uno de los descubrimientos más importantes durante el desarrollo ini-
cial de la programación lineal fue el concepto de dualidad y sus muchas e
importantes ramificaciones. Este descubrimiento reveló que asociado a todo
problema de programación lineal existe otro problema lineal llamado dual.
Las relaciones entre el dual y su original (llamado primal) son extremada-
mente útiles en una gran variedad de situaciones. Por ejemplo, se verá que de
hecho la solución óptima del problema dual es la que proporciona los precios
sombra descritos en las prácticas al introducir el análisis de sensibilidad.
Uno de los papeles clave que juega la teorı́a de la dualidad es la inter-
pretación y realización del análisis de sensibilidad. De hecho la dualidad nos
permitirá tratar dicho análisis desde el punto de vista algebráico pudiendo
ası́ generalizarlo y aplicarlo a cualquier problema de programación lineal,
independientemente de cuál sea su tamaño i.e., número de variables y/o res-
tricciones.
Los orı́genes de la dualidad, tal y como hoy se conoce, son, en boca del
propio Dantzig , atribuibles al célebre matemático John Von Neumann, quién,
en octubre de 1947, conjeturó por primera vez la existencia de un problema
dual asociado al modelo de programación lineal. Dantzig habı́a acudido a Von
Neumann en busca de sugerencias e ideas para desarrollar nuevas técnicas
para resolver el modelo de programación lineal pues, por aquél entonces,
Tema 4: Teorı́a de dualidad. Algoritmo Dual del Simplex
todos no positivos,
Ejemplo 4.2.1
Dado el problema de programación lineal:
su dual es:
Max 4ω1 + 7ω2
s.a.: 3ω1 + 5ω2 ≤ 6
1ω1 + 2ω2 ≤ 8
ω1 , ω2 no restringidas
La definición de dualidad que hemos dado nos permite demostrar fácil-
mente la siguiente propiedad,
Tema 4: Teorı́a de dualidad. Algoritmo Dual del Simplex
Simetrı́a de la Dualidad
− Min −bt (ω 1 − ω 2 )
s.a: At (ω 1 − ω 2 ) + ω h = c
ω 1 ≥ 0m , ω 2 ≥ 0m , ω h ≥ 0n .
Es decir, D es ahora:
ω1
− Min (−bt , bt , 0) ω 2
ωh
ω1
s.a: (At , −At , In ) ω 2 = c
ωh
ω 1 ≥ 0m , ω 2 ≥ 0m , ω h ≥ 0n .
− Max ct y
s.a:
A −b
−A y ≤ b
In 0n
n
y ∈ IR ,
PPL. Sin embargo, esta tarea resulta en ocasiones larga y tediosa, por lo que
resulta más apropiado llevar a cabo una construcción directa del problema
dual. Para ello hay que tener en cuenta lo siguiente:
Problema de | Problema de
Minimización | Maximización
≥0 ⇐⇒ ≤
Variables ≤0 ⇐⇒ ≥ Restricciones
No restringida ⇐⇒ =
≥ ⇐⇒ ≥0
Restricciones ≤ ⇐⇒ ≤0 Variables
= ⇐⇒ No restringida
términos independientes | coeficientes f. obj.
coeficientes f. obj. | términos independientes
matriz de restricciones | traspuesta matriz restricciones
Ejemplo 4.2.2
Dado el problema de programación lineal:
su dual es:
Min 2ω1 − 4ω2
s.a.: 1ω1 + 5ω2 ≤ 8
− 6ω1 + 7ω2 ≥ 3
1ω1 − 2ω2 = −2
ω1 ≤ 0
ω2 no restringida
En cualquier iteración del sı́mplex del problema primal o del dual, el coste
reducido de la variable j en un problema es igual al lado izquierdo menos el
lado derecho de la restricción j en el otro problema
)
Ax̄ = b −→ ω t Ax̄ = ω t b
−→ bt ω ≤ ct x̄.
At ω ≤ c, x ≥ 0n −→ ω t Ax̄ ≤ ct x
Los resultados que acabamos de ver nos permiten relacionar los valores
objetivos de cualquier pareja de soluciones posibles primales-duales. Como
consecuencia, las iteraciones sucesivas de un problema de maximización darán
por resultado un incremento en el valor de la función objetivo y las del pro-
blema de minimización darán por resultado una disminución en el valor de
la función objetivo. A la larga, durante el curso de las sucesivas iteraciones,
se llegará a un punto de equilibrio donde los valores objetivos de la maximi-
zación y de la minimización deben ser iguales.
El siguiente resultado nos permite averiguar cuándo podemos garantizar
la existencia de soluciones de un par primal-dual.
Teorema de Dualidad Fuerte
Por el teorema de dualidad débil sabemos que si uno de los dos problemas
tiene solución óptima finita el otro no puede ser no acotado, por lo tanto,
solamente le quedan dos alternativas, ser imposible o tener solución óptima
finita. Como vemos a continuación, la opción de la imposibilidad puede ser
Tema 4: Teorı́a de dualidad. Algoritmo Dual del Simplex 9
descartada ya que el algoritmo del Simplex nos permite dar una demostración
constructiva de la factibilidad del problema.
Podemos suponer, sin pérdida de generalidad, que el problema que tiene
solución óptima finita es el problema primal. Sea x∗ una solución óptima de
P obtenida con el método Simplex.
Siguiendo el mismo razonamiento utilizado al principio del tema para
introducir el problema dual, podemos afirmar que ω ∗t = ctB B −1 es solución
posible del dual, siendo B la base en la tabla del Simplex asociada a x∗ .
Además:
ct x∗ = ctB (B −1 b) = ω ∗ t b.
Ahora bien, como por el teorema de dualidad débil sabemos que,
ω ∗ es solución óptima de D.
Análogamente demostrarı́amos que si el dual tiene solución óptima finita,
el primal también la tiene, y los valores óptimos coinciden. 2
Los resultados anteriores suelen enunciarse conjuntamente en el denomi-
nado:
Teorema Fundamental de Dualidad
1. Los dos problemas tienen solución óptima finita, y los valores óptimos
de ambos problemas coinciden.
2. Uno de los dos problemas es no acotado y el otro es imposible.
3. Ambos problemas son imposibles.
Supongamos que, Ã !
B −1 b
x∗ = ,
0n−m
es una solución óptima del problema primal. Sea ω ∗t = ctB B −1 la solución
dual complementaria. Teniendo en cuenta que la función objetivo de P puede
expresarse en función, únicamente, de las variables no básicas:
X X
z =ctB B −1 b − (zj − cj )xj = bt ω ∗ − (zj − cj )xj ,
j∈N j∈N
nos reportará ningún beneficio, por lo que el precio que estamos dispuestos
a pagar por disponer de una unidad extra del mismo es cero, el precio justo
que pagarı́amos es ωi∗ = 0, es decir, se cumple la condición de holgura com-
plementaria ωi∗ (bi − ati x∗ ) = 0. Por otro lado, si ωi es positivo, significa que
disponer de una unidad extra del recurso i-ésimo resulta rentable, la única
explicación razonable para ello es que el agotamiento del recurso condiciona
el plan de producción óptimo. En términos matemáticos, ati x∗ = bi , es decir,
la restricción i-ésima es activa en la solución óptima. De nuevo se cumple la
condición de holgura complementaria.
Análogamente, si pensamos en que ωi∗ representa el valor de una uni-
dad de recurso bi , entonces ω ∗ t aj representará el coste total de los recursos
que se necesitan para fabricar una unidad de producto j. Lógicamente, si
ω ∗ t aj > cj , significa que los recursos necesarios para fabricar una unidad de
producto j cuestan más que el beneficio que nos va a reportar vender dicha
unidad, por lo tanto, x∗j = 0, es decir, no fabricaremos dicho producto. Ahora
bien, x∗j > 0 significa que resulta rentable fabricar el producto j, luego nece-
sariamente ω ∗ t aj = cj . En cualquier caso se cumple la condición de holgura
complementaria, (ω t aj − cj )xj = 0.
Después de lo que acabamos de ver es incuestionable la utilidad de los
precios sombra en el mundo empresarial, por ejemplo, nos sirven para:
nuevo el problema primal. Este algoritmo utiliza la tabla del Simplex pa-
ra resolver óptimamente el problema dual. Para conseguirlo, los pivotes se
realizan de forma que en cada iteración se mantiene la posibilidad dual, se
mejora el valor de la función objetivo dual, y se garantiza que se cumplen
las condiciones de holgura complementaria para el par de soluciones básicas
representadas en la tabla. Evidentemente, si llegamos al óptimo tendremos
también la solución óptima del primal. En otro caso concluiremos que el dual
es no acotado y el primal es imposible.
En realidad, el Dual del Simplex equivale a resolver con el método del
Simplex el problema dual, pero, sobre la tabla del Simplex para el problema
primal. Se trata de un método alternativo al método Simplex que en ocasiones
puede resultar más eficiente, sobre todo si el problema dual es mucho más
sencillo que el primal.
Algoritmo Dual del Simplex para el PPL de Minimizar
Paso 0.- Considerar una tabla del Simplex asociada a una solución básica
(no necesariamente posible) del primal y a una solución posible básica
del dual i.e., una base B del primal, tal que zj − cj ≤ 0, ∀j. Ir al Paso
1.
xB xN
z 0 zj − cj = ctB B −1 N − cN ctB B −1 b
xB Im Y = B −1 N b̄ = B −1 b
Paso 3.- Pivotar sobre yrk (xBr deja de ser básica y xk se hace básica).
Volver al Paso 1.
Tema 4: Teorı́a de Dualidad.
Algoritmo Dual del Simplex
1
4.1 Introducción
4.2 Definición del Problema Dual
4.3 Relaciones Primal-Dual
4.4 Condiciones de Holgura Complementaria
4.5 Interpretación Económica de la Dualidad
4.6 Determinación de la Solución Óptima a partir de la
Tabla Óptima del Problema Primal
4.7 El Algoritmo Dual del Simplex
2
4.2 Definición del Problema Dual
ct x
Min
Max bt ω
Primal (P ) s.a: Ax = b −→ Dual (D)
s.a: At ω ≤ c
x ≥ 0n
A, una matriz m × n, de rango completo por filas, b ∈ IRm y c ∈ IRn
zj − cj = ctB B −1 aj − cj ≤ 0, ∀j ∈ {1, 2, . . . , n}
| {z }
ω
↓
ωt A ≤ c
3
Simetrı́a de la Dualidad
El dual del dual es el primal
ω = ω 1 − ω 2 , ω 1 , ω 2 ∈ IR+
m
ω1
- Min (−bt , bt , 0)
ω 2
- Min −bt (ω 1 − ω 2 )
ωh
s.a: At (ω 1 − ω 2 ) + ω h = c
ω1
ω i ≥ 0m , ∀i = 1, 2
s.a: (A , −A , In )
t t
ω
2 = c
ωh ≥ 0n
ωh
ω i ≥ 0m , ∀i = 1, 2, ω h ≥ 0n
4
Cuyo dual es,
− Max ct y
s.a:
A −b
−A y ≤ b
In 0n
y ∈ IRn
(P ) Min z = ct x
s.a: Ax = b
x ≥ 0n
Basta hacer el cambio de variable x = −y.
5
Problema de | Problema de
Minimización | Maximización
≥0 ⇐⇒ ≤
Variables ≤0 ⇐⇒ ≥ Restricciones
No restringida ⇐⇒ =
≥ ⇐⇒ ≥0
Restricciones ≤ ⇐⇒ ≤0 Variables
= ⇐⇒ No restringida
términos independientes | coeficientes f. obj.
coeficientes f. obj. | términos independientes
matriz de restricciones | traspuesta matriz restricciones
6
Ejemplo: Consideremos el problema:
Su dual será:
Min z=− 3ω1 + 5ω2 + 4ω3
s.a.: − ω1 + ω3 ≥ −2
ω2 + ω3 ≥ −3
− 3ω1 + 2ω2 ≥ −9
ω3 ≥ 0
ω1 ≥ 0, ω2 ≤ 0 ω3 no restringida
7
4.3 Relaciones Primal-Dual
Ax̄ = b −→ ω t Ax̄ = ω t b
−→ bt ω ≤ ct x̄
At ω ≤ c, x̄ ≥ 0n −→ ω t Ax̄ ≤ ct x̄
8
El valor de la función objetivo en cualquier solución posible del
problema de minimización proporciona una cota superior del valor
de la función objetivo del problema de maximización.
9
Teorema de Dualidad Fuerte
ct x∗ = ctB (B −1 b) = ω ∗ t b
10
Teorema Fundamental de Dualidad
11
4.4 Condiciones de Holgura Complementaria
ui = ωi (bi − ati x) = 0 ∀i = 1, . . . , m
vj = (ω t aj − cj )xj = 0 ∀j = 1, . . . , n
Son condiciones necesarias y suficientes de optimalidad, para x y ω.
12
ui ≥ 0, ∀i y vj ≥ 0, ∀j. Entonces:
Pm
u= i=1 ui ≥ 0 u = 0 sii ui = ωi (bi − ati x) = 0, ∀i = 1, . . . , m
Pj
v= j=1 vj ≥ 0 v = 0 sii vj = (ω t aj − cj )xj = 0, ∀j = 1, . . . , n
m
X n
X
u+v = ωi (bi −ati x)+ (ω t aj −cj )xj = ω t b−ω t Ax+ω t Ax−ct x = ω t b−ct x
i=1 j=1
Luego,
u + v = 0 ↔ ct x = ω t b
Es decir, si y solo si:
13
Ejemplo, continuación . . .
Las condiciones de holgura complementaria para el par primal-dual
del ejemplo son:
ω1 (−3 + x1 + 3x3 ) = 0
ω2 (5 − x2 − 2x3 ) = 0
ω3 (4 − x1 − x2 − x4 ) = 0
(−ω1 + ω3 + 2)x1 = 0
(ω2 + ω3 + 3)x2 = 0
(−3ω1 + 2ω2 + 9)x3 = 0
ω3 x4 = 0
14
4.5 Interpretación Económica de la Dualidad
t
x∗ = (B −1 b, 0n−m )t , ω ∗t = ctB B −1
X X
z =ctB B −1 b − t ∗
(zj − cj )xj = b ω − (zj − cj )xj
j∈N j∈N
∂z
= ωi∗
∂bi
variable dual i-ésima = razón de cambio de la función objetivo del
primal cuando el término independiente de la i-ésima restricción
primal es sometido a pequeños cambios
15
Problema de Planificación de la Producción
(P) Max ct x
s.a: ati x ≤ bi ∀i = 1, . . . , m recursos
xj ≥ 0 ∀j = 1, . . . , n productos
Si ati x∗ < bi −→ ωi∗ = 0
ωi∗ (bi − ati x∗ ) = 0
Si ωi∗ > 0 −→ ati x∗ = bi
16
Utilidad de los Precios Sombra
17
4.7 Algoritmo Dual del Simplex
ct x
Min
Max bt ω
Primal s.a: Ax = b −→ Dual
s.a: At ω ≤ c
x ≥ 0n
A, una matriz m × n, de rango completo por filas, b ∈ IRm y c ∈ IRn y B una
submatriz regular m × m, A = (B, N )
B −1 b
x̄ = es una SPB del Problema Primal si B −1 b ≥ 0
0n−m
18
Algoritmo Dual del Simplex (Lemke, 1954)
Paso 0.- Considerar una tabla del Simplex cuya base B asociada sea
dual posible i.e., zj − cj ≤ 0, ∀j. Ir al Paso 1.
xB xN
z 0 = ctB B −1 B − ctB zj − cj ≡ ctB B −1 N − ctN ctB B −1 b
xB Im Y = B −1 N b̄ = B −1 b
19
Paso 2.- Si yrj ≥ 0, ∀j ∈ N , Stop, el dual es no acotado y el
primal es imposible. En otro caso, elegir la columna k, tal que,
½ ¾
zk − ck zj − cj
= Min | yrj < 0
yrk yrj
e ir al Paso 3.
Paso 3.- Pivotar sobre yrk (la variable xBr deja de ser básica y la
variable xk se hace básica). Volver al Paso 1.
20
Ejemplo, continuación . . . : Consideremos el problema:
21
x1 ↓ x2 x3 x4 x5 x6 rhs
z -2 -3 -9 0 0 0 0
−3 −9
x5 -1 0 -3 0 1 0 -3 → mı́n{ −1 , −2
} =3
x6 0 -1 -2 0 0 1 -5
x4 1 1 0 1 0 0 4
x1 x2 x3 x4 x5 x6 rhs
z -2 0 -3 0 0 -3 15
x5 -1 0 -3 0 1 0 -3
x2 0 1 2 0 0 -1 5
x4 1 0 -2 1 0 1 -1
22
x1 x2 ↓ x3 x4 x5 x6 rhs
z -2 0 -3 0 0 -3 15
x5 -1 0 -3 0 1 0 -3 → mı́n{ −2 , −3
−1 −3 } = 1
x2 0 1 2 0 0 -1 5
x4 1 0 -2 1 0 1 -1
x1 x2 x3 x4 x5 x6 rhs
0
z -1 0 0 0 -1 -3 18
3
x3 1
0 1 0 −1
0 1 x∗ = z ∗ = −18
3 3 1
−2 2
x2 3 1 0 0 3 -1 3
5 −2
1
x4 3 0 0 1 3 1 1
23
Ejemplo, continuación . . . :
Resolvamos el problema dual a partir de la solución óptima del problema
primal y utilizando las condiciones de holgura complementaria:
ω1 (−3 + x1 + 3x3 ) = 0
ω2 (5 − x2 − 2x3 ) = 0
ω3 (4 − x1 − x2 − x4 ) = 0
(−ω1 + ω3 + 2)x1 = 0
(ω2 + ω3 + 3)x2 = 0
(−3ω1 + 2ω2 + 9)x3 = 0
ω3 x4 = 0
24