MINI-CURSO DE
PROGRAMAÇÃO NÃO-LINEAR
1. Introdução
2. Análise Convexa
3. Problemas de Otimização
4. Otimização Irrestrita – Métodos de Busca
4.1. Busca Unidimensional
4.2. Busca Multidimensional
5. Otimização Irrestrita - Condições de Otimalidade
5.1 Condições de Otimalidade
5.2 Busca Unidimensional
5.3 Busca Multidimensional
5.4 Aplicações
6. Otimização Restrita
6.1 Restrições de desigualdade
6.2 Restrições mistas
6.3 Formulação Convexa
Bibliografia:
2
1. Introdução
- Processamento de sinais;
- Sistemas de potência (Fluxo de Potência Ótimo: minimização de perdas,
minimização dos custos de geração, Planejamento Energético...);
- Identificação de parâmetros (Problema de mínimos quadrados);
- Otimização da produção, problema de transportes e etc (modelos de
programação linear).
3
2. Análise Convexa
a) Combinação Convexa:
com λ ≥ 0 e ∑λi = 1 são combinações convexas dos elementos x1, x2, ... xp ∈ S.
b) Conjunto Convexo:
A Figura 2.1 ilustra a noção de conjunto convexo. Note que na Figura 2.1 b) o segmento
de linha que une x1 e x2 não está completamente contido em S.
x2
x1
a) Convexo b) Não-Convexo
c) Função Convexa:
Seja S ⊂ ℜn um conjunto convexo. Diz-se que f(x) é uma função convexa se para todos
x1, x2 ∈ S e todo λ ∈ [0,1]:
f [λ x1 + (1 − λ ) x2 ] ≤ (1 − λ ) f ( x1 ) + λ f ( x2 )
4
f(x2)
f(x1)
x1 x2 x
S
Figura 2.2 – Gráfico de uma função convexa
4 4
f(x )
3.5 3.5
3 3
2.5 2.5
2 2
1 1
x
0 0
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2 -4 -3 -2 -1 0 1 2 3 4
5
Observação:
• Algumas funções apresentam mínimos e máximos globais em conjuntos
ilimitados. Exemplo: f(x) = sin(x)
S
3
máximo
1
0
0 1 2 3 4 5
mínimo global
mínimo local
Na prática pode-se garantir apenas que o ponto seja de mínimo/máximo local. Para
garantia de mínimo/máximo global, há a necessidade de propriedades de convexidade.
Assim:
6
f) Função Quasi-Convexa:
f [λ x1 + (1 − λ ) x2 ] ≤ max { f ( x1 ), f ( x2 )}
x1 x2
Figura 2.7 – Função quasi-convexa
O ponto c pode ser escolhido como qualquer ponto, o qual é mínimo global de f.
h) Função Unimodal:
7
Não é unimodal É unimodal
8
3. Problemas de Otimização
9
Exemplo:
Minimizar x1 + x2
Sujeito a: - x1 ≤ 0
- x2 ≤ 0
1 - x1 x2 ≤ 0
3 S
2
-2
-3
-4
-5
-5 -4 -3 -2 -1 0 1 2 3 4 5
4 f(x) = 5
S
f(x) = 4
3
f(x) = 3
f(x) = 2
1
0
0 1 2 3 4 5
b) Problema de Factibilidade
ou determinar que C = ∅
10
Este problema é equivalente ao problema (3.1) considerando que f(x) = 0. Assim:
0, se C ≠ ∅
f * ( x) =
+ ∞, se C = ∅ (convenção)
Restrições de desigualdade:
No problema de otimização na forma padrão adota-se por convenção que o
segundo membro (lado direito) da restrição de igualdade e desigualdade é igual a zero.
Isto pode ser sempre obtido fazendo com que a restrição de igualdade pi ( x ) = ~
pi ( x ) seja
expressa por:
hi ( x) = 0 ⇒ hi ( x) = pi ( x ) − ~
pi ( x)
De modo similar, a restrição de desigualdade gj ≥ 0 pode ser expressa por:
g j ( x) ≥ 0 ⇒ − gj ≤ 0
Função objetivo:
Problemas de maximização também podem ser resolvidos como problemas de
minimização:
11
Definições Importantes
a) Vetor Gradiente:
É obtido a partir das derivadas parciais da função em relação as variáveis x1...xn de f(x).
∂f ∂f ∂f T
∇f ( x ) = ( , ,......, )
∂x1 ∂x2 ∂xn
f(x)
função f(x)
gradiente
a) b)
Figura 3.3 – a) Gráfico de f(x) b) projeção das retas de nível
b) Direções Factíveis:
Uma direção d é factível quando qualquer movimento ao longo desta direção não viola
nenhuma restrição do problema:
∃ ε > 0 tal que para 0 ≤ α ≤ ε : x + αd ∈ S
d factível
d não factível
região factível
x2
x1 S
12
4. Otimização Irrestrita – Métodos de Busca
Considere o problema:
minimizar f (x)
sujeito a ≤ x ≤ b .
Como não se conhece o ponto exato de mínimo, chama-se este intervalo [ak, bk] de
intervalo de incerteza. A idéia do método de busca unidimensional é excluir a cada
iteração partes do intervalo de incerteza que não contém o mínimo da função,
reduzindo, o intervalo de incerteza até que o intervalo seja tão pequeno quanto desejado
(bk − a k ) ≤ ε , sendo ε especificado como uma tolerância. O método baseia-se no fato da
função f(x) ser unimodal/estritamente quasi-convexa (existe um x* ∈ (ak, bk) tal que f(x)
é estritamente decrescente em [ak, x*), e estritamente crescente em (x*,bk].
Teorema: Seja f(x) uma função convexa no intervalo [a, b]. Seja λ e µ ∈[a, b], tal que
λ < µ . Se f(λ) > f(µ), então f(z) ≥ f(µ) para todo z ∈[a, λ). Se f(λ) ≤ f(µ), então
f(z) ≥ f(λ) para todo z ∈(µ, b].
De uma maneira geral, os métodos de busca que não utilizam derivadas (tais como
Dicotômica, Fibonacci, Segmento Áureo ... ) baseiam-se neste princípio. Estes métodos
também são chamados de busca seqüencial.
f(µ)
f(λ) f(λ)
f(µ)
a λ µ b a λ µ b
Busca Dicotômica
Este método de busca realiza a redução do intervalo com duas avaliações da função
objetivo. A partir do centro do intervalo de incerteza, a função objetivo é avaliada em
dois pontos:
ak + bk ak + bk
λk = +ε µk = −ε
2 2
13
• Quando f(λk) > f(µk), sabes-se que o ponto de mínimo não se encontra no
intervalo [ak, λk]. Assim, o novo intervalo de incerteza será [λk, bk].
• Se f(λk) < f(µk), sabes-se que o ponto de mínimo não se encontra no intervalo
[µk, bk]. Assim o novo intervalo de incerteza será [ak, µk].
Algoritmo:
1. Se (bk - ak) < l, pare. O mínimo da função está no intervalo [ak, bk].
Senão, considere:
λ = [ (ak + bk)/2 - ε ] e µ = [ (ak + bk)/2 + ε ]
Vá para o passo 2.
Método da Biseção
Algoritmo:
14
Exemplo:
f(x) = x2 + 2x
s.a. -3 ≤ x ≤ 6
Vamos supor que desejamos reduzir o intervalo de incerteza inicial para um intervalo de
incerteza final cujo tamanho l seja menor ou igual a 0.2. Assim, o valor de n que
satisfaz:
(½)n ≤ l/(b1- a1)
0.2/9 = 0.0222
Como:
(½)5 = 0.0313
(½)6 = 0.0156 ⇒ n=6
(½)7 = 0.0078
Observe que o tamanho do intervalo de incerteza final é 0.1407, que é menor que 0.2.
Busca Exaustiva
x1 x2 x3 x4 x5 x6
15
Como a função é avaliada em todos os n pontos simultaneamente, este método pode ser
chamado de busca simultânea. Este método é relativamente ineficiente quando
comparado com os métodos de busca seqüencial (Dicotômica, Biseção, Fibonacci ...),
nos quais a informação adquirida a partir da avaliação inicial é utilizada nas avaliações
seguintes.
Problema:
min
x
f ( x)
Neste método caminha-se na direção contraria a do gradiente da função, ou seja, na
direção em que a função decresce:
d = −∇f (x)
Algoritmo:
16
Neste método d é a direção de busca e α é o tamanho do passo a ser dado na direção d.
Note que o passo 2 refere-se a um subproblema de busca unidimensional, tendo como
variável apenas αk , pois sabe-se os valores de xk e dk.
Exemplo:
Min. f(x) = (x1-2)4 + (x1-2x2)2
k +1 k
x1 x1 k 1
d
x = x + α d
2 2 2
17
5. Otimização Irrestrita - Condições de Otimalidade
Minimizar f(x)
Sujeito a: x ∈ ℜn
∇xf(x*)T d ≥ 0 (5.1)
Ilustração:
Produto Escalar:
Para o caso irrestrito, x* é interior a Ω, ou seja, todas as direções são factíveis. Logo:
∇xf(x*)T = 0 (5.2)
18
5.2. Condições necessárias de segunda ordem:
1. ∇xf(x*)T d ≥ 0 (5.3)
2. Se ∇xf(x*)T d = 0 então dT ∇2xf(x*) d ≥ 0
∇xf(x*)T = 0 (5.4)
dT ∇2xf(x*) d ≥ 0
onde ∇2xf(x*) é a matriz Hessiana da função, também utilizada com a notação H(x). A
equação 5.4 equivale a dizer que H(x) é semi-definida positiva (H ≥ 0). A matriz
Hessiana é determinada por:
∂ f ( x) ∂ f ( x) ∂ 2 f ( x)
2 2
∂x 2 L
∂x1∂x2 ∂x1∂xn
2 1
∂ f ( x) ∂ 2 f ( x) ∂ 2 f ( x)
L
Η ( x) = ∇ 2 f ( x) = ∂x ∂x ∂x22 ∂x2 ∂xn
2 1
M M O M
∂ 2 f ( x) ∂ 2 f ( x) ∂ f ( x)
2
L
∂xn ∂x1 ∂xn ∂x2 ∂xn2
1. ∇xf(x*)T = 0 (5.4)
2. H(x) > 0 (H é positiva definida)
19
Como identificar se H é definida positiva?
Pode-se ainda verificar se uma matriz é definida positiva ou negativa através do cálculo
de seus determinantes (menores principais líderes). Considere a matriz:
20
Teorema:
Seja f(x) ∈ C2 e S um conjunto convexo. Então f(x) é convexa em S se e somente se a
matriz H(x) for semi-definida positiva para todos os x ∈ S.
Teorema:
Seja S um conjunto convexo e f(x) uma função em S com f(x) ∈ C2. Se a matriz H(x)
for definida positiva para todos os x ∈ S então f(x) é estritamente convexa. No entanto,
se f(x) é estritamente convexa então a H(x) é semi-definida positiva para todos os x ∈ S.
Teorema:
Seja S um conjunto convexo e considere o problema de minimizar f(x) em S. Suponha
que x* é um mínimo local do problema. Então:
1. Se f(x) é uma função convexa, então x* é mínimo global do problema.
2. Se f(x) é uma função estritamente convexa, então x* é mínimo global estrito (único)
do problema.
Teorema:
Seja f(x) ∈ C2 uma função convexa, então as condições de 1ª ordem são necessárias e
suficientes para que x* seja um ponto de mínimo global.
Exemplos:
Exemplo 1) Minimizar f ( x) = x 2 − 1
Condição de suficiência:
f ′′( x) = 2
25
20
15
10
y
-5
-5 -4 -3 -2 -1 0 1 2 3 4 5
x
21
Exemplo 3) Minimizar f(x1,x2) = x12 – x1x2 + x22 – 3x2
Condição de suficiência:
2 − 1
H = ⇒ ∆1 = 2 > 0 e ∆ 2 = 4 − 1 = 3 > 0
− 1 2
5
100 ponto ótimo ponto ótimo
4
80 3
2
60
f(x1,x2)
1
40
0
x2
20
-1
0 -2
5
-20 -3
5
0 -4
0
-5 -5
-5 -5 -4 -3 -2 -1 0 1 2 3 4 5
x2 x1
x1
22
6. Otimização Restrita
Definições Importantes:
• Restrições Ativas e Inativas: Uma restrição g(x) ≤ 0 está ativa em um ponto factível
x* se g(x*) = 0, e inativa se g(x*) < 0.
• x*
∇f (x*)
• x* g2(x) g2(x)
23
Interpretação Geométrica:
Obtém-se como solução ótima restrita x* = (1,1), sendo a solução ótima irrestrita x =
(2,1). O gradiente da função no ponto x* é: ∇f(x,y) = [-2 0]T. O gradiente das restrições
no ponto x* são: ∇g1(x,y) = [2 -1]T e ∇g2(x,y) = [1 1]T. Através da figura abaixo nota-
se que -∇f está dentro do cone gerado pelos gradientes das restrições limitantes do
problema.
Se x* é um mínimo local e se ∇f ( x*)T d < 0 (d é uma direção que minimiza f), então d
não é uma direção factível. Em outras palavras, Se x* é mínimo local, então toda
direção que minimiza f não é factível (já está no mínimo), portanto:
Na figura, note que em x* não há direção factível tal que ∇f(x)Td < 0.
2.5
1.5
y
∇g2(x*)
x*=(1,1)
(2,1)
1
∇f (x*) -∇f (x*)
∇g1(x*)
0.5
0
0 0.5 1 1.5 2 2.5 3
x
Figura 6.2 – Exemplo
24
a) Condições necessárias de 1ª ordem de KKT
Considere o problema (6.2) com f e g diferenciáveis. Assuma que x* é ponto regular.
Seja x* um mínimo local do problema, então existe escalares µj ≥ 0 (j∈J) tal que:
Esta condição necessária equivale a dizer que o negativo do gradiente da função é uma
combinação convexa do gradiente das restrições limitantes, ou seja, -∇f(x*) deve estar
dentro do cone gerado pelos gradientes das restrições limitantes do problema.
Generalizando, para incluir todas as restrições (ativas e inativas), pode-se escrever:
se µj = 0 então gj(x*) < 0 ⇒ restrição inativa
µj > 0 apenas se gj(x*) = 0 ⇒ restrição ativa
Sendo o produto µj gj = 0 para todo j. Esta igualdade é chamada de condição de folga
complementar.
u j ≥ 0, u j g j = 0
Notação Vetorial:
∇f ( x*) + ∇g ( x*)u = 0
u ≥ 0, u j g j = 0
T
NOTA: Para que o ponto seja candidato a ótimo local, ∇gj(x)Td ≤ 0, como pode ser observado
na figura.
Exemplos:
Exemplo 1)
Min - x1
g1(x) = - x2 ≤ 0
g2(x) = - (1 - x1)3 + x2 ≤ 0
25
1
[0 − 1] = 0
0 ⇒ Atende a condição !!
[0 1] = 0
1
0
A direção d atende a condição ∇gj(x*)Td ≤ 0 mesmo apontando para fora da região
factível. Porém, esta condição só é válida quando os vetores gradiente das restrições
ativas são LI, o que não acontece neste caso.
1
0.5
∇g2
x2
d
0
∇g1
-0.5
0 0.5 1 1.5
x1
Exemplo 2)
A partir do gráfico abaixo, podemos observar que o ponto x1 satisfaz as condições de
necessárias de KKT, pois -∇f(x1) está dentro do cone gerado pelos gradientes das
restrições limitantes em x1 (∇g1(x1) e ∇g2(x1)). Por outro lado, -∇f(x2) está fora do cone
gerado pelos gradientes das restrições limitantes em x2 (∇g2(x2) e ∇g3(x2)). Logo, o
ponto x2 não atende as condições necessárias de KKT.
∇g1 -∇f
∇g2
x1 -∇f
∇g2
g1=0 x2 ∇g3
g2=0
g3=0
26
b) Condições necessárias de 2ª ordem de KKT
u j ≥ 0, u j g j = 0
L é semi - definida positiva em M
u j ≥ 0, u j g j = 0
L é definida positiva em M
Minimizar f(x)
Sujeito a: gj(x) ≤ 0, j = 1...p (6.4)
hi(x) = 0, i = 1...m
27
a) Condições necessárias de 1ª ordem de KKT
p m
∇f ( x*) + ∑ u j ∇g j ( x*) + ∑ λi ∇hi ( x*) = 0 (6.5)
j =1 i =1
u j ≥ 0, λi qualquer, ujgj = 0
Minimizar f(x)
Sujeito a: gj(x) ≤ 0, j = 1...p
hi(x) = 0, i = 1...m
28
Formulação convexa:
f(x) convexa
gj(x) , j = 1 ... p convexas
hi(x) , i = 1 ... p lineares
KKT necessária para mínimo local ⇒ KKT suficiente para min. global
Exemplos:
- Condições de Suficiência:
L(x*) = F(x*) + ∑µjGj(x*), j ∈ J
4 x + 2 x2 − 10 4 2
∇f ( x ) = 1 ⇒ F ( x ) = 2 2
2 x1 + 2 x2 − 10
29
2x 2 0
∇g 1 ( x ) = 1 ⇒ G1 ( x ) =
2 x2 0 2
4 + 2 µ1 2 6 2
L( x*) = =
2 2 + 2 µ1 2 4
Plano tangente:
M’ = {d : ∇gj(x*)Td = 0}
∇g1(x*) = [2x1 2x2] = [2 4]
∇g1(x*)d = [2 4][d1 ; d2] = 2d1 + 4d2 = 0 ⇒ d2 = -d1/2
30
7. Função Lagrangeana
Seja o problema:
Minimizar f(x)
Sujeito a: gj(x) ≤ 0, j = 1...p (7.1)
hi(x) = 0, i = 1...m
∇ x £ ( x, µ , λ ) = 0 → ∇f ( x) + ∑ µ j ∇g j ( x) + ∑ λi ∇hi ( x) = 0
∇ µ £ ( x, µ , λ ) ≤ 0 → g j ( x) ≤ 0, j = 1... p
∇ λ £ ( x, µ , λ ) = 0 → hi ( x) = 0, i = 1...m
u j ≥ 0, λi qualquer, u j g j = 0
7.1. Dualidade
Teorema:
A função dual θ(µ) é sempre côncava, mesmo que f(x) não seja convexa.
31
A função Lagrangeana incorpora as restrições do problema Primal. O problema com
restrições (7.1) pode ser resolvido pelo problema equivalente dado pela equação 7.4, o
qual é irrestrito:
∇f ( x) + ∑ µ j ∇g j ( x) + ∑ λi ∇hi ( x) = 0 (7.6)
£(x, µ)
µ x
Figura 7.1 – Ponto sela-nó
O conceito de £(x,µ) pode ser estendido para casos de maior dimensão (n-restrições).
32
um limite inferior para o valor ótimo de f(x). Esta propriedade é utilizada em problemas
não convexos de difícil solução.
minimiza f(x)
GAP DE DUALIDADE ≠ 0
maximiza θ(µ)
Seja xo e µo soluções factíveis do problema primal e dual tal que θ(µo) = f(xo), dizemos
que a dualidade é forte (gap=0). O caso de dualidade forte não é assegurado para todos
os problemas.
minimiza f(x)
GAP DE DUALIDADE = 0
maximiza θ(µ)
Teorema:
Suponha f(x) e g(x) funções convexas e diferenciáveis (problema convexo). Suponha
que existe (xo,µo) que satisfaz KKT. Então (xo,µo) são soluções ótimas do (P) e (D) com
gap de dualidade nulo.
Teorema:
Um ponto (xo,µo) é ponto de sela de £(x,µ) se e somente se xo resolve (P), µo resolve (D)
para µ ≥ 0 e θ(µo) = f(xo) (gap nulo).
33
• Max. θ(µ) = µ2/4 + µ2/4 + µ(–µ/2 – µ/2 + 4) = -µ2/2 + 4µ
∂θ
= −µ + 4 = 0 → µ = 4
∂µ
x1 = x 2 = 4 / 2 = 2
f ( x) = 8
θ(µ)
4 µ
NOTA 1: A função θ(µ) é côncava
∑ h (x ) = 0
k =1
k k
k =1
q
£(x, λ , µ ) = ∑ £ k (x, λ , µ )
k =1
34
E cada subproblema k pode ser resolvido separadamente:
min x ... x £ k (x, λ , µ )
1 q
A solução destes subproblemas pode ser usualmente obtida de modo eficiente, uma vez
que os subproblemas são de dimensão menor do que o problema original.
min {£(x,λµ)}
35