Caminho de Menor Custo com Algoritmo de Colónia de Formigas
-
Upload
tiagomarquesdasilva -
Category
Documents
-
view
80 -
download
0
Transcript of Caminho de Menor Custo com Algoritmo de Colónia de Formigas
-
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:[email protected]
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:[email protected]
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
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 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
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.
P
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:
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
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:
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].
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
Fig. 3 Frmula para determinao do prximo n a visitar
Fig. 4 Frmula para calcular o depsito de feromona num arco
Fig. 5 Problema das duas pontes
-
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:
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,
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.
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. 6 Frmula para evaporao da feromona
Fig. 7 Eliminao do primeiro ciclo encontrado no caminho
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
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
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. 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.
Fig. 8 Grafo utilizado na aplicao prtica
-
REFERNCIAS
[1] N. Biggs, E. Lloyd, and R. Wilson, "Graph Theory, 1736-1936, Oxford University Press, 1986.
[2] 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
[3] Dechter, Rina; Judea Pearl, "Generalized best-first search strategies and the optimality of A*". Journal of the ACM, No. 32, 1985, pp 505536
[4] R. Bajaj, S. L. Ranaweera and D. P. Agrawal, "GPS: Location-Tracking Technology", IEEE Computer, Vol. 35, No. 4, 2002, pp. 92-94.
[5] Marco Dorigo, Mauro Biratarri, Thomas Stutzle. Ant Colony Optimization, Computacional Intelligence Magazine, November 2006
[6] 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
[7] R. Claes and T. Holvoet. Ant Colony Optimizatioin applied to Route Planning using Link Travel Time predictions, IEEE International
Parallel & Distributed Processing Symposium, 2011
[8] F. Glover, M. Laguna (1997). "Tabu Search". Kluwer Academic Publishers.
[9] A. Das and B. K. Chakrabarti (Eds.), Quantum Annealing and Related Optimization Methods, Lecture Note in Physics, Vol. 679, Springer, Heidelberg (2005)