+ All Categories
Home > Documents > sss3/TG/Relatorio_Final_sss3.docx · Web viewEste cenário tem sido um dos principais alvos dos...

sss3/TG/Relatorio_Final_sss3.docx · Web viewEste cenário tem sido um dos principais alvos dos...

Date post: 20-Jan-2019
Category:
Upload: phungdang
View: 212 times
Download: 0 times
Share this document with a friend
53
Universidade Federal de Pernambuco Graduação em Ciência da Computação Centro de Informática Um estudo de estratégias para coleta de recursos em ambientes multiagente Sergio Schechtman Sette <[email protected]>
Transcript
Page 1: sss3/TG/Relatorio_Final_sss3.docx · Web viewEste cenário tem sido um dos principais alvos dos estudos de inteligência artificial em ambientes multiagente. Existem grandes desafios

Universidade Federal de PernambucoGraduação em Ciência da Computação

Centro de Informática

Um estudo de estratégias para coleta de recursos em ambientes multiagente

Sergio Schechtman Sette <[email protected]>

Orientador: Geber Lisboa Ramalho ([email protected])

Recife, Junho de 2008

Page 2: sss3/TG/Relatorio_Final_sss3.docx · Web viewEste cenário tem sido um dos principais alvos dos estudos de inteligência artificial em ambientes multiagente. Existem grandes desafios

“640K of memory should be enough for anybody”

— Bill Gates

“All your base are belong to us”

— CATS

Page 3: sss3/TG/Relatorio_Final_sss3.docx · Web viewEste cenário tem sido um dos principais alvos dos estudos de inteligência artificial em ambientes multiagente. Existem grandes desafios

Agradecimentos

Gostaria de agradecer primeiramente a minha família, meus pais, meus

irmãos e meus avós, devo a eles a pessoa que sou hoje, e em especial ao meu

sobrinho de dois anos e meio, que sempre entendia quando eu falava “tenho

que trabalhar” interrompendo a brincadeira, respondendo “tá bom tio Serginho”

Agradeço a meus amigos e colegas, por me apoiarem sempre e

compartilharem os momentos mais difíceis, como a elaboração deste trabalho,

e principalmente àqueles que acreditaram que eu estava vivo, mesmo sem dar

notícias por meses.

Também agradeço a meu orientador Geber Ramalho por me dar a

oportunidade de realizar este trabalho, e me apoiar até nas horas mais críticas

de sua elaboração.

Gostaria de fazer um agradecimento em especial ao Sport Club do

Recife, por me proporcionar uma grande alegria este ano, com a conquista da

Copa Do Brasil.

Page 4: sss3/TG/Relatorio_Final_sss3.docx · Web viewEste cenário tem sido um dos principais alvos dos estudos de inteligência artificial em ambientes multiagente. Existem grandes desafios

Resumo

Existem diversos tipos de jogos de estratégia em tempo real (RTS). Na

maioria destes jogos, existe a tarefa de coleta de recursos (foraging). Esta

tarefa é executada em ambientes multiagente. Este cenário tem sido um dos

principais alvos dos estudos de inteligência artificial em ambientes multiagente.

Existem grandes desafios neste tipo de ambiente, como a escolha do caminho

(path-finding), a exploração do mapa, a interação e coordenação de agentes, e

as decisões de macro-estratégia.

Este trabalho tem como objetivo detectar e analisar problemas

encontrados na tarefa de coleta de recursos, procurando criar soluções para os

problemas encontrados, formando uma estratégia eficiente de coleta de

recursos. Para isto, será utilizado um ambiente de simulação, onde os

resultados podem ser testados e comparados com outras abordagens.

Page 5: sss3/TG/Relatorio_Final_sss3.docx · Web viewEste cenário tem sido um dos principais alvos dos estudos de inteligência artificial em ambientes multiagente. Existem grandes desafios

Sumário

1 Introdução...................................................................................................8

2 Jogos de Estratégia...................................................................................9

2.1 Tipos de jogos de estratégia..................................................................9

2.1.1 Turn based game............................................................................9

2.1.2 Turn based tactics.........................................................................10

2.1.3 Real time strategy..........................................................................11

2.2 Conclusão............................................................................................13

3 Coleta de recursos multiagente..............................................................15

3.1 Os problemas.......................................................................................15

3.1.1 Coordenação.................................................................................15

3.1.2 PathFinding...................................................................................15

3.1.3 Considerações para a escolha do melhor recurso........................17

3.2 Estado da arte......................................................................................20

3.2.1 Optimal Foraging Theory...............................................................20

3.2.2 jcmjWorker.....................................................................................20

4 Estratégia de coleta proposta.................................................................21

4.1 PathFinding..........................................................................................21

4.2 Escolha da melhor mina.......................................................................22

4.2.1 Distância........................................................................................22

4.2.2 Regiões.........................................................................................23

4.2.3 Função de utilidade.......................................................................23

4.3 Agente explorador................................................................................23

4.4 Máquina de Estados.............................................................................24

5 Resultados Obtidos.................................................................................26

5.1 Simuladores.........................................................................................26

Page 6: sss3/TG/Relatorio_Final_sss3.docx · Web viewEste cenário tem sido um dos principais alvos dos estudos de inteligência artificial em ambientes multiagente. Existem grandes desafios

5.1.1 ORTS.............................................................................................26

5.1.2 JaRTS............................................................................................27

5.1.3 RTSCup.........................................................................................28

5.1.4 Simulador escolhido......................................................................29

5.2 Descrição do ambiente.........................................................................29

5.3 Resultados Obtidos..............................................................................30

5.3.1 Agentes simulados........................................................................30

6 Conclusão.................................................................................................38

6.1 Problemas encontrados.......................................................................38

6.2 Trabalhos Futuros................................................................................39

Referências......................................................................................................40

Lista de FigurasFIGURA 2.1 WAR DE TABULEIRO......................................................................................................9

FIGURA 2.2 CIVILIZATION IV.........................................................................................................10

FIGURA 2.3 X-COM UFO DEFENSE...............................................................................................10

FIGURA 2.4 FINAL FANTASY TACTICS............................................................................................11

FIGURA 2.5STARCRAFT................................................................................................................13

FIGURA 2.6 COMPANY OF HEROES................................................................................................13

FIGURA 3.1 A* FUNCIONANDO.......................................................................................................16

FIGURA 3.2 COLISÃO ENTRE AGENTES...........................................................................................17

FIGURA 3.3 DISTÂNCIA................................................................................................................. 17

FIGURA 3.4 ESTUDO DE ACESSIBILIDADE/DISPONIBILIDADE 1..........................................................19

