Anda di halaman 1dari 47

D

R
A
F
T
Universidade Federal de Minas Gerais
Escola de Engenharia
Departamento de Engenharia Eletrica
Notas de Aula de Otimizacao
Jaime A. Ramrez
Felipe Campelo
Frederico G. Guimaraes
Lucas S. Batista
Ricardo H. C. Takahashi
Outubro de 2012
D
R
A
F
T
.
D
R
A
F
T
Sumario
Sumario i
Lista de Figuras i
3 Metodos Numericos para Otimizacao Irrestrita 1
3.1 Introduc ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
3.2 Estrutura Basica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
3.3 Problema Exemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
3.4 Metodo de Busca em Direcoes Aleatorias . . . . . . . . . . . . . . . . 4
3.4.1 Exemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.5 Metodo do Gradiente . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.5.1 Calculo do Gradiente . . . . . . . . . . . . . . . . . . . . . . . 7
3.5.2 Otimizacao Unidimensional . . . . . . . . . . . . . . . . . . . 9
3.5.3 Criterios de Parada . . . . . . . . . . . . . . . . . . . . . . . . 13
3.5.4 Convergencia . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.5.5 Exemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.6 Aproxima coes Quadr aticas . . . . . . . . . . . . . . . . . . . . . . . . 16
3.6.1 Metodo de Newton . . . . . . . . . . . . . . . . . . . . . . . . 18
3.6.2 Metodo de Newton Modicado . . . . . . . . . . . . . . . . . 18
3.6.3 Determinac ao Numerica da Hessiana . . . . . . . . . . . . . . 20
3.6.4 Construcao da Hessiana . . . . . . . . . . . . . . . . . . . . . 21
3.6.5 Correcao de Posto 1 . . . . . . . . . . . . . . . . . . . . . . . 22
3.6.6 Metodos Quase-Newton . . . . . . . . . . . . . . . . . . . . . 26
3.6.7 Metodo do Gradiente Conjugado . . . . . . . . . . . . . . . . 28
3.7 Metodos Sem Derivadas . . . . . . . . . . . . . . . . . . . . . . . . . 34
3.7.1 Metodo de Hooke-Jeeves . . . . . . . . . . . . . . . . . . . . . 34
3.7.2 Metodo de Nelder-Mead . . . . . . . . . . . . . . . . . . . . . 36
3.8 Exerccios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
i
D
R
A
F
T
ii SUM

