Osorio Et Al SBGames07 Tutorial PDF

Fazer download em pdf ou txt
Fazer download em pdf ou txt
Você está na página 1de 20

Inteligncia Artificial para Jogos:

Agentes especiais com permisso para matar... e raciocinar!


Fernando Osrio - Gustavo Pessin - Sandro Ferreira - Vincius Nonnenmacher
UNISINOS - Universidade do Vale do Rios dos Sinos
PIPCA PPG de Computao Aplicada, GT-JEDi Graduao em Jogos Digitais
So Leopoldo, RS - Brasil
1. Introduo
Resumo
Este tutorial visa apresentar conceitos e tcnicas
relacionadas com a rea de Desenvolvimento de Jogos
e Entretenimento Digital, focando na implementao
de Agentes Inteligentes (NPCIs Non-Player
Intelligent Characters). O artigo ir abordar temas que
vo da aplicao de tcnicas clssicas de I.A. para
jogos (e.g. busca em espao de estados, algoritmo
Mini-Max) [Russell 1995], para o planejamento de
trajetrias de agentes autnomos (e.g. A*, Grafo de
Visibilidade, Campos Potenciais) [Russell 1995,
Dudek 2000, Rabin 2002], e arquiteturas de controle
de agentes autnomos individuais (e.g. flocks/boids
[Reynolds 2007], arquitetura reativa, arquitetura
deliberativa, arquitetura hbrida, BDI [Osrio 2004,
2005, 2006]), assim como mecanismo de controle com
comunicao e cooperao entre mltiplos agentes
(MAS Multi-Agent Systems). Tambm sero
abordadas tcnicas de aprendizado de mquina (ML
Machine Learning) [Mitchell 1997, Rezende 2003] e
evolutivas (GA - Genetic Algorithms) [Mitchell 1996],
voltadas para a evoluo e aperfeioamento de
estratgias inteligentes em agentes (NPICs) [Rabin
2002, Pessin 2007, 2007b]. Concluiremos discutindo
sobre os recursos necessrios de serem oferecidos em
uma engine de I.A. focada no desenvolvimento de
jogos, e sobre as ferramentas atualmente disponveis
no mercado nesta rea.

Keywords: Inteligncia Artificial, NPCs e NPCIs,


Arquiteturas de Controle de Agentes, Agentes
Autnomos, Agentes Inteligentes, Algoritmos de busca
de caminhos (pathfinding), Agentes Cooperativos,
Sistemas Multi-Agentes,

Authors contact:
fosorio <AT> unisinos <DOT> BR,
{
fosorio,
pessin
sandro.s.ferreira,
vnonnenmacher } <AT> gmail <DOT> com

Em jogos digitais, o uso de tcnicas de Inteligncia


Artificial (I.A.) vem se fazendo cada vez mais
necessrio, e sendo at mesmo indispensvel em certos
casos. Estas tcnicas podem ser aplicadas em
diferentes tipos de tarefas: resoluo de problemas
(puzzles, brain-teasers), planejamento de tarefas,
planejamento de trajetrias, controle de agentes
autnomos (NPCs Non-Player Characters), entre
outras diversas aplicaes. Para que possamos integrar
tcnicas de I.A. em jogos digitais, se faz necessria a
incluso de um novo componente em um motor de
jogo (engine), alm dos j tradicionais componentes
destas Engines de Jogos: motor grficos, de udio, de
rede, de fsica, de controle de dispositivos de E/S
(interao). Este componente o motor de Inteligncia
Artificial I.A [Bittencourt 2006].
Portanto, os motores de jogos usualmente
necessitam oferecer funcionalidades relacionadas ao
uso de tcnicas de Inteligncia Artificial (I.A.), onde
existe um grande nmero de possveis implementaes
que podem ser disponibilizadas aos desenvolvedores.
Focaremos nossa discusso neste tutorial em alguns
tpicos mais especficos, sendo relacionados
principalmente as seguintes tcnicas: I.A. clssica para
jogos de tabuleiro, I.A. aplicada na busca de caminhos
(path finding), I.A. para o controle de personagens
autnomos (agentes) tipo NPCs (non-player
characters), aprendizado de mquina em jogos, e
sistemas Multi-Agentes. Para aqueles que estiverem
interessados em se aprofundar ainda mais na aplicao
e uso de tcnicas de Inteligncia Artificial em jogos,
sugerimos a leitura das seguintes obras AI Game
Programming Wisdom [Rabin 2002, 2003], AI Game
Engine Programming [Schwab 2004], AI: A modern
approach [Russell 1995], Fly3D Engine [Watt 2001],
AI4Games [Funge 2006] e a srie Game Programming
Gems[Charles-River 2006].

2. I.A. Clssica: Soluo de Problemas


A I.A. clssica busca resolver problemas
complexos, onde estas tcnicas clssicas se baseiam
usualmente em realizar uma busca no espao de
estados at encontrar a soluo.

2.1. Jogos e Busca em Espao de Estados


Uma busca de uma soluo para um problema consiste
basicamente em dada uma certa configurao atual
(estado atual), determinar quais so as opes de aes
que posso executar at chegar a uma soluo. As
diferentes configuraes (estados) que posso alcanar a
partir do da configurao inicial definem o chamado
espao de estados, ou espao de busca. Exemplos de
problemas onde posso aplicar este tipo de tcnicas de
busca de solues no espao de estados so aqueles
jogos do tipo Puzzles ou Brain Teasers (Quebracabeas), onde podemos citar como exemplos: Restaum, Torre de Hani, Cubo de Rubik, Sudoku (Fig. 1).

Agentes Inteligentes sero aplicados em jogos mais


nobres, que envolvam adversrios. Portanto os
Agentes podem jogar jogos de tabuleiro, realizando
uma busca no espao de estados, mas no caso de jogos
com adversrios devem considerar a participao do
oponente.
Estes jogos de tabuleiro colocando um computador
(Agente Inteligente) contra um adversrio humano vem
h muito tempo servindo como um excelente desafio
para a reproduo da Inteligncia em mquinas. Os
jogos de tabuleiro com adversrio tpicos so: jogo de
Xadrez, jogo de Damas, jogo da Velha (Tic-Tac-Toe),
Othello (ou Reversi), Go, Gamo, entre outros. Estes
jogos apresentam um grande desafio, pois usualmente
existe um grande nmero de jogadas possveis a
explorar, e deste modo devemos a empregar heursticas
que permitam uma reduo do espao de configuraes
possveis e buscar as melhores jogadas a fazer (aquelas
que levam a uma vitria). A Figura 2 apresenta um
esquema (parcial) das possveis jogadas em um jogo da
velha, onde devemos aplicar tcnicas que conduzam o
jogo (e o oponente) em direo configuraes do
tabuleiro que sejam favorveis em relao ao oponente.

Figura 1: Jogo SUDOKU [Sudoku 2007]

Esta busca pode ser realizada atravs da fora


bruta, ou, utilizando-se de heursticas que visam
otimizar o processo de busca no espao de estados. A
fora bruta quando realizamos uma busca cega, ou
seja, sem qualquer informao a priori que nos auxilie
na explorao dos estados que podemos assumir at
encontrar a soluo. Usualmente so empregados os
mtodos Depth-First ou Breadth-First para a
busca da soluo [Russel 1995]. No caso do exemplo
da figura 1, a fora bruta consiste em testar todas as
combinaes de possveis arranjos dos valores de 1 a 9,
dispostos nas casas que restam em aberto no tabuleiro,
verificando sempre se alguma destas combinaes
um tabuleiro que respeita a regra de tabuleiro correto e,
portanto, o vencedor do Sudoku.
Na busca heurstica passamos a usar certas
informaes a priori que limitam e orientam a busca de
uma soluo. No caso do exemplo da figura 1, existem
algumas regras heursticas que permitem reduzir a
complexidade da busca, como por exemplo: testar
apenas com os nmeros que ainda so vlidos (no
podem se repetir em uma mesma clula, linha ou
coluna), buscar preencher primeiro as clulas mais
completas, entre outras tcnicas.
2.2. Jogos de Tabuleiro com Adversrio
O uso de Agentes Inteligentes para resolver quebracabeas pode ser interessante, porm usualmente os

Figura 2: rvore de estados (configuraes) do tabuleiro no


Jogo da Velha

No caso do jogo da velha (ou no jogo de xadrez), o


que fazemos computar um valor em relao
situao do jogo nas folhas da rvore formada por
todas as possveis jogadas (ou pelas n jogadas a partir
de uma certa configurao). Baseado na avaliao da
situao nas folhas desta rvore (neste caso, se ganhou,
perdeu ou empatou), aplicamos um algoritmo
denominado Mini-Max [Russell 95, Mini-Max 2007]
que ir permitir a escolha das jogadas (caminho) que
com maior chance no levar a uma vitria, mesmo
tendo como oponente um jogador cuja ao no pode
ser totalmente prevista. O algoritmo Mini-Max
[Russell 95] conhecido como uma heurstica de busca
condicionada (com adversrio) em espao de estados, e
no caso do jogo da velha garante com 100% de certeza
um empate ou uma vitria.

2.3. Jogos de Ao: Planejando Trajetrias


Em jogos de ao, seja em um jogo como o Pac-Man
ou como o DOOM, Unreal ou Half-Life, usualmente
precisamos estabelecer trajetrias para guiar os NPCs
(Non-Player Characters) pelo ambiente. Neste tipo de
jogos se faz necessria a soluo do problema da busca
de caminhos (path-finding ou path-planning), ou seja,
devemos aplicar um algoritmo de busca, que permita
encontrar um caminho, de um ponto inicial (origem)
at um ponto final (destino). Portanto, este problema
pertence ao mesmo grupo de tcnicas da rea da I.A.
discutidos nesta seo, denominado de busca em
espao de estados [Russell & Norvig 95]: exploramos
o espao de configuraes, dadas diversas possibilidades de aes e caminhos a seguir, buscando alcanar
um determinado estado ou posio alvo (Fig. 3).

O uso desta tcnica de I.A. ocorre principalmente


em jogos do gnero RTS (Real Time Strategy), onde
temos um nmero considervel de agentes e rotas a
serem traadas. Para traar uma trajetria entre um
ponto de origem e um destino, possvel o uso de um
algoritmo de busca cega (no informada) e de fora
bruta, testando todos os caminhos possveis at
alcanar o destino (e.g. depth-first or breadth-first
search [Russell 1995]). Devido quantidade e a
complexidade desses agentes, assim como a
complexidade do ambiente em que esto inseridos os
agentes, pode ser necessria a otimizao desta busca,
utilizando-se de heursticas que permitam acelerar a
busca do caminho atravs do uso de algum tipo de
informao e/ou regra (busca informada / busca
heurstica) [Winston 1992].
Um NPC em um jogo de ao pode ser um agente
simples e sem inteligncia, que realiza tarefas simples
e repetitivas (pr-definidas). Entretanto, em um jogo o
interessante a competio dos humanos contra NPCs
dotados de algum tipo de inteligncia. Por exemplo, os
Fantasmas do Pac-Man podem usar algoritmos baseados em regras bastante simples para se movimentar em
direo ao jogador, entretanto, tambm possvel usar
algoritmos de I.A. para traar uma rota entre a posio
do Fantasma (origem) e o Pac-Man (destino).

