Um estudo introdutório do método do Gradiente para minimização de
funções de uma ou várias variáveis
Juliane Carla Lopes Prado*
André Luís Machado Martinez
Universidade Tecnológica Federal do Paraná, campus Cornélio Procópio, PR
Avenida Alberto Carazzai, 1640 CEP 86300-000
E-mail: [email protected]
RESUMO
Neste trabalho realizamos um estudo introdutório do método Gradiente para a determinação de
mínimo de funções, inicialmente consideramos apenas funções de uma variável real, com o
intuito de observar o comportamento do método, posteriormente consideramos funções de
várias variáveis, testes numéricos foram realizados e implementações foram feitas no software
MatLab.
Palavras-chave: Método de Gradiente, Funções de uma e várias variáveis, Otimização,
Problemas irrestritos, MatLab
MÉTODO GRADIENTE
A otimização numérica, ou programação matemática, refere-se ao estudo de problemas
nos quais se busca determinar um mínimo ou máximo de uma função através da escolha
sistemática dos valores de variáveis reais ou inteiras em um determinado conjunto admissível.
Como a otimização possui inúmeras aplicações em engenharia, administração, logística,
biologia e outras diversas áreas do conhecimento, o estudo de métodos de otimização é um
campo extenso na matemática aplicada. Temos como vantagens diminuir o tempo dedicado ao
projeto, possibilitar o tratamento simultâneo de uma grande quantidade de variáveis e restrições
de difícil visualização gráfica e/ou tabular, possibilitar a obtenção de algo melhor, obtenção de
soluções não tradicionais, menor custo e como limitações podemos ter, dependendo da
quantidade de variáveis e operações, um grande custo computacional e talvez erros na
programação ocasionando a demora na execução do problema.
Neste trabalho estamos desenvolvendo um estudo do método Gradiente (sugerimos [1],
[2], [3], [4], [5] e [7]) ou método do declive máximo, onde a direção de descida é determinada
pelo oposto da direção da derivada. Com o auxilio do software MatLab (www.mathworks.com)
implementamos o método do gradiente para minimizar funções, primeiramente para funções de
apenas uma variável real, onde nosso objetivo é de encontrar uma raiz para a equação
, para
, continuamente diferenciável. Dada uma aproximação
para um mínimo de
o método Gradiente consiste basicamente em estimar
com uma busca linear na
direção
, assim em um primeiro momento definimos simplesmente
, desta forma obtemos a sequência do método Gradiente puro. Programamos o método
Gradiente Puro para funções de uma variável real no MatLab, a condição de parada utilizada
ou atingir 200 iterações, testes foram realizados e os resultados são
apresentados a seguir:
Função
)
inical
Convergiu
final
0.0001
0
Não
200
-0,0001
-1
0.0001
0
Não
200
-1,5708
-1
* Bolsista de Iniciação Científica PIBIC/CNPq
234
0.0001
0
Não
200
-Inf
-Inf
0.0001
0
Sim
43
-1
-0,5
Tabela 1: Resultados obtidos com o Algoritmo.
De posse dos resultados podemos observar a fragilidade do método Gradiente e seu
comportamento voraz por decréscimo ao se deparar com funções ilimitadas em algumas
direções. Com o intuito de melhorar o desempenho do método incluímos uma busca linear na
direção de
ou seja, agora
, onde
é obtido pelo
algoritmo do retrocesso (recomendamos [2], [3]) e cumpre a condição de Armijo
<
2[
]2.
Repetimos os testes com o Método Gradiente com busca linear, os resultados são
apresentados na tabela a seguir:
Função
Convergiu
inical
)
final
0.0001
0
Sim
3
0
-1
0.0001
0
Não
200
-1,5708
-1
0.0001
0
Não
200
1,8645
-0,9474
0.0001
0
Sim
43
-1
-0,5
Tabela 2: Resultados obtidos com o Algoritmo retificado.
Podemos observar que o método passou resolver um numero maior de problemas e que
seu desempenho passou a ser mais consistente. Após o estudo com funções de uma variável real
passamos a considerar funções de varias variáveis reais a valores reais. A sequência do método
Gradiente puro a ser considerada agora é
, programamos o método no
MatLab, na tabela a seguir apresentamos alguns testes realizados em exemplos retirados de [6] e
[8].
Função
inical
Convergiu
final
0.0001
[0 0]
Não
200
[-Inf 2,65]
NaN*
0.0001
[0 0]
Não
14
NaN*
NaN*
0.0001
[0 0]
Sim
1
[0 0]
-2
0.0001
[0 0 0]
Sim
1
[0 0 0]
0
Tabela 3: Resultados obtidos com o Algoritmo de varias variáveis.
*NaN: Not a Number, tal valor aparece quando é obtido operações matemáticas indefinidas
como ou ∞-∞.
Assim como feito para funções de uma variável real pretendemos aumentar a robustez
do método, incluímos uma busca linear na direção de
ou seja, agora
, onde
é obtido pelo algoritmo do retrocesso e cumpre a condição de
* Bolsista de Iniciação Científica PIBIC/CNPq
235
Armijo
.
Repetimos os testes com o Método Gradiente com busca linear, os resultados são
apresentados na tabela a seguir:
Função
inical
Convergiu
final
0.0001
[0 0]
Sim
14
[1 1]
-4
0.0001
[0 0]
Não
15
NaN
NaN
0.0001
[0 0]
Sim
31
[6 2]
-26
0.0001
[0 0 0]
Sim
1
[0 0 0]
10
Tabela 4: Resultados obtidos com o Algoritmo de varias variáveis com busca linear.
Podemos observar que o método passou resolver um numero maior de problemas e que
seu desempenho passou a ser mais consistente com a inclusão da busca linear.
CONCLUSÃO
O desenvolvimento dos estudos do método Gradiente para funções de várias variáveis
ainda encontra-se no inicio, mas já podemos obter conclusões sobre o comportamento do
método. Observamos como a inclusão do retrocesso tornou o método mais robusto para os
exemplos testados, também notamos como o método é sensível à escolha do ponto inicial o que
em muitos exemplos definia a convergência ou não do método, por este motivo realizamos os
testes apenas com ponto inicial nulo. Pretendemos testar mais exemplos e aprofundar os estudos
sobre a convergência do método, bem como testar outras possibilidades de busca linear como o
algoritmo da seção áurea ao invés do retrocesso.
Referências
[1] Jorge Nocedal, Stephen J. Wright, Numerical Optimization. SPRINGER, 2006.
[2] A. FRIDLANDER, Elementos de Programação não Linear, Editora Unicamp,1994.
[3] J. M. Martínez, S. A. Santos, Métodos Computacionais de Otimizaçãp -IMPA XX
Colóquio Brasileiro de Matemática - 1995.
[4] R. Fletcher, Practical Methods of Optimization, 2nd ed. , John Wiley Sons,1987.
[5] H. L. Guidorizzi, Cálculo. Vol. 1, Ed. LTC, 5ª edição, 2001.
[6] H. L. Guidorizzi, Cálculo. Vol. 2, Ed. LTC, 5ª edição, 2001.
[7] James Stewart, Cálculo. Vol. 1. São Paulo: Pioneira Thomson Learning, 2005.
[8] James Stewart, Cálculo. Vol. 2. São Paulo: Pioneira Thomson Learning, 2005.
* Bolsista de Iniciação Científica PIBIC/CNPq
236
Download

Um estudo introdutório do método do Gradiente para minimização