Вы находитесь на странице: 1из 38

Programação Não Linear Jorge P. J. Santos Programação Não Linear Jorge P. J.

Santos

Interior de C → int(C) = conjunto dos pontos interiores de C.

int(C)

PROGRAMAÇÃO NÃO LINEAR

CONJUNTOS 3. a∈IRn diz-se Ponto Aderente de C se qualquer bola de centro em a tem


intersecção não vazia com o conjunto C.
C
1. Bola Aberta e Bola Fechada de centro em a∈IRn e raio ε > 0 são os a
conjuntos b c
B(a,ε) clB(a,ε) Aderência de C → cl(C) = conjunto dos pontos aderentes de C
B(a,ε) = {x∈ IRn: ||x − a|| < ε}
ε ε cl(C)
a a
clB(a,ε) = {x∈ IRn: ||x − a|| ≤ ε}

com || || uma norma de IRn.


Observação: int(C) ⊆ C ⊆ cl(C)

2. a∈C⊆ IRn é um Ponto Interior de C se existe uma bola aberta de centro


4. a∈IRn diz-se Fronteiro de C se é aderente de C mas não é interior.
em a totalmente contida em C.
C
C
a a b
Fronteira de C → fr(C) = conjunto dos pontos fronteiros de 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

[ x1, x2] = {z∈IRn: z = λx1 + (1 − λ)x2, 0 ≤ λ ≤ 1}

5. Um conjunto C diz-se Aberto se C = int(C) ] x1, x2[ = {z∈IRn: z = λx1 + (1 − λ)x2, 0 < λ < 1}

Um conjunto C é Fechado se fr(C) ⊆ C, ou seja, se C = cl(C). C


] x1, x2[ [ x1, x2]
Observação: Uma bola aberta é um conjunto aberto enquanto que uma
bola fechada é um conjunto fechado.

9. C⊆ IRn é Convexo se para quaisquer pontos x1, x2 de C, o intervalo


6. C⊆IRn é Limitado se existir um número real ε > 0 tal que || x || ≤ ε para
[ x1, x2] está contido em C.
todo x∈C. C é Compacto se é limitado e fechado.

λx1 + (1 − λ)x2 ∉ C
x1 x2

Conjunto Convexo Conjunto Não Convexo


Conjunto Não limitado Conjunto Limitado Não Fechado Conjunto Compacto

FUNÇÃO REAIS DE VÁRIAS VARIÁVEIS REAIS


7. Se x1, x2, ... ,xk∈IRn e λ1, λ2, ... , λk são k números reais não negativos
Uma Função de n Variáveis é uma correspondência entre vectores de um
tais que λ1 + λ2 + ... + λk = 1, então
subconjunto de IRn e o conjunto de números reais.
z = λ1x1 + λ2x2 + ... + λkxk
Exemplo: f: x = (x1,x2,x3,x4) → x1x2x3 + x22e−x4 + x4 ln x1
é uma Combinação Convexa de Vectores x1, x2, ... ,xk.
é uma função de IR4 em IR1 ou uma função de 4 variáveis.
Observação: Se k = 2, então z = λx1 + (1 − λ)x2, com 0 ≤ λ ≤ 1, é uma
Notação: y = f(x1,x2,...,xn)
combinação convexa de x1 e 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 +

f(x1,x2,...,xn) = k, k∈IR1 (1/2h11x21 + h12x1x2 + h13x1x3 + L + h1nx1xn) +

Se n = 2, então a equação f(x1,x2) = k representa uma Curva de Nível.


(1/2h22x22 + h23x2x3 + L + h2nx2xn) +
Exemplo: A figura apresentada a seguir contém três curvas de nível para a
(1/2h33x23 + L + h3nx3xn) + L + (1/2hnnx2n)
função y = x21 + x22

x2

Passagem da forma analítica para a vectorial


x1
1/2hii = coeficiente de x2i, i=1,2,...,n

hij = coeficiente de xij, i=1,2,...,n, j=i+1,i+2,...,n

Uma função de n variáveis diz-se Linear se se puder escrever na forma

y = b + c1x1 + c2x2 + ... + cnxn = b + c⋅x = b + cTx


Exemplo:

com c = (c1,c2,...,cn) e x = (x1,x2,...,xn)


y = 3 + 2x1 – x3 + 2x4 + 3x21 + 2x1x2 – x1x4 + x22

− x2x3 + x2x4 − 3x23 + x3x4 − x24


Uma função de n variáveis diz-se Quadrática se se puder escrever na
Então
forma
⎡ 6 2 0 − 1⎤
1 T ⎢ 2 2 −1
y = b + cTx + x Hx 1⎥
2 b = 3, c = [2 0 −1 2], H= ⎢ ⎥
⎢ 0 −1 − 6 1⎥
⎢ ⎥
com H uma matriz simétrica. Então tem-se ⎣− 1 1 1 − 2⎦

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

F: IRn → IRm Diz-se que l é o limite de uma função f de n variáveis quando


x = (x1,x2,…,xn) tende para a = (a1,a2,…,an)∈IRn se
⎡ f1( x ) ⎤
⎢ f (x ) ⎥
x → F (x) = ⎢ 2 ⎥ ∀ε > 0 ∃δ > 0: || x − a || < δ ∧ x ≠ a ⇒ | f(x) − l | < ε
⎢ M ⎥
⎢ ⎥
⎣ f m ( x )⎦ e representa-se por

com fi funções de n variáveis. lim f(x) = l


x→a

Uma função F é Linear se todas as funções fi o forem. Assim F é linear se


Também se define
e só se para qualquer x∈IRn
lim f(x) = +∞ ⇔ ∀ε > 0 ∃δ > 0: || x − a || < δ ∧ x ≠ a ⇒ f(x) > ε
x →a
⎡ b1 + a11x1 + a12 x2 + L + a1n xn ⎤
⎢ b + a x + a x +L+ a x ⎥
F(x) = ⎢ 2 21 1 22 2 2n n ⎥
= b + Ax lim f(x) = −∞ ⇔ ∀ε > 0 ∃δ > 0: || x − a || < δ ∧ x ≠ a ⇒ f(x) < −ε
⎢ M ⎥ x→a
⎢ ⎥
⎣bm + am1x1 + am 2 x2 + L + amn xn ⎦

com b = [bi]∈IRm e A = [aij]∈IRm×n. Assim toda a função linear tem


Uma função f: IRn → IR1 é Contínua em a∈IRn se
associada uma e uma só matriz A que se chama Matriz da Função Linear.
lim f(x) = f(a)
x→a

Se f é contínua em todo x∈D⊆IRn, diz-se que f é contínua em D e


escreve-se f∈C0(D)

Uma função vectorial F: IRn → IRm é Contínua em x∈IRn (conjunto D) se


cada fi o fôr.

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

A função norma || ||: x → || x || é contínua em IRn h7: x → [f(x)]n (n∈IN)

h8: x → | f(x) |

Teorema 1: Se f e g são funções contínuas num conjunto D⊆IRn, e λ∈IR1,


h9: x → k f ( x) (k∈IN, k é impar)
então
são contínuas em D e
(i) A função h1: x → λf(x) é uma função contínua em D.
h10: x → p f ( x) (p∈IN, p é par)
(ii) As funções

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.

h4: x → f(x) ⋅ g(x)

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) Observação: O jacobiano de uma função vectorial linear é constante e