FIGURA 3.5 ESTUDO DE ACESSIBILIDADE/DISPONIBILIDADE 2..........................................................19

FIGURA 3.6 ESTUDO DE ACESSIBILIDADE/DISPONIBILIDADE 3..........................................................19

FIGURA 3.7 ESTUDO DE ACESSIBILIDADE/DISPONIBILIDADE 4..........................................................19

FIGURA 4.1 MÁQUINA DE ESTADOS................................................................................................25

FIGURA 5.1 ORTS....................................................................................................................... 27

FIGURA 5.2 GAME1 NO JARTS.....................................................................................................28

FIGURA 5.3 TRABALHADOR...........................................................................................................29

FIGURA 5.4 COMMAND CENTER.....................................................................................................29

FIGURA 5.5 RECURSO.................................................................................................................. 30

FIGURA 5.6 OBSTÁCULO...............................................................................................................30

FIGURA 5.7 MAPA EXPERIMENTO 1................................................................................................31

Page 7: sss3/TG/Relatorio_Final_sss3.docx · Web viewEste cenário tem sido um dos principais alvos dos estudos de inteligência artificial em ambientes multiagente. Existem grandes desafios

FIGURA 5.8 MAPA EXPERIMENTO 2................................................................................................32

FIGURA 5.9 MAPA EXPERIMENTO 3................................................................................................33

FIGURA 5.10 MAPA EXPERIMENTO 4..............................................................................................34

FIGURA 5.11 MAPA EXPERIMENTO 5..............................................................................................35

FIGURA 5.12 ZIGWORKER............................................................................................................36

FIGURA 5.13 CLOSERWORKER.....................................................................................................37

Lista de Tabelas

TABELA 5.1 RESULTADOS DO EXPERIMENTO 1...............................................................................31

TABELA 5.2 RESULTADOS DO EXPERIMENTO 2...............................................................................32

TABELA 5.3 RESULTADOS DO EXPERIMENTO 3...............................................................................33

TABELA 5.4 RESULTADOS DO EXPERIMENTO 4...............................................................................34

TABELA 5.5 RESULTADOS DO EXPERIMENTO 5...............................................................................35

Page 8: sss3/TG/Relatorio_Final_sss3.docx · Web viewEste cenário tem sido um dos principais alvos dos estudos de inteligência artificial em ambientes multiagente. Existem grandes desafios

1 Introdução

Jogos de estratégia são jogos que possuem como fator determinante do

resultado, a capacidade do jogador de tomar decisões. O exemplo mais famoso

de um jogo de estratégia é o Xadrez, criado no século XV, onde os jogadores

mais experientes não levam em consideração somente o estado atual do

tabuleiro para sua jogada, mas sim um plano de longo prazo, considerando

futuros cenários do tabuleiro.

Os jogos de estratégia de computadores, ou vídeo games, podem ser

classificados em jogos baseados em turno, também conhecidos como TBS

(Turn-based strategy), ou jogos em tempo real, também conhecidos como RTS

(Real-time Strategy), sendo os RTS os mais populares. Estes jogos podem ser

jogados na modalidade multiplayer onde dois ou mais jogadores humanos se

enfrentam, ou na modalidade singleplayer, onde o jogador humano tem como

adversário o computador.

Nestes ambientes, existem diversas tarefas que precisam ser

automatizadas. Estas tarefas podem ser desde a decisão da macro-estratégia

a ser adotada, até a escolha do caminho que um agente utilizará para sair de

um ponto A até um ponto B.

Page 9: sss3/TG/Relatorio_Final_sss3.docx · Web viewEste cenário tem sido um dos principais alvos dos estudos de inteligência artificial em ambientes multiagente. Existem grandes desafios

2 Jogos de Estratégia

Neste capítulo inicialmente serão apresentados os princípios básicos de

jogos de estratégia, mostrando os seus principais tipos e características, com

um foco maior em jogos RTS.

2.1 Tipos de jogos de estratégia

2.1.1 Turn based gameEm jogos TBS, possuem turnos, ou rodadas, onde cada jogador tem

tempo para analisar o jogo, tomar decisões de estratégia, para então realizar

as ações.

Um exemplo de um jogo TBS simples é o jogo de tabuleiro War, que

possuí inúmeras adaptações para computador. O jogo War envolve apenas

tarefas básicas como movimentação de tropas e ataque de territórios, por isto

no War, um turno geralmente leva entre 2 a 10 minutos.

Em jogos mais complexos, como Civilization IV, existem inúmeras

variáveis a serem analisadas que vão levar a um conjunto imenso de ações

executadas. Esta complexidade de ações vai da criação e movimentação de

tropas, ao gerenciamento individual de cada cidade, até às negociações

diplomáticas entre os jogadores. Um turno em Civilization IV pode levar até 30

minutos.

Figura 2.1 War de tabuleiro

Page 10: sss3/TG/Relatorio_Final_sss3.docx · Web viewEste cenário tem sido um dos principais alvos dos estudos de inteligência artificial em ambientes multiagente. Existem grandes desafios

Figura 2.2 A tela de gerenciamento de uma cidade no jogo Civilization IV, mostrando a complexidade elevada do jogo

2.1.2 Turn based tacticsOs jogos TBT possuem o mesmo sistema de turnos dos jogos TBS,

porém são focados na parte tática. O jogador começa com um número fixo de

tropas, e utilizando apenas elas, sem direito de criação de tropas adicionais,

deve vencer o adversário. Um dos exemplos mais famosos deste estilo é o jogo

X-COM Ufo Defense.

Figura 2.3X-COM Ufo Defense. O jogador controla seus soldados para derrotar os alienígenas invasores.

Page 11: sss3/TG/Relatorio_Final_sss3.docx · Web viewEste cenário tem sido um dos principais alvos dos estudos de inteligência artificial em ambientes multiagente. Existem grandes desafios

Figura 2.4 Final Fantasy Tactics. Uma mistura de RPG com TBT

2.1.3 Real time strategyÉ o gênero mais popular de jogos de estratégias. Nestes jogos,

enquanto o jogador está pensando, o jogo está rolando, logo as decisões

precisam ser tomadas o mais rápido possível.

Estes jogos por mais diferente que sejam, possuem as mesmas etapas

básicas que todos RTS. Estas etapas são as seguintes:

Coleta de Recursos: Esta tarefa é realizada por unidades específicas,

conhecidas como trabalhadores. Esta coleta de recursos precisa ser

feita do modo mais eficiente possível, já que o jogador que coleta mais

recursos tem uma vantagem enorme sobre seu oponente, pois pode

criar mais construções, mais tropas, e até mais trabalhadores. Em jogos