ARIO
D
R
A
F
T
Lista de Figuras
3.1 Soluc ao Graca do Problema Exemplo . . . . . . . . . . . . . . . . . 5
3.2 Problema exemplo solucao usando o Metodo de Busca em Dire coes
Aleat orias. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.3 Problema exemplo varia cao da funcao objetivo versus o n umero de
iterac oes para o Metodo de Busca em Direc oes Aleatorias. . . . . . . 8
3.4 Problema exemplo solu cao usando o Metodo do Gradiente. . . . . . 16
3.5 Problema exemplo varia cao da funcao objetivo versus o n umero de
iterac oes para o Metodo do Gradiente. . . . . . . . . . . . . . . . . . 17
3.6 Problema exemplo solu cao usando o Metodo DFP. . . . . . . . . . . 29
3.7 Ilustrac ao de dois vetores conjugados em relac ao `a matriz Hessiana
da func ao quadr atica cujas curvas de nvel sao mostradas. . . . . . . . 30
3.8 Ilustrac ao das operac oes de reexao, contrac ao e expansao do simplex
no metodo Nelder-Mead. . . . . . . . . . . . . . . . . . . . . . . . . . 37
iii
D
R
A
F
T
iv LISTA DE FIGURAS
D
R
A
F
T
Captulo 3
Metodos Numericos para
Otimizacao Irrestrita
3.1 Introducao
No captulo anterior, vimos a caracteriza cao da func ao objetivo, func oes de restri cao,
e as condi coes de otimalidade condi coes de Karush-Kuhn-Tucker que servem
de base para encontrar a soluc ao de problemas de otimizac ao utilizando tecnicas
numericas.
O objetivo deste captulo e o estudo de metodos numericos para otimizac ao
irrestrita, em particular Metodos de Direc oes de Busca. Esses metodos sao a base
de v arios pacotes comerciais de otimizac ao e foram desenvolvidos a partir da ideia
b asica de fazer o algoritmo evoluir encontrando novos pontos situados em dire coes
para as quais a funcao objetivo decresca, em rela cao ao ponto corrente.
A vers ao mais primitiva dessa famlia de metodos e o Algoritmo do Gradiente:
dado um ponto inicial no espaco de busca, obtem-se um novo ponto situado sobre
a reta denida por esse ponto e pelo gradiente da func ao objetivo. Essa e a dire cao
para a qual, localmente, a fun cao mais rapidamente decresce, no sentido contr ario
ao do vetor gradiente. Determina-se o novo ponto como aquele em que a funcao
objetivo atinge o mnimo sobre essa reta. A partir desse novo ponto, repete-se o
processo, ate que seja satisfeito um criterio de convergencia.
Ao longo das decadas de 50 e 60 do seculo XX, tal metodo b asico foi aperfeicoado
para permitir que a dire cao de busca, na qual era feita a busca unidimensional, so-
fresse uma correc ao, dando origem a uma famlia de metodos chamados Metodos
Quase-Newton. Tal correc ao leva em conta mais informac oes a respeito da funcao
objetivo; alem do valor de seu gradiente no ponto corrente, procura-se tambem levar
em considerac ao a curvatura da func ao. Aproximac oes de segunda ordem, por exem-
plo, levando em consideracao estimativas da Hessiana da funcao objetivo, permitem
signicativa acelera cao de convergencia dos metodos.
Os metodos agrupados neste captulo, sob a denominacao de Metodos de
Direc ao de Busca, tem essa raiz, e possuem em comum as seguintes caractersticas:
1. Cada novo ponto e obtido a partir de um processo de otimiza cao unidimensi-
onal, que tem como ponto de partida o ponto anterior.
1
D
R
A
F
T
2 Notas de Aula de Otimizac

ao
2. A direc ao na qual e feita a busca unidimensional e uma func ao das avaliac oes
anteriores da funcao objetivo.
O captulo e dividido em sete secoes. Inicialmente, e denida a estrutura b asica
dos metodos de direcao de busca. Posteriomente, e apresentado o problema exemplo
que ser a utilizado para ilustrar as caractersticas dos metodos que serao estudados
no captulo. Entao, e descrito o metodo de busca em dire coes aleatoria. Este
e seguido pelo metodo do gradiente, que inclui a descri cao do metodo da sec ao
aurea para minimiza cao de func oes unidimensionais. Em seguida, e apresentado
o metodo de aproximac oes quadr aticas, i.e., o metodo de Newton e a famlia de
metodos quase-Newton, incluindo os metodos de Davidon-Fletcher-Powell (DFP) e
Broyden-Fletcher-Goldfarb-Shanno (BFGS). Finalmente, a ultima se cao dedica-se
a metodos sem derivada: metodo de Hooke-Jeeves e metodo de Nelder-Mead. Ao
nal do captulo e apresentada uma lista de exerccios. Leitura complementar sobre
os metodos discutidos neste captulo pode ser encontrada nas referencias [1] [2].
3.2 Estrutura Basica
Seja o problema de otimizac ao mono-objetivo irrestrito:
xxx

= arg min
xxx
f(xxx)
(3.1)
sendo que xxx R
n
e f() : R
n
R
1
. Dado um ponto inicial xxx
0
= xxx

, obtem-se uma
sequencia xxx
k
tal que xxx
k
xxx

a partir do algoritmo de otimiza cao. A famlia dos


algoritmos de dire cao de busca possui a estrutura:
Algorithm 1: Algoritmo de Dire cao de Busca
1 k 0;
2 while (criterio de parada nao for satisfeito) do
3 ddd
k
hhh(xxx
1
, . . . , xxx
k
, f(xxx
1
), . . . , f(xxx
k
));
4
k
arg min

f(xxx
k
+ ddd
k
);
5 xxx
k+1
xxx
k
+
k
ddd
k
;
6 k k + 1;
7 end
Nessa estrutura, hhh(, . . . , ) e uma fun cao que em geral sera recursiva, isto e, nao
ir a depender explicitamente dos pontos anteriores, mas ir a armazenar sua inuencia
em variaveis intermediarias. Um algoritmo ir a diferir de outro essencialmente pela
maneira como e calculada a direc ao de busca ddd
k
, ou na escolha dessa func ao. No
caso do Metodo do Gradiente, tem-se simplesmente que:
ddd
k
= f(xxx
k
) (3.2)
No caso do Metodo de Newton, tem-se que:
D
R
A
F
T
M

etodos Num

ericos para Otimizac

ao Irrestrita 3
H
k
= Hessiana(f(xxx
k
)) (3.3)
e
ddd
k
= H
1
k
f(xxx
k
) (3.4)
Tanto o gradiente quanto a Hessiana s ao determinados por meio de diversas
avaliac oes da funcao f(), tendo em vista a regra basica de que esta e o unico tipo
de informac ao disponvel. A justicativa para a utilizac ao dessas direc oes de busca
ser a estudada neste captulo. Os metodos chamados de quase-Newton substituem
a avaliac ao da Hessiana da fun cao objetivo pela constru cao de uma estimativa para
essa Hessiana.
Os elementos para a construc ao de algoritmos de direc oes de busca sao, portanto:
(i) um metodo de calculo de direc oes de busca, possivelmente envolvendo o calculo
de estimativas para o gradiente e para a Hessiana da funcao objetivo;
(ii) um metodo de minimizac ao de fun coes de uma unica vari avel;
(iii) um criterio de decis ao que permita armar que o algoritmo convergiu para
uma soluc ao satisfat oria, podendo ser terminada sua execuc ao.
Esses elementos ser ao examinados a seguir. Antes porem, e apresentado o pro-
blema exemplo que ser a utilizado para ilustrar as caractersticas dos metodos discuti-
dos neste captulo. A natureza do processo de convergencia, intrnseco aos metodos
de direc ao de busca, e estudada atraves do exame de convergencia de um algo-
ritmo de interesse apenas conceitual: o algoritmo do metodo de busca em direc oes
aleat orias.
3.3 Problema Exemplo
Considere o problema:
xxx

= arg min
xxx
f(xxx) = 2x
2
1
+ x
2
2
+ 2x
1
x
2
+ x
1
2x
2
+ 3
Sujeito a:
_
6 x
1
6; 6 x
2
6
(3.5)
que representa a minimizac ao de uma func ao de duas vari aveis f(x
1
, x
2
). Neste
caso, a regi ao factvel e denida pelos limites inferiores e superiores das variaveis
x
1
e x
2
. Por ser uma funcao de apenas duas variaveis, f(x
1
, x
2
) pode ser repre-
sentada no plano x
1
x
2
atraves de curvas de nvel, conforme indicado na Figura
3.1. Por inspe cao, obtem-se que a solu cao e o ponto x
1
= 1.5; x
2
= 2.5. Este
problema exemplo sera utilizado nas sec oes seguintes para estudar as caractersticas
dos metodos de direc ao de busca. Antes porem, analisaremos as condicoes de otima-
lidade para assegurar que a soluc ao obtida por inspecao e de fato o ponto mnimo
do problema.
As condic oes necess arias de primeira ordem requerem:
D
R
A
F
T
4 Notas de Aula de Otimizac

ao
f()
x
1
= 4x
1
+ 2x
2
+ 1 = 0 (3.6)
f()
x
2
= 2x
2
+ 2x
1
2 = 0 (3.7)
que resulta em um sistema de duas equac oes e duas inc ognitas, cuja soluc ao e x

1
=
1.5 e x

2
= 2.5.
As condic oes sucientes de segunda ordem requerem que a matriz Hessiana (3.8)
seja positiva denida.
H =
_
4 2
2 2
_
(3.8)
A vericacao se a matriz Hessiana e positiva denida sera feita por meio de dois
metodos: (i) c alculo dos autovalores de H, e (ii) c alculo dos determinantes de todas
as submatrizes que envolvem a diagonal principal de H.
C alculo dos autovalores de H:

4
1
2
2 2
2

= (4
1
)(2
2
) 4 = 0
Os autovalores s ao
1
= 5.24 e
2
= 0.76; a matriz e positiva denida.
C alculo dos determinantes de todas as submatrizes que envolvem a diagonal
principal de H:
|4| > 0
_
4 2
2 2
_
= 4 > 0
A matriz e positiva denida.
Com isso, conclui-se que as condicoes de segunda ordem sao satisfeitas e que
x

1
= 1.5 e x

2
= 2.5 e de fato o ponto de mnimo da fun cao.
3.4 Metodo de Busca em Direc oes Aleatorias
Considere-se o Algoritmo 2 apresentado a seguir.
A func ao rand(n, 1) e denida tal que sua sada e um vetor de n componen-
tes aleatorios independentes e identicamente distribudos, segundo uma distribuic ao
Gaussiana, com media 0 e variancia 1. A convergencia desse algoritmo para o ponto
de mnimo de uma fun cao unimodal e estabelecida no teorema a seguir.
D
R
A
F
T
M

etodos Num

ericos para Otimizac

ao Irrestrita 5
0.1
0.3
0.5
1
3
5
10
20
40
40
x1

x
2

Soluo Grfica do Problema Exemplo
6 4 2 0 2 4 6
6
4
2
0
2
4
6
Figura 3.1: Soluc ao Gr aca do Problema Exemplo
Algorithm 2: Algoritmo de Busca em Direc oes Aleat orias
1 k 0;
2 while (criterio de parada nao for satisfeito) do
3 ddd
k
rand(n, 1));
4
k
arg min

f(xxx
k
+ ddd
k
);
5 xxx
k+1
xxx
k
+
k
ddd
k
;
6 k k + 1;
7 end
Teorema 3.1 Seja f(xxx) : R
n
R uma funcao estritamente unimodal, e seja xxx
0
um ponto qualquer em seu domnio. A aplicacao do algoritmo de busca em direcoes
aleatorias a essa funcao, partindo desse ponto, produz uma sequencia [f (xxx
k
)] que se
aproxima de forma monotonica do valor mnimo da funcao, f (xxx

).
Demonstrac

ao: A subrotina de minimizacao unidimensional embutida no algoritmo


implica que, qualquer que seja a dire cao ddd
k
escolhida:
f(xxx
k
) f(xxx
k1
)
o que demonstra a monotocidade da sequencia. A unimodalidade estrita de f(xxx) implica
que para todo ponto xxx
k
= xxx

havera possveis direcoes ddd


k
para as quais ocorra:
f(xxx
k
+
k
ddd
k
) < f(xxx
k
)
para algum valor de
k
. Se uma dessas dire coes nao for escolhida, ocorrera:
xxx
k+1
= xxx
k
D
R
A
F
T
6 Notas de Aula de Otimizac

ao
Do contrario:
xxx
k+1
= xxx
k
e
f(xxx
k+1
) < f(xxx
k
)
Pela constru cao da fun cao aleatoria geradora do vetor ddd
k
, ha uma probabilidade nao-nula
de geracao de direcoes em que ocorre a diminui cao do valor da funcao, de forma que a
aproximacao ca demonstrada, ou seja:
xxx
k
= xxx

, N : f(xxx
k+N
) < f(xxx
k
)

Note-se que o Teorema mostra que ocorre a aproximacao, mas nao a convergencia
para o ponto de mnimo xxx

. De qualquer forma, este e um algoritmo que efetivamente


funcionaria para a minimizac ao de funcoes. A quest ao a ser observada e que uma
escolha adequada da direc ao de busca ddd
k
, em substituicao ` a aleat oria, pode aumentar
em muito a eciencia do algoritmo de minimizac ao. Os diversos algoritmos de
direc oes de busca surgem precisamente quando se propoem diferentes formas de se
fazer tal escolha de uma direcao.
3.4.1 Exemplo
A utilizacao do algoritmo de busca em direc oes aleat orias no problema exemplo
denido pela equac ao (3.5) resulta na trajetoria representada na Fig. 3.2 a seguir.
Nesse exemplo, usou-se o ponto inicial xxx
0
= (4, 4)
T
e o n umero m aximo de iteracoes
xado em 20. O gr aco ilustrando a varia cao do valor da func ao objetivo f(xxx) versus
o n umero de iterac oes e mostrado na Fig. 3.3.
3.5 Metodo do Gradiente
A primeira escolha razo avel para uma direc ao de busca ecaz, ddd
k
, e a da direc ao
contr aria `a do gradiente da func ao no ponto corrente xxx
k
. Essa escolha se justica
com a observac ao de que, localmente, essa e a dire cao na qual a func ao f() decresce
mais rapidamente. Isso dene o Algoritmo do Metodo do Gradiente, esquematizado
no Algoritmo 3.
Esse algoritmo baseia-se apenas na informacao local a respeito da variac ao da
func ao f() em todas as direcoes do espa co, sintetizada no gradiente da fun cao f().
A unica suposi cao implcita na aplicac ao desse algoritmo e a de que a func ao f(xxx)
seja diferenciavel.
Os elementos construtivos desse algoritmo s ao examinados a seguir.
D
R
A
F
T
M

etodos Num

ericos para Otimizac

ao Irrestrita 7
0.1
0.3
0.5
1
3
5
10
20
40
40
x
1
x
2
Problema Exemplo: Mtodo de Busca em Direes Aleatrias
6 4 2 0 2 4 6
6
4
2
0
2
4
6
Figura 3.2: Problema exemplo soluc ao usando o Metodo de Busca em Direc oes
Aleat orias.
Algorithm 3: Algoritmo do Metodo do Gradiente
1 k 0;
2 while (criterio de parada nao for satisfeito) do
3 ggg
k
gradiente(f(), xxx
k
));
4 ddd
k
ggg
k
;
5
k
arg min

f(xxx
k
+ ddd
k
);
6 xxx
k+1
xxx
k
+
k
ddd
k
;
7 k k + 1;
8 end
3.5.1 Calculo do Gradiente
No contexto da teoria de otimizacao, a suposicao mais geral a respeito da informac ao
sobre o sistema sendo otimizado e: disp oe-se apenas de um modelo que, recebendo
como entrada o vetor de vari aveis de otimizacao, fornece o valor da func ao-objetivo
para tal vetor. Portanto, n ao se disp oe, em geral, de func oes que explicitamente
fornecam o gradiente da fun cao objetivo para certa especicac ao do vetor de vari aveis
de otimizac ao, o que torna necessaria a construcao de um algoritmo para calcular o
gradiente de f(xxx).
O algoritmo mais simples que se pode imaginar para o calculo numerico aproxi-
mado do gradiente de uma func ao e decorrencia imediata da denic ao de gradiente,
sendo substituda a formula diferencial por diferen cas nitas. Seja xxx R
n
o vetor
de vari aveis de otimiza cao, e seja eee
i
o vetor denido por:
D
R
A
F
T
8 Notas de Aula de Otimizac

ao
0 5 10 15 20
5
0
5
10
15
20
25
30
35
iteraes
f
(
x
)
Problema Exemplo: Mtodo de Busca em Direes Aleatrias
Figura 3.3: Problema exemplo variac ao da func ao objetivo versus o n umero de
iterac oes para o Metodo de Busca em Direc oes Aleatorias.
eee
i
=
_

_
0
.
.
.
0
1
0
.
.
.
0
_

_
i-esima posicao (3.9)
Considere-se um certo > 0, tal que 0. O algoritmo de c alculo do vetor
gradiente ggg no ponto xxx pode ser denido como:
Algorithm 4: Algoritmo do C alculo do Gradiente
1 k 0;
2 for (i 1 until n) do
3 g
i
[f(xxx + eee
i
) f(xxx)] /;
4 end
5 ggg [g
1
, . . . , g
n
]
T
;
Nota 3.1 Deve-se observar que o Algoritmo de Calculo do Gradiente e exato para
funcoes lineares, ou seja, para funcoes cuja serie de Taylor termina no termo de
primeira ordem. Nesse caso, pode assumir qualquer valor: o calculo sera exato
mesmo para grande.
Exemplo 3.1 Seja a funcao de duas variaveis f(xxx), denida por
D
R
A
F
T
M

etodos Num

ericos para Otimizac

ao Irrestrita 9
f(xxx) = 2x
2
1
+ x
2
2
+ 2x
1
x
2
+ x
1
2x
2
+ 3
Analiticamente, o gradiente dessa funcao e dado por:
f(xxx) =
_
4x
1
+ 2x
2
+ 1
2x
1
+ 2x
2
2
_
Por essa formula analtica, sabe-se que no ponto xxx
0
= [0 0]
T
o gradiente e igual a:
f(xxx
0
) =
_
1
2
_
Utilizando-se o algoritmo de diferencas nitas, para = 0.0001, obtem-se a estima-
tiva de gradiente igual a:

f(xxx
0
) =
_
1.0002
1.9999
_
Deve-se notar que o Algoritmo do Gradiente nao utiliza nenhuma informacao analtica
a respeito da funcao. A unica informacao utilizada e proveniente de avaliacoes da
funcao em diferentes pontos.
3.5.2 Otimizacao Unidimensional
A seguinte linha do algoritmo do gradiente e agora examinada:

k
arg min

f(xxx
k
+ d
k
)
O calculo de
k
e feito xando-se o ponto atual xxx
k
e uma dire cao de busca, ddd
k
.
Isso faz com que a fun cao objetivo, f(xxx), que originalmente seria de n variaveis, ou
seja, dependeria de um vetor xxx de dimens ao n, torne-se agora uma funcao de uma
unica vari avel, .
A otimizac ao de func oes de uma unica vari avel, em uma unica dimens ao, por-
tanto, e tarefa substancialmente mais simples que a otimizac ao em diversas di-
mens oes. Podem-se construir algoritmos diversos para resolver esse problema, ba-
seados em premissas diversas a respeito da func ao a ser otimizada. Uma premissa
comum, que necessariamente possui validade local em um ponto de otimo estrito, e
a de que a funcao-objetivo possua um unico mnimo local no domnio em quest ao.
A estrategia que sera adotada compoe-se de duas etapas:
1. Cercar o valor otimo

k
, o qual determina o ponto de mnimo da busca unidi-
mensional, xxx
k+1
= xxx
k
+

k
ddd
k
. Para tal constroe-se um intervalo [a, b] em que

k
[a, b];
2. Reduzir o intervalo [a, b] ate a precisao desejada, ou, ate que |

| < .
D
R
A
F
T
10 Notas de Aula de Otimizac

ao
Determinacao do Intervalo [a, b]
Determinar o intervalo [a, b] resume-se a cercar

a partir de xxx
k
e dar passos na
direc ao ddd
k
enquanto a funcao () = f(xxx
k
+ ddd
k
) decrescer. Assim que esta func ao
volta a crescer, signica que passou-se por uma depress ao ou por um ponto de
mnimo

naquela direcao (direc ao ddd


k
). Portanto, basta fechar o intervalo [a, b] que
contem esta depress ao.
Esta ideia esta organizada no Algoritmo 5. Admite-se que () e unimodal, a e
b s ao o incio e m, respectivamente, do intervalo [a, b], s e o comprimento do passo
inicial, e NFC representa o contador do n umero de avaliac oes da fun cao objetivo.
Algorithm 5: Algoritmo para Determinacao do Intervalo
1 a 0;
2 b s;
3 calcule (a) = (0) = f(xxx
k
);
4 calcule (b);
5 NCF1 2;
6 while (b) < (a) do
7 a b;
8 (a) (b);
9 b 2b;
10 calcule (b);
11 NFC1 NFC1 + 1;
12 end
13 if NFC1 3 then
14 a 0;
15 else
16 a a/2;
17 end
18 return a, b;
As seguintes observac oes s ao acrescentadas:
(i) Ao dar passos enquanto a func ao decresce est a se fazendo a = b e b = 2b. Essa
escolha e arbitr aria. Pode-se optar por b = b+s, ou b = 3b, etc. A consequencia
direta desta escolha sera um menor ou maior n umero de itera coes e intervalo
nal.
(ii) . . .
Reducao do Intervalo [a, b]
H a v arios metodos, diretos e indiretos, que podem ser utilizados para reduzir o
intervalo [a, b]; veja por exemplo [1] e [3]. Vamos concentrar a nossa atencao no
metodo da sec ao aurea.
Teorema 3.2 Seja uma funcao () : R R. Seja um domnio [a, b] R, no qual
() possui um unico mnimo local x

. Sejam ainda dois pontos x


a
e x
b
tais que
D
R
A
F
T
M

etodos Num

ericos para Otimizac

ao Irrestrita 11
a < x
a
< x
b
< b (3.10)
Se ocorrer
(x
a
) < (x
b
) (3.11)
entao a solucao minimizante x

nao se encontra no intervalo [x


b
, b], e se ocorrer
(x
a
) > (x
b
) (3.12)
entao a solucao minimizante x

nao se encontra no intervalo [a, x


a
].

Demonstrac

ao: Tome-se o interva-lo [a, x


b
]. Nesse intervalo, ha algum ponto x
0
para
o qual f(x
0
) f(x) x [a, x
b
] e x
0
= x
b
, pela hipotese (3.11). Logo, x
0
e um mnimo
local no segmento [a, x
b
]. Como x
0
= x
b
, tem-se que no intervalo [a, b] x
0
permanece sendo
mnimo local. Acrescentando-se agora a hipotese de que so ha um mnimo local em [a, b],
obtem-se que x

= x
0
, que e o resultado pretendido. Para o outro lado do segmento, o
argumento e analogo.
Com esse teorema, e possvel construir um algoritmo que se fundamenta na
l ogica de excluir, a cada passo, um trecho do segmento considerado, de forma a
faze-lo contrair-se. Quando o segmento estiver sucientemente pequeno, pode-
se considerar que ocorreu a convergencia para o ponto de mnimo da otimizacao
unidimensional. A precis ao dessa convergencia, ou seja, o erro maximo cometido,
ser a igual ` a metade do comprimento remanescente.
Existe, claramente, uma maneira de escolher os pontos x
a
e x
b
dentro do seg-
mento, de forma a maximizar, em media, o comprimento do intervalo a ser excludo
a cada passo, minimizando assim o n umero de iterac oes necess ario para se atingir
determinada precis ao. Uma escolha frequentemente adotada e denida pela sec ao
aurea, em que escolhem-se x
a
e x
b
de forma que:
x
a
= b 0.618(b a) (3.13)
x
b
= a + 0.618(b a) (3.14)
O fator 0.618 corresponde ` a raz ao aurea, utilizada pelos antigos gregos para denir
a raz ao dos lados adjacentes de um ret angulo que seria perfeitasob o ponto de vista
estetico.
Com esta escolha, o metodo de minimiza cao de uma func ao real no intervalo
[a, b] para se atingir uma precis ao /2 pode ser denido conforme apresentado no
Algoritmo 6.
Claramente, a cada passo do algoritmo o comprimento do intervalo [a, b] e mul-
tiplicado por um fator menor ou igual a 0.618, de forma que pode-se calcular o
n umero esperado m aximo de passos para se atingir a precis ao desejada:
l
k
0.618
k1
l
1
(3.15)
D
R
A
F
T
12 Notas de Aula de Otimizac

ao
Algorithm 6: Algoritmo da Se cao

Aurea
1 x
a
b 0.618(b a);
2 x
b
a + 0.618(b a);
3
a
(x
a
);
4
b
(x
b
);
5 while (b a > ) do
6 if (
a
>
b
) then
7 a x
a
;
8 x
a
x
b
;
9 x
b
a + 0.618(b a);
10
a

b
;
11
b
(x
b
);
12 else
13 b x
b
;
14 x
b
x
a
;
15 x
a
b 0.618(b a);
16
b

a
;
17
a
(x
a
);
18 end
19 end
20 (a + b)/2;
sendo l
k
o comprimento do intervalo [a, b] no passo k.

E importante salientar que e possvel construir outros algoritmos, inclusive mais


ecientes que o Metodo da Secao

Aurea, para a otimizac ao de funcoes de uma unica
vari avel. Para maiores detalhes, podem ser consultadas as referencias [1] e [3].
Exemplo 3.2 Tome-se a mesma funcao do Problema Exemplo.
f(xxx) = 2x
2
1
+ x
2
2
+ 2x
1
x
2
+ x
1
2x
2
+ 3
O gradiente da funcao e dado por:
f(xxx) =
_
4x
1
+ 2x
2
+ 1
2x
1
+ 2x
2
2
_
No ponto xxx
0
= [1 1]
T
o gradiente e igual a:
f(xxx
0
) =
_
1
2
_
A funcao (), tomada a partir do ponto xxx
0
na direcao de f(xxx
0
), pode ser encon-
trada analiticamente por substituicao da variavel vetorial xxx pela variavel escalar .
Baseando-se neste conceito, tem-se que:
xxx = xxx
0
f(xxx
0
)
D
R
A
F
T
M

etodos Num

ericos para Otimizac

ao Irrestrita 13
ou:
_
x
1
x
2
_
=
_
1
+1
_

_
1
2
_
=
_
1
2 + 1
_
Realizando as substituicoes necessarias, obtem-se a funcao unidimensional:
() = 2(1)
2
+(2+1)
2
+2(1)(2+1)+(1)2(2+1)+3 = 10
2
5+1
Essa funcao possui mnimo para:
d()
d
= 20 5 = 0
ou seja, para = 1/4. Para esse valor de , o novo ponto xxx obtido no espaco
vetorial e:
_
x
1
x
2
_
=
_
1
+1
_

1
4
_
1
2
_
=
_
3/4
+3/2
_
=
_
0.75
+1.5
_
Utilizando o algoritmo da secao aurea, obtem-se uma estimativa do ponto que mi-
nimiza () na direcao considerada. Este ponto e igual a:
_
x
1
x
2
_
=
_
0.7501
+1.4998
_
para uma precisao estabelecida de = 0.001. Deve-se notar que o ponto determinado
nao e o ponto de mnimo global da funcao f(xxx), nem corresponde a um mnimo local
dessa funcao, pois o gradiente nao se anula nesse ponto. Este vetor apenas minimiza
a funcao f() sobre a reta denida pelo ponto xxx
0
e pela direcao de busca f(xxx
0
).
3.5.3 Criterios de Parada
Ap os produzir uma sequencia de estimativas da func ao objetivo, avaliada para uma
sequencia de pontos do espaco de variaveis de otimizac ao, o algoritmo de otimizacao
eventualmente dever a se aproximar de um ponto de otimo local da func ao. Como
a aproximac ao para o otimo ocorre de forma assintotica, e necess ario em algum
momento tomar a decis ao de interromper o algoritmo, sendo a aproximac ao obtida
considerada o valor otimo alcancado.
Alguns criterios possveis, para a tomada dessa decis ao, seriam:
Estabilizacao do Valor da Funcao-Objetivo
Caso o valor da func ao-objetivo, ao longo de um certo n umero de iterac oes, n ao varie
mais que certo percentual da diferenca entre seu valor m aximo ocorrido em todo o
processo de otimiza cao e seu valor mnimo vericado tambem em todo o processo, e
possvel interromper o algoritmo supondo que dicilmente viriam a ocorrer melhorias
signicativas da func ao objetivo com essa continuidade.
A seguir e apresentado um trecho de algoritmo que exemplica a constru cao
desse criterio, o qual considera como estabilizado um algoritmo que varia, nas ulti-
mas cinco iterac oes, menos de 0.0001 da amplitude
f
da funcao objetivo, sendo
f
max
e f
min
, respectivamente, o m aximo e o mnimo valor ocorrido para a func ao
objetivo durante toda a execuc ao.
D
R
A
F
T
14 Notas de Aula de Otimizac

ao
Algorithm 7: Criterio de Parada: Func ao Objetivo
1
f
f
max
f
min
;
2 f
5+
max {f(xxx
k
), f(xxx
k1
), f(xxx
k2
), f(xxx
k3
), f(xxx
k4
), f(xxx
k5
)};
3 f
5
min {f(xxx
k
), f(xxx
k1
), f(xxx
k2
), f(xxx
k3
), f(xxx
k4
), f(xxx
k5
)};
4
f
f
5+
f
5
;
5 if (
f
< 0.0001
f
) then
6 parada true;
7 else
8 parada false;
9 end
Nota 3.2 O leitor deve estar atento para o fato de que e necessario calcular o valor

f
, nao sendo recomendavel utilizar, em seu lugar, nem f
min
nem f
max
. Fica para
o leitor o exerccio de explicar que problemas poderiam ocorrer caso fossem feitas
tais escolhas.
Nota 3.3 Seria entretanto possvel utilizar, para
f
, alguma denicao um pouco
mais sosticada, que por exemplo exclusse alguns dos maximos valores ocorridos
para a funcao objetivo antes do calculo de f
max
. Tal procedimento aumenta a com-
plexidade do algoritmo, mas pode torna-lo mais estavel.
Estabilizacao do Vetor de Variaveis de Otimizacao
Outra alternativa para o problema de formulac ao de criterios de parada de algoritmos
de otimiza cao seria a constatac ao de que o vetor de vari aveis se estabilizou em algum
ponto do espa co.
A seguir e apresentado um trecho de algoritmo que exemplica a constru cao
desse criterio, o qual considera como estabilizado um algoritmo cujo vetor de variaveis
varia, nas ultimas cinco iteracoes, menos de 0.0001 da faixa de variacaovericada
do vetor de vari aveis ao longo de toda a execucao. Sejam xxx
max
e xxx
min
os vetores
cujas componentes sao o m aximo valor ocorrido para cada componente do vetor de
vari aveis durante toda a execuc ao e o vetor cujas componentes s ao o mnimo va-
lor ocorrido para cada componente do vetor de vari aveis durante toda a execu cao
do algoritmo, respectivamente. Aqui as opera coes com vetores s ao entendidas como
operac oes realizadas sobre cada uma das componentes dos operandos. A comparac ao
entre dois vetores sera verdadeira se cada uma das comparac oes de componentes for
verdadeira.
Nota 3.4 Novamente, observa-se que nao e recomendavel utilizar, para construir
esse criterio de parada, nem xxx
max
, nem xxx
min
, nem xxx
k1
(embora essa ultima alter-
nativa seja frequentemente usada na literatura) em substituicao a
xxx
. Fica para o
leitor a tarefa de explicar que problemas ocorreriam nesses casos.
Anulacao do Vetor Gradiente
Por m, e possvel ainda determinar o nal de um processo de otimizacao com uma
informac ao a respeito do vetor gradiente da fun cao objetivo. Sabendo-se a priori
D
R
A
F
T
M

etodos Num

ericos para Otimizac

ao Irrestrita 15
Algorithm 8: Criterio de Parada: Vetor de Variaveis
1
xxx
xxx
max
xxx
min
;
2 xxx
5+
max {xxx
k
, xxx
k1
, xxx
k2
, xxx
k3
, xxx
k4
, xxx
k5
};
3 xxx
5
min {xxx
k
, xxx
k1
, xxx
k2
, xxx
k3
, xxx
k4
, xxx
k5
};
4
xxx
xxx
5+
xxx
5
;
5 if (
xxx
< 0.0001
xxx
) then
6 parada true;
7 else
8 parada false;
9 end
que a funcao-objetivo e diferenciavel, seu gradiente ser a nulo em seus pontos de
mnimos locais (condi cao necess aria de primeira ordem). Pode-se, portanto, detectar
a ocorrencia desses mnimos pela monitora cao do valor da norma do vetor gradiente.
No trecho do algoritmo a seguir, e mostrada uma implementac ao desse teste
sobre o vetor ggg(xxx), que e o gradiente da funcao objetivo f() no ponto xxx. A base da
comparac ao adotada e o m aximo valor da norma do gradiente ocorrido ao longo de
toda a execuc ao, denotado por M
max
.
Algorithm 9: Criterio de Parada: Vetor Gradiente
1 M
g
= max {ggg(xxx
k
) , ggg(xxx
k1
) , ggg(xxx
k2
)};
2 if (M
g
< 0.0001M
max
) then
3 parada true;
4 else
5 parada false;
6 end
3.5.4 Convergencia
Pode-se mostrar, usando o teorema da convergencia global, que o Algoritmo do
Metodo do Gradiente converge para a soluc ao dos problemas de otimizac ao mediante
as condic oes formuladas na proposic ao a seguir.
Proposicao 3.1 Seja o problema de otimizacao irrestrito denido por:
xxx

= arg min
xxx
f(xxx) (3.16)
sendo xxx R
n
, com f() : R
n
R uma funcao contnua. Entao o Algoritmo
do Gradiente ira convergir para xxx

para todo ponto inicial xxx


0
situado na bacia de
atracao de xxx

.
Demonstrac

ao: As condi coes para a validade do teorema da convergencia global


se complementam quando se restringe o domnio da funcao `a bacia de atra cao do ponto
de mnimo. Nessa situacao, os vetores obtidos ao longo das itera coes do Algoritmo do
D
R
A
F
T
16 Notas de Aula de Otimizac