A Derivada Parcial em ordem a xi em x, denota-se por e é a
∂xi igual à matriz A a si associada.
⎧1 se j =i
derivada direccional na direcção ei de componentes eij = ⎨
⎩0 se j≠i

Uma função f: IRn → IR1 é Diferenciável em x∈IRn se as derivadas


∂f ( x)
direccionais existem para todas as direcções p∈IRn. Uma função é
O Gradiente de f em x∈IRn é o vector ∇f(x)∈IRn cujas componentes são as ∂p
n derivadas parciais de f em x, isto é, diferenciável em D⊆IRn se o é em cada x∈D.

⎡⎛ ∂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 linear (f(x) = b + cTx), ⇒ ∇f constante (∇f(x) = c)

1 Seja f: IRn → IR1 diferenciável em D⊆IRn e considere-se em D


f quadrática (f(x) = b + cTx + xTHx) ⇒ ∇f linear (∇f(x) = c + Hx)
2
∇f: x → ∇f(x).

Se ∇f é contínua em x, diz-se que f é Continuamente Diferenciável em x.


O Jacobiano de F: IRn → IRm em x é definido pela matriz de ordem m×n Se f é continuamente diferenciável em todo x∈D, escreve-se f∈C1(D).

⎡ ∇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.

A Segunda Derivada Direccional de f: IRn → IR1 em x na direcção p é o


número real FUNÇÕES CONVEXAS E CÔNCAVAS

∂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

f(λx1 + (1 − λ)x2) ≤ λf(x1) + (1 − λ)f(x2) ∀λ∈[0,1]


A função f: IRn → IR1 diz-se Duas Vezes Diferenciável em x se a segunda
derivada direccional em x existe para qualquer direcção p. É então possível Uma função f: IRn → IR diz-se Estritamente Convexa em D⊆IRn convexo
provar que a hessiana em x satisfaz se para quaisquer x1≠x2∈D,

