You are on page 1of 41

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 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 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

los ordenadores todava no se haban desarrollado y el potencial del metodo


Simplex estaba aun por descubrir. El azar quiso que Von Neumann acabase
justo de escribir un texto sobre teora de juegos, y fueron los resultados de
dicha teora 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,
unvocamente, 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 teora de la dualidad. De hecho, puede
decirse que la clave de esta teora 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:

t
Min z = c x
P rimal (P ) 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, ! !
xB B 1 b
x= = ,
xN 0nm

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: Teora de dualidad. Algoritmo Dual del Simplex 3

todos no positivos,

zj cj = ctB B 1 aj cj 0, j {1, 2, . . . , n}.

Es decir, la optimalidad equivale a encontrar una combinacion lineal de


las filas de A cuyo resultado, ctB B 1 A, sea un vector que acote inferiormente
al vector de costes de la funcion objetivo. Si pensamos en los multiplicado-
res de las filas, ctB B 1 , como en variables cuyo valor desconocemos, podra
decirse que la resolucion del problema de Programacion Lineal consiste en
la busqueda de los valores adecuados para que, t A 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 = ctB B 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:

t
Max b
Dual (D) 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 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

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 IR+
m

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 .

cuyo dual es, aplicando la definicion:

Max ct y
s.a:

A b

A y b
In 0n
n
y IR ,

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: Teora 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: Teora 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 21 42
s.a.: 11 + 52 8
61 + 72 3
11 22 = 2
1 0
2 no restringida

4.3. Relaciones Primal-Dual


Conviene resaltar que, evidentemente, tanto la simetra 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
explcitamente establezcamos otras condiciones, supondremos que estamos
trabajando con el par:

(P ) Min ct x (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 smplex optima del otro problema. Este
resultado se basa en la siguiente propiedad:
Tema 4: Teora de dualidad. Algoritmo Dual del Simplex 7

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

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 ct x.

En efecto, sea x una solucion posible de P , entonces, Ax = b y x 0n .


Veamos que ct x 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 t Ax = t b
bt ct x.
At c, x 0n t Ax ct x

Como consecuencia podemos afirmar, que para cualquier pareja primal-


dual:
Tema 4: Teora 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 ct x = 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: 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,

ct x bt , solucion del dual,

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

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 z P = x1 x2 (D) Max z D = 1 + 2


s.a: x1 x2 1 s.a: 1 2 1
x1 + x2 1 1 + 2 1
x1 , x 2 0 1 , 2 0
Tema 4: Teora 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 ct x (D) Min bt
s.a: Ax b s.a: At c
x0 0,
x solucion posible de P , y solucion posible de D. Las condiciones de holgura
complementaria:1
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 .

Observese que ui 0, i y vj 0, j. Por lo tanto:


P
u= m ui 0
Pji=1 ,
v = j=1 vj 0
1
En donde ai denota la fila i-esima de la matriz A , y aj la columna j-esima.
Tema 4: Teora de dualidad. Algoritmo Dual del Simplex 11

de donde, u = 0 si y solo si i (bi ati x) = 0, i = 1, . . . , m, y v = 0 si y solo


si vj = ( t aj cj )xj = 0, j = 1, . . . , n. Ahora bien,
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

de donde, u + v = 0 si y solo si ct x = t b, 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 economa. Entenderemos mejor su
significado despues de introducir la interpretacion economica de la variables
duales. Consideremos la siguiente pareja primal-dual:

(P ) Max ct x (D) Min bt


s.a: ati x bi i = 1, . . . , m s.a: t aj cj j = 1, . . . , n
xj 0 j = 1, . . . , m i 0 i = 1, . . . , n
Tema 4: Teora de dualidad. Algoritmo Dual del Simplex

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

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
= i ,
bi
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 conseguiramos si
dispusiesemos de una unidad mas de recurso i. Evidentemente, si i es el
beneficio que conseguiramos si dispusiesemos de una unidad mas de recurso
i, este sera, precisamente, el precio maximo (extra, si el coste del recurso
esta implcito 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 ati x < 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: Teora 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 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:

valorar la estabilidad de la solucion optima alcanzada, ayudando en el


analisis de sensibilidad postoptimo,
contemplar cambios en polticas 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-
trolferas, 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 unvo-
camente determinados por el valor de las variables duales en el optimo, ya
que estas no son unicas.
Tema 4: Teora 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 experimentara 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 sera 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, (ai t x, 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 + i 4bi
Si tenemos en cuenta que,
aumentar el valor de bi en una restriccion de no puede empeorar
nuestra situacion actual, pero s podra 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 podra 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: Teora de dualidad. Algoritmo Dual del Simplex 15

4.6. Determinacion de la Solucion Optima a


partir de la Tabla Optima del Problema
Primal
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) contena 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
correspondan a la matriz identidad.
El valor optimo de las variables duales no sera otro que cB t B 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 = cB t B 1 aj cj = t aj 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 = cB t B 1 aj cj = t aj 0 = i . La
variable dual de la restriccion es igual al coste reducido
Tema 4: Teora 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 = cB t B 1 aj cj = t aj 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 1 b 0), se trata de alcanzar una solucion posible del dual
(zj cj = ctB B 1 aj cj = t aj cj 0, j N ).
En cada iteracion, el algoritmo se mueve de una solucion posible basica
del primal, (B 1 b, 0nm )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 = ctB B 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., ct x = 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: Teora 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 = ctB B 1 N cN ctB B 1 b
xB Im Y = B 1 N b = B 1 b

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:

zk ck zj cj
k : = Min | yrj < 0
yrk yrj
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: Teora de Dualidad.
Algoritmo Dual del Simplex

(P ) Min ct x (D) Max bt


s.a: Ax = b s.a: At c
x 0n

Orgenes: Conversaciones de John Von Neumann con George Dantzig


(Octubre de 1947). Teora 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 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

xt = (xB , xN )t = (B 1 b, 0nm )t , A = (B, N ), y B una submatriz regular m m

Condicion de Optimalidad en la Tabla del Simplex

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

El problema dual puede expresarse en forma estandar, utilizando el


siguiente cambio de variable:

= 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

Que equivale al problema primal:

(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

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= 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

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 ct x.

Dadas x una solucion posible del primal, y cualquier solucion


posible del 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.

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


ct x = 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 optima


finita, entonces, el otro tambien la tiene, y los valores optimos de las
respectivas funciones objetivo coinciden.

Sea x una solucion optima de P obtenida con el metodo Simplex, y


sea B la base en la tabla asociada a x , x t = (B 1 b, 0nm )t .
Entonces, t = ctB B 1 es solucion posible del dual, siendo:

ct x = ctB (B 1 b) = t b

Por el teorema de dualidad debil,

ct x 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 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.

(P ) Min z P = x1 x2 (D) Max z D = 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 ct x (D) Min bt


s.a: Ax b s.a: At c
x0 0,
x solucion posible de P , y solucion posible de D. Las 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:

x es solucion optima del primal


es solucion optima del dual

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

(P ) Max ct x (D) Min bt


s.a: ati x bi i s.a: t aj cj j
xj 0 j i 0 i

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

Variables Duales como Precios Sombra


i beneficio que conseguiramos si dispusiesemos de una unidad
mas de recurso i
i precio maximo que estaremos dispuestos a pagar por conseguir
una unidad extra de recurso i

16
Utilidad de los Precios Sombra

Valorar la estabilidad de la solucion optima alcanzada. La base


optima no cambiara mientras los precios no lleguen a un lmite.

Contemplar cambios en polticas de actuacion.

Valorar la conveniencia de introducir o no en el mercado nuevos


productos. t aj cj ?

Justificar cambios de precios en empresas con precios regulados.


Precios competitivos.

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

= cB B 1 es una Solucion Dual Posible si



cB B 1 B cB
t A c sii sii zj cj 0 j N
cB B 1 N cN

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

Paso 1.- Si b 0m , Stop, se han alcanzado las soluciones optimas


del 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 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:

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
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

You might also like