Caminho de Menor Custo com Algoritmo de Colónia de Formigas

download Caminho de Menor Custo com Algoritmo de Colónia de Formigas

of 5

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)