Você está na página 1de 5

Trabalho Computacional - Primeira Parte (Equipe

6)
LEANDRO L. ORO, RAMON O. FERNANDES
Departamento de Engenharia Eltrica, Escola Politcnica, Universidade Federal da Bahia
ramon.elt.ba@gmail.com

Resumo Neste trabalho se pretende avaliar os mtodos de busca unidimensional e otimizao linear discutidos na disciplina
ENG 547-Otimizao. Para isso, utilizando uma funo especfica, os mtodos foram implementados utilizando o software
Matlab, e em seguida os parmetros de cada algoritmo foram alterados. Por fim feita uma breve anlise e comparao das
tcnicas utilizadas.

Introduo

A funo a ser considerada neste trabalho dada


pela Equao 1. Para Facilitar anlise e futuras
comparaes sero calculados alguns pontos
candidatos a mnimos para a funo dada. Assim,
considere o vetor gradiente e a matriz Hessiana dadas
pela Equao 2 e 3, respectivamente.
2

f ( x )=( x 1+3 ) + ( x 21 ) + ( x 1 x 22 x 3+4 )

(1)

2 ( x 1+3 ) +4 x 2 ( x1 x 22 x 3 + 4 )
f ( x ) = 2 ( x2 1 ) +4 x 1 ( x 1 x 22 x3 + 4 )3
8 ( x 1 x 22 x3 + 4)3

ser considerado representa o tamanho do passo para


atualizao dos algoritmos. Para este trabalho sero
considerados os seguintes mtodos: Busca de
Fibonacci, Mtodo de Newton, Mtodo da Falsa
Posio, Regra de Armijo, e o Teste de Wolf.
Para que se possa implementar os algoritmos
citados, deve-se determinar inicialmente uma direo
de descida, calculada em um ponto inicial factvel.
Assim, como proposto na atividade, ser adotada
uma direo de descida como especificada na
Equao
4,
avaliada
no
ponto
T
x 0 =[ 0.5 0.5 0.5 ] .

]
(2)

2+12 x 2 ( x 1 x 22 x 3+ 4 )

48 ( x 1 x2 2 x 3 +4 )

(4)

4 ( x 1 x 22 x3 + 4 ) ( 4 x 1 x 22 x3 + 4 )

F ( x )= 4 ( x 1 x 22 x 3+ 4 ) ( 4 x 1 x 22 x 3+ 4 )
2
24 x 2 ( x 1 x 22 x 3 +4 )
24 x1 ( x 1 x 22 x3 +4 )

24 x2 ( x 1 x 22 x3 +4 ) 2

2.5841101
d=
= 2.3108101
f ( x 0 ) 9.3799101
f ( x 0 )

(3)

Note que ela no uma funo convexa, pois o


comportamento da matriz hessiana depende do ponto
no qual ela calculada, por exemplo, para o ponto (0,
0, 0), a matriz indefinida, enquanto que para o
ponto (-3, 1, 0.5) ela definida positiva.
possvel observar tambm que o nico ponto
de mnimo local encontrado dado por
T
x = [3 1 0.5 ] .
2 Buscas Unidimensionais
Em otimizao, a busca unidimensional refere-se
a um problema monovarivel, onde o argumento a

Outra importante observao a ser feita que, os

2+12
x 12 (de
x 1Fibonacci,
x 22 x3 +Newton,
4)2
mtodos
e Falsa Posio so

executados at que se obtenha


a preciso mnima de
2

24
x 1 (cdigos
x 1 x 22foram
x 3+ 4simulados
)
10-3. Os
em um computador
com as seguintes configuraes: Processador AMD
E-350 1.6 GHz; 8GB de memria RAM; executando
em um sistema operacional de 64bits.
2.1 Busca de Fibonacci
Este mtodo utiliza os elementos da Sequncia
de Fibonacci para formar uma regra de atualizao,
que reduz, gradativamente, o tamanho do intervalo
de incertezas relacionado com a varivel de deciso,
at que se obtenha a preciso desejada.
Para
esta
abordagem,
pouco
esforo
computacional requerido, uma vez que, tanto os
termos da sequncia quanto os coeficientes do
mtodo podem ser calculados a priori, formando um
banco de dados a ser consultado durante a recurso.
Assim, a atualizao dos valores passa ser composta
de uma sucesso de operaes algbricas simples.
Por outro lado, a escolha do intervalo de incertezas, a
ser realizada durante as iteraes, representa uma
importante diferena durante a concepo do cdigo,
j que os demais algoritmos so mais simples.

Os resultados obtidos para o mtodo em questo


