Document

Anuncio
Tema 4: Teorı́a de dualidad. Algoritmo Dual del Simplex
1
4.1 Introducción
4.2 Definición del Problema Dual
4.3 Relaciones Primal-Dual
4.4 Condiciones de Holgura Complementaria
4.5 Interpretación Económica de la Dualidad
4.6 Determinación de la Solución Óptima a partir de la Tabla Óptima del Problema Primal
4.7 El Algoritmo Dual del Simplex
4.1.
Introducción
Uno de los descubrimientos más importantes durante el desarrollo inicial 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 extremadamente ú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 interpretació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 restricciones.
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 ambos 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 introduciendo 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 multiplicadores 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 construido 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 problema 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
s.a.:
6x1 + 8x2
3x1 + 1x2 = 4
5x1 + 2x2 = 7
x1 ,
x2 ≥ 0
su dual es:
Max
s.a.:
4ω1 + 7ω2
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ácilmente 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 correspondiente dual. Podemos expresar el problema D en forma estándar aplicando
m
el siguiente cambio de variables: ω = ω 1 − ω 2 , ω 1 , ω 2 ∈ IR+
− Min
s.a:
−bt (ω 1 − ω 2 )
At (ω 1 − ω 2 ) + ω h = c
ω 1 ≥ 0m , ω 2 ≥ 0m , ω h ≥ 0n .
Es decir, D es ahora:

− Min
s.a:

ω1


(−bt , bt , 0)  ω 2 
ωh


ω1


(At , −At , In )  ω 2  = c
ωh
ω 1 ≥ 0m , ω 2 ≥ 0m , ω h ≥ 0n .
cuyo dual es, aplicando la definición:
− Max
s.a:
ct y




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 sencillas 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 negatividad) 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
|
Minimización
|
≥0
⇐⇒
Variables
≤0
⇐⇒
No restringida ⇐⇒
≥
⇐⇒
Restricciones
≤
⇐⇒
=
⇐⇒
términos independientes
|
coeficientes f. obj.
|
matriz de restricciones
|
Problema de
Maximización
≤
≥
Restricciones
=
≥0
≤0
Variables
No restringida
coeficientes f. obj.
términos independientes
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
s.a.:
8x1 + 3x2 − 2x3
1x1 − 6x2 + 1x3
5x1 + 7x2 − 2x3
x1
x2
x3
≥
=
≤
≥
2
−4
0
0
no restringido
su dual es:
Min
s.a.:
4.3.
2ω1
1ω1
− 6ω1
1ω1
ω1
−
+
+
−
4ω2
5ω2 ≤ 8
7ω2 ≥ 3
2ω2 = −2
≤ 0
ω2
no restringida
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
s.a:
ct x
Ax = b
x ≥ 0n ,
(D) Max
s.a:
bt ω
At ω ≤ c.
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 interesantes 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
At ω ≤ c, x ≥ 0n −→ ω t Ax̄ ≤ ct x
)
−→ bt ω ≤ ct x̄.
2
Como consecuencia podemos afirmar, que para cualquier pareja primaldual:
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 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.
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 problema 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 maximizació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 denominado:
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
s.a:
x1 − x2 ≥ 1
−x1 + x2 ≥ 1
x1 , x 2 ≥ 0
(D) Max
s.a:
z D = ω1 + ω2
ω1 − ω2 ≤ −1
−ω1 + ω2 ≤ −1
ω 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 principio 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 Complementaria
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
s.a: Ax ≤ b
x≥0
(D) Min bt ω
s.a: At ω ≥ c
ω ≥ 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
ui ≥ 0
u= m
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,
u+v =
m
X
ωi (bi −ati x)+
i=1
n
X
(ω t aj −cj )xj = ω t b−ω t Ax+ω t Ax−ct x = ω t b−ct x
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 primalesduales. 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, respectivamente óptimas, si y solo sı́, toda variable asociada a una restricción con variable de holgura distinta de cero, es nula.
4.5.
Interpretación Económica de la Dualidad
Las condiciones de holgura complementaria captan perfectamente la esencia 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
s.a:
ct x
(D) Min
ati x ≤ bi i = 1, . . . , m
xj ≥ 0
j = 1, . . . , m
s.a:
bt ω
ω t aj ≥ cj
j = 1, . . . , n
ωi ≥ 0
i = 1, . . . , n
Tema 4: Teorı́a de dualidad. Algoritmo Dual del Simplex
Supongamos que,
Ã
x∗ =
B −1 b
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 cambio 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 decidirse 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 complementaria: 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 complementaria ω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 unidad 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 necesariamente ω ∗ 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 productos,
justificar cambios de precios en empresas como las eléctricas, o las petrolı́feras, en las que los precios están sujetos a restricciones legales.
No obstante, conviene dejar constancia de que en presencia de degeneración la interpretación de las variables duales requiere consideraciones adicionales. 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ı́vocamente 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 trabajando, 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 disminuyese. 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 restricció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 cualquiera.
Tema 4: Teorı́a de dualidad. Algoritmo Dual del Simplex
4.6.
15
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. 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 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 unitario 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 unitario 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 Simplex 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 realizar cambios en las condiciones del problema (términos de la derecha, matriz
de restricciones, añadir restricciones) que nos hacen perder la posibilidad primal, pero no la dual.
El algoritmo Dual del Simplex, desarrollado por Lemke en 1954, nos proporciona una forma eficiente para superar estos “inconvenientes” sin necesidad 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 para 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.
z
xB
xB
0
Im
xN
zj − cj = ctB B −1 N − cN
Y = B −1 N
ctB B −1 b
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:
½
¾
zj − cj
zk − ck
= Min
| yrj < 0
k :
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
s.a:
Ax = b
(D) Max
s.a:
bt ω
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



 Min