∂ 2 f ( x) f(λx1 + (1 − λ)x2) <λf(x1) + (1 − λ)f(x2) ∀λ∈]0,1[


= pT∇2f(x)p
2
∂p
Uma função f: IRn → IR diz-se Côncava em D⊆IRn convexo se para
quaisquer x1,x2∈D,

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

se para quaisquer x1≠x2∈D,

f(λx1 + (1 − λ)x2) > λf(x1) + (1 − λ)f(x2) ∀λ∈]0,1[ Teorema 3:


(i) Toda a norma é uma função convexa.
(ii) Se f é [estritamente] convexa (côncava) em D⊆IRn e g é
Consequência: f é (estritamente) convexa ⇔ (−f ) é (estritamente) côncava
[estritamente] convexa e crescente (côncava e decrescente) em
{y∈IR1: y = f(x), x∈D}, então gοf é [estritamente] convexa
(côncava) em D.
Interpretação geométrica

f(x1)λf(x )+(1−λ)f(x ) f(x1) λf(x )+(1−λ)f(x )


1 2 1 2 Demonstração:
f(x2) f(x0) f(x2)
f(x0) (i) Se x1,x2∈IRn e λ∈[0,1], então

|| λx1 + (1 − λ)x2|| ≤ || λx1 || + ||(1 − λ)x2|| = λ|| x1 || + (1 − λ)|| x2||.


x1 x0=λx1+(1−λ)x2 x2 x1 x =λx +(1−λ)x
0 1 2 x2

Função estritamente convexa Função convexa não estritamente convexa (ii) Sejam x1,x2∈IRn e λ∈[0,1]. Como f é convexa, então

f(λx1 + (1 − λ)x2) ≤ λf(x1) + (1 − λ)f(x2).


λf(x1)+(1−λ)f(x2)
f(x1) λf(x )+(1−λ)f(x )
f(x2)
1 2 Mas g é crescente e convexa e por isso
f(x0) f(x0) f(x2)
f(x1) g[f(λx1 + (1 − λ)x2)] ≤ g[λf(x1) + (1 − λ)f(x2)]
≤ λg[f(x1)] + (1 − λ)g[f(x2)].
x1 x =λx +(1−λ)x x2 x1 x =λx +(1−λ)x x2
0 1 2 0 1 2

Função estritamente côncava Função côncava não estritamente côncava

15 16
Programação Não Linear Jorge P. J. Santos Programação Não Linear Jorge P. J. Santos

2 2 2 Uma matriz A diz-se:


Exemplo: f: x → e x1 + x2 +L+ xn é estritamente convexa em IRn, pois é a
Positiva Definida (PD) ⇔ xTAx > 0 para todo x∈IRn−{0}
composição de f: x → || x ||22 com a função exponencial g.
Positiva Semi-Definida (PSD) ⇔ xTAx ≥ 0 para todo x∈IRn
Negativa Definida (ND) ⇔ xTAx < 0 para todo x∈IRn−{0}
Negativa Semi-Definida (NSD) ⇔ xTAx ≤ 0 para todo x∈IRn
Teorema 4: Se D é um conjunto aberto e convexo e f∈C1(D), então
Simétrica Positiva Definida (SPD) ⇔ A∈PD e é simétrica
(i) f é convexa em D se e só se para cada x−∈D.
Simétrica Positiva Semi-Definida (SPSD) ⇔ A∈PSD e é simétrica
f(x) ≥ f(−x ) + ∇f(x−)T(x − x−) para todo x∈D.
Simétrica Negativa Definida (SND) ⇔ A∈ND e é simétrica
(ii) f é estritamente convexa em D se e só se para cada −x ∈D
Simétrica Negativa Semi-Definida (SNSD) ⇔ A∈NSD e é simétrica
f(x) > f(x−) + ∇f(x−)T(x − −x ) para todo x∈D − {x−}.
INDefinida (IND) ⇔ A∉PSD ∧ A∉NSD

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

y=f(x) principal e D uma matriz diagonal com elementos diagonais


positivos (não negativos)
(ii) Seja A uma matriz simétrica positiva definida (positiva
y=f(x−)+f’(x−)(x −x−)
semi-definida), então A tem elementos diagonais positivos (não
negativos)
x− x

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

(i) f é convexa em D ⇔ ∇2f(x) é SPSD para qualquer x∈D.


f(x1,x2) = x14 + x22 + 2x1x2.
(ii) Se ∇2f(x) é SPD para todo x∈D, então f é estritamente convexa
em D. Entã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

só se para cada x−∈D


∂f ( x ) ∂ 2 f ( x)
f(x) ≤ f(x−) + ∇f(−x )T(x − −x ) para todo x∈D−{x−} = 2x2 + 2x1 ⇒ =2
(<) ∂x2 ∂x22
(ii) Se f∈C2(D), então
e
f é côncava em D ⇔ ∇2f(x)∈SNSD para todo x∈D
∇2f(x)∈SND para todo x∈D ⇒ f é estritamente côncava em D. ⎡12 x 2 2⎤
∇2f(x) = ⎢ 1 ⎥.
⎢⎣ 2 2⎥⎦

Como o segundo elemento da diagonal da matriz é positivo, então


É ainda de notar que a hessiana de uma função estritamente convexa
∇2f(x) não é SNSD. Para verificar se ∇2f(x) é SPD ou SPSD tem de se
(côncava) pode não ser PD (ND) em algum ponto do seu domínio. Com
efeito a função determinar a decomposição LDLT de ∇2f(x) ou da sua permutação
principal
f: IR1 → IR1
⎡2 2 ⎤
x → x4 P12∇2f(x)P12 = ⎢ 2⎥.
⎣2 12 x1 ⎦
é estritamente convexa em IR1. Além disso para qualquer x∈IR1
Então tem-se
f’’(x) = (4x3)’ = 12x2

Portanto f’’(x) = 0 para x = 0.


19 20
Programação Não Linear Jorge P. J. Santos Programação Não Linear Jorge P. J. Santos

T Se uma função é quadrática, então a sua hessiana é constante e tem-se


⎡1 ⎤ ⎡2 ⎤ ⎡1 ⎤
P12∇2f(x)P12 = ⎢ ⎥ ⎢ 2 ⎥ ⎢1 1⎥ = LDLT.
⎣1 1⎦ ⎣ 12 x1 − 2⎦ ⎣ ⎦

Portanto dois casos podem acontecer e são discutidos a seguir. 1 T


Teorema 7: Seja f(x) = b + cTx + x Hx. Então
(i) Se 6x12− 1 ≥ 0, P12∇2f(x)P12 é SPSD. Então também ∇2f(x) é 2

SPSD e f é convexa no conjunto (i) f é estritamente convexa em IRn ⇔ H é SPD

1 1 (ii) f é convexa em IRn ⇔ H é SPSD


D={(x1,x2)∈IR2:6x12− 1≥0}={(x1,x2)∈IR2: x1≤ − ∨ x1≥ }
6 6 (iii) f é estritamente côncava em IRn ⇔ H é SND
sendo estritamente convexa pelo menos no interior desse
(iv) f é côncava em IRn ⇔ H é SNSD
conjunto.
(ii) Se 6x12− 1 < 0, então

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

1 −T − MÁXIMOS E MÍNIMOS UMA FUNÇÃO DE N VARIÁVEIS


e f(0) = b, f(x−) = b + cTx− + x Hx = b + cTx−.
2
f: IRn → IR diz-se Limitada Superiormente num conjunto D⊆IRn se
Donde
f(λ0 + (1 − λ)x−) = b + (1 − λ)cTx− =λb + (1 − λ)(b + cTx−) = ∃b∈IR1: f(x) ≤ b ∀x∈D.

= λ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

∃a∈IR1: f(x) ≥ a ∀x∈D.


Exemplo: Consideremos a função

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

É fácil de ver que ∃a,b∈ IR1: a ≤ f (x ) ≤ b ∀x∈D.

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).

