You are on page 1of 38

10

1 INTRODUO
A Inteligncia Artificial (I.A.) desde os seus primrdios est diretamente
ligada ao processo evolutivo humano, com sua histria contada, desde uma
base alicerada nos estudos de Aristteles, e caminhando sem respostas
definitivas, atravs do tempo, permeando-se por vrias teorias relacionadas
com o ser humano (NILSSON, 1998).
O desenvolvimento da Inteligncia Artificial assume um carter
permanente, solidificando a estrutura de aprendizado, contando com a adeso,
mesmo que lenta, de cientistas capazes de promover sua divulgao. O
movimento passa a contar com uma estrutura de conceitos devidamente
formalizados que permitem uma robustez maior e que comeam a melhorar
aptides que se tornariam marcos e abririam as portas para o incio das
pesquisas e estudos, sendo um deles, os Algoritmos Genticos (RUSSELL e
NORVIG, 2004).
Nesse contexto, John Holland inicia um processo de desenvolvimento
dos

estudos

sobre

os

Algoritmos

Genticos,

influenciando

outros

pesquisadores a tomarem o mesmo caminho. Com o passar dos anos, e com


sua consolidao, eles comearam a ser utilizados em inmeras reas de
pesquisa, alm de se entranhar no meio industrial, sendo uma dessas reas os
jogos eletrnicos (RUSSELL e NORVIG, 2004).
Como uma das muitas aplicaes dos Algoritmos Genticos, os jogos
eletrnicos despertam especial ateno, pois envolvem um nmero grande e
entusiasmado de usurios e um mercado em rpido crescimento, to prspero
quanto a indstria do cinema (BATISTA et al, 2009).
Este trabalho trata, ento, da confluncia entre essas duas reas, a
Inteligncia Artificial e os jogos eletrnicos, especificamente na aplicao de
Algoritmos Genticos no comportamento de personagens de jogos eletrnicos.
Este trabalho est organizado da seguinte maneira: o Captulo 2
relaciona a evoluo da Inteligncia Artificial com seu uso em jogos eletrnicos.
O Captulo 3 mostra a evoluo, desde seu surgimento at os dias atuais, e a
conceituao de Algoritmos Genticos. O Captulo 4 engloba dois estudos de
caso relacionados aos Algoritmos Genticos, um aplicando-o em navegao

11

autnoma e outro para controle de comportamento de personagens. Por fim,


so apresentadas as consideraes finais do trabalho.

12

2 HISTRICO DA INTELIGNCIA ARTIFICIAL EM JOGOS ELETRNICOS


Este captulo desenvolve um histrico da Inteligncia Artificial e tambm
do seu uso em jogos eletrnicos.
2.1 Introduo
A Inteligncia Artificial foi definida por muitos, como cita Luger (2004,
p.23), "... a cincia da computao que se ocupa da automao do
comportamento inteligente.", com esta frase ele reafirma a posio de que a
I.A. um fragmento da Cincia da Computao que deve, por sua vez, ser
baseada em profundos estudos e princpios tericos concretos. Neste
processo, pode-se incluir como base toda a estrutura computacional como
algoritmo e linguagem apropriados. Neste processo de entendimento da I.A., o
prprio Luger (2004) expe uma fragilidade nesta definio quando diz:
Entretanto, esta definio padece do fato de que a inteligncia
em si no muito bem definida ou entendida. Embora muitos
de ns estejam certos de que reconhecemos o que
comportamento inteligente, quando o vemos, muito
improvvel que algum seja capaz de definir inteligncia de
uma maneira que seja especfica o suficiente para auxiliar na
avaliao de um programa de computador supostamente
inteligente[...]. (LUGER, 2004, p. 23).

A inteligncia, segundo Luger (2004), uma faculdade nica, ou apenas


um nome dado a uma coleo de habilidades humanas distintas e no
correlacionadas. A inteligncia

pode

ser

visualizada

atravs

de

um

comportamento observvel ou inegvel evidncia de um dispositivo interno


individual.
O primeiro de muitos estudos relacionados Inteligncia Artificial pode
ser atribudo a Aristteles (NILSSON, 1998), em seu esforo para explicar e
codificar a inteligncia humana. Porm, o termo Inteligncia Artificial foi
utilizado pela primeira vez por John McCarthy, como nome da conferncia em
Dartmouth em 1956.
Isto e deu devido a grande parte dos estudos realizados anteriormente,
por outros autores e por ele prprio, tratavam apenas do mbito matemtico

13

dos autmatos, que pode ser considerado como um modelo matemtico de


uma mquina de estados finita, a qual modela o comportamento atravs de
estados e das transies de um estado para o outro.
2.2 Histrico
No perodo anterior aos anos 70, os processos classificados como
inteligentes se encontravam distantes dos que conhecido hoje, viviam ainda
um estgio inicial, bsico, com uma divulgao restrita, no havendo portanto
nenhum interesse real que justificasse um foco de mercado, isto , que
recursos financeiros e tecnolgicos pudessem ser alocados em um projeto
significativo de pesquisa com o propsito de desenvolvimento. Estas pesquisas
estavam sim cercadas por grandes expectativas, pois vrios testes realizados
obtiveram

resultados

positivos.

Porm,

este

otimismo

excessivo

era

acompanhado de controvrsias, j que os testes realizados eram muito


restritos, no verificando problemas mais amplos e complexos (RUSSELL e
NORVIG, 2004).
Devido inexistncia de um mercado para jogos na poca, estes no
passavam de testes em laboratrios, como Tnis para Dois, de 1958, que era
um jogo simples, jogado atravs de um osciloscpio (BATISTA et al., 2007), ou
demonstraes de capacidade de hardware, como no jogo Spacewar!, de 1961
(Ilustrao 1), no qual o jogador controlava uma nave espacial enfrentando
naves inimigas e utilizava algoritmos complexos para clculos fsicos.
Em ambos os casos, os jogos permitiam apenas jogabilidade Versus
Mode, palavra do ingls que representa a ao de um jogador contra outro
apenas, ou seja, relao de um para um, no havendo necessidade da
aplicao de nenhuma tcnica de Inteligncia Artificial, conforme menciona
(NERF US PLEASE, 2008): At as dcadas de 60 e inicio de 70, os jogos
eletrnicos possuam apenas VERSUS MODE, no havendo a necessidade da
utilizao da IA.

14

Ilustrao 1: Spacewar!
Fonte: (BATISTA et al., 2007)

Na dcada de 70, apesar de seu incio conturbado, foram quebradas


muitas das expectativas em relao Inteligncia Artificial, as pesquisas na
rea de Inteligncia Artificial comeam a gerar resultados mais slidos. Foi o
incio da utilizao de mtodos para soluo de problemas relativamente
pequenos, pois estes no suportavam problemas de maior porte. Exemplos de
utilizao desses mtodos so: o programa DENDRAL, da Universidade de
Stanford, para inferir a estrutura molecular a partir de dados de um
espectrmetro de massa, e o MYCIN, tambm da Universidade de Stanford,
que tinha como objetivo diagnosticar infeces sanguneas.
Na rea de entretenimento, os primeiros consoles comearam a ser
lanados

no

mercado,

abrindo

uma

janela

de

oportunidades

para

desenvolvimento de jogos, sendo o primeiro deles, o Odyssey 100, mostrado


