Pathfinding – Abordagens para Pathfinding Bruno Campagnolo de Paula.
-
Upload
alessandra-casqueira-beltrao -
Category
Documents
-
view
218 -
download
4
Transcript of Pathfinding – Abordagens para Pathfinding Bruno Campagnolo de Paula.
![Page 1: Pathfinding – Abordagens para Pathfinding Bruno Campagnolo de Paula.](https://reader035.fdocumentos.tips/reader035/viewer/2022062522/5706385a1a28abb8238fd8b9/html5/thumbnails/1.jpg)
Pathfinding –Abordagens para PathfindingBruno Campagnolo de Paula
![Page 2: Pathfinding – Abordagens para Pathfinding Bruno Campagnolo de Paula.](https://reader035.fdocumentos.tips/reader035/viewer/2022062522/5706385a1a28abb8238fd8b9/html5/thumbnails/2.jpg)
Definição do Problema
Path planning (pathfinding, motion planning, etc):Como chegar de um ponto a outro em um
ambiente com obstáculos.Problema típicos das áreas de:
Jogos; Robôs Móveis.
![Page 3: Pathfinding – Abordagens para Pathfinding Bruno Campagnolo de Paula.](https://reader035.fdocumentos.tips/reader035/viewer/2022062522/5706385a1a28abb8238fd8b9/html5/thumbnails/3.jpg)
Classificação de Path finding
![Page 4: Pathfinding – Abordagens para Pathfinding Bruno Campagnolo de Paula.](https://reader035.fdocumentos.tips/reader035/viewer/2022062522/5706385a1a28abb8238fd8b9/html5/thumbnails/4.jpg)
Passos para a execução do path finding Parte 1 - Pré-processamento:
Captura do espaço contínuo em uma representação sob a forma de grafo.
Tranformação em representação discreta. Parte 2 - Processamento da consulta:
Busca, no grafo usando algoritmo de busca (A*, D*, etc).
![Page 5: Pathfinding – Abordagens para Pathfinding Bruno Campagnolo de Paula.](https://reader035.fdocumentos.tips/reader035/viewer/2022062522/5706385a1a28abb8238fd8b9/html5/thumbnails/5.jpg)
Parte 1 – Pré-processamento
![Page 6: Pathfinding – Abordagens para Pathfinding Bruno Campagnolo de Paula.](https://reader035.fdocumentos.tips/reader035/viewer/2022062522/5706385a1a28abb8238fd8b9/html5/thumbnails/6.jpg)
Abordagens adotadas quanto à representação do espaço Roadmap:
A conectividade do espaço livre é representado por uma rede de curvas unidimensionais.
Cell decomposition:O espaço livre é decomposto em células. A
conectividade do espaço livre é representada por um grafo de adjacência entre estas células.
![Page 7: Pathfinding – Abordagens para Pathfinding Bruno Campagnolo de Paula.](https://reader035.fdocumentos.tips/reader035/viewer/2022062522/5706385a1a28abb8238fd8b9/html5/thumbnails/7.jpg)
Abordagens adotadas quanto à representação do espaço Campos Potenciais: consiste em definir
uma função sobre o espaço livre que possua um mínimo global no local objetivo. Assim, o objetivo emite um campo atrativo e os obstáculos emitem um campo repulsivo
![Page 8: Pathfinding – Abordagens para Pathfinding Bruno Campagnolo de Paula.](https://reader035.fdocumentos.tips/reader035/viewer/2022062522/5706385a1a28abb8238fd8b9/html5/thumbnails/8.jpg)
Roadmap
4 técnicas: Grafo de visibilidade;Diagramas de Voronoi;Silhouette;Roadmap probabilístico.
![Page 9: Pathfinding – Abordagens para Pathfinding Bruno Campagnolo de Paula.](https://reader035.fdocumentos.tips/reader035/viewer/2022062522/5706385a1a28abb8238fd8b9/html5/thumbnails/9.jpg)
Grafo de Visibilidade
Objetivo
Início
![Page 10: Pathfinding – Abordagens para Pathfinding Bruno Campagnolo de Paula.](https://reader035.fdocumentos.tips/reader035/viewer/2022062522/5706385a1a28abb8238fd8b9/html5/thumbnails/10.jpg)
Grafo de Visibilidade
Objetivo
Início
![Page 11: Pathfinding – Abordagens para Pathfinding Bruno Campagnolo de Paula.](https://reader035.fdocumentos.tips/reader035/viewer/2022062522/5706385a1a28abb8238fd8b9/html5/thumbnails/11.jpg)
Grafo de Visibilidade
Objetivo
Início
![Page 12: Pathfinding – Abordagens para Pathfinding Bruno Campagnolo de Paula.](https://reader035.fdocumentos.tips/reader035/viewer/2022062522/5706385a1a28abb8238fd8b9/html5/thumbnails/12.jpg)
Grafo de Visibilidade
Objetivo
Ínício
![Page 13: Pathfinding – Abordagens para Pathfinding Bruno Campagnolo de Paula.](https://reader035.fdocumentos.tips/reader035/viewer/2022062522/5706385a1a28abb8238fd8b9/html5/thumbnails/13.jpg)
Grafo de Visibilidade
Objetivo
Início Caminho
![Page 14: Pathfinding – Abordagens para Pathfinding Bruno Campagnolo de Paula.](https://reader035.fdocumentos.tips/reader035/viewer/2022062522/5706385a1a28abb8238fd8b9/html5/thumbnails/14.jpg)
Grafo de Visibilidade considerando unidades não puntuais Assume-se que a unidade não tenha rotação. Transformando em navegação em relação a
pontos.
![Page 15: Pathfinding – Abordagens para Pathfinding Bruno Campagnolo de Paula.](https://reader035.fdocumentos.tips/reader035/viewer/2022062522/5706385a1a28abb8238fd8b9/html5/thumbnails/15.jpg)
Grafo de Visibilidade considerando unidades não puntuais
![Page 16: Pathfinding – Abordagens para Pathfinding Bruno Campagnolo de Paula.](https://reader035.fdocumentos.tips/reader035/viewer/2022062522/5706385a1a28abb8238fd8b9/html5/thumbnails/16.jpg)
Complexidade e características
O (n^2*log (n)) => tempo O(n^2) => espaço Melhorias:
Pré-cálculo do grafo de visibilidade; Importante: grafo de visibilidade é um método
completo, ou seja, sempre que existir um caminho este caminho é retornado.
![Page 17: Pathfinding – Abordagens para Pathfinding Bruno Campagnolo de Paula.](https://reader035.fdocumentos.tips/reader035/viewer/2022062522/5706385a1a28abb8238fd8b9/html5/thumbnails/17.jpg)
Diagrama de Voronoi Originalmente da área de
geometria computacional; Construção de um grafo que
possua arestas distantes de um obstáculo.
Diagrama de Voronoi gera caminhos que tendem a ser distantes dos obstáculos e longe do caminho ótimo.
Ou seja, a técnica maximiza a segurança.
![Page 18: Pathfinding – Abordagens para Pathfinding Bruno Campagnolo de Paula.](https://reader035.fdocumentos.tips/reader035/viewer/2022062522/5706385a1a28abb8238fd8b9/html5/thumbnails/18.jpg)
Geração do Diagrama de Voronoi Tome sua distribuição de dados e encontre todos os
triângulos definidos por três pontos da distribuição, de tal forma que um círculo passando por estes três pontos não inclua nenhum outro ponto.
![Page 19: Pathfinding – Abordagens para Pathfinding Bruno Campagnolo de Paula.](https://reader035.fdocumentos.tips/reader035/viewer/2022062522/5706385a1a28abb8238fd8b9/html5/thumbnails/19.jpg)
Geração do Diagrama de Voronoi
Para cada conjunto de três pontos satisfazendo a condição de Delaunay encontrado, gere um triângulo.
![Page 20: Pathfinding – Abordagens para Pathfinding Bruno Campagnolo de Paula.](https://reader035.fdocumentos.tips/reader035/viewer/2022062522/5706385a1a28abb8238fd8b9/html5/thumbnails/20.jpg)
Geração do Diagrama de Voronoi Determine o ponto
médio de cada uma das arestas do conjunto de triângulos gerado anteriormente. Considere cada aresta apenas uma vez.
Gere uma linha perpendicular a cada uma das arestas.
Determine as duas intersecções mais próximas de cada aresta com duas outras arestas. Um intersecção para cada lado. Ignore os segmentos de reta que seguem para além das intersecções.
Forme as células do diagrama com os polgonos formados por segmentos adjacentes. Ciclos geram células internas, polígonos abertos células externas.
![Page 21: Pathfinding – Abordagens para Pathfinding Bruno Campagnolo de Paula.](https://reader035.fdocumentos.tips/reader035/viewer/2022062522/5706385a1a28abb8238fd8b9/html5/thumbnails/21.jpg)
Complexidade e características
O(n log n) => tempo O (n) => espaço Inserção de novo ponto: O (n/2) Importante: Voronoi não funciona bem em
ambientes muito abertos.
![Page 22: Pathfinding – Abordagens para Pathfinding Bruno Campagnolo de Paula.](https://reader035.fdocumentos.tips/reader035/viewer/2022062522/5706385a1a28abb8238fd8b9/html5/thumbnails/22.jpg)
Probabilistic Roadmap
A técnica de Probabilistic Roadmap é composta por duas fases: pré-processamento e consulta.
Na primeira, são acrescentados pontos aleatórios distribuídos no espaço livre e tais pontos são conectados utilizando um planejador local. Na segunda fase, deve-se conectar o ponto de início e o destino e encontrar um caminho no roadmap.
![Page 23: Pathfinding – Abordagens para Pathfinding Bruno Campagnolo de Paula.](https://reader035.fdocumentos.tips/reader035/viewer/2022062522/5706385a1a28abb8238fd8b9/html5/thumbnails/23.jpg)
Probabilistic Roadmap
![Page 24: Pathfinding – Abordagens para Pathfinding Bruno Campagnolo de Paula.](https://reader035.fdocumentos.tips/reader035/viewer/2022062522/5706385a1a28abb8238fd8b9/html5/thumbnails/24.jpg)
Características
Rápido; Probabilisticamente completo; A construção do roadmap depende da
cena, pode levar de minutos a horas; A construção é computacionalmente cara,
mas a busca é bem rápida.
![Page 25: Pathfinding – Abordagens para Pathfinding Bruno Campagnolo de Paula.](https://reader035.fdocumentos.tips/reader035/viewer/2022062522/5706385a1a28abb8238fd8b9/html5/thumbnails/25.jpg)
Decomposição em Células (Cell Decomposition) 2 métodos distintos:
Decomposição exata: O espaço livre é representado por uma coleção de células
que não se interceptam, cuja união é exatamente igual ao espaço livre.
Decomposição aproximada: O espaço é representado por uma coleção de células que
não se interceptam. A diferença em relação ao caso anterior é que a união de todas as células está contida no espaço livre e não é exatamente o espaço livre.
![Page 26: Pathfinding – Abordagens para Pathfinding Bruno Campagnolo de Paula.](https://reader035.fdocumentos.tips/reader035/viewer/2022062522/5706385a1a28abb8238fd8b9/html5/thumbnails/26.jpg)
Decomposição exata
Objetivo
Início
1
3
2
4
5 8
7
9
10
11
12
13
6
1) Decomponha a região em células
![Page 27: Pathfinding – Abordagens para Pathfinding Bruno Campagnolo de Paula.](https://reader035.fdocumentos.tips/reader035/viewer/2022062522/5706385a1a28abb8238fd8b9/html5/thumbnails/27.jpg)
Decomposição exata
Objetivo
Início
1
3
2
4
5 8
7
9
10
11
12
13
6
2) Construa um grafo de adjacência
![Page 28: Pathfinding – Abordagens para Pathfinding Bruno Campagnolo de Paula.](https://reader035.fdocumentos.tips/reader035/viewer/2022062522/5706385a1a28abb8238fd8b9/html5/thumbnails/28.jpg)
Decomposição exata
Objetivo
Início
3) Construa caminho a partir das células mais próximas do objetivo.
1
2
7
1012
6
9
![Page 29: Pathfinding – Abordagens para Pathfinding Bruno Campagnolo de Paula.](https://reader035.fdocumentos.tips/reader035/viewer/2022062522/5706385a1a28abb8238fd8b9/html5/thumbnails/29.jpg)
Decomposição exata
GOAL
START
3) Construa caminho a partir dos centros de cada linha .
![Page 30: Pathfinding – Abordagens para Pathfinding Bruno Campagnolo de Paula.](https://reader035.fdocumentos.tips/reader035/viewer/2022062522/5706385a1a28abb8238fd8b9/html5/thumbnails/30.jpg)
Decomposição aproximadaSpace Representation Equivalent quadtree
![Page 31: Pathfinding – Abordagens para Pathfinding Bruno Campagnolo de Paula.](https://reader035.fdocumentos.tips/reader035/viewer/2022062522/5706385a1a28abb8238fd8b9/html5/thumbnails/31.jpg)
Decomposição aproximadaSpace Representation Equivalent quadtree
Free nodeGray node
NW childNE SW
SE
![Page 32: Pathfinding – Abordagens para Pathfinding Bruno Campagnolo de Paula.](https://reader035.fdocumentos.tips/reader035/viewer/2022062522/5706385a1a28abb8238fd8b9/html5/thumbnails/32.jpg)
Decomposição aproximadaSpace Representation Equivalent quadtree
Obstacle Node
G
S(G)
![Page 33: Pathfinding – Abordagens para Pathfinding Bruno Campagnolo de Paula.](https://reader035.fdocumentos.tips/reader035/viewer/2022062522/5706385a1a28abb8238fd8b9/html5/thumbnails/33.jpg)
Decomposição aproximadaSpace Representation Equivalent quadtree
Each of these steps are examples of pruned quadtrees, or the space at different resolutions
![Page 34: Pathfinding – Abordagens para Pathfinding Bruno Campagnolo de Paula.](https://reader035.fdocumentos.tips/reader035/viewer/2022062522/5706385a1a28abb8238fd8b9/html5/thumbnails/34.jpg)
Decomposição aproximadaSpace Representation Equivalent quadtree
Complete quadtree
![Page 35: Pathfinding – Abordagens para Pathfinding Bruno Campagnolo de Paula.](https://reader035.fdocumentos.tips/reader035/viewer/2022062522/5706385a1a28abb8238fd8b9/html5/thumbnails/35.jpg)
Aplicação em Star Trek Armada (mista com grafo de visibilidade)
Otimização 1
Otimização 2
![Page 36: Pathfinding – Abordagens para Pathfinding Bruno Campagnolo de Paula.](https://reader035.fdocumentos.tips/reader035/viewer/2022062522/5706385a1a28abb8238fd8b9/html5/thumbnails/36.jpg)
Decomposição aproximada usando framed-quadtrees
![Page 37: Pathfinding – Abordagens para Pathfinding Bruno Campagnolo de Paula.](https://reader035.fdocumentos.tips/reader035/viewer/2022062522/5706385a1a28abb8238fd8b9/html5/thumbnails/37.jpg)
Inexatidão
O uso de grids ou decomposição aproximada não garante que iremos conseguir gerar o caminho sempre.
r Vizinhos
![Page 38: Pathfinding – Abordagens para Pathfinding Bruno Campagnolo de Paula.](https://reader035.fdocumentos.tips/reader035/viewer/2022062522/5706385a1a28abb8238fd8b9/html5/thumbnails/38.jpg)
Campos Potenciais
Definir uma função sobre o espaço livre que possua um mínimo global no local objetivo.
Objetivo: campo atrativo Obstáculos: campo repulsivo. Perseguir os menores valores contidos no
campo potencial, ou seja, ele é tratado como um ponto sobre a influência de um campo.
![Page 39: Pathfinding – Abordagens para Pathfinding Bruno Campagnolo de Paula.](https://reader035.fdocumentos.tips/reader035/viewer/2022062522/5706385a1a28abb8238fd8b9/html5/thumbnails/39.jpg)
Campo atrativo e repulsivo Analogia com bola descendo a colina.
![Page 40: Pathfinding – Abordagens para Pathfinding Bruno Campagnolo de Paula.](https://reader035.fdocumentos.tips/reader035/viewer/2022062522/5706385a1a28abb8238fd8b9/html5/thumbnails/40.jpg)
Obstáculo
Alvo
Cálculo da resultante
Campo atrativo e repulsivo
![Page 41: Pathfinding – Abordagens para Pathfinding Bruno Campagnolo de Paula.](https://reader035.fdocumentos.tips/reader035/viewer/2022062522/5706385a1a28abb8238fd8b9/html5/thumbnails/41.jpg)
Problema dos mínimos locais
Unidade fica presa em pontos de mínimo valor gerados pelos obstáculos.
![Page 42: Pathfinding – Abordagens para Pathfinding Bruno Campagnolo de Paula.](https://reader035.fdocumentos.tips/reader035/viewer/2022062522/5706385a1a28abb8238fd8b9/html5/thumbnails/42.jpg)
Problema dos mínimos locais
Soluções: Utilizar o best-first
search, provavelmente associado com alguma técnica de decomposição aproximada de célula.
Alternar “descidas” e percursos aleatórios.
![Page 43: Pathfinding – Abordagens para Pathfinding Bruno Campagnolo de Paula.](https://reader035.fdocumentos.tips/reader035/viewer/2022062522/5706385a1a28abb8238fd8b9/html5/thumbnails/43.jpg)
Outras técnicas (RRT)
Random Rapid Trees
![Page 44: Pathfinding – Abordagens para Pathfinding Bruno Campagnolo de Paula.](https://reader035.fdocumentos.tips/reader035/viewer/2022062522/5706385a1a28abb8238fd8b9/html5/thumbnails/44.jpg)
Outras técnicas (FFM)
![Page 45: Pathfinding – Abordagens para Pathfinding Bruno Campagnolo de Paula.](https://reader035.fdocumentos.tips/reader035/viewer/2022062522/5706385a1a28abb8238fd8b9/html5/thumbnails/45.jpg)
Outras técnicas
FMM (Fast Marching Methods) permite a geração de múltiplas rotas.
![Page 46: Pathfinding – Abordagens para Pathfinding Bruno Campagnolo de Paula.](https://reader035.fdocumentos.tips/reader035/viewer/2022062522/5706385a1a28abb8238fd8b9/html5/thumbnails/46.jpg)
Parte 2 – Métodos de Busca
![Page 47: Pathfinding – Abordagens para Pathfinding Bruno Campagnolo de Paula.](https://reader035.fdocumentos.tips/reader035/viewer/2022062522/5706385a1a28abb8238fd8b9/html5/thumbnails/47.jpg)
A* - A estrela dos métodos de busca... Vamos fazer alguns exemplos
usando representação sob a forma de grid.
Algoritmos anteriores ao A*: Dijkstra:
Algoritmo visita os vértices no grafo começando no início.
Examina o vértice mais próximo ainda não visitado e adicionando este ao conjunto a ser visitado.
Vai expandindo até encontrar o objetivo.
Sempre encontra um menor caminho.
A cor mais clara indica a menor distância em relação ao ponto inicial.
![Page 48: Pathfinding – Abordagens para Pathfinding Bruno Campagnolo de Paula.](https://reader035.fdocumentos.tips/reader035/viewer/2022062522/5706385a1a28abb8238fd8b9/html5/thumbnails/48.jpg)
A* - A estrela dos métodos de busca... BFS:
Utiliza uma heurística: Seleciona o vértice mais próximo do vértice objetivo para expandir.
Não é garantido que obtenha o melhor caminho.
A cor mais escura representa os locais mais próximos do objetivo.
![Page 49: Pathfinding – Abordagens para Pathfinding Bruno Campagnolo de Paula.](https://reader035.fdocumentos.tips/reader035/viewer/2022062522/5706385a1a28abb8238fd8b9/html5/thumbnails/49.jpg)
A*
A* = Dijkstra + BFS: Favorece vértices que
estão mais próximos do início (g (n) ) e favorece vértices que estão mais próximos do final ( h(n) ).
f(n)=g(n) + h( n)
![Page 50: Pathfinding – Abordagens para Pathfinding Bruno Campagnolo de Paula.](https://reader035.fdocumentos.tips/reader035/viewer/2022062522/5706385a1a28abb8238fd8b9/html5/thumbnails/50.jpg)
Pseudo código do A* 1) OPEN.add (nó inicial) 2) Repita:
Procure pelo menor valor de F em OPEN. Este valor será o quadrado atual.
OPEN.remove (quadrado atual); CLOSE.add(quadrado atual) Para cada um dos 8 quadrados adjacentes, quadrado:
Se não for caminhável ou estiver em CLOSE não faz nada, caso contrário: Se não estiver em OPEN então OPEN.add(quadrado);
quadrado.parent=quadrado atual Se já estiver em OPEN, verifique se o caminho até este é melhor, se for,
quadrado.parent=quadrado atual, recalcular F e G de quadrado. Pare quando: encontrar o fim ou OPEN vazio.
3) Salve o caminho: percorrer o parent desde o nó final até achar o início.
![Page 51: Pathfinding – Abordagens para Pathfinding Bruno Campagnolo de Paula.](https://reader035.fdocumentos.tips/reader035/viewer/2022062522/5706385a1a28abb8238fd8b9/html5/thumbnails/51.jpg)
Melhorias no A*
Pathfinding hierárquico; Caminhos suaves; Pathfinding pré-calculado; Curvas realistas; Otimizações sugeridas no Game Programming
Gems 1. Otimizações sugeridas no Game Programming
Gems 2.
![Page 52: Pathfinding – Abordagens para Pathfinding Bruno Campagnolo de Paula.](https://reader035.fdocumentos.tips/reader035/viewer/2022062522/5706385a1a28abb8238fd8b9/html5/thumbnails/52.jpg)
Pathfinding hierárquico Se os nós início e objetivo forem muito
longe um do outro, o Pathfinding vai levar muito tempo.
Utilizar um máximo de 40 X 40 para a distância máxima a ser pesquisada.
Alternativas: Subdividir a linha até o objetivo em pontos
intermediários; Dividir o mapa em regiões (pontes, colinas,
etc); Usar mais de um nível hierárquico.
![Page 53: Pathfinding – Abordagens para Pathfinding Bruno Campagnolo de Paula.](https://reader035.fdocumentos.tips/reader035/viewer/2022062522/5706385a1a28abb8238fd8b9/html5/thumbnails/53.jpg)
Obtendo Caminhos suaves Algoritmo “Line of sight”:
checkPoint = início do caminho currentPoint = próximo ponto no caminho while (currentPoint->next != NULL)
if walkable(checkPoint, currentPoint->next) //Faça uma linha entre os dois pontos temp=current Point currentPoint = currentPoint->next Delete temp from the path
else checkPoint = currentPoint currentPoint=currentPoint->next
![Page 54: Pathfinding – Abordagens para Pathfinding Bruno Campagnolo de Paula.](https://reader035.fdocumentos.tips/reader035/viewer/2022062522/5706385a1a28abb8238fd8b9/html5/thumbnails/54.jpg)
Pathfinding pré-calculado
O(n^3) espaço e difícil atualização!
C DE
F G
-
B-A
C-A
D-B
E-C
F-C
G-E
A
B
C
D
E
F
G
A-B
-
C-A
D-B
E-D
F-E
G-D
A-C
B-A
-
D-E
E-C
F-C
G-E
A-B
B-D
C-E
-
E-D
F-E
G-D
A-C
B-D
C-E
D-E
-
F-E
G-E
A-C
B-D
C-F
D-E
E-F
-
G-F
A-C
B-D
C-E
D-G
E-G
F-G
-
A B C D E F G
Estou em:
Quero ir para: De A até G:+ A-C+ C-E+ E-G
A B
![Page 55: Pathfinding – Abordagens para Pathfinding Bruno Campagnolo de Paula.](https://reader035.fdocumentos.tips/reader035/viewer/2022062522/5706385a1a28abb8238fd8b9/html5/thumbnails/55.jpg)
Otimizações do GPGems 1 Para utilizar caminhos suaves:
spline; Usar Pathfinding hierárquico; Limitar o tempo destinado ao
Pathfinding, quando este tempo acabar, utilizar a melhor alternativa considerada;
Movimento de grupo: Enfileiramento de ações; Seguir o líder.
Discussão sobre melhor abordagem para RTS: usar grid retangular.
![Page 56: Pathfinding – Abordagens para Pathfinding Bruno Campagnolo de Paula.](https://reader035.fdocumentos.tips/reader035/viewer/2022062522/5706385a1a28abb8238fd8b9/html5/thumbnails/56.jpg)
Otimizações do GPGems 1
Grid retangular: Enorme espaço de busca; Fácil de colocar obstáculos; Movimento estilo “tabuleiro de xadrez”.
Grafo de visibilidade: Caminhos perfeitos; Difícil fazer a manutenção quando um elemento é
eliminado. Conclusão: para RTS, é melhor usar grid retangular.
![Page 57: Pathfinding – Abordagens para Pathfinding Bruno Campagnolo de Paula.](https://reader035.fdocumentos.tips/reader035/viewer/2022062522/5706385a1a28abb8238fd8b9/html5/thumbnails/57.jpg)
Otimizações do GPGems 2 1.Use event driven behavior rather than polling 2.Reduce redundant calculations 3.Centralize cooperation with managers 4.Run the AI less often 5.Distribute the processing over several frames 6.Employ level-of-detail AI 7.Solve only part of the problem 8.Do the hard work offline 9.Use emergent behavior to avoid scripting 10.Amortize query costs with continuous bookkeeping 11.Rethink the problem
![Page 58: Pathfinding – Abordagens para Pathfinding Bruno Campagnolo de Paula.](https://reader035.fdocumentos.tips/reader035/viewer/2022062522/5706385a1a28abb8238fd8b9/html5/thumbnails/58.jpg)
Modelos de Movimento de Grupo Flocking: aplicar a cada unidade um
conjunto de regras simples de movimentação.
Separação:Evitar os vizinhos que estão muito próximos
Alinhamento: acompanhar a velocidade média do grupo
Coesão: acompanhar a posição média do grupo (centro de gravidade)
Evitar obstáculos: procurar desviar os obstáculos pelo caminho.
![Page 59: Pathfinding – Abordagens para Pathfinding Bruno Campagnolo de Paula.](https://reader035.fdocumentos.tips/reader035/viewer/2022062522/5706385a1a28abb8238fd8b9/html5/thumbnails/59.jpg)
Replanning
D*; LPA*; D* Lite.
![Page 60: Pathfinding – Abordagens para Pathfinding Bruno Campagnolo de Paula.](https://reader035.fdocumentos.tips/reader035/viewer/2022062522/5706385a1a28abb8238fd8b9/html5/thumbnails/60.jpg)
Flocking em Pathfinding
Utilizar abordagem de Campos Potenciais:Cai no problema de mínimos locais;
Simplificação de pathfinding:Fazer o pathfinding para o grupo e não para a
unidade; Fazer com que o grupo siga o elemento
que for mais bem sucedido.
![Page 61: Pathfinding – Abordagens para Pathfinding Bruno Campagnolo de Paula.](https://reader035.fdocumentos.tips/reader035/viewer/2022062522/5706385a1a28abb8238fd8b9/html5/thumbnails/61.jpg)
Conclusões sobre flocking
Vantagens:Comportamentos complexos a partir de regras
simples;Diversos tipos de comportamento podem ser
obtidos; Desvantagens:
Difícil de acertar parâmetros para obter comportamento bom.
![Page 62: Pathfinding – Abordagens para Pathfinding Bruno Campagnolo de Paula.](https://reader035.fdocumentos.tips/reader035/viewer/2022062522/5706385a1a28abb8238fd8b9/html5/thumbnails/62.jpg)
Conclusões sobre Pathfinding 1) Utilizar abordagem hierárquica: diferentes
algoritmos para diferentes níveis. 2) Usar flocking para melhorar o movimento das
unidades; 3) Distribuir o processamento em diversos
frames. 4) Pré-calculo do Pathfinding é possível. 4) Usar possível decomposição aproximada do
espaço.