so apresentados na Tabela 1, vale ressaltar o baixo
nmero de iteraes necessrias para a convergncia.
Tabela 1: Resultados para o Mtodo de Fibonacci.

Tempo de Execuo
Nmero de Iteraes
Preciso Obtida
Valor da Funo f()

1.0772*10-2
6
5.2083*10-5
22.8790
6.7913*10-3

2.2 Mtodo de Newton


Para o Mtodo de Newton, necessrio calcular,
para cada iterao, o valor da derivada e da derivada
segunda da funo em relao alfa. O algoritmo foi
executado a partir do ponto inicial 0 = 0.

0 = 20
Tempo de Execuo
Nmero de Iteraes
Preciso Obtida
Valor da Funo f()

7.2422*10-3
19
7.3211*10-4
5.8936*104
17.7606

A partir da Tabela 3, possvel perceber que a


variao do ponto inicial pode levar a diferentes
pontos timos, isso ocorre por causa dos vrios
pontos onde o gradiente zero. Porm, nota-se que
nem sempre o ponto obtido um ponto de mnimo,
por exemplo, para 0 = 20 o processo converge para
um ponto que claramente no um mnimo. Assim,
importante que o ponto inicial seja prximo ao valor
timo.
Por outro lado o nmero de iteraes necessrias
varia bastante com o deslocamento do valor inicial,
esse fato pode ser explicado pela maior distncia
entre a s condies iniciais e o ponto de equilbrio,
logo mais passos sero computados ate atingir o
mnimo.

Tabela 2: Resultados para o Mtodo de Newton, 0 = 0.

Tempo de Execuo
Nmero de Iteraes
Preciso Obtida
Valor da Funo f()

6.2182*10-3
12
5.1038*10-5
10.0350
1.8818

Um dos parmetros necessrio para a execuo


do mtodo um valor inicial de alfa, assim, para
avaliar melhor as propriedades deste algoritmo
proposta uma variao deste parmetro. Os
resultados se encontram na Tabela 3.
Figura 1: Funo considerada pela busca unidimensional.
Tabela 3: Avaliao da variao do valor inicial para o Mtodo de
Newton.

0 = 0.5
Tempo de Execuo
Nmero de Iteraes
Preciso Obtida
Valor da Funo f()

0 = 5
Tempo de Execuo
Nmero de Iteraes
Preciso Obtida
Valor da Funo f()

0 = 10
Tempo de Execuo
Nmero de Iteraes
Preciso Obtida
Valor da Funo f()

5.9886*10-3
10
3.2385*10-4
10.0350
1.8818
5.9340*10-3
9
8.4230*10-7
10.0350
1.8818
6.2388*10-3
18
9.7710*10-4
5.8936*104
17.7572

Variar d
2.3 Mtodo da Falsa Posio
O Mtodo da Falsa Posio se comporta de
forma semelhante ao Mtodo de Newton, porm, a
segunda derivada da funo avaliada no calculada
diretamente, seu valor estimado atravs das
primeiras derivadas. Assim, se espera uma execuo
mais rpida em detrimento do valor final alcanado.
Para este mtodo preciso fornecer dois
parmetros para que o algoritmo inicie a busca, 0 e
1. Assim, se pretende avaliar a resposta do mtodo
com a variao das condies impostas, os resultados
obtidos se encontram na Tabela 5.
Tabela 4: Resultados para o Mtodo da Falsa Posio com 0 = 0 e
1 = 0.5.

Tempo de Execuo
Nmero de Iteraes

7.8274*10-4
1

Preciso Obtida
Valor da Funo f()

5.1220*10-5
35.3618
0.5

Tabela 5: Resultados da variao dos parmetros 0 e 1, para o


Mtodo da Falsa Posio,

0 = 0 1 = 1
Tempo de Execuo
Nmero de Iteraes
Preciso Obtida
Valor da Funo f()

0 = 0 1 = 1.5
Tempo de Execuo
Nmero de Iteraes
Preciso Obtida
Valor da Funo f()

0 = 0 1 = 2
Tempo de Execuo
Nmero de Iteraes
Preciso Obtida
Valor da Funo f()

0 = 0 1 = 5
Tempo de Execuo
Nmero de Iteraes
Preciso Obtida
Valor da Funo f()

0 = 0 0 = 10
Tempo de Execuo
Nmero de Iteraes
Preciso Obtida
Valor da Funo f()

0 = 0.5 0 = 2
Tempo de Execuo
Nmero de Iteraes
Preciso Obtida
Valor da Funo f()

0 = 0.5 0 = 5
Tempo de Execuo
Nmero de Iteraes
Preciso Obtida
Valor da Funo f()

