0% acharam este documento útil (0 voto)
193 visualizações19 páginas

Algoritmo do Gradiente em MATLAB

This article will show the application of the gradient algorithm, implemented in MATLAB tool for the objective of minimizing functions in a given search space. This algorithm uses the calculation of the gradient to indicate the growth of the function and know the value of the gradient at a certain point, he also uses the method of golden section, which indicates what the next point to be calculated gradient, this method has a section that caters to a stopping criterion. Finally, at the end of the execution, we obtained results that describes the trajectories of some points, randomly generated, showing their behavior in certain function on a contour map. Este artigo irá mostrar a aplicação do Algoritmo do Gradiente, implementado na ferramenta MATLAB, para o objetivo de minimização de funções em um determinado espaço de busca. Esse algoritmo utiliza o cálculo do gradiente para indicar o crescimento da função e saber o valor do gradiente em um determinado ponto, ele utiliza também, o método da seção áurea, que indica qual será o próximo ponto a ser calculado o gradiente, esse método possui um lanço que atende a um critério de parada. Por fim, no final da execução, obtivemos resultados que descreve as trajetórias de alguns pontos, gerados aleatoriamente, demonstrando o seu comportamento em determinada função sobre um mapa de curvas de nível.

Enviado por

Diego Froes
Direitos autorais
© Attribution Non-Commercial (BY-NC)
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
193 visualizações19 páginas

Algoritmo do Gradiente em MATLAB

This article will show the application of the gradient algorithm, implemented in MATLAB tool for the objective of minimizing functions in a given search space. This algorithm uses the calculation of the gradient to indicate the growth of the function and know the value of the gradient at a certain point, he also uses the method of golden section, which indicates what the next point to be calculated gradient, this method has a section that caters to a stopping criterion. Finally, at the end of the execution, we obtained results that describes the trajectories of some points, randomly generated, showing their behavior in certain function on a contour map. Este artigo irá mostrar a aplicação do Algoritmo do Gradiente, implementado na ferramenta MATLAB, para o objetivo de minimização de funções em um determinado espaço de busca. Esse algoritmo utiliza o cálculo do gradiente para indicar o crescimento da função e saber o valor do gradiente em um determinado ponto, ele utiliza também, o método da seção áurea, que indica qual será o próximo ponto a ser calculado o gradiente, esse método possui um lanço que atende a um critério de parada. Por fim, no final da execução, obtivemos resultados que descreve as trajetórias de alguns pontos, gerados aleatoriamente, demonstrando o seu comportamento em determinada função sobre um mapa de curvas de nível.

Enviado por

Diego Froes
Direitos autorais
© Attribution Non-Commercial (BY-NC)
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 19

Algoritmo do Gradiente utilizando a ferramenta MATLAB

Diego Oliveira Froes1


1

Instituto de Ci encias Exatas e Aplicadas Campus Jo ao Monlevade Universidade Federal de Ouro Preto (UFOP) CEP 35.400-000 Jo ao Monlevade MG Brasil
[email protected]

Abstract. This article will show the application of the gradient algorithm, implemented in MATLAB tool for the objective of minimizing functions in a given search space. This algorithm uses the calculation of the gradient to indicate the growth of the function and know the value of the gradient at a certain point, he also uses the method of golden section, which indicates what the next point to be calculated gradient, this method has a section that caters to a stopping criterion. Finally, at the end of the execution, we obtained results that describes the trajectories of some points, randomly generated, showing their behavior in certain function on a contour map. Resumo. Este artigo ir a mostrar a aplicac a o do Algoritmo do Gradiente, implementado na ferramenta MATLAB, para o objetivo de minimizac a o o de func es em um determinado espac o de busca. Esse algoritmo utiliza o c alculo do gradiente para indicar o crescimento da func a o e saber o valor do gradiente em um determinado ponto, ele utiliza tamb em, o m etodo da sec a o a urea, que indica qual ser a o pr oximo ponto a ser calculado o gradiente, esse m etodo possui um lanc o que atende a um crit erio de parada. Por m, no nal da execuc a o, obtivemos resultados que descreve as trajet orias de alguns pontos, gerados aleatoriamente, demonstrando o seu comportamento em determinada func a o sobre um mapa de curvas de n vel.

