Está en la página 1de 41

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


ma del Problema Primal

4.7 El Algoritmo Dual del Simplex

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

los ordenadores todavı́a no se habı́an desarrollado y el potencial del método


Simplex estaba aún 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 relación
entre los juegos de suma nula entre dos jugadores y la programación lineal.
El objetivo de este apartado es introducir la construcción del problema
dual asociado a un problema de programación lineal general, y establecer,
a través de los principales resultados de dualidad, las relaciones entre am-
bos problemas. Veremos también cómo, en ausencia de degeneración, las
denominadas condiciones de holgura complementaria nos permiten obtener,
unı́vocamente, la solución óptima de cualquiera de los problemas de un par
primal-dual a partir de la solución óptima del otro. Terminaremos introdu-
ciendo la naturaleza económica de la teorı́a de la dualidad. De hecho, puede
decirse que la clave de esta teorı́a está en interpretar los problemas primal y
dual como modelizaciones, desde dos puntos de vista opuestos, de una misma
situación a la que se enfrentan dos personas que compiten entre sı́. En este
modelo de competitividad, el beneficio máximo que puede obtener una de
ellas se alcanza en el punto en el que se equilibra la pérdida máxima que
está dispuesta a admitir su oponente.

4.2. Definición del Problema Dual


Supongamos que el siguiente problema de programación 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 0n−m

la solución óptima alcanzada. Con A = (B, N ), y B una submatriz regular


m × m. Sabemos que en la tabla óptima del Simplex los costes reducidos son
Tema 4: Teorı́a 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 combinación lineal de


las filas de A cuyo resultado, ctB B −1 A, sea un vector que acote inferiormente
al vector de costes de la función objetivo. Si pensamos en los multiplicado-
res de las filas, ctB B −1 , como en variables cuyo valor desconocemos, podrı́a
decirse que la resolución del problema de Programación Lineal consiste en
la búsqueda de los valores adecuados para que, ω t A ≤ c. Hemos construi-
do ası́ un nuevo conjunto de restricciones de un problema de programación
lineal, para el que la solución asociada a la submatriz, B, definida por las
columnas asociadas a las variables básicas óptimas de P (en adelante base
óptima), ω t = ctB B −1 , no únicamente es posible, sino que además, es óptima
para la función objetivo Max bt ω. Estamos en condiciones de definir el proble-
ma dual del problema primal en forma estándar como el siguiente problema
de programación lineal:

 t
 Max b ω
Dual (D) s.a: At ω ≤ c


ω no restringida.

Ejemplo 4.2.1
Dado el problema de programación 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 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

El dual del dual es el primal

En efecto, sea P el problema primal en forma estándar, y D el correspon-


diente dual. Podemos expresar el problema D en forma estándar 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 definición:

− 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 estándar, la definición
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 más apropiado llevar a cabo una construcción directa del problema
dual. Para ello hay que tener en cuenta lo siguiente:

1. Por cada restricción 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 restricción 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 término de la derecha de la restricción es igual al coeficiente en la
función objetivo del primal de la misma variable.

3. Los coeficientes de la función objetivo del problema dual son iguales al


RHS del problema primal.

Las reglas para determinar el sentido de la optimización, el tipo de restricción


y el signo de las variables en el problema dual se dan en la siguiente tabla:

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

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 programación 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 sección 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 ct x (D) Max bt ω


s.a: Ax = b s.a: At ω ≤ c.
x ≥ 0n ,

Los problemas primales y duales están tan estrechamente relacionados,


que la solución óptima de un problema se puede obtener directamente (sin
cálculos adicionales) de la tabla del sı́mplex óptima del otro problema. Este
resultado se basa en la siguiente propiedad:
Tema 4: Teorı́a de dualidad. Algoritmo Dual del Simplex 7

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

Este resultado es ventajoso desde el punto de vista de los cálculos ya que


podemos resolver el problema que resulte más sencillo de los dos y aplicar
después esta propiedad para obtener la solución óptima 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 más sencillo ya que trabajaremos con
inversas de matrices 100 x 100 en lugar de 500 x 500.

A continuación presentamos una relación entre el primal y el dual, que


junto con la propiedad anterior, se puede emplear para proporcionar intere-
santes interpretaciones económicas del problema de programación lineal.

Teorema de Dualidad Débil

Dados un par primal-dual, si x es una solución posible de P y ω es una