na Ilustrao 2. Foi nesse perodo que os primeiros jogos que utilizavam
conceitos de Inteligncia Artificial surgiram. As primeiras entidades inteligentes
apareceram nos jogos Pursuit e Qwak, de 1974, onde o jogador deveria atirar
em alvos mveis (NERF US PLEASE, 2008), os quais utilizavam padres de
movimento. O mesmo processo foi utilizado no jogo Gun Fight, de 1975, e
tambm no jogo Space Invaders, de 1978.

15

Ilustrao 2: Odyssey 100


Fonte: (BATISTA et al., 2007)

J na dcada de 80, a Inteligncia Artificial comea a ser tratada, ao


mesmo tempo, como produto industrial das grandes empresas, como tpico
para estudos cientficos. Investimentos pesados na rea levaram as grandes
empresas a terem seu prprio grupo de pesquisa em I.A., e a utilizar sistemas
baseados nela. Tambm ocorreu uma retomada das pesquisas em relao s
redes neurais, que haviam sido deixadas de lado at ento. Esta retomada,
que aperfeioou os processos de reconhecimento de padres e aprendizado,
levou minerao de dados, amplamente utilizada atualmente. Em todos os
aspectos da I.A., a pesquisa passou a ser tratada rigorosamente como
pesquisa cientfica, sujeita a todos os mtodos de verificao de processos
para assegurar os resultados apresentados (RUSSELL e NORVIG, 2004).
Nesse mesmo perodo, o grande avano relacionado I.A. nos jogos foi
a utilizao de uma FSM (Finite State Machine, ou Mquina de Estados
Finitos). Ela descreve uma srie de aes passveis de serem realizadas pelo
personagem e em qual circunstncia ela deve ser executada. O jogo Pac-Man,
de 1980 (Ilustrao 3), ao se utilizar de uma mquina de estados para cada
inimigo, permitiu sua ao autnoma baseada na atual situao do jogador e
dos outros inimigos (NERF US PLEASE, 2008). No Pac-Man, os estados
possveis da mquina de estados dos fantasmas so: procurando o jogador,
perseguindo o jogador e fugindo do jogador.

16

Ilustrao 3: Pac-Man
Fonte: (GALLAGHER E RYAN, 2009)

Outro jogo que influenciou seus predecessores foi Sim City, de 1989
(Ilustrao 4), que introduziu um novo sistema de jogo, simulando sistemas
complexos, e utilizando tcnicas de IA para gerar respostas em tempo real s
aes do jogador (CHAMPANDARD, 2007).

Ilustrao 4: Sim City


Fonte: (PERALTY, 2007)

Na dcada de 1990, surgiu o conceito de Agentes Inteligentes, que se


utilizavam de vrias tcnicas de I.A. para resoluo de problemas, percepo
constante de determinado ambiente, entre outras aplicaes (Russell e Norvig,
2004). Foi nesse perodo que foi lanado o primeiro jogo do estilo RTS (Real

17

Time Strategy, ou Estratgia em Tempo Real), Herzog Zwei, de 1990, que j


apresenta algoritmos de path-finding1, porm de baixa qualidade (NERF US
PLEASE, 2008).
Tambm foi lanado o primeiro jogo do estilo FPS (First Person Shooter,
ou Tiro em Primeira Pessoa), Doom, de 1993, que utilizava, de uma forma mais
complexa, as mquinas de estados para o comportamento dos inimigos.
Em 1996 lanado o jogo Battlecruiser: 3000AD, cujos desenvolvedores
alegaram serem os primeiros utilizar a redes neurais 2 em um jogo, apesar de
este fato ter causado muitas controvrsias, pois muitos no acreditavam nessa
possibilidade, ou que o processo que se utilizava da tcnica seria muito simples
e com pouco impacto nos jogos (NERF US PLEASE, 2008).
A Inteligncia Artificial em jogos de tiro em primeira pessoa tomou um novo
rumo aps o lanamento do jogo Half-Life de 1998 (Ilustrao 5), que
aperfeioou muito os processos das mquinas de estados, o que tornou o jogo
mais realista que os seus concorrentes, fazendo com ele fosse aclamado pela
crtica como melhor jogo do ano e tambm melhor Game AI (jogo com tcnicas
robustas de IA) at ento (NERF US PLEASE, 2008).

Ilustrao 5: Half-Life
Fonte: (GAMESPOT, 2009)

1 So algoritmos especficos que buscam um caminho entre dois pontos de um


cenrio
2 Redes neurais so sistemas computacionais estruturados numa aproximao
computao baseada em ligaes. Ns simples so interligados para formar uma rede
de ns.

18

Atualmente, os campos de aplicabilidade da IA so muito extensos e


possuem muitos sub-campos (RUSSELL e NORVIG, 2004), mas algumas
reas despertam maior interesse da comunidade cientfica e, com isso,
adquirindo um maior espao para desenvolvimento de novas tecnologias e
aplicaes.
O Remote Agent da NASA foi o primeiro programa de planejamento
autnomo a ser responsvel pelo controle das operaes de uma nave
espacial, realizando a deteco de problemas, diagnsticos e recuperao
desses problemas na medida em que ocorriam (RUSSELL e NORVIG, 2004).
O sistema ALVINN foi responsvel por controlar um carro, mantendo-o
na pista, atravs de um percurso desconhecido, por 98% do tempo, numa
distancia de 4600 km (RUSSELL e NORVIG, 2004). Ele recebe informaes de
cmeras de vdeo, analisa essas informaes e gera respostas compatveis
com a situao, guiando o carro a partir delas e tambm de um histrico de
outros treinamentos.
A I.A. tambm vem sendo aplicada na rea mdica, sendo que
programas de diagnstico foram responsveis por executar tarefas no nvel de
um mdico especialista em vrias reas da medicina (RUSSELL e NORVIG,
2004).
No campo dos jogos, em 1997, o Deep Blue da IBM se tornou o primeiro
sistema computacional a derrotar o campeo mundial de xadrez, o enxadrista
Garry Kasparov numa partida de exibio (RUSSELL e NORVIG, 2004).
Em 2000, foi lanado o jogo Total War, que, apesar de no apresentar
avanos em relao a tcnicas de IA, introduziu uma nova forma de utilizao,
controlando o comportamento e as respostas de centenas de unidades ao
mesmo tempo (CHAMPANDARD, 2007), o que no havia acontecido at ento.
Tambm neste ano, foi lanado The Sims, um jogo de simulao da vida
cotidiana, que deu um grande passo, desenvolvendo a IA nos personagens,
que apresentavam comportamentos mais realistas, desejos e escolhas no
decorrer do jogo (CHAMPANDARD, 2007).
O jogo Black and White, de 2001 (Ilustrao 6), deu mais um passo no
avano da Inteligncia Artificial nos jogos. Alm de usar mquinas de estados e
processos puramente matemticos para controle das vilas no jogo, a parte com
maior impacto foi a criatura, que o jogador pode, atravs de suas aes, moldar

19

sua personalidade, tornando-a uma criatura pacfica ou num monstro malfico,


destruindo tudo a sua frente.
Este processo o conjunto de vrias tcnicas, como, por exemplo, um
sistema de valores simblicos atribudos a cada objeto, aliado a um processo
baseado em regras, do a criatura informaes sobre o objeto. Uma rvore de
deciso foi usada para representar a opinio da criatura sobre algum objeto, e
para os desejos da criatura, foram utilizadas redes neurais. Mas seu uso no
se restringiu apenas criatura, e est presente em cada personagem do jogo
(Molyneux, 2001). Essas tcnicas, aplicadas onde so mais relevantes, tornam
o processo mais realista. O jogo provou que o aprendizado em jogos uma
tecnologia legtima para os jogos de mercado.

