Вы находитесь на странице: 1из 5

Clculo do Caminho com Menor Custo Usando o Algoritmo de Colnia de Formigas em Ambientes Dinmicos

Fbio Daniel Martinho Ferreira


Instituto Politcnico de Viseu, Escola Superior de Tecnologia e Gesto de Viseu, Mestrado em Sistemas e Tecnologias de Informao para as Organizaes, Computao Inspirada em Vida Tel. 936761561 email:martinhoferreira10@gmail.com
Resumo O problema do caminho com menor custo um problema tpico de optimizao, sendo abordado em diferentes reas. Existem diversos algoritmos, sendo o algoritmo de Dijkstra, na Investigao Operacional, e a procura A*, na Inteligncia Artificial, mtodos bem conhecidos. Existem algoritmos inspirados no funcionamento de sociedades naturais que trazem uma abordagem diferente para a resoluo deste problema em ambientes cuja informao varia ao longo da execuo do algoritmo, ou seja, em ambientes dinmicos. Este documento pretende aplicar um mtodo inspirado no comportamento das formigas, conhecido como o algoritmo de Optimizao de Colnia de Formigas, para a procura de um caminho mais curto quando existem vrios fatores externos que influenciam a sua escolha durante a procura da soluo. Palavras-chave Caminho mais Curto, Colnia de Formigas, Optimizao, Ambientes Dinmicos

Tiago Alexandre Marques da Silva


Instituto Politcnico de Viseu, Escola Superior de Tecnologia e Gesto de Viseu, Mestrado em Sistemas e Tecnologias de Informao para as Organizaes, Computao Inspirada em Vida Tel. 963826602 email:tmarquesdasilva@gmail.com A aplicao de mtodos, como o algoritmo de Dijsktra[2] e a procura A*[3], pressupem que os custos entre os nodos do grafo sejam iguais ao longo da execuo do algoritmo, e mais importante ainda, que esses custos no sejam afectados por fatores externos. Mecanismos como o GPS (Global Positioning System)[4] calculam os custos levando em considerao o tempo ou a distncia. Utilizando o GPS para calcular um conjunto de rotas, em que o factor determinstico, o factor tempo, no existe garantia que o resultado real, pois um caminho que teoricamente mais rpido em relao a outro, poder deixar de o ser se este apresentar maior trfego, sendo o trfego actualizado durante a procura. Este artigo visa aplicar o algoritmo inspirado no comportamento das formigas na procura de alimento[5], tendo em conta o caminho de menor custo, em que existindo vrias localidades, com diferentes tempos de viagem entre si ou distncias, calcule o caminho de menor custo tendo em conta a ocorrncia de fatores externos durante a execuo do algoritmo. II. ALGORITMO APLICADO
ESTRUTURA DE DADOS

I. INTRODUO

roblemas como o caminho de menor custo esto entre os principais problemas estudados em diversas reas como a geometria; logstica; sistemas de localizao geogrfica, etc. O problema do caminho de menor custo poder ser resolvido utilizando vrias abordagens, sendo algumas delas provenientes de reas com propsitos bastante diferentes, mas na maioria dos casos tm em comum, a estrutura como o problema organizado na sua fase inicial um grafo[1].

A aplicao foi desenvolvida com um grafo definido, no entanto, o custo entre os arcos parametrizvel pelo utilizador assim como demais variveis que sero discutidas ao longo deste captulo.

Fig. 1. Grafo representativo de um problema de caminho mais rpido, sendo os bales os nodos, por exemplo, localidades, e os arcos entre eles o tempo de viagem, em horas, entre as mesmas. O ponto inicial neste grafo o nodo A, sendo o objectivo final o nodo F. Fig. 2 Grafo utilizado na aplicao prtica (Nmeros representam as identificaes dos ns)

A. N Inicial e N Final As formigas, no algoritmo aplicado, comeam todas no mesmo ponto e tm um objetivo em comum alcanar o n final. O algoritmo aplicado permite que o utilizador especifique o n inicial e o n final. O nmero de formigas tambm parametrizvel na aplicao, no havendo qualquer limite para este valor, assim como o nmero de iteraes. B. Escolha Do Prximo Caminho Inicialmente um conjunto de agentes colocado num n origem, e a partir daqui comeam-se a construir solues, sendo que nesta construo, cada agente analisa os caminhos possveis de seguir, ou seja, os ns aos quais se pode ligar. A escolha do prximo n a visitar feita probabilsticamente atravs da seguinte frmula:

fosse alterar o valor de feromona com o mesmo dinamismo ento faria sentido optar pelo contrrio, ou seja, um maior valor de feromona (alfa) e um menor valor para o custo (beta). O valor destas variveis parametrizvel na aplicao. C. Depsito de Feromona Em cada iterao um agente deposita uma certa quantidade de feromona num caminho percorrido, esse depsito feito utilizando a seguinte frmula:

Fig. 4 Frmula para calcular o depsito de feromona num arco

Valor de feromona a depositar entre o n i e n j Distncia entre o n i e n j Como se pode constatar pela anlise da frmula anterior, quanto maior for o custo de um caminho, menor ser o valor de feromona depositada no arco em questo, sendo isto importante no no momento do depsito em si, mas sim posteriormente no clculo probabilstico do prximo n a visitar. D. Evaporao de Feromona A evaporao da feromona um passo importante neste algoritmo pois aumenta o grau de explorao de novas solues. Para percebermos a importncia desta evaporao vamos analisar o tradicional problema das duas pontes[5].

Fig. 3 Frmula para determinao do prximo n a visitar

Quantidade de feromona no arco entre o n i (origem atual) e o n j (n destino) Valor inversamente porporcional distncia entre o n i (origem atual) e o n j (n destino) Alfa Beta Como se pode verificar pela frmula anterior quanto maior for o custo menor ser a probabilidade de um caminho ser escolhido. Quanto maior for o valor de feromona num arco maior ser a probabilidade desse caminho ser escolhido. As variveis alfa e beta so parmetros que determinam, respectivamente, a influncia da feromona e da informao heurstica no clculo probabilstico. Estas variveis so importantes para o algoritmo, dado que influenciam o grau de explorao do espao de solues e o tempo de convergncia, sendo que influenciam a soluo gerada ao fim de n iteraes. Um alfa elevado indica que a importncia da feromona elevada para escolher o prximo n a visitar, j por sua vez, um valor elevado de beta indica que o custo um factor importante para a mesma deciso. A escolha dos valores destas variveis deve ser bem ponderada, dependendo do problema a resolver. Para este tema clculo do caminho de menor custo em ambientes dinmicos faz sentido atribuir mais importncia ao custo (beta) do que feromona (alfa) pois o dinamismo durante a execuo do algoritmo leva a que os pesos dos arcos sejam modificados, mas se a abordagem

Fig. 5 Problema das duas pontes

Numa fase inicial o nico caminho entre a colnia e o alimento era o caminho debaixo, que comparativamente com o caminho de cima duas vezes mais longo. As formigas passado algum tempo formaram uma trilha entre a colnia e o alimento. Depois da trilha formada, foi adicionado o caminho de cima que era duas vezes menor que o caminho de baixo. As formigas continuaram durante muito tempo a ir pelo caminho mais longo, e verificou-se que apenas com a ajuda de alteraes externas (chuva, ambiente, outros insectos no caminho, etc.) que o caminho de cima comeou a ser o escolhido pelas formigas, sendo que passado algum tempo, estas comearam a ir na grande maioria das vezes por este caminho. Concluso, fatores externos fizeram com que o nvel de feromona no caminho de baixo diminusse, e com isso, o caminho efectivamente mais curto passou a ser o escolhido, se

no tivesse havido evaporao de feromona, as formigas continuariam a optar pelo caminho mais longo. Na aplicao prtica a evaporao de feromona feita atravs da seguinte frmula:

fazendo com que o esforo computacional seja maior e desnecessrio. Para evitar este problema optou-se por fazer uma optimizao no caminho construdo desde o n inicial at ao n final no momento em que a formiga chega a este ltimo e deve voltar ao incio. Esta optimizao altera o caminho construdo eliminando o primeiro ciclo encontrado no mesmo.

Fig. 6 Frmula para evaporao da feromona

