Dualidade Lagrangeana Ruy Luiz Milidiú. Sumário Primal Convexidade Relaxação Lagrangeana Dual...

Post on 07-Apr-2016

228 views 0 download

Transcript of Dualidade Lagrangeana Ruy Luiz Milidiú. Sumário Primal Convexidade Relaxação Lagrangeana Dual...

Dualidade Lagrangeana

Ruy Luiz Milidiú

Sumário Primal Convexidade Relaxação Lagrangeana Dual Dualidade Fraca Ótimo Global Dualidade Forte

Primal

Minimizar f(x) = -x + 1 2x 3x

(P)

2x 32x - 3 ≤ 0

g1(x) = 2x - 3

Exemplo2x - 3 ≤ 0 x ≤ 3/2 x* = 3/2-x + 1 é decrescente f(x*) = -1/2

Programação Matemática

f(x) função objetivo solução

gi(x) ≤ 0 , i I solução ótima

Solução que minimiza f

Minimizar f(x) gi(x) ≤ 0 i = 1, ..., m x S n

(P)

Programação Linear

min cT.x

s.t. A.x b xi 0

Programação Quadrática

min xT.Q.x + b.x

s.t. di.x + ei ≤ 0 i = 1, ..., m

xi 0

Programação Quadrática

min xT.Q.x + b.x Q 0

s.t. di.x + ei ≤ 0 i = 1, ..., m

xi 0

Programação Convexa

f(x) é convexa

gi(x) é convexa i=1,...,m

S é convexo

Exemplos: PL PQ com Q0

Conjunto convexoS n é convexo se

x Sy S x + (1-)y S [0, 1]

Interseção de convexosH= Hi Hi convexo para i=1,...,k

x,yH

x,yHi para i=1,...,k .x + (1-).yHi para i=1,...,k

.x + (1-).yH

H é convexo

Função convexaf: S definida sobre Sn é convexa se

S é um conjunto convexo x S, y S, [0, 1]

f(x) + (1-)f(y) ≥ f(x + (1-)y)

Restrição convexaH= {x | g(x) ≤ 0} g(x) convexa

x,yHg(x) ≤ 0g(y) ≤ 0

.g(x) + (1-).g(y) ≤ 0g(.x + (1-).y) ≤ .g(x) + (1-).g(y) ≤ 0

g(.x + (1-).y) ≤ 0.x + (1-).y H

H é convexo

Programa convexo (P) é convexo

A função objetivo f(x) é convexa Todas as restrições gi(x) são

funções convexas

(P) é convexoentão

todo ótimo local é global

Programa convexo

Otimo local

Otimo global

Solução melhor

Programa convexoz = .xL + (1-).xG

f(z) = f(.xL + (1-).xG) f(z) .f(xL) + (1-).f(xG) f(z) < .f(xL) + (1-).f(xL) = f(xL) f(z) < f(xL) xL não é mínimo local absurdo !

Combinação Linearf(x) = a.g(x) + b.h(x) g, h convexas a,b 0

.f(x) + (1-).f(y).[a.g(x) + b.h(x)] + (1-).[a.g(y) + b.h(y)]

.a.g(x) + .b.h(x) + (1-).a.g(y) + (1-).b.h(y) .a.g(x) + (1-).a.g(y) + .b.h(x) + (1-).b.h(y)a.[.g(x) + (1-).g(y)] + b.[.h(x) + (1-).h(y)]

a.g(.x + (1-).y) + b.h(.x + (1-).y)

f(.x + (1-).y)

Toda combinação linear de convexas é convexa

Função Linearf(x) = a.x + b

.f(x) + (1-).f(y).(a.x + b) + (1-).(a.y + b)

.a.x + .b + (1-).a.y + (1-).b.a.x + (1-).a.y + ba.(.x + (1-).y) + b

f(.x + (1-).y)

Toda função linear é convexa

Função Quadráticaf(x) = xTx

V = f(x) + (1-)f(y) = xTx + (1-)yTyW = f(x + (1-)y) = 2xTx + 2(1-)xTy + (1-)2yTy

V - W = (-2)xTx - 2(1-)xTy + [(1-) - (1-)2]yTy = (-2)xTx - 2(-2)xTy + (-2)yTy = .(1-).[(x-y)T(x-y)] ≥ 0, [0, 1]

xTx é convexa

Função Quadráticaf(x) = xT.Q.x zT.Q.z 0

