A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Técnicas clássicas e otimizações Transformação do espaço de busca

Apresentações semelhantes


Apresentação em tema: "Técnicas clássicas e otimizações Transformação do espaço de busca"— Transcrição da apresentação:

1 Técnicas clássicas e otimizações Transformação do espaço de busca
Geber Ramalho Pathfinding Motivação Técnicas clássicas e otimizações Transformação do espaço de busca

2 Pathfinding Definição
Obtenção de um melhor caminho de um ponto inicial para um objetivo de acordo com um ou mais critérios Ex.: tempo, distância, periculosidade dos inimigos, velocidade, ocupação do mapa, etc. diferente steering behaviors... É um dos poucos consensos em termos de AI Engine

3 Pathfinding: motivações
Aplicável para o cálculo de rotas Cidadão comum: GPS, Google maps, etc. Meio empresarial: Problemas de logística Meio militar: Problemas táticos Jogos digitais Deslocamento dos NPCs Análise de terreno e situação Um dos poucos consensos em termos de AI Engine

4 Pathfinding: jogos Ainda não é um problema resolvido Dificuldades
Dave Pottinger: “AOE2 gasta 60-70% do tempo de simulação fazendo pathfinding” Dificuldades Evitar obstáculos, sobretudo os largos e côncavos Levar em conta os pesos (tipos de terreno) Diferentes critérios (mais curto, mais seguro, etc.) Memória e tempo de processamento em função de tamanho do terreno número de unidades número de jogadores

5 Pathfinding: Exemplo Napoléon en Russie - V. Corruble (LIP6)
Caminho mais curto início objetivo

6 Pathfinding: Exemplo Napoléon en Russie - V. Corruble (LIP6)
caminho menos visível

7 Pathfinding: Exemplo Napoléon en Russie - V. Corruble (LIP6)
caminho mais seguro

8 Path-Finding - Estratégias
Reativas (online: executa enquanto procura) Campos potenciais Aleatórias Traçado simples e robusto Busca/planejamento (offline: busca e depois excuta) Não Informadas (busca cega) Informadas (busca heurística)

9 Campos potenciais Usa o princípio de campo gravitacional para determinar a direção do movimento Alvo tem campo gravitacional atrativo Obstáculos têm campo gravitacional repulsivo Duas abordagens para Soma vetorial (Attractor-repulsor) online Potential fields ou método gradiente Pré-calculado e marcado no terreno

10 Attractor-repulsor Soma vetorial Cálculo da direção e movimento
Vetor do alvo: linha do alvo até o ponto em questão Vetores dos campos dos obstáculos: a partir dos centros geométricos Cálculo da direção e movimento Intensidades dos campos são inversamente proporcionais às distâncias entre as entidades e o ponto em questão Direção resultante em um ponto é a soma vetorial dos campos atrativo e repulsivo Esta direção resultante é calculada a cada ciclo de tempo T segundos A entidade se move na direção calculada por T segundos

11 Attractor-repulsor Obs Caro, pois calcula tudo na hora, mas adaptativo
Alvo Obstáculo t3=3T Cálculo da resultante t0=0 t2=2T t1=T Obs Caro, pois calcula tudo na hora, mas adaptativo Pode ficar preso em mínimos locais

12 Potential Fields Método discreto
Cada tile do terreno tem um valor de potencial determinado pela influencia de destino = potencial baixo obstáculo e ponto de partida = potencial alto O elemento “escorrega” para o potencial mais baixo Obs Barato, pois pré-calcula tudo, mas ruim se obstáculos se movimentam (recalcular) Pode ficar preso em mínimos locais Combinar informação local e global via propagação

13 Path-Finding reativo (online)
Idéia se movimentar em direção ao objetivo e pegar outra direção quando esbarrar nos obstáculos Tecnicas Aleatória Tracing Robust tracing

14 Path-Finding reativo (online)
Direção aleatória ao esbarrar, move em direção aleatoriamente e tenta de novo problema: obstáculos grandes e côncavos