Figura 3 Algoritmo de Path-Planning


Os algoritmos de path-finding (traado de rotas e
trajetrias) tem sido intensivamente investigados na
I.A., principalmente com aplicaes em reas como a
robtica autnoma (robs mveis) e jogos digitais. Em
ambientes onde possumos um mapa descrevendo os
obstculos e a configurao do ambiente, podemos
aplicar um algoritmo de busca (cega ou heurstica) para
traar uma rota. No caso da busca cega, o algoritmo ir
buscar explorar as diferentes possibilidades de
caminhos at encontrar um que lhe permita alcanar o
alvo. A busca cega tende a ter um custo muito
elevado, pois realiza uma busca sobre todas as
possibilidades de configuraes (espao de estados) e
conseqentemente um algoritmo bastante pesado. Na
busca heurstica sero usadas regras que permitem
otimizar a busca pela soluo, como por exemplo, na
figura 3 podemos usar uma heurstica que d uma
preferncia maior para a explorao das zonas planas.
Assim o algoritmo de busca ir evitar passar (buscar
caminhos) pelas zonas elevadas (montanhas), obtendo
assim um caminho, que apesar do desvio, melhor
segundo algum tipo de critrio ou informao que lhe
foi passada.

Pontos de Origem e de Destino


Obstculos
Rota gerada pelo A*

Figura 4 Algoritmo A* de Path-Planning em mapa


do tipo grade (matriz de ocupao) [Matthews 2003]

Caminhos
Possveis

Destino
Menor
Caminho

Obstculo

Origem

Figura 5 Algoritmo de Dijkstra de Path-Planning em


mapa geomtrico [Osrio 2004, Heinen 2000]

A busca de trajetrias pode ser realizada usando


diferentes representaes do mapa do ambiente, seja
usando um mapa do tipo grade (mapa do tipo
occupation grid Figura 4), ou um mapa do tipo
geomtrico (Figura 5). No caso do mapa do tipo grade,
cada elemento da grade representa uma posio livre,
ocupada, ou mesmo um elemento com um certo custo
associado sua transposio (onde paredes tem um
custo infinito). Os mapas do tipo geomtrico,
descrevem a geometria do ambiente, sendo que
podemos adicionar nestes mapas um grafo que
descreve a trajetria de um agente. Este grafo
composto por uma seqncia de pontos posicionados
junto ao mapa geomtrico. Cada aresta do grafo pode
tambm ter um custo associado, o custo de ir de um
ponto a outro nas extremidades desta aresta. Se for
removida uma aresta entre dois pontos, isso pode
indicar que no possvel passar de um ponto a outro
por aquela rota. Uma aresta removida por estar
colidindo e/ou atravessando uma parede. Podemos
notar na Figura 5 que a aresta que une diretamente a
origem ao destino foi removida por passar por cima
das paredes.
Existem diversos algoritmos de path-planning
encontrados na literatura [Osrio 2004, Dudek 2000,
Russel 1995]. Alguns dos mais conhecidos so o A*
(A Star ou A Estrela) [Russell 1995, Lester 2004, A
Star 2007], e o algoritmo de Dijkstra de busca em
grafos, no caso, representando o espao de configuraes e o grafo de visibilidade (caminhos possveis) do
ambiente [Osrio 2004, Heinen 2000, Dijkstra 2007].
Entretanto, outros algoritmos tambm so encontrados
na literatura, baseados em Campos Potenciais, em
Diagramas de Voronoi, e em diversas outras tcnicas,
muitas vezes compartilhadas com aplicaes e pesquisas em robtica autnoma [Jung 2005, Dudek 2000].
O algoritmo mais usado em jogos o A Star (A* A estrela) [Russell 95], que atravs de uma heurstica
permite identificar o melhor trajeto entre dois pontos.
Usualmente o ambiente descrito por uma grade,
definindo um mapa de ocupao espacial, sobre o qual
aplicado o A*, mas tambm pode ser aplicado sobre
uma representao de um grafo cujas arestas so
ponderadas (possuem custos associados). O A* um
algoritmo de busca informada, pois considera o quanto
j avanamos em direo ao destino, e uma estimativa
de quanto falta para alcanar nosso objetivo. Usando
esta heurstica podemos explorar o espao de possveis
configuraes (trajetrias), selecionando sempre a melhor trajetria de acordo com a heurstica empregada.
Esta tcnica ser melhor detalhada na seo seguinte.
Uma outra possibilidade de se identificar o melhor
caminho usando uma descrio geomtrica do
ambiente e criar um grafo ponderado (pelas distncias)
que uma o ponto de partida ao destino, considerando a
menor distncia a percorrer, e aplicando o Algoritmo
de Dijkstra. As Figuras 4 e 5 apresentam um exemplo
de trajetrias geradas com cada uma das duas tcnicas
descritas acima.

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

srie de possibilidades de rotas a seguir para alcanar o


seu objetivo, como por exemplo: SADEFG, SABEFG,
SDABEFG, SDEFG. Cada uma destas rotas consumir uma certa quantidade de recursos do agente (e.g.
tempo), ou seja, ir afetar o clculo do custo final total
da execuo desta trajetria.

para um mnimo local (otimiza o custo, porm no


alcana o objetivo final), e ao chegar neste ponto, se
no tiver alternativas, ficar bloqueado.
O algoritmo do A*, assim como os algoritmos de
busca no informada como o depth-first e o breadthfirst, deve possuir uma lista de ns candidatos a serem
visitados (Open set) e de ns j visitados (Closed set)
[Russell 1995]. A diferena entre estes algoritmos
que o Open Set do depth-first uma PILHA (LIFO
Last In, First Out), o Open Set do breadth-first uma
FILA (FIFO First In, Fist Out), e o Open Set do A*
est ordenado pelo custo da funo heurstica f(x), isto
, sempre selecionamos o nodo de menor custo desta
lista.

Figura 6: Custo de Caminho [Winston 1992, p.64]

Figura7: Custo Estimado dos ns [Winston 1992, p.71]

A heurstica base do A* a soma do custo de


caminho (j percorrido), com o custo estimado do
caminho (que ainda falta percorrer), dando como
resultado um custo total estimado para alcanar o n
em questo.
Considerando o exemplo anterior, caso o custo
considerado fosse somente baseado na minimizao do
custo do caminho percorrido, a escolha ideal no
primeiro passo deveria ser sempre mover do n S para
o n A, pois a outra opo (n D) teria um custo maior.
Por outro lado, se a opo fosse minimizar somente o
custo estimado (quanto falta) para alcanar o objetivo,
a escolha ideal no primeiro passo deveria ser sempre
mover do n S para o n D, pois esta escolha nos
aproxima mais do objetivo (n G). Como no
possvel garantir qual das duas opes ser a melhor,
visto que isto depender muito dos caminhos possveis
de serem percorridos, ambos os custos, o custo
estimado (h(x)) e o custo do caminho percorrido (g(x))
so levados em conta para a estimativa (f(x)) do custo
final. Esta composio permite assim achar o caminho
timo (considerando a heurstica adotada) da origem
para o destino, e por isso conhecido como Algoritmo
A timo (A Star).
3.1.2. Path Planning
importante destacar, que se for adotada apenas a
heurstica acima para a deciso de para qual novo
estado vamos passar, o agente ainda assim no ter
garantias de que ir encontrar o melhor caminho. O
agente poder selecionar um caminho que ir lev-lo

Figura 8: Pseudocdigo do algoritmo A* aplicado em


um mapa do tipo grade [Lester 2004]
Portanto, uma outra parte do algoritmo de busca de
caminhos do A* est no planejamento global de sua
rota: caso ele descubra que no adotou uma boa rota
(levando a um mnimo), ele poder retornar e se
arrepender, ou seja, retirar um novo nodo da lista de
ns candidatos a explorao, o Open Set. O agente
pode ento procurar por outras rotas, sempre que ficar
bloqueado, buscando em outros lugares de menos custo
que ainda assim possam ser alcanados a partir do
ponto de origem.
Quando o algoritmo estiver verificando um n de
onde no possvel alcanar o objetivo, ou, de onde o
custo final seja mais alto do que o de outros ns disponveis no Open Set, necessrio se arrepender e seguir
analisando por outro caminho, obtido da lista Open set.
A Figura 8 mostra o pseudocdigo do algoritmo A*
[Lester 2004], e um exemplo que demonstra o A*
sendo executado visto na Fig. 9, onde este programa
pode ser obtido no site do GameDev [Lester 2007].

3.2. A* para Jogos


(a) Distncia em linha reta: 9 casas (custo estimado 90)

(b) Avaliao da funo heurstica f(x) = g(x) + h(x).


Valor acima: custo total f(x). Valor abaixo esquerda:
custo do caminho percorrido g(x). Valor abaixo
Direita: custo estimado do caminho restante h(x).
Casas em verde: Open Set. Casas em azul: Closed set.

(c) Incio da explorao do caminho

(d) Caminho final encontrado


Figura 9: Tela do Software de Demonstrao do PathFinding baseado em A* [Lester 2004, 2007]
A Figura 9 demonstra a execuo do algoritmo A*
para um mapa simples, onde so apresentadas as
funes de custo (estimado Fig. 9(a) e percorrido
Fig. 9(b)). Podemos perceber nesta figura que os
valores so representados por inteiro, evitando assim
clculos de ponto flutuante e acelerando o processamento. O custo de avanar uma casa 10 em linha reta,
e se for em diagonal ser 14, equivalente distncia
euclidiana da diagonal, ou seja, SQRT(1+1) ~ 1.4
(representado pelo valor 14, em notao inteira). O
algoritmo explora a matriz e o caminho final
apresentado na Fig. 9(d) linha de pontos vermelhos.

As heursticas e algoritmos at agora apresentados se