V = f(x) + (1-)f(y) = xT.Q.x + (1-)yT.Q.yW = f(x + (1-)y) = 2xT.Q.x + 2(1-)xTy + (1-)2yT.Q.y

V - W = (-2)xT.Q.x - 2(1-)xT.Q.y + [(1-) - (1-)2]yT.Q.y = (-2)xT.Q.x - 2(-2)xT.Q.y + (-2)yT.Q.y = .(1-).[(x-y)T.Q.(x-y)] ≥ 0, [0, 1]

xT.Q.x é convexa

Função Quadráticaf(x) = xT.Q.x zT.Q.z 0

V = f(x) + (1-)f(y) = xT.Q.x + (1-)yT.Q.yW = f(x + (1-)y) = 2xT.Q.x + 2(1-)xTy + (1-)2yT.Q.y

V - W = (-2)xT.Q.x - 2(1-)xT.Q.y + [(1-) - (1-)2]yT.Q.y = (-2)xT.Q.x - 2(-2)xT.Q.y + (-2)yT.Q.y = .(1-).[(x-y)T.Q.(x-y)] ≥ 0, [0, 1]

xT.Q.x + b.x é convexa

Programa Quadráticof(x) = xT.Q.x + b.x Q 0gi(x) = di.x + ei restrições

Programa quadrático com Q 0 é convexo função objetivo convexa restrições convexas conjunto de soluções convexo

Se um programa quadrático tem mínimo local então tem mínimo global!

Exemplo Difícil

Minimizar f(x) = x12 +

x22

2x1 + x2 ≤ -4x 2

(P)

Como facilitar a busca por umasolução ótima?

Relaxação Lagrangeana Eliminação de Restrições

λi ≥ 0 multiplicador de LagrangeCusto unitário para violar a restrição i

Função de Lagrange

L(x, λ) = f(x) + λi gi(x)

ExemploMinimizar f(x) = x1

2 + x2

2

2x1 + x2 ≤ -4x 2

(P)

2x1 + x2 ≤ -4 2x1 + x2 + 4 ≤ 0

g1(x) = 2x1 + x2 + 4

L(x, λ) = x12 + x2

2 + 2λx1 + λx2 + 4λ

Função Dual

λ ≥ 0l(λ) = Min { L(x, λ) }

x S

Problema relaxado Fixar λ Minimizar em x

ExemploMin { L(x, λ) } = Min {x1

2 + x22 + 2λx1 + λx2 + 4λ}

x S x S

Lx1

Lx2

O valor ótimo em função de λ função dual

l(λ) = x12 + x2

2 + 2λx1 + λx2 + 4λ = -5λ2/4 + 4λ

= 2x1 + 2λ = 0 x1 = -λ

= 2x2 + λ = 0 x2 = -λ/2

Dualidade Fraca x é solução e λ ≥ 0

l(λ) f(x)Dem.:

gi(x) 0 e λ ≥ 0 λi.gi(x) 0

f(x) + λi.gi(x) f(x)L(x,λ) f(x)

l(λ) L(x,λ) f(x)

Problema DualMax { l(λ) } = Max {-5λ2/4 + 4λ}

0 0

dldλ

x1* = -λ* = -8/5 x2* = -λ*/2 = -4/52.x1* + x2* + 4 = - 16/5 - 4/5 + 4 = -4 + 4 = 0

0 f(x*) = (-8/5)2 + (-4/5)2 = 16/5l(λ*) = (-5/4)(8/5)2 + 32/5 = 16/5

f(x*) = l(λ*)

= - 5λ/2 + 4 = 0 λ* = 8/5

Primal na PL

min cT.x

s.t. A.x b xi 0

Relaxado na PLL(x,,)

=cT.x – T.(A.x – b) – T.x

, 0

DxL = cT – T.A – T = 0

Relaxado na PLL(x,,)

=cT.x – T.(A.x – b) – T.x

, 0

cT – T.A – T = 0

Relaxado na PLL(x,,)

=(cT – T.A – T).x + T.b

, 0

cT – T.A – T = 0

Relaxado na PLL(x,,)

=T.b

, 0

cT – T.A – T = 0

Relaxado na PLL(,)

=T.b

, 0

T.A + T = cT

Função Dual na PLl() =

T.b, 0

T.A ≤ cT

Dual na PL

max bT.

s.t. AT. ≤ c i 0

Primal-Dual na PL

max bT.

s.t. AT. ≤ c i

0

min cT.x

s.t. A.x b xi 0

Dual na PL

