AJUDA! Com algorítimo A*

Olá pessoal, estou precisando de uma ajuda com o algorítimo A* pois, já olhei vários algorítimos prontos e também li sobre o assunto mas não consegui entender eles. Eu já tentei implementar porém, não consegui fazer funcionar.

Eu tenho o seguinte problema: Tenho uma matriz 10x10 e preciso fazer com que o “robô” ande da posição 1,1 até 10,10, onde é o fim do labirinto. O problema que a cada passo que o robô dá tem que verificar se ele vai para direita, baixo, cima ou esquerda e verificar qual o melhor custo para ele andar e verificar se não é uma parede.

Será que alguém pode me dar uma luz? Para solucionar este problema.

1 curtida

Acho melhor você experimentar o wall follower primeiro para entender. O A* vai se resumir em um algoritmo desse tipo nesse caso, se não me engano. Na wikipedia em inglês tem um artigo interessante sobre o assunto que pode te ajudar: https://en.wikipedia.org/wiki/Maze_solving_algorithm

1 curtida

vicky Uma vez eu estava brincando e acabei fazendo algo igual ao que você quer, mas ta muito confuso o código eu utilizei uma PILHA e basicamente eu criei 4 funções andar para cima , esquerda … baixo. Se eu conseguir andar para cima eu ando e marco na minha PILHA a última posição se não entrar em nenhuma das 4 funções cima baixo… eu pego o ultimo valor da minha PILHA e faço ele andar ate la, ai verifico dnv se não tem nenhuma lugar para andar se tiver ando e marco na pilha se nao tiver volto dnv e assim vai ate a pilha esta vazia e a aplicação parar.

Está é uma solução para chegar até o destino. Mas faz algum tempo que eu não programo nada em Java e não lembro como fazer, to fazendo um trabalho de faculdade e tenho que utilizar o A* e o BFS (busca em largura). Ainda não consegui fazer nenhum pois, estou com muita dificuldade em resolve-los.

Então eu peguei essa matéria esse período Teoria dos grafos mas tive que tranca porque peguei muita matéria complicada junto, não posso te ajudar tanto ;/ .

Interessante sua pergunta. Nunca tinha mexido com um algoritmo assim. Dei uma pesquisada e achei um link interessante que talvez te ajude:

http://www.policyalmanac.org/games/aStarTutorial_port.htm

Eu pesquisei bastante sobre esse algoritmo mas, ainda não consegui desenvolver nada prático ou útil para implementar em uma matriz ou algo do tipo.