O ínfimo de f representa-se por

I = inf f(x) Exemplo: f(x) = ex é limitada inferiormente por zero e não tem mínimo em
IR
x∈D

O próximo teorema garante a existência de mínimo e máximo para certas


O supremo diz-se Máximo de f em D se
categorias de conjuntos e funções.

∃x−∈D: f(x−) = S

O ínfimo diz-se Mínimo de f em D se Teorema 8: Weierstrass

∃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.

Exemplo: A função exponencial de uma variável é estritamente convexa


Teorema 9: Se f é uma função estritamente convexa (côncava) num em IR1 mas não tem mínimo global nesse conjunto.
conjunto convexo D⊆IRn e se o 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

Como f é contínua e estritamente convexa em IR1 e x2 ≥ 0 para todo

Demonstração: x∈IR1, então x = 0 é o único mínimo global do programa dado.

Se x1 e x2 são dois mínimos globais de f em D, então f(x1) = f(x2) ≤ f(x)


para todo x∈D. Como f é estritamente convexa em D, então para qualquer MÁXIMOS E MÍNIMOS LOCAIS
0 < λ < 1 tem-se
Diz-se que x− é Mínimo Local de f em D
f(λx1 + (1 − λ)x2) < λf(x1) + (1 − λ) f(x2) = f(x1) = f(x2).
∃θ > 0: f(x−) ≤ f(x) ∀x∈D∩B(x−,θ)
Portanto x1 e x2 não podem ser mínimos globais e isso demonstra o
teorema. A demonstração para o caso do máximo de uma função
estritamente côncava é semelhante. Diz-se que x− é Máximo Local de f em D

∃θ > 0: f(x−) ≥ f(x) ∀x∈D∩B(x−,θ)

27 28
Programação Não Linear Jorge P. J. Santos Programação Não Linear Jorge P. J. Santos

Observação: Uma função f pode ter um ou vários mínimos (máximos) e


locais e não ter um mínimo (máximo) global.
f(x^) ≤ λf(x−) + (1 − λ)f(x*) < λf(x−) + (1 − λ)f(x−) = f(x−)
y
f: IR1 → IR1 o que é impossível por x^∈B(x−,ε).
1
x → x3 − 3x −1 x

Na prática, é em geral muito difícil verificar se x− é um mínimo local ou


não a partir da sua definição. Daí ser necessário estabelecer condições
Teorema 10: Se D⊆ IRn é um conjunto convexo e f: D → IR1 é uma necessárias e suficientes de optimalidade. Consideremos novamente o
função convexa (côncava) em D, então todo o mínimo (máximo) local é problema
global.
Minimize f(x)

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)

Observação: Se D é convexo, −x é ponto estacionário de f em D se


O gradiente de f em x− é

∇f(x−)T(x − x−) ≥ 0 para todo x∈D


⎡ 2x ⎤ ⎡1⎤
∇f(−x ) = ⎢ 1 ⎥ =⎢ ⎥
⎣2 x2 ⎦ x = x ⎣1⎦

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 α

então todo o mínimo local de f em D é um ponto estacionário de f nesse com ∇f(x−) e


conjunto.
∇f(x−)Tp = cos α ||∇f(x−)||2||p||2 ≥ 0

Então x− é ponto estacionário de f em D.


Exemplo: Consideremos o programa

Minimize f(x1,x2) = x12 + x22


Observação: O inverso deste teorema não é geral verdadeiro. Assim por
sujeito a x1 + x2 ≥ 1
exemplo, consideremos o programa
x1 ≤ 1, x2 ≤ 1
Min x3

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,

então x− é ponto estacionário de f em D se e só se ∇f(x−) = 0.

Teorema 12: Se S⊆IRn é um conjunto aberto contendo o conjunto convexo

D e f∈C1(S) é convexa em D, então x− é ponto estacionário de f em D se e Demonstração:


só se x− é mínimo global de f em D.
Se x− é ponto estacionário de f em D, então ∇f(x−)Tp ≥ 0 para toda a
direcção admissível. Seja ei o vector da base canónica de IRn

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

f(x) ≥ f(x−) + ∇f(x−)T(x − x−) ∇i f(x−) = ∇f(x−)Tei ≥ 0

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

∇f(−x ) = 0, então é evidente que ∇f(−x )Tp ≥ 0 para toda a direcção


Exemplo: No programa do exemplo anterior, x− = (1/2,1/2) é ponto admissível p e x− é ponto estacionário de f em D.
estacionário de f em D e f é convexa, em IRn então x− é mínimo global de f
em D. Além disso x− é o único mínimo global, por f ser estritamente
convexa em IRn.

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

se ∇f(x−) = 0. não é mínimo local de f em IR1.

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

convexa num conjunto convexo e aberto D⊆IRn resume-se à resolução de


∇f(x−) = 0, ∇2f(−x )∈PD.
um sistema de n equações e n incógnitas.
então x− é mínimo local de f em D.

Observação: Em geral a resolução desse sistema pode não fornecer um


mínimo local para a função f. Por exemplo, a função f: x → x3 tem Consequências: Seja f∈C2(D), com D⊆IRn aberto e convexo
gradiente nulo em x = 0, mas esse número não é mínimo local de f em
(i) Se ∇f(x−) ≠ 0 ou −x ∉D, x− não é mínimo nem máximo local de f em
IR1.
D.