Ilustrao 6: Black & White


Fonte: (MOLYNEUX, 2001)

Em 2005, foi lanado o jogo F.E.A.R., que melhorou consistentemente os


processos de resposta a eventos em tempo real utilizados pelos jogos at
ento. A partir desses melhoramentos, movimentos em esquadro se tornaram
mais intuitivos e realistas (CHAMPANDARD, 2007).
O jogo de Tiro em Primeira Pessoa Left 4 Dead, de 2008 (Ilustrao 7),
utilizou tcnicas de I.A. de uma maneira nova, gerando inimigos e desafios
baseando-se na atual situao do jogador, tornando-o mais fcil, ou mais difcil,
dependendo do desempenho do jogador (CHAMPANDARD, 2007).

20

Ilustrao 7: Left 4 Dead


Fonte: (POSEY, 2008)

A Tabela 1 mostra um resumo da evoluo da Inteligncia Artificial em


jogos eletrnicos numa linha do tempo.
Tipo de I.A.

Jogo que a utiliza


Tnis para Dois Primeiro
eletrnico a ser desenvolvido

Sem IA

Padres de
Movimento

Finite State
Machines
(FSM)

Vrias Tcnicas

Ano do jogo
jogo

1958

Spacewar

Desenvolvido
como
demonstrao
de
capacidade
de
hardware
Pursuit e Qwak Atirar em alvos mveis

1961

Gun Fight
Space Invaders Clssico dos primeiros
consoles
Pac-Man Primeiro jogo a utilizar FSM

1975
1978

Sim City Primeiro simulador de cidades

1989

Herzog Zwei Primeiro jogo de Tiro em


Primeira Pessoa Utiliza algoritmo de
Path-finding

1990

Doom Mquinas de Estados mais


Complexas
Battlecruiser 3000AD Utiliza Redes
Neurais
Half-Life Jogo do ano Melhor Game
AI
do
ano

Aperfeioou
consideravelmente as tcnicas de

1993

1974

1980

1996
1998

21

mquinas de estado
Total War Controle de centenas de
unidades ao mesmo tempo em tempo
real
The Sims Simulao de personalidade
realizada por IA
Black and White Utilizao de vrias
tcnicas de IA para controle realista de
comportamento e aprendizado de
personagens
F.E.A.R. IA responsvel por controle de
comandos para aes em esquadro
Left 4 Dead IA utilizada para gerar
desafios em tempo real baseados no
desempenho do jogador

2000
2000
2001

2005
2008

Tabela 1: Linha do tempo da Inteligncia Artificial em Jogos

2.3 Concluso
Este captulo abordou, de forma simplificada, a evoluo da Inteligncia
Artificial com o passar do tempo, alm da evoluo de sua utilizao em jogos
eletrnicos. O prximo captulo tratar especificamente dos Algoritmos
Genticos, fazendo um breve histrico e, em seguida, descrevendo seu
funcionamento.

22

3 ALGORITMOS GENTICOS
Neste captulo abordado um breve histrico dos Algoritmos Genticos,
assim como uma descrio de seus principais conceitos.
3.1 Histrico
O desenvolvimento dos estudos de Charles Darwin sobre a evoluo
das espcies, apresentados em 1859, no qual o indivduo mais bem adaptado
ao meio tem maiores possibilidades de sobrevivncia, resultaram no conceito
de que as diferentes formas de vida so passveis de adaptaes, atravs de
mudanas genticas gradativas. Estas mudanas ocorrem devido influncia
do ambiente em que vive o indivduo.
Tendo como referncia estes conceitos apresentados por Darwin, no
inicio, as pesquisas relacionadas aos algoritmos evolutivos foram realizadas
por bilogos evolucionistas que criaram representaes programadas em
computadores para a modelagem de aspectos evolucionrios dos animais
(MARCZYK, 2004). Baseando-se na observao dos organismos vivos, que
so grandes solucionadores de problemas, possuindo uma incrvel capacidade
de adaptao ao ambiente imposto a eles, houve um grande aprofundamento
das pesquisas de sistemas de aprendizado.
O estudo dos algoritmos evolutivos baseou trs reas diferentes de
pesquisa: a programao evolucionria, estratgia evolucionria e Algoritmos
Genticos (GROSKO et al., 2009). Todas estas reas possuem uma mesma
base de conhecimento. Porm, se diferenciam em detalhes nos processos e
em seu escopo.
Os primeiros estudos na rea de sistemas adaptativos complexos foram
realizados por Nils Aall Barricelli na dcada de 50. Porm, seu trabalho foi
pouco conhecido. O mesmo aconteceu com o trabalho do australiano Alex
Fraser, tambm na dcada de 50. A partir destes primeiros estudos, pesquisas
sobre simulaes do processo evolutivo se tornaram mais populares, mas
apenas no final da dcada de 60 e incio da dcada de 70, que o processo de
evoluo artificial se tornou amplamente reconhecido, atravs dos estudos de
Ingo Rechenberg e Hans-Paul Schwefel, os quais conseguiram resolver

23

problemas complexos atravs de processos de simulao evolutiva. Porm,


estes processos que foram utilizados pouco se assemelhavam aos Algoritmos
Genticos (MARCZYK, 2004).
Todos os estudos supracitados se utilizavam de mquinas de estados
finitos, que eram adaptadas durante o processo para melhor adequao ao
problema. Somente na dcada de 70, com o trabalho de John Holland,
considerado o criador dos Algoritmos Genticos, foi criada a base para futuras
pesquisas na rea. Estes estudos foram focados na adaptao dos seres vivos,
no processo evolutivo, como uma caracterstica que melhor se adapta ao
ambiente passada adiante. Holland foi o primeiro a introduzir os processos de
crossover, que cria um novo indivduo com partes definidas dos seus
geradores, e mutao, que altera um valor aleatrio dentro do indivduo.
Contrastando com o padro de pesquisa utilizado, que definia o uso de
algoritmos para resoluo de problemas especficos, Holland queria estudar os
processos de adaptao na natureza e adaptar estes processos realidade
computacional (MITCHELL, 1998). O primeiro framework que realizava estes
processos foi nomeado Hollands Schema Theorem.
Utilizando como base suas pesquisas anteriores, John Holland e
companheiros da Universidade de Michigan, publicaram o livro Adaptation in
Natural and Artificial Systems, em 1975, que efetivamente introduziu o conceito
de sistemas digitais adaptativos utilizando mutao, crossover e seleo
natural, os quais sero descritos em detalhe posteriormente, para simular
processos biolgicos, e utiliz-los para resoluo de problemas, sendo esta
uma grande inovao para o perodo. Holland tambm foi o primeiro a buscar o
desenvolvimento de uma base terica mais firme para as futuras pesquisas na
rea de Algoritmos Genticos.
Neste mesmo ano, o trabalho de Kenneth De Jong estabeleceu o
potencial dos Algoritmos Genticos na resoluo de testes, introduzindo rudos
e descontinuidades aos parmetros das buscas (MARCZYK, 2004).
Em meados da dcada de 80, os Algoritmos Genticos j eram utilizados
em vrios tipos de aplicaes, como problemas matemticos abstratos at
problemas de Engenharia mais tangveis, como controle de fluxo, deteco de
padres e classificao (MARCZYK, 2004).