aplicam ao A* padro. Este algoritmo conforme
apresentado permite que um nico agente defina sua
trajetria de um ponto de origem at uma posio de
destino, desviando dos obstculos conhecidos (estticos) que esto presentes no mapa do ambiente.
Porm uma das caractersticas interessantes do
algoritmo A* que podemos alterar seu
comportamento apenas modificando ou adicionando
heursticas e/ou informaes extras junto ao algoritmo
original. Podemos alterar a matriz de custos dinmicamente e assim influenciar no resultado final obtido
pelo algoritmo de planejamento de trajetrias.
Essa caracterstica do A* de alterar seu
comportamento baseado nas funes de custo pode ser
muito til em um jogo, permitindo a criao de novos
tipos de trajetrias e de comportamentos. Alm de
planejar trajetrias entre 2 pontos, o A* pode ser usado
para criar trajetrias que evitem passar prximo a um
inimigo (fuga), simplesmente alterando a matriz de
custos. Tambm possvel identificar regies do mapa
que desejamos evitar (pontos de emboscada e pontos
mais perigosos) e comportamentos particulares, onde
cada agente usa seu prprio mapa de custos (regies
preferenciais de atuao). Tambm possvel realizar a
cooperao entre agentes atravs da troca de
informaes sobrepostas ao mapa do ambiente. Estes
comportamentos sero detalhados no item 3.3 (prxima
seo). O tipo de comportamento do agente vai
depender da funo a ser exercida pelo agente no jogo
e da necessidade de velocidade de jogo, que permita
assim obter um bom gameplay [Gameplay 2007].
O balanceamento entre a velocidade e a preciso
tambm pode ser explorado para deixar um jogo mais
rpido. Para muitos jogos pode no ser necessrio obter
o melhor caminho entre um ponto e outro, mas sim
algo aproximado. O mapa do A* pode ser
dimensionado com diferentes nveis de resoluo,
onde a grade de ocupao pode representar uma viso
mais macro ou mais detalhada do ambiente. Tambm
podemos dividir o ambiente e assim facilitar (acelerar)
o processamento do planejamento de uma trajetria.
Por exemplo, podemos planejar uma trajetria que vai
at uma ponte (obrigando o agente a usar esta ponte), e
depois da ponte at o seu objetivo final, ao invs de
planejar toda a trajetria.
Por fim, apesar do mapa de ocupao (grid) ser
plano, podemos adicionar elementos com custos
diferentes, e assim representar elevaes no terreno
(montanhas e encostas) que teriam um custo de
transposio mais elevado. Isto levaria o agente a dar
preferncia aos terrenos planos. Tambm podemos
adicionar custos que tornem mais cara a passagem
por terrenos pantanosos, pela gua, ou por qualquer
tipo de terreno que apresente uma indicao de
dificuldade de transposio, fazendo com que o agente

evite a escolha de trajetrias que passem por estas


reas. Por outro lado, tambm podemos alterar o mapa
para privilegiar certas rotas, forando que o agente d
uma melhor pontuao e preferncia para certas
trajetrias. Todos estes custos podem ser adicionados
sendo sobrepostos ao mapa.

A Figura 10 apresenta estas regies de maior trfego,


identificadas com o auxlio do A*.

3.3. Comportamentos com o A*: Regies


Importantes
Definir regies importantes muito interessante
quando se joga um jogo de estratgia. O agente deve
ser capaz de analisar os caminhos que so comuns a
outros agentes, e desse modo identificar, por exemplo,
rotas perigosas e possveis pontos de emboscada.
Primeiramente necessrio verificar qual a
prioridade dos caminhos escolhidos pelos agentes, ou
seja, em qual tipo de terreno os agentes inimigos ou
amigos esto agregando baixo custo.
Supondo que os agentes estejam apenas
considerando o A* padro, onde so considerados os
custos estimados mais o do caminho percorrido. O
agente poder analisar os terrenos em que est
passando, e verificar se h uma rea de baixo custo em
meio a uma grande rea de alto custo, como por
exemplo, um vale em meio montanhas. Para efeitos
de um jogo, pode-se supor que aquela rea um
caminho perigoso (ideal para emboscadas), por que
vrios agentes iro considerar aquele caminho como
sendo um caminho timo (de baixo custo).
Uma outra forma usada para encontrar essas reas
de baixo custo executar o algoritmo A* vrias vezes
partindo de lugares diferentes, porm com o mesmo
destino, e analisar quais os ns que foram escolhidos
pelo algoritmo A* e por onde os agentes iro passar
seguidamente. Se um nmero considervel de
caminhos planejados pelo A* fizer um percurso
parecido, passando sempre por uma mesma zona,
pode-se considerar esta regio onde os caminhos
coincidiram, como uma regio de baixo custo, e
portanto ser uma rea de maior trfego para os
agentes. Esta informao poder ser usada do ponto de
vista estratgico para o jogo, e no apenas para a
movimentao dos agentes.
Outro modo de definir regies de possvel trfego
intenso de agentes executar o algoritmo vrias vezes
estabelecendo como origem um mesmo lugar e como
destino tambm um mesmo ponto. Porm, para cada
rota definida deve-se definir aquela rea como inalcanvel, ou seja, caminhos j percorridos passam a ter um
custo muito alto. Assim ao final da gerao de
trajetrias teremos vrias reas marcadas sobre o mapa,
e caso essas reas fiquem muito prximas umas das
outras, poderemos agrupar estas regies como sendo
regies de alto trfego e de relativo baixo custo. Caso
essas reas fiquem muito dispersas, poderemos constatar ento que essas regies provavelmente faro parte
de rotas alternativas de outros agentes, e portanto, que
existem diversas alternativas (rotas de fuga) possveis.

Figura 10: Definindo regies de fluxo de agentes - As


montanhas so reas de alto custo e as zonas tracejadas
indicam as regies de maior trfego (vales).

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

Com o uso do A* e de mapas compostos por


camadas (esttica e dinmica) de custos, podemos
assim dar prioridade a outras questes referentes
estratgia de fuga. Concluindo, o agente ser capaz de
combinar em seu comportamento a gerao de
trajetrias que evitem obstculos (mapa original), que
evitem os predadores (camada dinmica adicional) e
que busque alcanar pontos especficos mais seguros
do ambiente.
3.5. Comportamentos com A*: Coordenao e
Cooperao de Multi-Agentes
O A* usualmente aplicado para definir trajetrias de
um agente nico, porm pode ser usado tambm em
sistemas
multi-agentes,
visando
obter
um
comportamento coordenado. Em um sistema com
mltiplos agentes o objetivo de cada agente pode ser
compartilhado entre eles (e.g. capturar uma presa).
Portanto, caso se deseje criar um sistema multi-agente
cooperativo, isto implica que as rotas devero ser
planejadas em conjunto, para que um resultado
coletivo possa ser alcanado. Se o objetivo dos agentes
for o de cercar alguma posio-alvo, eles devem tomar
caminhos diferentes, sendo os diversos caminhos
planejados de forma conjunta por dois ou mais agentes,
compartilhando as informaes de mapa e trajetrias, a
fim de que o resultado final seja mais adequado.

Figura 11: rea de influencia, trajeto do agente sem


obstculos, trajeto do agente com obstculos.

Cada inimigo ou objeto que o agente deseja desviar


deve possuir definido um raio de influncia. Este
raio de influncia ir determinar uma regio onde ser
aplicado um custo adicional aos ns consultados pelo
algoritmo A*, estabelecendo um mnimo de distncia
que seguro para o agente passar em relao a um
inimigo. Desta forma o agente ir gerar uma trajetria
que evita passar dentro do raio de influncia do objeto
a evitar, reduzindo os riscos de ser capturado (Fig. 11).
Quanto maior o raio de influncia, mais longe o agente
ir passar do um inimigo.
Uma vez que tambm podemos definir regies com
um possvel trfego mais intenso de agentes (ver item
2.1), interessante que o fugitivo possa avaliar as
informaes disponveis sobre estas reas, que podero
ser protegidas ou no por aliados, ou ento, possuir
uma maior chance de ter inimigos a espreita preparando uma emboscada.

Figura 12: Perseguio Fantasmas em uma perseguio


no coordenada ao Pac-Man [PacMan 2007]

Em um jogo como o Pac-Man, a perseguio pode


se dar de forma individual com cada fantasma
(predador) planejando sua prpria trajetria de forma
independente dos demais. A Figura 12 mostra um
exemplo destas trajetrias independentes onde no
existe uma coordenao entra as aes do fantasma.

Alm das situaes acima citadas, existem muitas


outras situaes que poderiam ser consideradas, onde
constata-se que devido s particularidades de cada
situao necessrio buscar otimizaes especficas do
algoritmo A*, para cada uma delas. A maioria dessas
tcnicas faz uso de heursticas aplicadas sobre o
algoritmo original do A*, o que pode ser feito atravs
da manipulao dos custos dos ns do grafo usado na
busca do caminho.
3.6. Comportamentos com A*: Cercar um Alvo

Figura 13: Perseguio Fantasmas em uma perseguio


coordenada ao Pac-Man [PacMan 2007]

Em uma perseguio coordenada, podemos traar


primeiramente a trajetria de um dos fantasmas at o
seu destino (presa). Esta trajetria apresentada na
Figura 13 no lado esquerdo, onde o fantasma que est
mais acima determina uma rota de ataque ao PacMan.
Em seguida, esta rota recebe um custo adicional
(marcao em cinza) que adicionado aos custos do
mapa usado pelo A*. Alm disto, marcamos que a
passagem imediatamente superior ao PacMan est
bloqueada, pois j ser atacada pelo primeiro fantasma
(indicado pelo retngulo preto acima do PacMan). A
partir deste novo mapa dinamicamente modificado e
considerando a rota do primeiro fantasma, aplicamos o
A* para calcular a trajetria do segundo fantasma,
apresentada na Figura 13 no lado direito. Podemos
perceber que o segundo fantasma buscar uma rota
alternativa, atacando o PacMan por um outro lado.

Em jogos, muitas vezes necessrio se obter uma


estratgia mais inteligente, como por exemplo, cercar
uma rea importante ou um inimigo. Este tipo de
estratgia aplicado em um campo de batalha, onde os
NPCs devem se posicionar ao redor do alvo. Vamos
discutir aqui, mais uma outra forma de cooperao e
coordenao de multi-agentes, baseada no A*, e que
permite executar este tipo de tarefa: cercar um alvo.
Para se fixar o destino de cada agente, definido
um crculo ao redor do alvo a ser cercado. Este crculo
ser dividido, em partes iguais de modo que os agentes
fiquem distribudos ao redor do alvo. O raio ser dado
pela abrangncia da rea ao redor do alvo, exceto em
casos mais especficos onde se deseja chegar a uma
distncia especfica do ponto-alvo.
Para que os agentes cerquem o alvo vindos de
diferentes regies, feito um novo crculo ainda maior
da regio alvo. Primeiramente a regio alvo dividida
em quadrantes, e utilizando-se destes mesmos quadrantes podemos atribuir custos para distribuir o envio de
agentes para cada um deles. Assim podemos aumentar
o custo (camada dinmica) para os quadrantes onde
no se quer que um ou mais agentes passem. Desse
modo o agente no passar pelos quadrantes que no
foram atribudos a ele, indo diretamente para o
quadrante que lhe foi especificado, e desta forma
cercando o alvo (Fig. 15).

