Dual Simplex PDF
Dual Simplex PDF
Dual Simplex PDF
4.1 Introduccion
4.1. Introduccion
Uno de los descubrimientos mas importantes durante el desarrollo ini-
cial de la programacion lineal fue el concepto de dualidad y sus muchas e
importantes ramificaciones. Este descubrimiento revelo que asociado a todo
problema de programacion lineal existe otro problema lineal llamado dual.
Las relaciones entre el dual y su original (llamado primal) son extremada-
mente utiles en una gran variedad de situaciones. Por ejemplo, se vera que de
hecho la solucion optima del problema dual es la que proporciona los precios
sombra descritos en las practicas al introducir el analisis de sensibilidad.
Uno de los papeles clave que juega la teora de la dualidad es la inter-
pretacion y realizacion del analisis de sensibilidad. De hecho la dualidad nos
permitira tratar dicho analisis desde el punto de vista algebraico pudiendo
as generalizarlo y aplicarlo a cualquier problema de programacion lineal,
independientemente de cual sea su tamano i.e., numero de variables y/o res-
tricciones.
Los orgenes de la dualidad, tal y como hoy se conoce, son, en boca del
propio Dantzig , atribuibles al celebre matematico John Von Neumann, quien,
en octubre de 1947, conjeturo por primera vez la existencia de un problema
dual asociado al modelo de programacion lineal. Dantzig haba acudido a Von
Neumann en busca de sugerencias e ideas para desarrollar nuevas tecnicas
para resolver el modelo de programacion lineal pues, por aquel entonces,
Tema 4: Teora de dualidad. Algoritmo Dual del Simplex
todos no positivos,
Ejemplo 4.2.1
Dado el problema de programacion lineal:
su dual es:
Max 41 + 72
s.a.: 31 + 52 6
11 + 22 8
1 , 2 no restringidas
La definicion de dualidad que hemos dado nos permite demostrar facil-
mente la siguiente propiedad,
Tema 4: Teora de dualidad. Algoritmo Dual del Simplex
Simetra 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 mas apropiado llevar a cabo una construccion directa del problema
dual. Para ello hay que tener en cuenta lo siguiente:
Problema de | Problema de
Minimizacion | Maximizacion
0
Variables 0 Restricciones
No restringida =
0
Restricciones 0 Variables
= No restringida
terminos independientes | coeficientes f. obj.
coeficientes f. obj. | terminos independientes
matriz de restricciones | traspuesta matriz restricciones
Ejemplo 4.2.2
Dado el problema de programacion lineal:
su dual es:
Min 21 42
s.a.: 11 + 52 8
61 + 72 3
11 22 = 2
1 0
2 no restringida
En cualquier iteracion del smplex 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 restriccion 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 maximizacion daran
por resultado un incremento en el valor de la funcion objetivo y las del pro-
blema de minimizacion daran por resultado una disminucion en el valor de
la funcion objetivo. A la larga, durante el curso de las sucesivas iteraciones,
se llegara a un punto de equilibrio donde los valores objetivos de la maximi-
zacion y de la minimizacion deben ser iguales.
El siguiente resultado nos permite averiguar cuando podemos garantizar
la existencia de soluciones de un par primal-dual.
Teorema de Dualidad Fuerte
Por el teorema de dualidad debil sabemos que si uno de los dos problemas
tiene solucion optima finita el otro no puede ser no acotado, por lo tanto,
solamente le quedan dos alternativas, ser imposible o tener solucion optima
finita. Como vemos a continuacion, la opcion de la imposibilidad puede ser
Tema 4: Teora de dualidad. Algoritmo Dual del Simplex 9
descartada ya que el algoritmo del Simplex nos permite dar una demostracion
constructiva de la factibilidad del problema.
Podemos suponer, sin perdida de generalidad, que el problema que tiene
solucion optima finita es el problema primal. Sea x una solucion optima de
P obtenida con el metodo Simplex.
Siguiendo el mismo razonamiento utilizado al principio del tema para
introducir el problema dual, podemos afirmar que t = ctB B 1 es solucion
posible del dual, siendo B la base en la tabla del Simplex asociada a x .
Ademas:
ct x = ctB (B 1 b) = t b.
Ahora bien, como por el teorema de dualidad debil sabemos que,
es solucion optima de D.
Analogamente demostraramos que si el dual tiene solucion optima finita,
el primal tambien la tiene, y los valores optimos coinciden. 2
Los resultados anteriores suelen enunciarse conjuntamente en el denomi-
nado:
Teorema Fundamental de Dualidad
1. Los dos problemas tienen solucion optima finita, y los valores optimos
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 = ,
0nm
es una solucion optima del problema primal. Sea t = ctB B 1 la solucion
dual complementaria. Teniendo en cuenta que la funcion objetivo de P puede
expresarse en funcion, unicamente, de las variables no basicas:
X X
z =ctB B 1 b (zj cj )xj = bt (zj cj )xj ,
jN jN
nos reportara ningun 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 pagaramos es i = 0, es decir, se cumple la condicion 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-esimo resulta rentable, la unica
explicacion razonable para ello es que el agotamiento del recurso condiciona
el plan de produccion optimo. En terminos matematicos, ati x = bi , es decir,
la restriccion i-esima es activa en la solucion optima. De nuevo se cumple la
condicion de holgura complementaria.
Analogamente, si pensamos en que i representa el valor de una uni-
dad de recurso bi , entonces t aj representara el coste total de los recursos
que se necesitan para fabricar una unidad de producto j. Logicamente, si
t aj > cj , significa que los recursos necesarios para fabricar una unidad de
producto j cuestan mas que el beneficio que nos va a reportar vender dicha
unidad, por lo tanto, xj = 0, es decir, no fabricaremos dicho producto. Ahora
bien, xj > 0 significa que resulta rentable fabricar el producto j, luego nece-
sariamente t aj = cj . En cualquier caso se cumple la condicion de holgura
complementaria, ( t aj cj )xj = 0.
Despues 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 optimamente el problema dual. Para conseguirlo, los pivotes se
realizan de forma que en cada iteracion se mantiene la posibilidad dual, se
mejora el valor de la funcion objetivo dual, y se garantiza que se cumplen
las condiciones de holgura complementaria para el par de soluciones basicas
representadas en la tabla. Evidentemente, si llegamos al optimo tendremos
tambien la solucion optima 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 metodo del
Simplex el problema dual, pero, sobre la tabla del Simplex para el problema
primal. Se trata de un metodo alternativo al metodo Simplex que en ocasiones
puede resultar mas eficiente, sobre todo si el problema dual es mucho mas
sencillo que el primal.
Algoritmo Dual del Simplex para el PPL de Minimizar
Paso 0.- Considerar una tabla del Simplex asociada a una solucion basica
(no necesariamente posible) del primal y a una solucion posible basica
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 basica y xk se hace basica).
Volver al Paso 1.
Tema 4: Teora de Dualidad.
Algoritmo Dual del Simplex
1
4.1 Introduccion
4.2 Definicion del Problema Dual
4.3 Relaciones Primal-Dual
4.4 Condiciones de Holgura Complementaria
4.5 Interpretacion Economica de la Dualidad
4.6 Determinacion de la Solucion Optima a partir de la
Tabla Optima del Problema Primal
4.7 El Algoritmo Dual del Simplex
2
4.2 Definicion 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
Simetra 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
Minimizacion | Maximizacion
0
Variables 0 Restricciones
No restringida =
0
Restricciones 0 Variables
= No restringida
terminos independientes | coeficientes f. obj.
coeficientes f. obj. | terminos independientes
matriz de restricciones | traspuesta matriz restricciones
6
Ejemplo: Consideremos el problema:
Su dual sera:
Min z= 31 + 52 + 43
s.a.: 1 + 3 2
2 + 3 3
31 + 22 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 funcion objetivo en cualquier solucion posible del
problema de minimizacion proporciona una cota superior del valor
de la funcion objetivo del problema de maximizacion.
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 Axct x = t bct x
i=1 j=1
Luego,
u + v = 0 ct x = t b
Es decir, si y solo si:
13
Ejemplo, continuacion . . .
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
(31 + 22 + 9)x3 = 0
3 x4 = 0
14
4.5 Interpretacion Economica de la Dualidad
t
x = (B 1 b, 0nm )t , t = ctB B 1
X X
z =ctB B 1 b t
(zj cj )xj = b (zj cj )xj
jN jN
z
= i
bi
variable dual i-esima = razon de cambio de la funcion objetivo del
primal cuando el termino independiente de la i-esima restriccion
primal es sometido a pequenos cambios
15
Problema de Planificacion de la Produccion
(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
0nm
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 basica y la
variable xk se hace basica). Volver al Paso 1.
20
Ejemplo, continuacion . . . : 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 mn{ 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 mn{ 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, continuacion . . . :
Resolvamos el problema dual a partir de la solucion optima 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
(31 + 22 + 9)x3 = 0
3 x4 = 0
x2 = 3 > 0 2 + 3 = 3
x3 = 1 > 0 31 + 22 = 9 1 = 1, 2 = 3, 3 = 0
x4 = 1 > 0 3 = 0
24