24

No final da dcada de 80, David E. Goldberg, outro precursor dos


Algoritmos Genticos atuais, descreve o mesmo como uma pesquisa baseada
no mecanismo de seleo e gentica natural objetivando a otimizao.
Segundo ele, os Algoritmos Genticos so superiores aos mtodos clssicos
de otimizao descritos na literatura, pois se apoiando no fato de que eles
utilizam codificao dos parmetros e no dados reais, que fazem busca numa
populao e no num nico ponto, que usam a informao de aptido e no
outro conhecimento auxiliar e tambm que usam regras de transio
probabilsticas e no determinsticas.
O processo de evoluo acontece por dois mtodos: pela seleo
natural, que faz com que os as melhores qualidades dos indivduos, as quais
so selecionadas em relao ao problema em mos, sejam repassadas aos
seus descendentes, e a reproduo em si, que garante a mistura dos genes
dos indivduos envolvidos, resultando num indivduo diferente e possivelmente
melhor que seus ancestrais (HOLLAND, 2009).
Tendo estas caractersticas em vista, seu objetivo era emular estes
processos da melhor maneira possvel, fazendo com que este fosse realizado
atravs

de

computadores

de

forma

consistente,

que

facilitaria

consideravelmente a soluo de problemas, e sua aplicao a qualquer tipo de


problema, independentemente de sua complexidade (HOLLAND, 2009).
Atualmente, computao evolutiva um campo muito amplo, e os
Algoritmos Genticos passaram tambm a serem aplicados para resoluo de
problemas mais comuns, como previses de bolsas, planejamento de vos em
aeroportos, design de microchips, entre vrias outras aplicaes, no havendo
praticamente nenhuma rea que no se utilize desses processos (MARCZYK,
2004).

3.2 Conceitos

25

O processo de um algoritmo gentico comea com uma populao


formada por uma lista aleatria de possibilidades, chamadas de indivduos ou
cromossomos. Estes indivduos podem ser convertidos de sua notao original,
que uma representao de uma possvel soluo do problema, seja ela boa
ou ruim, para notao binria, que utilizada pelo algoritmo, como mostrado na
Ilustrao 8, podendo tambm ser utilizados em sua notao original. O
nmero de bits dos indivduos deve ser o suficiente para que as possveis
solues possam ser convertidas novamente notao inicial, como afirma
(BUCKLAND, 2002): Uma coisa importante que cada cromossomo seja
codificado de forma que o conjunto de bits possa ser decodificado para
representar uma soluo do problema em questo.

Ilustrao 8: Representao de um indivduo na notao binria

Aps a gerao da populao inicial, uma parte dela selecionada para


reproduo e, conseqentemente, para a criao de uma nova gerao. Esta
seleo se d atravs de uma funo de aptido ou funo de fitness, que
verifica o quo prximo do resultado desejado est aquele indivduo, atribui um
valor, ou nota, ao indivduo, baseada nesse fator. O grupo que participar da
reproduo chamado de grupo gerador, cujos indivduos so selecionados
baseado na nota resultante da funo de fitness. Notas melhores aumentam a
probabilidade de um indivduo participar do grupo gerador (RUSSELL e
NORVIG, 2004).
Depois de selecionado o grupo gerador, os indivduos so divididos em
pares, e, para cada par, realizada uma troca de parte dos bits de cada
indivduo. Esta troca denominada crossover (BUCKLAND, 2002). O
crossover realizado seguindo uma taxa de crossover, que uma
porcentagem a qual o crossover ser executado, definida pelo usurio. Ela
define a porcentagem de indivduos da populao sofrero crossover.
Seguindo uma posio aleatria, todos os bits direita daquele ponto sero

26

trocados. Considerando-se a posio do crossover igual a 3. A reproduo se


d como mostra a Ilustrao 9:

Ilustrao 9: Processo de crossover

O resultado da operao de crossover so dois indivduos novos, que


carregam caractersticas dos indivduos geradores, e faro parte da nova
gerao.

Quando

os

indivduos

geradores

so

muito

diferentes,

os

descendentes resultantes da operao de crossover podem ser totalmente


diferentes dos pais, o que demonstra que, no incio do processo, as primeiras
execues de crossover daro saltos maiores, enquanto que mais adiante no
processo, devido seqncia de reprodues, os descendentes tendem a ser
mais parecidos com seus geradores, como afirma (RUSSELL e NORVIG,
2004):
Em geral, a populao bastante diversa no inicio do
processo, e assim o crossover (como a tmpera simulada)
freqentemente executa grandes passos no espao de estados
bem no inicio do processo de busca e passos menores adiante,
quando a maioria dos indivduos bastante semelhante.
(RUSSELL e NORVIG, 2004, p.116)

Aps o crossover, pode ocorrer o processo de mutao dos indivduos,


onde um bit do indivduo invertido (BUCKLAND, 2002), como mostra a
Ilustrao 10. A freqncia na qual as mutaes so realizadas baseada na
taxa de mutao, esta sendo uma porcentagem da populao que sofrer a
mutao, tambm definida pelo usurio.

Ilustrao 10: Processo de mutao

27

Aps a gerao dos descendentes, feita uma avaliao para verificar


se algum dos novos indivduos faz parte da soluo desejada. Caso ocorra, o
processo finalizado, retornando este indivduo como soluo. O processo
tambm pode ser encerrado caso o tempo limite definido tenha decorrido. Caso
no haja soluo, os indivduos da populao inicial menos propensos a ser a
soluo do problema so substitudos pela nova gerao. Esta nova gerao
passa pela funo de fitness, onde so atribudas suas notas, e o processo de
reproduo recomea (BUCKLAND, 2002).
O fragmento de pseudocdigo na Listagem 1 representa um algoritmo
gentico. Apesar de ser uma representao relativamente simples de um
algoritmo gentico, ela demonstra com objetividade a organizao e execuo
dos passos descritos anteriormente. Porm, neste caso, ele apresentado com
uma pequena diferena, a reproduo gera apenas um descendente, como
afirma (RUSSEL e NORVIG, 2004): [...] em sua verso mais popular, cada
unio de dois pais produz apenas um descendente, e no dois.
funo ALGORITMO-GENTICO(populao, FN-FITNESS) retorna um indivduo
entradas: populao, um conjunto de indivduos
FN-FITNESS, uma funo que mede a adaptao de um indivduo
repita
nova_populao conjunto vazio
para i 1 at TAMANHO(populao) faa
x SELEO-ALEATORIA(populao, FN_FITNESS)
y SELEO-ALEATORIA(populao, FN_FITNESS)
filho REPRODUZ(x,y)
se (pequena probabilidade aleatria) ento
filho MUTAO(filho)
adiciona filho a nova_gerao
populao nova_populao
at algum indivduo estar adaptado o suficiente ou at ter
decorrido tempo suficiente
retornar o melhor indivduo de populao, de acordo com FN-FITNESS
---------------------------------------------------------------funo REPRODUZ(x,y) retorna um indivduo
entradas: x,y, indivduos pais
n COMPRIMENTO(x)
c nmero aleatrio de 1 a n
retornar CONCATENA(SUBCADEIA(x,1,c),SUBCADEIA(y,c+1,n))

Listagem 1: Representao em pseudocdigo de um algoritmo gentico


Fonte: (RUSSEL e NORVIG, 2004)

O algoritmo recebe como parmetros a populao inicial, gerada a partir


