Programação Não Linear - DCA | FEEC · Programação Não Linear CT 820 Teoria de Sistemas e...

62
DCA-FEEC-Unicamp ProfFernandoGomide2012 Programação Não Linear CT 820 Teoria de Sistemas e Otimização Fuzzy Introdução e Aplicações

Transcript of Programação Não Linear - DCA | FEEC · Programação Não Linear CT 820 Teoria de Sistemas e...

Page 1: Programação Não Linear - DCA | FEEC · Programação Não Linear CT 820 Teoria de Sistemas e Otimização Fuzzy Introdução e Aplicações. 2 ProfFernandoGomide DCA-FEEC-Unicamp

DCA-FEEC-UnicampProfFernandoGomide2012

Programação Não Linear

CT 820 Teoria de Sistemas e Otimização FuzzyIntrodução e Aplicações

Page 2: Programação Não Linear - DCA | FEEC · Programação Não Linear CT 820 Teoria de Sistemas e Otimização Fuzzy Introdução e Aplicações. 2 ProfFernandoGomide DCA-FEEC-Unicamp

2

DCA-FEEC-UnicampProfFernandoGomide

min f (x)sa x ∈ D ⊂ Rn

Modelo programação não linear (PNL)

min f (x)sa x ∈ D = Rn

restrito

irrestrito

Page 3: Programação Não Linear - DCA | FEEC · Programação Não Linear CT 820 Teoria de Sistemas e Otimização Fuzzy Introdução e Aplicações. 2 ProfFernandoGomide DCA-FEEC-Unicamp

3

I- programação não linear irrestrita

min f (x)sa x ∈ D = Rn

DCA-FEEC-UnicampProfFernandoGomide

Page 4: Programação Não Linear - DCA | FEEC · Programação Não Linear CT 820 Teoria de Sistemas e Otimização Fuzzy Introdução e Aplicações. 2 ProfFernandoGomide DCA-FEEC-Unicamp

4

DCA-FEEC-UnicampProfFernandoGomide

Exemplo: regressão não linear

número custo número custo número custoi pi q i i p i q i i p i q i

1 19 7.9 5 5 19.5 9 14 9.22 2 25 6 6 13 10 17 6.33 9 13.1 7 3 17.8 11 1 42.04 4 17.4 8 11 8.0 12 20 6.6

Número de unidades x Custo unitário

0

10

20

30

40

50

0 5 10 15 20

número

cust

o u

nitá

rio

Page 5: Programação Não Linear - DCA | FEEC · Programação Não Linear CT 820 Teoria de Sistemas e Otimização Fuzzy Introdução e Aplicações. 2 ProfFernandoGomide DCA-FEEC-Unicamp

5

DCA-FEEC-UnicampProfFernandoGomide

Número de unidades x Custo unitário

0

10

20

30

40

50

0 5 10 15 20

número

cust

o u

nitá

rio

2