max bT.

s.t. AT. ≤ c i 0

Dual na PL

- min (-b)T.

s.t. AT. ≤ c i 0

Dual na PL

- min (-b)T.

s.t. (-AT). (-c)

i 0

Dual do Dual na PL

- max (-c)T.x

s.t. (-A).x ≤ (-b) xi 0

Dual do Dual na PL

min cT.x

s.t. -A.x ≤ -b xi 0

Dual do Dual na PL

min cT.x

s.t. A.x b xi 0

Primal no SVMmin ½wT.w + C.ii

s.t. yi.(wT.xi + b) 1 - i

i 0

Relaxado no SVML(w,b,,h,)

=½wT.w+C.ii – ihi.[yi.(wT.xi+b)–1+i] – ii.i

DwL = w – ihi.yi.xi = 0DbL = – ihi.yi = 0DiL = C – hi – i = 0

Relaxado no SVML(w,b,,h,)

=½wT.w+C.ii – ihi.[yi.(wT.xi+b)–1+i] – ii.i

w = ihi.yi.xi ihi.yi = 0

C – hi – i = 0

Relaxado no SVMl(h,)

=½wT.w – ihi.[yi.(wT.xi+b)–1]

w = ihi.yi.xi ihi.yi = 0

C – hi – i = 0

Relaxado no SVMl(h,)

=½wT.w – ihi.[yi.(wT.xi+b)–1]

w = ihi.yi.xi ihi.yi = 0

C – hi – i = 0

Relaxado no SVMl(h,)

=½wT.w – ihi.yi.wT.xi – ihi.yi.b + ihi

w = ihi.yi.xi ihi.yi = 0

C – hi – i = 0

Relaxado no SVMl(h,)

=½wT.w – wT.ihi.yi. xi – b.ihi.yi + ihi

w = ihi.yi.xi ihi.yi = 0

C – hi – i = 0

Relaxado no SVMl(h,)

=½wT.w – wT.w – b.0 + ihi

w = ihi.yi.xi ihi.yi = 0

C – hi – i = 0

Relaxado no SVMl(h,)

=– ½wT.w + ihi

w = ihi.yi.xi ihi.yi = 0

C – hi – i = 0

Dual no SVMmax l(h)

=– ½ij hi.hj.yi.yj.xi.xj + ihi

restrito a ihi.yi = 00 hi C

A função dual l(λ) é côncava

λ1 e λ2 0 [0, 1]λ = .λ1 + (1 - ).λ2

x Sl(λ) = f(x) + λi gi(x)

l(λ1) ≤ f(x) + λ1i gi(x) l(λ2) ≤ f(x) + λ2i gi(x).l(λ1) + (1 - ).l(λ2) ≤ f(x) + [.λ1i + (1 - ).λ2i]gi(x).l(λ1) + (1 - ).l(λ2) ≤ l(.λ1 + (1 - ).λ2)

Concavidade

Ponto de Sela

Definição(x, λ) é um ponto de sela de L

se e só se (1) L(x, λ) ≤ L(x, λ) x S (2) L(x, λ) ≤ L(x, λ) λ ≥ 0

L(x, λ) é mínimoL(x, λ) é máximo

Ou seja, em (x, λ)

Caracterizaçãox S e λ ≥ 0

(x, λ) é um ponto de sela de L se e só se

(a) L(x, λ) = Min L(x, λ)(b) gi(x) ≤ 0(c) λi gi(x) = 0

L(x, λ) ≤ L(x, λ)

L(x, λ) = Min L(x, λ) (a)

L(x, λ) ≤ L(x, λ)f(x) + λi gi(x) ≤ f(x) + λi gi(x) (λi - λi) gi(x) ≤ 0 (i) gj(x) ≤ 0 (b)

Fazendo λi = λi para i j e λi = λi + (i)

(λi - λi) gi(x) ≤ 0 (λi - λi) gi(x) ≥ 0 (λi - 0) gi(x) ≥ 0 λi gi(x) ≥ 0λi ≥ 0 e gi(x) ≤ 0, então λi gi(x) ≤ 0

λi gi(x) = 0

L(x, λ) = Min L(x, λ) L(x, λ) ≤ L(x, λ)

(c) λi gi(x) = 0 L(x, λ) = f(x) + λi gi(x) = f(x) L(x, λ) = f(x) + λi gi(x) ≤ f(x) = L(x, λ) L(x, λ) ≤ L(x, λ)