Quantidade de feromona no arco entre o n i e j Rho A constante rho indica a influncia da evaporao no processo, sendo que quanto maior for este valor mais feromona decrescer ao fim de cada iterao. A escolha de um valor para esta varivel importante, pois quanto maior for este valor maior ser o grau de explorao do algoritmo mas ao mesmo tempo o grau de focalizao ser menor. Este valor na maior parte das vezes tem um valor de 0.5, sendo que o valor desta varivel deve estar num intervalo de 0 a 1. Na aplicao o rho parametrizvel. E. Modo Forward e Modo Backward Existem diversas aplicaes algortmicas do algoritmo de Optimizao de Colnia de Formigas para diferentes problemas. Na aplicao prtica optou-se por em cada iterao fazer cada formiga percorrer o caminho desde o n inicial at ao n final, e chegando a este, a mesma volta para o n inicial. Quando a formiga parte do n inicial para o n final diz-se estar em modo forward, j quando faz o caminho inverso est em modo backward. No modo forward a formiga no deposita feromona nem existe qualquer evaporao da mesma. Neste modo cada formiga em cada iterao constri um caminho desde o n inicial at ao n final, sendo que a escolha de cada caminho entre um n i e um n j feita atravs da frmula probabilstica para escolha do prximo caminho. Quando a formiga chega ao n final, conhecendo este como tal, sabe que dever trocar de modo forward para backward e voltar ao n inicial. Neste ponto existe para cada formiga um caminho completo que dever ser percorrido desta vez em sentido contrrio, no entanto, o caminho a percorrer para o n inicial poder mudar. Quando a formiga constri o caminho usa, como j foi referido, a frmula probabilstica para decidir qual o prximo n a visitar, fazendo isto, at chegar ao n final, no entanto neste processo nada garante que a formiga possa optar por piores caminhos (caminhos com maior custo comparativamente com outros) ou construir ciclos locais, sendo que a nica regra estabelecida que uma formiga no pode voltar ao n em que esteve anteriormente. Ao permitir que um agente possa optar por piores solues faz com que possa explorar mais o espao de solues, no entanto, o facto de puderem existir ciclos locais pode fazer com que os agentes fiquem presos em certas zonas da trilha durante algum tempo,

Fig. 7 Eliminao do primeiro ciclo encontrado no caminho

Para todas as formigas, cada caminho percorrido, desde o fim at ao incio e o primeiro ciclo a ser encontrado eliminado. importante reparar que apenas eliminado o primeiro ciclo encontrado e no todos, pois se optssemos por esta ltima soluo o esforo computacional seria bem maior. Depois de uma formiga partir do n inicial, ter construdo uma caminho at ao n final, e esse caminho ter sido optimizado como descrito anteriormente, esta muda para o modo backward. Neste modo a formiga percorre o caminho optimizado, no sentido inverso, sendo que em cada n visitado deposita feromona recorrendo frmula para o depsito da mesma. Quando a formiga deposita feromona existe depois o processo de evaporao, sendo que esta feita de acordo com a frmula para a evaporao de feromona. F. Resumo do Algoritmo Segue-se o pseudo-cdigo de alto nvel do algoritmo aplicado:

Fig. 7 Pseudo-cdigo de alto nvel do algoritmo

III. EXPERINCIA E RESULTADOS


EXPERINCIA

A experincia tem como objetivo mostrar a adaptao do algoritmo a fatores externos. Partindo de uma localizao inicial para uma localizao final mostrar-se- o comportamento do algoritmo quando existem fatores externos a perturbar a execuo do algoritmo. Nmero de formigas: 10 Nmero de iteraes: 1500 Valores usados para alfa, beta e rho: 2.5; 6; 0.99

Como se pode verificar o algoritmo adaptou-se a eventos externos de maneira a que a soluo se tornasse melhor, embora diferente da inicial, comparativamente com a soluo encontrada antes da ocorrncia de fatores perturbadores. Se o algoritmo no se aptasse a estes eventos ao fim das 1500 iteraes teria um custo total de 129 unidades (com a actualizao, na iterao 500, do custo da ligao entre o n 12 e 13). Os grficos seguintes mostram os valores de feromona entre os ns decisivos durante a execuo do algoritmo no problema estudado:

Fig. 9 Valores de feromona entre os ns 12 e 13 ao fim de 1500 iteraes

Fig. 8 Grafo utilizado na aplicao prtica