15 Path-Finding reativo (online)
Simple Tracing ao esbarrar, segue, em uma direção fixa, “tateando” o obstáculo até contorná-lo Problema: quando parar de tatear? Quando mudar de direção, testa se pode andar na direção do alvo sem voltar por onde já passou Nem sempre funciona... Tateando sempre à direita

16 Path-Finding reativo (online)
Robust tracing Uma vez começado a tatear, se o ponto inicial de bloqueio está entre o objetivo e o agente, ao cruzar com a semi-reta traçada entre a posição original e o objetivo, não para de tatear Caso volte à posição original, aborta problema: pode tomar muito tempo fazendo tracing

17 Path-Finding online Solução Infelizmente, Usar simple trace de cara
Quando um loop é detectado, mudar para Robust tracing Infelizmente, há situações onde é preciso uma busca inteligente em particular para tratar “pesos de regiões” (estradas, rios, florestas, campos,...)

18 Path-Finding Buscas Não-Informadas (offline)
Estratégias: Busca em largura (Breadth-first search) Busca em profundidade (Depth-first search) Busca em profundidade limitada Busca de custo uniforme (Dijkstra’s search) Busca em profundidade iterativa Direção Início para meta Meta para início Bidirecional

19 Path-Finding Buscas Informadas (offline)
Estratégias: A* Combina a busca de custo uniforme (Dijkstra) com best-first f(x) = g(x) + h(x), onde g = o que custou até agora h = função heurística (o que provavelmente ainda vai custar) Heurística determina eficiência: quanto mais próximo do real, embora sempre otimista, melhor Completo, ótimo e correto Listas Closed (já visitados) e Open (a visitar - fronteira)

20 Melhor Primeiro: Busca Gulosa

21 Melhor Primeiro: Busca A*

22 Adaptações de A* Mesmo sendo a melhor técnica, A* ainda tem limitações devido aos Requisitos de tempo real Limitações de memória disponível Ineficiência dos algoritmos de manipulação das listas Open e Close Qualidade da função h(n)

23 Adaptações de A* Alternativas para melhorias
Ajustes para melhorar desempenho/memória (visto em SI) Iterative Deepening A* Beam Search – Simplified Memory A* Alterações na função h(x) Algoritmo de Floyd-Warshall Estruturas de dados Representação do campo do jogo Dados do estado da busca Melhorias na manipulação das listas Transformação do espaço de busca

24 Estrutura de dados Representação do mapa do jogo
Representação das áreas acessíveis de cada ponto e dos esforços para a movimentação Diretamente no mapa, em uma estrutura separada, ou calculadas quando necessário Representação das características na área ou em uma estrutura separada

25 Estrutura de dados Dados do Estado da Busca
Pode-se incluir no nós, além da estrutura de busca básica,... Coordenadas da posição do mapa Atributos relevantes da entidade, como orientação e velocidade Custo estimado até o objetivo (ou até o objetivo mais próximo) Referências adicionais para outros nós próximo elemento, elemento anterior ,“esquerda”, “direita”, ...

26 Melhorias Estéticas Obter trajetórias mais macias...
Ver demo de Marco Pinter

27 Transformação do espaço de busca

28 Transformação do espaço de busca
Idéia básica: Busca realizada com “menos estados” para reduzir a complexidade da busca inicial Técnicas Hierarquização e agregação de células (ambiente discreto) Discretização de ambientes contínuos

29 Hierarquização e Agregação
Idéia decompor busca inicial em sub-buscas mais simples => agrupar células (quadradinhos) em áreas maiores e fazer a busca hierarquicamente do maior para os menores Divisão do mapa Mapa deve ser dividido em grandes áreas contíguas cujas conectividades são conhecidas Um ou dois “quadradinhos” (células) da borda entre cada par de áreas adjacentes são escolhidos

30 Hierarquização e Agregação
Uma sucessão de buscas irá ser realizada A primeira busca irá ser realizada em cima deste novo “espaço com menos quadradinhos” As buscas sucessivas, em espaços transformados com mais “quadradinhos”, evitam iterações desnecessárias determinadas pelas buscas anteriores

