Algoritmo A*

pessoal, alguém poderia me mostrar um código utilizando esse algoritmo ou uma fonte onde posso encontrar exemplos de códigos utilizando-o?

pode ser o algoritmo de busca gulosa também

Abraço.

1 curtida

O algoritmo A* nada mais é do que um algoritmo de Dijkstra com uma heurística.
Você pode utilizar ele por exemplo para encontrar a menor rota entre dois pontos de um mapa.

Se usar o algoritmo de Dijkstra, ele vai avaliar todos os caminhos possíveis.
Mas com o A* sua heurística pode eliminar algumas ruas da sua busca.

Por exemplo, se o caminho da origem para o destino é em direção ao norte, sua heurística pode ignorar as ruas que vão pro sul, tornando sua busca mais rápida.

Há cerca de 15 anos eu implementei o A* como trabalho acadêmico pra resolver um quebra cabeça deslizante, também chamado de “racha-cuca”, tipo esse da imagem abaixo:
racha-cuca

Cada caso é um caso…
Com Dijkstra o problema é a demora para visitar todos os vértices do grafo.
Com o A* o desafio é encontrar uma heurística adequada para decidir se um vértice deve ser visitado ou não.

2 curtidas