ao
Gradiente apresentam valores de f() descendentes. As demais condi coes nao dependem
do domnio.
Corolario 3.1 Caso o Algoritmo do Gradiente seja iniciado em um ponto xxx
0
nao
situado na bacia de atracao do mnimo global xxx

, podem ocorrer duas situacoes:


1. O Algoritmo do Gradiente converge para o mnimo local associado `a bacia de
atracao em que estiver localizado seu ponto inicial xxx
0
.
2. Caso o ponto inicial nao esteja localizado em nenhuma bacia de atracao, o
Algoritmo do Gradiente nao converge.

3.5.5 Exemplo
A utilizacao do algoritmo do metodo do gradiente no problema exemplo denido pela
equac ao (3.5) resulta na trajet oria ilustrada na Fig. 3.4 a seguir. Nesse exemplo,
usou-se o ponto inicial xxx
0
= (4, 4)
T
e, como criterio de parada, o n umero maximo
de iterac oes xado em 20. O gr aco ilustrando a varia cao do valor da funcao objetivo
f() versus o n umero de iterac oes e mostrado na Fig. 3.3.
0.1
0.3
0.5
1
3
5
10
20
40
40
x
1
x
2
Problema Exemplo: Mtodo do Gradiente
6 4 2 0 2 4 6
6
4
2
0
2
4
6
Figura 3.4: Problema exemplo soluc ao usando o Metodo do Gradiente.
3.6 Aproximac oes Quadraticas
Suponha-se agora que, conhecendo-se a priori a natureza da fun cao objetivo, saiba-
se que e razoavel admitir que essa func ao corresponda, de maneira aproximada, a
D
R
A
F
T
M

etodos Num

ericos para Otimizac

ao Irrestrita 17
0 5 10 15 20
5
0
5
10
15
20
25
30
35
iteraes
f
(
x
)
Problema Exemplo: Mtodo do Gradiente
Figura 3.5: Problema exemplo variac ao da func ao objetivo versus o n umero de
iterac oes para o Metodo do Gradiente.
uma func ao quadratica, dentro de algum domnio que contenha o ponto de mnimo
xxx

. A aproximac ao e feita ao redor de um ponto xxx


0
, tambem contido nesse domnio:
f(xxx) ccc
0
+ccc
1
(xxx xxx
0
) + (xxx xxx
0
)
T
C
2
(xxx xxx
0
) (3.17)
sendo ccc
0
R
n
, ccc
1
R
n
e C
2
R
nn
. Essa hip otese, de fato, corresponde ` a suposic ao
de que a func ao f(xxx) seja de classe C

