Aula 9 TECNOLOGIA EM JOGOS DIGITAIS PROGRAMACAO E INTEGRACAO DE JOGOS I. Marcelo Henrique dos Santos

Documentos relacionados
Busca competitiva. Inteligência Artificial. Profª. Solange O. Rezende

Inteligência Artificial (SI 214) Aula 6 Busca com Adversário. Prof. Josenildo Silva

Buscas Informadas ou Heurísticas - Parte II

CTC-17 Inteligência Artificial Busca Competitiva e Busca Iterativa. Prof. Paulo André Castro

Jogos com Oponentes. Problemas de busca: não assumem a presença de um oponente

Métodos de Busca. Inteligência Artificial. Busca Heurística. Busca Heurística. Prof. Ms. Luiz Alberto Contato:

Árvore de Jogos Minimax e Poda Alfa-Beta

Enunciados dos Exercícios Cap. 2 Russell & Norvig

Alternativamente pode ser pensado como uma forma de maximizar o minimo ganho possível.

Busca com informação e exploração. Inteligência Artificial. Revisão da aula passada: Heurística Admissível. Revisão da aula passada: Busca A *

Busca com informação e exploração. Capítulo 4 Russell & Norvig Seção 4.2 e 4.3

Algoritmos de retrocesso

Estratégias de Busca: Métodos Informados. March 9, 2015

Teoria dos Grafos Aula 24

Métodos de Busca. Estratégias de Busca Cega

Técnicas para Implementação de Jogos

Inteligência Artificial (SI 214) Aula 4 Resolução de Problemas por meio de Busca Heurística

Introdução à Inteligência Artificial. Procura em contextos competitivos jogos (cont.)

Buscas Informadas ou Heurísticas - Parte I

PMR Computação para Mecatrônica

MAC425/5739 Inteligência Artificial 3. Busca informada

Anatomia do motor de um programa de xadrez. Hugo Vinicius M. D. Santana Orientador: José Coelho de Pina

Lista 1 Sistemas Inteligentes (INE5633) 2014s2. Cap. 2 - Russel & Norvig - Exercícios selecionados (respostas em azul)

Jogos e Busca. Silvio Lago

Estratégias de Busca Cega

Prof. Dr. Jaime Simão Sichman Prof. Dra. Anna Helena Reali Costa

Inteligência Artificial

INF 1771 Inteligência Artificial

Jogo de Damas. Alunos: Sávio Mendes de Figueiredo Sômulo Nogueira Mafra

Exemplos. Jogo dos oito :-) Mundo dos blocos (ex: torre de Hanoi) Poblema das rainhas. Criptoaritmética. Missionários e Canibais.

Teoria dos Grafos Aula 6

Ex. 1) Considere que a árvore seguinte corresponde a uma parte do espaço de estados de um jogo de dois agentes: f=7 f=7 f=1 f=2

Resolução de problemas por meio de busca. Capítulo 3 Inteligência Artificial Sistemas de Informação

Busca Heurística. Profa. Josiane M. P. Ferreira

a) Defina em Prolog iguais/1, um predicado que recebe um estado do jogo e que verifica que todas as pilhas têm o mesmo número de peças.

Inteligência Artificial. Prof. Tiago A. E. Ferreira Aula 5 Resolvendo Problemas

Inteligência Artificial

JOGOS DISTRIBUÍDOS. Aula 10. TECNOLOGIA EM JOGOS DIGITAIS JOGOS DISTRIBUÍDOS 2016 Marcelo Henrique dos Santos -

Sistemas Baseados em Conhecimento

Resolução de Problemas

Resolução de Problemas. Universidade Católica de Pelotas Engenharia da Computação Disciplina: Inteligência Artificial

Busca com Adversários: Jogos. Maria Carolina Monard

Teoria dos Grafos Aula 23

Algoritmos 3/17/ Algoritmos como área de estudo e investigação

Inteligência Artificial

INF 1771 Inteligência Artificial

Inteligência Computacional para Jogos Eletrônicos

Pesquisa em Grafos. Pedro Ribeiro 2014/2015 DCC/FCUP. Pedro Ribeiro (DCC/FCUP) Pesquisa em Grafos 2014/ / 33

GT-JeDi - Curso de Desenv. de Jogos IA para Jogos

5ª Lista de Exercícios de Programação I

PROBLEMA A: SINUCA. Cor: Roxo. Nomes dos Arquivos. Arquivo-fonte: sinuca.c, etc Arquivo de entrada: sinuca.in Arquivo de saída: sinuca.

5COP096 TeoriadaComputação

