ção De Um Jogo Com ência Artificial e Aprendizado … · Implementação De Um Jogo Com...

46
 Implementação De Um Jogo Com Implementação De Um Jogo Com Inteligência Artificial e  Inteligência Artificial e  Aprendizado Probabilístico Aprendizado Probabilístico Aluno: Rogério Cazelato Papetti Orientador: Marcelo Finger Co-Orientador: Flávio Soares Corrêa MAC 499 Trabalho de Formatura Supervisionado IME-USP

Transcript of ção De Um Jogo Com ência Artificial e Aprendizado … · Implementação De Um Jogo Com...

Page 1: ção De Um Jogo Com ência Artificial e Aprendizado … · Implementação De Um Jogo Com Inteligência Artificial e ... Desenvolver Inteligência Artificial Para Fantasmas Algoritmos

   

Implementação De Um Jogo Com Implementação De Um Jogo Com Inteligência Artificial e  Inteligência Artificial e  

Aprendizado ProbabilísticoAprendizado Probabilístico

Aluno: Rogério Cazelato PapettiOrientador: Marcelo Finger

Co­Orientador: Flávio Soares Corrêa

MAC 499Trabalho de Formatura Supervisionado

IME­USP

Page 2: ção De Um Jogo Com ência Artificial e Aprendizado … · Implementação De Um Jogo Com Inteligência Artificial e ... Desenvolver Inteligência Artificial Para Fantasmas Algoritmos

   

Agenda

Pac­Man Proposta Maya & Panda­3D Algoritmos  Resultados e Conclusões Dúvidas Demonstração (se houver tempo) Total: 23 slides

Page 3: ção De Um Jogo Com ência Artificial e Aprendizado … · Implementação De Um Jogo Com Inteligência Artificial e ... Desenvolver Inteligência Artificial Para Fantasmas Algoritmos

   

Pac­Man

Page 4: ção De Um Jogo Com ência Artificial e Aprendizado … · Implementação De Um Jogo Com Inteligência Artificial e ... Desenvolver Inteligência Artificial Para Fantasmas Algoritmos

   

História

Lançado na década de 1980 Estrondoso sucesso Regras Básicas:

Pacman deve capturar todas as PacDots do cenário

Fantasmas o perseguem O Pac­Man perde uma vida ao encostar num 

fantasma O Pac­Man ganha pontos ao coletar bônus (maçãs) 

Page 5: ção De Um Jogo Com ência Artificial e Aprendizado … · Implementação De Um Jogo Com Inteligência Artificial e ... Desenvolver Inteligência Artificial Para Fantasmas Algoritmos

   

Pac­Man: Um Clássico

Page 6: ção De Um Jogo Com ência Artificial e Aprendizado … · Implementação De Um Jogo Com Inteligência Artificial e ... Desenvolver Inteligência Artificial Para Fantasmas Algoritmos

   

Inteligência Artificial no Jogo

Fantasmas Algoritmo Determinístico

Engenharia reversa

Movimentos Pacman Estratégia vencedora

Pattern (Padrão) Jogo 'Perfeito'

Page 7: ção De Um Jogo Com ência Artificial e Aprendizado … · Implementação De Um Jogo Com Inteligência Artificial e ... Desenvolver Inteligência Artificial Para Fantasmas Algoritmos

   

Proposta

Desenvolver Inteligência Artificial Para Fantasmas

Algoritmos Movimentação Aprendizado

Implementar esses algoritmos na prática Pac­Man 3D

Regras adaptadas

Page 8: ção De Um Jogo Com ência Artificial e Aprendizado … · Implementação De Um Jogo Com Inteligência Artificial e ... Desenvolver Inteligência Artificial Para Fantasmas Algoritmos

   

Maya

Modelagem 3D Manipulação de figuras geométricas Implementação de animações Recursos como sombra, anti­aliasing

Page 9: ção De Um Jogo Com ência Artificial e Aprendizado … · Implementação De Um Jogo Com Inteligência Artificial e ... Desenvolver Inteligência Artificial Para Fantasmas Algoritmos

   

Modelagem Pac­Man

Page 10: ção De Um Jogo Com ência Artificial e Aprendizado … · Implementação De Um Jogo Com Inteligência Artificial e ... Desenvolver Inteligência Artificial Para Fantasmas Algoritmos

   

Modelagem Fantasma