, pois toda funcao dessa classe pode ser escrita


em termos de uma serie de Taylor:
f(xxx) = f(xxx
0
) +f(xxx
0
)
T
(xxx xxx
0
) +
1
2
(xxx xxx
0
)
T
H(xxx
0
)(xxx xxx
0
) + O(3) (3.18)
onde o vetor f(xxx
0
) e o gradiente da func ao no ponto xxx
0
, a matriz H(xxx
0
) e a
Hessiana da func ao em xxx
0
, e O(3) e o conjunto das contribuic oes dos termos de
ordem maior ou igual a tres. O gradiente da fun cao f(xxx) dada por (3.18) e:
f(xxx) = f(xxx
0
) + H(xxx
0
)(xxx xxx
0
) (3.19)
Sabe-se, entretanto, a partir das condic oes de primeira ordem, que no ponto de
mnimo local xxx

, o gradiente se anula, de maneira que:


f(xxx

) = f(xxx
0
) + H(xxx
0
)(xxx

xxx
0
) = 0 (3.20)
de onde se obtem a f ormula de determina cao do ponto de mnimo:
xxx

= xxx
0
H(xxx
0
)
1
f(xxx
0
) (3.21)
Ou seja, se a func ao a ser otimizada for exatamente quadratica, basta se conhecer
o gradiente e a Hessiana em um ponto qualquer xxx
0
para se determinar, em uma
D
R
A
F
T
18 Notas de Aula de Otimizac

ao
unica iteracao, o ponto de mnimo xxx

, atraves da equac ao (3.21). Se a func ao for


aproximadamente quadr atica num certo domnio, a equa cao (3.21) pode ainda ser
empregada para produzir estimativas do ponto de mnimo que convergem muito
mais rapidamente que aquelas produzidas pelo Algoritmo do Metodo do Gradiente.
3.6.1 Metodo de Newton
A partir da expressao denida pela equa cao (3.21), pode-se construir um algoritmo
de minimizacao de fun coes que, em sua forma mais simples, envolve a aplicac ao
iterativa de (3.21) para a busca do otimo. O Metodo de Newton emprega esta
abordagem (Algoritmo 10).
Algorithm 10: Algoritmo do Metodo de Newton
1 k 0;
2 while (criterio de parada nao for satisfeito) do
3 ggg
k
gradiente(f(), xxx
k
);
4 H
k
Hessiana(f(), xxx
k
);
5 xxx
k+1
xxx
k
H
1
k
ggg
k
;
6 k k + 1;
7 end
Convergencia
No caso da otimiza cao de funcoes com forma precisamente quadr atica, o Algoritmo
do Metodo de Newton n ao apenas converge para a soluc ao exata do problema, como
tambem o faz de maneira n ao iterativa, em um unico passo. Essa n ao e, entretanto,
a situac ao geral: as funcoes a serem otimizadas, embora frequentemente sejam duas
vezes diferenci aveis, o que e necessario para a aplicabilidade desse metodo, na mai-
oria das vezes n ao s ao quadraticas.
Nessa ultima situac ao, o Metodo de Newton, na formulac ao apresentada, pode
ate mesmo n ao convergir. Observando os requisitos arrolados entre as hip oteses do
teorema da convergencia global, verica-se que o Algoritmo de Newton n ao satisfaz
` a exigencia de que a iterac ao deva ser descendente, ou seja, de que o valor da func ao
objetivo necessariamente decres ca a cada iterac ao. De fato, nada garante que o
c alculo analtico da solucao que seria a exata para um problema quadr atico, se
aplicado a um problema que n ao e quadr atico, n ao venha a levar ate mesmo a um
aumento no valor da fun cao objetivo.
3.6.2 Metodo de Newton Modicado
Para garantir que o algoritmo produza a diminuic ao monot onica do valor da funcao
objetivo, mesmo para func oes nao-lineares que tenham comportamento signicati-
vamente diferente da func ao quadratica, e empregada uma variac ao do Algoritmo
de Newton que incorpora um aspecto crucial das caractersticas de convergencia do
D
R
A
F
T
M

etodos Num

ericos para Otimizac

ao Irrestrita 19
Algorithm 11: Algoritmo do Metodo de Newton Modicado
1 k 0;
2 while (criterio de parada nao for satisfeito) do
3 ggg
k
gradiente(f(), xxx
k
);
4 H
k
Hessiana(f(), xxx
k
);
5 ddd
k
H
1
k
ggg
k
;
6
k
arg min

f(xxx
k
+ ddd
k
);
7 xxx
k+1
xxx
k
+
k
ddd
k
;
8 k k + 1;
9 end
Algoritmo do Gradiente: a execu cao de uma minimizac ao unidimensional em cada
direc ao.
Com exce cao da rotina de calculo da Hessiana, todas as subrotinas envolvidas
na construc ao desses algoritmos j a foram apresentadas por ocasiao da constru cao do
Algoritmo do Gradiente, e s ao reaproveitadas aqui.
Convergencia
O algoritmo modicado e exatamente equivalente ao Algoritmo de Newton original,
no sentido de que ambos produzem a mesma sequencia de pontos, caso a fun cao
a ser otimizada seja exatamente quadr atica. Agora, no entanto, ha a garantia de
decrescimento monotonico da func ao objetivo a cada iterac ao, qualquer que seja a
estrutura da fun cao objetivo. Dessa forma, garante-se o atendimento de todos os re-
quisitos do teorema da convergencia global num sentido similar ao da convergencia
do Algoritmo do Gradiente. Agora, para estabelecer a completa equivalencia da
regi ao de convergencia do Algoritmo de Newton Modicado com a do Algoritmo do
Gradiente, basta mostrar que o primeiro e bem denido na mesma regi ao de con-
vergencia do ultimo, ou seja, na bacia de atrac ao. Isto e assegurado pela proposi cao
a seguir.
Proposicao 3.2 Seja f() : R
n
R uma funcao contnua innitas vezes dife-
renciavel. Seja xxx

um mnimo local estrito dessa funcao. Sob tais condicoes, a


Hessiana de f() e denida positiva na bacia de atracao de xxx

.
H a a necessidade de diferenciabilidade innita de f() neste caso, ao contr ario
das func oes otimizadas com o algoritmo do gradiente, que precisam apenas ser di-
ferenci aveis uma vez. Isso decorre da possibilidade que haveria, se nao se colocasse
tal exigencia, de se concatenar trechos de hiperplanos por meio de func oes suaves,
que podem ser diferenciaveis ate alguma ordem nita, formando bacias de atrac ao
suaves nas quais a Hessiana e nula em diversos trechos. O metodo de Newton sim-
plesmente nao seria denido para tais func oes. O mnimo local, agora, ainda deve
ser estrito, pois do contr ario poderia ter posto incompleto, tambem invalidando a
iterac ao de Newton.
Denidas essas exigencias para a aplicabilidade do metodo, e possvel estabelecer
a regiao de convergencia.
D
R
A
F
T
20 Notas de Aula de Otimizac

ao
Proposicao 3.3 Seja o problema de otimizacao irrestrito denido por:
xxx

= arg min
xxx
f(xxx)
(3.22)
sendo xxx R
n
, com f() : R
n
R uma funcao contnua innitas vezes diferenciavel,
e xxx

um mnimo estrito. Entao o Algoritmo de Newton Modicado ira convergir


para xxx

para todo ponto inicial xxx


0
situado na bacia de atracao de xxx

.
Corolario 3.2 Garantidas as condicoes da proposicao anterior, caso o Algoritmo
de Newton Modicado seja iniciado em um ponto xxx
0
nao situado na bacia de atracao
do mnimo global xxx

, podem ocorrer tres situacoes:


(i) O Algoritmo de Newton Modicado converge para o mnimo local estrito asso-
ciado `a bacia de atracao em que estiver localizado seu ponto inicial xxx
0
.
(ii) Caso o ponto inicial esteja localizado em uma bacia de atracao de um mnimo
local nao estrito, o Algoritmo de Newton Modicado pode car indenido,
ou seja, a Hessiana pode nao ser inversvel. Caso contrario, ocorrera con-
vergencia para o mnimo local.
(iii) Caso o ponto inicial nao esteja localizado em nenhuma bacia de atracao, o
Algoritmo de Newton Modicado nao converge, podendo ainda car indenido.

Nota 3.5 O leitor deve estar ciente de que existem procedimentos ad-hoc para evi-
tar que a Hessianautilizada pelo algoritmo que nao inversvel, ao custo da perda
de delidade para representar a verdadeira Hessiana da funcao, porem garantindo
as propriedades de convergencia do algoritmo. Para maiores informacoes, ver [1].
3.6.3 Determinacao Numerica da Hessiana
Para a implementacao do metodo de Newton e necess ario o c alculo numerico da
Hessiana. Por meio de um hipotetico metodo de diferen cas nitas, seria necess ario
avaliar o gradiente da funcao objetivo em n + 1 pontos, no caso de uma fun cao de
n variaveis. Sendo ggg(xxx) o gradiente da fun cao objetivo, avaliado numericamente
por meio de diferen cas nitas, como ja visto, o metodo de calculo da Hessiana por
diferencas nitas pode ser formulado como:
Algorithm 12: Algoritmo do C alculo da Hessiana por Diferencas Finitas
1 k 0;
2 for (i 1 until n) do
3 F
i
[ggg(xxx + eee
i
) ggg(xxx)] /;
4 end
5 F [F
1
F
n
];
Cada uma das avaliac oes de gradiente por sua vez envolve, como j a se viu, a
avaliac ao da func ao objetivo em n + 1 pontos, de forma que o n umero total de
avaliac oes da func ao objetivo seria igual a (n + 1)
2
.
D
R
A
F
T
M

etodos Num

ericos para Otimizac