Design de Interface - Avaliação Final

SOLUÇÕES HEURÍSTICAS PARA O JOGO DE DAMAS

Caminho Mínimo de Fonte Única em Grafos sem Pesos Negativos

PCS Inteligência Artificial

1ª Colocação 10 pontos. 2ª Colocação 08 pontos. 3ª Colocação 06 pontos

Medida do Tempo de Execução de um Programa. David Menotti Algoritmos e Estruturas de Dados II DInf UFPR

Uma forma de classificação

Redes de Computadores III / /

Buscas Informadas ou Heurísticas - Parte III

Otimização de horários Seminário. Clarisse Resende 25/01/2013

Gatos & Cães Simon Norton, 1970s

Inteligência Artificial

IA: Busca Competitiva. Ricardo Britto DIE-UFPI

JOGOS DISTRIBUÍDOS. Aula 8. TECNOLOGIA EM JOGOS DIGITAIS JOGOS DISTRIBUÍDOS 2016 Marcelo Henrique dos Santos -

Dominó Geométrico 7.1. Apresentação Este é um bom material para interagir a matemática de uma forma divertida e descontraída por meio de um jogo de

INF 1771 Inteligência Artificial

JOGOS LIVRO REGRAS M AT E M Á T I CO S. 11.º Campeonato Nacional

Terça-feira, 7 de maio

Análise de Algoritmos

Análise de Algoritmos Parte 4

12 = JL (DE UMA A TRÊS CASAS EM QUALQUER DIREÇÃO, INCLUSIVE R1 PARA OS PEÕES)

Aula 10: Tratabilidade

Algoritmos em Grafos: Caminho Mínimo

MATERIAL: Tabuleiro e pinos (marcadores). São necessários 20 pinos para os cordeiros e 2 pinos para os tigres.

Grafos: caminhos mínimos

Lista de exercícios sobre contagem de operações Prof. João B. Oliveira

PEGUE 10. Quantidade: 08 unidades

INF 1771 Inteligência Artificial

Unidade I ESTATÍSTICA APLICADA. Prof. Mauricio Fanno

Otimização por Colônia de Formigas (Ant Colony Optimization - ACO)

Redes de Computadores 2 Prof. Rodrigo da Rosa Righi - Aula 2

PLANO DE DISCIPLINA DISCIPLINA: Algoritmos e Programação

Geometria Computacional

TÉCNICAS DE AMOSTRAGEM

Seleção de um modelo. Cálculo da carga axial. Fa3= μ mg + f mα 19. Fa4= mg f mα 26 Fa5= mg f 27 Fa6= mg f + mα 28. Fa3= mg + f mα 25.

Programação Dinâmica I SCC0210 Algoritmos Avançados (2/2011) Lucas Schmidt Cavalcante

Agentes Inteligentes. Módulo 02 27/02/2013. Inteligência Artificial. Profª Hemilis Joyse

CAPÍTULO 1. Os elementos. O jogo de xadrez é um desafio para a mente. J. W. von Goethe O TABULEIRO DE XADREZ

método de solução aproximada

UNIVERSIDADE FEDERAL DO PARANÁ Nível 1 - POTI Aula 1 - Combinatória

Fís. Semana. Leonardo Gomes (Guilherme Brigagão)

Medida do Tempo de Execução de um Programa. Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP

Tecnicas Essencias Greedy e Dynamic

étodos uméricos SISTEMAS DE EQUAÇÕES LINEARES (Continuação) Prof. Erivelton Geraldo Nepomuceno PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICA

DANÔMIO. Objetivos Aprimorar o conhecimento da multiplicação de monômios.


Lista de Exercícios Programação Inteira. x 2 0 e inteiros.

Maratona de Programação da SBC 2016

Transcrição:

Aula 9 TECNOLOGIA EM JOGOS DIGITAIS PROGRAMACAO E INTEGRACAO DE JOGOS I Marcelo Henrique dos Santos

Marcelo Henrique dos Santos Mestrado em Educação (em andamento) Pós-graduação em Negócios em Mídias Digitais (em andamento) MBA em Marketing e Vendas Especialista em games : Produção e Programação Bacharel em Sistema de Informação TECNOLOGIA EM JOGOS DIGITAIS PROGRAMAÇÃO PARA JOGOS Marcelo Henrique dos Santos www.marcelohsantos.com.br

Técnicas de GameAI: Uma visão geral - continuação Prof. Marcelo Henrique dos Santos

Técnicas de GameAI Movimentação Estacionando Vagando Desvio de Obstáculos Pathfinding Simples Desvio de Obstáculos A* Waypoints