de possveis solues do problema, e a funo de fitness FN-FITNESS, que ir
definir, atravs de um valor, a proximidade do indivduo em relao soluo.

28

Inicialmente ele cria uma populao vazia, nomeada nova_populao,


que ir receber os indivduos gerados pela reproduo. Em seguida, so
selecionados dois indivduos, x e y, aleatoriamente, usando como base a
funo de fitness, que faro parte da reproduo e geraro um novo indivduo
denominado filho. Na funo de reproduo, o tamanho do indivduo x
armazenado na varivel n, e, logo aps, gerado um valor aleatrio entre 1 e
n, definido como c. O filho gerado concatenando os valores do indivduo x
das posies 1 at c e os valores do indivduo y das posies c+1 at n,
gerando uma seqncia de valores totalmente nova. Alm da reproduo,
dependendo da taxa predefinida, realizada a mutao no filho, sendo, em
seguida, adicionado nova_populao. Isto feito at que o limite da
populao inicial seja atingido.
Os passos descritos anteriormente so repetidos at que algum
indivduo da populao esteja suficientemente prximo da soluo proposta,
at que um tempo definido tenha decorrido ou at que o nmero limite de
iteraes definido ocorra. O algoritmo ento retorna o indivduo mais prximo
da soluo, baseando-se na funo de fitness FN-FITNESS.
Com os conceitos sobre o funcionamento dos Algoritmos Genticos
abordados neste captulo, sero feitos em seguida dois estudos de caso,
descrevendo a utilizao dos Algoritmos Genticos em navegao autnoma
de personagens e controle de comportamento dos mesmos.

4 TRABALHOS RELACIONADOS
Para exemplificar os conceitos apresentados anteriormente, se faz
necessria a demonstrao de possveis aplicabilidades dos Algoritmos

29

Genticos em jogos eletrnicos. Existem algumas aplicaes dos Algoritmos


Genticos em jogos, das quais navegao autnoma e controle de
comportamento de personagens so os temas destes trabalhos. So
demonstrados o funcionamento do processo de navegao autnoma de
personagens, tendo um algoritmo gentico como responsvel pelo controle dos
mesmos, e uma comparao com um mtodo de navegao padro, no caso,
a busca em rvore de deciso, que ser descrito a seguir. Em seguida feita
a descrio do uso de Algoritmos Genticos atuando no controle de
personagens em batalhas.
O primeiro jogo foi realizado por Appolinario e Pereira (2007) para
exemplificar o uso de Algoritmos Genticos em jogos e, ao mesmo tempo,
compar-lo a um mtodo de busca mais comum, no caso, a busca em rvore
de deciso.
O segundo jogo foi um jogo de ao desenvolvido por Silva et al. (2008)
cujo objetivo era apresentar os Algoritmos Genticos como possibilidade para
controle de comportamento em personagens de jogos como uma nova opo
no desenvolvimento de jogos.
4.1 Navegao Autnoma
Navegao autnoma se d quando um agente, utilizando como base
informaes como o local pelo qual transitar, a extenso deste local e
possveis obstculos, consegue, sem interferncia humana, partir de um local
qualquer e atingir um outro local definido como objetivo.

4.1.1 Busca em rvores de Deciso


Uma busca em rvore de deciso busca o resultado expandindo, a partir
de um ponto inicial que denominado n raiz da rvore, todas as
possibilidades do problema gerando novos ns, que expandem todas as

30

possibilidades em novos ns, sendo cada n uma possibilidade do problema,


fazendo assim at que sejam cobertas todas as possibilidades do problema e o
resultado seja alcanado. A Ilustrao 11 mostra a representao grfica de
uma rvore. Neste modelo, a busca se torna custosa, pois ela expande sempre
todos os ns possveis, fazendo com que o tempo de busca seja maior. A
soluo para melhoria do processo que foi utilizada foi a busca pela melhor
escolha (SHI, 2006).
Na busca por melhor escolha (Best-First Search) so expandidos os ns
e, em seguida, escolhido o n que est mais prximo do objetivo final,
baseando-se numa funo heurstica que estima a distancia do n at o
objetivo. Com a expanso de menos ns, h um ganho de desempenho no
algoritmo.

Ilustrao 11: Representao de uma rvore de deciso


Fonte: (COMPUTAO, 2009)

4.1.2 Descrio do problema


O objetivo principal deste exemplo que o personagem, no caso um
tanque, partindo de qualquer ponto de um mapa (ilustrao 12), possa, atravs
do uso de Algoritmos Genticos, encontrar o ponto de chegada desviando de
obstculos que se apresentam pelo mapa, os quais so posicionados de forma
aleatria (APPOLINARIO e PEREIRA, 2007).

31

Ilustrao 12: Visual grfico do mapa


Fonte: (APPOLINARIO e PEREIRA, 2007)

4.1.3 Representao do problema


Inicialmente considerado um mapa representado atravs de uma
matriz 10x10 posies, como mostra a Ilustrao 13. Como ponto de partida
ser considerada a coordenada (0,0), no canto esquerdo superior do mapa, e o
ponto de chegada se situar na coordenada (9,9), no canto direito inferior do
mapa. Para uso nos processos, valores so atribudos s posies do mapa
para definir sua caracterstica, sendo atribudo o valor 0 s posies livres, o
valor -1 aos obstculos posicionados no mapa, o valor -9 para o ponto de
partida e o valor 9 para o ponto de chegada (APPOLINARIO e PEREIRA,
2007).

32

Ilustrao 13: Matriz do mapa


Fonte: (APPOLINARIO e PEREIRA, 2007)
Nesta aplicao, conforme Appolinario e Pereira (2007), foram usados
cromossomos que continham entre 60 e 80 alelos, sendo estes subdivises de
um cromossomo, os quais definem uma caracterstica do mesmo, e variando
neste caso com o tamanho de 2 bits, sendo 00 para movimento para cima, 01
para a esquerda, 10 para baixo e 11 para a direita. Uma verificao realizada
durante o processo para analisar se o objeto realizou um movimento vlido, ou
seja, se ele se movimentou para fora do mapa, ou se atravssou uma posio
ocupada por uma obstculo e realizar o clculo do fitness. Caso o cromossomo
possua algum movimento invlido dentro de sua estrutura, o valor de seu
fitness reduzido de acordo com essa falha. Alm desse fator, tambem
levado em considerao para atribuio do fitness quantos movimentos vlidos
esto presentes naquele cromossomo, atravs de um contador, e tambm a
proximidade da ltima posio do cromossomo em relao ao ponto de
chegada (APPOLINARIO e PEREIRA, 2007).
Aps testes preliminares, Appolinario e Pereira (2007) verificaram que a
taxa de acertos do algoritmo atuando no mapa com 10x10 unidades foram mais

33

altas quando o nmero de indivduos da populao foi 80, o nmero de


geraes a ser criadas foi de 100 e o tamanho do cromossomo foi estabelecido
com 70 bits. Os nmeros base para a quantidade de obstculos variou entre
10, 18 e 34 obstculos no mapa. Os resultados tiveram valores mdios para
tempo de execuo e nmero de movimentos iguais a 0,21 segundos e 22
passos, respectivamente.
4.1.4 Resultados e Comparao
Os testes usados para comparao entre o uso de Algoritmos Genticos
e busca em rvore tomaram como base 3 mapas, representados por matrizes
10x10, 30x30 e 50x50 (APPOLINARIO e PEREIRA, 2007).
Para anlise posterior dos resultados, foram usados como base os
dados de tempo de execuo dos processos, tanto do algoritmo gentico
quando da busca em rvore, assim como o custo da soluo, sendo este custo
o nmero de passos contidos na soluo encontrada por ambos as tcnicas
(APPOLINARIO e PEREIRA, 2007).
O algoritmo gentico teve resultados piores do que a busca em rvore,
tendo a diferena de desempenho aumentada de acordo com o aumento de
blocos e obstculos no mapa, como mostra a Tabela 2:
Tamanho do
cenrio