ao Irrestrita 21
3.6.4 Construcao da Hessiana
Examine-se novamente a equac ao (3.19), reproduzida a seguir por conveniencia:
f(xxx) = f(xxx
0
) + H(xxx
0
)(xxx x
0
) (3.23)
Essa equacao foi o ponto de partida para a construc ao do metodo de Newton. Ela
pode tambem ser usada para construir um metodo para estimar a pr opria Hessiana
da fun cao. Reescrevendo a equac ao para dois pontos distintos xxx
1
e xxx
2
, e supondo
que a Hessiana seja constante em todo o espa co, tem-se:
H(xxx
1
xxx
2
) = f(xxx
1
) f(xxx
2
) (3.24)
Essa mesma f ormula pode ser repetida para a seguinte sequencia de vetores:
H(xxx
1
xxx
2
) = f(xxx
1
) f(xxx
2
)
H(xxx
2
xxx
3
) = f(xxx
2
) f(xxx
3
)
.
.
.
H(xxx
n1
xxx
n
) = f(xxx
n1
) f(xxx
n
)
H(xxx
n
xxx
n+1
) = f(xxx
n
) f(xxx
n+1
)
(3.25)
Denindo os vetores vvv
i
e rrr
i
como:
vvv
i
= xxx
i
xxx
i+1
rrr
i
= f(xxx
i
) f(xxx
i+1
)
(3.26)
tem-se que:
H [vvv
1
vvv
2
vvv
n
] = [rrr
1
rrr
2
rrr
n
] (3.27)
Denindo V = [vvv
1
vvv
2
vvv
n
] e R = [rrr
1
rrr
2
rrr
n
], obtem-se:
HV = R (3.28)
Observando agora que os vetores vvv
i
tratam-se de escolhas, nota-se que e possvel
escolhe-los de tal forma que V seja inversvel, o que permite fazer:
H = RV
1
(3.29)
Isso signica que, avaliando o gradiente da fun cao f(xxx) em n + 1 pontos ade-
quadamente escolhidos no espa co, e possvel determinar a Hessiana dessa func ao.
Nota 3.6 Examinando-se o resultado obtido, verica-se que a equacao (3.28) e
uma generalizacao do calculo da Hessiana por diferencas nitas. De fato, fazendo-
se V = I tem-se de (3.28) que H = R/.
Nota 3.7 Da mesma forma como o calculo do gradiente por diferencas nitas e
exato para funcoes polinomiais de grau 1, o calculo da Hessiana por (3.29) e exato
para funcoes polinomiais de grau 2 (desde que se disponha, no entanto, de avaliacoes
exatas do gradiente). Pelo mesmo motivo que no caso da avaliacao exata do gra-
diente em funcoes lineares, caso a funcao seja quadratica, nao e necessario que os
D
R
A
F
T
22 Notas de Aula de Otimizac

ao
pontos em que se avalia o gradiente estejam proximos entre si para que o calculo da
Hessiana permaneca exato.
Diversos metodos de otimiza cao baseiam-se na equac ao (3.29), variando-se, de
metodo para metodo, a escolha dos pontos, o que implica na variac ao da escolha de
V .
3.6.5 Correcao de Posto 1
Conforme foi visto, h a certa arbitrariedade na escolha dos vetores vvv
i
. A unica
condic ao necessaria e de que sejam n vetores linearmente independentes. Dessa
forma, e possvel acrescentar restri coes ao problema de forma a obter formulas re-
cursivas particularmente interessantes.
A ideia a ser explorada aqui e a de que deve ser possvel fazer a construc ao
recursiva da estimativa da Hessiana, ou de sua inversa, durante o decorrer de um
processo de otimiza cao. A estimativa parcial da Hessiana deve poder ser utilizada
no decorrer desse processo. Isso e particularmente util na otimizacao de func oes
n ao-quadraticas, em que a Hessiana n ao e constante: esse procedimento permite a
adaptac ao contnua da estimativa da Hessiana ao seu valor localmente valido.

E mostrado inicialmente o algoritmo mais simples possvel para realizar o pro-


cedimento pretendido, que sera aqui denominado Algoritmo de Correcao de Posto
1.
Seja

H
k
= H
1
k
. A ideia e construir um metodo recursivo que produza uma
sequencia de estimativas [

H
k
], a partir de novas avaliac oes da func ao e de seu gra-
diente em novos pontos. Observa-se inicialmente que a Hessiana de toda func ao e
simetrica, de forma que a recursao deve gerar uma matriz simetrica. A recurs ao
proposta e da forma:

H
k+1
=

H
k
+
k
zzz
k
zzz
T
k
(3.30)
sendo zzz
k
R
n
e
k
R. Claramente, o termo
k
zzz
k
zzz
T
k
e uma matrix n n com
posto no maximo igual a 1, de onde vem o nome do algoritmo. Supondo, para ns
de desenvolvimento da formula de recurs ao, que a func ao objetivo fosse exatamente
quadr atica, e preciso denir
k
e zzz
k
em func ao dos valores conhecidos (os vetores
[xxx
k
] e [f(xxx
k
)]), de forma a garantir que seja satisfeita a rela cao:

H
k+1
rrr
i
= vvv
i
i = 1, . . . , k (3.31)
Essa relacao e quase a mesma que (3.28), mas exige a igualdade apenas para os
pontos ja avaliados, ate o ndice k. Em primeiro lugar, desenvolve-se a f ormula para
i = k. Substituindo-se (3.30) em (3.31), obtem-se:

k
zzz
k
zzz
T
k
rrr
k
= vvv
k


H
k
rrr
k
(vvv
k


H
k
rrr
k
)(vvv
k


H
k
rrr
k
)
T
= (
k
zzz
k
zzz
T
k
rrr
k
)(
k
rrr
T
k
zzz
k
zzz
T
k
)
(vvv
k


H
k
rrr
k
)(vvv
k


H
k
rrr
k
)
T
=
k
(zzz
T
k
rrr
k
)
2

k
zzz
k
zzz
T
k
(3.32)
D
R
A
F
T
M

etodos Num

ericos para Otimizac

ao Irrestrita 23
Com isso, quase se tem uma formula para o termo de correc ao
k
zzz
k
zzz
T
k
em funcao
de

H
k
, vvv
k
e rrr
k
, a menos da quantidade escalar
k
(zzz
T
k
rrr
k
)
2
. Para se determinar essa
constante, faz-se:
rrr
T
k

k
zzz
k
zzz
T
k
rrr
k
= rrr
T
k
(vvv
k


H
k
rrr
k
)

k
(zzz
T
k
rrr
k
)
2
= rrr
T
k
vvv
k
rrr
T
k

H
k
rrr
k
(3.33)
Substituindo-se (3.33) em (3.32) obtem-se:

k
zzz
k
zzz
T
k
=
1
rrr
T
k
vvv
k
rrr
T
k

H
k
rrr
k
(vvv
k


H
k
rrr
k
)(vvv
k


H
k
rrr
k
)
T
(3.34)
ou, voltando `a formula recursiva para c alculo de

H
k+1
:

H
k+1
=

H
k
+
1
rrr
T
k
vvv
k
rrr
T
k

H
k
rrr
k
(vvv
k


H
k
rrr
k
)(vvv
k


H
k
rrr
k
)
T
(3.35)
Essa f ormula, por construc ao, vale para i = k. Resta provar que ela e v alida
para i < k.
Teorema 3.3 Seja F uma matriz simetrica xa, e suponha-se que vvv
0
, vvv
1
, . . . , vvv
k
sejam vetores dados. Denam-se os vetores rrr
i
= Hvvv
i
, para i = 0, 1, . . . , k. Seja
ainda H
0
uma matriz simetrica qualquer. Se:

H
i+1
=

H
i
+
1
rrr
T
i
vvv
i
rrr
T
i

H
i
rrr
i
(vvv
i


H
i
rrr
i
)(vvv
i


H
i
rrr
i
)
T
(3.36)
entao:
vvv
i
=

H
k+1
rrr
i
i = 1, . . . , k (3.37)

Demonstrac

ao: Por constru cao, a relacao e valida para i = k. Tome-se algum rrr
i
para i < k, e aplique-se esse vetor em

H
k+1
:

H
k+1
rrr
i
=

H
k
rrr
i
+
1
rrr
T
k
vvv
k
rrr
T
k

H
k
rrr
k
(vvv
k


H
k
rrr
k
)(vvv
T
k
rrr
i
rrr
T
k

H
T
k
rrr
i
)
Note-se que

H
k
e simetrica, de forma que:

H
k+1
rrr
i
=

H
k
rrr
i
+
1
rrr
T
k
vvv
k
rrr
T
k

H
k
rrr
k
(vvv
k


H
k
rrr
k
)(vvv
T
k
rrr
i
rrr
T
k

H
k
rrr
i
)
Adota-se neste ponto, como hipotese de inducao, que
vvv
i
=

H
k
rrr
i
seja verdade. Isso implica que:

H
k+1
rrr
i
= vvv
i
+
1
rrr
T
k
vvv
k
rrr
T
k

H
k
rrr
k
(vvv
k


H
k
rrr
k
)(vvv
T
k
rrr
i
rrr
T
k
vvv
i
)
D
R
A
F
T
24 Notas de Aula de Otimizac

ao
Entretanto:
rrr
T
k
vvv
i
= vvv
T
k
H
T
vvv
i
= vvv
T
k
Hvvv
i
= vvv
T
k
rrr
i
de forma que:
vvv
T
k
rrr
i
rrr
T
k
vvv
i
= 0
ou:

H
k+1
rrr
i
= vvv
i
Isso completa a prova.
Sabe-se ent ao que, usando-se a formula (3.35), obtem-se o valor exato da inversa
da Hessiana de uma func ao quadratica, a partir de n+1 valores de pontos do espaco
com as respectivas avaliac oes de gradientes da func ao nesses pontos.
Algoritmo de Correcao de Posto 1
Com esse resultado, e possvel construir um algoritmo de otimizac ao utilizando a
estrutura b asica da direc ao de busca, tomando

H
k
como aproximac ao da inversa
da Hessiana. O algoritmo se inicia em um ponto xxx
0
qualquer:
Algorithm 13: Algoritmo de Correcao de Posto 1
1 k 0;
2

H
k
I;
3 ggg
k
gradiente(f(), xxx
k
);
4 while (criterio de parada nao for satisfeito) do
5 ddd
k

H
k
ggg
k
;
6
k
arg min

f(xxx
k
+ ddd
k
);
7 xxx
k+1
xxx
k
+
k
ddd
k
;
8 ggg
k+1
gradiente(f(), xxx
k+1
);
9 vvv
k
xxx
k
xxx
k+1
;
10 rrr
k
ggg
k
ggg
k+1
;
11

H
k+1
=

H
k
+
1
rrr
T
k
vvv
k
rrr
T
k

H
k
rrr
k
(vvv
k


H
k
rrr
k
)(vvv
k


H
k
rrr
k
)
T
;
12 k k + 1;
13 end
Deve-se notar que, de maneira arbitraria, a estimativa

H
0
foi inicializada com
a matriz identidade. Qualquer outra matriz simetrica poderia ter sido utilizada, de
acordo com o Teorema 3.3. Esse teorema, juntamente com o resultado anteriormente
conhecido a respeito de aproximac oes quadr aticas em geral, arma que se a func ao
objetivo for quadratica, a convergencia exata do algoritmo para o mnimo global
da func ao necessariamente ocorrer a, e o n umero de passos para tal convergencia
ser a menor ou igual a n. Note-se que, ao inves de serem tomados pontos quaisquer
D
R
A
F
T
M

etodos Num

ericos para Otimizac

ao Irrestrita 25
que gerem vetores vvv
i
linearmente independentes, est ao sendo tomados exatamente
aqueles pontos gerados pelo processo de otimizac ao. Caso a func ao seja exatamente
quadr atica, estes pontos geram necessariamente vetores vvv
i
linearmente independen-
tes.
Sob o ponto de vista da otimizac ao de uma fun cao a priori sabida ser quadratica,
n ao ha vantagem computacional em se utilizar o Algoritmo de Correcao de Posto
1 em lugar da formula exata (3.21) junto com (3.29). A aplicac ao destas envol-
veria exatamente n + 1 avalia coes de gradiente, enquanto a aplica cao do algoritmo
de correc ao envolveria um n umero menor ou igual a este de iterac oes, cada uma
envolvendo uma avaliacao de gradiente, mas envolvendo tambem uma otimiza cao
unidimensional. Esta ultima poderia tornar o algoritmo de correc ao mais caro sob
o ponto de vista computacional.
No entanto, sabe-se que no caso geral da otimizac ao de func oes n ao-lineares
n ao necessariamente quadr aticas, a Hessiana da funcao objetivo nao sera em geral
constante. Nao ocorrera, de qualquer forma, a convergencia em n iterac oes. O
Algoritmo de Correc ao de Posto 1 torna-se nesse caso vantajoso, pois a estimativa
da Hessiana vai mudando dinamicamente, de forma a acompanhar a varia cao dessa
Hessiana. A cada passo, uma nova estimativa da Hessiana est a disponvel, para ser
utilizada no processo de otimizacao. Essas sao caractersticas gerais da categoria de
metodos conhecidos como quase-Newton, que ser a vista a seguir.
Nota 3.8 Deve-se notar qua a primeira iteracao do Algoritmo de Correcao de
Posto 1, no formato anteriormente denido, corresponde exatamente a uma iteracao
do Algorimto do Gradiente. Isso ocorre porque, com a matriz H
0
sendo inicializada
igual `a identidade, no primeiro passo a direcao de busca ca sendo igual `a do gra-
diente. A partir do segundo passo, a direcao comeca a mudar gradativamente, ate
que no n-esimo passo a direcao passa a coincidir com a do Algoritmo de Newton,
caso a Hessiana seja constante. Caso a Hessiana nao seja constante, a estimativa
do Algoritmo de Correcao de Posto 1 sera sempre inexata, e este algoritmo nao
chegara a convergir para o comportamento hipotetico do Algoritmo de Newton. No
entanto, como a avaliacao direta da Hessiana, exigida pelo Algoritmo de Newton,
e inconveniente, na pratica usualmente se opta pela utilizacao de algoritmos quase-
Newton.
Convergencia do Algoritmo de Correcao de Posto 1
O Algoritmo de Correcao de Posto 1 possui propriedades de convergencia que s ao
intermedi arias entre as do Algoritmo do Gradiente e as do Algoritmo de Newton.
Este ultimo simplesmente n ao se aplica quando a Hessiana n ao e denida positiva.
J a o Algoritmo do Gradiente exige apenas a existencia de uma bacia de atrac ao
de uma func ao diferenciavel. O Algoritmo de Correc ao de Posto 1 n ao pode car
indenido em nenhum ponto, uma vez que n ao envolve invers oes de matrizes. No
entanto, sua formulac ao permite que a matriz H
k+1
venha eventualmente perder a
propriedade de ser positiva denida, caso ocorra:
rrr
T
k
vvv
k
rrr
T
k

H
k
rrr
k
< 0 (3.38)
D
R
A
F
T
26 Notas de Aula de Otimizac

ao
N ao h a nada que impeca essa condicao de ocorrer. Isso signica que a f ormula
de correcao pode eventualmente vir a car comprometida. Isso pode fazer com que o
algoritmo que estacionado em pontos que n ao correspondem `a solu cao do problema.
Pode-se evitar tal situac ao incluindo-se uma vericacao dos autovalores de H
k+1
a
cada passo, fazendo-se a substituic ao dessa matriz pela identidade sempre que for
detectado um autovalor negativo. Isso iria restaurar as condic oes do teorema da
convergencia global, e o algoritmo passaria a convergir exatamente na mesma regi ao
que o Algoritmo do Gradiente.
3.6.6 Metodos Quase-Newton
Os metodos de otimiza cao conhecidos como quase-Newton s ao desenvolvidos de
acordo com a mesma l ogica que foi usada na elaborac ao do Algoritmo de Correcao de
Posto 1; de fato, este algoritmo e o exemplo mais simples de um algoritmo quase-
Newton. Usa-se uma regra recursiva que permite a constru cao iterativa de uma
matriz