solución posible de D, entonces, bt ω ≤ ct x.

En efecto, sea x̄ una solución posible de P , entonces, Ax̄ = b y x̄ ≥ 0n .


Veamos que ct x̄ es una cota superior del valor de la función objetivo en
cualquier solución posible del problema dual.

Sea ω una solución 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: Teorı́a de dualidad. Algoritmo Dual del Simplex

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.

El valor de la función objetivo en una solución posible del


problema de maximización proporciona una cota inferior del
valor de la función objetivo del problema de minimización.

Si uno de los dos problemas de un par primal-dual es no aco-


tado, entonces el otro problema es imposible

Si x es solución posible del primal, w es solución posible del


dual, y ct x = bt ω, entonces, x y ω son soluciones óptimas 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 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

Si uno de los problemas de un par primal-dual tiene solución óptima finita,


entonces, el otro también la tiene, y los valores óptimos de las respectivas
funciones objetivo coinciden.

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,

ct x∗ ≥ bt ω, ∀ω solución del dual,

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

Dado un par primal-dual, una y sólo una de las afirmaciones siguientes es


cierta:

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.

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: Teorı́a de dualidad. Algoritmo Dual del Simplex

Primal-Dual Óptimo Finito No Acotado Imposible


Óptimo 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 óptimas finitas, la solución óptima 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 programación lineal para
los que el correspondiente dual es bastante más 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
x≥0 ω ≥ 0,
x solución posible de P , y ω solución 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 ω.

Obsérvese 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-ésima de la matriz A , y aj la columna j-ésima.
Tema 4: Teorı́a 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 Ax−ct x = ω t b−ct 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 óptimas de los problemas primal y dual. 2
Este resultado es válido para cualquier pareja de problemas primales-
duales. Nuestra elección concreta del par primal-dual para el cuál hemos
desarrollado las condiciones de holgura complementaria obedece, por un lado,
a cuestiones de claridad en la exposición, y por otro, a que la interpretación
económica de las mismas, que hacemos en el punto siguiente, es mucho más
rica que para otras parejas primales-duales.
Las condiciones de holgura complementaria relacionan, las variables de
holgura de cada restricción 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 óptimas, si y solo sı́, toda variable asociada a una restric-
ción con variable de holgura distinta de cero, es nula.

4.5. Interpretación Económica de la Duali-


dad
Las condiciones de holgura complementaria captan perfectamente la esen-
cia de la dualidad ya que, como veremos a continuación, formalizan matemá-
ticamente algunos principios básicos de economı́a. Entenderemos mejor su
significado después de introducir la interpretación económica 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: Teorı́a de dualidad. Algoritmo Dual del Simplex

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

en ausencia de degeneración primal cabe esperar que pequeños cambios en


los valores de un bi no provoquen un cambio de base óptima, por lo tanto,
las variables no básicas seguirán siendo las mismas (e iguales a cero). En esta
situación, 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-ésima como la razón de cam-
bio de la función objetivo cuando el término independiente de la i-ésima
restricción primal asociada es sometido a pequeños cambios .
Pensemos por ejemplo en una situación real en la que P modeliza un
problema de planificación de la producción. En este problema debe decidir-
se cuántas 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 producción de forma que los beneficios obtenidos sean máximos.
En estas condiciones ωi∗ representa el beneficio extra que conseguirı́amos si
dispusiésemos de una unidad más de recurso i. Evidentemente, si ωi∗ es el
beneficio que conseguirı́amos si dispusiésemos de una unidad más de recurso
i, éste será, precisamente, el precio máximo (“extra”, si el coste del recurso
está implı́cito en la función objetivo) que estaremos dispuestos a pagar por
conseguir una unidad extra del recurso, de ahı́ que las variables duales se
denominen también precios sombra.
Ahora resulta más sencillo interpretar las condiciones de holgura comple-
mentaria: Si ati x∗ < bi , entonces, el recurso i-ésimo no se agota con el plan de
producción óptimo, lógicamente, disponer de una unidad más de recurso no
Tema 4: Teorı́a de dualidad. Algoritmo Dual del Simplex 13

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:

valorar la estabilidad de la solución óptima alcanzada, ayudando en el