N Inicial: 0 N Final: 9 O nmero de iteraes e de formigas escolhido no foi alvo de muita reflexo, foram corridos vrios testes e estes valores revelaram-se satisfatrios para o objetivo pretendido. Como se pode constatar pelos valores atribudos a alfa e beta, foi dada uma maior importncia ao custo do que ao valor da feromona (os fatores externos influenciaram o custo das ligaes, da a deciso). A escolha do n inicial e do n final foi feita de maneira a que caminhos com diversas localizaes vizinhas pudessem ser escolhidos, de maneira a mostrar a correcta adaptao do algoritmo. A. Resultado ao fim de 500 iteraes Soluo encontrada: 0-13-12-10-9 Custo da soluo: 97 unidades Como se pode verificar o caminho que o algoritmo calcula efectivamente o mais curto. Para simular a ocorrncia de fatores externos, que mudam a soluo encontrada at ao momento da sua ocorrncia, mudou-se o valor da ligao entre o n 12 e 13, na iterao 500. O valor da ligao entre estes ns passou de 9 para 40 unidades. B. Resultado ao fim de 1500 iteraes Soluo encontrada: 0-13-14-16-9 Custo da soluo: 108 unidades

Fig. 9 Valores de feromona entre os ns 13 e 14 ao fim de 1500 iteraes

Pode-se constatar a diminuio dos nveis de feromona entre o n 12 e 13 a partir da iterao 500 (ocorrncia de fatores externos), j por sua vez estes valores aumentam entre o n 13 e 14 a partir do mesmo momento. IV. CONCLUSES A Optimizao de Colnia de Formigas um algoritmo que se diferencia pela sua adaptao a ambientes dinmicos, encontrando solues alternativas que inicialmente no eram, comparativamente com outras, as melhores, mas que depois da ocorrncia de eventos externos passam a ser boas solues. O modo forward e backward, assim como a eliminao de um possvel primeiro ciclo em cada soluo encontrada pelos agentes foram duas abordagens que se revelaram eficazes e eficientes em termos de tempo e de recursos computacionais, pois o algoritmo corre com rapidez e fluidez. Uma possvel alterao seria a substituio do modo forward e backward por um mecanismo que, em cada iterao, fizesse percorrer os agentes num nico sentido), e depois entre as solues encontradas fosse aplicado outro algoritmo, como a pesquisa tabu[8] ou o simulated annealing[9] para encontrar a melhor soluo da iterao. O algoritmo passaria a ser hibrido e mais flexvel para outros problemas para alm do caminho de menor custo. Esta alterao seria uma de entre vrias que se poderiam fazer a este algoritmo flexvel e de mbito abrangente que a Optimizao de Colnia de Formigas.

REFERNCIAS [1] [2] N. Biggs, E. Lloyd, and R. Wilson, "Graph Theory, 1736-1936, Oxford University Press, 1986. M. Barbehenn, A Note on the Complexity of Dijkstra's Algorithm for Graphs with Weighted Vertices, IEEE Transactions on Computers, Vol. 47, No.2,1998 Dechter, Rina; Judea Pearl, "Generalized best-first search strategies and the optimality of A*". Journal of the ACM, No. 32, 1985, pp 505536 R. Bajaj, S. L. Ranaweera and D. P. Agrawal, "GPS: Location-Tracking Technology", IEEE Computer, Vol. 35, No. 4, 2002, pp. 92-94. Marco Dorigo, Mauro Biratarri, Thomas Stutzle. Ant Colony Optimization, Computacional Intelligence Magazine, November 2006 A. Mustafi, A. Jain, S. Sahana. A Comparative Study on Multicast Routing using Dijkstra's, Prims and Ant Colony. International Journal of Computer Engineering and Technology, November 2010 R. Claes and T. Holvoet. Ant Colony Optimizatioin applied to Route Planning using Link Travel Time predictions, IEEE International Parallel & Distributed Processing Symposium, 2011 F. Glover, M. Laguna (1997). "Tabu Search". Kluwer Academic Publishers. A. Das and B. K. Chakrabarti (Eds.), Quantum Annealing and Related Optimization Methods, Lecture Note in Physics, Vol. 679, Springer, Heidelberg (2005)

[3] [4] [5] [6]

[7]

[8]

[9]

Вам также может понравиться