H
k
que corresponde a uma estimativa da inversa da Hessiana da func ao ob-
jetivo. Como deve ter sido observado na se cao anterior, diversas escolhas arbitrarias
de regras foram realizadas, de forma que outras escolhas teriam sido possveis para
garantir as propriedades desejadas de

H
k
. Com os graus de liberdade ainda rema-
nescentes, e possvel produzir metodos que evitem as diculdades de convergencia
do Algoritmo de Correcao de Posto 1: essencialmente, deve-se garantir que a matriz

H
k
permaneca sempre denida positiva, e, preferencialmente, bem condicionada, ou
seja, com autovalores nao muito distanciados entre si.
Dois metodos particularmente ecientes foram desenvolvidos para produzir esti-
mativas recursivas para H
k
com as propriedades requeridas: o metodo DFP (Davidon-
Fletcher-Powell) e o metodo BFGS (Broyden-Fletcher-Goldfarb-Shanno), assim ba-
tizados em homenagem aos seus formuladores. Vericando-se, a posteriori, as co-
nex oes entre esses metodos, estes foram agrupados em uma estrutura mais geral, a
famlia de Broyden. Esses metodos sao apresentados a seguir.
Metodo DFP
A correc ao proposta pelo metodo DFP e dada por:
C
DFP
k
=
vvv
k
vvv
T
k
vvv
T
k
rrr
k

H
k
rrr
k
rrr
T
k

H
k
rrr
T
k

H
k
rrr
k
(3.39)
Metodo BFGS
A correcao proposta pelo metodo BFGS e dada por:
C
BFGS
k
=
_
1 +
rrr
T
k

H
k
rrr
k
rrr
T
k
vvv
k
_
vvv
k
vvv
T
k
vvv
T
k
rrr
k

vvv
k
rrr
T
k

H
k
+

H
k
rrr
k
vvv
T
k
rrr
T
k
vvv
k
(3.40)
D
R
A
F
T
M

etodos Num

ericos para Otimizac

ao Irrestrita 27
Famlia de Broyden
A corre cao generica utilizada pelos metodos conhecidos como famlia de Broyden e
dada por:
C
k
() = (1 ) C
DFP
k
+ C
BFGS
k
(3.41)
Em todos os casos da famlia de Broyden, incluindo os casos extremos BFGS e
DFP, a formula de atualizac ao para a estimativa da inversa da Hessiana ca:

H
k+1
=

H
k
+ C
k
() (3.42)
Para = 0, obtem-se o metodo DFP, e para = 1 o metodo BFGS.
Alguns fatos devem ser citados a respeito dessa correc ao da famlia de Broyden:
A correc ao realizada a cada passo e de posto possivelmente dois, o que e
facilmente veric avel por inspec ao.
A correc ao e sempre denida positiva, de forma que a matriz

H
k
preservara
sua propriedade de ser denida positiva.
Dados i e j tais que 0 i < j k, entao vvv
T
i
Hvvv
j
= 0, ou seja, vvv
i
e vvv
j
s ao
H-ortogonais.
Dado i tal que 0 i k, entao

H
k+1
Hvvv
i
= vvv
i
.
As provas das armacoes anteriores podem ser encontradas em [1].
Algoritmos Quase-Newton
Os algoritmos obtidos a partir da famlia de Broyden, aqui denominados Algoritmos
Quase-Newton, sao estruturados no Algoritmo 14.
Evidentemente, para a implementac ao pura do Algoritmo DFP ou do Algoritmo
BFGS, nao haveria necessidade do c alculo intermediario de C
k
(), sendo possvel
simplicar o programa, para o calculo direto de

H
k
com a corre cao correspondente.
Convergencia da Famlia Broyden
A maneira mais f acil de provar a convergencia dos algoritmos da famlia de Broyden
seria introduzindo uma modicac ao nos mesmos: se se faz com que a matriz

H
k
seja periodicamente reinicializada, sendo igualada `a identidade, torna-se possvel
a aplicac ao direta do teorema da convergencia global. Os algoritmos passam a
convergir exatamente como o Algoritmo do Gradiente.

E possvel, mesmo sem introduzir tal modicacao, provar a convergencia dos


algoritmos, sendo necess arias entretanto algumas premissas adicionais sobre a func ao
a ser otimizada.
Exemplo
A utilizacao do algoritmo do metodo DFP no problema exemplo denido pela
equac ao (3.5) resulta na trajet oria ilustrada na Fig. 3.6 a seguir.
D
R
A
F
T
28 Notas de Aula de Otimizac

ao
Algorithm 14: Algoritmos Quase-Newton
1 k 0;
2

H
k
I;
3 ggg
k
gradiente(f(), xxx
k
);
4 while (criterio de parada nao for satisfeito) do
5 ddd
k

H
k
ggg
k
;
6
k
arg min

f(xxx
k
+ ddd
k
);
7 xxx
k+1
xxx
k
+
k
ddd
k
;
8 ggg
k+1
gradiente(f(), xxx
k+1
);
9 vvv
k
xxx
k
xxx
k+1
;
10 rrr
k
ggg
k
ggg
k+1
;
11 C
DFP
k
=
vvv
k
vvv
T
k
vvv
T
k
rrr
k


H
k
rrr
k
rrr
T
k

H
k
rrr
T
k

H
k
rrr
k
;
12 C
BFGS
k
=
_
1 +
rrr
T
k

H
k
rrr
k
rrr
T
k
vvv
k
_
vvv
k
vvv
T
k
vvv
T
k
rrr
k

vvv
k
rrr
T
k

H
k
+

H
k
rrr
k
vvv
T
k
rrr
T
k
vvv
k
;
13 C
k
() = (1 ) C
DFP
k
+ C
BFGS
k
;
14

H
k+1
=

H
k
+ C
k
();
15 k k + 1;
16 end
3.6.7 Metodo do Gradiente Conjugado
O metodo de otimizac ao conhecido como Gradiente Conjugado foi desenvolvido ini-
cialmente na decada de 1950 para a solu cao de sistemas de equa coes lineares, e ainda
e um dos metodos mais utilizados para a soluc ao de sistemas com matrizes esparsas.
Em 1964, Fletcher e Reeves generalizaram o metodo para resolver problemas de
otimizac ao nao linear irrestrita com func oes nao quadr aticas.
Considere um sistema de equac oes lineares da forma:
Ax Ax Ax = bbb (3.43)
sendo AAA uma matriz simetrica denida positiva.
A solucao desse sistema de equac oes por meio do calculo da inversa de AAA e
impratic avel para sistemas grandes, por demandar muito esforco computacional.
Por essa raz ao, e interessante utilizar um metodo iterativo para a soluc ao desse
sistema.
Para isso, vamos considerar um problema de minimizac ao da fun cao quadratica
a seguir:
f(xxx) =
1
2
xxx

Ax Ax Ax bx bx bx + c (3.44)
O mnimo global dessa func ao e obtido a partir da condic ao de otimalidade de
primeira ordem:
f(xxx) = Ax Ax Ax bbb = 0 (3.45)
Portanto, o mnimo de f(xxx) e tambem a soluc ao do sistema linear (3.43), isto e,
podemos resolver o sistema linear (3.43) minimizando a func ao quadratica associada
D
R
A
F
T
M

etodos Num

ericos para Otimizac

ao Irrestrita 29
0.1
0.3
0.5
1
3
5
10
20
40
40
x
1
x
2
Problema Exemplo: Mtodo DFP
6 4 2 0 2 4 6
6
4
2
0
2
4
6
Figura 3.6: Problema exemplo soluc ao usando o Metodo DFP.
(3.44). Devido ` as particularidades do problema, podemos desenvolver um metodo
do gradiente com c alculo exato do tamanho de passo.
A direcao oposta ao gradiente equivale ao resduo na soluc ao do sistema (3.43):
f(xxx) = bbb Ax Ax Ax = rrr (3.46)
Assim, usaremos a seguinte f ormula iterativa baseado no metodo do gradiente:
xxx
k+1
= xxx
k
+
k
rrr
k
(3.47)
O tamanho do passo pode ser determinado analiticamente:
d
d
f(xxx
k+1
) = f(xxx
k+1
)

d
d
(xxx
k+1
)
= f(xxx
k+1
)

d
d
(xxx
k
+
k
rrr
k
)
= rrr

k+1
rrr
k
Fazendo
d
d
f(xxx
k+1
) = rrr

k+1
rrr
k
= 0 (3.48)
implica que os resduos s ao ortogonais, ou seja:
rrr

k+1
rrr
k
= 0
(bbb Ax Ax Ax
k+1
)

rrr
k
= 0
(bbb Ax Ax Ax
k

k
Ar Ar Ar
k
)

rrr
k
= 0
(rrr
k

k
Ar Ar Ar
k
)

rrr
k
= 0
D
R
A
F
T
30 Notas de Aula de Otimizac

