Osorio Et Al SBGames07 Tutorial PDF
Osorio Et Al SBGames07 Tutorial PDF
Osorio Et Al SBGames07 Tutorial PDF
Authors contact:
fosorio <AT> unisinos <DOT> BR,
{
fosorio,
pessin
sandro.s.ferreira,
vnonnenmacher } <AT> gmail <DOT> com
Caminhos
Possveis
Destino
Menor
Caminho
Obstculo
Origem
3. Algoritmo A* (A Star)
O uso de algoritmos de busca de caminhos
geralmente pode ser diferente para cada tipo de
aplicao, pois muitas vezes necessrio que o agente
chegue ao ponto final do modo mais rpido possvel
(menor distncia), em outros casos preciso que ele
minimize algum custo, como combustvel, dinheiro,
equipamento, esforo, entre outros parmetros.
O algoritmo A* (A Star) [Rabin 2002, cap.3],
um dos algoritmos de path-finding mais utilizados em
jogos. Ele baseado em grafos/rvores/grades, onde
cada n um estado do caminho e cada estado possui
transies que levam a outros estados, onde estas
transies podem possuir custos diferentes. Este
algoritmo encontra facilmente (de modo rpido e
eficiente) a melhor rota para um nico agente
3.1. A* em Detalhes
Como j foi citado anteriormente, o A* um algoritmo
baseado em grafos, que visa encontrar o caminho
timo entre dois pontos. Cada n desse grafo um
estado (ou posio) do caminho. Assim sendo, o
objetivo do algoritmo de path-finding analisar cada
n e decidir sobre quais ns que ele dever passar,
compondo o caminho final da origem at o destino.
O A* (A Star) [Deloura 2000] um dos algoritmos
mais populares de path-finding, pois ele bastante
flexvel e pode ser usado em uma grande variedade de
contextos, apenas mudando a heurstica bsica
(funes de custo) que auxilia na explorao e busca
no espao de estados.
3.1.1. Custo Estimado e Custo do Caminho
Percorrido
A idia inicial do A* a composio de dois custos a
fim de compor a heurstica aplicada na restrio do
espao de busca (direcionamento da busca), compondo
uma funo f(x) = g(x) + h(x). A primeira parte da
funo, g(x), custo propriamente dito do caminho
percorrido, ou seja, quanto custa para o agente se
mover para o n em questo. Por exemplo, na Figura 6
(reproduzida de [Winston 1992]) o custo de caminho
do n S para o n A de trs unidades. Este custo pode
estar representando qualquer propriedade consumida
pelo agente, como por exemplo: tempo, equipamentos,
distncia, combustvel gasto, etc.
Conforme mostra a Figura 7, a segunda funo que
compe a heurstica, h(x) o custo estimado at o
destino, que no caso desta figura est representado pela
distncia absoluta (em linha reta) de cada n at o
objetivo final.
Supondo que h um agente que se situa num ponto
S (start), onde seu objetivo chegar ao ponto G (goal),
como pode ser visto na Figura 6. Este agente ter uma
Para que esta tarefa no fique muito cara computacionalmente, deve-se dar essa misso de mapear as
regies para um nico agente ou para um grupo
bastante limitado de agentes. Durante um certo tempo
do jogo, so coletadas as informaes resultantes da
aplicao do algoritmo de planejamento de trajetrias.
Aps esta coleta de dados, os agentes passam a usar
estas informaes para a definio de estratgias de
defesa e/ou de ataque, considerando rotas usuais e rotas
alternativas existentes em uma dada regio. Esses
agentes fariam parte de um time de agentes
exploradores, comuns em jogos de estratgia.
3.4. Comportamentos com o A*: Fuga
Em um jogo do tipo predador-presa (e.g. Pac-Man), um
comportamento usual o de fuga. O primeiro passo
para obter um comportamento de fuga definir
prioridades em relao ao caminho a ser seguido, mas
tambm o caminho a ser evitado. Inicialmente
devemos definir o ponto de destino do agente: a
soluo mais simples e rpida determinar o ponto
mais afastado (em linha reta) em relao ao(s)
predador(es). Posteriormente iremos discutir outras
opes, mas assume-se inicialmente que uma posio
de destino estabelecida previamente, podendo ser
adotado o ponto extremo de maior distncia em relao
aos demais agentes que participam da perseguio.
Aps ser definido o destino, a prxima prioridade
no passar por perto do(s) perseguidor(es). Para que
isso acontea, devemos aumentar o custo de todos os
ns que estejam prximos a um dos inimigos. Desta
forma iremos criar uma camada dinmica (layer) com
custos que sero sobrepostos sobre os custos do mapa
do ambiente, somando assim os custos referentes aos
obstculos estticos definidos no mapa do ambiente
original, junto com os custos que so determinados de
modo dinmico e que possuem uma relao direta com
a proximidade em relao aos inimigos.
Inimigo
(predador)
Destino
Origem
(Presa)
Zona a evitar
CAA
PACMAN
TERMINA O
PODER DA
VITAMINA
PACMAN
MORREU
PACMAN COMEU
VITAMINA MGICA
FUGIR DO
PACMAN
FANTASMA
SAI DA ORIGEM
MOVIMENTO
RANDMICO
LIBERA
FANTASMA
PACMAN
PEGA
FANTASMA
FANTASMA
MORTO
FANTASMA
RETORNA
PARA ORIGEM
http://ocw.mit.ed
u/
(a)
Separation: Direcionar o movimento dos agentes para
evitar um aglomeramento local dos membros do grupo.
(b)
Alignment: Direcionar o movimento de modo a seguir
o alinhamento mdio (heading) dos membros do grupo.
(c)
Cohesion: Direcionar o movimento de modo a ir em
direo a posio central mdia dos membros do grupo.
Figura 21: Boids - Regras de controle [Reynolds 2007]
Registrar dados:
Controle Humano
(Log <= Usurio)
Exemplos
Controle
Inteligente
Conhecimento
GALib - http://lancet.mit.edu/ga/
SNNS e JavaNNS - http://www-ra.informatik.unituebingen.de/SNNS/
3
C4.5 - http://www.rulequest.com/Personal/
4
WEKA - http://www.cs.waikato.ac.nz/ml/weka/
2
Pop ulatio n
B es t
7. Consideraes Finais
Neste tutorial foram apresentados mtodos e
algoritmos de I.A. aplicados a jogos. Podemos
constatar a grande variedade de tcnicas e
possibilidades de aplicao da I.A. junto aos jogos
digitais. Apesar dos motores de I.A. para jogos estarem
atualmente sendo desenvolvidos e aperfeioados
continuamente, ainda no contamos com uma grande
variedade de ferramentas e solues nesta rea.
Existem algumas solues comerciais, como o
DirectIA e o Dark A.I., e iniciativas de cdigo livre,
como o OpenAI, entretanto todas so usualmente
focadas para fins mais especficos. Estas solues no
implementam uma ampla gama de tcnicas de I.A.,
fornecendo apenas um sub-conjunto mais restrito de
tcnicas, como algumas das descritas neste tutorial.
O DirectIA [DirectIA 2006] oferece um kernel para
a implementao de comportamentos autnomos e
adaptativos, podendo ser integrado em aplicaes
atravs do uso de um SDK. O Dark A.I. [Dark IA
2006] um mdulo de extenso da ferramenta RAD
(Rapid Application Development) para jogos, o
DarkBasic Pro. Esta ferramenta oferece funes para a
criao de trajetrias com desvio de obstculos, usando
o A*, alm de oferecer tambm funes para a
implementao de comportamentos inteligentes em
agentes (e.g. comportamento reativo). O OpenAI
[OpenAI 2006] uma iniciativa de cdigo aberto, que
visa oferecer ferramentas e implementaes de tcnicas
de Inteligncia Artificial. O OpenAI oferece
atualmente implementaes de Redes Neurais
Artificiais, Algoritmos Genticos e Autmatos Finitos.
A maioria dos motores profissionais de jogos
apresenta alguma funcionalidade que implementa
funes de controle de trajetrias ou comportamento de
NPCs, entretanto podemos afirmar que ainda no
existe disponvel alguma soluo mais completa de
I.A. que integre desde a I.A. clssica, passando pelos
algoritmos de planejamento de trajetria, controle de
comportamento de agentes, aprendizado e adaptao,
assim como comportamentos inteligentes de grupos de
Agradecimentos
Os autores gostariam de agradecer a UNISINOS,
CNPq e FAPERGS pela concesso de bolsas (IC) e de
auxlios financeiros que permitiram o desenvolvimento
deste trabalho. Gostaramos tambm de agradecer as
mltiplas contribuies de nossos colegas de trabalho,
Farlei Heinen, Milton Heinen, Joo Ricardo
Bittencourt, Soraia Musse e Cssia Trojahn dos Santos,
que ajudaram a consolidar mais ainda este trabalho.
Referncias
FUNGE,
JOHN.
AI4GAMES.
DISPONVEL
EM :
HTTP ://WWW.AI4 GAMES.ORG/ ACESSO EM : 10 JUL. 2006.
ARTIFICIAL-INTELLIGENCEFALL2002/COURSEHOME/
[ACESSADO 10 DE SETEMBRO DE 2007]
MITCHELL, MELANIE. AN INTRODUCTION
ALGORITHMS. MIT PRESS, 1996. 209P.
TO
GENETIC
TUTORIAL).
WEB:
HTTP ://
INF.UNISINOS.BR/~OSORIO/PALESTRAS/JAI04-AVII.HTML
TUTORIAL).
WEB:
HTTP ://OSORIO.WAIT4.ORG/PUBLICATIONS/PAPERSOSORIO.HTM
WANGENHEIM,
CHRISTIANE
GRESSE
VON;
WANGENHEIM, ALDO VON. RACIOCNIO BASEADO EM
CASOS. BARUERI : MANOLE, 2003. 293 P. ISBN 85-2041459-1
WATT, ALAN; POLICARPO, FABIO. 3D GAMES: REAL-TIME
RENDERING AND SOFTWARE TECNOLOGY. ADDISONWESLEY, 2000, 800 P.
WEISS, GERHARD. MULTIAGENT SYSTEMS: A MODERN
APPROACH TO DISTRIBUTED ARTIFICIAL INTELLIGENCE.
MIT PRESS, 1999. 643 P.
WOOLDRIDGE, M. (2000). REASONING ABOUT RATIONAL
AGENTS. THE MIT PRESS. ISBN 0-262-23213-8.
WIIMOTE WIKIPEDIA [ONLINE], DISPONVEL EM :
HTTP ://EN.WIKIPEDIA. ORG/WIKI/WIIMOTE [ACESSADO 10
DE SETEMBRO DE 2007].
WINSTON, PATRICK H. ARTIFICIAL INTELLIGENCE. (3RD.
EDITION) ADDISONS -WESLEY PUBLISHING, 1992, 737P.