Page 11: ção De Um Jogo Com ência Artificial e Aprendizado … · Implementação De Um Jogo Com Inteligência Artificial e ... Desenvolver Inteligência Artificial Para Fantasmas Algoritmos

   

Panda­3D

Framework para implementação do jogo Suporte a Python e C++

Python é preferível

Classes Auxiliares Articulações das Personagens Gerenciar Colisões Física Básica

Movimentação de Fluídos

Page 12: ção De Um Jogo Com ência Artificial e Aprendizado … · Implementação De Um Jogo Com Inteligência Artificial e ... Desenvolver Inteligência Artificial Para Fantasmas Algoritmos

   

Implementação

Colisões Manipulação Câmera Manipulação de Modelos 3D Timers Tasks

Page 13: ção De Um Jogo Com ência Artificial e Aprendizado … · Implementação De Um Jogo Com Inteligência Artificial e ... Desenvolver Inteligência Artificial Para Fantasmas Algoritmos

   

Colisões no Panda­3D

Collision Solids Collision Handlers Collision Entries Bitmask

Page 14: ção De Um Jogo Com ência Artificial e Aprendizado … · Implementação De Um Jogo Com Inteligência Artificial e ... Desenvolver Inteligência Artificial Para Fantasmas Algoritmos

   

Collision Solids

Esfera Cilindro Plano Segmento de reta ou reta

Page 15: ção De Um Jogo Com ência Artificial e Aprendizado … · Implementação De Um Jogo Com Inteligência Artificial e ... Desenvolver Inteligência Artificial Para Fantasmas Algoritmos

   

Collision Solids ­ Exemplo

Page 16: ção De Um Jogo Com ência Artificial e Aprendizado … · Implementação De Um Jogo Com Inteligência Artificial e ... Desenvolver Inteligência Artificial Para Fantasmas Algoritmos

   

Collision Handlers

Diversos tipos Gerador de Eventos Armazenador de Colisões 'Collision Pusher' 'Collision Floor'

Page 17: ção De Um Jogo Com ência Artificial e Aprendizado … · Implementação De Um Jogo Com Inteligência Artificial e ... Desenvolver Inteligência Artificial Para Fantasmas Algoritmos

   

Collision Handlers ­ Exemplo

Page 18: ção De Um Jogo Com ência Artificial e Aprendizado … · Implementação De Um Jogo Com Inteligência Artificial e ... Desenvolver Inteligência Artificial Para Fantasmas Algoritmos

   

Collision Bitmask ­ Exemplo

Page 19: ção De Um Jogo Com ência Artificial e Aprendizado … · Implementação De Um Jogo Com Inteligência Artificial e ... Desenvolver Inteligência Artificial Para Fantasmas Algoritmos

   

Algoritmo de Movimentação

Baseado na visão e percepção do mapa do fantasma

Visão e Percepção Qual objeto mais próximo Está muito perto de uma parede Existe alguma entrada lateral ou esquina Está sobre uma PacDot

Sorteia uma jogada segundo probabilidades Estabelecidas para cada ação

Page 20: ção De Um Jogo Com ência Artificial e Aprendizado … · Implementação De Um Jogo Com Inteligência Artificial e ... Desenvolver Inteligência Artificial Para Fantasmas Algoritmos

   

Algoritmo De Aprendizado 

Modifica probabilidade de cada ação Análise a cada fim de jogo

Tempo de Vida Capturou Pac­Man Instante da Jogada

Page 21: ção De Um Jogo Com ência Artificial e Aprendizado … · Implementação De Um Jogo Com Inteligência Artificial e ... Desenvolver Inteligência Artificial Para Fantasmas Algoritmos

   

Resultados e Conclusões

Fantasma Movimentação

Decisões Aprendizado

Probabilidades Viesadas Probabilidades Não Viesadas

Page 22: ção De Um Jogo Com ência Artificial e Aprendizado … · Implementação De Um Jogo Com Inteligência Artificial e ... Desenvolver Inteligência Artificial Para Fantasmas Algoritmos

   

Referências

RUSSELL, Stuart ; NORVIG, Peter ­ “Artificial Intelligence: A Modern Approach” ­Prentice Hall Series  in Artificial Intelligence, 1995 .

Site Panda­3D: www.panda3d.org Site Maya: www.everything4maya.com