como Dune2 existe apenas um tipo de recurso, chamado de credits,

enquanto em jogos como Age of Mythology, existem 4 tipos de recursos:

comida, madeira, ouro, fé. Geralmente um trabalhador pode coletar

qualquer tipo de recurso, mas em jogos como Warcraft III, onde existem

dois tipos de recursos, madeira e ouro, existe uma facção que possui um

tipo de trabalhador que coleta somente ouro, e outro tipo de trabalhador

que coleta somente madeira.

Page 12: sss3/TG/Relatorio_Final_sss3.docx · Web viewEste cenário tem sido um dos principais alvos dos estudos de inteligência artificial em ambientes multiagente. Existem grandes desafios

Criação de Construções e Unidades: Nesta tarefa, que geralmente

também é realizada pelos trabalhadores, são criadas as construções e

unidades. Cada construção tem seu papel específico, sendo os

principais: Deposito de recursos, Criação de unidades, Pesquisa de

novas tecnologias. As unidades também possuem funções diferentes.

Os trabalhadores são responsáveis pela coleta de recursos e criação de

construções, unidades, como soldados e tanques de guerra, têm como

função defender a base ou atacar a base do adversário.

Pesquisa de Tecnologias: Não se vence uma partida criando apenas as

unidades básicas, é preciso evoluir, criando unidades mais avançadas

ou melhorando as unidades atuais. Uma unidade de nível de tecnologia

superior geralmente possui um melhor custo-benefício que uma unidade

menos avançada.

Exploração: O jogador não possui visão completa do mapa, apenas a

visão das suas unidades e de suas construções. É importante sempre

enviar unidades para explorar o ambiente, inclusive o adversário, para

poder se adaptar à tática dele. Em alguns jogos como Age of Empires II,

existe unidades específicas para exploração. Estas unidades possuem

maior velocidade e maior campo de visão que as demais.

Combate: O objetivo dos RTS é derrotar o adversário. Em alguns jogos

isto significa destruir todas as unidades adversárias, enquanto em outros

jogos, é necessário destruir apenas a construção principal (command

center) do adversário. Para realizar esta etapa com sucesso, todas as

etapas demonstradas anteriormente precisam ser executadas o melhor

possível. Na maioria dos RTS, cada unidade possui pontos fortes e

fraquezas. Por exemplo, em Age of Empires II, arqueiros são bons

contra infantaria, que por sua vez é eficiente contra cavaleiros, que

derrotam facilmente arqueiros. Cabe ao jogador adaptar seu exercito de

acordo com o exercito adversário.

Page 13: sss3/TG/Relatorio_Final_sss3.docx · Web viewEste cenário tem sido um dos principais alvos dos estudos de inteligência artificial em ambientes multiagente. Existem grandes desafios

Figura 2.5Starcraft. Um dos mais jogados RTS de todos os tempos

Figura 2.6 Company of Heroes. Um dos mais modernos RTS atualmente

2.2 ConclusãoDevo criar mais trabalhadores para coletar mais recursos, ou devo

fortificar minhas defesas, pois estou vulnerável à ataques adversários? Ataco

Page 14: sss3/TG/Relatorio_Final_sss3.docx · Web viewEste cenário tem sido um dos principais alvos dos estudos de inteligência artificial em ambientes multiagente. Existem grandes desafios

logo no início pegando o inimigo desprevenido, ou realizo pesquisas para

derrotar o adversário tecnologicamente? Perguntas como estas que tornam o

universo dos jogos de estratégia tão fascinante. Enquanto no Xadrez, se

consegue criar IA’s que derrotam os mais experientes jogadores, atualmente

no mundo dos RTS, por mais complexa que seja a IA, um jogador experiente

consegue vencê-la facilmente, devido a grande complexidade dos jogos.

Conseqüentemente, os jogos RTS com maior sucesso são oferecem um bom

sistema multiplayer, como Starcraft e Warcraft III.

Historicamente, game designers têm criado a ilusão de inteligência

através de scripts. O problema dos scripts é que para serem efetivos, eles

devem ser complexos, mas a complexidade acaba criando fraquezas e

previsibilidade. Eventualmente um jogador humano será capaz de reconhecer e

se aproveitar destas fraquezas, destruindo a ilusão.[4]

Jogos RTS oferecem uma grande variedade de problemas fundamentais

de IA, ao contrario de outros gêneros de jogos estudados pela comunidade de

IA até agora. [5]

Page 15: sss3/TG/Relatorio_Final_sss3.docx · Web viewEste cenário tem sido um dos principais alvos dos estudos de inteligência artificial em ambientes multiagente. Existem grandes desafios

3 Coleta de recursos multiagente

Como foi visto no capítulo anterior, a coleta de recursos é uma das

etapas mais importantes nos jogos RTS. Este capítulo mostrará alguns dos

principais desafios presentes na área de coleta de recursos multiagente.

3.1 Os problemas

3.1.1 CoordenaçãoEm um ambiente multiagente, cada agente deve se coordenar com os

outros agentes, procurando a melhor solução para o conjunto, não para o

individual. Existem casos onde tomar a decisão X seria a melhor escolha para

o agente A, mas isto pode atrapalhar os planos do agente B, fazendo com que

a produtividade total seja menor. O controle de organização do agente deve

estar presente em todas as etapas de decisão do agente, desde a escolha do

caminho, até a decisão de que recurso o agente escolherá para coletar.

3.1.2 PathFindingPathfinding é o termo usado pela maioria das aplicações para achar o

melhor caminho do ponto A ao ponto B. [9] O trabalhador precisa saber tanto o

caminho que deve ser percorrido até chegar ao recurso a ser coletado, como o

caminho de retorno até o deposito de recursos, esta tarefa é realizada pelos

algoritmos de pathfinding.

3.1.2.1 A*Dos algoritmos de pathfinding, o mais utilizado em jogos é o A*, por ser

um algoritmo simples, eficiente, e completo, ou seja, se existir um caminho do

ponto de origem ao ponto de destino, ele irá encontrá-lo. Outra vantagem do A*

é o tratamento a terrenos onde o agente não pode passar, como obstáculos,

minas, ou outros agentes. Também é possível neste algoritmo, determinar

locais onde o custo de passagem é maior, como regiões montanhosas, ou

menor, como estradas.

Page 16: sss3/TG/Relatorio_Final_sss3.docx · Web viewEste cenário tem sido um dos principais alvos dos estudos de inteligência artificial em ambientes multiagente. Existem grandes desafios

Figura 3.7 A* funcionando. O algoritmo evita os obstáculos (quadrados azuis) e cria uma rota (círculos vermelhos) do ponto de origem (quadrado verde) ao ponto de destino

