Академический Документы
Профессиональный Документы
Культура Документы
Santos
int(C)
fr(C)
1 2
Programação Não Linear Jorge P. J. Santos Programação Não Linear Jorge P. J. Santos
Observação: cl(C) = int(C) ∪ fr(C). 8. Os Intervalos de Extremos x1 e x2 são os conjuntos definidos por
5. Um conjunto C diz-se Aberto se C = int(C) ] x1, x2[ = {z∈IRn: z = λx1 + (1 − λ)x2, 0 < λ < 1}
λx1 + (1 − λ)x2 ∉ C
x1 x2
3 4
Programação Não Linear Jorge P. J. Santos Programação Não Linear Jorge P. J. Santos
Uma Superfície de Nível é representada por uma equação de forma y = b + c1x1 + c2x2 + ... + cnxn +
x2
5 6
Programação Não Linear Jorge P. J. Santos Programação Não Linear Jorge P. J. Santos
Uma Função Vectorial F de n variáveis com m valores é definida por LIMITES E CONTINUIDADE DE FUNÇÕES
7 8
Programação Não Linear Jorge P. J. Santos Programação Não Linear Jorge P. J. Santos
Observações: As funções lineares e quadráticas são contínuas em IRn Consequência: Se f é contínua em D⊆IRn então
h8: x → | f(x) |
h2: x → f(x) + g(x) é contínua em {x∈D: f(x) ≥ 0}. Além disso se F: IRn → IRm é contínua
em D⊆IRn e || || é uma norma qualquer, então h11: x → || F(x) || é
h3: x → f(x) − g(x)
contínua em D.
são contínuas em D. Teorema 2: Se f: IRn → IR1 é uma função contínua em a∈IRn e f(a) > 0
(iii) A função (< 0), então existe ε > 0 tal que f(x) > 0 (< 0) para todo x∈B(a,ε).
f ( x)
h5: x →
g ( x)
DERIVADAS DIRECCIONAIS
é contínua em {x∈D: g(x) ≠ 0}.
A Derivada Direccional de f: IRn → IR1 em x∈IRn na direcção p∈IRn é o
(iv) Se h é contínua no seu domínio Dh⊆ IR1, então número real
h6: x → h[f(x)] ∂f ( x) f ( x + hp ) − f ( x)
= lim
∂p h →0 h
é contínua em {x∈D: f(x)∈Dh}.
9 10
Programação Não Linear Jorge P. J. Santos Programação Não Linear Jorge P. J. Santos
⎡⎛ ∂f ( x) ⎞ ⎤
∇f(x) = [∇i f(x)] = ⎢⎜⎜ ⎟⎟ ⎥ ∈IRn
⎢⎣⎝ ∂ x i ⎠i =1,2 ,...,n ⎥⎦
Se f: IRn → IR1 é uma função diferenciável em x∈IRn, então
∂f ( x)
= ∇f(x)Tp
∂p
Consequências:
⎡ ∇f ( x)T ⎤
⎢ 1 ⎥
∇F(x) = ⎢ M ⎥
⎢∇f ( x)T ⎥ A função F: IRn → IRm é Continuamente Diferenciável em x se cada fi o
⎣ m ⎦
fôr. Se F é continuamente diferenciável em x∈D, escreve-se F∈C1(D).
com ∇f i(x) os gradientes das m funções fi que constituem F
11 12
Programação Não Linear Jorge P. J. Santos Programação Não Linear Jorge P. J. Santos
Seja f: IRn → IR1 diferenciável em D⊆IRn. Se a função ∇f é diferenciável Se f∈C2(D) então a hessiana é simétrica. É ainda fácil ver que toda a
em x∈D, então existe o jacobiano de ∇f em x que é uma matriz quadrada função quadrática é C2(IRn) e tem hessiana constante e igual à matriz
usada na sua definição. Com efeito, se
⎡ ∂ 2 f ( x) ⎤
∇2f(x) = ⎢ ⎥ .
⎢⎣ ∂xi ∂x j ⎥⎦ i =1,...,n f(x) = b + cTx +
1 T
x Hx
j =1,...,n 2
que se designa por Hessiana de f em x. então ∇2f(x) = H para todo x∈IRn. Em particular, a hessiana de uma
função linear é nula para cada x∈IRn.
∂f ( x + hp ) ∂f ( x)
2 − Uma função f: IRn → IR diz-se Convexa em D⊆IRn convexo se para
∂ f ( x) ∂p ∂p
= lim quaisquer x1,x2∈D,
2
∂p h →0 h
A função f: IRn → IR1 é Duas Vezes Continuamente Diferenciável em x se f(λx1 + (1 − λ)x2) ≥ λf(x1) + (1 − λ)f(x2) ∀λ∈[0,1]
a função vectorial ∇2f: IRn → IRn×n é contínua em x. Se f é duas vezes
continuamente diferenciável em todo x∈D⊆ IRn, escreve-se f∈C2(D).
13 14
Programação Não Linear Jorge P. J. Santos Programação Não Linear Jorge P. J. Santos
Uma função f: IRn → IR diz-se Estritamente Côncava em D⊆IRn convexo Das definições apresentadas podemos estabelecer os seguintes resultados
Função estritamente convexa Função convexa não estritamente convexa (ii) Sejam x1,x2∈IRn e λ∈[0,1]. Como f é convexa, então
15 16
Programação Não Linear Jorge P. J. Santos Programação Não Linear Jorge P. J. Santos
Se f é uma função de uma variável, então ∇f(x−) = f’(−x ) e a condição Consequência: A∈PD (PSD) ⇔ (−A)∈ND (NSD)
f(x) > f(x−) + f’(−x )(x −x−) para todo x∈D − {x−}
Propriedades:
(i) Uma matriz A, simétrica de ordem n, é positiva definida (positiva
Isto é a recta tangente em P(x−,f(−x )) está abaixo da curva y = f(x).
semi-definida) se e só se admite uma factorização A = LDLT,
com L uma matriz triangular inferior com uns na diagonal
17 18
Programação Não Linear Jorge P. J. Santos Programação Não Linear Jorge P. J. Santos
Teorema 5: Seja D⊆IRn um conjunto aberto e convexo e f∈C2(D). Exemplo: Consideremos por exemplo a função
⎧ ∂ 2 f ( x)
⎪ = 12 x12
∂f ( x ) ⎪ 2
= 4x13 + 2x2 ⇒ ⎨ ∂x1
Teorema 6: Seja D⊆IRn um conjunto aberto e convexo. ∂x1 2
⎪ ∂ f ( x)
(i) Se f∈C1(D), então f é côncava (estritamente côncava) em D se e ⎪ ∂x ∂x = 2
⎩ 2 1
Demonstração:
P12∇2f(x)P12
Tendo em conta os teoremas 5 e 6 e as relações entre funções convexas e
é uma matriz SIND. Portanto ∇2f(x) é SIND e a função é não
côncavas, basta provar que se f é estritamente convexa quadrática, então H
convexa e não côncava em
é SPD. Suponhamos que tal não acontece. Como toda a função
1 1
D={(x1,x2)∈IR2:6x12− 1<0}={(x1,x2)∈IR2: x1> − ∧ x1< } estritamente convexa é convexa, então, por (ii), H é SPSD. Mas H não é
6 6
SPD e portanto H é singular, ou seja, existe x− ≠ 0 tal que Hx− = 0. Como f
é estritamente convexa,
Observação: Apesar deste critério da hessiana ser de muito maior f(λx + (1 − λ)x−) < λf(x) + (1 − λ)f(−x ) para todo o λ∈]0,1[.
aplicação prática do que a definição para verificar se uma função é
Mas para x = 0 tem-se
convexa ou côncava, é em geral difícil de estudar a convexidade ou a
f(λ0 + (1 − λ)x−) =
concavidade de uma função usando este processo. Com efeito, a expressão
1
da hessiana depende em geral do ponto x = (x1,x2,...,xn)T e é bastante = b + cT(λ0 + (1 − λ)x−)+ (λ0 + (1 − λ)x−)TH(λ0 + (1 − λ)x−) =
2
difícil estudar todos os casos onde ∇2f(x) é positiva ou negativa 1
= b + (1 − λ)cTx− + (1 − λ)2x−THx− = b + (1 − λ)cTx−
semi-definida. 2
21 22
Programação Não Linear Jorge P. J. Santos Programação Não Linear Jorge P. J. Santos
= λf(0) + (1 − λ)f(x−)
para qualquer λ∈]0,1[, o que é impossível. Donde H é SPD. f: IRn → IR diz-se Limitada Inferiormente num conjunto D⊆IRn se
1 2
f(x1,x2,x3) = 2 + x1 − x3 + x + x22 + 4x32+ x1x2 − x1x3. f: IRn → IR diz-se Limitada num conjunto D⊆IRn se
2 1
T
⎡ 1 1 − 1⎤ ⎡ 1 ⎤ ⎡1 ⎤ ⎡ 1 ⎤
H= ⎢ 1 2 0⎥ = ⎢ 1 1 ⎥ ⎢ 1 ⎥ ⎢ 1 1 ⎥ = LDLT
⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥
S∈IR diz-se Supremo da função f num conjunto D⊆IRn se S é o menor dos
⎣⎢− 1 0 8⎦⎥ ⎢⎣− 1 1 1⎦⎥ ⎣⎢ 6⎦⎥ ⎣⎢− 1 1 1⎦⎥
números reais b tais que f(x) ≤ b. Então S é supremo de f em D se
Como dii > 0, i=1,2,3 então H é SPD e f é estritamente convexa em IR3.
(i ) f (x ) ≤ S ∀x∈D.
Por outro lado a função
(ii) ∀θ > 0, ∃y∈D: f(y) > S − θ.
g(x1,x2) = x1x2
O supremo de f representa-se por
não é convexa nem côncava em IR2, pois
S = sup f(x)
⎡0 1 ⎤
H= ⎢ ⎥ é SIND.
⎣1 0⎦ x∈D
23 24
Programação Não Linear Jorge P. J. Santos Programação Não Linear Jorge P. J. Santos
I∈IR diz-se Ínfimo da função f num conjunto D⊆IRn se I é o maior dos Observações:
números reais a tais que f(x) ≥ a. Então I é ínfimo de f em D se 1. Só as funções limitadas inferiormente (superiormente) num
conjunto D⊆IRn podem ter mínimo (máximo).
(i) f(x) ≥ I ∀x∈D.
2. Uma função f pode ser limitada superiormente (inferiormente) e
(ii) ∀θ > 0 ∃y∈D: f(y) < I + θ. não ter máximo (mínimo).
I = inf f(x) Exemplo: f(x) = ex é limitada inferiormente por zero e não tem mínimo em
IR
x∈D
∃x−∈D: f(x−) = S
∃x−∈D: f(x−) = I Se f é uma função contínua num conjunto compacto D⊆IRn, então f é
limitada em D e tem máximo e mínimo nesse conjunto.
Consequências:
Forma Geral de um Problema de Optimização
(i) x− é um máximo de f em D ⇔ −x ∈D e f(x) ≤ f(x−) ∀x∈D.
Minimize f(x)
(ii) x− é um mínimo de f em D ⇔ x−∈D e f(x) ≥ f(−x ) ∀x∈D.
sujeito a x∈D⊆IRn
25 26
Programação Não Linear Jorge P. J. Santos Programação Não Linear Jorge P. J. Santos
com D um subconjunto de IRn e f: IRn → IR1. Como iremos ver mais à Observação: Este teorema não garante a existência de mínimo global para
frente o conjunto D não é em geral compacto. Nesses casos é difícil uma função estritamente convexa
garantir a existência de mínimo global para esse programa.
Minimize f(x)
Exemplo: Consideremos o programa.
sujeito a x∈D⊆IRn
Min x2
tem um mínimo (máximo) global, então esse mínimo (máximo) é único. x∈ IR1
27 28
Programação Não Linear Jorge P. J. Santos Programação Não Linear Jorge P. J. Santos
sujeito a x∈D
Demonstração: Caso de uma função convexa.
com D⊆ IRn e seja x−∈D.
Suponhamos, por absurdo, que −x não é mínimo global. Como x− é um
mínimo local de f
−
Diz-se que p∈IRn é uma Direcção Admissível em x− se existe λ > 0 tal que
∃ε > 0: f(x−) ≤ f(x) ∀x∈B(x−,ε)∩D.
−
x− + λp∈D para todo 0 < λ ≤ λ .
Além disso como x− não é mínimo global, f(x*) ≤ f(x−) para certo x*∈D.
D
Como D é convexo, então [x−,x*] ⊂ D. Se p1
D
x^∈B(x−,ε)∩[x−, x*] x* x−
p
então existe λ∈]0,1[ tal que ε
x− x^
x^ = λx− + (1 − λ) x*
29 30
Programação Não Linear Jorge P. J. Santos Programação Não Linear Jorge P. J. Santos
Seja f∈C1(S), com S⊆IRn um conjunto aberto contendo D. Diz-se que −x ∈D Resolução gráfica
é um Ponto Estacionário de f em D se
1 ∇f(x−)
∇f(−x )Tp ≥ 0
D
para toda a direcção admissível p. x− x− = (1/2,1/2) é mínimo global (e local)
Teorema 11: Se f∈C1(S), com S⊆IRn um conjunto aberto contendo D, É fácil de ver que qualquer direcção admissível p faz um ângulo agudo α
x∈IR1
31 32
Programação Não Linear Jorge P. J. Santos Programação Não Linear Jorge P. J. Santos
Então f’(x) = 3x2, f’(0) = 0 e 0⋅p ≥ 0 para todo p∈IR1. Portanto f tem um CONDIÇÕES DE OPTIMALIDADE PARA CONJUNTOS
ponto estacionário em x− = 0. No entanto esse número real não é mínimo ABERTOS E CONVEXOS
local, pois a função é estritamente crescente em IR1. Teorema 13: Se f∈C1(D), com D⊆IRn um conjunto aberto e convexo,
Demonstração: ⎧1 se i = j
eij = ⎨ .
⎩0 se i ≠ j
Devido ao teorema 11, basta provar que se −x é ponto estacionário de f em
D, então é mínimo global de f em D. Mas se f é convexa, então pelo Como D é aberto e convexo, então ei e (−ei) são direcções admissíveis
teorema 4, para todo i=1,2,...,n. Então
para todo x∈D. Além disso ∇f(x−)T(x − x−) ≥ 0, por x− ser ponto estacionário. −∇i f(x−) = ∇f(x−)T(−ei) ≥ 0
Donde f(x) ≥ f(x−) para todo x∈D e x− é mínimo global de f em D.
Donde ∇i f(x−) = 0 para todo i=1,2,...,n e ∇f(x−) = 0. Inversamente, se
33 34
Programação Não Linear Jorge P. J. Santos Programação Não Linear Jorge P. J. Santos
Teorema 14: Seja f∈C1(D), com D⊆IRn um conjunto convexo e aberto. Observação: Apesar de muito útil para indicar pontos estacionários que
não são mínimos locais, esta condição não pode ser usada
(i) Se x− é mínimo local de f em D então ∇f(x−) = 0. afirmativamente. Com efeito, se considerarmos novamente a função
(ii) Se f é convexa em D, então −x é mínimo global de f em D se e só f: x → x3, então x = 0 satisfaz as duas condições do teorema anterior mas
Consequência: A determinação de um mínimo global de uma função Teorema 16: Seja f∈C2(D), com D⊆IRn aberto e convexo. Se
35 36
Programação Não Linear Jorge P. J. Santos Programação Não Linear Jorge P. J. Santos
Então Donde:
Portanto
Funções Quadráticas Estritamente Convexas: H é SPD e portanto não
⎡2 0⎤
∇2f(0,0) = ⎢ ⎥ é PD singular, pelo que o sistema Hx = −c tem solução única. Donde:
⎣0 2⎦
1 T
f(x) = b + cTx + x Hx
2 Exemplo: Consideremos a função quadrática
e D⊆IRn aberto e convexo. Então como vimos anteriormente f(x1,x2,x3) = x12 + x22 + x32 + x1 − x2 + 2x3.
∇f(x) = c + Hx
37 38
Programação Não Linear Jorge P. J. Santos Programação Não Linear Jorge P. J. Santos
Então f é estritamente convexa e quadrática em IR3. Além disso H = 2I, Tendo em conta a relação entre funções convexas e côncavas e os
Donde x− = (1/2,−1/2,1) é o único mínimo global de f em IR3. Contudo a um máximo global único num conjunto convexo e fechado D⊆IRn.
função dada não tem mínimo global no conjunto aberto definido pela
restrição x1 + x2 + x3 > 3, pois −x não pertence a esse conjunto.
MÉTODO DE NEWTON PARA SISTEMAS DE EQUAÇÃOES
NÃO LINEARES
⎧ f1( x1 , x2 ,..., xn ) = 0
⎪ f ( x , x ,..., x ) = 0
⎪ 2 1 2 n
Exemplo: Consideremos o programa ⎨ ⇔ F(x) = 0
⎪ M
Minimize x12 + 2x22 + ... + nxn2 ⎪⎩ f n ( x1 , x2 ,..., xn ) = 0
39 40
Programação Não Linear Jorge P. J. Santos Programação Não Linear Jorge P. J. Santos
Método de Newton ⎡1 1 ⎤ 0 ⎡ − 3 ⎤
∇F(x0)p0 = −F(x0) ⇔ ⎢2 10⎥ p = ⎢− 17⎥
⎣ ⎦ ⎣ ⎦
Dado x0∈ IRn
A solução desse sistema é
Para k = 0,1,2,...
p0 = [−13/8, −11/8]T
Resolva o sistema de equações lineares
Portanto o próximo ponto gerado pelo algoritmo é
∇F(xk)pk = −F(xk)
⎡1⎤ ⎡− 13/8⎤ ⎡− 0.625⎤
Faça xk+1 = xk + pk x1 = x0 + p 0 = ⎢ ⎥ + ⎢ ⎥=⎢ ⎥
⎣5⎦ ⎣− 11/8⎦ ⎣ 3.625⎦
Termine com Critério de Paragem a definir
Mas
⎡ 1 1 ⎤ ⎡ 0 ⎤
∇F(x1) = ⎢ ⎥, F(x1) = ⎢ ⎥
Exemplo: Consideremos o seguinte sistema de duas equações a duas ⎣− 5/4 29/4⎦ ⎣145/32⎦
⎧ x1 + x2 = 3 ∇F(x1)p1 = −F(x1)
⎨ 2 2
⎩ x1 + x2 = 9
tem solução
Seja x0 = (1,5) o ponto inicial. Então
p1 = [145/272, −145/272]T
⎡ x1 + x2 − 3 ⎤ ⎡3⎤
F (x ) = ⎢ 2 2 ⎥ ⇒ F(x0) = ⎢ ⎥
⎣ x1 + x2 − 9⎦ ⎣17⎦ Donde
⎡− 0.092⎤
⎡ 1 1 ⎤ ⎡1 1⎤ x2 = x1 + p 1 = ⎢ ⎥
∇F(x) = ⎢ ⎥ ⇒ ∇F(x0) = ⎢2 10⎥ ⎣ 3.092⎦
⎣2 x1 2 x2 ⎦ ⎣ ⎦
e há que resolver o sistema Este vector já está bastante próximo da raiz x− = (0,3) do sistema de
equações. O algoritmo prosseguiria agora até à obtenção de um valor
aproximado da raiz −x .
41 42
Programação Não Linear Jorge P. J. Santos Programação Não Linear Jorge P. J. Santos
Vantagens: O método de Newton é extremamente rápido desde que se ALGORITMOS DE GRADIENTES PARA OPTIMIZAÇÃO SEM
conheça um bom ponto inicial. RESTRIÇÕES
(iii) É necessário resolver um sistema com a matriz ∇F(xk) em cada com f∈C1(IRn).
iteração
máquina
43 44
Programação Não Linear Jorge P. J. Santos Programação Não Linear Jorge P. J. Santos
α
Determinação da Direcção αk = , t = 0,1,2,...
θt
A direcção descendente pk é normalmente calculada a partir de com α− > 0 e dado e θ um número inteiro maior que um. É de notar que β,
f(xk) e ∇f(xk)Tpk só são calculados uma vez, pelo que cada tentativa se
Hkpk = −∇f(xk)
resume ao cálculo do valor da função em
com Hk uma matriz SPD convenientemente escolhida. Com efeito, pk é α k
x−k+1 = xk + p
θt
descendente, pois Hk−1∈SPD e
e à comparação entre f(x−k+1) e o segundo membro da desigualdade que αk
∇f(xk)Tpk = −∇f(xk)THk−1∇f(xk) < 0 tem de satisfazer. É ainda importante acrescentar que a constante β é um
número real positivo e menor do que um. Normalmente usa-se θ = 2, mas
Na análise de convergência deste tipo processos é imperioso que ∇f(xk)Tpk
valores superiores de θ são muitas vezes mais apropriados. Além disso β é
seja suficientemente negativo e ||pk|| = 0 apenas quando ||∇f(xk)|| = 0.
normalmente escolhido no intervalo [10−4, 10−1].
45 46
Programação Não Linear Jorge P. J. Santos Programação Não Linear Jorge P. J. Santos
⎡ 4⎤
∇f(x0) = ⎢ ⎥ α0 =
1
⎣ 4⎦ 2
Portanto
Então
⎡ − 4⎤
p0 = −∇f(x0) = ⎢ − 4⎥
⎣ ⎦ ⎛ ⎡0 ⎤ ⎞ 1 1
f(x0 + α0p0) = f ⎜⎜ ⎢ ⎥ ⎟⎟ = 2 ≤ 10 + × ×(−32)
e ⎝ ⎣1⎦ ⎠ 10 2
T
⎡ 4⎤ ⎡ − 4⎤
∇f(x ) p = ⎢ ⎥ ⎢ ⎥ = −32
0 T 0
e portanto α0 =
1
é aceite. Assim
⎣ 4⎦ ⎣ − 4⎦ 2
47 48
Programação Não Linear Jorge P. J. Santos Programação Não Linear Jorge P. J. Santos
Critério da Minimização Como ∇f(xk)Tpk < 0, dois casos podem acontecer e são discutidos a
seguir
Este processo consiste em determinar αk a partir de
1 T
f(x) = b + cTx + x Hx Chegamos assim à conclusão que se f é quadrática, então o Critério da
2
Minimização determina αk a partir do seguinte processo
Com efeito tem-se
⎧ α se ( p k )T Hp k ≤ 0
1 ⎪
f(xk + αpk) = b + cT(xk + αpk) + (xk + αpk)TH(xk + αpk) αk = ⎨ ∇f ( x k )T p k
2 ⎪− se ( p k )T Hp k > 0
k T k
⎩ ( p ) Hp
α2
= f(xk) + α[(c + Hxk)Tpk] + (pk)THpk A determinação de αk é então muito vantajosa em relação ao Critério de
2
Armijo, pois só necessita da determinação do valor de (pk)THpk (além de
α 2
= f(xk) + α[∇f(xk)Tpk] + (pk)THpk ∇f(xk)Tpk, que é também requerido pelo Critério de Armijo). Daí o Critério
2
da Minimização ser normalmente usado em funções quadráticas e lineares.
49 50
Programação Não Linear Jorge P. J. Santos Programação Não Linear Jorge P. J. Santos
e portanto
Maximize |∇f(xk)Tp|
sujeito a ||p||2 = 1 Exemplo: Consideremos o programa quadrático
|∇f(xk)Tp| = ||∇f(xk)||2 ||p||2 |cos θ| O gradiente e a hessiana da função são dados por
⎡ 8 x1 − 4 x2 ⎤ ⎡ 8 − 4⎤
Como |cos θ| = 1 se e só se θ = 0 ou θ = π então os vectores ∇f(xk) e p ∇f(x) = ⎢ ⎥, ∇2f(x) = H = ⎢
⎣− 4 x1 + 4 x2 ⎦ ⎣− 4 4⎥⎦
têm de ser colineares, isto é
Se x0 = (2,3), então
p = λ∇f(xk)
⎡ 4⎤ ⎡− 4⎤
para certo λ ≠ 0. Mas ∇f(x0) = ⎢ ⎥ ⇒ p0 = ⎢ ⎥
⎣ 4⎦ ⎣− 4⎦
51 52
Programação Não Linear Jorge P. J. Santos Programação Não Linear Jorge P. J. Santos
⎡ 2 ⎤ 1 ⎡ − 4 ⎤ ⎡0 ⎤
x1 = x0 + α0p0 = ⎢ ⎥ + ⎢ ⎥ = ⎢ ⎥
⎣3⎦ 2 ⎣− 4⎦ ⎣1⎦ CONDIÇÕES COMPLEMENTARES PARA PONTO
ESTACIONÁRIO
Na segunda iteração começa-se por calcular o gradiente em x1 e tem-se
Consideremos o programa não linear
⎡ − 4⎤
∇f(x1) = ⎢ ⎥ ≠ 0
⎣ 4⎦ Minimize f(x)
Sejam b∈IRm, A uma matriz de ordem m×n com linhas Ai, i = 1,...,m e As condições de ponto estacionário (condições de Kuhn-Tucker) são as
seguintes
X = {x∈IRn: Aix = bi, i = 1,...,m1, Ajx ≥ bj, j = m1+1,…,m}
⎡x2 ⎤ ⎡ 1 ⎡λ ⎤
1 1 0⎤ ⎢ 1 ⎥
⎢ 2 2 ⎥ ⎢ λ
Deste modo, x− é ponto estacionário de f em X se e só se existir um vector ⎢2 x1x2 + 3 x2 x3 ⎥ = ⎢ 1 0 0 1⎥ ⎢ 2 ⎥
⎥ ⎢w ⎥
− − ⎢ x3 ⎥ ⎢ 1 −2 0⎥⎦ ⎢ 1 ⎥
λ ∈IRm tal que (x−,λ ) é solução do problema complementar ⎢⎣ 2 ⎥⎦ ⎣ 0
⎣ w2 ⎦
∇f(x) = ATλ x 1 + x2 + x3 = 3
A jx ≥ b j λ2(x1 − 2x3 − 2) = 0
λj ≥ 0, x1 ≥ 0, x2 ≥ 0, λ2 ≥ 0, w1 ≥ 0, w2 ≥ 0
∇f(x) = ATλ
Exemplo: Consideremos o seguinte programa não linear Ax = b
x2 ≥ 0 λ≥0
55 56
Programação Não Linear Jorge P. J. Santos Programação Não Linear Jorge P. J. Santos
CONDIÇÕES DE OPTIMALIDADE PARA PROGRAMAS COM Mas (x− + λp)∈X se e só se A(x− + λp) = b. Como Ax− = b, então Ap = 0.
RESTRIÇÕES LINEARES DE IGUALDADE Assim as direcções admissíveis para programas com restrições lineares de
onde x∈IRn, A é uma matriz de ordem m×n com característica m<n, b∈IRm
R(AT) = {v: v = ATλ, λ∈IRm}
e f∈C1(D) com D um subconjunto aberto e convexo de IRn que contém
o subespaço imagem de AT. Então tem-se
X = {x∈IRn: Ax = b}
R(AT) ⊥ N(A)
Se f∈C2(IRn), pelos os teoremas 11 e 12, tem-se
IRn = R(AT) ⊕ N(A)
(i) Se f é convexa em X, então x− satisfaz as Condições de
onde ⊥ e ⊕ representam ortogonalidade e soma directa de subespaços.
Kuhn-Tucker se e só se x− é mínimo global de f em X.
Como dim(R(AT)) = car(A) = m, então
(ii) Se −x é mínimo local de f em X, então x− satisfaz as condições de
dim(N(A)) = n − m
Kuhn-Tucker e pT∇2f(x−)p ≥ 0 para toda a direcção admissível p.
onde dim(B) representa a dimensão do subespaço B. Portanto N(A) tem
(iii) Se −x satisfaz as condições de Kuhn-Tucker e pT∇2f(x−)p > 0 para
uma base com (n − m) vectores de IRn, que constituem uma matriz
toda a direcção admissível p, então x− é mínimo local de f em X.
Z = [z1,…,zn−m]∈IRn×(n−m)
57 58
Programação Não Linear Jorge P. J. Santos Programação Não Linear Jorge P. J. Santos
Demonstração: pT∇2f(x−)p ≥ 0
Se ∇f(x) = ATλ, então para toda a direcção admissível p. Mas se p é admissível então tem a forma
p = Zd, com d∈IRn−m. Portanto
ZT∇f(x) = ZT(ATλ) = (AZ)Tλ = 0Tλ = 0
(Zd)T∇2f(x−)(Zd) ≥ 0
Por outro lado, se ZT∇f(x) = 0, então ∇f(x) é ortogonal a N(A) e portanto
∇f(x)∈R(AT). Donde para todo o vector d∈IRn−m. ou seja,
ZT∇f(x) = 0
Exemplo: Consideremos o seguinte programa não linear
Ax = b
Minimize f(x1,x2,x3) = x14 + x24 + x34 − 4x1x2x3
Teorema 20: Seja f∈C2(D), com D um conjunto aberto e convexo que
Sujeito a x 1 + x2 + x3 = 3
contém X = {x∈IRn: Ax = b}.
Como
(i) Se x− é mínimo local de f em X, então x− é ponto estacionário e
ZT∇2f(x−)Z é PSD. ⎡4 x 3 − 4 x x ⎤
2 3
⎢ 1 ⎥
3
∇f(x) = ⎢ 4 x2 − 4 x1x3 ⎥
(ii) Se x− é ponto estacionário de f em X e ZT∇2f(x−)Z é PD, então −x é ⎢ 3 ⎥
⎢⎣ 4 x3 − 4 x1x2 ⎥⎦
mínimo local de f em X.
59 60
Programação Não Linear Jorge P. J. Santos Programação Não Linear Jorge P. J. Santos
− ⎡ 12 x 2 − 4 x3 − 4 x2 ⎤
Então (x−,λ ) é solução de um sistema de 4 equações e 4 incógnitas. Agora ⎢ 1
⎥
∇ f(x) = ⎢ − 4 x3
2 12 x22 − 4 x1 ⎥
vamos determinar a matriz Z∈IR3×2 constituída por dois vectores ⎢− 4 x − 4 x1 12 x32 ⎥⎥
⎣⎢ 2 ⎦
linearmente independentes de IR3 e que satisfaz AZ = 0. Então
e
⎡ 1 0⎤
Z = ⎢− 1 1⎥ ⎡ 12 − 4 − 4⎤ ⎡ 1 0⎤
⎢ ⎥ ⎡ − ⎤
ZT∇2f(x−)Z = ⎢
1 1 0 ⎢− 4 12 − 4⎥ ⎢− 1 1⎥ =
⎣⎢ 0 − 1⎦⎥ ⎥
1 − 1⎦ ⎢ ⎥⎢ ⎥
⎣0
⎢⎣− 4 − 4 12⎥⎦ ⎢⎣ 0 − 1⎥⎦
serve os nossos propósitos, pois tem-se
⎡ 16 0⎤
⎡ 1 − 1 0⎤ ⎢ ⎡ 32 − 16⎤ ⎡ 2 − 1⎤
16⎥ = ⎢
AZ = 0, car(Z) = 2
=⎢ ⎥ − 16 ⎥ = 16 ⎢ ⎥
⎣0 1 − 1⎦ ⎢ ⎥ ⎣− 16 32⎦ ⎣ − 1 2⎦
Mas ⎢⎣ 0 − 16⎥⎦
⎡4 x 3 − 4 x x ⎤ Portanto
2 3
⎡ 1 − 1 0⎤ ⎢ 3
1 ⎥ ⎡4 x 3 − 4 x2 x3 − 4 x 3 + 4 x1x3 ⎤
Z ∇f(x) = ⎢ ⎢ − 1 3⎥ = ⎢ 3 ⎥
T 4 x 4 x x 1 2
− ⎥ 2 3 ZT∇2f(x−)Z∈PD
⎣ 0 1 1⎦⎢ 3 ⎥ ⎢⎣ 4 x2 − 4 x1x3 − 4 x3 + 4 x1x2 ⎥⎦
⎢⎣ 4 x3 − 4 x1x2 ⎥⎦
e x− é mínimo local de f em X.
e x− é ponto estacionário de f em X se é solução do sistema
61 62
Programação Não Linear Jorge P. J. Santos Programação Não Linear Jorge P. J. Santos
Teorema 22: Se f∈C2(D), com D um conjunto aberto e convexo que CONDIÇÕES DE OPTIMALIDADE PARA PROGRAMAS COM
contém X. Então RESTRIÇÕES LINEARES DE DESIGUALDADE
1 T
Teorema 23: Seja f uma função definida por f(x) = b + cTx + x Hx e x− X = {x∈IRn: Ax ≥ b}
2
um ponto estacionário de f em X, isto é, x− verifica Diz-se que uma restrição de desigualdade Aix ≥ bi é Activa em x− se se
⎧⎪Z T Hx = − Z T c ⎧⎪ Hx − AT λ = −c verificar como igualdade nesse ponto, isto é, se Ai x− = bi. De outro modo
⎨ ⇔ ⎨
⎪⎩ Ax = b ⎪⎩ Ax = b diz-se Inactiva em x− e tem-se Aix− > bi.
Então:
(i) Se ZTHZ∈PSD, então x− é mínimo global de f em X. Exemplo: A figura a seguir ilustra este conceito de restrição activa para
X = {x∈IR2: x1 + x2 ≤ 1, xi ≥ 0, i=1,2}
(ii) Se ZTHZ∈NSD, então x− é máximo global de f em X. x2
x1 − 2 restrições activas x1 + x2 ≤ 1 e x2 ≥ 0 1
(iii) Se ZTHZ∈IND, então x− é ponto sela de f em X. x2
x2 − 1 restrição activa x1 + x2 ≤ 1 x3 x1
0 1 x1
x3 − 0 restrições activas
63 64
Programação Não Linear Jorge P. J. Santos Programação Não Linear Jorge P. J. Santos
Seja x− um ponto estacionário de f em X = {x∈IRn: Ax ≥ b}. Então existe com Z a matriz de ordem n×(n−t) constituída por vectores de uma base do
− − −
λ ∈IRm tal que (x−,λ ) é solução do sistema (condições de Kuhn-Tucker) subespaço nulo de A (quando t<n). Portanto na determinação de um ponto
estacionário escolhe-se um conjunto de t restrições activas e considera-se a
∇f(x) = ATλ −
matriz A definida pelas respectivas restrições activas. Então há dois casos:
Ax ≥ b
λi(Aix − bi) = 0, i = 1,…,m − −
(i) Se t ≥ n, resolver o sistema A x = b .
λ≥0
− −
(ii) Se t < n, resolver o sistema definido por ZT∇f(x) = 0, A x = b .
Se Aix ≥ bi é inactiva em x−, então Ai x− − bi > 0 e portanto λi = 0. Então
Uma vez determinado o vector x−, calculam-se os multiplicadores λ a partir
todos os multiplicadores correspondentes a restrições inactivas em x− têm
de
de ser nulos. Seja ACT o conjunto de índices correspondentes às restrições
−
activas em x− e A Tλ = ∇f(x−)
− − e x− é ponto estacionário se e só se λ ≥ 0.
A = [Ai]i∈ACT, b = [bi]i∈ACT
activas em x−. Por isso λ∈IRt, com t o número de índices de ACT (isto é,
(i) Para haver um ponto estacionário no interior, isto é, para t = 0, tem de
−
t = |ACT|). Além disso ∇f(x) = A Tλ é equivalente a acontecer
ZT∇f(x) = 0 ZT∇f(x) = 0
65 66
Programação Não Linear Jorge P. J. Santos Programação Não Linear Jorge P. J. Santos
⎡ 2x ⎤ ⎡0 ⎤
ZT∇f(x) = ∇f(x) = ⎢ 1 ⎥ = 0 ⇒ x− = ⎢ ⎥ (iii) Consideremos finalmente a restrição x1 + x2 ≤ 1 como possível
⎣ 2 x2 ⎦ ⎣0 ⎦
restrição activa de um ponto estacionário. Como
Como esse vector não pertence a X, não há qualquer ponto estacionário no
x1 + x 2 ≤ 1 ⇔ −x1 − x2 ≥ −1
interior de X.
(ii) Consideremos agora a restrição x1≥ 1/2 como activa de um possível tem-se
− − ⎡0 ⎤
b = 1/2, A = [1 0] e Z= ⎢ ⎥ e
⎣1⎦
⎡ 1⎤
Donde Z= ⎢ ⎥
⎣−1⎦
⎧ ⎡0 ⎤ T ⎡ 2 x ⎤
⎧⎪Z T ∇f ( x) = 0 ⎪⎪⎢ ⎥ ⎢ 1 ⎥ = 0 ⎧⎪ x2 = 0 A determinação de x− é feita a partir de
⎨ ⇔ ⎨⎣1⎦ ⎣2 x2 ⎦ ⇔ ⎨x = 1
⎪⎩ A x = b ⎪x = 1 ⎪⎩ 1 2 ⎧⎡ 1⎤T ⎡ 2 x ⎤
⎪⎩ 1 2 ⎧⎪Z T ∇f ( x) = 0 ⎪⎢ ⎥ ⎢ 1 ⎥ = 0 ⎧ x1 = x2
⎨ ⇔ ⎨⎣− 1⎦ ⎣2 x2 ⎦ ⇔ ⎨
⎪⎩ A x = b ⎪− x − x = −1 ⎩ x1 + x2 = 1
⎡1 ⎤ ⎩ 1 2
ou seja, x− = ⎢ 2 ⎥ . Para verificar se x− é ponto estacionário de f em X tem de
⎣0⎦ Donde x− = (1/2,1/2) é o único candidato a ponto estacionário. Além disso
se calcular o multiplicador λ correspondente à restrição activa x1 = 1/2, a
− ⎡− 1⎤ ⎡1⎤
partir de A Tλ = ∇f(x−) ⇔ ⎢− 1⎥ λ = ⎢1⎥ ⇒ λ = −1 < 0
⎣ ⎦ ⎣⎦
− ⎡1⎤ ⎡1⎤
A Tλ = ∇f(x−) ⇔ ⎢0 ⎥ λ = ⎢0 ⎥ ⇔ λ=1 Como λ < 0, x− não é ponto estacionário.
⎣ ⎦ ⎣ ⎦
67 68
Programação Não Linear Jorge P. J. Santos Programação Não Linear Jorge P. J. Santos
Teorema 23: Seja f∈C2(D), com D um conjunto aberto e convexo que Para verificar que x− é ponto estacionário, calcula-se λ por
contém X = {x∈IRn: Ax ≥ b}. Se x− é mínimo local de f em X, então x− é
− ⎡− 1 0⎤ ⎡ λ1 ⎤ ⎡− 2⎤
A Tλ = ∇f(x−) ⇔ ⎢− 1 1⎥ ⎢λ ⎥ = ⎢ 0⎥
ponto estacionário de f em X e ZT∇2f(x−)Z é PSD (se Z existir). ⎣ ⎦ ⎣ 2⎦ ⎣ ⎦
Donde
todos os multiplicadores associados às restrições activas em x− são e x− é ponto estacionário. Como λi > 0, i=1,2, x− é mínimo local.
positivos e se ZT∇2f(x−)Z∈PD (se Z existir), então x− é mínimo local de f em
X.
69 70
Programação Não Linear Jorge P. J. Santos Programação Não Linear Jorge P. J. Santos
ZT∇f(x) = 0 ∇f ( x k )T p
Minimize
Ax = b p2
Sujeito a Ap = 0
com Z a base do subespaço nulo de A.
p∈IRn
[ZT∇f(xk)]Td < 0 Tal como vimos em optimização não linear sem restrições, tem-se
⎧⎪Z T Zd = − Z T ∇f ( x k )
⎨ k
⎪⎩ p = Zd
Determinação da direcção descendente pk : Método da Descida Máxima
É de notar que a matriz ZTZ é SPD, pois Z tem característica igual a (n−m).
A direcção descendente é determinada a partir do programa
Portanto
71 72
Programação Não Linear Jorge P. J. Santos Programação Não Linear Jorge P. J. Santos
e
OPTIMIZAÇÃO NÃO LINEAR COM RESTRIÇÕES LINEARES
⎡ 1⎤ ⎡− 1⎤ DE DESIGUALDADE
p0 = Zd = ⎢ ⎥ (−1) = ⎢ ⎥
⎣−1⎦ ⎣ 1⎦
Algoritmo de Restrições Activas:
Para determinar α0, tem-se
Passo 0 – Seja dado x0∈K e seja I(x0) o conjunto dos índices das linhas de
T A correspondentes às restrições activas em x0. Se |I(x0)| < n determine Z0
⎡ 2⎤ ⎡− 1⎤
∇f(x0)Tp0 = ⎢0⎥ ⎢ 1⎥ = −2
⎣ ⎦ ⎣ ⎦ constituída pelos vectores de uma base do subespaço nulo de
−
⎡− 1⎤
T
⎡2 0⎤ ⎡− 1⎤ ⎡− 1⎤ ⎡− 2⎤
T A = [Ai]i∈I(x0). Faça k = 0.
(p0)THp0 = ⎢ 1⎥ ⎢0 2⎥ ⎢ 1⎥ = ⎢ 1⎥ ⎢ 2⎥ = 4
⎣ ⎦ ⎣ ⎦⎣ ⎦ ⎣ ⎦ ⎣ ⎦
73 74
Programação Não Linear Jorge P. J. Santos Programação Não Linear Jorge P. J. Santos
− xk+1 = xk + αkpk
A Tλ = ∇f(xk)
Faça I(xk) = I(xk) − {r} e actualize Zk com mais uma coluna. Vá para o
Passo 2.
Minimize f(x)
Sujeito a Aix = bi, i∈I(xk)
⎧ ⎧⎪ A x k − b ⎫
⎪min⎨ i i : i ∉ I ( x k ) e A p k < 0⎪
i ⎬
αmax = ⎨ ⎪⎩ − Ai p k ⎪⎭
⎪ k k
⎩+ ∞ se Ai p ≥ 0 para todo i ∉ I ( x )
75 76