Otimização de Funções Não Lineares por Meio do Algoritmo Árvore da Montanha - PDF
Download "Otimização de Funções Não Lineares por Meio do Algoritmo Árvore da Montanha"
Thomaz Campelo Molinari
1 Otimização de Funções Não Lineares por Meio do Algoritmo Árvore da Montanha Amarildo de Vicente Colegiado do Curso de Matemática Centro de Ciências Exatas e Tecnológicas da Universidade Estadual do Oeste do Paraná Caixa Postal Cascavel PR Brasil Resumo. Este trabalho apresenta um algoritmo para otimização de funções não lineares positivas irrestritas. O funcionamento deste algoritmo é baseado no processo de reprodução de uma planta fictícia que se desenvolve em regiões montanhosas, razão pela qual está sendo denominado Algoritmo Árvore da Montanha. Experimentos inciais realizados com funções testes foram bem sucedidos, apresentado um bom desempenho do algoritmo citado. Palavras chaves. Otimização, algoritmo não determinístico, ponto de mínimo.. Informações Gerais A obtenção do ponto de máximo ou de mínimo global de uma função não linear é uma tarefa que pode exigir bastante esforço e, na busca de um processo eficiente para este fim, uma variedade muito grande de algoritmos foi produzida ao longo dos anos. Apesar disso, a busca por processos cada vez mais eficazes ainda é feita de forma intensa por um grande número de pesquisadores no mundo todo. Uma categoria de algoritmos que está sendo muito difundida é a de algoritmos não determinísticos, que geralmente simulam um fenômeno natural para obter o valor máximo ou mínimo de uma função. Dentre eles podem ser citados Genetic Algorithms [GOLDBERG, 989], Ant Colony Optimization [DORIGO, 996], Simulated Annealing [KIRKPATRICK, et al, 983], etc. Neste trabalho está sendo proposto um novo algoritmo desta natureza. Ele é baseado no processo de reprodução de uma planta fictícia que se desenvolve em regiões montanhosas. Durante sua florada o processo de polinização é feito por meio de insetos e, principalmente, pelo vento. O fato de o vento ser o principal agente polinizador se dá porque suas flores não são muito atrativas para a maioria dos insetos, pois possui uma quantidade muito pequena de néctar, e é pobre em coloração. Quando uma planta está em uma região alta, os grãos de pólen gerados por ela, em sua maioria, tendem a ser levados para as outras plantas que estão em partes mais baixas. Evidentemente uma parte deles é conduzida para partes mais altas, trabalho que é basicamente feito pelos Colegiado do Curso de Matemática - Unioeste - Cascavel 43
2 isentos, e outra parte fica retida na própria planta que os gerou. A Figura ilustra o exposto. Por causa destas características, a maioria das sementes produzidas cai nas partes mais baixas da montanha, fazendo com que as plantas mais novas nasçam nestas regiões. Com isso, de geração em geração a população de árvores tende a se concentrar nos vales, sem contudo deixar de existir plantas também nas regiões altas. A idéia do algoritmo é simular este comportamento para obter o ponto de mínimo global de uma função não linear positiva f. Direção do vento Grãos de pólen transportados pelo vento Grãos de pólen transportados por insetos Figura - Deslocamento de grãos de pólen 2. Descrição do Processo Sem prejuízo ao funcionamento do algoritmo será suposto o emprego da norma do máximo para delimitar a região de busca (uma bola fechada B(X 0, L) do R n ) e a norma euclidiana para avaliar as distâncias entre as árvores. Seja f uma função não linear positiva definida em B. A execução do algoritmo proposto para obter seu ponto de mínimo global pode ser sumarizada pelos 5 passos que seguem. ) Gere uma floresta contendo n árvores A i em B, cada uma delas tendo como atributos o centro (um ponto X i de B onde a árvore A i estará centrada) e altitude (a imagem de f em X i ). O valor de n deve ser ajustado de acordo com o problema a ser resolvido. Por exemplo, se uma função a ser minimizada possuir, digamos 0 variáveis, e outra possuir 20, é de se esperar que para a segunda função uma quantidade maior de árvores faça com que o processo convirja mais rapidamente. 2) Para as n árvores geradas calcule a matriz de distâncias D = [d ij ] nxn, onde d ij, é a distância da árvore A i até a árvore A j. Evidentemente o trajeto seguido pelos grãos de pólen serão os mais diversos possíveis, já que serão conduzidos pelo vento ou por insetos. Na impossibilidade de modelar estes percursos de um modo preciso é razoável Colegiado do Curso de Matemática - Unioeste - Cascavel 44
3 que seja empregada a norma euclidiana para calcular tais distâncias. 3) Faça com que cada árvore A i produza uma quantidade k de grãos de pólens. Cada grão de pólen de uma árvore A i deve ser conduzido a outra árvore A j, i j, buscando sempre um favorecimento a tais árvores de acordo com o inverso do produto a(a j )d(a i, A j ), onde a(a j ) é a altitude da árvore A j e d(a i, A j ) é a distância da árvore A i até a Árvore A j. Esta distribuição de grãos de pólen pode ser feita por meio do processo conhecido como regra da roleta, que pode ser descrito como segue. n i) Faça S = d( A, A ) a( A j= i j j ) i j ii) Gere um número aleatório r em [0, ] e faça z = rs.. iii) Escolha como árvore sorteada a primeira árvore A t tal que d( A, A ) a( A t j= i j j ) i j z. Um grão de pólen pode ainda ficar retido na própria árvore que o gerou, mas neste caso não se pode usar o processo anteriormente descrito, já que d(a i,a i ) = 0. Neste caso é preciso estipular uma certa probabilidade de que isto ocorra. Por exemplo, pode-se usar uma distribuição de probabilidade uniforme e estipular que a probabilidade de que um grão de pólen fique retido seja de P, 0 P <. Quando P = 0 nenhum grão de pólen ficará retido. No caso de P = todos os grãos de pólen gerados ficariam retidos, o que não é interessante pois prejudicaria a convergência do algoritmo. Assim como o número de árvores, o valor de k deve ser ajustado de acordo com o problema a ser resolvido. 4) Uma vez gerados nk grãos de pólen (número de árvores pelo número de grãos gerados em cada uma delas), e feita a distribuição deles, suponha a produção de nk sementes e que estas vão produzir nk novas árvores. As sementes produzidas por uma árvore de centro X i vão germinar em uma bola B(X i, r), r > 0. O raio r deve ser fixado no início do processo e precisa ser reduzido gradativamente à medida que a sequência converge para um ponto estacionário. Dentre as nk novas plantas geradas mais as n que já existiam, deve-se escolher as n melhores para formar a nova floresta de pesquisa, descartando-se as demais. 5) Faça um teste de parada. Este teste pode ser o alcance de um número máximo de gerações pré-estabelecido. Pode-se também optar por parar quando todas as árvores da floresta tiverem se concentrado próximo de um único ponto, onde se supõe ser ponto de mínimo de f. Isto deve ocorrer quando as distâncias entre todos os pares de árvores forem menores que um valor ε > 0 estipulado. 3. Experimentação do algoritmo Com o propósito de ilustrar o funcionamento do algoritmo descrito considere-se a Colegiado do Curso de Matemática - Unioeste - Cascavel 45
4 função f dada por f(x, y) = 0.8x - cos(πx) + 0.8y - cos(πy) + 4 cujo valor mínimo é 2 e ocorre no ponto X = (0, 0). Para região de busca tomou-se o quadrado [-0, 0]x[-0, 0] e como configuração para os parâmetros do algoritmo foram tomadas 0 árvores (n = 0), 0 grãos de pólen gerados por planta (k = 0) e um total de 40 gerações. Na figura 2 a seguir estão apresentadas a população inicial gerada (quadro ), as quatro gerações subsequentes (quadros 2 a 5) e a população da 20 a. geração (quadro 6). 0 2,5 5 0, , ,5 ' () (2) (3) (4) (5) (6) Figura 2 Ilustração de convergência para uma população de vinte árvores Este comportamento pode ser verificado também na figura 3, que mostra como a sequência converge para a solução. Colegiado do Curso de Matemática - Unioeste - Cascavel 46
5 4,5 4 3,5 3 2,5 2,5 0,5 0 G2 G3 G4 G5 G6 G7 G8 G9 G0 G G2 G3 G4 G5 G6 G7 G8 G9 G20 G2 Figura 3 Altitude da mais alta árvore obtida em cada geração Para esta função, na 40 a. geração o resultado obtido com 6 casas decimais foi exato, isto é, o ponto de mínimo obtido foi X = ( , ). Na tabela a seguir estão apresentados os valores de mínimo obtidos para a função f ( X ) = i= 2 [.5 x i cos( πx i )] para vários valores de n (número de árvores). Para região de busca considerou-se a bola B(O, 0), onde O é a origem do R 0. O valor de k (número de grão de pólen) foi fixado em 0. A implementação do algoritmo foi feita na linguagem Pascal, sendo fixado randseed = 2. Tabela. Variação do mínimo de acordo com o número de árvores Número de árvores Mínimo 3,042 0,852 0,0557 0,004 0,0007 0,0006 0,0002 0, Análise dos Resultados Como se pode observar na Tabela, o parâmetro número de árvores é importante para a convergência da sequência de pontos gerada pelo algoritmo. Em testes realizados verificou-se igual importância para número de grãos de pólen produzidos por planta, para a região de busca e, evidentemente, para da função tratada. Um fato a ser notado, tanto na Tabela quanto na Figura 3, é que conforme a sequência se aproxima do ponto de mínimo o processo tende a ficar mais lento. Muito embora este fato seja indesejado, ele é comum na maioria dos algoritmos de otimização. Colegiado do Curso de Matemática - Unioeste - Cascavel 47
6 5. Conclusões Neste trabalho foi feita uma exemplificação do funcionamento do algoritmo Árvore da Montanha. Apesar de estar em fase de desenvolvimento, nos testes que até o momento foram realizados ele mostrou um bom desempenho. A expectativa é que ele possa ser aperfeiçoado e melhorado em um curto espaço de tempo. 6. Referências Bibliográficas BURDEN, R. L., FAIER, D. F. Análise Numérica, Ed. Thonson Learning, 2005, 736 p. DORIGO, M, MANIEZZO, V., COLORNI A. (996) Ant System: Optimization by a colony of cooperating agents. IEEE Transactions on Systems, Man, and Cybernetics- Part B, 6():29-4. Disponível em Acesso em 06 de agosto de GOLDBERG, D. E. Genetic Algorithm in Search, Optimization and Machine Learning, Massachusetts, Addison Wesley, Co., 989, 432 p. KIRKPATRICK, S. GELATT JUNIOR, C. D., VECCHI, M. P. Optimization by Simulated Annealing, Science, v. 220, n. 4598, 983. Disponível em Acessado em set/2009. Colegiado do Curso de Matemática - Unioeste - Cascavel 48