-3

1.1228*10
2
1.5019*10-5
13.0863
9.9695*101.12406*10-3
2
1.9524*10-4
10.4812
2.0967
2.6324*10-2
1
8.7043*10-4
10.1441
1.9991

ocorre por conta da estimao da segunda derivada,


j que nas regies avaliadas na Tabela 6, os valores
do gradiente da funo crescem rapidamente,
levando a estimaes ruins.
2.4 Regra de Armijo
A Regra de Armijo prope que a busca seja feita
de modo a limitar o valor de , tanto superiormente
quanto inferiormente. Para isso, preciso fornecer
dois parmetros alm do ponto inicial, , . Um
comportamento esperado, decorrente dessa restrio
do domnio do problema, uma maior dependncia
da convergncia em relao ao ponto inicial adotado.
Para ilustrar a regio de convergncia do mtodo
uma representao visual das restries foi obtida,
ela mostrada na Figura 2. possvel observar que a
restrio superior limita a escolha de para a regio
entre (0, 1.94]. Assim, se o algoritmo for iniciado
alm dessa regio, os valores devem ser reduzidos a
cada passo, seno, no haver convergncia.
Portanto, caso essa informao no fosse conhecida
antes da implementao, seria possvel ter problemas
com a execuo do mtodo, uma vez que ou o tempo
de execuo aumentaria muito, ou as variveis
envolvidas atingiriam seu valor mximo, devido
limitao computacional, abortando a execuo.

6.9035*10-3
1
1.3323*10-14
1.1875*103
5
6.6148*10-4
1
0
2.0648*104
10
1.9600*10-3
2
6.4866*10-6
10.1437
1.9989
8.3406*10-4
1
1.1546*10-14
1.1875*103
5

Pode-se observar que, na medida em que as


condies iniciais se aproximam do ponto timo, o
mtodo converge para o valor apropriado em poucas
iteraes. Por outro lado, se os parmetros iniciais se
desviam um pouco das condies desejadas, o
algoritmo converge para valores desfavorveis. Isso

Figura 2: Intervalo para a Regra de Armijo.

Para a execuo do mtodo ser adotado um


passo de atualizao de 10-4, para que seja justa a
comparao com as demais tcnicas.
Tabela 6: Resultados para a Regra de Armijo para 0 = 0.

Tempo de Execuo
Nmero de Iteraes
Valor da Funo f()

2.1955*10-3
2
1.2404*102
1*10-4

Em seguida, ser avaliado o desempenho do


mtodo em relao ao deslocamento do ponto inicial,
os resultados so expostos na Tabela 7. Note que o
tempo de execuo do algoritmo aumenta na medida

em que o ponto inicial se distancia da regio de


convergncia.
Observa-se que, para que obter uma resposta
mais rpida, necessrio aumentar o tamanho do
passo com que o mtodo se atualiza. Por outro lado,
com um passo maior, o ponto final obtido pode ser
afastado da soluo tima terica.
Este
comportamento pode ser observado na Tabela 8.
Tabela 7: Avaliao da variao do valor inicial para a Regra de
Armijo.

0 = 0.5
Tempo de Execuo
Nmero de Iteraes
Valor da Funo f()

0 = 1.5
Tempo de Execuo
Nmero de Iteraes
Valor da Funo f()

0 = 2
Tempo de Execuo
Nmero de Iteraes
Valor da Funo f()

0 = 5
Tempo de Execuo
Nmero de Iteraes
Valor da Funo f()

3.3504*10-3 s
8
10.4054
1.5000
2.1929*10-3 s
5
13.0409
1

2.4 Teste de Wolf


2.0142*10-3 s
1
3.5361*10
0.5
2.7782*10-3 s
1
10.4054
1.5
-2

Para o Teste de Wolf, introduzida uma restrio


em relao derivada da funo. Para isso, preciso
fornecer apenas o parmetro , alm do ponto inicial.
Esta abordagem pouco se difere da Regra de Armijo,
e apresenta os mesmos problemas para a
determinao do passo a ser utilizado. Inicialmente
ser adotado um passo de 10-4.
Tabela 9: Resultados para o Teste de Wolf para 0 = 0.

1.5268*10 s
533
10.0649
1.9468

Tempo de Execuo
Nmero de Iteraes
Valor da Funo f()

2.6992 s
30533
10.0649
1.9468

Foram feitos testes variando o tamanho do passo