Tempo do
AG

Tempo da
rvore

Custo do
AG

Custo da
rvore

10x10

0,21

0,1

20

15

30x30

0,35

0,1

151

103

0,59

0,3

428

292

50x50

Tabela 2: Tabela de dados comparativa


Fonte: (APPOLINARIO e PEREIRA, 2007)

Tanto nos cenrios de 10x10 unidades, quanto no de 30x30 unidades, o


desempenho da busca em rvore se manteve em 0,1 segundos, enquanto o
algoritmo gentico levou 0,21 no primeiro caso, e ainda mais no segundo, com
0,35 segundos. No cenrio com 50x50 unidades, a vantagem da busca em
rvore se mantm a frente, realizando o processo em 0,3 segundos, contra

34

0,59 do algoritmo gentico. Em relao ao custo, ou nmero de passos total da


soluo, o algoritmo gentico tambem teve desempenho pior, com custos
relativamente grandes em relao a busca em rvore, aumentando ainda mais
com o crescimento do cenrio, como mostrado na tabela 2.
As diferenas em relao aos dois mtodos fica mais evidente nos
grficos apresentados na Ilustrao 14.

Ilustrao 14: Grficos comparativos de desempenho


Fonte: (APPOLINARIO e PEREIRA, 2007)

Apesar de ter seu desempenho inferior ao da busca em rvore, o


algoritmo gentico conseguiu encontrar possveis resultados atingindo valores
mximos de 36, 270 e 750 passos para os mapas de 10x10 unidades, 30x30
unidades e 50x50 unidades, respectivamente, enquanto a busca em rvore
atingiu mximos de 44, 287 e 766 passos (APPOLINARIO E PEREIRA, 2007).
Para melhor se adaptar s mudanar de terreno, o nmero de alelos do
cromossomo, antes fixo, mostrou-se necessria a mudana desse valor para
flexibilizar os resultados, definindo que um cromossomo precisaria conter entre
30% e 35% da quantidade total de movimentos possveis de serem realizados
no mapa, como mostra a Ilustrao 14. Outra mudana importante realizada
por Appolinario & Pereira (2007) foi a de fixar a quantidade de cromossomos
utilizada pelo algoritmo, j que a mudana desse valor no trouxe variaes
significativas para os resultados dos testes. Tambm foi implementado elitismo,
com seu valor definido em 3%, para garantir que possveis solues timas no
sejam eliminadas de uma gerao para outra.
Tamanho do Mapa

Tamanho do cromossomo

35

10 x 10
30 x 30
50 x 50

70
540
1500

Tabela 3: Relao Tamanho do Mapa x Tamanho do Cromossomo


Fonte: (APPOLINARIO E PEREIRA, 2007)

Outro problema encontrado foi que as solues do algoritmo gentico,


em certos momentos, apresentava falhas e movimentos desnecessrios.
Porm, estas solues foram passadas adiante pois seu valor de fitness
sugeria que esta poderia ser uma soluo cabvel, como mostra a Ilustrao
15.

Ilustrao 15: Soluo encontrada com movimento desnecessrio


Fonte: (APPOLINARIO e PEREIRA, 2007)

Os Algoritmos Genticos se mostraram uma possvel soluo para o


problema de navegao em jogos eletrnicos, apresentando resultados
satisfatrios, alm de tempos de resposta rpidos. Porm, em comparao
com o mtodo de busca em rvore, seu desempenho foi consideravelmente
pior, tanto no tamanho das solues, quanto no tempo de execuo. Uma
possvel resposta para agilizao dos Algoritmos Genticos pode estar na
hibridizao, como afirma (APPOLINARIO e PEREIRA, 2007):

36
[...] pretende-se implementar um algoritmo hbrido, utilizando o
mtodo de busca em rvore para a gerao da populao
inicial em vez de ela ser gerada aleatriamente.
(APPOLINARIO e PEREIRA, 2007, p. 91)

4.2 Controle de Comportamento de Personagens


Neste tpico abordado o uso de Algoritmos Genticos no controle do
comportamento de personagens autnomos, explorando o jogo ltimo
Sobrevivente, descrito em Silva, Crocomo, e Andrade (2008).
4.2.1 Descrio do problema
O jogo analisado possui como cenrio uma arena (Ilustrao 16), onde o
jogador controla um cavaleiro e usando sua espada, deve se defender contra o
ataque de 4 outros cavaleiros controlados pelo algoritmo, denominados NPCs
(Non-Playable Characters ou Personagens No Jogveis), e ao final, eliminlos (SILVA et al., 2008).
4.2.2 Representao do Problema
A arena adotada como cenrio para o jogo, possui propores de
570x600 pixels. A movimentao, tanto do jogador quando dos NPCs, se d em
8 direes, vertical para cima e para baixo, horizontal para a esquerda e a
direita e para as 4 diagonais. Cada cavaleiro possui uma quantidade fixa de
vidas e cada ataque realizado remove de maneira fixa um quarto do valor atual
da vida do outro cavaleiro (SILVA et al., 2008).

37

Ilustrao 16: Tela do jogo O Ultimo Sobrevivente


Fonte: (SILVA et al., 2008)

Os comportamentos so adotados pelos NPCs de acordo com a


situao atual do jogo. So trs possveis valores para o comportamento, o
valor 0 faz com que o NPC fuja do jogador, o valor 1 faz com que o NPC v em
direo a um aliado e o valor 2 faz com que o NPC persiga e ataque o jogador.
Duas informaes servem de base para definir o comportamento do
personagem, o nmero de aliados presentes atualmente no mapa e a
quantidade de energia restante. Os nveis de vida podem variar de 0 at 2,
onde 0 representa o nvel mais baixo de vida, 1 representa um nvel
intermedirio e 2 representa o nvel mais alto de vida do NPC ou Jogador. A
relao entre estas informaes mostrada na tabela 4.
Vida
0
0
0
0
1
1
1
1
2
2
2
2

Amigos
0
1
2
3
0
1
2
3
0
1
2
3

Cromossomo (Sada)
2
1
2
2
0
0
1
0
2
1
2
1

Tabela 4: Relao Dados x Comportamentos


Fonte: (SILVA et al., 2008)

38

Se um NPC, por exemplo, tiver seu valor de vida com valor 0 e no


houver mais nenhum aliado, a ao que ser realizada por esse NPC ser a de
perseguir e atacar o jogador.
Neste caso, para formao dos cromossomos foi utilizado um vetor
numrico de 12 posies, variando entre 0 e 2, chegando a um total de
531.441 possveis cromossomos. O cromossomo representa as possveis
aes dos NPCs, sendo assim, cada cromossomo pode ser considerado como
um personagem nesta situao. Para a funo de fitness o padro utilizado
para definir as notas dos indivduos foi de 5 pontos a mais para cada ataque
realizado e 2 pontos a cada 10 segundos nos quais o NPC esteja vivo. Em
contrapartida, 3 pontos so removidos da nota do indivduo caso ele seja
atingido pelo jogador. A tabela a seguir mostra os dados relativos a uma
populao qualquer:
Populao
Indivduo 1
Indivduo 2
Indivduo 3
Indivduo 4