31 Hierarquização e Agregação
Exemplo: determinar a melhor rota terrestre entre Madri e Atenas utilizando o mapa da Europa Cada país pode ser considerado uma área Pontos nas bordas (fronteiras) dos países são definidos para a primeira busca Melhor rota na primeira iteração: Espanha - França - Itália - Iugoslávia - Grécia A primeira iteração evita que a bota correspondente à Itália seja incluída nos próximos passos da sequência hierárquica de buscas

32 Hierarquização e Agregação

33 Discretização de Espaço Contínuo
E se o jogo for em um espaço contínuo (não baseado em tiles)? 2 abordagens vindas do planejamento de movimento de robôs Cell decomposition Skeletomization

34 Discretização de Espaço Contínuo
Cell decomposition discretização em células menores (idênticas ou não) e fixação de spots (pontos no “centro” das células) que serão ligados formando um grafo de caminhamento exemplos: tiles, tiras, células cilíndricas, quadtrees,...

35 Discretização de Espaço Contínuo
Tiles Dividir o espaço em “ladrilhos” de resolução pré-definida Ladrilhos inseridos total ou parcialmente em obstáculos são marcados como bloqueados Permite movimento sem risco de colisão Problema: difícil ajustar a granularidade

36 Discretização de Espaço Contínuo
Tiles (ladrilhos)

37 Discretização de Espaço Contínuo
Quadtrees O espaço é dividido em quadrados (tiles) Cada quadrado que não é suficientemente homogêneo é recursivamente dividido em quatro quadrados Os centros dos quadrados homogêneos que não estão em obstáculos são usados pela busca (spots) Regiões das bordas dos obstáculos são consideradas bloqueadas

38 Discretização de Espaço Contínuo
Quadtrees Subdivisão do espaço Grafo (azul)

39 Discretização de Espaço Contínuo
Tiras verticais ou horizontais a dimensão em um dos eixos (x ou y) se expande até “esbarrar” em um obstáculo problema: sobram espaços que, no entanto, não podem ser usados para manobras

40 Discretização de Espaço Contínuo
Skeletomization superposição de um grafo de caminhamento diretamente em função dos obstáculos As buscas consideram apenas os caminhos do grafo exemplos: manual (waypoints), grafo de visibilidade, polígonos convexos, diagrama de Voronoi, ...

41 Discretização de Espaço Contínuo
Pontos de visibilidade São os pontos críticos (quinas dos obstáculos) mas com uma folga para evitar colisões Os caminhos possíveis (conexões) definidos entre os pontos críticos visíveis entre si ou seja... não deve existir obstáculos entre estes pontos

42 Discretização de Espaço Contínuo
Pontos de Visibilidade Grafo (azul)

43 Discretização de Espaço Contínuo
Polígonos convexos Passo inicial Quebrar o espaço (sem obstáculos) em polígonos convexos A partir daí define os spots segundo 2 técnicas C-Cells: cada vértice é conectado ao ao vértice mais próximo subdividindo o espaço em polígonos cujos centroides serão os spots Maximum-area decomposition: similar mas os spots estão no meio das arestas que ligam os vértices

44 Discretização de Espaço Contínuo
Polígonos Convexos Subdivisão do espaço Grafo (azul) segundo “Maximum-area decomposition”

45 Colaboração Eduardo Calabria (egc@cin.ufpe.br)
Eduardo Laureano Charles Madeira

46 Bibliografia & Links Russel & Norvig: AIMA (cap 4, 5 e 25)
Bryan Stout, Smart Moves: Intelligent Path-Finding demo: ftp://ftp.gdmag.com/pub/src/oct96.zip Game AI: The State of Industry Stefan Baert, Motion Planning Using Potential Fields Amit Patel, Amit´s Thoughts on Pathfinding Marco Pinter, Toward More Realistic Pathfinding Paul Tozour, Influence Mapping, in (ed) Mark Deloura, Game Programming Gems II.


Carregar ppt "Técnicas clássicas e otimizações Transformação do espaço de busca"

Apresentações semelhantes


Anúncios Google