(quadrado vermelho)

3.1.2.2 A* colaborativoO algoritmo A* funciona bem para ambientes monoagentes, mas em

ambientes multiagentes, a colisão precisa também considerar a presença de

outros agentes no ambiente. Quando um agente A tenta ir para um ponto X, e o

agente B tenta ir para o ponto X no mesmo instante, ocorre uma colisão. Este

cenário está ilustrado na figura 3.2. Para resolver este problema, foi criado o A*

colaborativo. [6] Esta variante do A* cria um sistema de reservas, onde após

checar se existe algum elemento que impossibilite a passagem por aquele

ponto, o algoritmo verifica se algum outro agente reservou aquela localidade

naquele instante. Quando um agente consegue achar um caminho sem

colisões, este caminho é reservado àquele agente durante sua passagem.

Page 17: sss3/TG/Relatorio_Final_sss3.docx · Web viewEste cenário tem sido um dos principais alvos dos estudos de inteligência artificial em ambientes multiagente. Existem grandes desafios

Figura 3.8 O agente 1 (em azul) calcula seu caminho (em cinza) para chegar ao recurso 1 (em amarelo), porém ele entra em colisão no ponto marcado em vermelho com o agente

2 que estava tentando chegar ao recurso 2

3.1.3 Considerações para a escolha do melhor recursoO principal problema na tarefa de coleta de recursos é escolher que

recurso um agente deve ir. Vários fatores precisam ser considerados nesta

decisão, Neste tópico, serão apresentados alguns dos fatores considerados

para esta decisão.

3.1.3.1 DistânciaPara sabermos que mina está mais próxima, precisamos calcular a

distância do agente, ou do deposito de recursos, até o recurso, e precisamos

fazer isto eficientemente. Uma opção para calcular a distância é utilizar a

Distância Euclideana, ou a Distância de Manhatan, porém elas não consideram

obstáculos, e em situações como a da figura 3.3, o agente não se comportará

bem.

Figura 3.9 O recurso 1 teria a menor Distância Euclideana, porém devido aos obstáculos, o agente levaria menos tempo para chegar ao recurso 2

Page 18: sss3/TG/Relatorio_Final_sss3.docx · Web viewEste cenário tem sido um dos principais alvos dos estudos de inteligência artificial em ambientes multiagente. Existem grandes desafios

Outra opção é executar um A* para cada recurso, porém em ambientes

com muitos recursos, isto se tornaria computacionalmente custoso, inviável em

ambientes de tempo real, onde cada agente possui um tempo curto para

executar cada ação.

3.1.3.2 DisponibilidadeNão importa o quão perto um recurso esteja se não existe uma posição

onde um agente consegue alcançá-lo. Para saber se um recurso está

disponível, é calculado o seu número de vagas, a quantidade máxima de

agentes que podem coletar um mesmo recurso num determinado momento.

Este valor varia de zero, quando todas as localidades ao redor do recurso

estão ocupadas por um obstáculo, um agente, ou outra mina, até oito, quando

o recurso está totalmente livre.

3.1.3.3 AcessibilidadeAté agora sabemos que temos que escolher o recurso mais próximo, e

somente se houver espaço livre para um agente iniciar a coleta. Mas isto não é

suficiente. Ainda existe outro importante fator a ser considerado: a

acessibilidade de uma mina. Este fator pode ser confundido com a

disponibilidade, pois os dois estão relacionados, já que um recurso acessível

tem grande chance de ser um recurso bem disponível. A acessibilidade leva

em consideração tanto a disponibilidade como o caminho a ser percorrido pelo

agente entre o deposito de recursos e o recurso. Recursos pouco acessíveis

possuem caminhos onde há grande probabilidade de colisão entre agentes.

Podemos imaginar uma rua de mão dupla onde só passa um carro, quando

outro carro vem em sentido contrário, algum dos dois carros precisa voltar até o

início do caminho para dar passagem ao primeiro carro. Esta situação se

agravaria mais ainda, se aparecer um terceiro carro atrás do segundo carro. As

figuras 3.4, 3.5 e 3.6 demonstram diversos cenários envolvendo disponibilidade

e acessibilidade e a figura 3.7 demonstra um dos problemas causados pela

baixa acessibilidade de um recurso.

Page 19: sss3/TG/Relatorio_Final_sss3.docx · Web viewEste cenário tem sido um dos principais alvos dos estudos de inteligência artificial em ambientes multiagente. Existem grandes desafios

Figura 3.10O recurso possui disponibilidade

mínima, porém a acessibilidade é

boa

Figura 3.11O Recurso possuí

disponibilidade máxima, mas o túnel

faz com que sua acessibilidade seja

baixa

Figura 3.12O recurso possuí disponibilidade

mínima e acessibilidade baixa.

Figura 3.13O agente 2 está

impedindo o agente 1 de chegar no

recurso

Page 20: sss3/TG/Relatorio_Final_sss3.docx · Web viewEste cenário tem sido um dos principais alvos dos estudos de inteligência artificial em ambientes multiagente. Existem grandes desafios

3.2 Estado da arteExiste uma grande quantidade de artigos na área de coleta de recursos,

porém a maioria se encontra na área de robótica. Estes artigos têm como foco

a parte da movimentação e sensores dos robôs, falando muito pouco sobre a

estratégia de coleta.

3.2.1 Optimal Foraging TheoryA Optimal Foraging Theory [13] é uma teoria criada para explicar o

comportamento de animais que fazem foraging (coleta de alimentos), como

formigas. Segundo esta teoria, os animais tentam maximizar a formula E/(h+s) onde E é a quantidade de energia de um alimento, h é o tempo de captura da

presa, e s é o tempo necessário para busca. Podemos aplicar esta teoria na

coleta de recursos multiagente, fazendo com que os trabalhadores procurem a

mina mais próxima, minimizando o h, carreguem sempre a maior quantidade

de recursos, maximizando o E, e maximizem a busca, quando os agentes

possuem campo de visão limitado, minimizando o s.

3.2.2 jcmjWorkerApós um estudo sobre estratégias de foraging, José Carlos Moura [2]

criou uma estratégia de coleta baseada na Optimal Foraging Theory. Em sua

estratégia, os agentes procuravam os recursos com menor distância,

considerando também o tempo que algum possível agente que já esteja

minerando aquele recurso. Nesta implementação, os agentes utilizavam o A*

simples para movimentação, e em caso de colisão, os agentes esperam cinco

turnos, se a colisão persistir, novas rotas são calculadas.

O jcmjWorker participou da competição da disciplina de Agentes