Movimentação Estacionando d = distância calculada dmin = distância mínima desejada do alvo fdes = fator de desaceleração (< 1 e depende da dinâmica do jogo) Ex: 0.3 Vaprox = velocidade de aproximação Vorig = velocidade sem levar em conta a aproximação

Movimentação Vagando passar a impressão de movimento aleatório 1ª idéia variar direção do NPC aleatoriamente problema... não natural - movimentos bruscos solução...

Movimentação Vagando a dinâmica do movimento é controlada por rv, dv e max_dram

Movimentação Desvio de Obstáculos retângulo de detecção ou outras formas. ex: largura igual ao raio de batida quanto mais rápido o veículo mais longo o retângulo fica

Movimentação Desvio de Obstáculos 1º passo achar o ponto de intersecção mais próximo... A. desconsiderar obstáculos fora do alcance do retângulo de detecção B. desconsiderar obstáculos atrás, converter coordenadas de obstáculos com possível colisão para coordenadas locais e verificar coordenada y C. verificar se obstáculos se sobrepõe ao retângulo, expandir raio do obstáculo por metade da largura do retângulo e verificar coordenada

Movimentação Desvio de Obstáculos D. achar o ponto de intersecção mais próximo

Movimentação Desvio de Obstáculos 2º passo calcular força de frenagem e força lateral

Movimentação Desvio de Obstáculos caso 3D... obstáculos = esferas retângulo = cilindro

Pathfinding Pathfinding, ou busca de caminhos é um dos problemas mais comuns no desenvolvimento de jogos, e está presente na maioria dos gêneros. patrulhamento desvio de obstáculos perseguição planejamento de trajetória mirar (se tem obstáculo deve ser previsto) mover-se e atirar

Pathfinding Caso Simples pode-se utilizar algoritmos de perseguição e fuga abstração: ponto inicial = predador ponto final = presa problema... obstáculos

Verificar textos deste slide que estão Atrás do código e eu não consegui decifrar...) Pathfinding Desvio de Obstáculos Estratégias pseudo-código pathfinding simples + desvio Início ENQUANTO não chegou ao destino ESCOLHA um próximo passo rumo ao destino SE o local está vazio, mova-se até ele SENÃO escolha outra direção segundo estratégia de desvio de obstáculos FIM ENQUANTO Fim Contornar Obstáculos obstáculos maiores critério de saída do modo contorno...

Pathfinding Waypoints utilização de rotas interligando os pontos principais em um mapa é uma técnica usada em jogos. cada nó do grafo representa um waypoint que contém informações sobre como chegar até os nós vizinhos. exemplo: jogos de corrida. Na pista pode ser definidas diversas rotas com características diferentes. Cada carro começa seguindo uma rota e muda quando necessário (ex: carros na sua frente)

Pathfinding A* cálculo de caminho ótimo + desvio de obstáculos modelagem: (quadrado, retângulos, hexágonos, outros) utilização de grafo (vizinhança) cada ladrilho = um nó no grafo

Pathfinding A* A* mantém duas listas: nós abertos: armazena todos os nós que precisam ser verificados, nós fechados: armazena os nós que não precisam mais ser verificados no momento.

Pathfinding A* o ponto crucial aqui é escolher qual dos nós fará parte do caminho a ser percorrido. função de avaliação F(n) que é o resultado da soma F(n) = G(n) + H(n) onde G(n) custo do nó inicial ao nó candidato ex: 10 quadrado horizontal ou vertical e de 14 diagonal(~10* 2) e H(n) é a função heurística, indica o custo estimado do nó candidato até o destino final ex: método Manhattan, número de quadrados horizontal e vertical até o alvo, ignorando movimento diagonal, e ignorando qualquer obstáculo que pode estar no caminho

Pathfinding A* 1. coloca-se o nó inicial na lista de abertos; 2. nós adjacentes (filhos) também na lista de abertos, se não estiverem, menos obstáculos ou nós da lista de fechados; 3. coloca-se o nó inicial na lista de nós fechados;

Pathfinding A* 4. se nó adjacente está na lista aberta, verificar se o G agora é mais baixo do que o já na lista se não for, não fazer nada; se for, trocar o pai do nó adjacente para o nó selecionado e recalcular o F; 5. repetir até nó-destino ser adicionado à lista de abertos (algoritmo termina em sucesso ), ou a lista de abertos fique vazia (falha na busca de um caminho).

Pathfinding A* Exemplo legenda: verde = lista aberta azul = lista fechada