Figura 14: Perseguio Fantasmas em uma perseguio


coordenada ao Pac-Man, com adio de bloqueios dinmicos

importante destacar que, como podemos ter


custos diferenciados no mapa, podem ser adicionados
bloqueios que impedem completamente a passagem do
fantasma (retngulos pretos nas figuras 13 e 14), ou
elementos que apenas aumentam o custo da passagem
do fantasma, mas no vo impedir completamente que
ele use este caminho. Este o caso da marcao cinza
da figura 14, onde queremos que o segundo fantasma
evite a mesma rota do primeiro, mas se for necessrio
ele poder compartilhar alguma parte desta rota,
apenas considerando um custo mais elevado por ter
feito esta escolha.

Figura 15: Agentes cercando o alvo

Na figura 15 pode-se ver claramente, o exemplo de


um agente contornando os quadrantes que no so de
sua responsabilidade, at chegar ao seu destino. Desse
modo um grupo de agentes ir cercar o alvo, de modo
coordenado, e possivelmente poder evitar melhor que
o agente alvo possa fugir.
Deve ser salientado que, alm da trajetria tambm
teremos que depois controlar o deslocamento dentro
desta trajetria. Em tarefas como cercar o alvo, a
velocidade individual de deslocamento no ambiente
deve ser tambm planejada de modo que os diversos
agentes se posicionem no tempo certo ao redor do
alvo.
Concluindo, alm do planejamento de trajetrias
com o A*, o deslocamento e o re-planejamento a ser
feito quando detectada uma mudana significativa no
estado do ambiente, so tambm problemas
importantes a serem abordados. Estes aspectos,
relativos ao A*, no sero abordados neste tutorial,
pois iremos dar um maior destaque as arquiteturas de
controle dos agentes, usadas no planejamento e
execuo de suas aes, conforme ser discutido na
seo seguinte.

4. Arquiteturas para o Controle de


Agentes (NPCs)
Nas sees anteriores deste tutorial, tratamos os
agentes como sendo baseados em tcnicas clssicas de
I.A., visando a busca de solues atravs da explorao
do espao de estados, seja atravs de uma busca cega,
ou no caso do A*, com uma busca heurstica. O
planejamento de trajetrias uma das tarefas mais
usuais em jogos, onde o A* tipicamente o algoritmo
mais usado. Entretanto, existem aplicaes onde
podemos adotar outros tipos de algoritmos para o
planejamento e execuo das aes dos agentes. Um
termo mais genrico usado para definir o mdulo que
ir gerenciar a inteligncia do agente, sendo denominado de: Arquitetura de Controle dos Agentes.
As arquiteturas de controle podem ser usualmente
organizadas em categorias [Osrio 2004]:
Arquiteturas Deliberativas: Planejam antecipadamente (deliberam) as aes dos agentes,
baseadas em informaes e conhecimentos sobre
o ambiente, utilizando usualmente regras
(heursticas) que controlam o comportamento do
agente. O A* adota uma arquitetura deliberativa.
Arquiteturas Reativas: So arquiteturas simples
de controle adotadas em agentes que possuem a
capacidade de perceber o ambiente, pois so
dotados de sensores. Os agentes so capazes de
perceber e reagir estas percepes, atravs de
uma integrao sensorial-motora (reativa).
Arquiteturas Hierrquicas e Hbridas: So
arquiteturas que integram as caractersticas das
arquiteturas deliberativa e reativa, visando obter
sistemas de controle mais robustos.

A seguir vamos detalhas cada uma destas diferentes


arquiteturas usadas para o controle de agentes
autnomos, os NPCs em jogos.
4.1. Arquitetura Deliberativa
Uma arquitetura dita deliberativa (ou cognitiva)
quando a escolha da ao a ser executada pelo agente
realizada a partir de um modelo simblico do ambiente
e de um plano de aes. Essa arquitetura est
fundamentada na produo de uma seqncia de aes
(planos) para alcanar um determinado objetivo.
As aes de um agente deliberativo esto baseadas
nas hipteses de que o agente possui um conhecimento
do ambiente, e em certos casos, sobre os outros
agentes. Para isto, mantida uma representao
explcita do conhecimento sobre o ambiente, bem
como podemos manter um histrico das aes
passadas. Entretanto, a arquitetura cognitiva
tipicamente incapaz de agir (ou reagir) de forma rpida
e adequada perante situaes no previstas. Este
modelo adota a hiptese de que as condies do mundo
permanecem estticas enquanto o agente estiver
executando as suas aes ou processando alguma
informao para deliberar sobre as aes.
Os agentes deliberativos raciocinam e decidem
sobre quais objetivos devem alcanar, que planos
seguir e quais aes devem ser executadas em um
determinado momento. Deste modo, um agente
executa uma ao inteligente quando, possuindo um
certo objetivo e o conhecimento de que uma certa ao
o conduzir a este objetivo, seleciona esta ao. Os
algoritmos de busca em espao de estados (cega ou
heurstica) so uma das tcnicas que permitem a
implementao de agentes deliberativos.
O A*, tratado na seo anterior, um exemplo de
algoritmo que implementa um controle deliberativo: a
partir do mapa do ambiente, contendo os obstculos,
ponto inicial e o ponto de destino, o algoritmo
estabelece um plano de aes para alcanar seu
objetivo. O algoritmo clssico do A* no permite que o
agente possa tratar de situaes imprevistas (bloqueio
no meio do caminho), pois todas suas aes so
previamente definidas por um plano, que estabelece a
trajetria. Se algo mudar, deve ser feita uma
atualizao do mapa e um novo plano deve ser gerado.
Alm dos algoritmos de busca de caminhos (A*),
existem outras tcnicas que so correntemente
utilizadas em jogos para o controle deliberativo do
comportamento dos NPCs, notadamente as mais
importantes so: Autmatos Finitos (FSA Finite
State Automatas) e Controle baseado em Regras (RBS
Rule Based Systems). Vamos descrever brevemente a
seguir estas tcnicas.
4.1.1. Autmatos Finitos (FSA)

Os NPCs podem ter um comportamento que simula


inteligncia, mas que na realidade bastante fixo e prdefinido, obtido atravs do uso de um autmato. Esta
uma das tcnicas de controle deliberativo bastante
utilizadas nos jogos na atualidade. Os autmatos
definem uma seqncia de estados e de condies para
passagem de um estado a outro, fazendo com que o
NPC aparentemente execute aes coerentes. Veja um
exemplo de um autmato na Figura 16.
PACMAN
RETORNOU

CAA
PACMAN
TERMINA O
PODER DA
VITAMINA

PACMAN
MORREU

4.2. Arquitetura Reativa

PACMAN COMEU
VITAMINA MGICA

FUGIR DO
PACMAN

FANTASMA
SAI DA ORIGEM

MOVIMENTO
RANDMICO

LIBERA
FANTASMA

Agentes dotados de uma arquitetura deliberativa


podem realizar tarefas de alto nvel, como planejar suas
trajetrias, deliberar sobre qual a ao a mais
adequada em relao a uma dada situao, mas no
entanto, muitas vezes no necessria uma arquitetura
de controle to sofisticada para controlar um NPC.
Uma alternativa a adoo de uma arquitetura bastante
simples, a arquitetura reativa. Este tipo de arquitetura
possui vantagens sobre a deliberativa, por ser mais
simples e por permitir que sejam introduzidos sensores
junto ao modelo de controle, que detectam e reagem a
situaes no previstas em um plano inicial prestabelecido. No prximo item, 4.1, abordaremos a
arquitetura de controle reativa.

PACMAN
PEGA
FANTASMA

FANTASMA
MORTO

FANTASMA
RETORNA
PARA ORIGEM

Figura 16: Exemplo de um autmato (FSA) usado para o


controle do Fantasma no jogo do Pac-Man
[adaptado de Schwab 2004]

Uma descrio detalhada de como pode ser


implementado um controle de NPCs baseados em FSA
encontrado no Game Programming Gems [Dybsand
2000], e no AI Game Programming Wisdom [Rabin
2002 Cap. 6.5 e 6.6].

Uma arquitetura denominada reativa ou nodeliberativa quando a escolha da ao a ser executada


est relacionada de forma direta com a ocorrncia de
eventos percebidos no ambiente. Nessa arquitetura, o
controle das aes do agente realizado a partir de um
comportamento do tipo situao ao (ou estmulo
resposta). O agente age em um espao de tempo, com
base em uma pequena quantidade de informao, no
instante em que recebe ou percebe algum sinal ou
estmulo do ambiente. O agente dotado de sensores,
que percebem o ambiente, e de atuadores que permitem
que este possa agir. O agente decide como agir baseado
em seus sensores, recebendo de volta um feedbackde suas aes atravs de uma nova leitura de seus
sensores (lao de controle). A Figura 17 apresenta uma
representao deste esquema sensorial-motor.

4.1.2. Controle Baseado em Regras (RBS)


Nos sistemas de controle deliberativo baseado em
regras RBS (Rule Based Systems) [Rabin 2002 cap.
6.4], um NPC pode ser controlado por um conjunto de
regras, como por exemplo, se Jogador prximo e NPC
forte ento NPC atira; se Jogador prximo e NPC fraco
ento NPC foge. Na realidade um FSA pode ser
alternativamente descrito por um conjunto de regras,
sendo portanto, um mecanismo similar ao uso dos
autmatos, apenas descrito na forma de regras. Note
que possvel fazer uso de um sistema baseado em
regras mais complexo, onde muitas vezes podemos
compor um verdadeiro sistema especialista para
controlar um jogo, incluindo uma base de
conhecimentos e um mecanismo de inferncia que atua
sobre os fatos e regras de produo definidas. Alm de
regras usuais, tambm possvel usar um sistema de
regras baseado na lgica nebulosa (Fuzzy Logic), que
pode ser bastante til para que se possa definir regras
com elementos como forte, fraco, prximo,
distante, citados no exemplo logo acima. Um
exemplo do uso de regras nebulosas em jogos
apresentado por Bittencourt [BIT 2002a, 2002b].

http://ocw.mit.ed
u/

Figura 17: Arquitetura Reativa Percepo e Ao


[MIT 2007]
Nesse tipo de arquitetura no h representao
explcita do conhecimento sobre o ambiente. O
conhecimento dos agentes implcito e manifestado
atravs de comportamentos, o que pode restringir a
autonomia do agente e sua capacidade de executar
tarefas mais complexas. O agente reage a situao do
momento, no planejando suas aes em termos de um
mdio ou longo prazo. Outra caracterstica marcante
dessa arquitetura a ausncia de memria das aes
passadas, sendo que o resultado de uma ao passada
no exerce influncia direta sobre as aes futuras.