Autônomos na Universidade Federal de Pernambuco. Nesta competição, foi

utilizado o simulador JaRTS. O agente se saiu bem em mapas onde os

recursos estavam perto do local de depósito, porém apresentou resultados

fracos em mapas onde havia espécies de corredores, onde ocorriam muitas

colisões.

Page 21: sss3/TG/Relatorio_Final_sss3.docx · Web viewEste cenário tem sido um dos principais alvos dos estudos de inteligência artificial em ambientes multiagente. Existem grandes desafios

4 Estratégia de coleta proposta

A proposta de estratégia deve levar em consideração os problemas

apresentados no capítulo anterior. Inicialmente os agentes foram considerados

iguais uns aos outros, possuindo a mesma hierarquia, e as mesmas funções.

(...) Ele precisa agir de maneira autônoma, se um agente deixar de existir os

outros devem continuar a tarefa, devido ao fato que é um jogo RTS, poderiam

existir inimigos que poderiam matar os agentes. Se houvesse alguma espécie

de processamento centralizado em algum agente, se esse agente fosse

destruído o processamento ficaria comprometido. [2] Porém, como experiência,

foi criado um cenário onde existia um agente explorador. O agente proposto foi

batizado de ZigWorker.

4.1 PathFindingPara diminuir o custo do algoritmo de pathfinding, o mapa foi dividido em

“tiles” de 20 por 20 pixels, e para simplificar o tratamento de colisões o agente

só poderá andar na horizontal ou na vertical.

O algoritmo de pathfinding utilizado foi o A* colaborativo, explicado no

capitulo 3. O agente reserva o caminho de ida à mina e o local de coleta pela

quantidade de turnos que vai permanecer nesta posição. Quando o agente está

com sua capacidade máxima de recursos, ele reserva o caminho de volta até o

command center.

Inicialmente ocorreu um problema no pathfinding. Quando um agente

passava mais de um turno realizando o A*, a reserva que ele fez perdia a

validade, pois o turno já havia passado. Para evitar este problema, cada agente

passa a guardar uma nova informação, chamada de delay, representando o

tempo previsto para a execução do pathfinding. Este delay é atualizado de

acordo com as seguintes situações:

O agente executou o pathfinding no tempo previsto. Neste caso, o

delay não é alterado.

Page 22: sss3/TG/Relatorio_Final_sss3.docx · Web viewEste cenário tem sido um dos principais alvos dos estudos de inteligência artificial em ambientes multiagente. Existem grandes desafios

O agente executou o pathfinding, mas levou mais tempo que o

previsto. O delay do agente é atualizado de acordo com o tempo

que o pathfinding foi executado.

O agente executou o pathfinding, mas levou menos tempo que o

previsto. Como o caso anterior, o delay do agente é atualizado de

acordo com o tempo que o pathfinding foi executado.

Com esta nova informação, o agente agora pode reservar um caminho

que só executará no futuro, eliminando o problema da perda de validade das

reservas, e melhorando a performance, pois agora o agente não precisa mais

recalcular todo o caminho para reservar novamente.

4.2 Escolha da melhor mina

4.2.1 DistânciaComo o algoritmo A* é um algoritmo custoso, a distância utilizada foi a

distância de Manhatan. Porém, como ela não é uma distância real, foi

implementado um sistema de atualização de distância. Este sistema faz com

que cada agente ao visitar uma mina, atualize a distância da mina de acordo

com a seguinte formula: distância = (1 – taxa de aprendizagem) * distância

antiga + (custo atual * taxa de aprendizagem), onde distância é o novo valor

da distância daquela mina, distância antiga é o valor antigo da distância

daquela mina, custo atual é a quantidade de movimentos que o agente

realizou até chegar àquela mina, e taxa de aprendizagem é um valor para

evitar que casos extremos acabem influenciando totalmente o valor da

distância. Este valor também é alterado da mesma forma, quando um agente

retorna ao command center, atualizando assim a mina de acordo com o

caminho de ida e de volta.

O algoritmo apresentado além de manter uma distância mais próxima da

real, também trata do problema de engarrafamento de agentes, já que a

variável custo atual também leva em consideração o tempo em que os

agentes ficaram parados esperando o caminho ficar livre.

Page 23: sss3/TG/Relatorio_Final_sss3.docx · Web viewEste cenário tem sido um dos principais alvos dos estudos de inteligência artificial em ambientes multiagente. Existem grandes desafios

4.2.2 RegiõesAssumindo que minas adjacentes possuem acessibilidade similar, Foi

criado o conceito de região, que nada mais é que um agrupamento de minas

adjacentes. As correções feitas na distância da mina são propagadas para as

minas da mesma região, logo se uma mina possui acessibilidade muito baixa,

os agentes não terão que visitar as outras minas da mesma região para saber

que aquela região possui baixa acessibilidade.

4.2.3 Função de utilidadeA função de utilidade tem como objetivo atribuir um score a uma mina.

Esta função tem como entrada as seguintes variáveis:

Distância do command center à mina: Esta é a distância que é

atualizada pelo algoritmo apresentado anteriormente, portanto está é a

variável mais importante e por isto possui o maior peso, já que este valor

representa também todas as considerações do algoritmo de

aprendizagem.

Distância do agente à mina: Esta é a distância de Manhatan do agente à

mina. Este valor é considerado para casos onde a mina foi exaurida e o

agente ainda não está carregando o máximo de recursos possível, logo

ele precisa procurar outra mina levando em conta sua posição atual.

Número de agentes da mina: Quanto mais agentes numa mina, maior o

engarrafamento daquela área. Este valor é utilizado como medida

preventiva, já que o algoritmo de aprendizagem trata bem do problema

de engarrafamento.

4.3 Agente exploradorComo foi visto anteriormente, a distância de Manhatan representa a

menor distância possível entre dois pontos, sem levar em consideração os

obstáculos. Como esta distância é otimista, devido à natureza do algoritmo de

aprendizagem, os agentes inicialmente atualizam a distância da mina para uma

distância maior. Com isto, as regiões que ainda não foram exploradas, mas

possuíam distância menor, serão os próximos alvos dos agentes. Em alguns

casos isto acaba atrapalhando, pois vários agentes acabam indo a essas

regiões, antes de perceberem que é uma região ruim.

Page 24: sss3/TG/Relatorio_Final_sss3.docx · Web viewEste cenário tem sido um dos principais alvos dos estudos de inteligência artificial em ambientes multiagente. Existem grandes desafios

Para evitar este tipo de problema, foi criado o conceito de um agente

explorador. Este agente procura sempre escolher as regiões menos visitadas,

pois são as regiões que possuíram o menor número de atualizações de