Cromossomo
021002010001
010202210101
000000000000
112110111111

Aptido
20
12
5
11

Tabela 5: Informaes de uma possvel populao


Fonte: (SILVA et al., 2008)

Este jogo, assim como o estudo anterior, utiliza o elitismo para


resguardar, neste caso, apenas a melhor soluo obtida em uma gerao e
acelerar a convergncia do algoritmo, pois h um grande nmero de
possibilidades e uma populao pequena (SILVA et al., 2008).
O jogo utiliza um processo de crossover um pouco diferente, chamado
crossover multiponto, o qual define no s um, mas vrios pontos de corte ao
longo dos cromossomos selecionados, ocorrendo uma troca maior de
informaes para gerao do novo indivduo, como mostrado na ilustrao
17. A taxa de mutao foi fixada em 5% (SILVA et al., 2008).

39

Ilustrao 17: Crossover Multiponto


Fonte: (SILVA et al., 2008)

4.2.3 Resultados
O comportamento dos NPCs evoluiu de acordo que novas partidas
foram sendo realizadas, e tambm de acordo que o jogador assimilava suas
estratgias. Dois experimentos foram realizados, cada um contendo 80
partidas. No primeiro, as notas atribudas aos indivduos da gerao inicial
foram muito boas, porm de acordo que o jogador assimilava as estratgias
utilizadas, as notas sofreram uma queda. Em seguida, j se adaptando s
novas tcnicas do jogador, as notas voltaram a subir. O saldo final do jogador
foi de 30 derrotas contra 50 vitrias, sendo muitas delas em seqncia. A
Ilustrao 18 demonstra esta variao nas notas a cada gerao do algoritmo.

Ilustrao 18: Grfico Aptido x Gerao do primeiro experimento


Fonte: (SILVA et al., 2008)

40

No grfico, cada linha representa um personagem, apontando a variao


dos valores de aptido a cada gerao do algoritmo, esta sendo baseada nos
resultados do primeiro experimento.
O segundo experimento teve resultados mais balanceados, com o
algoritmo se adaptando ao comportamento do jogador com maior velocidade,
assim como as repostas do jogador, o que manteve as notas numa variao
menor. O saldo do jogador no segundo experimento foi de 54 derrotas e 26
vitrias que, diferentemente do primeiro experimento, foram distribudas
uniformemente entre as partidas. A Ilustrao 19 mostra o equilbrio que se deu
durante o experimento.

Ilustrao 19: Grfico Aptido x Gerao do segundo experimento


Fonte: (SILVA et al., 2008)

Assim como no primeiro, o grfico possui quatro linhas, uma para cada
NPC, mostrando o desempenho dos mesmos cada gerao do experimento
dois, neste caso.
Alm dos 3 comportamentos bsicos definidos anteriormente, os NPCs
em alguns momentos definiam estratgias inesperadas, pois no faziam parte
da programao inicial. Uma estratgia muito eficaz utilizada pelos NPCs foi a
de se agruparem para realizar um ataque concentrado ao jogador, como
mostra a Ilustrao 20.

41

Ilustrao 20: Ataque em grupo


Fonte: (SILVA et al., 2008)

Ao adaptar a dificuldade nos jogos, alterando seu comportamento de


acordo com a habilidade do jogador, mantido o interesse no jogo, pois o
adversrio sempre apresenta um novo desafio, uma nova estratgia, que faz
com que o jogador tenha de se esforar mais para derrotar seu oponente.
4.3 Concluso
Este captulo abordou dois trabalhos relacionados ao uso de algoritmos
genticos em jogos, o primeiro, sobre navegao autnoma e o segundo, sobre
controle de comportamento em personagens.
No prximo captulo ser feito um estudo de caso, propondo uma
aplicao de algoritmos genticos em um jogo que no o utiliza.

5 ESTUDO DE CASO

42

Neste captulo proposta a utilizao de um algoritmo gentico a um


jogo que no o utiliza originalmente, para melhorar o desempenho dos NPCs
do jogo. So definidos apenas os parmetros iniciais necessrios para o
funcionamento do algoritmo.
5.1 Aplicao proposta
O jogo utilizado como base para esta proposta ser o jogo Pac-Man,
aplicando

algoritmo

gentico

nos

fantasmas,

controlando

seu

comportamento. O objetivo do jogo recolher todas as moedas, que do


pontos ao jogador, presentes no mapa, sem que os quatro fantasmas, que so
os inimigos, o destrua, sendo esta destruio considerada apenas pelo toque
do fantasma no personagem e vice-versa, caso o jogador possua o Power-up,
que permite ao jogador destruir os fantasmas por um curto perodo de tempo.
Ser considerado um mapa 17x24 unidades, composto por paredes, que
so os obstculos, moedas e Power-ups. Os valores atribudos no mapa para
cada objeto so: -1 para obstculos, 0 para espaos vazios, 2 para espaos
vazios com moedas, 3 para espaos vazios com Power-ups e 1 para a posio
inicial do Pac-Man.

Ilustrao 21: Pac-Man


A movimentao de todos os personagens se d apenas nos sentidos
vertical e horizontal, sem movimentos diagonais. Para o comportamento dos

43

fantasmas foram definidos dois possveis valores: 0 faz com que o fantasma
persiga o jogador em situao normal e o valor 1 faz com que o fantasma fuja
do jogador quando este tiver adquirido um Power-up, como mostra a Tabela 6.
Situao do jogador
Sem Power-up
Com Power-up

Resposta do fantasma
0
1

Tabela 6: Sada de comportamento dos fantasmas

A populao, neste caso, ser composta de apenas 4 indivduos, um


para cada fantasma do jogo. Cada cromossomo ser representado inicialmente
por um vetor de 8 posies, sendo que cada posio do mesmo pode variar
entre 0 e 1, conforme definido anteriormente e demonstrado na Tabela 6.
Populao
Indivduo 1
Indivduo 2
Indivduo 3
Indivduo 4

Composio do cromossomo
01001011
01011100
11010011
01011010

Tabela 7: Tabela de composio de indivduos

A estratgia de fitness adotada, neste caso, atribui mais 5 pontos


funo de avaliao do cromossomo caso o fantasma consiga destruir o
jogador, e menos 3 pontos caso o jogador, possuindo o Power-up, consiga
destruir o fantasma. A taxa de mutao, inicialmente, ser definida em 3%.
Tambm ser aplicado o elitismo, neste caso, repassando apenas um
indivduo, devido pequena quantidade de indivduos da populao. O
processo de crossover utilizado ser o padro, gerando apenas um indivduo.
5.2 Concluso
Aps ter sido analisado cuidadosamente o jogo Pac-Man, este estudo
teve a inteno de propor a utilizao do Algoritmo Gentico, definido e
demonstrado anteriormente, neste jogo. So propostos valores dos parmetros
necessrios para o funcionamento do algoritmo.

44

Espera-se que, com a utilizao dos Algoritmos Genticos, onde os