o 1. Introduc a
o do Algoritmo do Gradiente para Este trabalho ir a apresentar resultados da implementac a o de func es em um determinado espac o foi modelada na minimizac a o o, essa implementac a ` um modelo demostraferramenta MATLAB. Houve um processo de desenvolvimento a tivo f acil e ex vel, pois, de uma forma simples, permite realizar mudanc as nos crit erios adotados, visando exibilizar o funcionamento do algoritmo. o assume num deterNa pr atica desejamos encontrar o valor m nimo que a func a es para dois exemplos minado intervalo. Ao decorrer do artigo, ser a apresentado simulac o es j de func o a pr e-denidas.

2. Conceitos B asicos
um dos m o mais primitivos, tendo sido O m etodo do gradiente e etodos de otimizac a o, estando hoje obsoleto. Esse m , proposto nos prim ordios da teoria de otimizac a etodo e entretanto, o prot otipo mais simples de toda uma fam lia de m etodos [Takahashi 2007].

2.1. Algoritmo do Gradiente O Algoritmo do Gradiente, vers ao mais primitiva, dentre os m etodos existentes, funciona da seguinte maneira: dado um ponto inicial do espac o de busca, obt em-se um novo ponto o objetivo. Essa e a situado sobre a reta denida por esse ponto e pelo gradiente da func a o para a qual, localmente, a func o mais rapidamente decresce (no sentido contr direc a a ario o objetivo ao do gradiente). Determina-se o novo ponto como sendo aquele em que a func a um problema de minimizac o de uma atinge o m nimo sobre essa reta (note-se que este e a o de uma u nica vari func a avel). A partir desse novo ponto, repete-se o processo, at e que seja satisfeito um crit erio de converg encia [Takahashi 2007].

Figura 1. Algoritmo do Gradiente

2.2. C alculo do Gradiente um algoritmo que, recebe como entrada o vetor de vari O c alculo do Gradiente e avel de o, fornece o valor da func o-objetivo para tal vetor. O algoritmo mais simples otimizac a a o que se pode imaginar para o c alculo num erico (aproximado) do gradiente de uma func a apresenta na gura abaixo [Takahashi 2007].

Figura 2. Calculo do Gradiente

o Aurea 2.3. Sec a o a urea consiste em criar uma sequ O m etodo da sec a encia que converge para o m nimo de o. Na sec o Aurea, uma func a a contem o fator 0.618 (N umero de Ouro) que corresponde

urea, utilizada pelos antigos gregos para denir a raz a raz ao a ao dos lados adjacentes de um ret angulo que seria perfeita sob o ponto de vista est etico, essa raz ao foi utilizada em es, pinturas e aparece espalhada na natureza [Bergamaschi 2006]. edicac o

Aurea Figura 3. Sec ao

3. MATLAB
um sistema interativo e uma linguagem de O MATLAB (Matrix Laboratory) e o para a computac o t baseado em matrizes. programac a a ecnica e cient ca em geral, ele e o com o usu Permite a interac a ario atrav es de uma janela de Comando, onde os usu arios devem fornecer os comandos para que os c alculos e resultados sejam exibidos [Curso de MATLAB]. bem adequado a ` queles que desejam implementar e testar soluc es com faE o cilidade e precis ao, sem perder tempo com detalhes espec cos de linguagem de o. Para isso, possui facilidades de computac o, visualizac o e programac o, programac a a a a dentro de um ambiente amig avel e de f acil aprendizado [Curso de MATLAB].

4. Relat orio de Resultados


Ap os a modelagem do Algoritmo do Gradiente, foram realizados 100 (Cem) testes com o proposta diferentes pontos iniciais, tais entradas criadas aleat oriamente, para cada func a no trabalho. Cada teste foi realizado com pontos nos eixos X e Y entre um intervalo de (-50 a 50), com precis ao de 0,618034 para a diferenc a de um ponto para outro. o, ser Para cada func a a apresentado o Gr aco 3D, Gr aco de Curvas de N vel, o Objetivo em cada ponto, Desvio Padr M edia da func a ao, Vari ancia e o Gr aco de todos os Pontos (para um exemplo qualquer). o, ser Para cada ponto, executado em uma determinada func a a apresntando: Ponto o Objetivo, Quantidade de Interac es Inicial e Final com seus respectivos valores da Func a o que levou para chegar ao ponto otimoe seu Gr aco da Trajet oria do Ponto. o Objetivo 1 4.1. Func a o: f1(x) = xQ1x; Func a Sendo: Q1(x) = [1 0; 0 1,2]; Gr aco: Tridimensional (3D);