Ótimo Global(x, λ) é um ponto de sela

entãox é uma solução ótima

(1) L(x, λ) ≤ L(x, λ) f(x) + λi gi(x) ≤ f(x) + λi gi(x)

Como (c) λi gi(x) = 0 , entãof(x) ≤ f(x) + λi gi(x) ≤ f(x) + 0 f(x) ≤ f(x)

Dualidade Forte

(x*, λ*) é um ponto de sela de Lse e somente se

f(x*) = l(λ*)

Obs.: Max (D) = Min (P)

L(x*, λ*) = f(x*) + λi*.gi(x*) = f(x*)L(x*, λ*) = Min { L(x, λ*) } = l(λ*) x S

l(λ) ≤ f(x*)f(x*) = l(λ*) = Max { l(λ) }

λ ≥ 0

l(λ*) = f(x*)Max (D) = Min (P)

l(λ*) = f(x*) l(λ*) ≤ f(x) + λi*.gi(x)l(λ*) ≤ f(x*) + λi*.gi(x*)

f(x*) ≤ f(x*) + λi*.gi(x*) λi*.gi(x*) ≥ 0

λi* ≥ 0 e gi(x*) ≤ 0λi*.gi(x*) ≤ 0

λi*.gi(x*) = 0L(x*, λ*) = f(x*) = l(λ*) = Min { L(x, λ*)

}(x*, λ*) é um ponto de sela

Ponto de Sela Verificação

A tarefa não trivial é resolver o dual O dual é mais fácil que o primal Verificar restrições e folgas complementares

Existência Difícil em geral Garantida para programas convexos com

ótimo global

Perturbaçãomin x1

2 + x22 f(x) = xT.x

2x1 + x2 + 4 ≤ 0 g(x) = (2,1).x + 4x 2

(P)

L(x,λ) = xT.x + λ.(2,1).x + 4.λ DxL = 2.x + λ.(2,1)T = 0 x* = λ.(1,1/2)T

L(x*,λ) = λ2.(5/4) λ2.(5/2) + 4.λl(λ) = L(x*,λ) = 5.λ2/4 + 4.λ

Dλl = 5.λ/2 + 4 = 0 λ* = 8/5f(x*) = l(λ*) = 16/5

Perturbaçãomin x1

2 + x22 f(x) = xT.x

2x1 + x2 + 4 ≤ y g(x) = (2,1).x + 4 yx 2

(P)

L(x,λ) = xT.x + λ.(2,1).x + (4-y).λ DxL = 2.x + λ.(2,1)T = 0 x* = λ.(1,1/2)T

L(x*,λ) = λ2.(5/4) λ2.(5/2) + (4-y).λl(λ) = L(x*,λ) = 5.λ2/4 + (4-y).λ

Dλl = 5.λ/2 + (4-y) = 0 λ* = max {(4-y).2/5, 0}

(y) = f(x*) = l(λ*) = max {(4-y)2/5, 0}

Função de Perturbação

Programação Matemática

f(x) função objetivo solução

gi(x) ≤ 0 , i I solução ótima

Solução que minimiza f

Minimizar f(x) gi(x) ≤ 0 i = 1, ..., m x S n

(P)

Problema Perturbado

f(x) função objetivo solução

gi(x) ≤ yi , i I solução ótima

Solução que minimiza f

Minimizar f(x) gi(x) ≤ yi i = 1, ..., m x S n

(Py)

Função de Perturbação

função de perturbação de (P)

(y) = valor ótimo de (Py)

Minimizar f(x) gi(x) ≤ yi i = 1, ..., m x S n

(Py)

Perturbação de PC

(P) um Problema Convexo

(y) é convexa

Minimizar f(x) gi(x) ≤ yi i = 1, ..., m x S n

(Py)

Dem.(r) = f(xr) valor ótimo de (Pr)(s) = f(xs) valor ótimo de (Ps)

gi(xr) ≤ ri gi(xs) ≤ si i = 1, ..., m

.gi(xr) ≤ .ri (1-).gi(xs) ≤ (1-).si.gi(xr) + (1-).gi(xs) ≤ .ri + (1-).si

gi(.xr + (1-).xs) ≤ .ri + (1-).si

.xr + (1-).xs é solução de (P.r + (1-).s)

(.r + (1-).s) ≤ f(.xr + (1-).xs)(.r + (1-).s) ≤ .f(xr) + (1-).f(xs)(.r + (1-).s) ≤ .(r) + (1-).(s)