Algoritmos de busca em grafo: B* Bellman-Ford algorithm Best-first search Bidirectional search Breadth-first search D* Depth-first search Depth-limited search Dijkstra's algorithm Floyd Warshall algorithm Hill climbing Iterative deepening depth-first search Johnson's algorithm Uniform-cost search

Algoritmo MiniMax Faz uma caminhamento em profundidade completo da árvore! Se a profundidade é m e em cada estado existem b jogadas possíveis, a ordem de complexidade é O(bm) Ou seja esse algoritmo não é prático para jogos reais Mas serve para análise matemática e como base para algoritmos mais eficientes

Multiplayer games O MiniMax pode ser estendido para jogos com múltiplos jogadores Uso de um vetor de utilidades Alianças Podem ocorrer naturalmente no processo de maximizar a função de utilidade

Qual o problema com o MiniMax?

Alpha-Beta Pruning Problema com o MiniMax # de estados é exponencial Pruning = Poda Não examinar grandes partes da árvore, diminuindo assim o custo Alpha-Beta Prunning Retorna a mesma ação do MiniMax, mas elimina caminhos que não influenciam a decisão

α-β pruning example

α-β pruning example

α-β pruning example

α-β pruning example

α-β pruning example

Alpha-Beta Pruning a = o maior valor já encontrado no caminho (melhor alternativa p/ MAX) ß = o menor valor já encontrado no caminho (melhor alternativa p/ MIN) Se v é pior que alpha, MAX vai evitá-lo

Alpha-Beta Pruning A eficiência do algoritmo depende da ordem em que os nodos são examinados

Decisões Imperfeitas, em Tempo Real Minimax mesmo c/ Alpha Beta Prunning não é factível para jogos complexos Solução: Parar a busca antes de chegar ao final É necessário: Função de Avaliação (Evaluation Function): fornece uma estimativa da utilidade daquele estado (Heurística) Teste de Parada (Cutoff Test): decide em quando parar a busca

Funções de Avaliação Devem tentar manter a mesma ordenação da função de utilidade final Não podem demorar muito Devem estar relacionadas com as chances de ganhar o jogo Chances? Jogo é determinístico!? Incerteza computacional ao invés de incerteza da informação

Funções de Avaliação Análise de características (features) do estado corrente Divisão em classes de equivalência Conjuntos de estados com características similares Para cada classe, determina-se por experiência: %Vitórias, %Empates, %Derrotas Função de avaliação é calculada como uma média ponderada. Ex. 72% Vitória, 20% Derrota, 8% empate Eval(S) = (0.72 x 1) + (0.2 x -1) + (0.08 x 0) = 0.52 Requer muitas classes e experiência...

Funções de Avaliação Uma forma mais fácil é dar valor diretamente as features Xadrez: Peão = 1, Cavalo / Bispo = 3, etc... Estrutura de peões, Proteção do rei, etc... A função de avaliação é computada através de uma combinação linear ponderada Eval(S) = w1.f1 (s) + w2.f2 (s) +... + wn.fn (s) Funções não lineares também podem ser usadas Um par de bispos tem mais valor que o dobro de um só Leva em consideração as outras peças De novo, experiência / aprendizado é necessário

Teste de Parada If Cutoff-Test(State, Depth) return Eval(state) Forma mais comum: profundidade fixa Problemas: e se na próxima jogada...

Teste de Parada A função de avaliação somente deve ser aplicada a estados que não vão sofrer mudanças bruscas de valor Quiescence Search Efeito Horizonte: jogada catastrófica que vai acontecer inevitavelmente em um futuro próximo, fora do horizonte de busca

Poda Singular Extensions Ultrapassar a profundidade limite para ações que são claramente melhores Na prática, diminui o branching factor (poda) Forward Prunning Ignorar certos movimentos possíveis Humanos fazem isso inconscientemente Não há garantias... Interessante para movimentos simétricos

Xadrez na Prática Suponha uma função de avaliação e um PC que consiga investigar 10^6 nodos/s 200 x 10^6 nodos por jogada (3 minutos) Branching Factor: 35: 35^5 = 50 x 10^6 Minimax = 5 jogadas (jogador mediano) Alpha-Beta = 10 Jogadas (expert) Para virar um Grande-Mestre: Função de avaliação bem ajustada Banco de jogadas (abertura e término) Supercomputador...

Jogos Não-Determinísticos (sorte) Exemplo: Gamão As jogadas possíveis são determinadas depois que se jogam os dados Não é possível construir uma árvore como no caso do xadrez e aplicar o minimax Solução: Incluir nodos intermediários com as chances Algoritmo: ExpectiMinimax