resultados obtidos no so totalmente controlveis, possa-se obter um grau de
dificuldade maior em relao ao comportamento dos NPCs, assim como uma
adaptao maior s estratgias utilizadas pelo jogador, aumentando o realismo
do jogo, tentando obter resultados satisfatrios, como no trabalho de
Appolinario e Pereira (2007) relatado no item 4.2.
Tambm espera-se que este estudo de caso possa ser utilizado
posteriormente em outros trabalhos, e possivelmente ser desenvolvido, para
que seja melhor adaptado de forma que possa ter sua aplicabilidade testada e
comprovada.

CONSIDERAES FINAIS

45

Com base numa pesquisa bibliogrfica, explorou-se um histrico da


Inteligncia Artificial com seu foco direcionado para jogos eletrnicos. Tambm
foi possvel desenvolver uma descrio do surgimento e os avanos realizados
na rea dos Algoritmos Genticos, principalmente baseados na teoria
darwiniana da evoluo das espcies, onde o indivduo mais bem adaptado
tem mais possibilidade de sobrevivncia, assim como o desenvolvimento de
seus conceitos e processos.
As duas aplicaes descritas neste trabalho mostram que os Algoritmos
Genticos no contexto de jogos eletrnicos ainda tm seu uso restrito, pois
como ilustra o primeiro estudo, eles no obtiveram boa performance, o que
muitas vezes necessrio. J no contexto de controle de comportamento, os
algoritmos se mostraram uma boa soluo, pois se adaptam bem ao ambiente
de forma dinmica e tambm encontram solues inesperadas, o que se
assemelha em muitas vezes ao prprio comportamento humano, mantendo
assim o nvel de diverso e adicionando um grau a mais de realismo aos jogos.
Alicerando um estudo de caso no sucesso obtido pelo uso dos
Algoritmos Genticos para controle de comportamento de personagens em
jogos, conforme descrito anteriormente, foi proposta uma aplicao do
algoritmo em um contexto onde este no foi utilizado originalmente, no caso, o
jogo Pac-Man, fazendo o controle de comportamento dos personagens
considerados inimigos dentro jogo. Tendo sido definidos os parmetros bsicos
e as caractersticas necessrias para o desenvolvimento e funcionamento do
algoritmo, espera-se que possa ser obtido um resultado semelhante ao citado
anteriormente, aumentando a dificuldade do jogo, e aumentando o realismo do
comportamento dos personagens.
Este trabalho traz ento como contribuio, uma aproximao inicial
utilizao dos Algoritmos Genticos em jogos eletrnicos, abrindo caminho
para futuros trabalhos nessa rea, seja na explorao terica aprofundada,
seja na continuao da explorao de estudos de caso ou at mesmo na
implementao de personagens inteligentes.
6 REFERENCIAS BILBIOGRFICAS

46

BATISTA, M. S., LIMA, S, M B, QUINTAO, P. L., DIAS, L., BATISTA, T. S. Um


Estudo Sobre a Histria dos Jogos Eletrnicos. Juiz de Fora: Faculdade
Metodista Granbery, 2007.
BUCKLAND, M. AI Techniques for Game Programming. Cincinnati, Ohio:
Premier Press, 2002.
CHAMPANDARD, A. J. Top 10 Most Influential AI Games. Disponvel em
AiGameDev.com: http://aigamedev.com/reviews/top-ai-games/. Acesso em 22
de Julho de 2009.
GALLAGHER, M., E RYAN, A. Learning to Play Pac-Man: An Evolutionary,
Rule-based
Approach.
Disponvel
em
http://www.itee.uq.edu.au/~marcusg/papers/CEC2003-1432.pdf. Acesso em 23
de Setembro de 2009.
GAMESPOT.
Disponvel
em
Half-Life
1
HEV
Suit
Upgrade:
http://www.gamespot.com/users/hl20302/view_image?id=a9II4Bsi7hqY4R3knA.
Acesso em 23 de Setembro de 2009.
GROSKO, A. P., GORSKI, J. R., E DIAS, J. D. Algoritmo Gentico: Reviso
Histrica e Exemplificao. Pontifcia Universidade Catlica do Paran, 2009.
HOLLAND, J. H. Genetic Algorithms. Disponvel em Genetic Algorithms:
http://www.econ.iastat.edu/tesfatsi/holland.GAIntro.htm. Acesso em julho de
2009.
LUGER, G. F. Inteligncia Artificial: Estruturas e Estratgias para a
Soluo de Problemas Complexos. So Paulo: ARTMED, 2004.
MARCZYK, A. Genetic Algorithms and Evolutionary Computation.
Disponvel
em
The
TalkOrigins
Archive:
http://www.talkorigins.org/faqs/genalg/genalg.html#intro. Acesso em 19 de
Agosto de 2009.
MITCHELL, M. An Introduction to Genetic Algorithms. Cambrige: MIT Press,
1998.
MOLYNEUX, P. Postmortem: Lionhead Studios' Black & White. Disponvel
em
Gamasutra:
http://www.jnoodle.com/careertech/files/postMortems/BlacknWhite.pdf. Acesso
em 23 de Setembro de 2009.

47

NERF US PLEASE, E. Inteligncia Artificial em Jogos Eletrnicos.


Disponvel em http://www.cin.ufpe.br/~ldsp/Semin%E1rio%20Agentes%20Aut
%F4nomos/Semin%25E1rio%20Agentes.ppt. Acesso em 31 de Maio de 2009.
NILSSON, N. J. Artificial Intelligence: A New Synthesis. San Francisco:
Morgan Kaufmann Publishers, 1998.
PERALTY, D. EA Donates Original SimCity to OLPC Program. Disponvel em
Geeks are Sexy: http://www.geeksaresexy.net/2007/11/09/ea-donats-originalsimcity-to-olpc-program/. Acesso em 23 de Setembro de 2009.
POSEY, S. Left 4 Dead DLC coming soon?. Disponvel em The Videogame
Blog:
http://www.thatvideogameblog.com/2008/12/30/left-4-dead-dlc-comingsoon/. Acesso em 23 de Setembro de 2009.
RABIN, S. AI Game Programming Wisdom. Hingham: Charles River Media,
2002.
RUSSELL, S., E NORVIG, P. Inteligncia Artificial - Traduo da Segunda
Edio. Rio de Janeiro: Editora Campus, 2004
SILVA, C. R. Uso de Algoritmos Genticos como redutor de
dimensionalidade na classificao de imagens hiperspectrais. Disponivel
em
http://dspace.c3sl.ufpr.br/dspace/bitstream/1884/4654/1/disserta_claudionor.pdf
. Acesso em 23 de Setembro de 2009.
APPOLINARIO, V. B., PEREIRA, T. L. Navegao autnoma em jogos
eletrnicos
utilizando
Algoritmos
Genticos.
Disponvel
em
http://redalyc.uaemex.mx/redalyc/pdf/810/81050108.pdf. Acesso em 23 de
Novembro de 2009.
SHI,
H.
Best-First
Decision
Tree
Learning.
Disponvel
em
http://adt.waikato.ac.nz/uploads/approved/adtuow20070112.105857/public/01front.pdf. Acesso em 19 de Novembro 2009.
COMPUTAO, G. M. Busca em rvores ou Grafos. Disponvel em
http://www.computacao.gigamundo.com/2009/03/10/busca-em-arvores-ougrafos/. Acesso em 19 de Novembro de 2009.
SILVA, A. E., CROCOMO, M. K., E ANDRADE, K. O. Um Algoritmo Evolutivo
para a adaptao de NPCs em um jogo de ao. Disponvel em
http://200.169.53.89/scgames/artigos/08980100008.pdf. Acesso em 20 de
Novembro de 2009.

You might also like