Upload
trinhhuong
View
213
Download
0
Embed Size (px)
Citation preview
Tema 4: Teorıa 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 Opti-
ma del Problema Primal
4.7 El Algoritmo Dual del Simplex
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 teorıa 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 orıgenes 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 habıa 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: Teorıa de dualidad. Algoritmo Dual del Simplex
los ordenadores todavıa no se habıan desarrollado y el potencial del metodo
Simplex estaba aun por descubrir. El azar quiso que Von Neumann acabase
justo de escribir un texto sobre teorıa de juegos, y fueron los resultados de
dicha teorıa los que le permitieron reconocer, de forma inmediata, la relacion
entre los juegos de suma nula entre dos jugadores y la programacion lineal.
El objetivo de este apartado es introducir la construccion del problema
dual asociado a un problema de programacion lineal general, y establecer,
a traves de los principales resultados de dualidad, las relaciones entre am-
bos problemas. Veremos tambien como, en ausencia de degeneracion, las
denominadas condiciones de holgura complementaria nos permiten obtener,
unıvocamente, la solucion optima de cualquiera de los problemas de un par
primal-dual a partir de la solucion optima del otro. Terminaremos introdu-
ciendo la naturaleza economica de la teorıa de la dualidad. De hecho, puede
decirse que la clave de esta teorıa esta en interpretar los problemas primal y
dual como modelizaciones, desde dos puntos de vista opuestos, de una misma
situacion a la que se enfrentan dos personas que compiten entre sı. En este
modelo de competitividad, el beneficio maximo que puede obtener una de
ellas se alcanza en el punto en el que se equilibra la perdida maxima que
esta dispuesta a admitir su oponente.
4.2. Definicion del Problema Dual
Supongamos que el siguiente problema de programacion lineal ha sido
resuelto utilizando el algoritmo Simplex:
Primal (P )
Min z = ctx
s.a: Ax = b
x ≥ 0n,
en donde A es una matriz m × n, de rango completo por filas, b ∈ IRm y
c ∈ IRn, y sea,
x =
(xB
xN
)=
(B−1b
0n−m
),
la solucion optima alcanzada. Con A = (B, N), y B una submatriz regular
m×m. Sabemos que en la tabla optima del Simplex los costes reducidos son
Tema 4: Teorıa de dualidad. Algoritmo Dual del Simplex 3
todos no positivos,
zj − cj = ctBB−1aj − cj ≤ 0, ∀j ∈ {1, 2, . . . , n}.
Es decir, la optimalidad “equivale” a encontrar una combinacion lineal de
las filas de A cuyo resultado, ctBB−1A, sea un vector que acote inferiormente
al vector de costes de la funcion objetivo. Si pensamos en los multiplicado-
res de las filas, ctBB−1, como en variables cuyo valor desconocemos, podrıa
decirse que la resolucion del problema de Programacion Lineal consiste en
la busqueda de los valores adecuados para que, ωtA ≤ c. Hemos construi-
do ası un nuevo conjunto de restricciones de un problema de programacion
lineal, para el que la solucion asociada a la submatriz, B, definida por las
columnas asociadas a las variables basicas optimas de P (en adelante base
optima), ωt = ctBB−1, no unicamente es posible, sino que ademas, es optima
para la funcion objetivo Max btω. Estamos en condiciones de definir el proble-
ma dual del problema primal en forma estandar como el siguiente problema
de programacion lineal:
Dual (D)
Max btω
s.a: Atω ≤ c
ω no restringida.
Ejemplo 4.2.1
Dado el problema de programacion lineal:
Min 6x1 + 8x2
s.a.: 3x1 + 1x2 = 4
5x1 + 2x2 = 7
x1, x2 ≥ 0
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 definicion de dualidad que hemos dado nos permite demostrar facil-
mente la siguiente propiedad,
Tema 4: Teorıa de dualidad. Algoritmo Dual del Simplex
Simetrıa de la Dualidad
El dual del dual es el primal
En efecto, sea P el problema primal en forma estandar, y D el correspon-
diente dual. Podemos expresar el problema D en forma estandar aplicando
el siguiente cambio de variables: ω = ω1 − ω2, ω1, ω2 ∈ IRm+
− Min −bt(ω1 − ω2)
s.a: At(ω1 − ω2) + ωh = c
ω1 ≥ 0m, ω2 ≥ 0m, ωh ≥ 0n.
Es decir, D es ahora:
− Min (−bt, bt, 0)
ω1
ω2
ωh
s.a: (At,−At, In)
ω1
ω2
ωh
= c
ω1 ≥ 0m, ω2 ≥ 0m, ωh ≥ 0n.
cuyo dual es, aplicando la definicion:
− Max cty
s.a:
A
−A
In
y ≤
−b
b
0n
y ∈ IRn,
que, evidentemente, es equivalente al problema original P , basta con realizar
de nuevo el cambio de variables, x = −y. 2
Teniendo en cuenta que cualquier PPL puede transformarse mediante sen-
cillas operaciones en un problema equivalente en forma estandar, la definicion
de dualidad dada es suficiente para obtener el problema dual de cualquier
Tema 4: Teorıa de dualidad. Algoritmo Dual del Simplex 5
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:
1. Por cada restriccion del problema primal (excepto las de no negativi-
dad) se define una variable en el problema dual.
2. Por cada variable en el problema primal se define una restriccion en el
problema dual. Los coeficientes de las variables en estas restricciones se
obtienen de la columna en el problema primal asociada a dicha variable.
El termino de la derecha de la restriccion es igual al coeficiente en la
funcion objetivo del primal de la misma variable.
3. Los coeficientes de la funcion objetivo del problema dual son iguales al
RHS del problema primal.
Las reglas para determinar el sentido de la optimizacion, el tipo de restriccion
y el signo de las variables en el problema dual se dan en la siguiente tabla:
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
Cuadro 4.1: Relaciones entre los problemas primal y dual
Tema 4: Teorıa de dualidad. Algoritmo Dual del Simplex
Ejemplo 4.2.2
Dado el problema de programacion lineal:
Max 8x1 + 3x2 − 2x3
s.a.: 1x1 − 6x2 + 1x3 ≥ 2
5x1 + 7x2 − 2x3 = −4
x1 ≤ 0
x2 ≥ 0
x3 no restringido
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
4.3. Relaciones Primal-Dual
Conviene resaltar que, evidentemente, tanto la simetrıa de la dualidad
como los resultados que presentaremos en esta seccion son aplicables, con los
cambios adecuados, a cualquier pareja primal-dual. En principio, y salvo que
explıcitamente establezcamos otras condiciones, supondremos que estamos
trabajando con el par:
(P ) Min ctx (D) Max btω
s.a: Ax = b s.a: Atω ≤ c.
x ≥ 0n,
Los problemas primales y duales estan tan estrechamente relacionados,
que la solucion optima de un problema se puede obtener directamente (sin
calculos adicionales) de la tabla del sımplex optima del otro problema. Este
resultado se basa en la siguiente propiedad:
Tema 4: Teorıa de dualidad. Algoritmo Dual del Simplex 7
En cualquier iteracion 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 restriccion j en el otro problema
Este resultado es ventajoso desde el punto de vista de los calculos ya que
podemos resolver el problema que resulte mas sencillo de los dos y aplicar
despues esta propiedad para obtener la solucion optima del otro. Pensemos
por ejemplo en el dual de un problema con 100 variables y 500 restricciones.
Resolver el dual implica trabajar con un problema de 500 variables y 100
restricciones que sin duda es mucho mas sencillo ya que trabajaremos con
inversas de matrices 100 x 100 en lugar de 500 x 500.
A continuacion presentamos una relacion entre el primal y el dual, que
junto con la propiedad anterior, se puede emplear para proporcionar intere-
santes interpretaciones economicas del problema de programacion lineal.
Teorema de Dualidad Debil
Dados un par primal-dual, si x es una solucion posible de P y ω es una
solucion posible de D, entonces, btω ≤ ctx.
En efecto, sea x una solucion posible de P , entonces, Ax = b y x ≥ 0n.
Veamos que ctx es una cota superior del valor de la funcion objetivo en
cualquier solucion posible del problema dual.
Sea ω una solucion posible del dual, entonces,
Ax = b −→ ωtAx = ωtb
Atω ≤ c, x ≥ 0n −→ ωtAx ≤ ctx
}−→ btω ≤ ctx.
2
Como consecuencia podemos afirmar, que para cualquier pareja primal-
dual:
Tema 4: Teorıa de dualidad. Algoritmo Dual del Simplex
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.
El valor de la funcion objetivo en una solucion posible del
problema de maximizacion proporciona una cota inferior del
valor de la funcion objetivo del problema de minimizacion.
Si uno de los dos problemas de un par primal-dual es no aco-
tado, entonces el otro problema es imposible
Si x es solucion posible del primal, w es solucion posible del
dual, y ctx = btω, entonces, x y ω son soluciones optimas de
sus problemas respectivos.
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
Si uno de los problemas de un par primal-dual tiene solucion optima finita,
entonces, el otro tambien la tiene, y los valores optimos de las respectivas
funciones objetivo coinciden.
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: Teorıa 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 = ctBB−1 es solucion
posible del dual, siendo B la base en la tabla del Simplex asociada a x∗.
Ademas:
ctx∗ = ctB(B−1b) = ω∗tb.
Ahora bien, como por el teorema de dualidad debil sabemos que,
ctx∗ ≥ btω, ∀ω solucion del dual,
ω∗ es solucion optima de D.
Analogamente demostrarıamos 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
Dado un par primal-dual, una y solo una de las afirmaciones siguientes es
cierta:
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.
El siguiente ejemplo nos permite demostrar que hemos de contemplar,
necesariamente, la tercera de las opciones:
(P ) Min zP = −x1 − x2 (D) Max zD = ω1 + ω2
s.a: x1 − x2 ≥ 1 s.a: ω1 − ω2 ≤ −1
−x1 + x2 ≥ 1 −ω1 + ω2 ≤ −1
x1, x2 ≥ 0 ω1, ω2 ≥ 0
Tema 4: Teorıa de dualidad. Algoritmo Dual del Simplex
Primal-Dual Optimo Finito No Acotado Imposible
Optimo Finito 1 × ×No Acotado × × 2
Imposible × 2 3
Cuadro 4.2: Alternativas posibles en un par primal-dual
ya que los dos problemas son imposibles.
En definitiva, si tenemos en cuenta que cualquier problema lineal puede
ser, acotado, no acotado, o imposible, de las nueve posibilidades que en prin-
cipio hay cuando comparamos el problema primal con el dual, solamente 4
de ellas pueden darse. Lo resumimos en la siguiente tabla.
4.4. Condiciones de Holgura Complementa-ria
Al introducir el tema ya avanzamos que una de las propiedades principales
de una pareja primal-dual reside en la posibilidad de obtener, cuando los dos
problemas tienen soluciones optimas finitas, la solucion optima de uno de los
problemas a partir de la del otro, y viceversa. Esta propiedad juega un papel
fundamental a la hora de resolver los problemas de programacion lineal para
los que el correspondiente dual es bastante mas sencillo que el primal. El
siguiente resultado nos proporciona la forma de conseguir unas soluciones a
partir de otras:
Teorema de Holgura Complementaria
Dado el siguiente par primal-dual,
(P ) Max ctx (D) Min btω
s.a: Ax ≤ b s.a: Atω ≥ c
x ≥ 0 ω ≥ 0,
x solucion posible de P , y ω solucion posible de D. Las condiciones de holgura
complementaria:1
ui = ωi(bi − atix) = 0 ∀i = 1, . . . , m
vj = (ωtaj − cj)xj = 0 ∀j = 1, . . . , n
Son condiciones necesarias y suficientes de optimalidad, para x y ω.
Observese que ui ≥ 0, ∀i y vj ≥ 0, ∀j. Por lo tanto:
u =∑m
i=1 ui ≥ 0
v =∑j
j=1 vj ≥ 0,
1En donde ai denota la fila i-esima de la matriz A , y aj la columna j-esima.
Tema 4: Teorıa de dualidad. Algoritmo Dual del Simplex 11
de donde, u = 0 si y solo si ωi(bi− atix) = 0, ∀i = 1, . . . , m, y v = 0 si y solo
si vj = (ωtaj − cj)xj = 0, ∀j = 1, . . . , n. Ahora bien,
u+v =m∑
i=1
ωi(bi−atix)+
n∑j=1
(ωtaj−cj)xj = ωtb−ωtAx+ωtAx−ctx = ωtb−ctx
de donde, u + v = 0 si y solo si ctx = ωtb, es decir, si y solo si x y ω son,
respectivamente, soluciones optimas de los problemas primal y dual. 2
Este resultado es valido para cualquier pareja de problemas primales-
duales. Nuestra eleccion concreta del par primal-dual para el cual hemos
desarrollado las condiciones de holgura complementaria obedece, por un lado,
a cuestiones de claridad en la exposicion, y por otro, a que la interpretacion
economica de las mismas, que hacemos en el punto siguiente, es mucho mas
rica que para otras parejas primales-duales.
Las condiciones de holgura complementaria relacionan, las variables de
holgura de cada restriccion del problema primal, con las variables duales
asociadas a dichas restricciones, y las holguras del dual, con las variables
primales asociadas. Vistas ası, podemos interpretar las condiciones de holgura
complementaria de la siguiente forma,
Dos soluciones posibles del primal y del dual son, respectiva-
mente optimas, si y solo sı, toda variable asociada a una restric-
cion con variable de holgura distinta de cero, es nula.
4.5. Interpretacion Economica de la Duali-dad
Las condiciones de holgura complementaria captan perfectamente la esen-
cia de la dualidad ya que, como veremos a continuacion, formalizan matema-
ticamente algunos principios basicos de economıa. Entenderemos mejor su
significado despues de introducir la interpretacion economica de la variables
duales. Consideremos la siguiente pareja primal-dual:
(P ) Max ctx (D) Min btω
s.a: atix ≤ bi i = 1, . . . , m s.a: ωtaj ≥ cj j = 1, . . . , n
xj ≥ 0 j = 1, . . . , m ωi ≥ 0 i = 1, . . . , n
Tema 4: Teorıa de dualidad. Algoritmo Dual del Simplex
Supongamos que,
x∗ =
(B−1b
0n−m
),
es una solucion optima del problema primal. Sea ω∗t = ctBB−1 la solucion
dual complementaria. Teniendo en cuenta que la funcion objetivo de P puede
expresarse en funcion, unicamente, de las variables no basicas:
z =ctBB−1b−
∑j∈N
(zj − cj)xj = btω∗ −∑j∈N
(zj − cj)xj,
en ausencia de degeneracion primal cabe esperar que pequenos cambios en
los valores de un bi no provoquen un cambio de base optima, por lo tanto,
las variables no basicas seguiran siendo las mismas (e iguales a cero). En esta
situacion, z puede suponerse diferenciable en un entorno del valor actual de
b, siendo la derivada parcial con respecto a bi:
∂z
∂bi
= ω∗i ,
es decir, podemos interpretar la variable dual i-esima como la razon de cam-
bio de la funcion objetivo cuando el termino independiente de la i-esima
restriccion primal asociada es sometido a pequenos cambios .
Pensemos por ejemplo en una situacion real en la que P modeliza un
problema de planificacion de la produccion. En este problema debe decidir-
se cuantas unidades fabricar de una serie de productos, j = 1, . . . , n, que
comparten los mismos recursos limitados, bi, i = 1, . . . , m. El objetivo es
planificar la produccion de forma que los beneficios obtenidos sean maximos.
En estas condiciones ω∗i representa el beneficio extra que conseguirıamos si
dispusiesemos de una unidad mas de recurso i. Evidentemente, si ω∗i es el
beneficio que conseguirıamos si dispusiesemos de una unidad mas de recurso
i, este sera, precisamente, el precio maximo (“extra”, si el coste del recurso
esta implıcito en la funcion objetivo) que estaremos dispuestos a pagar por
conseguir una unidad extra del recurso, de ahı que las variables duales se
denominen tambien precios sombra.
Ahora resulta mas sencillo interpretar las condiciones de holgura comple-
mentaria: Si atix∗ < bi, entonces, el recurso i-esimo no se agota con el plan de
produccion optimo, logicamente, disponer de una unidad mas de recurso no
Tema 4: Teorıa de dualidad. Algoritmo Dual del Simplex 13
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 pagarıamos es ω∗i = 0, es decir, se cumple la condicion de holgura com-
plementaria ω∗i (bi − atix∗) = 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, atix∗ = 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 ω∗taj representara el coste total de los recursos
que se necesitan para fabricar una unidad de producto j. Logicamente, si
ω∗taj > 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, 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 ω∗taj = cj. En cualquier caso se cumple la condicion de holgura
complementaria, (ωtaj − 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:
valorar la estabilidad de la solucion optima alcanzada, ayudando en el
analisis de sensibilidad postoptimo,
contemplar cambios en polıticas de actuacion,
valorar la conveniencia de introducir o no en el mercado nuevos pro-
ductos,
justificar cambios de precios en empresas como las electricas, o las pe-
trolıferas, en las que los precios estan sujetos a restricciones legales.
No obstante, conviene dejar constancia de que en presencia de degenera-
cion la interpretacion de las variables duales requiere consideraciones adicio-
nales. La degeneracion puede implicar que haya mas de una base asociada a
una solucion optima, lo que significa que los precios sombra no estan unıvo-
camente determinados por el valor de las variables duales en el optimo, ya
que estas no son unicas.
Tema 4: Teorıa de dualidad. Algoritmo Dual del Simplex
En este tipo de situaciones, y en el caso concreto con el que estamos tra-
bajando, una variable dual, ω∗i , debe interpretarse como una cota superior
del cambio que experimentarıa la funcion objetivo si se incrementase en una
unidad el termino i-esimo, o como una cota inferior, si el termino se disminu-
yese. Lo recomendable serıa realizar el analisis de sensibilidad de la solucion
optima.
Para terminar daremos una interpretacion intuitiva de cual debe ser el
signo de las variables duales.
el signo de las variables duales
Recordemos que el valor de la variable dual optima, ωi, asociada a una res-
triccion, (aitx, bi) indica la cantidad en la que cambia la funcion objetivo
cuando se modifica el termino derecho de la restriccion, siempre y cuando
esta modificacion no implique un cambio de base optima (variables basicas).
Luego:
Nuevo valor optimo de z = Viejo valor optimo de z + ωi4bi
Si tenemos en cuenta que,
aumentar el valor de bi en una restriccion de ≤ no puede empeorar
nuestra situacion actual, pero sı podrıa mejorarla (incrementar el bi
implica ampliar el conjunto de soluciones posibles del problema).
Aumentar el valor de bi en una restriccion de ≥ no puede mejorar
nuestra situacion actual, pero si podrıa empeorarla (incrementar el bi
implica reducir el conjunto de soluciones posibles del problema).
Queda claro que, en un:
Problema de Maximizacion
La variable dual de una restriccion de ≤, es siempre positiva.
La variable dual de una restriccion de ≥, es siempre negativa.
Problema de Minimizacion
La variable dual de una restriccion de ≤, es siempre negativa.
La variable dual de una restriccion de ≥, es siempre positiva.
Para restricciones del tipo =, el signo de la variable dual puede ser cual-
quiera.
Tema 4: Teorıa de dualidad. Algoritmo Dual del Simplex 15
4.6. Determinacion de la Solucion Optima apartir de la Tabla Optima del ProblemaPrimal
Para identificar el valor de las variables duales en la tabla optima del
Simplex podemos proceder de cualquiera de las dos formas siguientes:
Suponiendo que hemos resuelto un problema de programacion lineal
cuya matriz de restricciones (Ax = b) contenıa la matriz identidad,
aunque no necesariamente ordenada, podemos averiguar directamente
la solucion optima del problema dual identificando en la tabla optima
del problema primal la inversa de la matriz formada por las columnas
originales de las variables basicas, es decir B−1. Concretamente, B−1
estara formada por las columnas de la tabla optima que originalmente
correspondıan a la matriz identidad.
El valor optimo de las variables duales no sera otro que cBtB−1.
Los costes reducidos en la tabla optima de las variables de holgura
y/o artificiales proporcionan el valor de la variable dual asociada a
la restriccion en la que se ha anadido dicha variable de holgura y/o
artificial.
Solamente hay que tener en cuenta los siguientes detalles:
1. Si la restriccion “i-esima” era de ”≤”, la variable de holgura xj
se anade y el vector de coeficientes de dicha variable es un vector
unitario con todo ceros excepto un 1 en la posicion i-esima. Enton-
ces su coste reducido, zj− cj = cBtB−1aj− cj = ωtaj− 0 = ωi. La
variable dual de la restriccion es igual al coste reducido
de la variable de holgura asociada a dicha restriccion.
2. Si la restriccion “i-esima” era de ”≥”, la variable de holgura xj se
resta y el vector de coeficientes de dicha variable es un vector uni-
tario con todo ceros excepto un -1 en la posicion i-esima. Entonces
su coste reducido, zj − cj = cBtB−1aj − cj = ωtaj − 0 = −ωi. La
variable dual de la restriccion es igual al coste reducido
Tema 4: Teorıa de dualidad. Algoritmo Dual del Simplex
cambiado de signo de la variable de holgura asociada a
dicha restriccion.
3. Si la restriccion “i-esima” era de “=”, la variable artificial xj se
anade y el vector de coeficientes de dicha variable es un vector uni-
tario con todo ceros excepto un 1 en la posicion i-esima. Entonces
su coste reducido, zj − cj = cBtB−1aj − cj = ωtaj − 0 = ωi. La
variable dual de la restriccion es igual al coste reducido
de la variable artificial asociada a dicha restriccion.
4.7. El Algoritmo Dual del Simplex
Las propiedades entre el problema de programacion lineal y su dual han
dado origen a nuevos algoritmos para resolver el PPL, entre ellos, al algoritmo
Dual del Simplex que presentamos en esta seccion.
Los resultados de dualidad nos permiten interpretar el algoritmo del Sim-
plex como un esquema iterativo en el que, partiendo de una solucion posible
del primal (b = B−1b ≥ 0), se trata de alcanzar una solucion posible del dual
(zj − cj = ctBB−1aj − cj = ωtaj − cj ≤ 0, ∀j ∈ N).
En cada iteracion, el algoritmo se mueve de una solucion posible basica
del primal, (B−1b, 0n−m)t, a otra i.e., de un punto extremo a otro. Cada una
de las soluciones posibles basicas del primal tiene asociado, a traves de las
condiciones de holgura complementaria, un vector ωt = ctBB−1 de variables
duales, que, salvo que estemos en el optimo, no sera solucion posible del dual,
aunque sı que cumplira la condicion necesaria de optimalidad establecida en
el Teorema Fuerte de Dualidad i.e., ctx = btω. Una vez alcanzado el optimo
disponemos de una solucion posible del dual y de otra del primal.
En ocasiones resulta sencillo encontrar una solucion posible del dual
(zj − cj ≤ 0 ) pero no del primal (b ≥ 0) o, como ocurre en el analisis
de sensibilidad, despues de haber alcanzado la optimalidad, es necesario rea-
lizar cambios en las condiciones del problema (terminos de la derecha, matriz
de restricciones, anadir restricciones) que nos hacen perder la posibilidad pri-
mal, pero no la dual.
El algoritmo Dual del Simplex, desarrollado por Lemke en 1954, nos pro-
porciona una forma eficiente para superar estos “inconvenientes” sin nece-
sidad de buscar una nueva solucion posible basica inicial para resolver de
Tema 4: Teorıa de dualidad. Algoritmo Dual del Simplex 17
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 = ctBB−1N − cN ct
BB−1b
xB Im Y = B−1N b = B−1b
Paso 1.- Si la solucion es primal posible i.e., b ≥ 0m, Stop, se han alcanzado
las soluciones optimas del primal y del dual. En otro caso, elegir una
fila r con br < 0, por ejemplo, br = min{bi}, e ir al Paso 2.
Paso 2.- Si yrj ≥ 0, ∀j ∈ N , Stop, el dual es no acotado y el primal
es imposible. En otro caso, aplicar el siguiente criterio para elegir la
columna pivote:
k :zk − ck
yrk
= Min
{zj − cj
yrj
| yrj < 0
}
e ir al Paso 3.
Paso 3.- Pivotar sobre yrk (xBr deja de ser basica y xk se hace basica).
Volver al Paso 1.
Tema 4: Teorıa de Dualidad.
Algoritmo Dual del Simplex
(P ) Min ctx (D) Max btω
s.a: Ax = b s.a: Atω ≤ c
x ≥ 0n
Orıgenes: Conversaciones de John Von Neumann con George Dantzig(Octubre de 1947). Teorıa de Juegos
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 laTabla Optima del Problema Primal
4.7 El Algoritmo Dual del Simplex
2
4.2 Definicion del Problema Dual
Primal (P )
Min ctx
s.a: Ax = b
x ≥ 0n
−→ Dual (D)
Max btω
s.a: Atω ≤ c
A, una matriz m× n, de rango completo por filas, b ∈ IRm y c ∈ IRn
xt = (xB , xN )t = (B−1b, 0n−m)t, A = (B, N), y B una submatriz regular m×m
Condicion de Optimalidad en la Tabla del Simplex
zj − cj = ctBB−1
︸ ︷︷ ︸ω
aj − cj ≤ 0, ∀j ∈ {1, 2, . . . , n}
↓ωtA ≤ c
3
Simetrıa de la Dualidad
El dual del dual es el primal
El problema dual puede expresarse en forma estandar, utilizando el
siguiente cambio de variable:
ω = ω1 − ω2, ω1, ω2 ∈ IRm+
- Min −bt(ω1 − ω2)
s.a: At(ω1 − ω2) + ωh = c
ωi ≥ 0m, ∀i = 1, 2
ωh ≥ 0n
- Min (−bt, bt, 0)
ω1
ω2
ωh
s.a: (At,−At, In)
ω1
ω2
ωh
= c
ωi ≥ 0m, ∀i = 1, 2, ωh ≥ 0n
4
Cuyo dual es,
− Max cty
s.a:
A
−A
In
y ≤
−b
b
0n
y ∈ IRn
Que equivale al problema primal:
(P ) Min z = ctx
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
Cuadro 1: Relaciones entre los problemas primal y dual
6
Ejemplo: Consideremos el problema:
Max z = − 2x1 − 3x2 − 9x3
s.a.: − x1 − 3x3 ≤ −3
x2 + 2x3 ≥ 5
x1 + x2 + x4 = 4
x1, x2, x3, x4 ≥ 0
Su dual sera:
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
Teorema de Dualidad Debil
Dados un par primal-dual, si x es una solucion posible de P y ω esuna solucion posible de D, entonces, btω ≤ ctx.
Dadas x una solucion posible del primal, y ω cualquier solucionposible del dual:
Ax = b −→ ωtAx = ωtb
Atω ≤ c, x ≥ 0n −→ ωtAx ≤ ctx
−→ btω ≤ ctx
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.
El valor de la funcion objetivo en una solucion posible del proble-
ma de maximizacion proporciona una cota inferior del valor de la
funcion objetivo del problema de minimizacion.
Si uno de los dos problemas de un par primal-dual es no acotado,
entonces el otro problema es imposible.
Si x es solucion posible del primal, w es solucion posible del dual, y
ctx = btω, entonces, x y ω son soluciones optimas de sus problemas
respectivos.
9
Teorema de Dualidad Fuerte
Si uno de los problemas de un par primal-dual tiene solucion optimafinita, entonces, el otro tambien la tiene, y los valores optimos de lasrespectivas funciones objetivo coinciden.
Sea x∗ una solucion optima de P obtenida con el metodo Simplex, ysea B la base en la tabla asociada a x∗, x∗t = (B−1b, 0n−m)t.
Entonces, ω∗t = ctBB−1 es solucion posible del dual, siendo:
ctx∗ = ctB(B−1b) = ω∗tb
Por el teorema de dualidad debil,
ctx∗ ≥ btω, ∀ ω solucion de D −→ ω∗ es solucion optima de D
10
Teorema Fundamental de Dualidad
Dado un par primal-dual, una y solo una de las afirmacionessiguientes es cierta:
1. Los dos problemas tienen solucion optima finita, y los valoresoptimos de ambos problemas coinciden.
2. Uno de los dos problemas es no acotado y el otro es imposible.
3. Ambos problemas son imposibles.
(P ) Min zP = −x1 − x2 (D) Max zD = ω1 + ω2
s.a: x1 − x2 ≥ 1 s.a: ω1 − ω2 ≤ −1
−x1 + x2 ≥ 1 −ω1 + ω2 ≤ −1
x1, x2 ≥ 0 ω1, ω2 ≥ 0
11
4.4 Condiciones de Holgura Complementaria
Teorema de Holgura Complementaria
Dado el siguiente par primal-dual,
(P ) Max ctx (D) Min btω
s.a: Ax ≤ b s.a: Atω ≥ c
x ≥ 0 ω ≥ 0,
x solucion posible de P , y ω solucion posible de D. Las condiciones de
holgura complementaria:
ui = ωi(bi − atix) = 0 ∀i = 1, . . . , m
vj = (ωtaj − 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:
u =∑m
i=1 ui ≥ 0 u = 0 sii ui = ωi(bi − atix) = 0, ∀i = 1, . . . , m
v =∑j
j=1 vj ≥ 0 v = 0 sii vj = (ωtaj − cj)xj = 0, ∀j = 1, . . . , n
u+v =
m∑i=1
ωi(bi−atix)+
n∑j=1
(ωtaj−cj)xj = ωtb−ωtAx+ωtAx−ctx = ωtb−ctx
Luego,
u + v = 0 ↔ ctx = ωtb
Es decir, si y solo si:
x es solucion optima del primal
ω es solucion optima del dual
13
Ejemplo, continuacion . . .
Las condiciones de holgura complementaria para el par primal-dualdel 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
ω3x4 = 0
14
4.5 Interpretacion Economica de la Dualidad
(P ) Max ctx (D) Min btω
s.a: atix ≤ bi ∀i s.a: ωtaj ≥ cj ∀j
xj ≥ 0 ∀j ωi ≥ 0 ∀i
x∗t= (B−1b, 0n−m)t, ω∗t = ct
BB−1
z =ctBB−1b−
∑j∈N
(zj − cj)xj = btω∗ −∑j∈N
(zj − cj)xj
∂z
∂bi= ω∗i
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 ctx
s.a: atix ≤ bi ∀i = 1, . . . , m recursos
xj ≥ 0 ∀j = 1, . . . , n productos
Si atix∗ < bi −→ ω∗i = 0
Si ω∗i > 0 −→ atix∗ = bi
ω∗i (bi − at
ix∗) = 0
Variables Duales como Precios Sombra
ω∗i ≡ beneficio que conseguirıamos si dispusiesemos de una unidadmas de recurso i
ω∗i ≡ precio maximo que estaremos dispuestos a pagar por conseguiruna unidad extra de recurso i
16
Utilidad de los Precios Sombra
Valorar la estabilidad de la solucion optima alcanzada. La baseoptima no cambiara mientras los precios no lleguen a un lımite.
Contemplar cambios en polıticas de actuacion.
Valorar la conveniencia de introducir o no en el mercado nuevosproductos. ¿ωtaj − cj?
Justificar cambios de precios en empresas con precios regulados.Precios competitivos.
17
4.7 Algoritmo Dual del Simplex
Primal
Min ctx
s.a: Ax = b
x ≥ 0n
−→ Dual
Max btω
s.a: Atω ≤ c
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)
x =
B−1b
0n−m
es una SPB del Problema Primal si B−1b ≥ 0
ω = cBB−1 es una Solucion Dual Posible si
ωtA ≤ c sii
cBB−1B ≤ cB
cBB−1N ≤ cN
sii zj − cj ≤ 0 ∀j ∈ N
18
Algoritmo Dual del Simplex (Lemke, 1954)
Paso 0.- Considerar una tabla del Simplex cuya base B asociada seadual posible i.e., zj − cj ≤ 0, ∀j. Ir al Paso 1.
xB xN
z 0 = ctBB−1B − ct
B zj − cj ≡ ctBB−1N − ct
N ctBB−1b
xB Im Y = B−1N b = B−1b
Paso 1.- Si b ≥ 0m, Stop, se han alcanzado las soluciones optimasdel primal y del dual. En otro caso, elegir la fila r, tal que,br = min{bi} < 0, e ir al Paso 2.
19
Paso 2.- Si yrj ≥ 0, ∀j ∈ N , Stop, el dual es no acotado y elprimal es imposible. En otro caso, elegir la columna k, tal que,
zk − ck
yrk= Min
{zj − cj
yrj| yrj < 0
}
e ir al Paso 3.
Paso 3.- Pivotar sobre yrk (la variable xBrdeja de ser basica y la
variable xk se hace basica). Volver al Paso 1.
20
Ejemplo, continuacion . . . : Consideremos el problema:
Max z = − 2x1 − 3x2 − 9x3
s.a.: − x1 − 3x3 ≤ −3
x2 + 2x3 ≥ 5
x1 + x2 + x4 = 4
x1, x2, x3, x4 ≥ 0
que tras anadir variables de holgura resulta:
- Min z = 2x1 + 3x2 + 9x3
s.a.: − x1 − 3x3 +x5 = −3
− x2 − 2x3 +x6 = −5
x1 + x2 +x4 = 4
x1, x2, x3, x4, x5, x6 ≥ 0
21
x1 ↓ x2 x3 x4 x5 x6 rhs
z -2 -3 -9 0 0 0 0
x5 -1 0 -3 0 1 0 -3
x6 0 -1 -2 0 0 1 -5
x4 1 1 0 1 0 0 4
→ mın{−3−1
, −9−2} = 3
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
x2 0 1 2 0 0 -1 5
x4 1 0 -2 1 0 1 -1
→ mın{−2−1 , −3
−3} = 1
x1 x2 x3 x4 x5 x6 rhs
z -1 0 0 0 -1 -3 18
x313 0 1 0 −1
3 0 1
x2−23 1 0 0 2
3 -1 3
x453 0 0 1 −2
3 1 1
x∗ =
0
3
1
1
z∗ = −18
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
(−3ω1 + 2ω2 + 9)x3 = 0
ω3x4 = 0
x∗2 = 3 > 0 → ω∗2 + ω∗3 = −3
x∗3 = 1 > 0 → −3ω∗1 + 2ω∗2 = −9
x∗4 = 1 > 0 → ω∗3 = 0
→ ω∗1 = 1, ω∗2 = −3, ω∗3 = 0
24