da Func f1(x) - 3D. Figura 4. Projec ao ao

Gr aco: Contorno (Curvas de N vel);

da Func f1(x) - Curvas de N Figura 5. Projec ao ao vel.

4.1.1. M edia, Desvio Padr ao e Vari ancia o Objetivo: 2.9977e-009; M edia da Func a Desvio Padr ao: 1.1196e-009; Vari ancia: 1.2535e-018;

dos Pontos da Func f1(x). Figura 6. Projec ao ao

relativamente baixo, a maioria desses pontos encontra-se perto O Desvio Padr ao e da m edia, indicando uma homogeneidade nos dados obtidos. A Vari ancia, que indica o qu ao longe os valores se encontram do valor esperado, relativamente baixo, ou seja, os valores caram bem pr e oximos do valor esperado. 4.1.2. Trajet oria dos Pontos 1. Ponto 1 Ponto Inicial: [49.6135; -42.1824]; o Objetivo Inicial: 4.5967e+003; Func a Ponto Final: 1.0e-004 *[-0.3226; -0.3604]; o Objetivo Final: 2.5992e-009; Func a es: Houve 8 interac es para chegar na soluc o nal; Interac o o a Gr aco: Curvas de N vel:

Figura 7. Trajetoria do Ponto 1

Close da trajet oria:

Figura 8. Close 1 da trajetoria do Ponto 1

Figura 9. Close 2 da trajetoria do Ponto 1

2. Ponto 2 Ponto Inicial: [30.0068; -6.8586]; o Objetivo Inicial: 956.8597; Func a Ponto Final: 1.0e-004 *[-0.3243; -0.3616]; o Objetivo Final: 2.6210e-009; Func a es: Houve 7 interac es para chegar na soluc o nal; Interac o o a Gr aco: Curvas de N vel:

Figura 10. Trajetoria do Ponto 2

Close da trajet oria:

Figura 11. Close 1 da trajetoria do Ponto 2

Figura 12. Close 2 da trajetoria do Ponto 2

o F1 4.1.3. Conclus ao para Func a o Objetivo F1 tem caracter vel e de n A func a sticas de ser Uni-modal, diferenc a ao possuir es. O processo de execuc o partiu de um ponto qualquer, superf cies com pequenas variac o a timo global sem precisar de gerando aleatoriamente, deslocou para pontos pr oximos ao o es para isso. Notam-se saltos enormes inicialmente, depois, saltos cada muitas interac o timo da soluc o. vez menores por estar pr oximo ao o a o Objetivo 2 4.2. Func a o: f2(x) = xQ2x; Func a Sendo: Q2(x) = [1 0; 0 1000]; Gr aco: Tridimensional (3D);

da Func f2(x) - 3D. Figura 13. Projec ao ao

Gr aco: Contorno (Curvas de N vel);

da Func f2(x) - Curvas de N Figura 14. Projec ao ao vel.

4.2.1. M edia, Desvio Padr ao e Vari ancia o Objetivo: 3.4667; M edia da Func a Desvio Padr ao: 22.7839; Vari ancia: 519.1058;

dos Pontos da Func f2(x). Figura 15. Projec ao ao

signicativamente alto, a maioria desses pontos encontra-se O Desvio Padr ao e afastado da m edia, indicando uma hetereogeniedade nos dados obtidos. A Vari ancia, que indica o qu ao longe os valores se encontram do valor esperado, relativamente alto, ou seja, os valores caram mais afastado do valor esperado. e 4.2.2. Trajet oria dos Pontos 1. Ponto 1 Ponto Inicial: [-36.3931; 36.9292]; o Objetivo Inicial: 1.3651e+006; Func a Ponto Final: [-0.1235; -0.0001]; o Objetivo Final: 0.0153; Func a es: Houve 63 interac es para chegar na soluc o nal; Interac o o a Gr aco: Curvas de N vel:

Figura 16. Trajetoria do Ponto 1

Close da trajet oria:

Figura 17. Close 1 da trajetoria do Ponto 1