Os agentes modelados a partir de uma arquitetura


reativa, denominados reativos ou no-deliberativos,
no possuem capacidade de raciocnio e planejamento,
e por isso, so consideradas entidades mais simples do
que os agentes deliberativos. So agentes baseados em
comportamento, definidos a partir da situao atual do
ambiente e do conhecimento atual que possuem do
ambiente (fornecido pela sua entrada sensorial). As
aes destes agentes so realizadas em resposta a
estmulos oriundos do ambiente.
Em relao ao desenvolvimento de NPCs para
jogos, importante destacar que nem sempre todos os
jogos iro usar algoritmos mais sofisticados como o
A*. Um jogo como o Pac-Man pode ser implementado
usando: (i) um comportamento reativo, onde o
fantasma detecta o PacMan pela proximidade e se
move na direo onde est o PacMan (sem considerar o
mapa); (ii) um conjunto de regras simples (e.g. se est
abaixo do PacMan (presa), move para cima; se est a
esquerda, move para a direita, etc); (iii) um NPC que
se desloca adotando uma trajetria pr-definida, apenas
cumprindo uma ronda que passa por uma rota
previamente definida; (iv) um comportamento deliberativo baseado no A* (e nas variaes deste como foi
apresentado na seo 3). Estas diferentes formas de
controlar o agente (fantasma) podem dar resultados
bem satisfatrios, criando jogos com uma boa
interao e GamePlay.
Entretanto, est claro que a possibilidade de definir
rotas timas de modo a evitar bloqueios e usar
comportamentos inteligentes, capazes de inclusive
reagir a situaes imprevistas, dar melhores
resultados. por isso que as arquiteturas deliberativa e
reativa so modelos usados mais para se criar uma
descrio formal do controle de agentes. Do ponto de
vista mais prtico, a arquitetura de um agente
realmente inteligente deve integrar estes dois
modelos, compondo assim uma arquitetura hbrida.
4.3. Arquitetura Hbrida
Os agentes reativos usualmente no possuem um
raciocnio mais elaborado, ao contrrio da arquitetura
de controle deliberativa, onde os agentes deliberam
(raciocinam) sobre suas aes, planejando estas com
antecedncia. As arquiteturas reativa e deliberativa
possuem cada uma suas deficincias e limitaes,
sendo assim, usualmente so adotadas arquiteturas
modulares do tipo hbrido ou hierrquico, combinando
assim diferentes mdulos de controle [Osrio 2004,
2005].
A arquitetura hbrida portanto aquela em que a
escolha da ao realizada usando uma combinao
entre as tcnicas utilizadas em arquiteturas deliberativa
e reativa. Essa arquitetura foi proposta como
alternativa para solucionar as deficincias principais
das duas arquiteturas anteriores. A arquitetura
deliberativa tipicamente incapaz de reagir rpida e

adequadamente perante situaes no previstas. Na


arquitetura reativa, o agente incapaz de descobrir
alternativas para o seu comportamento quando a
situao do mundo diverge bastante de seus objetivos
iniciais. Alm disso, o agente no possui capacidade de
raciocnio e planejamento.
O objetivo construir um agente composto por dois
subsistemas: (i) o sistema cognitivo, que contm um
modelo simblico do mundo (e.g. mapa), utilizado no
planejamento e na tomada de decises; e (ii) o sistema
reativo, capaz de reagir a eventos que ocorrem no
ambiente. Os agentes hbridos so normalmente
projetados atravs de uma arquitetura hierrquica (em
camadas Fig. 18). Os nveis mais baixos representam
o sistema reativo e so usados para a aquisio de
informaes do ambiente, de outros agentes ou de
outras fontes. Os componentes deliberativo-cognitivos,
so responsveis pelo planejamento e determinao de
objetivos, sendo usados nos nveis mais altos.

Figura 18: Arquiteturas Hbridas Hierrquicas


Um Autmato Finito pode ser adaptado para
considerar as entradas dos sensores (internos e
externos) do agente e assim realizar a mudana de
estados. Um exemplo desta arquitetura apresentado
na figura 19 abaixo.

Figura 19: Arquitetura Hbrida tipo FSA

Uma arquitetura de controle hbrida muito usada


baseada na arquitetura BDI (Belief-Desire-Intention)
[Bratman 1999, Wooldridge 2000], onde os agentes
possuem explicitadas suas crenas (incluindo suas
percepes), seus desejos e intenes, a partir dos
quais realizam o planejamento de suas aes.
Arquitetura BDI baseada em estados mentais. A
idia bsica de uma arquitetura baseada em estados
mentais est em descrever o processamento interno de
um agente utilizando um conjunto bsico destes
estados, tais como crenas, desejos, intenes,
expectativa, entre outros. A arquitetura BDI (Belief,
Desire, Intention) um exemplo de arquitetura baseada
em estados mentais, apesar de ser considerada por
alguns autores uma estrutura deliberativa, pelo fato de
manter uma representao simblica do ambiente,
expressa em crenas, desejos e intenes.
Segundo Rao e Georgeff (1995), Belief (crena),
Desire (desejo) and Intention (inteno) representam,
respectivamente, a informao (e.g. mapas, percepes), a motivao e o estado deliberativo de um
agente. De modo intuitivo, as crenas correspondem
informao que o agente possui sobre seu ambiente,
desejos representam opes de estados futuros
disponveis ao agente (motivao) e intenes so os
estados futuros que o agente escolheu e com os quais
comprometeu-se (deliberao).
4.4. Arquiteturas de Controle: Exemplo de
Aplicao em Jogos
Uma interessante aplicao, criada sob a forma de um
jogo, e que permite testar diferentes mtodos de
controle de agentes autnomos o Robocode
[Robocode 2007]. Este jogo foi inicialmente
desenvolvido pelos pesquisadores da IBM e atualmente
mantido como uma iniciativa de software livre
(disponibilizado junto ao sourceforge).
O Robocode um jogo que visa criar os
controladores de robs autnomos simulados (tanques
de batalha), que so depois colocados em uma arena de
batalha (Figura 20). O usurio deve programar em Java
a inteligncia do controlador, e assim fazer o seu
rob lutar em uma batalha contra outros robs
autnomos disponibili-zados por outros usurios.
Existem jogos comerciais similares ao Robocode, onde
o objetivo tambm a criao do controle do rob, e
em alguns casos, como no Roboforge [Roboforge
2007], o objetivo configurar a estrutura do rob, seus
atuadores e sensores, construindo assim um rob e o
seu sistema de controle.
O Robocode uma plataforma interessante de
estudo de arquiteturas de controle de NPCs, pois
oferece a possibilidade de implementar comportamentos reativos (baseados em reaes sensriomotoras), comportamentos deliberativos (seqncias de
aes baseadas em regras) e comportamentos hbridos,
combinando sensores e regras de atuao.

Figura 20: Tela de abertura [Robocode 2007]


Entretanto, o Robocode oferece apenas uma arena
simples, onde o ambiente uma arena sem obstculos
e onde comportamentos deliberativos mais sofisticados
(como o A*), acabam no sendo explorados. A
integrao de tcnicas de controle de agentes
inteligentes, com capacidade sensorial, motora, e
cognitiva (deliberativa), uma das reas de estudo da
I.A. aplicada a jogos que vem sendo muito pesquisada
e desenvolvida recentemente.
Atualmente os grandes desafios da I.A. junto aos
jogos vem sendo a criao de sistemas multi-agentes,
com NPCs capazes de criar estratgias, de se
comunicar e coordenar a execuo de tarefas, de
cooperar a fim de alcanar um objetivo comum. Outro
grande desafio a integrao de tcnicas de
Aprendizado de Mquina (Machine Learning) junto
aos jogos e aos agentes inteligentes. Estes tpicos sero
abordados nas sees seguintes.

5. Sistemas Multi-Agentes: Comunicao


Estratgia, Coordenao, Cooperao
Os jogos onde temos vrios NPCs que interagem entre
si e com o ambiente devem possuir um controle que
leve em considerao os seguintes elementos:
comunicao, coordenao e cooperao. Existem
diversas tcnicas de I.A. que buscam promover este
tipo de comportamento coletivo, onde podemos
destacar os sistemas de ant colonies, flocks e swarms
[Reynolds 2007].
Podemos imaginar um conjunto de naves espaciais
que buscam atacar o inimigo como sendo um enxame
de abelhas ou um bando de pssaros, buscando
assim, atravs de algumas regras e comportamentos
pr-estabelecidos, reproduzir estes comportamentos de
forma organizada e coordenada. O comportamento
coletivo em jogos um tema bastante complexo e
exige muitas vezes solues especficas, que incluem
diferentes tcnicas de coordenao, organizao e
cooperao entre os agentes.
Podemos citar como referncias de base nesta rea
a obra Multiagent Systems [Weiss 1999], o livro
Sistemas Inteligentes [Rezende 2003 Cap.11], as
bibliotecas OpenSteer e Boids criadas por Reynolds
[Reynolds 2007], e os estudos sobre Simulao de
Multides - Crowd Simulation, de Thalmann e Musse
[Thalmann 2007].

No temos a inteno de fazer aqui uma reviso


ampla e/ou completa da rea de sistemas multi-agentes
aplicada a jogos, pois isto demandaria um tutorial
especfico apenas sobre este tema. Abordaremos aqui
apenas dois exemplos de aplicaes que podem servir
de inspirao para o desenvolvimento de aplicaes
baseadas em multi-agentes: Boids e Robombeiros.
5.1. Boids
Segundo o criador desta tcnica [Reynolds 2007],
movimentos complexos podem ser modelados a partir
de um conjunto de regras simples, associadas a cada
agente, tais como manter uma distncia mnima de
obstculos e uma certa velocidade e orientao de
movimentao. Os comandos de direcionamento e
controle dos Boids so chamados de steering.
O modelo bsico de grupos (flocking) composto por 3
regras simples (ver Figura 21) de direcionamento
(steering), que descrevem como um indivduo do
grupo deve se comportar, em termos de sua posio,
orientao e velocidade em relao aos seus
companheiros de grupo.

(a)
Separation: Direcionar o movimento dos agentes para
evitar um aglomeramento local dos membros do grupo.

Cada Boid possuir uma velocidade e orientao