(ii) Se ∇f(x−) = 0, x−∈D e ∇2f(x−) não é PSD (NSD), então x− não é


Teorema 15: Seja f∈C2(D), com D⊆IRn um conjunto aberto e convexo. Se mínimo (máximo) local de f em D.

x− é um mínimo local de f em D, então


(iii) Se ∇f(x−) = 0, x−∈D e ∇2f(x−) é PD (ND), então −x é mínimo

∇f(−x ) = 0, ∇2f(x−)∈PSD. (máximo) local de f em D.

(iv) Se ∇f(x−) = 0, x−∈D e ∇2f(x−) ≠ 0 é PSD (NSD) singular, então x−


não é máximo (mínimo) local, podendo ser mínimo (máximo)
local ou não.

35 36
Programação Não Linear Jorge P. J. Santos Programação Não Linear Jorge P. J. Santos

Exemplo: Consideremos a função e ∇f(x) = 0 reduz-se ao sistema de equações lineares

f(x1,x2) = 2x1x22 + x2x12 + x12 + x22 Hx = −c

Então Donde:

⎧ ∂f ( x ) 2 (i) Se Hx = −c não tem solução x−∈D, a função quadrática não tem


⎪⎪ ∂x = 2 x2 + 2 x1x2 + 2 x1 = 0 ⎧⎪2 x 2 + 2 x x + 2 x = 0
⇔ 2 1 2 1 mínimos nem máximos locais em D.
⎨ ∂f (1x ) ⎨
⎪ = 4 x1x2 + x12 + 2 x2 = 0 ⎪⎩4 x1x2 + x12 + 2 x2 = 0
⎪⎩ ∂x2 (ii) Se Hx = −c tem solução x−∈D e H é SPSD (SNSD), então x− é
mínimo (máximo) global de f em D.
Donde −x = (0,0) é a solução desse sistema. Como
(iii) Se Hx = −c tem solução x−∈D e H é SIND, então −x não é mínimo
∂ f (x )
2
∂ f (x )
2
∂ f (x )
2
∂ f (x )
2
= 2x2 + 2, = 4x2 + 2x1 = , = 4 x1 + 2 nem (máximo) local de f em D.
∂x12 ∂x2∂x1 ∂x1∂x2 ∂x22

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⎦

(i) Se a solução única x− de Hx = −c pertence a D, então x− é o único


e x− = (0,0) é mínimo local de f em IR2.
mínimo global de f em D.

(ii) Se x−∉D, então a função quadrática não tem mínimo global em D.


Funções Quadráticas: Consideremos agora uma função quadrática

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

c = [1 −1 2]T e problemas de maximização e minimização, então verifica-se o seguinte


resultado.
⎧2 x1 = 1

Hx = −c ⇔ ⎨2 x2 = −1
⎪2 x = 2
⎩ 3
Teorema 18: Toda a função quadrática estritamente côncava em IRn admite

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

Teorema 17: Toda a função quadrática estritamente convexa em IRn


admite um mínimo global único num conjunto convexo e fechado D⊆IRn.
Sistema de n equações a n incógnitas

⎧ 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

sujeito a x12 + x22 + ... + xn2 ≤ 1


com x = (x1,x2,...,xn)T e F(x) = [f1(x), f2(x) ,...., fn(x)]T

Como a função é quadrática, estritamente convexa e não negativa,

D = {x∈IRn: x12 + x22 + ... + xn2 ≤ 1}

é convexo e fechado e 0∈D, então x− = 0 é o único mínimo global desse


programa.

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⎦

incógnitas e então o sistema

⎧ 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

Desvantagens: Um Programa Não Linear Sem Restrições escreve-se na forma

(i) Não se conhece em princípio um bom ponto inicial x0 Minimize f(x)

(ii) É necessário calcular o jacobiano ∇F(xk) em cada iteração x∈IRn

(iii) É necessário resolver um sistema com a matriz ∇F(xk) em cada com f∈C1(IRn).
iteração

Um Ponto Estacionário desta função satisfaz o sistema de n equações não


Critérios de Paragem: lineares ∇f(x) = 0

(i) || ∇F(xk) || < ε1

Uma Direcção Descendente p∈IRn em x∈IRn satisfaz ∇f(x)Tp < 0. Neste


x k − x k −1
< ε2 caso existe α− > 0 tal que f(x + αp) < f(x) para todo α∈]0,α−]
{ }
(ii)
k
max 1, x

onde ε1 e ε2 são normalmente da ordem da raiz quadrada da precisão da

máquina

43 44
Programação Não Linear Jorge P. J. Santos Programação Não Linear Jorge P. J. Santos

Algoritmo de Gradientes Determinação do Passo


(i) Critério de Armijo
Dado x0∈IRn
(ii) Critério da Minimização
Para k = 0,1,2,...

Determine uma direcção pk tal que ∇f(xk)Tpk < 0


Critério de Armijo

Calcule o passo αk > 0 tal que


Este critério consiste em determinar o passo αk de modo a satisfazer a

f(xk + αkpk) < f(xk) seguinte desigualdade

Actualize xk+1 = xk + αkpk f(xk + αkpk) ≤ f(xk) + βαk∇f(xk)Tpk