ao
x
1
x
2
10 5 0 5 10
10
8
6
4
2
0
2
4
6
8
10
Figura 3.7: Ilustracao de dois vetores conjugados em relacao ` a matriz Hessiana da
func ao quadratica cujas curvas de nvel sao mostradas.
que resulta em:

k
=
rrr

k
rrr
k
rrr

k
Ar Ar Ar
k
(3.49)
Usando o passo otimo determinado em (3.49) na f ormula iterativa (3.47), es-
tamos minimizando a fun cao quadr atica (3.44) pelo metodo do gradiente. A mini-
mizac ao dessa fun cao quadratica nos leva `a solucao do sistema linear original Ax Ax Ax = bbb.
Contudo, essa abordagem herda os problemas do metodo do gradiente j a discutidos
anteriormente. Por essa raz ao, desenvolveu-se o metodo do gradiente conjugado,
em que, alem de se forcar a ortogonalidade dos resduos em itera coes sucessivas,
utiliza-se uma f ormula iterativa da forma:
xxx
k+1
= xxx
k
+
k
ddd
k
(3.50)
em que as direc oes ddd
k
s ao conjugadas entre si.
Dois vetores vvv
i
e vvv
j
s ao ditos conjugados em relac ao ` a matriz AAA, ou simplesmente
AAA-conjugados, se vale a relac ao:
vvv

i
AAAvvv
j
= vvv

j
AAAvvv
i
= 0 (3.51)
Essa ideia e ilustrada na Figura 3.7. Se usarmos a transforma cao de vari aveis
zzz = Bx Bx Bx de tal forma que AAA = BBB

BBB = BBB
2
, ent ao dois vetores xxx
i
e xxx
j
AAA-conjugados
ser ao ortogonais no espaco de vari aveis transformado. Portanto, e intuitivo perceber
que a no cao de conjugacao de dois vetores em relacao `a matriz AAA traz consigo
informac ao sobre a curvatura do espaco, isto e, a Hessiana da funcao quadr atica
(3.44). Ao forcar que a pr oxima direc ao de busca ddd
k+1
seja conjugada ` a direc ao
D
R
A
F
T
M

etodos Num

ericos para Otimizac

ao Irrestrita 31
ddd
k
estamos calculando uma nova direc ao de busca que implicitamente considera
informac ao sobre a curvatura da func ao quadr atica.
O metodo do gradiente conjugado utiliza as formulas recursivas a seguir:
xxx
k+1
= xxx
k
+
k
ddd
k
(3.52)
rrr
k+1
= rrr
k

k
Ad Ad Ad
k
(3.53)
ddd
k+1
= rrr
k+1
+
k
ddd
k
(3.54)
com a imposic ao de que as direcoes ddd
k
s ao AAA-conjugadas e os resduos s ao ortogonais
entre si. Aplicando essas condic oes de ortogonalidade e conjugac ao, podemos derivar
as formulas para
k
e
k
.
Inicialmente, vamos vericar a equac ao de atualizac ao dos resduos:
rrr
k+1
= bbb Ax Ax Ax
k+1
= bbb AAA(xxx
k
+
k
ddd
k
)
= bbb AAAxxx
k

k
Ad Ad Ad
k
= rrr
k

k
Ad Ad Ad
k
A partir da condic ao de ortogonalidade dos resduos, temos:
rrr

k+1
rrr
k
= 0
(rrr
k

k
Ad Ad Ad
k
)

rrr
k
= 0
rrr

k
rrr
k

k
ddd

k
Ar Ar Ar
k
= 0
que fornece

k
=
rrr

k
rrr
k
ddd

k
Ar Ar Ar
k
(3.55)
mas rrr
k
= ddd
k

k1
ddd
k1
, ver (3.54), assim:

k
=
rrr

k
rrr
k
ddd

k
Ad Ad Ad
k

k1
ddd

k
Ad Ad Ad
k1
(3.56)
Como os vetores ddd
k
e ddd
k1
s ao conjugados, ent ao:

k
=
rrr

k
rrr
k
ddd

k
Ad Ad Ad
k
(3.57)
A partir da condic ao de conjuga cao dos vetores de direc ao, temos:
ddd

k+1
Ad Ad Ad
k
= 0
(rrr
k+1
+
k
ddd
k
)

Ad Ad Ad
k
= 0
rrr

k+1
Ad Ad Ad
k
+
k
ddd

k
Ad Ad Ad
k
= 0
D
R
A
F
T
32 Notas de Aula de Otimizac

ao
que fornece

k
=
rrr

k+1
Ad Ad Ad
k
ddd

k
Ad Ad Ad
k
(3.58)
Isolando o termo Ad Ad Ad
k
em (3.53) e substituindo no numerador de (3.58):

k
=
rrr

k+1
(rrr
k
rrr
k+1
)

k
ddd

k
Ad Ad Ad
k
(3.59)
Lembrando que rrr
k
e rrr
k+1
s ao ortogonais, temos

k
=
rrr

k+1
rrr
k+1
rrr

k
rrr
k
(3.60)
Com base nessas equac oes, temos o algoritmo do gradiente conjugado para mi-
nimizac ao de fun coes quadr aticas da forma (3.44) ou, de maneira equivalente, para
a solucao de um sistema de equacoes lineares com matriz de coecientes simetrica
denida positiva AAA.
Algorithm 15: Algoritmo dos Gradientes Conjugados
1 k 0;
2 rrr
k
bbb Ax Ax Ax
k
;
3 ddd
k
rrr
k
;
4 while (criterio de parada nao for satisfeito) do
5
k

rrr

k
rrr
k
ddd

k
Ad Ad Ad
k
;
6 xxx
k+1
xxx
k
+
k
ddd
k
;
7 rrr
k+1
rrr
k

k
Ad Ad Ad
k
;
8
k

rrr

k+1
rrr
k+1
rrr

k
rrr
k
;
9 ddd
k+1
rrr
k+1
+
k
ddd
k
;
10 k k + 1;
11 end
O metodo converge para o ponto de mnimo de uma funcao quadr atica com n
vari aveis em n iterac oes. De fato, o metodo aproxima a soluc ao do problema por
meio da seguinte expans ao:
xxx

= xxx
0
+
n

k=1

k
ddd
k
(3.61)
Metodo dos Gradientes Conjugados para otimizacao nao linear
Como vimos o metodo dos gradientes conjugados foi desenvolvido a partir da ob-
serva cao de que o problema de resolver um sistema linear com matriz de coecientes
simetrica denida positiva e equivalente `a minimizac ao de uma func ao quadr atica
convexa. Mais tarde, observou-se que e possvel adaptar o metodo para resolver
problemas de otimizac ao n ao linear mais gerais, nao apenas aqueles envolvendo
func oes quadr aticas. A versao do algoritmo para otimizac ao nao linear de func oes
n ao quadr aticas apresenta tres diferencas basicas:
D
R
A
F
T
M

etodos Num

ericos para Otimizac

ao Irrestrita 33
1. A noc ao de resduo perde o signicado, uma vez que a minimizacao da fun cao
f(xxx) n ao est a mais ligada ` a soluc ao de um sistema linear do tipo Ax Ax Ax = bbb. Por
essa razao n ao e possvel utilizar a formula recursiva para atualizar o resduo.
O vetor rrr
k
e utilizado em sua noc ao mais geral, isto e, a direc ao oposta ao
vetor gradiente.
2. N ao e possvel determinar o tamanho do passo
k
analiticamente, devendo-se
empregar algum metodo de busca unidirecional para determinar seu valor.
3. N ao e possvel determinar
k
analiticamente, havendo diferentes escolhas possveis
para esse par ametro.
Com essas modicacoes, temos o algoritmo apresentado a seguir.
Algorithm 16: Metodo dos Gradientes Conjugados
1 k 0;
2 rrr
0
f(xxx
0
);
3 ddd
0
rrr
0
;
4 while (criterio de parada nao for satisfeito) do
5
k
arg min

f(xxx
k
+ ddd
k
);
6 xxx
k+1
xxx
k
+
k
ddd
k
;
7 rrr
k+1
f(xxx
k+1
);
8 Calcular
k
;
9 ddd
k+1
rrr
k+1
+
k
ddd
k
;
10 k k + 1;
11 end
Duas formulas bem conhecidas para o calculo do par ametro
k
s ao:
Fletcher-Reeves:
FR
k
=
rrr

k+1
rrr
k+1
rrr

k
rrr
k
Polak-Ribi`ere:
PR
k
=
rrr

k+1
(rrr
k+1
rrr
k
)
rrr

k
rrr
k
Como agora a funcao a ser otimizada n ao e necessariamente uma func ao qua-
dr atica, o metodo em geral converge em mais do que n iterac oes. Portanto, como
o metodo produz n direc oes conjugadas no espa co n-dimensional, deve-se reiniciar
o metodo a cada n iterac oes, do contrario, as direc oes de busca deixar ao de ser
conjugadas. Esse reincio peri odico e feito simplesmente fazendo ddd
k
= rrr
k
a cada n
iterac oes. De fato, o metodo sem reincio peri odico converge mais lentamente do que
o metodo adotando reincio periodico. Se a fun cao for quadr atica, a convergencia
continua garantida em n iterac oes.
Em geral, para func oes n ao quadr aticas, os metodos quase-Newton convergem
em menos iterac oes, entretanto consomem mais operac oes e mais memoria por
iterac ao, uma vez que uma aproximacao da inversa da matriz Hessiana deve ser
armazenada. Alem disso, as equac oes de atualiza cao dessa aproximac ao demandam
D
R
A
F
T
34 Notas de Aula de Otimizac