que so constantemente ajustadas em funo da
combinao das 3 regras citadas anteriormente. Alm
disto, os Boids possuem um raio fixo que define quem
ser considerado como parte de seu grupo. Usando
regras simples como estas, Reynolds criou simulaes
de pssaros e de grupos que so extremamente simples,
ao mesmo tempo, que permitem gerar comportamentos
de grupo bastante interessantes.
5.2. Robombeiros
Robombeiros [Pessin 2007, 2007a, 2007b] um
sistema de simulao de combate a incndios em
florestas, baseado em um esquadro de robs
bombeiros autnomos. Este sistema vem sendo
desenvolvido visando o estudo de tcnicas de controle
e cooperao dos robs.
Os robs, assim como foi descrito na seo 3,
buscam cercar um incndio que est se propagando na
floresta. Para realizar esta tarefa, um coordenador
define a estratgia-macro, direcionando os robs para
suas posies-chave de combate ao incndio. Cada
rob ir executar uma parte desta estratgia
coordenada, mas tambm ir possuir uma certa
autonomia de navegao. A estratgia-local de
navegao permite que o rob siga para o seu destino
pr-especificado, porm usado um algoritmo baseado
em Redes Neurais Artificiais [Mitchell 1997] para
controlar o rob localmente, evitando colises contra
obstculos imprevistos. Os Robombeiros so um
exemplo de uma estratgia de controle hbrida, onde
temos uma rota (plano) pr-estabelecido, conjugado
com um comportamento reativo que evita colises e
direciona o rob para o seu destino. A figura 22
apresenta cenas geradas durante a simulao.

(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]

Figura 22: Robombeiros Simulao Virtual em


ambiente 3D (OSG+ODE) [Pessin 2007c]

Concluindo, as estratgias multi-agentes tm um


papel muito importante na implementao de jogos,
onde muitas vezes estas so definidas previamente
atravs de regras fixas. Algumas aplicaes, como os
Boids e os Robombeiros, permitem dotar os agentes de
um certo grau de autonomia. O interessante que se
possa adotar mtodos de aprendizado para assim obter
de modo automtico controladores inteligentes para os
agentes autnomos, estejam estes agentes operando de
modo individual ou coletivo.

6. Aprendizado de Mquina em Jogos


A criao de Agentes Inteligentes para jogos que
faam uso de tcnicas de Sistemas Adaptativos e com
Aprendizado de Mquina (Machine Learning)
[Mitchell 1997, Rezende 2003] um grande desafio na
atualidade.
Os agentes autnomos de um jogo tambm podem
ser controlados baseados em tcnicas de Machine
Learning estudadas na Inteligncia Artificial, como por
exemplo: Raciocnio baseado em Casos - CBR (Case
Based Reasoning) [Wangenheim 2003, Kolodner
1993], Redes Neurais - ANN (Artificial Neural
Networks) [Haykin 2001, Braga 2000], Algoritmos
Genticos - GA (Genetic Algorithms) [Mitchell 1996,
Rezende 2003], RL (Reinforcement Learning)
[Mitchell 1997, Sutton 1998], IDT (Induction of
Decision Trees) [Quinlan 1993, Rezende 2003] e
Raciocnio Probabilista (Bayesian Networks) [Mitchell
1997].
Entretanto, a integrao de tcnicas de Machine
Learning em Jogos bastante dependente do tipo de
problema ou aplicao em que se est inserindo este
tipo de tcnicas. Podemos ter o aprendizado de
mquina em jogos visando, por exemplo: aprender a
imitar o comportamento humano em um jogo
(aprendizado supervisionado), aprender a criar
estratgias eficientes de jogo (algoritmos evolutivos
para gerao de estratgias), aprender o perfil do
usurio de modo a melhor adaptar o jogo ao usurio
(adaptao de interface e de nveis de dificuldade),
aprender a reconhecer uma seqncia de movimentos
ou gestos (interfaces gestuais, baseadas no uso de
controles do tipo WiiMote [Wiimote 2007] ou mesmo
com viso artificial), entre muitas outras possveis
aplicaes. Na seo 6.2 iremos abordar alguns
exemplos de aplicaes de aprendizado de mquina
aplicadas em jogos e entretenimento.
6.2. Aprendizado de Mquina em Jogos:
Consideraes sobre Motores de Jogos
Usualmente os motores de jogos no incluem estas
tcnicas e ferramentas de aprendizado de mquina,
sendo que atualmente podemos encontrar diversas
ferramentas e bibliotecas para a implementao destas
tcnicas, mas usualmente implementadas em pacotes
especficos e separados. Por exemplo, os algoritmos

genticos podem ser implementados com o uso da


GALib1, as redes neurais artificiais com o uso do
SNNS2 e as rvores de deciso com o C4.53. Algumas
poucas implementaes, como o WEKA4 renem
diversos modelos de aprendizado, entretanto por ser
implementada em Java e com fins de uso mais para a
pesquisa, sua aplicao em jogos pode acabar ficando
um pouco mais restrita. Os motores de jogos que
incluem ferramentas de I.A. tm usualmente focado na
implementao de tcnicas de path-planning (como o
A*), e de arquiteturas de controle de agentes (reativas,
baseadas em regras, baseadas em FSA). Poucas so as
engines de jogos que incluem mdulos de aprendizado
de mquina.
Em conseqncia do exposto acima, a maioria das
aplicaes de aprendizado de mquina para jogos so
desenvolvidas de forma especfica e customizada para
uma determinada aplicao.
6.2. Aplicaes de Aprendizado de Mquina
em Jogos e de Entretenimento
Vamos apresentar aqui alguns exemplos de aplicaes
de aprendizado de mquina em jogos, onde no temos
a pretenso se fazer uma reviso completa da rea, mas
sim demonstrar algumas possveis aplicaes deste tipo
de tcnicas.
6.2.1. Aprendendo Comportamentos
Uma maneira de criar comportamentos inteligentes
atravs do aprendizado supervisionado [Rezende 2003,
cap. 4]. Inicialmente um usurio ir jogar um jogo por
um certo tempo, onde so registrados os dados
referentes ao seu comportamento. Este arquivo de
log deve conter o estado do jogo (ambiente, agentes,
sensores) e a ao realizada pelo jogador (tecla de
comando, movimento executado). De posse destas
informaes podemos criar um agente inteligente que
ir aprender a reproduzir o comportamento humano,
conforme o esquema apresentado na Figura 23.
Machine Learning:
Aprendizado do
Comportamento
(Controle automatizado)

Registrar dados:
Controle Humano
(Log <= Usurio)

Exemplos

Controle
Inteligente

Conhecimento

Figura 23: Aprendendo comportamentos atravs de exemplos


A ferramenta de aprendizado pode ser uma rede
neural, ou rvores de deciso, ou qualquer outro
mtodo capaz de, a partir dos exemplos de
comportamento, criar uma controlador do agente que
reproduza este comportamento que lhe foi apresentado.
1

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

O aprendizado de comportamentos reativos, atravs


deste tipo de abordagem, uma tarefa extremamente
simples. Por exemplo, podemos pegar o jogo do
PacMan como aplicao-alvo, e aplicar esta
metodologia para criar um PacMan autnomo. O
princpio seria bem simples, inicialmente o jogador vai
realizar um certo nmero de partidas contra o
computador, onde estar sendo registrado o seu
comportamento: Viso do PacMan sobre o ambiente
(proximidade dos fantasmas, vitaminas, seu estado
atual, etc) e ao do usurio (qual comando o usurio
digitou, determinando a direo de deslocamento do
PacMan). Uma vez composta a base de exemplos, esta
base fornecida para um algoritmo, uma Rede Neural
Artificial, por exemplo, que ser responsvel por obter
um modelo (generalizao) do comportamento do
usurio. A rede treinada ento colocada no sistema e
ir decidir atravs dos estados de entrada, qual a ao
que o PacMan dever realizar, imitando as decises e o
modo de agir do humano que a treinou.
importante destacar que neste tipo de aplicao o
comportamento final uma generalizao do
comportamento do usurio. Este comportamento s
poder ser adequado se: (i) a percepo do agente
reproduzir de certa forma a percepo do usurio sobre
o estado do jogo; (ii) as aes do usurio forem
coerentes e com um bom desempenho. Note que se o
usurio jogar mal, o agente ir aprender a imitar este
jogador, ou seja, possivelmente tambm ir jogar mal.
6.2.2. Aprendendo Estratgias
Em certas aplicaes interessante que o aprendizado
possa ocorrer de modo independente do usurio, onde
o agente descobre ou evolui sozinho uma
estratgia de como se comportar. A evoluo de
estratgias pode ser obtida com a aplicao de
algoritmos evolutivos (e.g. Algoritmos Genticos),
onde fornecido ao agente apenas um feedback de seu
desempenho final (e.g. pontuao, tempo de vida, nro.
de inimigos capturados). Neste caso, no apresentado ao agente como ele deve se comportar, mas
apenas indicamos uma medida que fornece a aptido
do agente (fitness) em realizar uma certa tarefa.

Pop ulatio n

B es t

Figura 24: Aprendizado por evoluo Lunar Lander


[Buckland 2002]

Um exemplo deste tipo de comportamento


apresentado por Buckland [Buckland 2002] no jogo
Lunar Lander, onde o comportamento do mdulo
lunar aprendido atravs da evoluo do sistema de
controle deste mdulo. O objetivo evoluir uma
seqncia de comandos de controle do motor e de
deslocamentos que permitam ao mdulo lunar pousar
correta e suavemente em uma base. Aps vrias
geraes (tentativas), com a seleo dos mais aptos,
chegamos a um controlador que possuir em seu
cdigo gentico a boa seqncia de controle.
Este jogo demonstra bem o uso de Algoritmos
Genticos para evoluir um controlador, de modo no
supervisionado, baseado apenas no score final obtido
por cada um dos elementos da populao. Este tipo de
tcnica tem sido usada para evoluir comportamentos e
estratgias em agentes inteligentes, mas entretanto
relativamente custosa, pois exige que sejam jogadas
muitas partidas para que seja feita a avaliao da
pontuao, seleo e evoluo dos agentes que
possuem o melhor cdigo interno (representando
uma soluo para o problema tratado) e conseqentemente a melhor aptido (fitness) frente ao problema.
6.2.3. Aprendendo Perfis
Uma outra possibilidade de aplicao de tcnicas
adaptativas o uso de tcnicas da rea de sistemas de
recomendao e anlise de perfil do usurio. Atualmente muitas empresas adotam sistemas que analisam
o comportamento do usurio, como por exemplo, o site
da amazon.com, determinando as preferncias e
hbitos de seus clientes. A partir deste perfil do
usurio, feita uma adaptao do contedo das pginas
Web, com sugestes e recomendaes especficas para
um determinado usurio. Este tipo de conceito de
adaptao de pginas Web pode ser transposto para os
jogos, onde tambm podemos monitorar os jogadores,
constituir um perfil dos mesmos, e oferecer um
contedo adaptado a cada jogador.
Um exemplo de aplicao que permite a adaptao
de um ambiente tridimensional de um jogo, atravs da
insero, remoo e reposicionamento de objetos (e.g.
munio, bnus, armadilhas, etc), considerando o perfil
de comportamento de cada jogador, foi proposto
baseado no modelo AdapTIVE [Santos 2005]. Este
modelo apresenta uma forma de adaptar ambientes 3D,
conforme o perfil do jogador, onde este perfil
construdo pelo monitoramento das aes do jogador
durante uma rodada do jogo.
De um modo geral, podemos classificar os sistemas
como o AdapTIVE, como sendo tcnicas de aprendizado e adaptao baseadas no perfil do usurio. Este
tipo de aplicaes ainda pouco explorado em jogos,
mas assim como ocorre na rea de e-commerce, a rea
de jogos vem cada vez mais se preocupando em
proporcionar um melhor entretenimento/satisfao aos
seus usurios. A adaptao baseada no perfil uma das
tcnicas que certamente ir contribuir neste sentido.