Page 23: ção De Um Jogo Com ência Artificial e Aprendizado … · Implementação De Um Jogo Com Inteligência Artificial e ... Desenvolver Inteligência Artificial Para Fantasmas Algoritmos

   

Dúvidas

Page 24: ção De Um Jogo Com ência Artificial e Aprendizado … · Implementação De Um Jogo Com Inteligência Artificial e ... Desenvolver Inteligência Artificial Para Fantasmas Algoritmos

   

 

    1

Implementação De Um Jogo Com Implementação De Um Jogo Com Inteligência Artificial e  Inteligência Artificial e  

Aprendizado ProbabilísticoAprendizado Probabilístico

Aluno: Rogério Cazelato PapettiOrientador: Marcelo Finger

Co­Orientador: Flávio Soares Corrêa

MAC 499Trabalho de Formatura Supervisionado

IME­USP

Page 25: ção De Um Jogo Com ência Artificial e Aprendizado … · Implementação De Um Jogo Com Inteligência Artificial e ... Desenvolver Inteligência Artificial Para Fantasmas Algoritmos

   

 

    2

Agenda

Pac­Man Proposta Maya & Panda­3D Algoritmos  Resultados e Conclusões Dúvidas Demonstração (se houver tempo) Total: 23 slides

Page 26: ção De Um Jogo Com ência Artificial e Aprendizado … · Implementação De Um Jogo Com Inteligência Artificial e ... Desenvolver Inteligência Artificial Para Fantasmas Algoritmos

   

 

    3

Pac­Man

Page 27: ção De Um Jogo Com ência Artificial e Aprendizado … · Implementação De Um Jogo Com Inteligência Artificial e ... Desenvolver Inteligência Artificial Para Fantasmas Algoritmos

   

 

    4

História

Lançado na década de 1980 Estrondoso sucesso Regras Básicas:

Pacman deve capturar todas as PacDots do cenário

Fantasmas o perseguem O Pac­Man perde uma vida ao encostar num 

fantasma O Pac­Man ganha pontos ao coletar bônus (maçãs) 

Page 28: ção De Um Jogo Com ência Artificial e Aprendizado … · Implementação De Um Jogo Com Inteligência Artificial e ... Desenvolver Inteligência Artificial Para Fantasmas Algoritmos

   

 

    5

Pac­Man: Um Clássico

Page 29: ção De Um Jogo Com ência Artificial e Aprendizado … · Implementação De Um Jogo Com Inteligência Artificial e ... Desenvolver Inteligência Artificial Para Fantasmas Algoritmos

   

 

    6

Inteligência Artificial no Jogo

Fantasmas Algoritmo Determinístico

Engenharia reversa

Movimentos Pacman Estratégia vencedora

Pattern (Padrão) Jogo 'Perfeito'

Page 30: ção De Um Jogo Com ência Artificial e Aprendizado … · Implementação De Um Jogo Com Inteligência Artificial e ... Desenvolver Inteligência Artificial Para Fantasmas Algoritmos

   

 

    7

Proposta

Desenvolver Inteligência Artificial Para Fantasmas

Algoritmos Movimentação Aprendizado

Implementar esses algoritmos na prática Pac­Man 3D

Regras adaptadas

Page 31: ção De Um Jogo Com ência Artificial e Aprendizado … · Implementação De Um Jogo Com Inteligência Artificial e ... Desenvolver Inteligência Artificial Para Fantasmas Algoritmos

   

 

    8

Maya

Modelagem 3D Manipulação de figuras geométricas Implementação de animações Recursos como sombra, anti­aliasing

Page 32: ção De Um Jogo Com ência Artificial e Aprendizado … · Implementação De Um Jogo Com Inteligência Artificial e ... Desenvolver Inteligência Artificial Para Fantasmas Algoritmos

   

 

    9

Modelagem Pac­Man

Page 33: ção De Um Jogo Com ência Artificial e Aprendizado … · Implementação De Um Jogo Com Inteligência Artificial e ... Desenvolver Inteligência Artificial Para Fantasmas Algoritmos

   

 

    10

Modelagem Fantasma

Page 34: ção De Um Jogo Com ência Artificial e Aprendizado … · Implementação De Um Jogo Com Inteligência Artificial e ... Desenvolver Inteligência Artificial Para Fantasmas Algoritmos

   

 

    11

Panda­3D

Framework para implementação do jogo Suporte a Python e C++

Python é preferível