1121 ])([),(min 2∑

=−=

m

i

xii pxqxxf 2)()( 1

xpxprq ==

6024.069.40)( −== pprq

6024.0;69.40 21 −== ∗∗ xx

12=m

Page 6: Programação Não Linear - DCA | FEEC · Programação Não Linear CT 820 Teoria de Sistemas e Otimização Fuzzy Introdução e Aplicações. 2 ProfFernandoGomide DCA-FEEC-Unicamp

6

DCA-FEEC-UnicampProfFernandoGomide

Funções suaves e derivadas

f (x)

x

f (x)

x

f (x)

x

suave não contínua não diferenciável

� Função f (x) suave: contínua e diferenciável no domímio de interesse D ⊆ Rn

� Modelos de PNL com funções suaves são, geralmente, mais tratáveis

� Funções suaves: possuem derivadas → possibilitam busca mais eficiente

� Derivada : forma analítica pode ser difícil / impossível de ser obtida

Page 7: Programação Não Linear - DCA | FEEC · Programação Não Linear CT 820 Teoria de Sistemas e Otimização Fuzzy Introdução e Aplicações. 2 ProfFernandoGomide DCA-FEEC-Unicamp

7

Busca unidimensional

f (x)

x

xlo

xhixlo x1 x2

x2 xhix1

f (x)

xxlo

xlo

xhi

xhi

x2

x2

x1

x1

)ourodenúmero(618.0

)(

)(2

1

=α−α+=

−α−=lohilo

lohihi

xxxx

xxxx

DCA-FEEC-UnicampProfFernandoGomide

f (x) unimodalx* ∈ [ xhi , xlo ]

Page 8: Programação Não Linear - DCA | FEEC · Programação Não Linear CT 820 Teoria de Sistemas e Otimização Fuzzy Introdução e Aplicações. 2 ProfFernandoGomide DCA-FEEC-Unicamp

8

DCA-FEEC-UnicampProfFernandoGomide

Passo 0 Inicialização: escolher xlo , xhi e tolerância ε > 0. Calcular, com α = 0.618:

x1 ← xhi - α (xhi - xlo )x2 ← xhi + α (xhi - xlo )

calcular valor da função f (x) para os quatro pontos; t ← 0;

Passo 1 Parada: se (xhi - xlo ) ≤ ε , parar: solução ótima aproximada x* = 1/2 (xhi - xlo ); senão ir para Passo 2 se f (x1) > f (x2); caso contrário ir para o Passo 3;

Passo 2 Esquerdo: estreitar lado esquerdo do intervalo;

xhi ← x2 ; x2 ← x1

x1 ← xhi - α (xhi - xlo )

avaliar f (x1); t ← t + 1; ir para Passo 1;

Passo 3 Direito: estreitar lado direito do intervalo;

xlo ← x1 ; x1 ← x2

x2 ← xlo + α (xhi - xlo )

avaliar f (x2); t ← t + 1; ir para Passo 1;

Busca unidimensional (número de ouro)

Page 9: Programação Não Linear - DCA | FEEC · Programação Não Linear CT 820 Teoria de Sistemas e Otimização Fuzzy Introdução e Aplicações. 2 ProfFernandoGomide DCA-FEEC-Unicamp

9

DCA-FEEC-UnicampProfFernandoGomide

Busca unidimensional: intervalo inicial

� Intervalo inicial

– tal que x* ∈ [ xlo, xhi ] → padrão 3 pontos

� Padrão 3 pontos

– { xlo, xmid , xhi }, xlo < xmid < xhi

– f (xmid) melhor que f(xhi) e f(xlo)

–{ xlo, xmid , xhi } → x* ∈ [ xhi , xlo ]

Page 10: Programação Não Linear - DCA | FEEC · Programação Não Linear CT 820 Teoria de Sistemas e Otimização Fuzzy Introdução e Aplicações. 2 ProfFernandoGomide DCA-FEEC-Unicamp

10

Passo 0 Inicializa: escolher limitante inferior xlo parax* e passo δ > 0;

Passo 1 Esquerda ou Direita: se f (xlo + δ ) é superior à f (xlo) entãoxmid ← xlo + δ;ir para o Passo 2 para busca à direita; caso contrário ótimo está à

esquerda; fazer xhi ← xlo + δ; ir para Passo 3;

Passo 2 Expande: amentar δ ← 2 δ; se f (xmid) é superior à f (xmid + δ) então

xhi ← xmid + δ e parar;{ xlo, xmid , xhi } fornece padrão

3 pontos; senão xlo ← xmid ; xmid ← xmid + δ; repetir Passo 2;

Passo 3 Reduz: diminuir δ ← δ/2; se f (xlo + δ ) é superior à f (xlo ) então

xmid ← xlo + δ e parar;{ xlo, xmid , xhi } fornece padrão

3 pontos; senão xhi ← xlo + δ; repetir Passo 3;

Intervalo inicial: algoritmo

DCA-FEEC-UnicampProfFernandoGomide

Page 11: Programação Não Linear - DCA | FEEC · Programação Não Linear CT 820 Teoria de Sistemas e Otimização Fuzzy Introdução e Aplicações. 2 ProfFernandoGomide DCA-FEEC-Unicamp

11

DCA-FEEC-UnicampProfFernandoGomide

Condições de otimalidade sem restrições

� Vetor gradiente

)()(

:emveldiferenciáRR:;),,,(

1

21

nj

nn

xf/...xf/...xf/xf

xfxxxx

∂∂∂∂∂∂=∇

→= L

� Matriz Hessiana

∂∂

∂∂∂

∂∂∂

∂∂

=

2

2

1

2

1

2

21

2

)(

nn

n

x

f

xx

f

xx

f

x

f

xH

L

MOM

L

Page 12: Programação Não Linear - DCA | FEEC · Programação Não Linear CT 820 Teoria de Sistemas e Otimização Fuzzy Introdução e Aplicações. 2 ProfFernandoGomide DCA-FEEC-Unicamp

12

DCA-FEEC-UnicampProfFernandoGomide

),(

)]ln())(()ln())([(2

])())()[((ln2

2

)ln()(2

)(2

])([),(

21

11

11221

21

111

222

121

111

2

11

1

2

1121

2222

222

2

22

22

2

xxx

ppxppppxqxx

f

xx

f

pxpxpxqpx

f

px

f

ppxpxqx

f

ppxqx

f

pxqxxf

ixi

xii

m

i

xi

xii

xi

m

i

xi

xiii

m

i

xi

i

m

i

xi

xii

m

i

xi

xii

m

i

xii

=

−−−=∂∂

∂=∂∂

−−−=∂∂

=∂∂

−−=∂∂

−−=∂∂

−=

=

=

=

=

=

=

Exemplo: regressão não linear

Page 13: Programação Não Linear - DCA | FEEC · Programação Não Linear CT 820 Teoria de Sistemas e Otimização Fuzzy Introdução e Aplicações. 2 ProfFernandoGomide DCA-FEEC-Unicamp

13

DCA-FEEC-UnicampProfFernandoGomide

=

∂∂

∂∂∂

∂∂∂

∂∂

=

−−=∂∂∂∂=∇

−==

12.1100365.179

65.17977.50.5)-(33,

)23.174,07.23(),(0.5)- (33,

)5.0,33(),(ˆ

x̂22

2

12

221

2

21

2

x̂21

21

x

f

xx

f

xx

f

x

f

H

xf/xf/f

xxx

Page 14: Programação Não Linear - DCA | FEEC · Programação Não Linear CT 820 Teoria de Sistemas e Otimização Fuzzy Introdução e Aplicações. 2 ProfFernandoGomide DCA-FEEC-Unicamp

14

DCA-FEEC-UnicampProfFernandoGomide

Aproximações usando série de Taylor

j

n

j j

tt

ttt

xx

fxfxxf

xxfxfxxf

∂∂λ+=λ+

∆∇λ+=λ+

∑=1

1

1

)()∆(

)()()∆(

ji

n

i

n

j jij

n

j j

tt

ttt

xxxx

fx

x

fxfxxf

xxHxxfxfxxf

∆∆

∂∂∂λ+∆

∂∂λ+=λ+

∆∆λ+∆∇λ+=λ+

∑∑∑= == 1 1

2

12

t2

2

2)()∆(

)(x2

)()()∆(

1a ordem

2a ordem

Page 15: Programação Não Linear - DCA | FEEC · Programação Não Linear CT 820 Teoria de Sistemas e Otimização Fuzzy Introdução e Aplicações. 2 ProfFernandoGomide DCA-FEEC-Unicamp

15

DCA-FEEC-UnicampProfFernandoGomide

Gradiente e ótimo local

� Condição necessária (de 1a ordem)– xt é um ponto estacionário de f se ∇ f (xt) = 0

– ótimo local de uma função suave: ponto estacionário

)()()()∆(

]minmax,[)(

)()()∆(

tttt

t

ttt

xfxfxfxxf

xfx

xxfxfxxf

∇∇λ±=λ+

−+±∇=∆

∆∇λ+=λ+

função objetivo melhora a menos que ∇ f (xt) = 0

Page 16: Programação Não Linear - DCA | FEEC · Programação Não Linear CT 820 Teoria de Sistemas e Otimização Fuzzy Introdução e Aplicações. 2 ProfFernandoGomide DCA-FEEC-Unicamp

16

Hessianas e ótimos locais

DCA-FEEC-UnicampProfFernandoGomide

xxHxf

xxxHxxfxfxxf

t

ttt

∆∆λ++≈

∆∆λ+∆∇λ+≈λ+

)(x2

0)(

)(2

)()()∆(

t2

t2

� Se xt é um ponto estacionário de f então ∇ f (xt) = 0; logo

∆x direção que melhora f em xt

Page 17: Programação Não Linear - DCA | FEEC · Programação Não Linear CT 820 Teoria de Sistemas e Otimização Fuzzy Introdução e Aplicações. 2 ProfFernandoGomide DCA-FEEC-Unicamp

17

� Condições de 2a ordem

– necessárias

• xt mínimo local de f → H(xt) semi-positiva definida

• xt máximo local de f → H(xt) semi-negativa definida

– suficientes

• xt ponto estacionário f , H(xt) positiva definida → xt mínimo local de f

• xt ponto estacionáriof , H(xt) negativa definida → xt máximo local de f

DCA-FEEC-UnicampProfFernandoGomide

Page 18: Programação Não Linear - DCA | FEEC · Programação Não Linear CT 820 Teoria de Sistemas e Otimização Fuzzy Introdução e Aplicações. 2 ProfFernandoGomide DCA-FEEC-Unicamp

18

Pontos estacionários

máximo

mínimo

sela

Page 19: Programação Não Linear - DCA | FEEC · Programação Não Linear CT 820 Teoria de Sistemas e Otimização Fuzzy Introdução e Aplicações. 2 ProfFernandoGomide DCA-FEEC-Unicamp

19

DCA-FEEC-UnicampProfFernandoGomide

Convexidade e otimalidade global

f (x1)

f (x2)

f (x)

xx1 x2

f (x)

x

]1,0[D;,)];()([)()(( 21121121 ∈λ∈−λ+≤−λ+ xxxfxfxfxxxf

� Função convexa

Page 20: Programação Não Linear - DCA | FEEC · Programação Não Linear CT 820 Teoria de Sistemas e Otimização Fuzzy Introdução e Aplicações. 2 ProfFernandoGomide DCA-FEEC-Unicamp

20

DCA-FEEC-UnicampProfFernandoGomide

f (x1)

f (x2)

f (x)

xx1 x2

� Função côncava

]1,0[D;,)];()([)()(( 21121121 ∈λ∈−λ+≥−λ+ xxxfxfxfxxxf

x

f (x)

Page 21: Programação Não Linear - DCA | FEEC · Programação Não Linear CT 820 Teoria de Sistemas e Otimização Fuzzy Introdução e Aplicações. 2 ProfFernandoGomide DCA-FEEC-Unicamp

21

DCA-FEEC-UnicampProfFernandoGomide

Funções convexas e côncavas

1- Se f (x) é convexa então -f (x) é côncava

2- f (x) com segundas derivadas continuas é convexa se e somente sea matriz Hessiana H(x) é semi-positiva definida em um domínio convexo(aberto)’; f (x) é côncava se e somente se H(x) é semi-negativa definida.

3- Funções lineares são convexas e côncavas

4- Se f (x) é côncava, g (x) = 1/ f (x) é convexa ∀x | f (x) > 0se f (x) é convexa, g (x) = 1/ f (x) é côncava ∀x | f (x) < 0

5- Se g (y) é uma função convexa não decrescente e h (x) é convexa, entãof (x) = g (h (x)) é convexa; se g (y) é uma função côncava não decrescentee h (x) é côncava, então f (x) = g (h (x)) é côncava

Page 22: Programação Não Linear - DCA | FEEC · Programação Não Linear CT 820 Teoria de Sistemas e Otimização Fuzzy Introdução e Aplicações. 2 ProfFernandoGomide DCA-FEEC-Unicamp

22

DCA-FEEC-UnicampProfFernandoGomide

6- f (x) é convexa se, para αi ≥ 0 e gi (x) convexa, i = 1, .., k

∑=

α=k

iii xgxf

1)()(

7- f (x) formada a partir de máximos de funções convexas é convexaf (x) formada a partir do mínimo de funções côncavas é côncava

},,1);({max(x) x kixgf i L==

},,1);({min)( x kixgxf i L==

8- Funções convexas (côncavas) são unimodais (o contrário não)

Page 23: Programação Não Linear - DCA | FEEC · Programação Não Linear CT 820 Teoria de Sistemas e Otimização Fuzzy Introdução e Aplicações. 2 ProfFernandoGomide DCA-FEEC-Unicamp

23

DCA-FEEC-UnicampProfFernandoGomide

Condições suficientes: otimalidade global

� Se f (x) é uma função convexa, então todo mínimo local é mínimo global

� Se f (x) é uma função côncava, então todo máximo local é máximo global

No caso de mínimo: seja x* mínimo global e x1 ≠ x*

0;0)](*)([)(*)( 11 >λ∀<−λ⇒< xfxfxfxf

]1,0[;)()](*)([)()]*([ 11111 ∈λ<−λ+≤−λ+ xfxfxfxfxxxf

∆x = (x1 – x*) direção melhora em x1,∀x1 ∈ D

↓x* mínimo global

Page 24: Programação Não Linear - DCA | FEEC · Programação Não Linear CT 820 Teoria de Sistemas e Otimização Fuzzy Introdução e Aplicações. 2 ProfFernandoGomide DCA-FEEC-Unicamp

24

DCA-FEEC-UnicampProfFernandoGomide

� Ponto estacionário de uma função convexa suave é um mínimo global

� Ponto estacionário de uma função côncava suave é um máximo global

x0)(x(x)0)(x

))(()()(

Taylor))(()()]([

econvexidad]1,0()]()([)()]([

**

**

***

****

∀≥−⇒=∇

−∇≥−

−∇λ+≈−λ+

∈λ−λ+≤−λ+

fff

xxxfxfxf

xxxfxfxxxf

xfxfxfxxxf

*

*

Exemplo: sef (x) é convexa, então

↓x* é mínimo global

Page 25: Programação Não Linear - DCA | FEEC · Programação Não Linear CT 820 Teoria de Sistemas e Otimização Fuzzy Introdução e Aplicações. 2 ProfFernandoGomide DCA-FEEC-Unicamp

25

DCA-FEEC-UnicampProfFernandoGomide

Passo 0 Inicialização: com solução inicial x0; tolerância ε > 0; t ← 0;

Passo 1 Gradiente: calcular ∇f (xt) em xt;

Passo 2 Ponto Estacionário: se ||∇f (xt)|| ≤ ε então parar; xt é ótimo;

Passo 3 Direção: ∆xt+1 ← ±∇f (xt) [+ para max, – para min];

Passo 4 Busca Unidimensional: determinar λt+1 resolvendo

max (min) f ( xt + λ ∆xt+1) ;

Passo 5 Atualizar: xt+1 = xt + λ ∆xt+1 ;

Passo 6 Incrementa: t = t + 1; ir para Passo 1;

Algoritmo (busca) do gradiente

Page 26: Programação Não Linear - DCA | FEEC · Programação Não Linear CT 820 Teoria de Sistemas e Otimização Fuzzy Introdução e Aplicações. 2 ProfFernandoGomide DCA-FEEC-Unicamp

26

x1

x2

x*

f (x)

xo

x1

x2 x3

∇f (xo)

Algoritmo do gradiente

DCA-FEEC-UnicampProfFernandoGomide

Page 27: Programação Não Linear - DCA | FEEC · Programação Não Linear CT 820 Teoria de Sistemas e Otimização Fuzzy Introdução e Aplicações. 2 ProfFernandoGomide DCA-FEEC-Unicamp

27

DCA-FEEC-UnicampProfFernandoGomide

Page 28: Programação Não Linear - DCA | FEEC · Programação Não Linear CT 820 Teoria de Sistemas e Otimização Fuzzy Introdução e Aplicações. 2 ProfFernandoGomide DCA-FEEC-Unicamp

28

DCA-FEEC-UnicampProfFernandoGomide

Page 29: Programação Não Linear - DCA | FEEC · Programação Não Linear CT 820 Teoria de Sistemas e Otimização Fuzzy Introdução e Aplicações. 2 ProfFernandoGomide DCA-FEEC-Unicamp

29

Método de Newton

� Utiliza informação de segunda ordem

ji

n

i

n

j jij

n

j j

tt

ttt

xxxx

fx

x

fxfxxf

xxxHxxfxfxxf

∆∆

∂∂∂λ+∆

∂∂λ+=λ+

∆∆λ+∆∇λ+=λ+

∑∑∑= == 1 1

22

12

t2

2

2)()∆(

)(2

)()()∆(

� Fazendoλ = 1 e derivando com relação à ∆xi

xxHxfxf

nixxx

f

x

f

x

f

tt

j

n

j jiii

∆+∇=∆∇

=∆∂∂

∂+∂∂=

∆∂∂

∑=

)()()(

,,1,

2

1

22 L

)()(0)(2tt xfxxHxf −∇=∆→=∆∇

DCA-FEEC-UnicampProfFernandoGomide

Page 30: Programação Não Linear - DCA | FEEC · Programação Não Linear CT 820 Teoria de Sistemas e Otimização Fuzzy Introdução e Aplicações. 2 ProfFernandoGomide DCA-FEEC-Unicamp

30

Newton

xo

x1

f (x)

DCA-FEEC-UnicampProfFernandoGomide

Page 31: Programação Não Linear - DCA | FEEC · Programação Não Linear CT 820 Teoria de Sistemas e Otimização Fuzzy Introdução e Aplicações. 2 ProfFernandoGomide DCA-FEEC-Unicamp

31

xo

x1x2

x3x4

f (x)

Gradiente

DCA-FEEC-UnicampProfFernandoGomide

Page 32: Programação Não Linear - DCA | FEEC · Programação Não Linear CT 820 Teoria de Sistemas e Otimização Fuzzy Introdução e Aplicações. 2 ProfFernandoGomide DCA-FEEC-Unicamp

32

– algoritmo Newton converge para ótimo local se inicialização ésuficientemente próxima do ótimo local

– não há garantia de que a matriz Hessiana seja não singular emtodo domínio de interesse

– idéia: combinar gradiente + Newton

– métodos Quase Newtonianos: ∆ xt+1 = - Dt ∇ f (xt)

– matriz D aproxima da inversa da Hessiana H –1 ao longo da busca

– Hessiana: relacionada com a variação do gradiente:

])[()()( 1)1 ttttt xxxHxfxf −≈∇−∇ ++

DCA-FEEC-UnicampProfFernandoGomide

Page 33: Programação Não Linear - DCA | FEEC · Programação Não Linear CT 820 Teoria de Sistemas e Otimização Fuzzy Introdução e Aplicações. 2 ProfFernandoGomide DCA-FEEC-Unicamp

33

Broyden, Fletcher, Goldfarb, Shanno: método BFGS

max)min,(

)()(g

1

011

1

+−

±=∇−∇=−=

+−

++←

++

+

IDxfxfxxd

gd

DdggdD

gd

dd

gd

gDgDD

tttt

Tt

TTt

T

T

Tt

T

tt

11

1

1 )(

++

+

+

∆λ+←

∇−←∆

tt

tt

tt

t

xxx

xfDx

DCA-FEEC-UnicampProfFernandoGomide

Page 34: Programação Não Linear - DCA | FEEC · Programação Não Linear CT 820 Teoria de Sistemas e Otimização Fuzzy Introdução e Aplicações. 2 ProfFernandoGomide DCA-FEEC-Unicamp

34

xo

BFGS

x1

x2

f (x)

DCA-FEEC-UnicampProfFernandoGomide

Page 35: Programação Não Linear - DCA | FEEC · Programação Não Linear CT 820 Teoria de Sistemas e Otimização Fuzzy Introdução e Aplicações. 2 ProfFernandoGomide DCA-FEEC-Unicamp

35

Algoritmo de Nelder-Mead

� Não utiliza derivadas

� Mantém (n + 1) soluções candidatas

� Baseia-se nos conceitos de:– reflexão– expansão– contração– encolhimento

centróideésimo1

candidatas)1(asentresoluçãopior

1

11

−≡

+←−≡∆

∑=

++

nyn

x

nyyxxn

i

it

nnt

DCA-FEEC-UnicampProfFernandoGomide

Page 36: Programação Não Linear - DCA | FEEC · Programação Não Linear CT 820 Teoria de Sistemas e Otimização Fuzzy Introdução e Aplicações. 2 ProfFernandoGomide DCA-FEEC-Unicamp

36

xoy1

y2

y3

reflexão

contração

expansão

DCA-FEEC-UnicampProfFernandoGomide

Page 37: Programação Não Linear - DCA | FEEC · Programação Não Linear CT 820 Teoria de Sistemas e Otimização Fuzzy Introdução e Aplicações. 2 ProfFernandoGomide DCA-FEEC-Unicamp

37

y2

y3

y1 novo y2

novoy3

encolhimento

DCA-FEEC-UnicampProfFernandoGomide

Page 38: Programação Não Linear - DCA | FEEC · Programação Não Linear CT 820 Teoria de Sistemas e Otimização Fuzzy Introdução e Aplicações. 2 ProfFernandoGomide DCA-FEEC-Unicamp

38

II- programação não linear restrita

min f (x)sa x ∈ D ⊂ Rn

DCA-FEEC-UnicampProfFernandoGomide

Page 39: Programação Não Linear - DCA | FEEC · Programação Não Linear CT 820 Teoria de Sistemas e Otimização Fuzzy Introdução e Aplicações. 2 ProfFernandoGomide DCA-FEEC-Unicamp

39

Exemplo: localização e alocação

Distribuidores: 17Regiões: 650 agrupando 24.000 clientes

regiões

distribuidoras

DCA-FEEC-UnicampProfFernandoGomide

Page 40: Programação Não Linear - DCA | FEEC · Programação Não Linear CT 820 Teoria de Sistemas e Otimização Fuzzy Introdução e Aplicações. 2 ProfFernandoGomide DCA-FEEC-Unicamp

40

i = distribuidor, i = 1,....,17j = região, j = 1,...,650

dj = número de viagens/ano para entregas àj-ésima região

j

hj

kj

i

xi

yj

DCA-FEEC-UnicampProfFernandoGomide

Page 41: Programação Não Linear - DCA | FEEC · Programação Não Linear CT 820 Teoria de Sistemas e Otimização Fuzzy Introdução e Aplicações. 2 ProfFernandoGomide DCA-FEEC-Unicamp

41

650,,1;17,,1,0

650,,1,sa

)()(min

17

1

17

1

650

1

22

KK

K

==≥

==

−+−

∑∑

=

= =

jiw

jdw

hyhxw

ij

ijij

i jjijiij

� Minimizar custo de transporte– minimizar número de viagens (wij) de i → j– minimizar distância entre i e j

� Modelo PNL

DCA-FEEC-UnicampProfFernandoGomide

Page 42: Programação Não Linear - DCA | FEEC · Programação Não Linear CT 820 Teoria de Sistemas e Otimização Fuzzy Introdução e Aplicações. 2 ProfFernandoGomide DCA-FEEC-Unicamp

42

Modelos convexos

DCA-FEEC-UnicampProfFernandoGomide

Kkcxl

Jjbxh

Iiaxg

xf

kk

jj

ii

,,1,)(

,,1,)(

,,1,)(sa

)(min

K

K

K

==

=≤=≥

f(x) convexa

gi(x) côncava ∀i

hj(x) convexa ∀j

lk(x) linear ∀k

Page 43: Programação Não Linear - DCA | FEEC · Programação Não Linear CT 820 Teoria de Sistemas e Otimização Fuzzy Introdução e Aplicações. 2 ProfFernandoGomide DCA-FEEC-Unicamp

43

min ( x1- 3)2 + ( x2 - 3)2

sa 3 x1 + 5 x2 ≤ 155 x1 + 2 x2 ≤ 10

x1, x2 ≥ 0

x2

x*y*

f(x)

h1(x)

h2(x)

3

3

1

1

x1

DCA-FEEC-UnicampProfFernandoGomide

Page 44: Programação Não Linear - DCA | FEEC · Programação Não Linear CT 820 Teoria de Sistemas e Otimização Fuzzy Introdução e Aplicações. 2 ProfFernandoGomide DCA-FEEC-Unicamp

44

max 3w1 – w2 +8ln w1

sa 4w12 – w1w2 + w2

2 ≤ 100w1 + w2 = 4w1, w2 ≥ 0

0.5 1 1.5 2 2.5 3 3.5 4

0.5

1

1.5

2

2.5

3

3.5

4

w1

w2

� Função objetivo

f(w1, w2) = 3w1 – w2 +8ln w1

DCA-FEEC-UnicampProfFernandoGomide

Page 45: Programação Não Linear - DCA | FEEC · Programação Não Linear CT 820 Teoria de Sistemas e Otimização Fuzzy Introdução e Aplicações. 2 ProfFernandoGomide DCA-FEEC-Unicamp

45

� Restrições principais

0.5 1 1.5 2 2.5 3 3.5 4

0.5

1

1.5

2

2.5

3

3.5

4

w1

w2

0.5 1 1.5 2 2.5 3 3.5 4

0.5

1

1.5

2

2.5

3

3.5

4

w1

w2

h(w1, w2) = 4 w12 – w1 w2 + w2

2 ≤ 100

l(w1, w2) = w1 + w2 = 4

DCA-FEEC-UnicampProfFernandoGomide

Page 46: Programação Não Linear - DCA | FEEC · Programação Não Linear CT 820 Teoria de Sistemas e Otimização Fuzzy Introdução e Aplicações. 2 ProfFernandoGomide DCA-FEEC-Unicamp

46

0 1 2 3 4 5 60

0.5

1

1.5

2

2.5

3

3.5

4

w1

w2

l =4

g =100

max 3w1 – w2 +8ln w1

sa 4w12 – w1w2 + w2

2 ≤ 100w1 + w2 = 4

w1, w2 ≥ 0

DCA-FEEC-UnicampProfFernandoGomide

Page 47: Programação Não Linear - DCA | FEEC · Programação Não Linear CT 820 Teoria de Sistemas e Otimização Fuzzy Introdução e Aplicações. 2 ProfFernandoGomide DCA-FEEC-Unicamp

47

Propriedade de modelos convexos

Se a função objetivo do modelo é convexa e as restriçõesproduzem um conjunto convexo factível, então toda soluçãoótima local é uma solução ótima global.

gi(x) côncava ∀i

hj(x) convexa ∀j

lk(x) linear ∀k

Conjunto convexo

f convexa (côncava) Função unimodal

DCA-FEEC-UnicampProfFernandoGomide

Page 48: Programação Não Linear - DCA | FEEC · Programação Não Linear CT 820 Teoria de Sistemas e Otimização Fuzzy Introdução e Aplicações. 2 ProfFernandoGomide DCA-FEEC-Unicamp

48

DCA-FEEC-UnicampProfFernandoGomide

Método dos multiplicadores de Lagrange

mi

bxg

xf

ii

,,1

)(sa

)(min(max)

K== Restrições igualdade

Função Lagrangeana∑=

−ν+=νm

iiii xgbxfxL

1)]([)(),(

vi = multiplicador de Lagrange associado à restrição i

Page 49: Programação Não Linear - DCA | FEEC · Programação Não Linear CT 820 Teoria de Sistemas e Otimização Fuzzy Introdução e Aplicações. 2 ProfFernandoGomide DCA-FEEC-Unicamp

49

DCA-FEEC-UnicampProfFernandoGomide

Pontos estacionários da função Lagrangeana

ibxg

jx

fv

x

gxgxf

ii

j

m

ii

j

im

iii

∀=

∀∂∂=

∂∂∇ν=∇ ∑∑

==

,*)(

,ou)]*()*(11

*

(x* , v*) é um ponto estacionário de L(x,v) se ∇L(x*,v*) = 0:

Se (x* , v*) é um ponto estacionário de L(x,v) e x* é uma solução ótima irrestrita de L(x,v), então x* é uma solução ótima do modelo original com restrições de igualdade.

Page 50: Programação Não Linear - DCA | FEEC · Programação Não Linear CT 820 Teoria de Sistemas e Otimização Fuzzy Introdução e Aplicações. 2 ProfFernandoGomide DCA-FEEC-Unicamp

50

DCA-FEEC-UnicampProfFernandoGomide

Exemplo

)1,0,0()(

)0,24,24()(

)2,8,12()(

]1[]2424360[46),(

1

3602424sa

46min

2

1

321

3221123

22

21

3

21

23

22

21

=∇=∇

=∇

−+−−+++=

==+

++

xg

xg

xxxxf

xvxxvxxxvxL

x

xx

xxx

Page 51: Programação Não Linear - DCA | FEEC · Programação Não Linear CT 820 Teoria de Sistemas e Otimização Fuzzy Introdução e Aplicações. 2 ProfFernandoGomide DCA-FEEC-Unicamp

51

DCA-FEEC-UnicampProfFernandoGomide

10822727246),(

11

3602424

21

824

1224

32123

22

21

3

21

32

21

11

+−−−++=

==+===

xxxxxxvxL

x

xx

xv

xv

xv

convexa

(x1*, x2*, x3*, v1*, v2*) = (6, 9, 1, 3, 2) ⇒ mínimo de L(x,v)

Page 52: Programação Não Linear - DCA | FEEC · Programação Não Linear CT 820 Teoria de Sistemas e Otimização Fuzzy Introdução e Aplicações. 2 ProfFernandoGomide DCA-FEEC-Unicamp

52

Interpretação multiplicadores de Lagrange

DCA-FEEC-UnicampProfFernandoGomide

� vi = variação valor ótimo f quando bi aumenta de 1 unidade

� vi = variável dual

ii b

Lv

∂∂=*

� Limitações –condições de estacionariedade difíceis de resolver

– restrições de desigualdade aumenta a complexidade

– soluções ótimas globais somente para modelos tratáveis

Page 53: Programação Não Linear - DCA | FEEC · Programação Não Linear CT 820 Teoria de Sistemas e Otimização Fuzzy Introdução e Aplicações. 2 ProfFernandoGomide DCA-FEEC-Unicamp

53

Caso geral: condições de Karush-Kuhn-Tucker

� Forma geral PNL diferenciáveis

Eibxg

Libxg

Gibxg

xf

ii

ii

ii

∈∀=∈∀≤

∈∀≥

,)(

,)(

,)( sa

)(min(max)

f, gi : funções diferenciáveis

G, L, E : conjuntos de índices

DCA-FEEC-UnicampProfFernandoGomide

Page 54: Programação Não Linear - DCA | FEEC · Programação Não Linear CT 820 Teoria de Sistemas e Otimização Fuzzy Introdução e Aplicações. 2 ProfFernandoGomide DCA-FEEC-Unicamp

54

DCA-FEEC-UnicampProfFernandoGomide

Folgas complementares

0)]([ =−ν xgb iiipara todas desigualdades i

� Sinais dos multiplicadores

irrestritovi ≤ 0vi ≥ 0max

irrestritovi ≥ 0vi ≤ 0min

i é =i é ≥i é ≤objetivo

Page 55: Programação Não Linear - DCA | FEEC · Programação Não Linear CT 820 Teoria de Sistemas e Otimização Fuzzy Introdução e Aplicações. 2 ProfFernandoGomide DCA-FEEC-Unicamp

55

Condições de Karush-Kuhn-Tucker

� Solução (x, v) satisfaz as condições de KKT se:– f, gi são funções diferenciáveis

– condições das folgas complementares

– restrições no sinais dos multiplicadores

– restrições primais

– equação dos gradientes

� Ponto de KKT– qualquer x para o qual ∃ v que satisfaça as condições KKT

∑ ∇=∇i

ii xfvxg )()(

DCA-FEEC-UnicampProfFernandoGomide

Page 56: Programação Não Linear - DCA | FEEC · Programação Não Linear CT 820 Teoria de Sistemas e Otimização Fuzzy Introdução e Aplicações. 2 ProfFernandoGomide DCA-FEEC-Unicamp

56

não melhoramelhoramax

melhoranão melhoramin

∇f (x)∆x < 0∇f (x)∆x > 0objetivo

∇f (x)∆x = 0 ⇒ necessitamos de mais informação

Característica da direção de busca ∆x

(14.23)

DCA-FEEC-UnicampProfFernandoGomide

xxfxfxxf ∆∇+≈∆+ )()()(

Page 57: Programação Não Linear - DCA | FEEC · Programação Não Linear CT 820 Teoria de Sistemas e Otimização Fuzzy Introdução e Aplicações. 2 ProfFernandoGomide DCA-FEEC-Unicamp

57

Factibilidade da direção de busca ∆x

==≤≤≥≥

∆∇restriçõestodas0

restrições0

restrições0

)( ativas

ativas

xxgi (14.24)

DCA-FEEC-UnicampProfFernandoGomide

xxgxgxxg iii ∆∇+≈∆+ )()()(

Page 58: Programação Não Linear - DCA | FEEC · Programação Não Linear CT 820 Teoria de Sistemas e Otimização Fuzzy Introdução e Aplicações. 2 ProfFernandoGomide DCA-FEEC-Unicamp

58

� As condições de KKT fornecem um teste de primeiraordem para determinar a ausência de direções factíveisque melhoram o valor da função objetivo

� Isto é, x é um ponto de KKT se e somente se não existeuma direção ∆x em x que satisfaz as condições de primeiraordem (14.23) e (14.24)

� Condições KKT são suficientes para ótimo local, isto é:

– se x é um ponto de KKT, então x é ótimo local

� Se modelo de PNL é convexo:

– condições de KKT são suficientes para ótimo global

Condições suficientes de KKT

DCA-FEEC-UnicampProfFernandoGomide

Page 59: Programação Não Linear - DCA | FEEC · Programação Não Linear CT 820 Teoria de Sistemas e Otimização Fuzzy Introdução e Aplicações. 2 ProfFernandoGomide DCA-FEEC-Unicamp

59

� Necessidade:

– se x é uma solução ótima, então x satisfaz KKT

� Solução ótima local é um ponto de KKT se:

– todas as restrições são lineares

– gradientes das restrições ativas no ponto ótimo local são LI

(qualificação de restrição)

Condições necessárias de KKT

DCA-FEEC-UnicampProfFernandoGomide

Page 60: Programação Não Linear - DCA | FEEC · Programação Não Linear CT 820 Teoria de Sistemas e Otimização Fuzzy Introdução e Aplicações. 2 ProfFernandoGomide DCA-FEEC-Unicamp

60

x1

x2

x*

y*

f(x)

g1(x)

g2(x)

3

3

1

1 ∇ f

∇ g1

∇ g2

min ( x1- 3)2 + ( x2 - 3)2

sa 3 x1 + 5 x2 ≤ 155 x1 + 2 x2 ≤ 10

x1, x2 ≥ 0

DCA-FEEC-UnicampProfFernandoGomide

Exemplo

Page 61: Programação Não Linear - DCA | FEEC · Programação Não Linear CT 820 Teoria de Sistemas e Otimização Fuzzy Introdução e Aplicações. 2 ProfFernandoGomide DCA-FEEC-Unicamp

61

min x12 + 4x2

sa ( x1− 1)2 + x22 ≤ 1

( x1+ 1)2 + x22 ≤ 1

x1

x2

x*

f(x)

g1(x)g2(x)

3

3

1

1

∇ f

∇ g1 ∇ g2

DCA-FEEC-UnicampProfFernandoGomide

Exemplo

Page 62: Programação Não Linear - DCA | FEEC · Programação Não Linear CT 820 Teoria de Sistemas e Otimização Fuzzy Introdução e Aplicações. 2 ProfFernandoGomide DCA-FEEC-Unicamp

62

DCA-FEEC-UnicampProfFernandoGomide

Este material refere-se às notas de aula do curso CT 820 Teoria de Sistemas e Otimização Fuzzy: Introdução e Aplicações da Faculdade de Engenharia Elétrica e de Computação da Unicamp e do Centro Federal de Educação Tecnológica do Estado de Minas Gerais. Não substitui o livro texto, as referências recomendadas e nem as aulas expositivas. Este material não pode ser reproduzido sem autorização prévia dos autores. Quando autorizado, seu uso é exclusivo para atividades de ensino e pesquisa em instituições sem fins lucrativos.

Observação