Busca de caminhos em um labirinto – BFS, DFS e A*
ComputaçãoAlgoritmos e resolução de problemasIdades 17–18
Carregando…
Entre para usarUma grade com paredes, uma célula de partida e uma célula de chegada. Os alunos escolhem a busca em largura (BFS, com uma fila), a busca em profundidade (DFS, com uma pilha) ou A* e acompanham cada passo: as células em espera são numeradas na ordem em que serão retiradas, as células exploradas são coloridas pela distância e, no fim, aparece o caminho encontrado. Desenhe ou apague paredes, arraste a partida e a chegada, gere novos labirintos e compare as células exploradas e o comprimento do caminho de cada algoritmo.
Aula: Algoritmos de busca de caminhos em uma grade: busca em largura (BFS), em profundidade (DFS) e A*
O que mostra
Um labirinto é modelado como uma grade de células; cada movimento leva a uma célula vizinha acima, abaixo, à esquerda ou à direita, e todos custam o mesmo. A busca em largura guarda as células em espera em uma fila: explora primeiro todas as células a um passo, depois a dois passos, e na primeira vez que chega à chegada já tem um caminho mais curto. A busca em profundidade usa uma pilha e segue uma direção até ficar presa, por isso seu caminho costuma ser mais longo. A* ordena as células por f = g + h, em que h é a distância Manhattan até a chegada.
Como usar
Escolha BFS, DFS ou A* e clique em Passo a passo para acompanhar as células numeradas em espera, ou em Executar para ver uma animação. Compare a tabela de resultados após cada execução. Use Desenhar paredes, Apagar paredes, Definir partida e Definir chegada para mudar a grade, ou escolha um Tipo de grade e clique em Nova grade.
Parâmetros que você pode mudar
- Algoritmo BFS – busca em largura, DFS – busca em profundidade, A* – guiada por uma estimativa de distância
- Tipo de grade Labirinto com ciclos, Obstáculos aleatórios, Grade vazia
- Número de colunas 11–41 células
- Paredes extras removidas (labirinto) 0–60 %
- Densidade de obstáculos 0–45 %
- Velocidade 1–100 passos/s
Perguntas para explorar
- Por que o caminho encontrado pela BFS é sempre um dos mais curtos, enquanto o da DFS muitas vezes não é?
- Em uma grade vazia, qual algoritmo explora menos células, e por quê?
- Você consegue montar um labirinto em que a DFS chega ao destino explorando menos células que a BFS?