e o ponto inicial, notou-se que a variao do passo,
altera tanto o tempo de execuo quanto o ponto final
atingido, de forma que para atingir um valor
suficientemente prximo do timo terico deve-se
abrir mo do baixo tempo de execuo. Porm, com
o deslocamento do ponto inicial possvel observar
que o ponto final atingido no alterado, mesmo que
o algoritmo demore mais tempo para alcana-lo.

Deve-se levar em considerao tambm que


para o ponto indicado no foi possvel obter outros
valores para o parmetro , uma vez que sua
alterao resultava na no convergncia do mtodo.
Tabela 8: Avaliao da variao do tamanho do passo para a Regra
de Armijo a partir da posio inicial 0 = 5.
-3

= 10
Tempo de Execuo
Nmero de Iteraes
Valor da Funo f()

= 10-2
Tempo de Execuo
Nmero de Iteraes
Valor da Funo f()

= 10-1
Tempo de Execuo
Nmero de Iteraes
Valor da Funo f()

= 0.5

Tempo de Execuo
Nmero de Iteraes
Valor da Funo f()

=1
Tempo de Execuo
Nmero de Iteraes
Valor da Funo f()

2.2363*10-1 s
3055
10.0641
1.9460
2.4213*10-2 s
307
10.0586
1.9400
5.7287*10-3 s
32
10.0371
1.9000

5.2746 *10-2 s
1080
95.7189
1.0790*10-1

Tabela 10: Avaliao da variao do valor inicial para o Teste de


Wolf.

0 = 0.5
Tempo de Execuo
Nmero de Iteraes
Valor da Funo f()

0 = 1.5
Tempo de Execuo
Nmero de Iteraes
Valor da Funo f()

0 = 2
Tempo de Execuo
Nmero de Iteraes
Valor da Funo f()

0 = 5
Tempo de Execuo

5.7679*10-4 s
1
3.5361*10
0.5
1.6130*10-3 s
1
10.4054
1.5
9.7643*10-2 s
533
10.0649
1.9468
4.3918 s

Nmero de Iteraes
Valor da Funo f()

0 = 10
Tempo de Execuo
Nmero de Iteraes
Valor da Funo f()

30533
10.0649
1.9468
15.2224 s
80533
10.0649
1.9468

Tabela 11: Avaliao da variao do tamanho do passo para o


Teste de Wolf a partir da posio inicial 0 = 5.

= 10-3
Tempo de Execuo
Nmero de Iteraes
Valor da Funo f()

= 10-2
Tempo de Execuo
Nmero de Iteraes
Valor da Funo f()

= 10-1
Tempo de Execuo
Nmero de Iteraes
Valor da Funo f()

= 0.5
Tempo de Execuo
Nmero de Iteraes
Valor da Funo f()

=1
Tempo de Execuo
Nmero de Iteraes
Valor da Funo f()

6.880796*10-1 s
3055
10.0641
1.9460
1.28647*10-1 s
307
10.0586
1.9400
9.0900*10-3 s
32
10.0371
1.9000
4.4757*10-3 s
8
10.4054
1.5000

de Newton mais robusto do que o da Falsa Posio,


e que a Regra de Armijo e o Teste de Wolf
apresentam
desempenho
semelhante.
Assim
descartamos o mtodo da falsa posio.
Como j discutido, anteriormente, o mtodo de
Armijo e de Wolf tem grande sensibilidade ao valor
do passo de atualizao, sendo que para se obter
valores mais prximos do timo, preciso grande
esforo computacional. Outros pontos negativos
destes mtodos so: uma vez que se inicia o
algoritmo na regio de convergncia, no possvel
buscar uma soluo melhor; e nem sempre possvel
obter uma a preciso desejada, j que estes pontos
podem estar em uma regio infactvel.
A escolha se resume ento entre os mtodos de
Newton e de Fibonacci. Assim, como o segundo
fornece um mtodo mais heurstico, e que, a pesar da
alta velocidade de convergncia costuma fornecer
valores muito distantes do ideal. Assim, ser adotado
o mtodo de Newton como padro para as
consideraes futuras.
3 Mtodos de Otimizao
Para este ...
3.1 Gradiente timo

3.2 Mtodo de Newton

3.3 Gradiente Conjugado

3.9817*10-3 s
5
13.0409
1

2.5 Comparaes
Nesta seo, baseados nos dados obtidos se
pretende determinar o melhor mtodo de busca
unidimensional para a funo proposta.
Primeiramente, partindo do desempenho em
relao s condies iniciais, nota-se que o Mtodo

3.4 Mtodo de Davidon-Fletcher-Powell

4 Concluso
Liste suas concluses nesta seo, em vez de
simplesmente relatar o que foi feito.
Control.

Você também pode gostar