Está en la página 1de 7

Pontificia Universidad Católica

Escuela de Ingeniería
Departamento de Ingeniería Industrial y de Sistemas

Clase 23 • Dualidad

ICS 1102 • Optimización


Profesor : Claudio Seebach
23 de octubre de 2006

Apuntes de Clases • Optimización • Claudio Seebach Programación Lineal • 124

Teorı́a de Dualidad

• Consideremos el problema:
P) max c!x
s.a Ax ≤ b
x ≥ 0
• Reescribiendolo como un problema de minimización para establecer las
condiciones de KKT:
P) min −c!x
s.a Ax ≤ b
x ≥ 0
• El Lagrangeano de este problema es L = −c!x + λ!(Ax − b)
• Las respectivas condiciones de KKT son:
∇xL = −c! + λ!A ≥ 0 diag(x∇!xL) = diag(x(−c! + λ!A)!) = 0
∇λL = Ax − b ≤ 0 diag(λ∇!λL) = diag(λ(Ax − b)!) = 0
x, λ ≥ 0

Apuntes de Clases • Optimización • Claudio Seebach Programación Lineal • 125


Teorı́a de Dualidad

• Para que un vector x sea óptimo debe existir también otro vector λ tal
que en conjunto satisfagan estas condiciones.
• Además debe suceder que los gradientes de las restricciones activas sean
l.i. para que haya regularidad.
• De las condiciones de KKT observamos que, ∀λ ≥ 0 tal que λ!A ≥ c!,
y ∀x ≥ 0 tal que Ax ≤ b.:
c!x ≤ λ!Ax ≤ λ!b
• En el óptimo, si existe, veremos que se cumple que: c!x = λ!b
• Es posible reescribir el problema original (PP o Problema Primal) como
el siguiente problema equivalente o Problema Dual:
PD) min λ!b
s.a λ!A ≥ c!
λ ≥ 0

Apuntes de Clases • Optimización • Claudio Seebach Programación Lineal • 126

Ejemplo de Dualidad

• En nuestro ejemplo de las planchas de aluminio:


PP) max 800x1 + 600x2
s.a 15x1 + 5x2 ≤ 600
7x1 + 14x2 ≤ 630
0, 3x1 + 0, 3x2 ≤ 15
xi ≥ 0 ∀i = 1, ..., 2

P D) min 600λ1 + 630λ2 + 15λ3


s.a 15λ1 + 7λ2 + 0, 3λ3 ≥ 800
5λ1 + 14λ2 + 0, 3λ3 ≥ 600
λj ≥ 0 ∀j = 1, ..., 3

Apuntes de Clases • Optimización • Claudio Seebach Programación Lineal • 127


Relaciones Primal-Dual

1. Propiedades de dualidad débil: Si x es una solución factible para


el problema primal, y λ es una solución factible para el problema dual,
entonces c!x ≤ λ!b.
2. Propiedad de dualidad fuerte: Si x∗ es una solución óptima para
el problema primal y λ∗es solución óptima para el problema dual, en-
tonces: c!x∗ = λ∗!b.
3. Propiedades de soluciones complementarias: En cada iteración,
el método Simplex identifica simultáneamente una solución factible en
un vértice, x para el P P y una solución complementaria λ para el P D,
donde c!x = λ!b. Si x no es óptimo para el P P, entonces λ no es
factible para el P D.

Apuntes de Clases • Optimización • Claudio Seebach Programación Lineal • 128

Relaciones Primal-Dual

4. Propiedad de soluciones complementarias óptimas: En la


última iteración del método Simplex se identifica simultáneamente una
solución óptima x∗ para el P P y una solución óptima complementaria
λ∗ para el P D, en donde c!x∗ = λ∗!b. En este caso los valores de λ∗
corresponden a los precios sombra del P P.
5. Propiedades de simetrı́a: Para cualquier P P y su P D, las rela-
ciones entre ellas deben ser simétricas debido a que el problema dual de
P D corresponde a P P .

Apuntes de Clases • Optimización • Claudio Seebach Programación Lineal • 129


Teorı́a de Dualidad

• Generalización para problemas con todo tipo de restricciones (igual-


dades, desigualdades, no-negatividad, o libres):
max c!x min λ!b
s.a a!i x ≥ bi i ∈ M1 s.a λi ≤ 0 i ∈ M1
a!i x ≤ bi i ∈ M2 λi ≥ 0 i ∈ M2
a!i x = bi i ∈ M3 λi libre i ∈ M3
xj ≥ 0 j ∈ N1 λ!Aj ≥ cj j ∈ N1
xj ≤ 0 j ∈ N2 λ!Aj ≤ cj j ∈ N2
xj libre j ∈ N3 λ!Aj = cj j ∈ N3
• a!i representa la fila i de la matriz A
• Aj representa la columna j de la matriz A.

