Algoritmos de PathFinding

download Algoritmos de PathFinding

If you can't read please download the document

description

Overview about pathfind algorithms.

Transcript of Algoritmos de PathFinding

  • 1. Algoritmos de Pathfinding Emiliano Carlos

2. Sumrio Algoritmos Simples Basicos, breadcrumb, path following, wall tracing Games e Pathfinding Algoritmos de Pathfinding em jogos Grid: Tile-Based Games Busca sem informao (cega) BFS, UCS Busca com informao (heurstica) Best-FS, A* Resumo sobre Pathfinding Trabalhos Futuro 3. Algoritmos simples Bsico Breadcrumb Wall Tracing 4. Bsico Simples de programar Move-se direto ao destino Ignora os obstculos at colidir com eles Ambientes sem/poucos obstculos Desviar do obstculos: Direo Aleatria Circundar Obstculo Robust Tracing123 5. Algoritmo1.while not at the goal2. pick a direction to move toward the goal3. if that direction is clear for movement4. move there5. else6. pick another direction according to7. an avoidance strategy 6. Coliso 7. Random Moviment 8. Tracing Around Obstacle 9. Robust Tracing 10. Circundar 11. Breadcrumbing 12. Wall Tracing Usado em explorao de Ambientes Percorrer o maior parte possivel do mapa Percorrer reas no exploradas timo em ambientes internos, com corredorese salas Ineficiente em espaos abertos Algoritmos: mo-esquerda/mo-direita ...[+proximas apresentaes] 13. Wall tracing 14. Wall tracing 15. Games e pathfinding Mapas so ambientes Geomtricos 3d, 2d. No se conhece a priori o caminho. Obstaculos, Inimigos, recursos, ... Problemas: Como mover um personagem de um local paraoutro? Qual o melhor caminho? Qual o caminho mais seguro? ... 16. Algoritmos de Pathfinding em jogos Pathfinding so algoritmos que permitemencontrar um caminho, se existir, de um pontoA para um ponto B. O caminho pode ser as direes a se tomar ouos pontos de referncia a seguir. Funcionamento: Simplificao do Ambiente: Grfos Aplicao de algoritmo de Busca no Grfo Retorna o caminho (se existir) Retorna Erro ou Flag (se no existir) 17. Aplicao do algoritmos de busca Dado um grfo, procurar o n de destino apartir da origem. Ao encontrar utiliza-se backtracking para seobter o caminho para o n. Dito completo, caso exista ao menos umcaminho, e o algoritmo sempre o encontrar. Dito timo, se sempre encontrar o menorcaminho. 18. Grid: Tile-based Games Representao do mapa em forma de matriz. Dispensa o uso de lista de adjacncia ou matrizde adjacncia para representar as arestas. A adjacncia determinada em tempo deexecuo. Tile: Quadrado Hexagonal Triangular 19. Grid:exemplo 20. Zelda (Classic) 21. Civilization V 22. Diablo II 23. Breadth First Search Busca pelo grfo percorrendo da raiz at asfolhas em largura. necessrio armazenar todos os ns visitados Utiliza um FIFO (fila) para gerenciar o estado. O algoritmo timo e completo. 24. Algoritmo1. add the starting node to the open list2. while the open list is not empty3. current node=node from open list4. if current node = goal node then5. path complete6. else7. move current node to the closed list8. examine each node adjacent to the current node9. for each adjacent node10. if it isnt on the open list11. and isnt on the closed list12. and it isnt an obstacle then13. move it to open list14.path not exist 25. Exemplo 26. BFS Garante encontra o menor caminho Exceto em grafos com pesos. Complexidade: Tempo: O(b^d) Espao: O(b^d) d profundidade da soluo 27. Uniform Cost Search (Dijkstra) Percorre um grafo com pesos, considerando ocusto total a cada movimento, move-se a cadaetapa o n com menor custo total. Permite encontrar o caminho com menor custo. Usa duas listas de OPEN e CLOSED. Ns com menor custo so avaliados primeiro OPEN uma lista hierarquica: priority queue, priority heap, bucketed priorityqueue, ... 28. Algoritmo1. add the starting node to the open list2. while the open list is not empty3. current node=node from open list with the lowest cost4. if current node = goal node then5. path complete6. else7. move current node to the closed list8. examine each node adjacent to the current node9. for each adjacent node10. if it isnt on the open list11. and isnt on the closed list12. and it isnt an obstacle then13. move it to open list and calculate cost14.Path not exist 29. Exemplo 30. UCS Garante encontra o menor caminho Se o custo for uniforme por todo o grfo: UCS = BFS timo e Completo Complexidade: Tempo: O(b^d) Espao: O(b^d) d profundidade da soluo 31. Best First Search Busca utilizando heurstica Uso de OPEN* e CLOSED list. Heurstica: Score(n) = custoEstimado(n) + heurstica(n) Ns com menor score so avaliados primeiro Costuma desprezar a qualidade do caminho epriorizar a heuristica OPEN lista hierarquica 32. Algoritmo1. add the starting node to the open list2. while the open list is not empty3. current node=node from open list with the lowest cost4. if current node = goal node then5. path complete6. else7. move current node to the closed list8. examine each node adjacent to the current node9. for each adjacent node10. if it isnt on the open list11. and isnt on the closed list12. and it isnt an obstacle then13. move it to open list and calculate cost14.Path not exist 33. Exemplo 34. Best First Search Mais rpido que o UCS completo, mas no otimo. Complexidade: Tempo: O(b^m) Espao: O(b^m) m profundidade da rvore 35. A* Algoritmo mais utilizado em jogos Busca obter o caminho mais curto como UCS Com a velocidade do Best FS. Score(n) = CustoAt(n)+Heur(n) Avalia sempre o n mais promissor Se a heurstica for admissvel, garante o menorcaminho. 36. A*A*(Ideal)GreedyBestFSDjikstraHeursticaCustoShortest Pathslower faster 37. Algoritmo1. add the starting node to the open list2. while the open list is not empty3. current node=node from open list with the lowest cost4. if current node = goal node then5. path complete6. else7. move current node to the closed list8. examine each node adjacent to the current node9. for each adjacent node10. if it isnt on the open list11. and isnt on the closed list12. and it isnt an obstacle then13. move it to open list and calculate cost14. Path not exist 38. A*: admissibilidade Cada N tem um numero finito de filhos O grfo tem transies positivas, assim como oa heurstica nunca negativa. O valor da heurstica nunca superestimada 39. Exemplo 40. A* Completo timo, se a heurstica for admissvel. Complexidade: Tempo: O(b^d) Espao: O(b^d) d profundidade da soluo 41. Resumo Algoritmo possuem cdigo similares: BFS UCS Best FS A* Eficincia depende: Grfo, Heurstica 42. Trabalhos Futuros Implementar Algoritmos: BFS, UCS, Best FS e A* Nibbles com cada Pathfinding Demo em HTML5 de cada Algoritmo