distância. Ele também utiliza uma taxa de aprendizagem, do algoritmo de

aprendizagem, maior que a dos agentes comuns.

4.4 Máquina de EstadosO agente é coordenado por uma máquina de estados, onde cada estado

será descrito a seguir:

FIND RESOURCE: É o estado inicial do agente. Neste estado o agente

procura a melhor mina de acordo com a função de utilidade

implementada. Esta mina é armazenada na memória do agente. Se não

houver mais minas disponíveis, o agente entra no estado IDLE, caso

contrário, ele entra no estado MOVE TO MINE.

MOVE TO MINE: O agente executa o algoritmo de pathfinding e se

move em direção à mina armazenada pelo estado FIND RESOURCE

até chegar no local de mineração, onde ele entra no estado

GATHERING.

GATHERING: Neste estado o agente executa a ação de coleta na mina

armazenada em sua memória. Se a mina se esgotou, e o agente ainda

não está cheio, o agente passa para o estado FIND RESOURCE, se o

agente já estiver cheio, ele passa para o estado MOVE TO COMMAND

CENTER.

MOVE TO CC: O agente executa o algoritmo de pathfinding e se move

em direção ao command center. Quando o agente atinge o command

center, ele passa para o estado de DELIVER.

DELIVER: Neste estado o agente entrega os recursos no command

center, e entra novamente no estado FIND RESOURCE.

IDLE: Este estado foi criado para evitar sobrecarga de execuções do

pathfinding. Nele, o agente fica parado por 5 turnos, quando entra

novamente no estado FIND RESOURCE.

A figura 4.1 mostra o diagrama da maquina de estados.

Page 25: sss3/TG/Relatorio_Final_sss3.docx · Web viewEste cenário tem sido um dos principais alvos dos estudos de inteligência artificial em ambientes multiagente. Existem grandes desafios

Figura 4.14 Máquina de estados

Page 26: sss3/TG/Relatorio_Final_sss3.docx · Web viewEste cenário tem sido um dos principais alvos dos estudos de inteligência artificial em ambientes multiagente. Existem grandes desafios

5 Experimentos e resultados

Para avaliar o desempenho do agente proposto, foi implementada uma

versão deste agente em JAVA

5.1 SimuladoresSimuladores são de grande importância para o processo de

desenvolvimento de IA para jogos, pois eles fornecem um ambiente permitindo

que a IA seja ser testada, além de permitir a comparação dos resultados

obtidos entre IA’s diferentes.

5.1.1 ORTSA falta de interfaces AI até em jogos RTS atuais, deixa difícil conduzir

pesquisas de AI em tempo real nesta área e para comparar a força do sistema

de IA resultante com humanos experientes. Para resolver este problema, nós

criamos um projeto open source para programação de jogos RTS [5]

O ORTS (Open Real-Time Strategy) é um simulador de RTS open

source desenvolvido por Michael Buro da Universidade de Alberta no Canadá.

Ele possui três categorias de jogo

Game1: É o jogo de mineração. O jogador possui 20 trabalhadores e um

command center. O jogador possui acesso completo ao mapa, podendo

saber onde todas unidades estão.

Game2: Este jogo simula a situação de combate. Dois times

adversários, cada um possuindo 50 tanques e 5 command centers,

entram em guerra num cenário. O time que destruir o maior número de

command centers adversários vence a partida.

Game3: Esta é a simulação mais próxima de um RTS. Também é

realizada com dois times adversários, onde cada time precisa realizar a

tarefa de coleta e gerenciamento de recursos, além de combate e

exploração, já que agora os agentes não têm acesso completo ao mapa,

pois existe fog of war.

Page 27: sss3/TG/Relatorio_Final_sss3.docx · Web viewEste cenário tem sido um dos principais alvos dos estudos de inteligência artificial em ambientes multiagente. Existem grandes desafios

Game4: Este jogo foi apenas introduzido na segunda competição em

2007. Nesta competição, também com dois times adversários, cada time

possui 50 fuzileiros em um terreno sem obstáculos. Na próxima

competição em 2008, além dos 50 fuzileiros, cada time também terá

acesso a 20 tanques.

Na AIIDE 2006 foi realizada a primeira competição ORTS, onde

participaram cinco times de universidades de diversos países, já na AIIDE

2007, o número de times cresceu para 12. A terceira competição será realizada

na AIIDE 2008 em agosto.

Figura 5.15 ORTS

5.1.2 JaRTSO JaRTS foi desenvolvido por Vicente V. Filho [15], aluno da

Universidade Federal de Pernambuco, em 2006, e foi apresentado na

SBGames 2006. É um simulador feito em Java que simula as mesmas

situações do game1 e do game2 da competição do ORTS.

Page 28: sss3/TG/Relatorio_Final_sss3.docx · Web viewEste cenário tem sido um dos principais alvos dos estudos de inteligência artificial em ambientes multiagente. Existem grandes desafios

O JaRTS foi criado pela ausência de simuladores estáveis e com boa

documentação. Na figura 5.2 podemos ver a interface gráfica do JaRTS. Os

círculos verdes são os trabalhadores, o quadrado azul o command Center, e os

triângulos amarelos as minas. O mundo do JaRTS não é continuo, e sim

dividido por tiles.

O principal problema do JaRTS é a limitação imposta aos

desenvolvedores, já que o JaRTS só roda códigos escritos em Java.

Figura 5.16 Game1 no JaRTS

5.1.3 RTSCupO RTSCup também desenvolvido por Vicente V. Filho, é a evolução do

JaRTS. Agora independente de plataforma e de linguagem de programação, o

RTSCup faz a comunicação entre o cliente, o servidor, e visualizador através

de sockets.

O objetivo principal do RTSCup é a criação de um simulador de jogos

RTS que pode ser usado como benchmark para avaliar várias técnicas de IA

Page 29: sss3/TG/Relatorio_Final_sss3.docx · Web viewEste cenário tem sido um dos principais alvos dos estudos de inteligência artificial em ambientes multiagente. Existem grandes desafios

normalmente encontradas em jogos RTS, como: pathfinding, coordenação

multiagente, planejamento e outras. [16]

Atualmente o RTSCup está no release 1.5, onde já está implementado o

game1 e o game2, com o game3 em desenvolvimento.

5.1.4 Simulador escolhidoO simulador escolhido para a implementação da proposta deste trabalho

foi o RTSCup, pela facilidade do uso, e da experiência do desenvolvedor com

esta plataforma. A versão utilizada do RTSCup foi uma versão ainda em

desenvolvimento, por isto alguns problemas foram criados. Esta versão está