análisis de sensibilidad postóptimo,
contemplar cambios en polı́ticas de actuación,
valorar la conveniencia de introducir o no en el mercado nuevos pro-
ductos,
justificar cambios de precios en empresas como las eléctricas, o las pe-
trolı́feras, en las que los precios están sujetos a restricciones legales.
No obstante, conviene dejar constancia de que en presencia de degenera-
ción la interpretación de las variables duales requiere consideraciones adicio-
nales. La degeneración puede implicar que haya más de una base asociada a
una solución óptima, lo que significa que los precios sombra no están unı́vo-
camente determinados por el valor de las variables duales en el óptimo, ya
que éstas no son únicas.
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 función objetivo si se incrementase en una
unidad el término i-ésimo, o como una cota inferior, si el término se disminu-
yese. Lo recomendable serı́a realizar el análisis de sensibilidad de la solución
óptima.
Para terminar daremos una interpretación intuitiva de cuál debe ser el
signo de las variables duales.
el signo de las variables duales
Recordemos que el valor de la variable dual óptima, ωi , asociada a una res-
tricción, (ai t x, bi ) indica la cantidad en la que cambia la función objetivo
cuando se modifica el término derecho de la restricción, siempre y cuando
esta modificación no implique un cambio de base óptima (variables básicas).
Luego:
Nuevo valor óptimo de z = Viejo valor óptimo de z + ωi 4bi
Si tenemos en cuenta que,
aumentar el valor de bi en una restricción de ≤ no puede empeorar
nuestra situación 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 restricción de ≥ no puede mejorar


nuestra situación 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 Maximización
La variable dual de una restricción de ≤, es siempre positiva.
La variable dual de una restricción de ≥, es siempre negativa.
Problema de Minimización
La variable dual de una restricción de ≤, es siempre negativa.
La variable dual de una restricción 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. Determinación de la Solución Óptima a


partir de la Tabla Óptima del Problema
Primal
Para identificar el valor de las variables duales en la tabla óptima del
Simplex podemos proceder de cualquiera de las dos formas siguientes:

Suponiendo que hemos resuelto un problema de programación lineal


cuya matriz de restricciones (Ax = b) contenı́a la matriz identidad,
aunque no necesariamente ordenada, podemos averiguar directamente
la solución óptima del problema dual identificando en la tabla óptima
del problema primal la inversa de la matriz formada por las columnas
originales de las variables básicas, es decir B −1 . Concretamente, B −1
estará formada por las columnas de la tabla óptima que originalmente
correspondı́an a la matriz identidad.
El valor óptimo de las variables duales no será otro que cB t B −1 .

Los costes reducidos en la tabla óptima de las variables de holgura


y/o artificiales proporcionan el valor de la variable dual asociada a
la restricción en la que se ha añadido dicha variable de holgura y/o
artificial.
Solamente hay que tener en cuenta los siguientes detalles:

1. Si la restricción “i-ésima” era de ”≤”, la variable de holgura xj


se añade y el vector de coeficientes de dicha variable es un vector
unitario con todo ceros excepto un 1 en la posición i-ésima. Enton-
ces su coste reducido, zj − cj = cB t B −1 aj − cj = ω t aj − 0 = ωi . La
variable dual de la restricción es igual al coste reducido
de la variable de holgura asociada a dicha restricción.
2. Si la restricción “i-ésima” 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 posición i-ésima. Entonces
su coste reducido, zj − cj = cB t B −1 aj − cj = ω t aj − 0 = −ωi . La
variable dual de la restricción 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 restricción.
3. Si la restricción “i-ésima” era de “=”, la variable artificial xj se
añade y el vector de coeficientes de dicha variable es un vector uni-
tario con todo ceros excepto un 1 en la posición i-ésima. Entonces
su coste reducido, zj − cj = cB t B −1 aj − cj = ω t aj − 0 = ωi . La
variable dual de la restricción es igual al coste reducido
de la variable artificial asociada a dicha restricción.

4.7. El Algoritmo Dual del Simplex


