3. Labirintos 2D
Conjunto de percursos intrincados criados com a
intenção de desorientar quem os percorre.
Possui apenas um ponto de saída e vários
caminhos que te vem a algum lugar ou a lugar
nenhum, quase todos os caminhos se cruzam.
8. Algoritmos
Algoritmos de busca
Principais algoritmos:
Busca em Largura
Busca em Profundidade
Busca A*
9. Busca em Largura
Algoritmo usado para realizar uma busca ou
travessia numa árvore, estrutura de árvore ou
grafo.
Começa pelo nó raiz e explora todos os nós
vizinhos. Então, para cada um desses nós mais
próximos, exploramos os seus nós vizinhos
inexplorados e assim por diante, até que ele
encontre o alvo da busca.
11. Execução do Algoritmo
S’ v1
V’ {v}
E’ 0
Enquanto TRUE faça
Para (x ∈ S, em ordem) Faça
Para (y ∈ V-V’, em ordem) e (y diferente de destino ) Faça
Se ( {x,y} é uma aresta que não possui ciclo em T ) Então
Adicione a aresta {x,y} a E’
Adicione y a V’
Fim Se
Fim Para
Fim Para
Se arestas não foram adicionadas ou y igual destino Então
Retorne (T)
Fim Se
S filhos de S ordenados consistentemente
Fim Enquanto
12. Busca em Profundidade
Algoritmo usado para realizar uma busca ou
travessia numa árvore, estrutura de árvore ou
grafo.
Começa num nó raiz (selecionando algum nó
como sendo o raiz, no caso de um grafo) e
explora tanto quanto possível cada um dos
seus ramos, antes de retroceder
(backtracking).
14. Execução do Algoritmo
V’ {v1}
E’ 0
w v1
Enquanto TRUE faça
Enquanto (∃ {w,v} que possa ser adicionado
sem gerar ciclo) e (w != Destino ) Faça
Escolha aresta {w, vk} com menor k
Adicione {w, vk} a E’
Adicione vk a V’
w vk
Fim Enquanto
Se w = Destino Então
Retorne T
Fim Se
w pais de w em T
Remove ultima aresta de E’
Fim Enquanto
15. Conclusão
Grafos é uma ótima técnica de resolução de
labirintos, e capaz de torná-los mais simples
Dentre os algoritmos, o algoritmo de busca em
profundidade é mais simples embora seja mais
demorado. O algoritmo de busca em largura é
mais rápido, mas é mais complexo.