ao
mais operacoes. O metodo dos gradientes conjugados requer o armazenamento dos
dois ultimos vetores gradiente e o vetor ddd
k
. Por essa razao, o metodo de otimizac ao
dos gradientes conjugados e o mais indicado e o mais usado em problemas de oti-
mizac ao n ao linear de elevada dimens ao, especicamente problemas com mais de
200 vari aveis. Em problemas de baixa e media dimensao, os metodos quase-Newton
s ao mais recomendados.
3.7 Metodos Sem Derivadas
Nas sec oes anteriores, discutimos metodos baseados em dire coes de busca que se
sustentam no c alculo de derivadas da funcao objetivo. Contudo, dentro da estrutura
b asica dos metodos de direc oes de busca, apresentada no incio do captulo, e possvel
incluir metodos que denem uma direc ao de busca ddd
k
que n ao depende de estimativas
do gradiente da fun cao no ponto. Estes metodos s ao discutidos aqui.
Em geral, metodos baseados em derivadas convergem mais rapidamente, mas
s o podem ser usados em problemas caracterizados por funcoes continuamente di-
ferenci aveis, o que nem sempre se verica em algumas aplicacoes praticas. Alem
disso, em problemas com muitas vari aveis, os erros numericos introduzidos por apro-
ximac oes no c alculo do gradiente podem se tornar signicativos, prejudicando a con-
vergencia dos metodos baseados em derivadas. Por essas raz oes, faz-se necessario
apresentar alguns metodos numericos de otimizac ao sem derivadas.
3.7.1 Metodo de Hooke-Jeeves
O Metodo Hooke-Jeeves foi proposto na decada de 1960 para otimizar func oes sem a
necessidade de que estas sejam contnuas ou diferenci aveis. O metodo testa pontos
padr oes a partir do ponto atual, por essa raz ao e tambem conhecido como Pattern
Search na literatura. O metodo alterna direc oes de pesquisa na direc ao dos eixos
coordenados e direc oes construdas a partir do ponto da iterac ao anterior, isto e,
direc oes na forma xxx
k+1
xxx
k
.
O funcionamento do metodo e bastante simples. Seja xxx
k
o ponto atual, yyy
0
=
xxx
k
, e o vetor eee
i
associado ` a i-esima coluna da matriz identidade. O metodo testa
perturbac oes na direc ao de cada eixo coordenado, de forma que um novo ponto yyy
i+1
e gerado de acordo com alguma das seguinte situac oes:
1. yyy
i
= yyy
i1
+ eee
i
se uma perturbac ao de magnitude na direcao positiva da
coordenada x
i
causa uma melhora no valor da funcao objetivo;
2. yyy
i
= yyy
i1
eee
i
se uma perturbac ao de magnitude na direc ao negativa da
coordenada x
i
causa uma melhora no valor da funcao objetivo;
3. yyy
i
= yyy
i1
caso contr ario.
Note que as perturba coes nas direc oes eee
i
s ao acumulativas, isto e, nesta pri-
meira fase, a sequencia de pontos {yyy
0
, yyy
1
, . . . , yyy
n
} representa passos de tamanho na
direc ao daqueles eixos coordenados que diminuem o valor da funcao objetivo. Apos
serem feitas as perturbac oes em todas as coordenadas, obtem-se o ponto xxx
k+1
= yyy
n
.
D
R
A
F
T
M

etodos Num

ericos para Otimizac

ao Irrestrita 35
Observe que o ponto xxx
k+1
foi obtido a partir de xxx
k
com perturbacoes nas dire coes
de melhora de cada vari avel. Assim, a direcao
ddd
k
= xxx
k+1
xxx
k
(3.62)
sugere uma boa dire cao de busca em que a func ao objetivo pode decrescer mais
rapidamente. Em geral, essa direc ao nao est a alinhada com os eixos coordenados
e representa mais uma direc ao padr ao de pesquisa no metodo. Portanto, pode-se
fazer
yyy
0
= xxx
k+1
+ (xxx
k+1
xxx
k
)
comecando a proxima iterac ao a partir deste ponto. O algoritmo do metodo Hooke-
Jeeves e apresentado a seguir.
Algorithm 17: Metodo Hooke-Jeeves
1 k 0;
2 yyy
0
xxx
k
;
3 while > do
4 foreach i = 0 . . . , n 1 do
5 if f(yyy
i
+ eee
i+1
) < f(yyy
i
) then yyy
i+1
yyy
i
+ eee
i+1
;
6 else if f(yyy
i
eee
i+1
) < f(yyy
i
) then yyy
i+1
yyy
i
eee
i+1
;
7 else yyy
i+1
yyy
i
;
8 end
9 if f(yyy
n
) < f(xxx
k
) then
10 xxx
k+1
yyy
n
;
11 yyy
0
xxx
k+1
+ (xxx
k+1
xxx
k
);
12 else
13 /2;
14 xxx
k+1
xxx
k
;
15 yyy
0
xxx
k
;
16 end
17 k k + 1;
18 end
As linhas 48 executam a fase de busca nos eixos coordenados. Se yyy
n
for igual a
xxx
k
, signica que nao foi possvel minimizar a func ao em nenhuma direc ao coordenada
usando o tamanho atual de . Assim, deve-se reduzir o valor de , em geral pela
metade, o que e feito na linha 13.
O metodo Hooke-Jeeves e de facil programac ao e e competitivo computacional-
mente com outros metodos. Modica coes podem ser includas, tais como um para
cada variavel, ou acoplar metodos de busca unidirecional. No metodo b asico, os
par ametros e s ao xos e fornecidos pelo usuario. Contudo, estes par ametros
podem ser determinados usando-se algum metodo de busca unidirecional.
D
R
A
F
T
36 Notas de Aula de Otimizac

ao
3.7.2 Metodo de Nelder-Mead
O metodo Nelder-Mead Simplex
1
foi desenvolvido tambem na decada de 1960 para
otimizac ao nao linear. O metodo n ao exige que a fun cao objetivo seja diferenci avel,
mas requer que a fun cao seja contnua. O metodo trabalha com n+1 pontos a cada
iterac ao, eliminando o pior ponto. Um novo ponto e criado com base em regras
especcas que serao discutidas a seguir. Esses n + 1 pontos formam os vertices
de um politopo especial denominado simplex. Dessa forma, o comportamento do
metodo pode ser visto como a expansao, contrac ao e movimenta cao desse simplex
no espaco de busca do problema.
No que se segue, usaremos a seguinte notac ao:
b {1, . . . , n+1} representa o ndice do vertice com o melhor valor de func ao
objetivo;
w {1, . . . , n + 1} representa o ndice do vertice com o pior valor de funcao
objetivo;
s {1, . . . , n + 1} representa o ndice do vertice com o segundo pior valor de
func ao objetivo;
O centr oide da face oposta a xxx
w
e dado por:
xxx =
1
n
n+1

i=1
i=w
xxx
i
Este ponto e usado como base para denir as opera coes do metodo Nelder-
Mead Simplex. Essas operac oes modicam a forma do simplex adaptando-o `as
caractersticas da func ao. Cada operac ao visa gerar o novo vertice do simplex, que
substituir a o pior vertice. Essas operac oes s ao descritas a seguir e ilustradas na
Figura 3.8.
Reexao: A operac ao de reex ao tem por objetivo rejeitar a pior solucao e avan car
o simplex na direc ao de melhora. Essa operac ao reete o pior vertice do
simplex sobre a face oposta:
xxx
r
= xxx + ( xxx xxx
w
) , = 1
Expansao: Essa operacao expande o simplex na direcao de melhora, gerando um
ponto alem do ponto de reex ao:
xxx
e
= xxx + ( xxx xxx
w
) , = 2
Contracao externa: Contrai o simplex na direc ao de melhora:
xxx
c+
= xxx + ( xxx xxx
w
) , = 0.5
Contracao interna: Contrai o simplex internamente:
xxx
c
= xxx ( xxx xxx
w
) , = 0.5
D
R
A
F
T
M

etodos Num

ericos para Otimizac

ao Irrestrita 37
Figura 3.8: Ilustrac ao das operac oes de reex ao, contrac ao e expans ao do simplex
no metodo Nelder-Mead.
Com base nestas operac oes, temos o Algoritmo 18 apresentado a seguir.
Observe que se o ponto reetido e melhor do que o melhor vertice, ent ao o
simplex foi reetido numa dire cao que minimiza bastante a funcao objetivo, portanto
vale a pena expandir o simplex nessa direcao testando o ponto xxx
e
. Caso contr ario, se
xxx
r
n ao possui um valor t ao bom de func ao objetivo, entao e provavel que o simplex
esteja pr oximo do ponto de mnimo, por isso s ao testados os pontos de contrac ao
interna e externa, ver linhas 915.
Se nenhuma das operac oes resultou num novo vertice com valor de funcao ob-
jetivo pelo menos melhor do que aquele correspondente ao vertice a ser rejeitado,
ent ao deve-se encolher o simplex, pois o ponto de mnimo esta em seu interior. A
operac ao de encolhimento do simplex e feita preservando o vertice xxx
b
e aproximando
os demais vertices na dire cao de xxx
b
:
xxx
i
xxx
b
+ (xxx
i
xxx
b
) , i = 1, . . . , n + 1, i = b (3.63)
com = 0.5.
Finalmente, os criterios de parada sao em geral baseados no volume do simplex.
Por exemplo, pode-se monitorar os tamanhos das arestas xxx
i
xxx
b
e caso estas
estejam abaixo de um valor de tolerancia, considera-se que o metodo convergiu.
1
Nao confundir com o metodo Simplex desenvolvido para otimiza cao linear.
D
R
A
F
T
38 Notas de Aula de Otimizac

ao
Algorithm 18: Metodo Nelder-Mead Simplex
1 k 0;
2 while (criterio de parada nao for satisfeito) do
3 Calcule xxx
r
= xxx + ( xxx xxx
w
);
4 if f(xxx
r
) < f(xxx
b
) then Expans ao
5 calcule e avalie xxx
e
;
6 if f(xxx
e
) < f(xxx
r
) then xxx
new
= xxx
e
;
7 else xxx
new
= xxx
r
;
8 else if f(xxx
b
) < f(xxx
r
) < f(xxx
s
) then xxx
new
= xxx
r
;
9 else if f(xxx
s
) < f(xxx
r
) < f(xxx
w
) then Contra cao externa
10 calcule e avalie xxx
c+
;
11 if f(xxx
c+
) f(xxx
w
) then xxx
new
= xxx
c+
;
12 else if f(xxx
r
) f(xxx
w
) then Contra cao interna
13 calcule e avalie xxx
c
;
14 if f(xxx
c
) f(xxx
w
) then xxx
new
= xxx
c
;
15 else
16 Encolhe o simplex
17 end
18 end
D
R
A
F
T
M

etodos Num

ericos para Otimizac

ao Irrestrita 39
3.8 Exerccios
1. Dado f : R
2
R, f(xxx) = x
2
1
+x
2
e xxx
0
= (2, 2)
T
, efetuar uma busca direcional
pelo Metodo da Sec ao

Aurea na direc ao f() a partir de xxx
0
. Considere
= 0.0001 para a estima cao do gradiente; s = 0.1 para determinar o intervalo
[a, b]; e = 0.5 como criterio de parada do Algoritmo da Secao

Aurea [4].
2. Considere a func ao f denida por f(xxx) = (x
1
+ x
3
2
)
2
+ 2(x
1
x
2
4)
4
. Dado
um ponto xxx
0
e um vetor direcao n ao nulo ddd, seja () = f(xxx
0
+ ddd). Pede-se:
(i) Obter a express ao explcita para ().
(ii) Calcular o valor de

que resolve o problema de minimizacao de (),


sujeito a R, para xxx
0
= (5, 4)
T
e ddd = (2, 1)
T
.
3. Seja o problema de minimizar f(xxx) = x
3
1
+ x
1
x
2
x
2
1
x
2
2
usando o Metodo de
Newton a partir do ponto xxx
0
= (1, 1)
T
. Um programa computacional cuida-
dosamente implementado para executar este metodo n ao foi bem sucedido.
Discutir as provaveis raz oes para o nao sucesso [4].
4. Dada a func ao f(xxx) = x
2
1
+ 4x
2
2
4x
1
8x
2
, pergunta-se [4]:
(i) Qual a direc ao de m aximo declive no ponto xxx
0
= (1, 1)
T
?
(ii) Qual a direc ao inicial de busca ddd determinada pelo Metodo de Newton a
partir de xxx
0
= (1, 1)
T
?
(iii) Qual o comprimento de , para o item (ii), tal que xxx
1
= xxx
0
+ ddd?
(iv) Usando o Metodo de Newton, quantos passos sao necessarios para mini-
mizar f(xxx) partindo de xxx
0
= (1, 1)
T
? Por que?
5. Seja o problema denido por: minimize f(xxx) = x
4
1
2x
2
1
x
2
+x
2
1
+x
2
2
2x
1
+4,
com 4 x
1
, x
2
4. A partir do ponto xxx
0
= (3, 4)
T
, encontrar o mnimo
de f(xxx) usando: (i) o Metodo do Gradiente, (ii) o Metodo DFP, e (iii) o
Metodo BFGS. O mesmo criterio de parada deve ser empregado para todos os
algoritmos. Plotar o graco de f(xxx) versus o n umero de iteracoes para os tres
metodos e comparar o processo de convergencia. Os metodos convergem para
a mesma solu cao? Por que?
6. Considere o seguinte problema:
minimize
n

i=1
[100(x
i
x
2
i1
)
2
+ (1 x
i1
)
2
]
Assumindo os valores de dimensoes n = 5, 10, e 50, e ponto inicial x
0
=
(1.2, 1.0, 1.2, 1.0, . . .), encontrar o mnimo de f(x) usando: (i) o Metodo
do Gradiente, (ii) o Metodo DFP, e (iii) o Metodo BFGS. O mesmo criterio
de parada deve ser empregado para todos os algoritmos. Plotar o graco de
f(xxx) versus o n umero de iteracoes para os tres metodos e comparar o processo
de convergencia. Os metodos convergem para a mesma soluc ao? Por que?
D
R
A
F
T
40 Notas de Aula de Otimizac

ao
7. Considere o sistema de equa coes simult aneas
h
i
(xxx) = 0 para i = 1, . . . , l
(i) Mostre como resolver esse sistema de equac oes usando otimizac ao irres-
trita. (Dica: considere o problema de minimizar

l
i=1
|h
i
(xxx)|
p
, onde p e
um inteiro positivo.)
(ii) Usando essa estrategia, resolva o seguinte sistema:
2(x
1
2)
4
+ (2x
1
x
2
)
2
4 = 0
x
2
1
2x
2
+ 1 = 0
D
R
A
F
T
Referencias Bibliogracas
[1] D. G. Luenberger. Linear and Nonlinear Programming. Addison-Wesley, 2 edi-
tion, 1989.
[2] P. Venkataraman. Applied Optimization with Matlab Programming. John Wiley,
1 edition, 2002.
[3] M.S. Bazaraa, H.D. Sherali, and C.M. Shetty. Nonlinear Programming: Theory
and Algorithms. John Wiley, 3 edition, 2006.
[4] G.R. Mateus e H.P.L. Luna. Programacao Nao-Linear. V Escola de Computa cao,
1 edition, 1986.
41

Anda mungkin juga menyukai