Termine quando ∇f(xk) ≅ 0 com β∈]0,1[ e pk a direcção previamente calculada.

Na prática, a determinação de αk é feita a partir de tentativas da forma

α
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

Exemplo: Consideremos o problema ⎡ 2⎤ ⎡ − 4⎤ ⎡ − 2⎤


x0 + α0p0 = x0 + p0 = ⎢ ⎥ + ⎢ ⎥ = ⎢ ⎥
⎣ 3⎦ ⎣ − 4⎦ ⎣ − 1 ⎦
Minimize f(x1,x2) = 4x12 – 4x1x2 + 2x22
⎛ ⎡ − 2⎤ ⎞
x∈IR2 f(x0 + α0p0) = f ⎜⎜ ⎢ ⎥ ⎟⎟ = 10
⎝ ⎣ − 1⎦ ⎠
⎡1 0⎤
Seja x0 = (2,3) e consideremos H0 = I2 = ⎢ ⎥ e α0 determinado a 1
⎣0 1 ⎦ f(x0) + βα0∇f(x0)Tp0 = 10 − ×32 = 10 − 3.2 = 6.8
10
1
partir do Critério de Armijo com β = , θ = 2 e α− = 1. Como
10 Donde

⎡ 8 − 4⎤ ⎡ x1 ⎤ f(x0 + α0p0) = 10 > 6.8 = f(x0) + α0β∇f(x0)Tp0


∇f(x) = ⎢
⎣− 4 4⎥⎦ ⎢⎣ x2 ⎥⎦

então e α0 = 1 não é aceite. Na segunda tentativa faz-se

⎡ 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

Na aplicação do critério de Armijo, começamos com t = 0, isto é, com 1 0 ⎡0 ⎤


x1 = x0 + p = ⎢1⎥
2 ⎣ ⎦
α0 = 1
Então é o vector correspondente à segunda iteração do algoritmo de gradientes.

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

(i) Se (pk)THpk ≤ 0, então αk = α−.


Min f(xk + αpk)

α∈[0,α−] (ii) Se (pk)THpk > 0, então o mínimo é alcançado quando

Se α~k for obtido pelo Critério de Armijo e αk pelo Critério da d


ϕ’(α) = f(xk + αpk) = 0

Minimização, então é evidente que
Mas
f(xk + αkpk) ≤ f(xk + α~kpk)
ϕ’(α) = ∇f(xk)Tpk + [(pk)THpk]α
e portanto αk satisfaz o Critério de Armijo. O Critério da Minimização tem
e ϕ’(α) = 0 se e só se
a desvantagem de necessitar da determinação do mínimo de uma função de
uma variável e daí só ser usado em alguns casos particulares, como por ∇f ( x k )T p k
α=−
exemplo, quando f é uma função quadrática da forma ( p k )T Hp k

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

MÉTODO DA DESCIDA MÁXIMA 1 = ||p||2 = |λ| ||∇f(xk)||2

e portanto

Como referimos anteriormente a direcção pk é normalmente obtida a partir 1


λ=±
de ∇f ( x k )
2
Hkpk = −∇f(xk)
Como ∇f(xk)Tp < 0, então
com Hk uma matriz SPD. No método da descida máxima, Hk é a matriz
∇f ( x k )
identidade e portanto p=−
∇f ( x k )
2
pk = −∇f(xk)
Portanto este último vector é a solução óptima do programa não linear e
Para entendermos a denominação do algoritmo, consideremos o programa
daí −∇f(xk) ser conhecida como a direcção da descida máxima.
não linear

Maximize |∇f(xk)Tp|
sujeito a ||p||2 = 1 Exemplo: Consideremos o programa quadrático

Minimize f(x1,x2) = 4x12 – 4x1x2 + 2x22


Se θ∈[0,2π[ é a medida do ângulo definido pelos vectores p e ∇f(xk),
então tem-se x∈IR2

|∇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

Para calcular o passo α0, usa-se o Critério da Minimização. Assim T


⎡ − 4⎤ ⎡ 4 ⎤
∇f(x1)Tp1 = ⎢ ⎥ ⎢ ⎥ = −4×8
⎣ 4⎦ ⎣ − 4 ⎦
T T
⎡− 4⎤ ⎡ 8 − 4⎤ ⎡− 4⎤ ⎡− 4⎤ ⎡− 16⎤
(p0)THp0 = ⎢ ⎥ ⎢ = = 64 ∇f ( x1)T p1 4×8
4⎥⎦ ⎢⎣− 4⎥⎦ ⎢⎣− 4⎥⎦ ⎢⎣ 0⎥⎦
1
⎣ − 4⎦ ⎣ − 4 α1 = − = =
1 T
( p ) Hp 1 4 × 80 10
T
⎡ 4⎤ ⎡ − 4⎤
∇f(x0)Tp0 = ⎢ ⎥ ⎢ ⎥ = −32 e
⎣ 4⎦ ⎣ − 4⎦
⎡0 ⎤ 1 ⎡ 4⎤ ⎡4/10⎤
x 2 = x 1 + α1 p 1 = ⎢ ⎥ + ⎢ ⎥=⎢ ⎥
e ⎣1⎦ 10 ⎣− 4⎦ ⎣6/10⎦

∇f ( x 0 )T p 0 − 32 1 Como ∇f(x2) ≠ 0, então uma nova iteração tem de ser efectuada e


α0 = − =− =
( p 0 )T Hp 0 64 2 obtém-se x3 = [0 2/10]T. O algoritmo prosseguirá até à obtenção do

ponto estacionário −x = (0,0)T.


Donde

⎡ 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)

Portanto Sujeito a x∈X⊆IRn

onde X é um conjunto convexo constituído por restrições lineares


⎡ 4⎤
p1 = −∇f(x1) = ⎢ − 4⎥
⎣ ⎦ (igualdades e desigualdades) e f∈C1(D) com D um subconjunto aberto e

convexo de IRn que contém X. Se x− é ponto estacionário de f em X, então x−


O passo α1 é novamente calculado usando o Critério da Minimização. Mas
é solução óptima do programa linear
T T
⎡ 4⎤ ⎡ 8 − 4⎤ ⎡ 4⎤ ⎡ 4⎤ ⎡ 48⎤ Minimize ∇f(x−)Tx
1 T 1
(p ) Hp = ⎢ − 4⎥ ⎢ − 4 = = 4×80
⎣ ⎦ ⎣ 4⎥⎦ ⎢⎣− 4⎥⎦ ⎢⎣− 4⎥⎦ ⎢⎣− 32⎥⎦
Sujeito a x∈X
53 54
Programação Não Linear Jorge P. J. Santos Programação Não Linear Jorge P. J. Santos

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

Aix = bi, i = 1,...,m1 x1 − 2x3 ≥ 2

A jx ≥ b j λ2(x1 − 2x3 − 2) = 0

λj(Ajx − bj) = 0, j = m1+1,…,m w1x1 = 0, w2x2 = 0

λj ≥ 0, x1 ≥ 0, x2 ≥ 0, λ2 ≥ 0, w1 ≥ 0, w2 ≥ 0

Estas condições são conhecidas por Condições de Kunh-Tucker e as


variáveis λj são designadas por Multiplicadores de Lagrange.
Condições de Kuhn-Tucker para X = {x∈IRn: Ax = b}

∇f(x) = ATλ
Exemplo: Consideremos o seguinte programa não linear Ax = b

Minimize f(x1,x2,x3) = x1x22 + x23x3 Condições de Kuhn-Tucker para X = {x∈IRn: Ax ≥ b}

Sujeito a x1 + x2 + x3 = 3 ∇f(x) = ATλ


x1 − 2x3 ≥ 2 Ax ≥ b
x1 ≥ 0 λj(Ajx − bj) = 0, j = m1+1,…,m

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

Consideremos o programa não linear igualdade são caracterizadas por Ap = 0. Seja

Minimize f(x) N(A) = {p∈IRn: Ap = 0}


sujeito a Ax = b
o subespaço nulo de A e

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)

Além disso tem-se


A direcção p é admissível em x− se
(i) AZ = 0
x−∈X ⇒ x− + λp∈X para todo λ > 0.
(ii) p = Zd, d∈IRn−m para todo p∈N(A)

57 58
Programação Não Linear Jorge P. J. Santos Programação Não Linear Jorge P. J. Santos

Teorema 19: ∇f(x) = ATλ ⇔ ZT∇f(x) = 0 Demonstração:

(i) Se x− é mínimo local de f em X, então x− é ponto estacionário de f em X e

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,

∇f(x) = ATλ, λ∈IRm dT(ZT∇2f(x−)Z)d ≥ 0

para todo d∈IRn−m. Donde ZT∇2f(x−)Z∈PSD.

Tendo em conta este teorema, x− é ponto estacionário de f em (ii) Exercício


X = {x∈IRn: Ax = b} se é solução do sistema

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

então −x é ponto estacionário de f em X = {x∈IR3: x1 + x2 + x3 = 3} se ⎧4 x 3 − 4 x x − 4 x 3 + 4 x x = 0


2 3 1 3
⎪⎪ 1 2
3 3
− − ⎨4 x2 − 4 x1x3 − 4 x3 + 4 x1x2 = 0
existir λ ∈IR1 tal que (x−,λ ) é solução do sistema ⎪x + x + x = 3
⎪⎩ 1 2 3
⎡4 x 3 − 4 x x ⎤
⎥ ⎡⎤
2 3 1
⎢ 1
⎢ 4 x2 − 4 x1x3 ⎥ = 1⎥ λ
3 ⎢ Facilmente se conclui que x− = (1,1,1)T é solução desse sistema e é um
⎢ 3 ⎥ ⎢⎥
⎢⎣ 3
4 x − 4 x1 2 ⎥⎦
x ⎢⎣1⎥⎦ ponto estacionário de f em X. Para verificar se x− é mínimo local é

x 1 + x2 + x3 = 3 necessário verificar se ZT∇2f(x−)Z é PD. Mas

− ⎡ 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

(i) f é convexa em X ⇔ ZT∇2f(x)Z∈PSD para todo x∈X.

Consideremos o programa não linear


(ii) f é côncava em X ⇔ ZT∇2f(x)Z∈NSD para todo x∈X.
Minimize f(x)
(iii) ZT∇2f(x)Z∈PD para todo x∈X ⇒ f é estritamente convexa em X.
sujeito a Ax ≥ b
(iv) ZT∇2f(x)Z∈ND para todo x∈X ⇒ f é estritamente côncava em X.
onde x∈IRn, b∈IRm, A é uma matriz de ordem m×n e f∈C1(D) com D um
subconjunto aberto e convexo de IRn que contém

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

Então podemos substituir as condições de Kuhn-Tucker por

− Exemplo: Consideremos o seguinte programa não linear


∇f(x) = A Tλ
− − Minimize x12 + x22
Ax = b
Ax ≥ b Sujeito a x1≥ 1/2
λ≥0 x2 ≥ 0

com λ o vector dos multiplicadores de Lagrange associados às restrições x1 + x2 ≤ 1 ⇔ −x1 − x2 ≥ −1

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

⎡1 0⎤ Então λ ≥ 0 e x− é ponto estacionário. Aliás −x é o único mínimo global de f


para certo x∈X. Mas Z = ⎢ ⎥ e
⎣0 1 ⎦ em X, como facilmente se verifica traçando as curvas de nível x12 + x22 = k.

⎡ 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

ponto estacionário. Então − −


A = [−1 −1], b = −1

− − ⎡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

Teorema 24: Seja f∈C2(D), com D um conjunto aberto e convexo que ⎡ 2⎤


λ= ⎢ ⎥ ≥0
contém X = {x∈IRn: Ax ≥ b}. Se x− é um ponto estacionário de f em X, se ⎣ 2⎦

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.

OPTIMIZAÇÃO NÃO LINEAR COM RESTRIÇÕES LINEARES


DE IGUALDADE
Exemplo: Consideremos o problema

Minimize x12 − 4x22


Consideremos o programa não linear
Sujeito a x1 + x2 ≤ 1
Minimize f(x)
x1 ≥ 0, x2 ≥ 0
sujeito a Ax = b
Se as restrições activas escolhidas forem x1 + x2 ≤ 1 e x2 ≥ 0, então
onde x∈IRn, b∈IRm, A é uma matriz de ordem m×n com característica m<n

− ⎡− 1 − 1⎤ − ⎡− 1⎤ e f∈C2(D) com D um subconjunto aberto e convexo de IRn que contém


A=⎢ , b=⎢ ⎥
⎣ 0 1⎥⎦ ⎣ 0⎦
X = {x∈IRn: Ax = b}
A matriz Z não existe e
Como vimos anteriormente, x− é ponto estacionário de f em X se é solução
− − ⎧− x1 − x2 = −1 ⎧ x1 = 1 ⎡1⎤
Ax = b ⇔ ⎨ ⇔ ⎨ ⇔ x− = ⎢ ⎥ do sistema
⎩ x2 = 0 ⎩ x2 = 0 ⎣0 ⎦

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

Para que Apk = 0 é suficiente fazer


Algoritmo Global:
pk = Zd, d∈IRn-m
Dados x0 tal que Ax0 = b e a matriz Z.
e portanto d tem de satisfazer
Para k = 0,1,2,...
∇f ( x k )T Zd
Se || ZT∇f(xk) || < ε, termine com ponto estacionário xk Minimize
Zd 2

De outro modo determine uma direcção descendente pk = Zd com Sujeito a d∈IRn-m

[ZT∇f(xk)]Td < 0 Tal como vimos em optimização não linear sem restrições, tem-se

Calcule o passo αk usando o critério de Armijo ou da Minimização Zd = −∇f(xk)

Faça xk+1 = xk + αkpk Donde multiplicando por ZT vem

⎧⎪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

(pk)T∇f(xk) = dTZT∇f(xk) = −[ZT∇f(xk)]T(ZTZ)−1[ZT∇f(xk)] < 0

e pk é uma direcção descendente.

71 72
Programação Não Linear Jorge P. J. Santos Programação Não Linear Jorge P. J. Santos

Exemplo: Consideremos o problema e

Minimize f(x) = x12 + x22 ∇f ( x 0 )T p 0 −2 1


α0 = − =− =
0 T 0 4 2
Sujeito a x1 + x2 = 1 ( p ) Hp

E apliquemos o Método da Descida Máxima com Critério de Donde

x0 = (1,0). ∇f(x) = [2x1 2x2]T,


⎡ 1⎤ 1 ⎡− 1⎤ ⎡ 2 ⎤
Minimização. Seja Como então 1
1 0 0 ⎢
x = x + α0p = ⎢ ⎥ + ⎢ ⎥ = 1 ⎥
∇f(x0) = [2 0]T. Além disso ⎣0⎦ 2 ⎣ 1⎦ ⎢⎣ 2 ⎥⎦

⎡ 1⎤ Na segunda iteração tem-se


A = [1 1] ⇒ Z= ⎢ ⎥
⎣−1⎦
T
⎡1⎤ ⎡ 1⎤ ⎡1⎤
Donde ∇f(x1) = ⎢1⎥ ⇒ Z ∇f(x ) = ⎢ ⎥ ⎢ ⎥ = 0
T 1
⎣⎦ ⎣−1⎦ ⎣1⎦
T
⎡ 1⎤ ⎡ 1⎤ ⎡2⎤ Então x1 é ponto estacionário do programa, e como f é convexa em IR2, x1
ZTZd = −ZT∇f(x0) ⇒ [1 −1] ⎢ ⎥ d = − ⎢ ⎥ ⎢ ⎥
⎣−1⎦ ⎣−1⎦ ⎣0⎦
é mínimo global de f no conjunto de restrições dado.
⇒ 2d = −2 ⇒ d = −1

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

Passo 1 – (i) Se |I(xk)| ≥ n ou ZkT∇f(xk) = 0, calcule λ a partir de Passo 4 – Faça

− xk+1 = xk + αkpk
A Tλ = ∇f(xk)

Se αk = αmax acrescente a I(xk) as linhas onde αmax é atingido e actualize


Se λ ≥ 0, xk é ponto estacionário de f em K e termine. De outro modo seja
Zk+1. De outro modo faça Zk+1 = Zk. Vá para o Passo 1 com k = k + 1.
λr = min{λi: i∈I(xk), λi < 0}

Faça I(xk) = I(xk) − {r} e actualize Zk com mais uma coluna. Vá para o

Passo 2.

(ii) Se ZkT∇f(xk) ≠ 0 vá para o Passo 2.

Passo 2 – Calcule uma direcção pk descendente e admissível para o


problema

Minimize f(x)
Sujeito a Aix = bi, i∈I(xk)

isto é, um vector pk satisfazendo

Aipk = 0, i∈I(xk), ∇f(xk)]Tpk < 0

Passo 3 – Calcule αmax a partir de

⎧ ⎧⎪ 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 )

e determine αk usando o critério de Armijo ou da minimização

75 76

Вам также может понравиться