Primal (P )
s.a:



ct x
Ax = b
−→
x ≥ 0n

 Max
Dual (D)
 s.a:
bt ω
At ω ≤ c
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:
m
ω = ω 1 − ω 2 , ω 1 , ω 2 ∈ IR+

- Min
s.a:
- Min
−bt (ω 1 − ω 2 )
At (ω 1 − ω 2 ) + ω h = c
ω i ≥ 0m ,
ωh
∀i = 1, 2
s.a:
≥ 0n



2 
(−bt , bt , 0)
ω


ωh

ω1

t
t
2
(A , −A , In )
 ω
ωh
ω i ≥ 0m ,
4
ω1


= c

∀i = 1, 2,
ω h ≥ 0n
Cuyo dual es,
−
Max
s.a:
ct y

A


−b





 −A  y ≤  b 




In
0n
y ∈ IRn
Que equivale al problema primal:
(P ) Min
s.a:
z = ct x
Ax = b
x ≥ 0n
Basta hacer el cambio de variable x = −y.
5
Problema de
|
Problema de
Minimización
|
Maximización
Variables
Restricciones
≥0
⇐⇒
≤
≤0
⇐⇒
≥
No restringida
⇐⇒
=
≥
⇐⇒
≥0
≤
⇐⇒
≤0
=
⇐⇒
No restringida
Restricciones
Variables
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
s.a.:
z=−
2x1
−
x1
−
3x2
x2
x1
+
x1 ,
−
9x3
−
3x3
≤
−3
+
2x3
≥
5
x4
=
4
x4
≥
0
x2
+
x2 ,
x3 ,
Su dual será:
Min
s.a.:
z=−
3ω1
−
ω1
+
5ω2
ω2
−
3ω1
+
+
4ω3
+
ω3
≥
−2
+
ω3
≥
−3
≥
−9
≥
0
2ω2
ω3
ω1 ≥ 0,
ω2 ≤ 0
7
ω3 no restringida
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
At ω ≤ c,
x̄ ≥ 0n −→ ω t Ax̄ ≤ ct x̄ 
8
−→ bt ω ≤ ct x̄
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 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
s.a:
z P = −x1 − x2
(D)
x1 − x2 ≥ 1
Max
s.a:
z D = ω1 + ω2
ω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
s.a:
Ax ≤ b
(D)
x≥0
Min
bt ω
s.a:
At ω ≥ c
ω ≥ 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:
u=
v=
u+v =
Pm
i=1 ui ≥ 0
u = 0 sii ui = ωi (bi − ati x) = 0,
∀i = 1, . . . , m
j=1 vj ≥ 0
v = 0 sii vj = (ω t aj − cj )xj = 0,
∀j = 1, . . . , n
Pj
m
X
ωi (bi −ati x)+
i=1
n
X
(ω t aj −cj )xj = ω t b−ω t Ax+ω t Ax−ct x = ω t b−ct x
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
s.a:
ati x ≤ bi
∀i
xj ≥ 0
∀j
(D)
t
x∗ = (B −1 b, 0n−m )t ,
z
=ctB B −1 b
−
X
Min
bt ω
s.a:
ω t aj ≥ cj
∀j
ωi ≥ 0
∀i
ω ∗t = ctB B −1
t
∗
(zj − cj )xj = b ω −
j∈N
X
(zj − cj )xj
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



 Min
Primal
s.a:



ct x
Ax = b
−→
x ≥ 0n

 Max
Dual
 s.a:
bt ω
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 −1 b
0n−m
 es una SPB del Problema Primal si B −1 b ≥ 0
ω̄ = cB B −1 es una Solución Dual Posible si


 cB B −1 B ≤ cB 
sii zj − cj ≤ 0 ∀j ∈ N
ω̄ t A ≤ c sii
 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.
z
xB
xB
xN
0 = ctB B −1 B − ctB
zj − cj ≡ ctB B −1 N − ctN
ctB B −1 b
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
−
x1
s.a.:
−
3x2
x2
x1
+
x1 ,
−
9x3
−
3x3
≤
−3
+
2x3
≥
5
x4
=
4
x4
≥
0
x2
+
x2 ,
x3 ,
que tras añadir variables de holgura resulta:
- Min
s.a.:
z=
2x1
−
x1
+
3x2
−
x2
x1
+
x2
x1 ,
x2 ,
x3 ,
+
9x3
−
3x3
−
2x3
+x5
+x6
+x4
x4 ,
x5 ,
21
x6 ≥
0
=
−3
=
−5
=
4
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
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
−3
,
→ mı́n{ −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
x1
x2
x3
x4
x5
x6
rhs
z
-1
0
0
0
-1
-3
18
x3
1
3
−2
3
5
3
0
1
0
0
1
1
0
0
-1
3
0
0
1
−1
3
2
3
−2
3
1
1
x2
x4
23
−3
→ mı́n{ −2
,
−1 −3 } = 1


0
 
 3 
 
x∗ =   z ∗ = −18
 1 
 
1
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 →
x∗4 = 1 > 0 → ω3∗ = 0
24
ω1∗ = 1,
ω2∗ = −3,
ω3∗ = 0
Descargar