Figura 18. Close 2 da trajetoria do Ponto 1

2. Ponto 2 Ponto Inicial: [-38.8797; 28.0252]; o Objetivo Inicial: 7.8692e+005; Func a Ponto Final: [-0.0423; 0.0000]; o Objetivo Final: 0.0018; Func a es: Houve 290 interac es para chegar na soluc o nal; Interac o o a Gr aco: Curvas de N vel:

Figura 19. Trajetoria do Ponto 2

Close da trajet oria:

Figura 20. Close 1 da trajetoria do Ponto 2

Figura 21. Close 2 da trajetoria do Ponto 2

o F2 4.2.3. Conclus ao para Func a o Objetivo F2 tem caracter vel, no entanto, A func a sticas de ser Uni-modal e Diferenc a es. Diante disso, o algoritmo possui a caracter stica de superf cies com pequenas variac o ltima caracter tornasse pouco eciente devido essa u stica, pois haver a pouca diferenc a es at ` regi entre as soluc o e chegar a ao pr oxima ao m nimo global. o partiu de um ponto qualquer, gerando aleatoriamente, O processo de execuc a timo global, necessitando de muitas deslocou para pontos pouco mais distantes do o es para isso. Notam-se saltos enormes inicialmente, depois, saltos cada vez meinterac o timo da soluc o, o comportamento dos pontos tende a ser nores por estar pr oximo ao o a Zig-Zag por estarem em uma superf cie mais plana.

5. Conclus oes Gerais


Por m, com base nos resultados apresentados nesse trabalho, conclui-se que o uso do mais ecaz para func es simples, cujo comportamento n Algoritmo do Gradiente e o ao apresenta uma superf cie muita plana, ou seja, uma superf cie que n ao contenha muitas es. Para func es que possuem pouca variac o de superf pequenas oscilac o o a cie, ou melhor, ter diferenc as muito pequenas entre os pontos, o algoritmo tende h a levar um maior tempo para convergir, ou seja, levando um maior tempo para atingir um resultado mais satisfat orio, pois, o deslocamento ser a muito pequeno, resultando, assim, em uma quanti es, consequentemente, uma maior quantidade de interac es. dade maior de oscilac o o Ao comparar as matrizes Q1(1 0; 0 1.2) e Q2(1 0; 0 1000), nota-se que a diferenc a nica posic o, Q1 com 1.2 e Q2 com 1000. Essa entre elas estar no valor contido em uma u a o do gr o, [xQ1x] e [xQ2x], respectidiferenc a inuencia na criac a aco de cada func a o no quesito variac o da vamente, F1 e F2, pois est a ligado ao comportamento da func a a superf cie. Como supracitado, quanto menor for a variac oes da superf cie maior ser aa es para chegar em um resultado satisfat quantidade de interac o orio. es, a que apresentou melhores resultaAnalisando o resultado de ambas as func o o ao n es, foi a func o F1 que contem a matriz Q1(1 0; dos, em relac a umero de interac o a a que se enquadra em um perl n o 0 1.2), pois e ao plano, ou seja, possui maior variac a es para alcanc da superf cie, consequentemente, ter a menor quantidade de interac o ar um resultado satisfat orio. es multimodais (que possui v Vale mencionar que, para func o arias bacias de o), se o ponto inicial incidir em outra bacia de atrac o na qual n atrac a a ao esteja localizado o m nimo global, o Algoritmo do Gradiente ir a trac ar sua trajet oria de acordo com o m nimo dessa bacia e n ao da bacia que consta o m nimo global.

6. Refer encias
o Escalar e Vetorial. Belo Horizonte: UFMG Takahashi, Ricardo H. C. Otimizac a Departamento de Matem atica. Notas de Aula, Vol.: 2, 2007. Bergamaschi, Flaulles B. M etodos Numericos para encontrar M nimo e o. Vit M aximo de uma Func a oria da Conquista: UESB - Universidade Estadual do Sudoeste da Bahia. Mini-Curso, 2006. http://www.uesb.br/professor/ flaulles/download/cursos/MiniMetodosMaximos.pdf

Curso de MATLAB. Rio Grande do Sul: UFRGS - Departamento de Engenharia Eletrica. http://www.mecanica.ufrgs.br/promec/alunos/download/ matlab1.pdf

Você também pode gostar