6.2.4. Aprendendo a Reconhecer Movimentos


O reconhecimento de movimentos recebeu uma maior
ateno desde o lanamento da console Wii da
Nintendo que possui o WiiMote [Wimote 2007], um
controle capaz de registrar movimentos. O WiiMote
possui um sensor que registra deslocamentos no espao
3D, e assim, podemos ter jogos onde o gesto se torna
um componente importante do jogo, como por
exemplo: jogar tnis (controle de movimento da
raquete), jogar golfe ou baseball (controle do
movimento do taco), jogar boliche ou baseball
(controle do arremesso da bola), entre muitas outras
opes.
A incluso de interfaces capazes de capturar
movimentos e gestos em jogos, abriu caminho para a
implementao de sistemas capazes de reconhecer o
movimento. Algumas empresas, como a AILive [AI
Live 2007], tem apostado na criao de ferramentas,
que incluem tcnicas de I.A., para auxiliar na criao
de jogos com funcionalidades de reconhecimento de
movimentos.
Mas no apenas a console Wii que permite
explorar este tipo de recurso. Um programa de
demonstrao,
bastante simples, que permite o
reconhecimento de desenhos feitos com o mouse,
apresentado por Buckland [Buckland 2002] em seu
livro AI techniques for game programming (que
inclui programas demonstrando esta funcionalidade).
Atravs do uso de uma Rede Neural Artificial, feito
um treinamento para reconhecer certos movimentos de
traado de desenhos muitos simples feitos com o
mouse (e.g. seta para cima, para baixo, traos e
quadrados). Este tipo de reconhecedor muito simples,
porm permite ver o potencial que os algoritmos de
aprendizado de mquina (como as Redes Neurais)
possuem para criar ferramentas de reconhecimento de
movimentos e gestos.
O sucesso da console Wii uma prova de que a
inovao em termos de interfaces com o usurio pode
revolucionar a rea de jogos. Junto com as novas
interfaces vem novos desafios de programao, como o
reconhecimento de gestos, e sem dvida as tcnicas de
aprendizado de mquina possuem um papel muito
importante nesta rea que apenas comea a ser
explorada.
As aplicaes de Aprendizado de Mquina
(Machine Learning) em Jogos no se esgotam nestes
poucos exemplos citados aqui. Existem muitas outras
possibilidades j exploradas e ainda a serem
exploradas. Podemos constatar a importncia desta
rea pela sua recente expanso, onde um dos exemplos
deste crescimento visto em conferncias como o
IEEE CIG Symposium on Computational Intelligence
in Games. Nesta conferncia temos inclusive
competies de Machine Learning para criar agentes
inteligentes usados para o controle autnomo de carros,
avies ou PacMans!

Por fim, a questo da performance tambm de


grande
importncia
quando
abordamos
a
implementao de sistemas adaptativos e com
aprendizado em jogos. Este ainda um tema de
pesquisa atual na rea, com poucas implementaes
realmente funcionais (jogos comerciais) que se usam
de modo prtico o aprendizado de mquinas.
Entretanto, devemos destacar que em um horizonte de
curto prazo os jogos devero cada vez mais integrar
este tipo de ferramentas, seja pelo aumento da
performance das CPUs, ou mesmo pela incluso de
processadores adicionais e dedicados a I.A. Deste
modo podemos prever que o comportamento dos NPCs
e o funcionamento dos agentes inteligentes vo se
tornar o cada vez mais realistas.

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

agentes. O desenvolvedor que buscar ter acesso a tais


ferramentas ter que integrar solues de diferentes
origens ou desenvolver sua prpria soluo.

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.

DIRECTIA MASA SCI. DISPONVEL EM : HTTP://WWW.MASASCI.COM/DIRECTIA.HTM ACESSO EM : 10 JUL. 2006.


DECHTER, R,. AND PEARL , J.,1985, Generalized BestFirst Search Strategies and the Optimality of A*.
University of California.
DELOURA MARK. (ED.) . GAME PROGRAMMING GEMS
(VOL.I). CHARLES RIVER MEDIA ED. 2000. 550 P. ISBN
1584500492.
DIJKSTRA WIKIPEDIA [ONLINE], DISPONVEL EM :
HTTP ://EN.WIKIPEDIA. ORG/WIKI/DIJKSTRA%27S_ALGORITHM
[ACESSADO 10 DE SETEMBRO DE 2007].
DUDEK, G.; JENKIN, M. COMPUTATIONAL PRINCIPLES OF
MOBILE ROBOTICS. CAMBRIDGE : CAMBRIDGE UNIVERSITY,
2000. 280 P. ISBN 0-521-56876-5

Referncias

DYBSAND, ERIC. A FINITE-STATE MACHINE CLASS. IN:


DELOURA M ARK. (ED.), GAME PROGRAMMING GEMS
(VOL.I). CHARLES RIVER MEDIA ED. 2000. 550 P. (CAP. 3.1).

AILIVE LiveMove Product [online], Disponvel em:


http://www.ailive.net/liveMove.html [Acessado 10 de
Setembro de 2007].

FUNGE, J. D. AI FOR GAMES AND ANIMATION: A COGNITIVE


MODELING APPROACH. NATICK, MA: AK PETERS, 1999.
212 P.(WEB: HTTP://JFUNGE.GOOGLEPAGES.COM/)

A-STAR WIKIPEDIA - A-Star Search Algorithm [online],


Disponvel
em:
http://en.wikipedia.org/wiki/A*_search_algorithm
[Acessado 5 de Agosto de 2007].

FUNGE,
JOHN.
AI4GAMES.
DISPONVEL
EM :
HTTP ://WWW.AI4 GAMES.ORG/ ACESSO EM : 10 JUL. 2006.

BITTENCOURT, JOO R.; OSRIO, F. S. GNU MAGES: UM


AMBIENTE PARA SIMULAO DE MLTIPLOS AGENTES
AUTNOMOS, COOPERATIVOS E COMPETITIVOS. IN: ANAIS
DO III WORKSHOP SOBRE SOFTWARE LIVRE. PORTO ALEGRE,
2002. (BITTENCOURT 2002A)
BITTENCOURT, JOO R.; OSRIO, F. S. FUZZYF - FUZZY
LOGIC FRAMEWORK: UMA SOLUO SOFTWARE LIVRE PARA
O DESENVOLVIMENTO, ENSINO E PESQUISA DE APLICAES
DE INTELIGNCIA ARTIFICIAL MULTIPLATAFORMA. IN : ANAIS
DO III WORKSHOP SOBRE SOFTWARE LIVRE. PORTO ALEGRE,
2002. (BITTENCOURT 2002B)
BITTENCOURT, J. R. ; OSRIO, FERNANDO S. . MOTORES
DE JOGOS PARA CRIAO DE JOGOS DIGITAIS - GRFICOS,
UDIO, INTERFACE, REDE, INTELIGNCIA ARTIFICIAL E
FSICA. IN: V ESCOLA REGIONAL DE INFORMTICA DE MINAS
GERAIS, BELO HORIZONTE. ANAIS DA V ERI-MG SBC.
BELO HORIZONTE : PUC MINAS, 2006. V. 1. P. 1-36. 2006.
(TUTORIAL) WEB: HTTP://OSORIO.WAIT4.ORG/PUBLICATIONS/
BITTENCOURT -OSORIO-SIC-BOOK2002.PDF (LOGIN: GUEST /
UNISINOS)
BRAGA, ANTNIO; LUDERMIR, TERESA; CARVALHO,
ANDR. REDES NEURAIS ARTIFICIAIS: TEORIA E
APLICAES. LTC, 2000. 262P.
BRATMAN, M. E. (1999). INTENTION, PLANS, AND
PRACTICAL REASON. CSLI PUBLICATIONS. ISBN 1-57586192-5.
BUCKLAND, MAT. AI TECHNIQUES FOR GAME
PROGRAMMING. PREMIER PRESS, GAME DEVELOPMENT
SERIES. 2002. 481 P.
CHARLES-RIVER. GAME PROGRAMMING GEMS BOOK
SERIES CHARLES RIVER MEDIA. DISPONVEL EM :
HTTP ://WWW.GAMEPROGRAMMINGGEMS.COM ACESSO EM :
10 JUL. 2006.
DARK A.I. - DARKBASIC PRO. THE GAME CREATORS. WEB:
HTTP ://DARKBASICPRO.THEGAMECREATORS.COM/?F=DARK_ AI
ACESSO EM : 10 JUL. 2006.

GAMEPLAY WIKIPEDIA Gameplay [online], Disponvel


em: http://en.wikipedia.org/wiki/Gameplay [Acessado 14
de Agosto de 2007].
HAYKIN, Simon. Neural Networks: A Comprehensive
Foundation. Prentice-Hall. 2nd Ed, 1999. 842p.
(Traduo: Neural Network: Princpios e Prtica.
Bookman, 2001).
HEINEN, F. (2000) ROBTICA AUTNOMA: INTEGRAO
ENTRE PLANIFICAO E COMPORTAMENTO REATIVO.
EDITORA UNISINOS. DISPONVEL NA WEB EM :
HTTP ://NCG.UNISINOS.BR/ROBOTICA/LIVRO. HTM.
JUNG, C. R; OSRIO, F. S.; KELBER, C.; HEINEN, F.
COMPUTAO EMBARCADA: PROJETO E IMPLEMENTAO DE
VECULOS AUTNOMOS INTELIGENTES. JAI - JORNADA DE
ATUALIZAO EM INFORMTICA, CONGRESSO DA SBC 2005.
SO LEOPOLDO: RS. (JAI05 TUTORIAL). WEB: HTTP://
INF.UNISINOS.BR/~OSORIO/PALESTRAS/JAI2005.HTML
KOLODNER, J ANET. CASE-BASED REASONING. SAN M ATEO:
MORGAN KAUFMANN, 1993. 668 P. ISBN 1-55860-237-2
LESTER, P., 2004. A* Pathfinding for Beginners [online],
Disponvel em: http://www.policyalmanac.org/games/
aStarTutorial_port.htm [Acessado em 11/08/2007].
LESTER, PATRICK. A* PATHFINDING FOR BEGINNERS. [online]
GAMEDEVWEB: HTTP://WWW.GAMEDEV.NET/REFERENCE/
ARTICLES/ ARTICLE2003.ASP [Acessado em 14/08/2007]
MATTHEWS, JAMES. [ONLINE], DISPONVEL EM :
HTTP ://WWW.GENERATION5.ORG/CONTENT/2000/ASTAR.ASP
A* DEMONSTRATOR SOFTWARE [ACESSADO 10 MARO DE
2003]
MINI-MAX WIKIPEDIA [ONLINE], DISPONVEL EM :
HTTP ://PT.WIKIPEDIA. ORG/WIKI/MINIMAX (SIMPLES) OU
HTTP ://EN.WIKIPEDIA. ORG/WIKI/MINIMAX [ACESSADO 10
DE SETEMBRO DE 2007].
MIT OCW - TECHNIQUES IN ARTIFICIAL INTELLIGENCE
[ONLINE ]. OPEN COURSE WARE MIT AVAILABLE AT WEB:
HTTP ://OCW.MIT.EDU/OCWWEB/ELECTRICAL-ENGINEERINGAND -COMPUTER-SCIENCE/6-825TECHNIQUES-IN-

