Algoritmo A*
Origem: Wikipédia, a enciclopédia livre.
Algoritmo A* (Lê-se: A estrela) é um algoritmo para Busca de Caminho. Ele busca o caminho em um grafo de um vértice inicial até um vértice final. Ele é a combinação de aproximações heurísticas como do algoritmo Best-first Search e da formalidade do Algoritmo de Dijkstra.
O algoritmo foi descrito pela primeira vez em 1968 por Peter Hart, Nils Nilsson, e Bertram Raphael. Na publicação deles, ele foi chamado de algoritmo A; usando este algoritmo com uma heurística apropriada atinge-se um comportamento ótimo, e passou a ser conhecido por A*.
Sua aplicação vai desde aplicativos para encontrar rotas de deslocamento entre localidades a resolução de problemas, como a resolução de um quebra-cabeças. Ele é muito usado em jogos.
[editar] Algoritmo
1 - Inicialize Q com o nó de busca (S) como única entrada;
2 - Se Q está vazio, interrompa. Se não, escolha o melhor elemento de Q;
3 - Se o estado (n) é um objetivo, retorne n;
4 - (De outro modo) Remova n de Q;
5 - Encontre os descendentes do estado (n) que não estão em visitados e crie todas as extensoões de n para cada descendente;
6 - Adicione os caminos extendidos a Q e vapara o passo 2;
Função heuristica f = h+g; h(n) eh é uma estimativa da distância de um estado até o objetivo; g é o comprimento; ja a estimativa do comprimento total é fornecido por f; Q é uma lista dos caminhos expandidos;
Uma estimativa que sempre substima o comprimetno real do caminho ate o objetivo é chamada de admissivel. O uso de uma estimativa admissilve garante que a busca de custo-uniforme ainda encontrará o menor caminho.
[editar] Ligações externas
- ((pt)) A* Pathfinding para Iniciantes
- ((pt)) Projeto de Pesquisa de Algoritmos de Busca
- ((en)) A* Demonstration Uma demonstração visual do algoritmo, usando Applet Java
- ((en)) Amit's A* Pages -- Path finding Texto bastante completo sobre busca de caminhos (Path finding) usando o Algoritmo A*