sendo desenvolvida por Victor Costa, aluno do centro de Informática da

Universidade Federal de Pernambuco, como trabalho de graduação do mesmo.

Em conjunto com esta versão, também foi desenvolvido um editor de mapas

com boa usabilidade.

5.2 Descrição do ambienteO ambiente simulado possui tamanho de 800 por 600 pixels, onde cada

elemento do ambiente é representado por um círculo com raio de 20 pixels. Os

agentes têm acesso completo às informações do mapa, ou seja, a posição de

todos os outros agentes, de todos os recursos, do command center e de todos

os obstáculos.

Trabalhadores: São os agentes responsáveis pela

coleta dos recursos. No simulador, os trabalhadores

contêm a informação dos pontos de vida e o número

de recursos coletados. Nesta abordagem, os pontos de

vida são insignificantes, pois apenas a coleta de

recursos será tratada. Cada trabalhador pode carregar

até 10 recursos, até descarregá-los no command

center..

Figura 5.17 Trabalhador

Page 30: sss3/TG/Relatorio_Final_sss3.docx · Web viewEste cenário tem sido um dos principais alvos dos estudos de inteligência artificial em ambientes multiagente. Existem grandes desafios

Command Center: É o centro de comando onde os

trabalhadores entregam os recursos que estavam

carregando. O Command Center contém também os

pontos de vida, e o total de recursos entregues pelos

agentes.

Figura 5.18 Command centerMinas: As minas contêm os recursos, o objetivo dos

trabalhadores. As minas apresentam a quantidade de

recursos disponíveis. Quando os recursos de uma

mina se exaurem, esta mina deixa de existir

Figura 5.19 RecursoObstáculos: Representam as “paredes” do ambiente.

Um trabalhador não pode passar por terrenos onde

existam obstáculos, recursos, ou outros trabalhadores.

Figura 5.20 Obstáculo

5.3 SimulaçãoForam realizados vários experimentos para avaliação do agente,

variando o mapa e a quantidade de turnos jogados, variando de acordo com a

quantidade de recursos e agentes do mapa. O tempo de cada turno foi definido

como 50ms, que é um tempo muito bom, demonstrando a boa eficiência do

agente, principalmente do algoritmo de pathfinding.

5.3.1 Agentes simulados ZigWorker: É a versão completa do agente proposto. Inclui todos os

recursos descritos no capítulo 4. Alguns experimentos foram realizados

com algumas modificações no agente, como a taxa de aprendizagem, e

a utilização de um agente explorador. A taxa de aprendizagem padrão

foi escolhida como 0.1.

Page 31: sss3/TG/Relatorio_Final_sss3.docx · Web viewEste cenário tem sido um dos principais alvos dos estudos de inteligência artificial em ambientes multiagente. Existem grandes desafios

CloserWorker: Este agente foi utilizado para comparação de

performance com o ZigWorker. É baseado no jcmjWorker, porém utiliza

o A* colaborativo como pathfinding.

Experimento 1

Turnos: 1000

Mapa:

Figura 5.21 Mapa do experimento 1

Resultados:

Tabela 5.1 Resultados do experimento 1

ZigWorker 510

CloserWorker 260

Page 32: sss3/TG/Relatorio_Final_sss3.docx · Web viewEste cenário tem sido um dos principais alvos dos estudos de inteligência artificial em ambientes multiagente. Existem grandes desafios

Este mapa demonstra a importância do algoritmo de aprendizagem do

ZigWorker. Inicialmente os agentes ZigWorker vão para a região à direita do

mapa, mas após a primeira viagem, eles passam a escolher a região inferior,

permanecendo nesta região até o final da partida.

Experimento 2

Turnos: 1000

Mapa:

Figura 5.22 Mapa do experimento 2

Resultados:

Tabela 5.2 Resultados do experimento 2

ZigWorker 1340

CloserWorker 1330

Page 33: sss3/TG/Relatorio_Final_sss3.docx · Web viewEste cenário tem sido um dos principais alvos dos estudos de inteligência artificial em ambientes multiagente. Existem grandes desafios

Neste mapa, ocorreu praticamente um empate, demonstrando que o

ZigWorker consegue a mesma performance no melhor caso do CloserWorker.

Experimento 3

Turnos: 3000

Mapa:

Figura 5.23 Mapa do experimento 3

Resultados:

Tabela 5.3 Resultados do experimento 3

ZigWorker 870

ZigWorker com agente explorador 896

CloserWorker 720

Neste mapa podemos ver que existe uma melhora, mesmo que

pequena, quando se utiliza um agente explorador. Enquanto os trabalhadores

Page 34: sss3/TG/Relatorio_Final_sss3.docx · Web viewEste cenário tem sido um dos principais alvos dos estudos de inteligência artificial em ambientes multiagente. Existem grandes desafios

estão coletando os recursos mais próximos, o explorador visita as outras

regiões e identifica as regiões com menor acessibilidade.

Experimento 4

Turnos: 3000

Mapa:

Figura 5.24 Mapa do experimento 4

Resultados:

Tabela 5.4 Resultados do experimento 4

ZigWorker 6388

ZigWorker com agente explorador 6397

CloserWorker 5973

Novamente há um ganho mínimo na utilização do agente explorador. O

ganho de desempenho na exploração é contrabalanceado pela perda de

Page 35: sss3/TG/Relatorio_Final_sss3.docx · Web viewEste cenário tem sido um dos principais alvos dos estudos de inteligência artificial em ambientes multiagente. Existem grandes desafios

desempenho do agente explorador em relação aos demais agentes, já que o

agente visita as minas mais distantes.

Experimento 5:

Turnos: 3000

Mapa:

Figura 5.25 Mapa do experimento 5

Resultados:

Tabela 5.5 Resultados do experimento 5

ZigWorker 1800

ZigWorker com agente explorador 1820

ZigWorker taxa de aprendizagem 0.25 1797

ZigWorker taxa de aprendizagem 0.25

com agente explorador

1810

ZigWorker sem utilizar propagação de

regiões

1610

Page 36: sss3/TG/Relatorio_Final_sss3.docx · Web viewEste cenário tem sido um dos principais alvos dos estudos de inteligência artificial em ambientes multiagente. Existem grandes desafios

ZigWorker taxa de aprendizagem 0.25

sem utilizar propagação de regiões

1631

CloserWorker 1487

Este mapa apresenta uma grande variedade de problemas apresentados

no capítulo 3. Na tabela de resultados podemos ver a importância do algoritmo

de propagação de distância nas regiões, e novamente os agentes exploradores

propiciaram um pequeno ganho de desempenho.