Classes Auxiliares Articulações das Personagens Gerenciar Colisões Física Básica

Movimentação de Fluídos

Page 35: ção De Um Jogo Com ência Artificial e Aprendizado … · Implementação De Um Jogo Com Inteligência Artificial e ... Desenvolver Inteligência Artificial Para Fantasmas Algoritmos

   

 

    12

Implementação

Colisões Manipulação Câmera Manipulação de Modelos 3D Timers Tasks

Page 36: ção De Um Jogo Com ência Artificial e Aprendizado … · Implementação De Um Jogo Com Inteligência Artificial e ... Desenvolver Inteligência Artificial Para Fantasmas Algoritmos

   

 

    13

Colisões no Panda­3D

Collision Solids Collision Handlers Collision Entries Bitmask

Page 37: ção De Um Jogo Com ência Artificial e Aprendizado … · Implementação De Um Jogo Com Inteligência Artificial e ... Desenvolver Inteligência Artificial Para Fantasmas Algoritmos

   

 

    14

Collision Solids

Esfera Cilindro Plano Segmento de reta ou reta

Page 38: ção De Um Jogo Com ência Artificial e Aprendizado … · Implementação De Um Jogo Com Inteligência Artificial e ... Desenvolver Inteligência Artificial Para Fantasmas Algoritmos

   

 

    15

Collision Solids ­ Exemplo

Page 39: ção De Um Jogo Com ência Artificial e Aprendizado … · Implementação De Um Jogo Com Inteligência Artificial e ... Desenvolver Inteligência Artificial Para Fantasmas Algoritmos

   

 

    16

Collision Handlers

Diversos tipos Gerador de Eventos Armazenador de Colisões 'Collision Pusher' 'Collision Floor'

Page 40: ção De Um Jogo Com ência Artificial e Aprendizado … · Implementação De Um Jogo Com Inteligência Artificial e ... Desenvolver Inteligência Artificial Para Fantasmas Algoritmos

   

 

    17

Collision Handlers ­ Exemplo

Page 41: ção De Um Jogo Com ência Artificial e Aprendizado … · Implementação De Um Jogo Com Inteligência Artificial e ... Desenvolver Inteligência Artificial Para Fantasmas Algoritmos

   

 

    18

Collision Bitmask ­ Exemplo

Page 42: ção De Um Jogo Com ência Artificial e Aprendizado … · Implementação De Um Jogo Com Inteligência Artificial e ... Desenvolver Inteligência Artificial Para Fantasmas Algoritmos

   

 

    19

Algoritmo de Movimentação

Baseado na visão e percepção do mapa do fantasma

Visão e Percepção Qual objeto mais próximo Está muito perto de uma parede Existe alguma entrada lateral ou esquina Está sobre uma PacDot

Sorteia uma jogada segundo probabilidades Estabelecidas para cada ação

Page 43: ção De Um Jogo Com ência Artificial e Aprendizado … · Implementação De Um Jogo Com Inteligência Artificial e ... Desenvolver Inteligência Artificial Para Fantasmas Algoritmos

   

 

    20

Algoritmo De Aprendizado 

Modifica probabilidade de cada ação Análise a cada fim de jogo

Tempo de Vida Capturou Pac­Man Instante da Jogada

Page 44: ção De Um Jogo Com ência Artificial e Aprendizado … · Implementação De Um Jogo Com Inteligência Artificial e ... Desenvolver Inteligência Artificial Para Fantasmas Algoritmos

   

 

    21

Resultados e Conclusões

Fantasma Movimentação

Decisões Aprendizado

Probabilidades Viesadas Probabilidades Não Viesadas

Page 45: ção De Um Jogo Com ência Artificial e Aprendizado … · Implementação De Um Jogo Com Inteligência Artificial e ... Desenvolver Inteligência Artificial Para Fantasmas Algoritmos

   

 

    22

Referências

RUSSELL, Stuart ; NORVIG, Peter ­ “Artificial Intelligence: A Modern Approach” ­Prentice Hall Series  in Artificial Intelligence, 1995 .

Site Panda­3D: www.panda3d.org Site Maya: www.everything4maya.com

Page 46: ção De Um Jogo Com ência Artificial e Aprendizado … · Implementação De Um Jogo Com Inteligência Artificial e ... Desenvolver Inteligência Artificial Para Fantasmas Algoritmos

   

 

    23

Dúvidas