ARTIFICIAL-INTELLIGENCEFALL2002/COURSEHOME/
[ACESSADO 10 DE SETEMBRO DE 2007]
MITCHELL, MELANIE. AN INTRODUCTION
ALGORITHMS. MIT PRESS, 1996. 209P.

TO

GENETIC

COMBATE DE INCNDIOS EM REAS FLORESTAIS. IN :


OBSERVATRIO 2007 UNOCHAPEC.. (PESSIN 2007C).
WEB: HTTP://PESSIN.GOOGLEPAGES.COM/

MITCHELL, T. M. MACHINE LEARNING. NEW YORK:


MCGRAW-HILL. SERIES IN COMPUTER SCIENCE, 1997.
414P.

POTTINGER, D.C., 2000. Terrain Analisys in RealTime


Startegy
Games
[online],
Disponvel
em:
www.gamasutra.com/features/gdcarchive/2www.gamasut
ra.com/features/gdcarchive/2000/pottinger.doc000/pottin
ger.doc [Acessado 14 de Agosto de 2007].

OPENAI. DISP. EM: HTTP:// OPENAI.SOURCEFORGE.NET/


ACESSO EM : 10 JUL. 2006.

QUINLAN, J. R. C4.5: Programs for machine learning. San


Mateo: Morgan Kaufmann Publishers, 1993. 302p

OSRIO, F.S. ; MUSSE, S.R. ; ET AL. AMBIENTES VIRTUAIS


INTERATIVOS
E
INTELIGENTES:
FUNDAMENTOS,
IMPLEMENTAO E APLICAES PRTICAS. IN: A.M.S.
ANDRADE; A.T. MARTINS; R.J.A. MACEDO(ORG.). JAI JORNADA DE ATUALIZAO EM INFORMTICA, CONGRESSO
DA SBC 2004. SALVADOR: TECART ED., 2004, V.2, P.239288.
(JAI04

TUTORIAL).
WEB:
HTTP ://
INF.UNISINOS.BR/~OSORIO/PALESTRAS/JAI04-AVII.HTML

RABIN, STEVE (ED.). AI GAME PROGRAMMING WISDOM 2.


CHARLES RIVER MEDIA; DEC. 2003, 732 P.

OSRIO, FERNANDO S. ; MUSSE, SORAIA RAUPP ; ET AL.


INTELLIGENT VIRTUAL REALITY ENVIRONMENTS (IVRE):
PRINCIPLES, IMPLEMENTATION, INTERACTION, EXAMPLES
AND P RACTICAL APPLICATIONS. IN : XAVIER FISCHER.
(ORG.). VIRTUAL CONCEPT (PROCEEDINGS - TUTORIALS). 1
ED. BIARRITZ, FRANA: ESTIA - IEEE - SPRINGERVERLAG, 2005, V. 1, P. 1-64. VC05 TUTORIAL. WEB:
HTTP ://OSORIO.WAIT4.ORG/PUBLICATIONS/PAPERSOSORIO.HTM

RABIN, STEVE (ED.). AI GAME PROGRAMMING WISDOM.


CHARLES RIVER MEDIA; 2002, 672 P. (WEB:
HTTP ://WWW.AIWISDOM.COM/ )
RABIN, STEVE (ED.). AI GAME PROGRAMMNG WISDOM.
CHARLES RIVER MEDIA ED. 2002. 672P.
RABIN, STEVE. AI GAME PROGRAMMING WISDOM. CHARLES
RIVER MEDIA, 2002. 672P.
RAO, A. AND GEORGEFF, M. (1995) BDI AGENTS: FROM
THEORY TO PRACTICE. PROCEEDINGS OF THE 1ST
INTERNATIONAL CONFERENCE ON MULTI-AGENTS
SYSTEMS, SAN FRANCISCO, CA, JUNE.
REZENDE, SOLANGE (ED.). SISTEMAS INTELIGENTES :
FUNDAMENTOS E APLICAES. BARUERI : EDITORA
MANOLE, 2003. 525 P.

OSRIO, FERNANDO S. ; MUSSE, SORAIA RAUPP ET AL.


INCREASING REALITY IN VIRTUAL REALITY APPLICATIONS
THROUGH P HYSICAL AND BEHAVIOURAL SIMULATION. IN :
X. FISCHER. (ORG.). PROCEEDINGS OF THE VIRTUAL
CONCEPT CONFERENCE 2006. 1 ED. BERLIM : ESTIA VIRTUAL CONCEPT - SPRINGER VERLAG, 2006, V. 1, P. 145.
(VC-SS06

TUTORIAL).
WEB:
HTTP ://OSORIO.WAIT4.ORG/PUBLICATIONS/PAPERSOSORIO.HTM

ROBOCODE GAME [ONLINE]. PROGRAMMING AGENT AI.


WEB: HTTP://ROBOCODE.SOURCEFORGE.NET/ [ACESSADO
10 DE SETEMBRO DE 2007].

PACMAN (AVAILABLE AT IGOOGLE) [ONLINE]. DISPONVEL


EM:
HTTP ://WWW.SCHULZ.DK/PACMAN.HTML?LANG=EN
[ACESSADO 10 DE SETEMBRO DE 2007].

ROBOFORGE GAME [ONLINE]. LIQUID EDGE GAMES LTD.


WEB: HTTP://WWW.ROBOFORGE.NET/ [ACESSADO 10 DE
SETEMBRO DE 2007].

PESSIN, G. ; OSORIO, F. S. ; MUSSE, S. ;


NONNEMMACHER, V. ; FERREIRA, S. S. .
SIMULAO VIRTUAL DE AGENTES AUTNOMOS PARA A
IDENTIFICAO E CONTROLE DE INCNDIOS EM RESERVAS
NATURAIS. IN: SYMPOSIUM ON VIRTUAL AND AUGMENTED
REALITY, 2007, PETRPOLIS. IX SYMPOSIUM ON VIRTUAL
AND AUGMENTED REALITY, 2007. V. 1. P. 136-245. WEB:
HTTP ://PESSIN.GOOGLEPAGES.COM/

RUSSEL, R.; NORVIG, P. ARTIFICIAL INTELLIGENCE: A


MODERN APPROACH ENGLEWOOD CLIFFS, PRENTICE HALL,
1995. 932P.

PESSIN, G. ; OSORIO, F. S. ; MUSSE, S. ;


NONNEMMACHER, V. ; FERREIRA, S. S. .
UTILIZANDO AGENTES AUTNOMOS COM APRENDIZADO
PARA A IDENTIFICAO E COMBATE DE INCNDIOS EM
REAS FLORESTAIS. IN: VII SIMPSIO DE INFORMTICA DO
PLANALTO MDIO (SIPM), PASSO FUNDO, RS. VII SIMPSIO DE INFORMTICA DO PLANALTO MDIO (SIPM), 2007.
WEB: HTTP://PESSIN.GOOGLEPAGES.COM/ (PESSIN 2007A)
PESSIN, G. PROPOSTA DE DISSERTAO DE MESTRADO DO
PIPCA: EVOLUO DE ESTRATGIAS E CONTROLE
INTELIGENTE EM SISTEMAS MULTI-ROBTICOS ROBUSTOS.
UNISINOS, MAIO 2007. (PESSIN 2007B)
PESSIN, G. ; OSORIO, F. S. ; MUSSE, S. ;
NONNEMMACHER, V. ; FERREIRA, S. S. .
DESENVOLVIMENTO DE UM SISTEMA MULTI-ROBTICO COM
CONTROLE INTELIGENTE APLICADO NA IDENTIFICAO E

REYNOLDS - CRAIG W. REYNOLDS BOIDS, FLOCKS AND


STEERING (OPENSTEER). AVAILABLE IN THE WEB SITE :
HTTP ://WWW.RED3D.COM/CWR/
(ACESSADO
EM
AGOSTO/2007)

SANTOS, CSSIA TROJAHN DOS ; OSRIO, FERNANDO S.


APPLYING THE ADAPTIVE MODEL IN GAMES. IN:
SBGAMES / WJ OGOS, 2005, SO PAULO. ANAIS DO
SBGAMES 2005 / WJOGOS. SO PAULO : USP - SBC,
2005. V. 1. P. 264-269. (SBGAMES/WJOGOS 2005 ARTIGO).
SCHWAB, BRIAN. AI GAME ENGINE PROGRAMMING.
CHARLES RIVER MEDIA. 2004. 624 P.
SUDOKU WIKIPEDIA [ONLINE], DISPONVEL EM :
HTTP ://PT.WIKIPEDIA. ORG/WIKI/SUDOKU [ACESSADO 10 DE
SETEMBRO DE 2007].
SUTTON, RICHARD S. AND BARTO, ANDREW G.
REINFORCEMENT LEARNING: AN INTRODUCTION. MIT
PRESS (A BRADFORD BOOK), CAMBRIDGE, MA, 1998.
THALMANN, DANIEL, MUSSE, SORAIA RAUPP (EDS).
CROWD SIMULATION. SPRINGER-VERLAG. (COMPUTER
IMAGING, VISION, PR AND GRAPHICS) 2007. 270 P., ISBN:
978-1-84628-824-1.

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.

Você também pode gostar