Podemos ver nas figuras 5.12 e 5.12 a diferença na escolha das minas

entre o ZigWorker e o CloserWorker. O CloserWorker acaba escolhendo uma

região com um gargalo, onde há um grande engarrafamento de agentes,

enquanto o ZigWorker escolhe as melhores regiões.

Figura 5.26 ZigWorker

Page 37: sss3/TG/Relatorio_Final_sss3.docx · Web viewEste cenário tem sido um dos principais alvos dos estudos de inteligência artificial em ambientes multiagente. Existem grandes desafios

Figura 5.27 CloserWorker

5.4 Problemas encontradosO principal problema encontrado foi o de controle de concorrência, já

que o sistema de reservas exige um sincronismo perfeito de tempo, pois se um

agente passa tempo demais pensando, e perde um turno, toda sua reserva não

vale mais, e acabam ocorrendo colisões.

O algoritmo de pathfinding chegou a ser melhorado, fazendo com que o

agente reservasse o caminho de ida e de volta. Com isto, o agente não teria

mais problema de ficar sem caminho de volta após a mineração, pois ele só se

movimentaria àquela mina, se um caminho de retorno fosse garantido, caso

contrário ele procuraria outra mina. Este melhoramento do pathfinding acabou

deixando a etapa de FindResource muito pesada, possibilitando a perda de

sincronia dos agentes. Em mapas pequenos e com poucos agentes, onde

existe menos processamento, este algoritmo se demonstrou melhor que o A*

colaborativo simples, e infalível em relação a colisões e agentes presos.

Outro problema encontrado foi a escolha do simulador. Quando este

trabalho foi iniciado, a versão mais atual do RTSCup era a 1.2. Esta versão

Page 38: sss3/TG/Relatorio_Final_sss3.docx · Web viewEste cenário tem sido um dos principais alvos dos estudos de inteligência artificial em ambientes multiagente. Existem grandes desafios

apresentava problemas sérios de desempenho, deixando inviável a construção

do agente proposto. Foi considerada a utilização do JaRTS, porém o JaRTS

não permitia utilizar mapas diferentes dos que já vinham inclusos no simulador.

Graças a Victor Costa, que tem como tema do seu trabalho de graduação a

melhoria do simulador RTSCup, a performance do RTSCup se tornou suficiente

para a implementação do agente deste trabalho.

Page 39: sss3/TG/Relatorio_Final_sss3.docx · Web viewEste cenário tem sido um dos principais alvos dos estudos de inteligência artificial em ambientes multiagente. Existem grandes desafios

6 Conclusão

A coleta de recursos é uma das etapas mais importantes de qualquer

jogo RTS, pois é essencial para o funcionamento das outras etapas. Esta

coleta não é feita por um só agente, e sim em um ambiente com vários

agentes, chamado de ambiente multiagente. Em ambientes multiagentes,

existe o problema da coordenação, pois cada agente tem de levar em

consideração não somente seus objetivos individuais, mas também os

objetivos coletivos. Esta área não está bem desenvolvida pela falta de

simuladores estáveis, fáceis de usar e com boa documentação, já que a

maioria dos jogos RTS são fechados, e não permitem a simulação de IA.

Neste trabalho, foram apresentados problemas comuns na coleta de

recursos multiagente, bem como possíveis soluções para estes problemas.

Estas soluções foram utilizadas para a criação de um agente, batizado de

ZigWorker, que foi simulado no simulador RTSCup, obtendo excelentes

resultados em diversas situações.

6.1 Trabalhos FuturosO agente explorador precisa ser estudado com mais detalhe,

melhorando seu desempenho, além de ser feito um estudo sobre a proporção

ideal entre trabalhadores e exploradores.

Este trabalho teve como objetivo implementar uma solução para a coleta

de recursos, baseado no game1 da competição do ORTS na AIIDE 2006/2007,

porém em trabalhos futuros, também serão desenvolvidas implementações

para os outros games, com objetivo final de desenvolver uma IA capaz de

controlar um time em um RTS capaz de derrotar jogadores experientes.

Page 40: sss3/TG/Relatorio_Final_sss3.docx · Web viewEste cenário tem sido um dos principais alvos dos estudos de inteligência artificial em ambientes multiagente. Existem grandes desafios

Referências

[1] ROBOCUP FEDERATION. RoboCup Brief Introduction. Acesso em:

18/03/2008. Disponível em: <http://www.robocup.org/Intro.htm>.

[2] MOURA, José Carlos. Uma estratégia eficiente de coleta multiagente para jogos RTS

[3] ORTS ORTS - A Free Software RTS Game Engine. Acesso em

18/03/2008. Disponível em: http://www.cs.ualberta.ca/~mburo/orts

[4] ARNOLD, Rachael. Real Time Strategy Games as Domain for AI Research

[5] BURO, Michael, Real-Time Strategy Games: A New AI Research Challenge

[6] SILVER, David, Cooperative Pathfinding

[7] Lester, Patrick. Pathfinding for Beginners Acesso em 19/03/2008.

Disponível em: http://www.policyalmanac.org/games/aStarTutorial.htm

[8] Amit’s Game Programming Information Acesso em 19/03/2008.

Disponível em: http://www-cs-students.stanford.edu/~amitp/gameprog.html

[9] WIKIPEDIA. Pathfinding Acesso em 15/06/2008. Disponível em:

http://en.wikipedia.org/wiki/Path_finding

[10] WIKIPEDIA. Strategy Video Game Acesso em 15/06/2008. Disponível em:

http://en.wikipedia.org/wiki/Strategy_video_game

[11] WIKIPEDIA. Pathfinding Acesso em 15/06/2008. Disponível em:

http://en.wikipedia.org/wiki/Path_finding

[12] WIKIPEDIA. Civilization IV Acesso em 15/06/2008. Disponível em:

http://en.wikipedia.org/wiki/Civilization_iv

[13] WIKIPEDIA. Optimal Foraging Theory Acesso em 15/06/2008.

Disponível em: http://en.wikipedia.org/wiki/Optimal_foraging_theory

Page 41: sss3/TG/Relatorio_Final_sss3.docx · Web viewEste cenário tem sido um dos principais alvos dos estudos de inteligência artificial em ambientes multiagente. Existem grandes desafios

[14] GameAI GameAI Acesso em 15/06/2008. Disponível em:

http://www.gameai.com/

[15] FILHO, Vicente Vieira JaRTS Acesso em 19/06/2008. Disponível em:

http://www.cin.ufpe.br/~vvf/jarts/index.htm

[16] FILHO, Vicente Vieira RTSCup Acesso em 19/06/2008. Disponível em:

http://www.rtscup.org/


Recommended