Apuntes de Clases • Optimización • Claudio Seebach Programación Lineal • 130

Análisis Matricial del Problema Dual

• El vector de costos reducidos es: r! = c!D − c!B B−1D


• En un problema de maximización, en el óptimo se cumple que
r ≤ 0 ⇒ c!D ≤ c!B B−1D
• Definiendo λ! = c!B B−1, entonces;
λ!A = [λ!B .. λ!D]
= [c!B . c!B B−1D]
≥ [c!B .. c!D ] = c!
es decir, la restricción λ!A ≥ c! se satisface en el óptimo.
• Además: λ!b = c!B B−1b = c!B xB ,
• O sea: λ! = c!B B−1 es solución óptima al problema dual.

Apuntes de Clases • Optimización • Claudio Seebach Programación Lineal • 131


Análisis Matricial del Problema Dual

• Recordemos el problema:
P ) max 800x1 + 600x2
s.a. 15x1 + 5x2 + x3 = 600 (minutos disponibles)
7x1 + 14x2 + x4 = 630 (m2 de aluminio)
0, 3x1 + 0, 3x2 + x5 = 15 (lts de pintura)
x 1 , x 2 , x 3 , x 4 , x5 ≥ 0
• Observaciones acerca de las holguras:
a) Si una variable de holgura no está en la base tiene valor cero, y la
restricción asociada está activa.
b) El costo reducido asociado es rj = cj − c!B B−1Dj , pero como cj = 0
y Dj es un vector unitario, rj = −c!B B −1ej = −λj .
Es decir, el costo reducido de una variable de holgura que no está en
la base, es igual al multiplicador de Lagrange de la restricción con
signo contrario.

Apuntes de Clases • Optimización • Claudio Seebach Programación Lineal • 132

Interpretación Económica de la Dualidad

• En nuestro ejemplo de las planchas de aluminio:


$ $
PP) max 800[ ]x1 + 600[ ]x2
plancha plancha
min min
s.a 15[ ]x1 + 5[ ]x2 ≤ 600 [min]
plancha plancha
7x1 + 14x2 ≤ 630 [m2]
0, 3x1 + 0, 3x2 ≤ 15 [lts]
x1 ≥ 0 [planchas tipo 1]
x2 ≥ 0 [planchas tipo 2]

Apuntes de Clases • Optimización • Claudio Seebach Programación Lineal • 133


Interpretación Económica de la Dualidad

• Consideremos a un comprador de los recursos de la fábrica de planchas


• El comprador debe estimar los precios a pagar por cada recurso y mi-
nimizar el costo total de adquisición
• Las restricciones vienen dadas por el interés del dueño de vender: éste
venderá si y solo si el valor ofrecido es mayor a la utilidad que le genera
cada tipo de plancha de aluminio
P D) min 600λ1 + 630λ2 + 15λ3
$
s.a 15λ1 + 7λ2 + 0, 3λ3 ≥ 800
(plancha tipo 1)
$
5λ1 + 14λ2 + 0, 3λ3 ≥ 600
(plancha tipo 2)
$ $ $
λ1 ≥ 0 [ ] λ2 ≥ 0 [ 2 ] λ3 ≥ 0 [ ]
min m lts

Apuntes de Clases • Optimización • Claudio Seebach Programación Lineal • 134

Ejemplo de Dualidad

• Consideremos el siguiente modelo de PL:


max 5x1 + 6x2
s.a x1 + 2x2 = 5
−x1 + 5x2 ≥ 3
4x1 + 7x2 ≤ 8
x2 ≥ 0
• Escribamos el Problema Dual asociado

Apuntes de Clases • Optimización • Claudio Seebach Programación Lineal • 135


Ejemplo de Dualidad

• Para dejarlo en en forma estándar incorporando variables de holgura


y de exceso según corresponda, y haciendo el cambio de variable x1 =
x)1 − x))1 con x)1 ≥ 0 y x))1 ≥ 0. Ası́, el problema nos queda:
max 5x)1 − 5x))1 + 6x2
s.a x)1 − x))1 + 2x2 = 5
−x)1 + x))1 + 5x2 − x3 = 3
4x)1 − 4x))1 + 7x2 + x4 = 8
x)1, x))1 , x2, x3, x4 ≥ 0

Apuntes de Clases • Optimización • Claudio Seebach Programación Lineal • 136

Ejemplo de Dualidad

• El respectivo Problema Dual es:


min 5λ1 + 3λ2 + 8λ3
s.a λ1 − λ2 + 4λ3 ≥ 5
−λ1 + λ2 − 4λ3 ≥ −5
2λ1 + 5λ2 + 7λ3 ≥ 6
−λ2 ≥ 0
λ3 ≥ 0
λ1 irrestricta
λ2, λ3 irrestrictas (redundantes).

Apuntes de Clases • Optimización • Claudio Seebach Programación Lineal • 137

También podría gustarte