Você está na página 1de 2

IMPLEMENTAO E APLICAO DO ALGORITMO DE BUSCA INFORMADA A*

DCA-UFRN

Resumo Este trabalho visa discorrer sobre a implementao e aplicao do algoritmo de busca informada A* na determinao do caminho timo considerando a distncia percorrida entre um ponto inicial e um ponto final. Todas as simulaes foram realizadas no sistema simulador de robs no-holonomicos iRobot. Palavras Chaves : Melhor Caminho, Busca Informada, A* Abstract: This article describes the implementation of the informed search algorithm A* and presents the results of its application on the determination of the best path considering travelling costs between an initial and a destination point. All the simulations were made using the non-holonomic robot simulator iRobot. Keywords: Best Path, Informed Search, A*

-Para cada um dos seus 8 adjacentes, checa-se se o n um obstculo ou se j est na lista fechada. -Seno, caso no esteja na lista aberta, adiciona-se o n lista aberta, marcando o n atual como pai do n adjacente e gravar os custos F, G e H. -Caso j esteja na lista aberta, checar se o caminho atravs do n adjacente melhor considerando o custo G. Um custo G menor prefervel. Se o caminho for melhor, fazer o n atual ser o pai do n adjacente e recalcular os seus custos F e G.

SIMULAES
Nesta simulao, foi inserido um bloco entre o n inicial (x=0,y = 0) e o n final (x = 10, y = 10). A seguir, mostra-se 2 situaes da lista fechada ao longo da simulao:

INTRODUO
O algoritmo A* largamente utilizado na busca do melhor caminho entre dois pontos devido sua performance e preciso. Tal algoritmo uma extenso do algoritmo de Edsger Dijkstra, alcanando melhor desempenho atravs do uso de heurstcas.

ALGORITMO
Inicialmente, todos o espao de busca dividido num grid, resultado num espao finito de busca bidimensional. Cada elemento do grid, chamado de n, guarda na forma de struct os valores da sua coordenada, da coordenada de seu pai, as grandezas referentes aos custos F,G e H e se um n obstculo ou no. So utilizadas duas listas no decorrer do algoritmo: -A cada iterao, toma-se o n de menor custo F da lista aberta, designado de n atual, e visita-se todos os seus ns adjacentes, adicionando-os tambm a lista aberta. Em seguida, transportase o n atual para a lista fechada. -O primeiro passo adicionar o n inicial lista aberta. -Em seguida, repete-se os seguintes passos at o n objetivo ter sido inserido na lista fechada ou a lista aberta estar vazia, o que significa a no existencia de um caminho entre o n inicial e final: -Definir o n atual como o n de menor custo F na lista aberta e mov-lo para a lista fechada.

Na segunda simulao, setou alguns blocos entre o ponto inicial ( x= 0 , y = 0) e o ponto final (x = 1, y = 2). A seguir, mostra-se a situao da lista fechada durante a simulao:

REFERNCIA BIBLIOGRFICA
http://www.policyalmanac.org/games/aStarTutorial.htm http://en.wikipedia.org/wiki/A*_search_algorithm