Las propiedades entre el problema de programación 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 sección.
Los resultados de dualidad nos permiten interpretar el algoritmo del Sim-
plex como un esquema iterativo en el que, partiendo de una solución posible
del primal (b̄ = B −1 b ≥ 0), se trata de alcanzar una solución posible del dual
(zj − cj = ctB B −1 aj − cj = ω t aj − cj ≤ 0, ∀j ∈ N ).
En cada iteración, el algoritmo se mueve de una solución posible básica
del primal, (B −1 b, 0n−m )t , a otra i.e., de un punto extremo a otro. Cada una
de las soluciones posibles básicas del primal tiene asociado, a través de las
condiciones de holgura complementaria, un vector ω t = ctB B −1 de variables
duales, que, salvo que estemos en el óptimo, no será solución posible del dual,
aunque sı́ que cumplirá la condición necesaria de optimalidad establecida en
el Teorema Fuerte de Dualidad i.e., ct x = bt ω. Una vez alcanzado el óptimo
disponemos de una solución posible del dual y de otra del primal.
En ocasiones resulta sencillo encontrar una solución posible del dual
(zj − cj ≤ 0 ) pero no del primal (b̄ ≥ 0) o, como ocurre en el análisis
de sensibilidad, después de haber alcanzado la optimalidad, es necesario rea-
lizar cambios en las condiciones del problema (términos de la derecha, matriz
de restricciones, añadir 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 solución posible básica 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 ó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 1.- Si la solución es primal posible i.e., b̄ ≥ 0m , Stop, se han alcanzado


las soluciones óptimas del primal y del dual. En otro caso, elegir una
fila r con b̄r < 0, por ejemplo, b̄r = min{b̄i }, 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 básica y xk se hace básica).
Volver al Paso 1.
Tema 4: Teorı́a de Dualidad.
Algoritmo Dual del Simplex

(P ) Min ct x (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 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

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

Condición de Optimalidad en la Tabla del Simplex

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

El problema dual puede expresarse en forma estándar, 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
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

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

Teorema de Dualidad Débil

Dados un par primal-dual, si x es una solución posible de P y ω es


una solución posible de D, entonces, bt ω ≤ ct x.

Dadas x̄ una solución posible del primal, y ω cualquier solución


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

El valor de la función objetivo en una solución posible del proble-


ma de maximización proporciona una cota inferior del valor de la
función objetivo del problema de minimización.

Si uno de los dos problemas de un par primal-dual es no acotado,


entonces el otro problema es imposible.

Si x es solución posible del primal, w es solución posible del dual, y


ct x = bt ω, entonces, x y ω son soluciones óptimas de sus problemas
respectivos.

9
Teorema de Dualidad Fuerte

Si uno de los problemas de un par primal-dual tiene solución óptima


finita, entonces, el otro también la tiene, y los valores óptimos de las
respectivas funciones objetivo coinciden.

Sea x∗ una solución óptima de P obtenida con el método Simplex, y


sea B la base en la tabla asociada a x∗ , x∗ t = (B −1 b, 0n−m )t .
Entonces, ω ∗t = ctB B −1 es solución posible del dual, siendo:

ct x∗ = ctB (B −1 b) = ω ∗ t b

Por el teorema de dualidad débil,

ct x∗ ≥ bt ω, ∀ ω solución de D −→ ω ∗ es solución óptima de D

10
Teorema Fundamental de Dualidad

Dado un par primal-dual, una y sólo una de las afirmaciones


siguientes es cierta:
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.

(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
x≥0 ω ≥ 0,
x solución posible de P , y ω solución 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 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:

x es solución óptima del primal


ω es solución óptima del dual

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

(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, 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 

Variables Duales como Precios Sombra


ωi∗ ≡ beneficio que conseguirı́amos si dispusiésemos de una unidad
más de recurso i
ωi∗ ≡ precio máximo que estaremos dispuestos a pagar por conseguir
una unidad extra de recurso i

16
Utilidad de los Precios Sombra

Valorar la estabilidad de la solución óptima alcanzada. La base


óptima no cambiará mientras los precios no lleguen a un lı́mite.

Contemplar cambios en polı́ticas de actuación.

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
0n−m

ω̄ = cB B −1 es una Solución 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 óptimas


del primal y del dual. En otro caso, elegir la fila r, tal que,
b̄r = min{b̄i } < 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 básica y la
variable xk se hace básica). Volver al Paso 1.

20
Ejemplo, continuación . . . : 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 añadir 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 → 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

x∗2 = 3 > 0 → ω2∗ + ω3∗ = −3


x∗3 = 1 > 0 → −3ω1∗ + 2ω2∗ = −9 → ω1∗ = 1, ω2∗ = −3, ω3∗ = 0
x∗4 = 1 > 0 → ω3∗ = 0

24

También podría gustarte