Home
ICE - Intelligence Control Engine
Contents
1. 6 2 6 Planos Considerando o fato de que a constru o de um planejador completo n o o objetivo deste trabalho o planejamento de cada agente dever ser realizado atrav s de uma biblioteca pr estabelecida de planos Cada agente ir possuir um conjunto de planos onde cada plano ter um objetivo a ser atingido um conjunto de condi es sobre as cren as que determinam a viabilidade de execu o do plano e um valor de prioridade que determina a ordem de prefer ncia com que o planejador ir escolher o plano a ser adotado caso mais de uma maneira de se realizar um objetivo seja poss vel A linguagem definida prov as seguintes constru es para a defini o de planos lt plans gt gt lt plans gt lt plan_declarator gt lt plan declarator gt 3 lt plan declarator gt 5 plan IDENTIFIER lt objective list gt if lt conditions gt priority INTEGER CONSTANT lt action_call_list gt 6 2 7 Rea es A funcionalidade do componente AR ser definida por um conjunto de rea es Cada rea o ser definida por um identificador para a rea o o nome da percep o que ir ativ la e a a o de resposta caso a percep o Vide glossario Veja 5 2 2 65 especificada seja ativada A palavra reservada reconsider serve para denotar a n o necessidade de se reconsiderar os objetivos caso a rea o seja ativada Esta funcionalidade
2. MethodHolder representa um m todo dentro da classe este campo cont m o tipo de retorno de um m todo e o c digo do mesmo ConstructorHolder uma especializa o de MethodHolder que cont m um construtor nele poss vel especificar um construtor da classe pai para ser invocando concomitantemente com o mesmo Esta estrutura do gerador de c digo permite que o ICEC seja facilmente adaptado para a gera o de c digo em outra linguagem orientada a objetos como por exemplo Java 7 2 Ambiente ICE A arquitetura ICE dividida em tr s componentes b sicos cada um desempenhando uma fun o distinta no ambiente do jogo O modelo deste ambiente ser primeiramente exposto de maneira geral e em seguida seus detalhes ser o explorados 83 7 2 1 Arquitetura Basica Sensor EZinputQueue Vector lt GenericAction gt etInput etInput GenericReflexes react fev aluatelnput GameEngine EBmaintoop EBgetPerception EBsetaction Ether tartReason processMessages receiv eMessages 1 ER GenericAgent SID Integer EBsName String EMbReconsider reason etSensorl nput EBgetactuato rOutput GenericPlanner EBcurrentPlan EBiCurrentAction eneratePlan selectPlan inextAction is Complete Lie Action Name String ildAgent Integer
3. FRA96 GAM94 141 REFER NCIAS BIBLIOGR FICAS BRATMAN M E What is intention In P R Cohen J Morgan and M E Pollack editors Intentions in Communication pages 15 31 MIT Press Cambridge Mass 1990 BROOKS Rodney A A robust layered control system for a mobile robot IEEE Journal of Robotics and Automation 1986 DAVIS Randall What Are Intelligence And Why 1996 AAAI Presidential Address Al Magazine Volume 19 Number 1 American Association for Artificial Intelligence DAWSON Bruce Micro Threads for Game Object Al Game Programming Gems 2 Charles River Media Inc 2001 DHEIN Guilherme Integrando delibera o e reatividade em uma arquitetura de agentes h brida homog nea Disserta o de mestrado Faculdade de Inform tica PUCRS 2000 FISCHER Klaus M LLER J rg P PISCHEL Markus A Pragmatic BDI Architecture Readings in Agents Morgan Kaufmann Publishers ed HUHNS Michael N SINGH Munindar P 1998 FRANKLIN Stan GRAESSER Art Is it an Agent or just a Program A Taxonomy for Autonomous Agents Proceedings of the 3rd International Workshop on Agent Theories Architectures and Languages Springer Verlag 1996 GAMMA Erich et al Design Patterns elements of reusable object oriented software Addison Wesley Publishing Company Inc 1994 142 GAS98 GASSER Les Agents and Multiagent Systems Themes Aproaches and Challenges Readings in Agents ed HUHNS Michael N SINGH Muni
4. Conclus o da modelagem f sica do sistema a ser implementado devido a restri es no tempo dispon vel a conclus o da modelagem f sica teve de ser postergada para o per odo do TC2 Esta modelagem consistiu da modelagem de objetos para a arquitetura ICE o compilador interpretador da IADL e o jogo de demonstra o a ser implementado Esta tarefa foi conclu da nas tr s primeiras semanas de agosto e foi de responsabilidade de Felipe Meneguzzi e Paulo Schneider Implementa o do kernel ICE depois de conclu da a modelagem da arquitetura ICE teve in cio a implementa o do cerne da arquitetura ICE possibilitando a cria o do jogo de demonstra o Um prot tipo que permita testes dever foi conclu do no in cio de outubro e foi de responsabilidade de Paulo Schneider Implementa o do compilador interpretador da IADL uma vez conclu da a modelagem f sica dos agentes da ICE a linguagem 1 A modelagem tamb m definiu se a linguagem seria compilada ou interpretada 118 definida no TC1 passou por testes de praticidade e viabilidade t cnica no inicio do TC2 Ap s a linguagem ter recebido os ajustes necess rios um compilador da mesma foi ser implementado Esta tarefa foi conclu da na primeira semana de setembro e foi de responsabilidade de Felipe Meneguzzi Implementa o dos jogos de demonstra o de conceito do ICE ap s ter sido conclu da a modelagem do kernel foi poss vel iniciar a implementa
5. belief nt direction 0 nt ammo 5 ool cover false nt distance 0 nt lastTurn i H H O a H actions shoot ammo turn int dir direction dir lastTurn dir move int size distance size takeCover cover true objective kill pre ammo gt 0 pos false hide pre ammo 0 pos false plan huntLeft kill if lastTurn 1 priority 1 move 1 136 turn 1 plan huntRight kill if lastTurn 1 priority move 1 turn 1 plan run hide Te trus priority 1 move 5 takeCover reaction turnLeft if noiseLeft turn 1 reaction turnRight if noiseRight turn 1 reaction shootFront if noiseFront shoot O arquivo Soldado ice que cont m esta descri o agora ser ent o submetido ao compilador ICE para transformar a descri o em c digo C Como a interface dispon vel linha de comando como na Figura 33 a sintaxe ser icec lt caminho do arquivo gt lt diret rio para gera o de c digo gt Exemplo CYWINNT AS ystemIZicommand com CG ICECNDEBUG gt icec Soldado ice generated Figura 33 Utiliza o do ICEC 5 Sa da do Compilador A sa da regular do ICEC um conjunto de classes que correspondem representa o em C da especifica o do agente em IADL Estas classes devem ser compiladas e ligadas ao programa alvo juntamente com as
6. lt beliefs gt lt actions gt lt objectives gt lt plans gt lt reactions gt 60 6 2 2 Tipos Como explicado na 3 4 a especifica o utilizando l gica complexa e excessivamente lenta este ltimo fato especialmente importante no contexto de jogos de computador Desta forma o grupo optou pela defini o utilizando tipos simples semelhantes aos existentes em linguagens de programa o contempor neas como C e Java Al m dos tipos simples duas possibilidades de tipos complexos foram adicionadas a linguagem a constru o de tipos compostos semelhantes a structs em C e a constru o de listas de tipos Os tipos compostos chamam se composite e ser o disponibilizados de modo a aumentar a legibilidade de cren as sobre uma mesma entidade As listas foram adicionadas na defini o da linguagem para facilitar a express o de conjuntos de entidades semelhantes por m apesar de a linguagem prover este tipo de constru o n o gera c digo no prot tipo desenvolvido no TC2 Esta funcionalidade n o foi implementada pois o tempo de implementa o seria proibitivo dado o objetivo de finaliza o antecipada do compilador visando a experimenta o nos jogos de demonstra o O grupo concluiu que a falta de listas n o diminui a expressividade da linguagem consistindo apenas de uma limita o do ponto de vista pr tico Estas defini es resultam nas seguintes regras lt simple type gt 5 int float bool string
7. DIS IT Q 0Q S S 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 1a11 Seq encia implementa o TC1 12a 16 Estudo do cronograma atividades 01 2 RONOGRAMA AGOSTO 1a18 Projeto e modelagem f sica dos componentes do sistema 19a 31 Implementa o do compilador interpretador da IADL In cio da implementa o do kernel da arquitetura ICE SETEMBRO 1a7 Implementa o do compilador interpretador da IADL 1a30 Implementa o do kernel da arquitetura ICE 23a30 Implementa o do jogo de demonstra o de conceito OUTUBRO DIS T QO Q S s BE 18 19 20 25 26 1a13 Implementa o do jogo de demonstra o de conceito 14a 31 Revis o bibliogr fica TC1 NOVEMBRO D IS T Q 0Q S S 21 22 23 24 25 26 27 28 29 30 1a20 Reda o e fechamento do vol Final TC2 DEZEMBRO D IS T Q 0Q S 2 3 4 5 6 7 9 10 11 12 13 14 16 17 18 19 20 21 23 24 25 26 27 28 30 31 B N ae gt 124 ANEXO Il IADL GRAM TICA COMPLETA Formato do Arquivo lt ice file gt gt lt agent file gt lt type file gt lt agent file gt 5 lt import section gt lt type declaration section gt lt agent gt lt type declaration section gt lt agent gt lt import section gt lt agent gt lt agent gt lt
8. ambiente e quem retira O GenericReflexes ao tratar as rea es 7 4 4 Classe Actuator Actuator fBoutputQueue Vector lt GenericAction gt etOutput etOutputAndU pdateBelief s Figura 26 Classe actuator Esta classe armazena a sa da de a es do agente Como O sensor ela possui uma fila de cenericaction e sua l gica a de manipula o de entrada e sa da em filas apenas com uma pequena diferen a na entrada O m todo de inser o no Actuator possui uma funcionalidade extra a de executar o resultado da a o no agente antes de inserir esta na fila Esta sem ntica foi adicionada para facilitar o controle da atualiza o das cren as pois como o agente esquizofr nico ou seja ele acredita que suas a es obtiveram resultados o melhor momento para esta atualiza o quando a a o enfileirada no Actuator onde ela esta prestes a ser retirada do agente O nome deste m todo setoutputAndUpdateBeliefs e a atualiza o as cren as feita atrav s do m todo update do GenericBeliefs 92 Quem insere na fila do Actuator O GenericReflexes ao gerar a a o reativa e O GenericPlan ao executar a a o planejada 7 4 5 Classe GenericReflexes GenericReflexes EBreact Mav aluatelnput Figura 27 Classe cenericReflexes Esta classe representa a parte reativa do agente ICE Ela ativada pelo GenericAgent como o primeiro passo d
9. es ao criar se uma classe derivada desta tem se uma nova classe que absorver estes atributos e comportamentos redefinindo recursos que esta requer A partir da descri o do agente ser o gerados ao todo dois arquivos na linguagem C para cada extens o das classes gen ricas realizada um arquivo de cabe alho e um arquivo com a implementa o propriamente dita 7 5 2 A es O construtor da classe cenericaction citado logo abaixo apresenta tr s par metros distintos um inteiro que representar o identificador do agente um string que receber o nome e um booleano que acionar a reconsidera o por parte do agente GenericAction int string bool Consideremos a primeira a o descrita para o agente Soldado a action shoot Um arquivo de cabe alho ShootAction h seria gerado com a inclus o das diretivas propostas pela classe cenericaction componente da arquitetura ICE onde uma classe derivada denominada por exemplo ShootAction herdaria as especifica es da classe base em quest o Na descri o da a o em IADL n o se tem men o da necessidade de novos par metros para sua inicializa o ent o veja como ficaria a implementa o de cada um destes arquivos come ando pelo arquivo de cabe alho que n o constar de nenhum atributo ShootAction h 100 include GenericAction h class ShootAction public GenericAction public ShootAction int string bool j O arquivo de
10. lt type gt gt lt simple type gt IDENTIFIER lt type declaration gt gt lt composite gt lt list gt lt composite gt gt composite IDENTIFIER lt fields gt lt fields gt gt lt field gt lt fields gt lt field gt lt field gt gt lt simple_type gt IDENTIFIER lt composite_reference gt gt IDENTIFIER IDENTIFIER lt list gt gt IDENTIFIER list of lt type gt lt constant gt gt lt mathematical_constant gt STRING_CONSTANT BOOL_CONSTANT lt mathematical constant gt 5 INTEGER CONSTANT FLOAT CONSTANT Al m da defini o dos tipos s o necess rios operadores para os tipos simples e compostos Novamente a n o inclus o das listas na 61 implementa o implica que as opera es com listas nao est o dispon veis para uso no prot tipo desenvolvido no TC2 Tais operadores est o definidos a seguir lt list statement gt gt IDENTIFIER lt list operation gt lt list iteration gt lt list_iteration gt gt iterate IDENTIFIER with IDENTIFIER lt action_effects gt lt list_operation gt gt add IDENTIFIER remove lt list condition gt gt lt type gt IDENTIFIER lt list logical operator gt IDENTIFIER where lt regular condition gt lt list logical operator gt gt in forall lt expression gt gt lt expre
11. FormigaAgent cpp include FormigaAgent h FormigaAgent FormigaAgent int i string s GenericAgent i s beliefs new FormigaBeliefs actuator new Actuator beliefs sensor new Sensor reflexes new FormigaReflexes sensor actuator iID objectives new FormigaObjectives static_cast lt FormigaBeliefs gt beliefs planner new FormigaPlanner static_cast lt FormigaBeliefs gt beliefs actuator iID 115 8 ATIVIDADES 8 1 Atividades e Responsaveis no TC1 As principais atividades desenvolvidas no Trabalho de Conclusao podem ser divididas em 8 1 1 Revisao Bibliografica A revisao bibliografica visou embasar teoricamente o projeto a ser desenvolvido e coletar material para a prepara o do volume final de TC1 A revisao bibliografica pode ser dividida em tr s areas relativamente distintas e portando p de ser delegada a diferentes componentes do grupo como segue Pesquisa sobre arquiteturas de agentes consiste em analisar arquiteturas e modelos de ag ncia pr existentes analisando seus pontos fortes e fracos bem como a viabilidade de inclus o do modelo escolhido como base na arquitetura geral do jogo Esta tarefa foi de responsabilidade de Thais Webber Pesquisa sobre arquiteturas de IA em jogos consiste em analisar as principais arquiteturas de IA atualmente usadas na ind stria novamente verificando pontos fortes e fracos e sua viabilidade de inclus o no projeto a ser desenv
12. acheiComida reaction oiAmiga if veAmiga acheiAmiga Um agente sempre ter conhecimento de seu mundo interno e esse conhecimento ser representado na forma de cren as para contemplar o modelo BDI estudado Assim como o componente dos reflexos foi estendido para o agente Soldado a classe GenericBeliefs presente na arquitetura ICE dever ser estendida para cada agente criado pois representar as cren as de cada agente especificamente Para o novo exemplo onde um agente Formiga tem em sua base de conhecimento atributos como sua quantidade de fome sua posi o flags que representam a visualiza o de outras formigas no 105 ambiente de predadores ou mesmo de alimento vejamos os arquivos e as estruturas criadas FormigaBeliefs h include GenericBeliefs h include GenericAction h include AndaAction h include FugaAction h include ComeAction h include AlertaAction h include ProtegidaAction h include AjudaAction h include AcheiAmigaAction h include AcheiComidaAction h class FormigaBeliefs public GenericBeliefs public FormigaBeliefs void update GenericAction int fome int posicao bool amiga bool predador bool comida private void come void alerta void protegida void ajuda void acheiAmiga void acheiComida void anda int passo void fuga int passoLargo O arquivo de cabe alho conter refer ncias aos componentes gen
13. bReconsider getName getIdAgent GenericObjectiv es EBcurrentObjective GenericObjectiv e EBevaluateCurrentObjectiv e Bev aluateObjectiv es EBselectNextObjectiv eU GenericPlan fBsObective String EBactionVector Vector lt GenericAc tion gt Actuator fBoutputQueue Vector lt GenericAction gt is Possible inextAction etPlanSize atisf y Obje ctiv e et Output et Output AndU pdateBelief s Jat GenericObjectiv e EBsName String EBisPossible EBisComplete EBgetName GenericBeliefs EBupaate Figura 19 Diagrama de classes do ambiente ICE O ICE foi modelado para ser em seu centro um conjunto de classes gen ricas que fornecem a funcionalidade b sica do sistema Portanto para adicionar as caracter sticas espec ficas de cada agente estas classes s o estendias com atributos e m todos sobrecarregados pela vers o compilada da descri o do agente descrita pela IADL 84 O ponto de liga o entre o ICE e o jogo desenvolvido se d atrav s da classe Ether Ela deve ser estendida manualmente ou seja o compilador da IADL n o gera uma vers o desta classe e seu funcionamento esta diretamente ligado ao jogo Esta a nica classe do ICE cujo Game Engine necessite possuir algum conhecimento A seguir uma breve descri o de cada classe da arquitetura Game Engin
14. desta forma o grupo gostaria de prestar agradecimento a algumas pessoas Em primeiro lugar ao orientador deste trabalho o professor Michael da Costa Mora que proporcionou a serenidade t o necess ria nos momentos de impasse que ocorreram no curso deste trabalho Ao professor Eduardo Henrique Pereira de Arruda e seus orientandos Cristiano Rech Meneguzzi Andr Gobbi Farina e Leandro Puricelli Pires respectivamente pela cria o e disponibiliza o do modelo utilizado como base para a elabora o deste documento s orientandas da professora L cia Maria Martins Giraffa ngela Cristina Mazzorani Luciana de Ara jo Spagnoli e Sabrina dos Santos Marczak pela pronta disponibiliza o do seu trabalho e materiais utilizados A Marcelo Barbosa por ter gentilmente aberto m o do seu tempo oferecendo seus dons art sticos utilizados na cria o dos jogos exemplo SUMARIO LISTA DE ABREVIATURAS ssssss sese IX LISTA DE FIGURAS ws iiccasesctccetecccaerscecedetesccecetshecedetacececedanecsdadizesacetecececacazessiease X LISTA DE TABELAS aaa i seaweeds es ence nina nai needed Xl RESUMO aso vas psec ems a pecs nen doen 50000500 uaa tane gem aar a a AE EE Orea DS EEN XII ABSTRACT TTT XIII 1 INTRODU O a T CS 1 2 OBJETIVOS sss RR aR aH 9 aaaea aduidi 3 AGENTES ec ae cascades a eden cece E NR ZEN adadi 5 3 1 Inteligencia Artmfeial esse eee esse eee esse eenn ennenen 5 3 2 Introdu o aos Agentes em lA sssssesessss ereenn
15. direction 0 ammo 5 cover false distance 0 lastTurn 1 void SoldadoBeliefs update GenericAction action string name action gt getName if name shoot ShootAction sa static_cast lt ShootAction gt action SHOOE 4 else if name turn TurnAction ta static_cast lt TurnAction gt action turn ta sdir else if name move MoveAction ma static cast lt MoveAction gt action move ma gt size else if name takeCover TakeCoverAction tca static_cast lt TakeCoverAction gt action takeCover Al m disso os procedimentos referentes execu o das a es s o aqui tamb m implementados pois fazem parte do conhecimento que o agente possui de si mesmo do que ele capaz de realizar exatamente como vimos no exemplo do agente Formiga Continua o do c digo de implementa o SoldadoBeliefs cpp void SoldadoBeliefs shoot ammo void SoldadoBeliefs turn int dir direction dir lastTurn dir 109 void SoldadoBeliefs move int size distance size void SoldadoBeliefs takeCover cover true Apos definir a base de conhecimento do agente com seus atributos e a es que realiza necess rio definir os objetivos do agente de forma que ele possa decidir suas a es em termos de seus desejos Para prover este tipo de funcionalidade duas classes
16. food distance food smell L goAway Predator predator predator distance goTo Predator predator predator distance hy attack Predator predator predator life goAntHill antHill leaveFood Food food food distance food smell antHill lostHealth health storeFood store true goRest 72 rest true objective feed pre hungry gt 50 and foods distance lt 20 and foods smell gt 80 pos false getFood pre store true and foods distance 0 and foods weight lt 50 pos store false foodInPantry pre antHill 0 pos false stayAlive pre health lt 50 pos false stayWellNourished pre hungry gt 80 pos false goToRest pre rest true pos false isThreaten pre predator distance lt 50 pos false plan eat InAntHill feed if foods distance lt 20 and foods smell gt 80 priority 1 goFood storeFood goRest plan eat feed if foods distance lt 20 and foods smell gt 80 priority 1 goFood plan runAway isThreaten if predator distance lt 50 and predator treat gt 5 prLority 1 goAway 73 plan goAttack isThreaten if predator distance lt 50 and predator treat lt 5 priority 1 goTo attack goRest plan live stayAlive if true priority 1
17. goAway plan fat stayWellNourished if true priority 1 goFood plan goPantry getFood if foods distance 0 and foods smell 100 priority 1 goAntHill plan goOutPantry foodInPantry if foods distance 0 and foods smell 100 priority 1 leaveFood reaction getTeethmark if attack lostHealth reaction emptyStomach if stayWellNourished lostHealth 6 3 5 Formiga O Agente Formiga tem em sua base de conhecimento as informa es necess rias para que possa caminhar no labirinto e cumprir seus objetivos Por exemplo considerando que seu campo de vis o se restringe a quatro espa os acima abaixo esquerda e direita ela perceber do ambiente 74 quando existir um inimigo pr ximo o que a obrigar a fugir temInimigo true quando houver comida em seu campo de vis o ela poder com la temComida true ou ainda quando n o existir nada em seu campo de vis o isto a fara andar para encontrar comida soAndar true Quando perceber a presen a de um inimigo seu objetivo ser fugir dele N o importando se h comida dispon vel O plano para cumprir este objetivo cont m a a o foge que dever faz la andar mais r pido na dire o oposta ao inimigo Da mesma forma que se encontrar comida dever com la atrav s da a o moveC Outro de seus objetivos percorrer o labirinto sempre que n o encontrar nada ao seu redor executando a a
18. int ammo 5 boolean cover false int distance 0 int lastTurn 1 98 action shoot ammo turn int dir direction dir lastTurn dir move int size distance size takeCover cover true objective kill pre ammo gt 0 pos hide pre ammo 0 pos plan huntLeft kill if lastTurn 1 move 1 turn 1 plan huntRight kill if lastTurn 1 move 1 turn 1 plan run hide move 5 takeCover reaction turnLeft if noiseLeft turn 1 reaction turnRight if noiseRight t rn l reaction shootFront if noiseFront shoot 1 Com base nesta descri o ser explicitada a maneira que o c digo deve ser gerado pelo compilador ICE ICEC na medida em que for identificando blocos de comandos pass veis de interpreta o gerando c digo 99 em C E importante salientar que conforme a arquitetura gen rica proposta na 87 2 ser o geradas extens es das classes que a constituem inclusive sobrecarregando alguns m todos cuja sem ntica n o pode ser definida genericamente Come aremos pelo bloco de comandos que representam as a es que o agente pode executar o bloco action O agente Soldado tem como a es definidas atirar contra o inimigo virar se em duas dire es mover se e proteger se Sabendo que na arquitetura proposta a classe GenericAction conta com alguns atributos e opera
19. intera es mais complexas poderiam confundir o usu rio Todavia esta simplicidade era a f rmula do sucesso de um jogo naquela poca e at hoje Entretanto os jogos n o eram necessariamente simpl rios Como a rea de gr ficos e sons estava apenas em est gio inicial o que existia visualmente n o era o suficiente para agradar por muito tempo o p blico Portanto os jogos dependiam da criatividade para possu rem alguma chance de sucesso 34 4 1 2 Evolugao de Hardware Com o tempo a evolu o dos computadores come ou a se refletir na ind stria dos jogos Com o aumento do processamento gr fico os jogos melhoraram a sua apar ncia e as formas eram mais definidas Com a melhoria no aparato de som os jogos se tornaram mais agrad veis ao ouvido e com o surgimento do mouse e joysticks os jogos aproveitaram estes perif ricos para obter uma interface melhor Por m a jogabilidade n o acompanhou a onda de melhorias e este fator ganhou menos import ncia comparada com gr ficos som e interface 4 1 3 Gr ficos A evolu o gr fica foi espantosa De enormes blocos coloridos formados por pixels que construiam r sticos cen rios 2D passamos para ambientes modelados e exibidos completamente em 3D Inicialmente os programadores manejavam pixels para formar personagens ambientes e arriscar anima es e g Pacman O passo seguinte da evolu o foi manipula o de arquivos de imagens para representar cen ri
20. moveTo e afastar se moveAway do jogador e atirar no mesmo shoot 66 Este comportamento seria atingido atrav s da seguinte defini o em IADL composite Player bool alive int health float distance agent Hans belief int health 10 int ammo 50 Player player action shoot Player player player health moveAway Player player player distance moveTo Player player player distance objective saveLife pre health lt 4 pos false killPlayer Player player pre player alive true and player distance lt 10 pos false plan flee saveLife if player distance lt 10 priority 1 moveAway player plan chase killPlayer if player distance gt 10 priority 1 moveTo player shoot player reaction getHit if shooting shoot player 67 6 3 2 Base de comando A base de comando pode ser considerada um centro de opera es de um jogo de estrat gia Ela estara encarregada de ordenar a unidade para colher recursos ou defender a base e ainda poder cuidar da unidade se necess rio Ao notar que os recursos da base est o escassos a base pode ordenar a unidade a colher recursos para abastecimento Quando a base estiver sob ataque ela poder pedir aux lio unidade que est sob seu comando para combater os atacantes Caso a unidade sofra muito dano a base pode ordenar que ela retorne para se recuperar Vejamos como
21. o moveA A cada ciclo de processamento a Formiga receber percep es do ambiente que lhe indicar o o que h ao seu redor partindo destas vir o suas decis es em detrimento de seus objetivos Logo abaixo segue a descri o do agente Formiga na IADL proposta agent Formiga belief bool temComida false bool temInimigo false bool soAndar true akion comer temComida true soAndar false moveC temComida false soAndar true acheiInimigo temInimigo true soAndar false 75 semInimigo temInimigo false soAndar true objective fugiriInimigo pre temInimigo true pos temInimigo false buscarComida pre temComida t rue pos false andarLabir pre soAndar true pos false plan correrInimigo fugirInimigo if true priority 1 foge plan comerComida buscarComida if true prLority 1 moveC plan andarLabirinto andarLabir if true priority 1 moveA reconsider reaction fugir if inimigo acheilnimigo reaction semPerigo if nInimigo semInimigo reaction comer if comida comer 76 7 MODELAGEM E IMPLEMENTA O A utiliza o do ambiente ICE ser baseada em dois componentes de software distintos um framework de objetos que ser utilizado no c digo do Game Engine do jogo e um compilador para os agentes deste ambiente Este framework de objetos ir suportar a utiliza o
22. os blocos reaction pois devido ordem de racioc nio imposta pela arquitetura ICE somente com a implementa o dos arquivos relativos s a es j se pode compor o componente reativo que o agente comporta Seguindo o exemplo do agente Soldado em IADL seguem as tr s percep es que o sensor do agente seria capaz de notar virar esquerda virar direita e atirar frente reaction turnLeft if noiseLeft turn 1 reaction turnRight if noiseRight turn 1 reaction shootFront if noiseFront shoot 1 Para estas rea es ocorrerem espera se que determinadas condi es sejam satisfeitas Para o agente Soldado existem tr s condi es para que suas rea es imediatas sejam acionadas conforme sua especifica o Considerando que o componente GenericReflexes da arquitetura tem por finalidade retirar estas percep es do Sensor do agente e process las de forma a gerar a es compat veis Cada agente criado ter uma extens o deste componente que possibilita a sobrecarga do m todo de avalia o destas entradas que sempre ser espec fico para cada agente Veja o c digo gerado para o nosso exemplo SoldadoReflexes h include GenericAction h include GenericReflexes h include TurnAction h include ShootAction h class SoldadoReflexes public GenericReflexes public SoldadoReflexes Sensor Actuator int void evaluateInput GenericAction 102 A gera o
23. planos do agente abstra dos pela classe GenericPlan Cada plano sera representado por uma classe derivada desta classe gen rica contendo as a es necess rias para cumprir o objetivo ao qual o plano se destina e tamb m ter depend ncia das cren as do agente no momento de ser selecionado e executado Segundo a descri o do agente Formiga ele teria apenas tr s planos um para cada um dos seus objetivos Vejamos como exemplo o plano raminta referente ao objetivo de procurar alimento 112 FamintaPlan h include GenericPlan h include FormigaBeliefs h include Actuator h include AndaAction h include ComeAction h class FamintaPlan public GenericPlan public FamintaPlan FormigaBeliefs Actuator int inline bool isPossible FamintaPlan cpp include FamintaPlan h FamintaPlan FamintaPlan FormigaBeliefs fbeliefs Actuator act int id GenericPlan fbeliefs act AndaAction al new AndaAction id anda false 5 ComeAction a2 new ComeAction id come false actionVector push_back al actionVector push_back a2 sObjective procurarComida bool FamintaPlan isPossible FormigaBeliefs bl static cast lt FormigaBeliefs gt beliefs if true return true else return false Os planos ter o al m de refer ncia para as cren as do agente tamb m para O Actuator onde poder o colocar as a es que solicitam para execu o O plano acima te
24. ricos pois esta fun o deve ser desenvolvida pelos fabricantes do hardware atrav s de drivers para a biblioteca O DirectX tornou se o novo padr o de desenvolvimento de jogos 4 1 8 Evolu o dos Profissionais Outro fator marcante no hist rico do desenvolvimento de jogos como as fun es desta ind stria mudaram durante o tempo e como elas responderam as evolu es A Tabela 1 mostra uma rela o entre o ano n mero de desenvolvedores e est gio de evolu o dos jogos Ano Pessoas Produtos 1971 1 Jogos texto em mainframes 1981 1 3 Cartuchos de videogame de 4k 38 1985 1 5 3 Jogos em disco para Apple Ile Commodore 64 1989 4 Jogos em disco para 0 PC 1993 8 Primeiro jogo em CD para 0 PC 1995 2001 25 Grandes jogos em CD Tabela 1 Evolu o dos jogos Nota se um grande aumento de pessoal desde 1971 Mas o que mudou Nos prim rdios do desenvolvimento de jogos os programadores eram a alma do neg cio Eram eles que desenvolviam a parte gr fica o som a interface com o usu rio e at a hist ria do jogo a qual n o necessitava tanta nfase na poca Com mais recursos de hardware dispon veis foi poss vel aprimorar a parte art stica pois desenhistas capacitados poderiam produzir as imagens do jogo m sicos poderiam compor uma trilha sonora escritores poderiam elaborar um roteiro para o jogo e os programadores poderiam se ater s partes realmen
25. sua arquitetura b sica podem ser facilmente compreendidos observando a Figura 2 Sensores Ambiente Modelo do Raciocinador Ambiente Atuadores Figura 2 Arquitetura b sica de um agente Atrav s dos sensores o agente capta as informa es e est mulos provenientes do meio externo O raciocinador atrav s das regras definidas em seu modelo de ambiente pode validar e atualizar suas informa es de forma que seus atuadores tenham condi es de interagir com o ambiente externo H duas vis es de agentes distintas segundo GAS98 Uma considera os agentes essencialmente conscientes entidades cognitivas que t m sentimentos percep es e emo es como seres humanos Outra vis o alternativa que agentes s o meramente aut matos e comportam se exatamente tal qual foram programados Esta vis o admite uma ampla variedade de computa es incluindo computa o de agentes A segunda vis o de GAS98 vem ao encontro da defini o de W0OO99 que define agente como qualquer entidade que perceba o ambiente raciocine sobre o mesmo e tenha condi es de agir sobre ele Como exemplo desta defini o o autor cita o termostato de um ar condicionado que percebe que a temperatura ambiente est no patamar definido e desliga o mecanismo de resfriamento do ar Outro exemplo desta defini o seria um daemon de UNIX que percebe ocorr ncias no ambiente do SO processa o que deve ser feito e atua sobre o mes
26. vel xiii ABSTRACT Recently the importance of Al in the process of game development has seen a very noticeable increase as the programming effort is shifting from sound and graphics to game play Also the dramatic evolution in hardware platforms since the birth of computer games has made possible the inclusion of complex behavior into program entities Taking into account that turning a program into an enjoyable game is an experimental process by nature it is necessary to provide an easy interface to define Al entities in particular one that is not hard coded in the program To this point higher levels of abstraction must be attained by the definition interface in order to allow non programmers to experiment possibilities One such abstraction is the notion of Al Agents as their definition tries to mimic mental structures The objective of this work is to define a kernel for an Inteligence Control Engine using the notion of Al Agents The definition interface where behavior is defined will be an external agent oriented language The usage of agents is due to its high level of abstraction which allows non programmers to experiment with behavior possibilities As Al programming is inherently complex this kernel should be an easily attachable module in order to reuse reliable code 1 INTRODUGAO A industria dos jogos tem passado por grandes evolu es desde seu in cio aproximadamente na d cada de 80 Nos seus pri
27. 4 2 1 Unreal Tournament eee e 40 422 Baldurs Gale aaa raias ppa aaa ria a 41 4 23 VADE TI 41 4 2 4 Black and WANG adia eee 41 As JOJgoS EXCMPIO 5 222 ssd aaa sintas eed Geet 42 4 3 1 Teheco Ball asa ias sra NS Ia 42 4 3 2 FormiguinhaS spo san SSL 43 5 A ARQUITETURA IGE ss sese 45 5 1 Funcionalidades Propostas ccccccceeeeeeeeeeeeeeeeeeeseeeeeeeeees 45 5 1 1 Defini o dos Agentes no Jogo o 45 5 1 2 Camada de Visualiza o sse eee 46 5 1 3 Ambiente de comunica o multi agentes 46 5 2 Descri o da arquitetura ICE nne ss 47 5 2 1 VISAO geral i verte ana SR ias ig 47 5220s Agentes dO ICE 22 csc cdeaesisnuaenesnisiiinbacesiesdasddsaaddnaancseedtias 48 5 2 3 Ether o ambiente dos Agentes nne 52 5 3 Revis es no projeto original sss seesss esec sese eenn 53 6 O PROJETO ICE vs ssssssssz55s2552aa svaseecctececececcecttctioaceet evans aada 55 6 1 Fundamentos do projeto nesse 55 6 1 1 A Separa o entre L gica e Dados 55 6 1 2 Modelando comportamento fora do c digo 56 6 1 3 Por que utilizar gentes eee 58 6 2 Considera es sobre a Linguagem csss sese sssss sse ssss esec ee 58 6 2 OA TTT 59 B22 RIT 60 0 2 I eT 61 O ZA CIEN AS ad a A E E N da 63 0 20 Objetivos irta a a Aes 63 6 2 6 Tle 64 diel REA ES monre TTT 64 6 3 Exempl
28. a cria o de procedimentos complexos uma vez que o programador do comportamento deve prever a priori uma grande maioria das possibilidades de percep o das entidades comandadas por um script sen o todas fato que o torna extremamente grande e sujeito a erros Assim sendo torna se necess ria uma abstra o diferente para a modelagem de comportamentos mais inteligentes Uma maneira de se modelar tais comportamentos de uma forma mais compreens vel a utiliza o de agentes uma vez que sua descri o envolve elementos como estados mentais objetivos e comportamentos entre outros HAD96 RAO98 FIS98 dependendo de qual modelo de ag ncia tomado como base 58 6 1 3 Por que utilizar Agentes Utilizando se a defini o de SHO93 Um agente uma entidade cujo estado visto como consistindo de componentes mentais tais como cren as capacidades escolhas e comprometimentos Estes componentes s o definidos de uma maneira precisa e ficam em parca correspond ncia com seus hom nimos consuetudin rios Pode se concluir que agentes s o definidos de uma forma n o amb gua o que os torna utiliz veis em um contexto computacional por m em termos de defini es mentais o que os torna mais intelig veis para quem os define Al m disso como mencionado na 83 existem algumas caracter sticas dos agentes tais como autonomia adaptabilidade e sociabilidade que proporcionam um grau ainda mais elevado de abstra o f
29. agentes atrav s de mensagens por exemplo As inten es como citado anteriormente podem ser estrat gicas ou t ticas O m dulo de Motiva es compreende as inten es estrat gicas aquelas que levam em conta al m dos objetivos futuros e das prefer ncias os atributos que definem as caracter sticas do pr prio agente HAD96 considera este conte do semelhante aos desejos da teoria dos BDs Para melhor entendermos como a arquitetura COSY est estruturada segue abaixo um esquema b sico da mesma 25 Motivac es l Racioc nio e Decis o CRD Execu o Execu o de ipt Protocol Atuadores fica CEP i Comunicacao Base de Conhecimento BC Cogni o Figura 6 Arquitetura COSY HAD96 Um script um procedimento estereotipado ou um plano para realizar uma tarefa espec fica Este pode conter cnamadas para outros scripts protocolos e comportamentos primitivos que os atuadores executam O componente de cogni o 55 administra a execu o de scripts delegando a execu o de comportamentos primitivos para os atuadores e a execu o de protocolos de coopera o para o componente respectivo P A tripla que caracteriza as arquiteturas BDI belief desire intention representada no COSY diretamente Assim como os protocolos de coopera o representam um di logo pr estabelecido para uma coopera o espec fica O Eu ser ent o respons vel pelo racioc nio sobre o mundo reagindo se a
30. apenas t cnicas j estabelecidas est o em uso ou em vias de serem aplicadas em produtos Dentro do contexto de pesquisa acad mica a utiliza o de agentes computacionais vem ganhando destaque nos ltimos anos uma vez que estes s o vistos com entidades definidas com um alto grau de abstra o facilitando a modelagem de sistemas Neste contexto apresentado ao leitor um resumo da hist ria desta ind stria a evolu o do processo de desenvolvimento de jogos de seu in cio humilde at a ind stria de bilh es de d lares dos dias atuais apresentando o que considerado estado da arte deste mercado atualmente Desta forma espera se vislumbrar mais claramente os rumos que est o sendo tomados para a melhoria do desenvolvimento de jogos Ao mesmo tempo para que melhor se compreenda o que s o agentes informa es sobre sua taxonomia comunica o e algumas no es sobre os diversos tipos de agentes s o apresentadas neste trabalho Ao se observar a necessidade de um novo paradigma para definir comportamentos na modelagem de programas dentro da ind stria de entretenimento eletr nico e considerando as caracter sticas positivas da utiliza o do conceito agentes computacionais define se o ICE sigla para Intelligence Control Engine O ICE consiste de um kernel n cleo de comportamento baseado em agentes para jogos com o prop sito de facilitar o desenvolvimento de entidades inteligentes em um jogo O relat rio a seguir
31. apresenta o gr fica complexa sendo esta por si s o argumento de um novo trabalho de conclus o Al m das dificuldades de se criar um jogo completo o grupo tamb m chegou conclus o de que as diversas facetas de sistemas de IA possuem podem apenas ser parcamente exploradas no per odo da disciplina de trabalho de conclus o sendo que diversas simplifica es na id ia original tiveram de ser adotadas para a viabiliza o do projeto especificado neste trabalho Por exemplo no in cio do TC foi cogitada a implementa o de um planejador completo para a arquitetura por m esta meta teve de ser descartada visto que n o seria poss vel alcan la simultaneamente com as demais A mais importante conclus o a que se chegou que a abstra o de agentes aparenta ser apropriada para a defini o de comportamentos em jogos de computador Sobre a execu o do projeto definido no TC1 observou se que a modelagem e implementa o do Kernel em si n o foi o item mais trabalhoso Os diversos componentes de suporte a arquitetura tais como o compilador e o Game Engine demandaram mais esfor o de implementa o sendo que de seu correto funcionamento dependia a correta implementa o e avalia o do Kernel ICE 122 9 1 Trabalhos Futuros citar Dentre as possibilidades de expansao do ambiente ICE pode se Cria o de um interpretador para a IADL atrav s da interpreta o da linguagem ser o poss veis o teste e modific
32. casos a solu o ideal seria que o programa pudesse decidir por si mesmo bastando especificar de uma forma gen rica o que ele deve fazer de certa forma de uma maneira semelhante ao que se faz com seres humanos WOO99 No caso de jogos de computador arriscamo nos a dizer que ainda mais importante a capacidade de lidar com situa es inesperadas uma vez que quem est gerando entradas para o programa um ser humano que t m rea es inerentemente complexas Estes fatores tornaram os agentes o foco de um enorme conjunto de interesses de comunidades de pesquisa acad mica e industrial desenvolvedores de software principalmente os voltados para o entretenimento entre outros Os avan os em arquitetura de software representa o de m todos e tecnologias de resolu o de problemas t m proporcionado o aumento crescente da capacidade das plataformas de computa o e uma ampla gama de novos conte dos vis es e possibilidades de agentes inteligentes serem integrados a sistemas no intuito de torn los mais independentes 3 2 2 Aplica es atuais Os ambientes de informa es modernos t m se tornado amplos abertos e largamente aut nomos e distribu dos Recentes estudos introduzem agentes como ambientes que partilham estas caracter sticas Sua maior dificuldade para prover uniformidade e consist ncia o dinamismo dos ambientes de informa o que impulsionam as interfaces a ter assistentes pessoais ativos e ada
33. com que no momento da submiss o de uma a o seus resultados sejam refletidos no modelo de mundo interno do agente O nico m todo componente da interface padr o desta classe chamado update que respons vel pelo processamento de mensagens que encapsulam uma a o e a ativa o dos resultados da mesma 7 4 7 Classe GenericObjectives GenericO bjectiv es EBcurrentObjective GenericObjectiv e ev aluate CurrentObjectiv e ev aluate Objectiv es EBselectNextObjectiv e Figura 29 Classe cenericobjectives Os objetivos de um determinado agente que utilize o modelo BDI como visto na 3 4 2 s o representados pelo componente Desires que equivalem aos objetivos do mesmo e est representado no componente GenericBeliefs Esta classe armazena os objetivos do agente e possui o algoritmo de escolha de objetivos Seus m todos s o sempre invocados pelo algoritmo de pensamento do cenericagent 94 Al m de possuir uma lista com todos os objetivos do agente ao chamar o m todo evaluateobjectives esta classe cria uma lista auxiliar que cont m todos os objetivos poss veis no ciclo atual Esta lista tem o objetivo de auxiliar na escolha do plano de execu o pois O GenericPlanner poder achar um plano que satisfa a o objetivo principal por m n o satisfa a a condi o a ser executada Neste caso outro objetivo poss vel deve ser escolhido M todos Principais evaluateCurrentObjecti
34. conflitos e relacionamentos com novas cren as s o avaliados passando assim a tornarem se inten es para o agente As inten es geradas neste processo ainda podem servir como planos parciais para o Raciocinador Meios fim fazendo o gerar novas op es ao mesmo tempo o Analisador de Oportunidades tamb m gera op es em fun o das altera es nas cren as repetindo desta forma o processo Existe ainda um mecanismo que atua em paralelo com o Filtro de Compatibilidade que o Filtro de Sobrescrita ele reaproveita as op es descartadas por incompatibilidade analisando a possibilidade de ser descartada como inten o ou aproveitada em rela o a outras op es se estas claro considerarem as condi es codificadas no Filtro de Sobrescrita Segundo DHE00 aconselh vel que este mecanismo n o seja t o suscet vel a reavaliar planos pois isto aumentaria muito a quantidade de delibera o no agente reduzindo o papel do comprometimento apesar de que o agente tamb m n o pode ser muito preso ao comprometimento deixando de reagir a mudan as importantes Logo tem se como um dos resultados pr ticos da arquitetura IRMA 21 3 5 2 PRS PRS significa Procedural Reasoning System e uma arquitetura de racioc nio e execu o de tarefas em ambientes din micos Por esta caracter stica que PRS classificada como uma arquitetura h brida em muitas bibliografias DHEOO Inicialmente ela foi desenvolvida para um sis
35. cover false int distance 0 int lastTurn 1 3 3 A es Depois de definidas as cren as podemos passar para a defini o das a es que o personagem poder executar A execu o destas a es poder modificar as cren as do agente vai depender da descri o Seguindo a especifica o textual do agente Soldado que estamos modelando vejamos a sintaxe deste bloco de descri o action shoot ammo turn int dir direction dir lastTurn dir move int size distance size takeCover cover true 132 Podem ser definidas a es com ou sem par metros As a es definidas sem par metros como no exemplo as a es shoot takeCover modificam as cren as do agente atribuindo novos valores constantes a elas As outras a es turn int dir move int size v o depender do valor que recebem para alterar as cren as que modificar 3 4 Rea es Nesta pr xima etapa definiremos um conjunto de rea es para o personagem Soldado que ser o descritas em fun o das percep es definidas para o agente Sabendo que o Soldado perceber por exemplo a exist ncia de um inimigo sua esquerda sua direita ou sua frente pode se modelar algumas rea es imediatas como atirar se o inimigo estiver na sua frente ou virar para o lado aonde o inimigo se encontra Este bloco de comando representado pela palavra reservada reaction seg
36. de funcionalidades a serem contempladas no projeto e posterior implementa o Interface consiste em estabelecer um padr o de interface de entrada i e linguagem orientada a agentes para a defini o de comportamento Tamb m consiste em estabelecer uma interface API a ser utilizada pelo ambiente externo dentro do jogo que abrigar o ICE Desenho da Arquitetura consiste na defini o diagramada em alto n vel da arquitetura a ser projetada posteriormente Projeto consiste na defini o do projeto f sico a ser implementado durante o TC2 8 1 3 Reda o do Volume Esta tarefa consistiu na reuni o do material textual produzido ao longo do semestre para a elabora o do volume final de TC1 Este volume 117 contemplou os assuntos estudados na fase revisao bibliografica bem como o projeto elaborado na fase de projeto de arquitetura A responsabilidade de redigir o embasamento te rico foi da pessoa correspondente ao estudado na fase de revis o bibliogr fica e a responsabilidade de documenta o do projeto foi de responsabilidade do grupo todo 8 2 Atividades e Respons veis no TC2 As principais atividades a desenvolvidas no Trabalho de Conclus o 2 podem ser divididas em tr s grandes grupos 8 2 1 Implementa o do Projeto Este grupo de tarefas est relacionado com a implementa o real do sistema apresentado no TC1 e testes relativos ao ajuste t cnico da IADL e inclui as seguintes tarefas
37. desenvolvimento dos jogos como a intelig ncia artificial foi aproveitada neste contexto e alguns estudos de caso 4 1 Hist rico do desenvolvimento de jogos 4 1 1 O Come o O desenvolvimento de jogos para computador come ou e evoluiu atrav s de um caminho relativamente diferente de outras aplica es da rea da inform tica como banco de dados e outros De acordo com ROLOO enquanto o desenvolvimento de aplica es comerciais e cient ficas come ou com computadores de grande porte os mainframes e evoluiu para sistemas mais dom sticos os computadores pessoais o desenvolvimento de jogos come ou principalmente em sistemas de pequeno porte como o Commodre 64 e evoluiu para os sistemas dom sticos previamente citados A evolu o de ambos tornou poss vel a utiliza o de computadores tanto para entretenimento quanto para trabalho como por exemplo operar um aplicativo de planilha eletr nica e jogar um jogo de ltima gera o ambos aplicativos no mesmo computador Uma caracter stica interessante do desenvolvimento de jogos em sua fase de ascens o aproximadamente 1980 era a certeza de que o computador ou seja o hardware onde o jogo seria executado era id ntico ao computador em que era desenvolvido interessante comparar este modelo com o desenvolvimento atual para videogames onde o hardware espec fico e conhecido Isto traz alguns fatores desej veis aos desenvolvedores pois como a plataforma imut
38. dos agentes ICE que ser o gerados pelo compilador ICE que ir gerar agentes que estendem a funcionalidade de um agente b sico que conter os algoritmos de comunica o com o framework Estes componentes ser o apresentados nas se es a seguir descrevendo as alternativas de implementa o adotadas al m de sua rela o com a arquitetura conceitual apresentada na 5 7 1 Compilador Uma das caracter sticas fundamentais do ambiente ICE a possibilidade de pessoal n o t cnico criar e modificar comportamentos definidos por uma linguagem de mais alto n vel do que as linguagens de programa o tradicionais Para este fim foi implementado um compilador que traduz descri es de agentes feitas na linguagem IADL que est definida na 86 2 estas descri es s o transformadas em um conjunto de classes que estendem um conjunto de classes b sicas como descrito na Figura 16 TT Ambiente ICE o GenericA gent Jogo Ether Agente 1 Agente N Compilador ICE ICEC Agente 1 IADL Agente N IADL Figura 16 Vis o geral do ambiente ICE 7 1 1 Compila o versus Interpreta o Na 6 1 2 foi apresentada a import ncia de se parametrizar o comportamento das entidades de um jogo e desta forma evitar codificar este tipo de informa o nos fontes do programa Logo a id ia de um compilador cuja sa da um conjunto de cla
39. e selecionar planos conforme seus objetivos 3 A Linguagem de Descri o de Agentes ICE IADL A IADL linguagem possui um alto n vel de abstra o quando comparada s linguagens de programa o tradicionais Logo a seguir veremos como utilizar cada comando dispon vel na linguagem de forma que se possa descrever o comportamento de um personagem O primeiro passo para descrever um agente definir quais os conhecimentos que ele ter de si mesmo e do mundo quais as a es que poder realizar se ele ter objetivos a cumprir quais planos ele ser capaz de escolher e executar Ent o comecemos por uma descri o textual do agente que queremos modelar Suponhamos como exemplo que queremos modelar um personagem que tenha rea es e atitudes semelhantes s de um soldado Ent o o mesmo ter em sua base de cren as a dire o em que olha a que dist ncia esta do inimigo a quantidade de muni o dispon vel e um indicador de quando deve proteger se 130 Suas principais a es neste contexto ser o atirar no inimigo perdendo muni o virar se para um lado ou outro mover se modificando sua no o de dist ncia em rela o ao inimigo proteger se quando perceber que n o tem mais muni o S com estas especifica es j poder amos modelar um agente essencialmente reativo simplesmente conhecendo as percep es que ele capaz de captar do ambiente do jogo Passemos ent o para
40. e 0 ICE Nele sera chamado 0 metodo startReason da classe Ether para que os agentes processem 7 3 2 Classe Ether Ether EBstartReason process Messages f receiv eMessages Figura 22 Classe Ether Esta a classe que controla a execu o dos agentes e faz a representa o do ambiente para estes Possui uma refer ncia para todos os agentes que devem realizar alguma execu o O Ether ativado a partir do Game Engine atrav s da chamado ao m todo startReason Possui m todos virtuais que devem ser estendidas por uma implementa o filha desta classe para a captura e envio de a es em rela o ao ambiente Isto pois estas informa es s o muito dependentes do ambiente portanto foram relegadas para a implementa o especifica do jogo M todos principais startReason faz com que para todos os agentes no sistema seja realizados a captura de percep es do ambiente a inser o destas percep es no agente a transfer ncia de processamento para o agente e finalmente a captura e o envio das a es processadas pelo agente para o ambiente E receiveMessages processMessages sao respectivamente os m todos de recebimento de percep es e envio de a es para o ambiente Eles devem ser implementados por uma vers o estendida da classe jogo Ether pois s o dependentes do ambiente do 88 7 4 Agente As unidades comportamentais d
41. enne 6 3 2 1 Origens dos Agentes eee 6 32 2 A elle le eUT H 3 2 3 Defini es B sicas sobre Agentes sse eee 8 3 3 TAXONOMIA seren aa aeeoa casam seve tideseancaqcenccssvivetecedexsettens 11 ue ANG ON OS asia e ra iE NEEE AN ad ua ralis rs 11 SEJ le pio O RR RE OR cacy RR PANO RR AR E A ss pus 12 3 4 Modelos de Agentes eee 14 3 4 1 Agentes Reativos ee 15 SA e LT BDU ra e da dn Ea bas aaa arcada 16 3 4 3 Arquiteturas H bridas sese 17 3 5 Arquiteturas de Agentes ssssessss sese esse eee eee ennenen eee 18 DES RIVA rasante ada a cet a cee ng ee dd DAR 18 O OPA S quali Sp Eo en a a E e 21 Se OR OSY deraa NR RE PERENE RR DEAR RR CUP AAt 24 DA ORA eco ento cs Ad ab Ce eed ahh RR da ARA A og hat 25 32070 lai 2 AP reinar ed e R 27 3 5 6 Compara o entre as arquiteturas e e e rere eernnne 29 4 PROGRAMA O DE J060S sss nenen 32 4 1 Hist rico do desenvolvimento de jogos 32 AT O COME O oc ira aaa ainda a da td 32 4 1 2 Evolu o de Hardware eee ee 34 e e Gelle s SRP RSS E RS RE RENO EE VER CON RERDRRRR E TORRE 34 AAA SOM eae SS aS 35 vi 4 1 6 Jogos Multi Jogador sss sese 35 4 1 7 Evolu o de Software e eeeeerereeerereenos 36 4 1 8 Evolu o dos Profissionais terrenas 37 4 1 9 Intelig ncia Artificial nos Jogos io 39 4 2 O Estado da Arte da IA na ind stria 40
42. houverem comidas no labirinto mostrando ao final o vencedor quem obteve o maior n mero de comidas capturadas 45 5 A ARQUITETURA ICE Neste capitulo serao descritas as funcionalidades propostas da arquitetura ICE bem como seus componentes principais 5 1 Funcionalidades Propostas 5 1 1 Defini o dos Agentes no Jogo A funcionalidade principal a ser oferecida pelo ambiente ICE sera a defini o dos agentes imersos no jogo Esta defini o sera feita atrav s de uma linguagem orientada a agentes onde o usu rio poder definir as entidades utilizando dois n veis de abstra o No primeiro e mais baixo n vel o usu rio ir especificar rea es a situa es simples para serem realizadas assim que percep es espec ficas forem detectadas pelo agente No segundo n vel de abstra o o usu rio ir especificar os objetivos da entidade que ent o ir se responsabilizar por planejar e escolher as a es de baixo n vel necess rias para o cumprimento destes objetivos No prot tipo implementado o planejamento consiste apenas em selecionar planos pr definidos interessante notar que a diferencia o nos n veis de abstra o pode ser encarada da mesma forma que a diferencia o entre seres dotados de capacidades cognitivas mais abstratas i e seres humanos animais inteligentes e seres dotados de capacidades de a o e rea o i e objetos inanimados insetos Esta diferencia o tamb m important
43. muito consenso em rela o solu o dos problemas sendo um dos principais motivos disto extrema dificuldade de caracterizar se o termo Intelig ncia e mais ainda adicionando se o termo Artificial uma vez que quanto mais se desenvolve a IA mais restritivo o termo Intelig ncia se torna DAV96 Al m do mais dos diversos problemas que a IA se prop e a resolver n o existe uma maneira universal de trat los mas sim um conjunto muitas vezes vasto de solu es dentre as quais sobressaem algumas como mais ou menos adequadas sendo desej vel ao pesquisador em IA conhecer diversas maneiras de resolver o problema para poder selecionar a mais adequada para um determinado caso MIN92 Este fato torna esta rea extremamente multidisciplinar fazendo com que frequentemente cientistas de outras reas migrem gradualmente para a IA pois nela encontram as ferramentas e o vocabul rio para sistematizar e automatizar as tarefas intelectuais nas quais t m trabalhado Dentre as diversas solu es da IA pesquisadas atualmente figura o conceito de Agente inserido no contexto de Intelig ncia Artificial Distribu da ou DAI Este conceito na opini o deste grupo uma das solu es com potencial de ser a mais adequada para a quest o proposta neste trabalho ou seja a modelagem de jogos N o interessante se aprofundar neste momento nos motivos que levaram o grupo a escolher este tipo de solu o uma vez que isto ser tratado no cap
44. o comportamental orientada a agentes Esta linguagem tem como objetivo principal proporcionar um alto n vel de abstra o para quem a utiliza ICE Intelligence Linguagem Control Orientada a Engine Agentes Figura 1 Contexto da arquitetura ICE dentro do jogo Deste modo pretendeu se centrar toda a tarefa de IA em um n cleo oferecendo o poder de modelagem do ICE para os desenvolvedores e ao mesmo tempo cortando o tempo de desenvolvimento como mostra a arquitetura da Figura 1 O projeto ICE tem como caracter stica o c digo aberto e uma arquitetura projetada para ser modific vel portanto poder ser modificado de acordo com as necessidades peculiares de poss veis desenvolvedores interessante salientar neste ponto que apesar de extremamente importante no mercado atualmente o desenvolvimento da apresenta o de um jogo especialmente a parte gr fica n o foi o foco deste trabalho Este desvio de aten o se deveu principalmente a restri es de tempo uma vez que como j citado o desenvolvimento completo de jogos uma tarefa que envolve um grande n mero de pessoas por um longo per odo de tempo 3 AGENTES 3 1 Intelig ncia Artificial Uma das maiores areas dentro da Ci ncia da Computagao atualmente a Intelig ncia Artificial Esta area abrangente de tal modo que ha quem diga poderia ser ela mesma uma ci ncia independente MIN92 IA uma rea onde n o h
45. o de jogos para serem encaixados no mesmo Este jogos n o apresentaram tecnologias avan adas de visualiza o apenas demonstraram o conceito da arquitetura ICE em funcionamento Esta tarefa foi conclu da na segunda semana de outubro e foi de responsabilidade de Paulo Schneider e Thais Webber 8 2 2 Revis o Bibliogr fica Este grupo de tarefas visou acrescentar a base te rica para os aspectos utilizados na implementa o dos componentes do ICE al m de enriquecer os t picos abordados no TC1 Este grupo de tarefas foi conclu do na segunda semana de novembro e est dividido em Pesquisa sobre tecnologias de implementa o de jogos consiste em pesquisar as mais recentes tecnologias utilizadas na implementa o de jogos de modo a embasar a implementa o do jogo de demonstra o Esta tarefa foi de responsabilidade de Paulo Schneider Pesquisa sobre engenharia de software consiste em pesquisar os requisitos necess rios para a modelagem e implementa o do sistema proposto de modo a facilitar a integra o com o jogo de demonstra o Esta tarefa foi de responsabilidade de Felipe Meneguzzi 119 8 2 3 Reda o do Volume Final de TC2 Este conjunto de tarefas consistiu da integra o da modelagem do sistema com o material colhido na revis o bibliogr fica e as conclus es obtidas da implementa o do sistema proposto Este grupo de tarefas foi conclu do na metade de novembro As seguintes tarefas comp em est
46. o maior grau de fidelidade poss vel do mundo real 3 3 2 Ambientes Segundo WOO99 um agente um sistema computacional que est situado em algum ambiente e que recebe a sa da dos atuadores e fornece a entrada dos sensores De acordo com a Figura 3 Entrada Sa da dos Atuadores Ambiente Figura 3 Vis o abstrata da intera o agente ambiente WOO99 13 Em geral o agente n o tem controle total sobre o ambiente onde est situado de acordo com WOO99 na melhor das hip teses ele ter controle parcial sobre o ambiente isto ele poder influenciar o mesmo Neste contexto a capacidade do agente influenciar o ambiente est limitada pelo conjunto de a es que o agente pode executar sobre o mesmo Estas a es podem falhar e nem sempre podem ser executadas por exemplo um soldado n o pode realizar uma a o do tipo atirar caso sua arma n o esteja carregada Logo a complexidade de um agente proporcional complexidade do ambiente em que ele est inserido e portanto o processo decis rio afetado por diversas caracter sticas do ambiente RUS94 sugere a seguinte classifica o das propriedades do ambiente retirada de WOO99 Acess vel versus inacess vel refere se capacidade de se obter informa es completas sobre o ambiente Neste sentido o mundo real em geral inacess vel para os seres humanos Quanto mais acess vel o ambiente mais simples ser construir agentes para oper
47. poderia ser gerado pelo compilador da linguagem Por m agora necess rio refor ar a abstra o de agente como uma entidade capaz de perceber e atuar no ambiente reativamente ou deliberativamente estendendo se a classe GenericAgent provida pela arquitetura ICE Para exemplificar mostraremos os dois agentes abordados neste cap tulo o agente Soldado e o agente Formiga Eis as interfaces para as classes em que est o representados SoldadoAgent h FormigaAgent h include GenericAgent h include GenericAgent h include SoldadoBeliefs h include FormigaBeliefs h include SoldadoReflexes h include FormigaReflexes h include SoldadoPlanner h include FormigaPlanner h include SoldadoObjectives h include FormigaObjectives h class SoldadoAgent public class FormigaAgent public GenericAgent GenericAgent public publies SoldadoAgent int string FormigaAgent int string 114 A implementagao de suas classes segue logo abaixo SoldadoAgent cpp include SoldadoAgent h SoldadoAgent SoldadoAgent int i string s GenericAgent i s beliefs new SoldadoBeliefs actuator new Actuator beliefs sensor new Sensor reflexes new SoldadoReflexes sensor actuator iID objectives new SoldadoObjectives static cast lt SoldadoBeliefs gt beliefs planner new SoldadoPlanner static cast lt SoldadoBeliefs gt beliefs actuator iID
48. programa para esta sub classe com extens o cpp ter simplesmente a inclus o do arquivo de cabe alho criado e a implementa o do construtor para este tipo de objetos que neste caso espec fico n o ter bloco de comandos pois n o declara nenhum atributo na especifica o desta classe include ShootAction h ShootAction ShootAction int id string name bool recon GenericAction id name recon Em se tratando de a es que requeiram passagem por par metro de alguma outra vari vel tem se o acr scimo deste novo par metro no construtor da a o Considerando o exemplo do agente Soldado tem se a a o move que requer a passagem por par metro do valor do deslocamento que se quer dar na posi o do agente Veja no exemplo de c digo gerado abaixo MoveAction h include GenericAction h class MoveAction public GenericAction public MoveAction int string bool int int size U MoveAction cpp include MoveAction h MoveAction MoveAction int id string name bool recon int auxsize GenericAction id name recon size auxsize Como se pode notar o par metro auxsize foi inclu do na implementa o do construtor desta a o sendo atribu do vari vel size esta um atributo da classe MoveAction declarada no arquivo de cabe alho gerado pela a o move 101 7 5 3 Rea es Passemos agora para os blocos de comandos da IADL que representam as rea es do agente
49. representa o requisito final de conclus o da disciplina de Trabalho de Conclus o 2 do curso de Inform tica da Faculdade de Inform tica da Pontif cia Universidade Cat lica do Rio Grande do Sul A principal rea de pesquisa contemplada no seu conte do a Intelig ncia Artificial dando enfoque a aplica o da mesma na rea de entretenimento eletr nico em especial aos jogos de computador O conte do do texto apresentado neste trabalho assume conhecimentos em n vel de gradua o em inform tica s o fornecidas explica es mais detalhadas quando algum conte do mais avan ado apresentado 2 OBJETIVOS O objetivo deste trabalho definir um kernel que permita a defini o de comportamento de entidades a serem utilizadas no mbito de jogos de computador A defini o deste comportamento abstra da utilizando agentes definidos atrav s de uma linguagem que visa facilitar o trabalho do desenvolvedor seja ele da rea t cnica ou n o Para este fim foi criado um prot tipo de n cleo ou kernel de intelig ncia artificial Dentre os objetivos principais do mesmo est um alto grau de modularidade de modo que ele possa ser conectado com projetos de novos jogos facilmente e desta forma poupar tempo para os programadores Al m disto um m dulo externo ao jogo pode ser mantido separadamente minimizando defeitos Como consequ ncia da necessidade de modelagem externa dos dados foi criada uma linguagem de defini
50. ser definida na linguagem atrav s das seguintes constru es lt reactions gt gt lt reactions gt lt reaction gt lt reaction gt 3 lt reaction gt gt lt reaction_modifier gt reaction IDENTIFIER if IDENTIFIER lt action_call gt lt reaction_modifier gt gt reconsider 3 6 3 Exemplos de utilizagao da linguagem De modo a validar a expressividade da linguagem especificada na 6 2 alguns exemplos de uso ser o apresentados nesta se o junto com sua sem ntica 6 3 1 Soldado Hans O soldado Hans um soldado alem o que tem dois objetivos principais sobreviver ao combate saveLife e eliminar o jogador inimigo quando estiver a seu alcance killPlayer Na sua representa o de mundo o outro jogador representado atrav s de sua sa de a dist ncia que ele se encontra do jogador e de sua condi o de vivo Hans considera importante para a sua representa o do mundo o quanto de sa de ele possui health a sua quantidade de muni o ammo e os dados sobre os jogadores que ele j detectou Ao ser criado ele acredita que sua sa de vale 10 unidades e que tem 50 unidades de muni o Para realizar seus objetivos Hans conta com dois planos uma para manter se vivo caso algum jogador se aproxime dele quando ele estiver em uma situa o cr tica flee e outro para ca ar se o jogador estiver ao seu alcance chase A sua capacidade de atua o se resume a aproximar se
51. situa o demanda e deliberando sobre qual a melhor forma de realizar objetivos e satisfazer inten es 3 5 4 GRATE A arquitetura funcional deste agente assemelha se com a arquitetura IRMA vista anteriormente Por m GRATE tem componentes adicionais que incorporam a resolu o de problemas de forma colaborativa Ele utiliza os conceitos de combina o de inten es e responsabilidades para estabelecer 26 uma atividade colaborativa e monitorar sua execu o Como mostra a Figura 7 esta arquitetura tamb m se utiliza dos conceitos de arquitetura BDI Eventos Locais Atos Relacionados Monitorar Controlar Execu o Eventos Falha de Comprometimento Novo Objetivo An lise Meios Fim Biblioteca de Verificador de Receitas Compatibilidade Nova Inten o Identificar participantes Consistente em potencial Inten es Coniuntas Organiza o Inten es de Estrat aia Modificadas Novo Objetivo Local Novo Ato Social Inten o Inconsistente Resolvedor de Inconsist ncias Capacidades dos Outros Verificador de Definir Atos Individuais Deseios Figura 7 Arquitetura funcional da GRATE HAD96 Esta arquitetura considera que eventos ocorrem como resultado de uma a o local para resolver determinado problema ou por mudan as no ambiente adicionalmente se o evento ocorrer em meio comunidade ambiente de coopera o entre os agentes controlado por um processo Monitor de Eventos Evento
52. suportam uma vasta s rie de op es para auxiliar o programador em sua tarefa O sistema operacional MS DOS foi a primeira plataforma de jogos para o PC Por m o desenvolvimento para este sistema possu a seus 37 contratempos O relacionamento entre o MS DOS e os componentes gr ficos e de som n o era ideal Considerando o fato de que as imagens necessitavam do acesso direto placa de v deo era necess rio conhecer os padr es das mesmas e isto se mantinha verdade em rela o s placas de som ROLOO Portanto os programadores precisavam escrever os drivers para utilizar tais perif ricos Tamb m de acordo com ROLOO com o lan amento do Windows 3 1 os programadores de jogos cogitaram a possibilidade de mudar a plataforma de desenvolvimento por m esta mostrou uma perda de performance acentuada se comparada ao MS DOS portanto a id ia foi abandonada O Windows 95 passou pelo mesmo efeito No entanto em 1995 a Microsoft lan ou uma biblioteca gr fica e de udio chamada DirectX Inicialmente ela n o correspondia velocidade do MS DOS mas ap s a terceira vers o ela passou a trazer melhores resultados Hoje esta biblioteca est na sua oitava vers o e possui componentes gr ficos 2D e 3D de udio interface rede e outros Ela apresenta ao desenvolvedor de jogos uma camada que abstrai a especifica o de hardware possibilitando que este n o precise se preocupar em fornecer suporte a determinados perif
53. tem relagao direta com o atributo hungry pois a saude dela depende do fato de estar bem alimentada ou seja a fome nao pode ultrapassar o limite m dio de 50 unidades Existe um predador que podera ataca la ou nao e este tera como caracter stica o grau de amea a que representa para a AntBot treat seu nivel de vida life e a que distancia se encontra distance A AntBot sabe a distancia existente entre ela e 0 formigueiro antHill e tem conhecimento da necessidade de armazenar alimento ou nao atrav s do atributo booleano store A AntBot nao necessita ir ao formigueiro somente para armazenar alimento mas tamb m pode ir para la apos um combate pois precisara descansar atributo rest para recuperar suas for as Ela sabe que se comer o alimento existente no formigueiro ter de sair em busca de mais para reposi o Seus objetivos primordiais s o alimentar se buscar alimento e armazenar no formigueiro manter se viva e de prefer ncia bem nutrida com um n vel de fome inferior a 50 unidades e ainda fugir do predador amea a Este exemplo est descrito em IADL logo abaixo composite Predator bool treat int distance int smell int life bool detect composite Food int distance int smell int weight 71 agent AntBot belief int hungry 0 int health 100 int antHill 150 bool store true bool rest true Predator predator Food food action goFood Food food
54. IA NOS logos sse eee 39 Tela do prot tipo do jogo Tcheco Balls 43 Tela do prot tipo do jogo FEorrmiguinha sse eee eee eee eee eee eee eee ee 44 Descri o em alto nivel da arquitetura do ICE 47 Vis o geral dos Agentes ICE 49 Estrutura interna dos Agentes ICE 50 Modelo ideal de intera o entre os desenvolvedores e o jogo 56 Vis o geral do ambiente ICE 77 Nodos da rvore sint tica aeee 80 Classes do gerador de c digo sss 81 Diagrama de classes do ambiente ICE 83 Ciclo de funcionamento do ICE caso n o ocorra reconsidera o 85 Ciclo de execu o do ICE caso ocorra reconsidera o 86 CIASSE ERES eia ea IA SUE A VER EA AULA 87 Diagrama das classes internas do agente ICE 89 Classe ce DG GATE HS A 4 K SNL ENR ENE EREEREER cones suet sees ENE KENE anap Repne Ene Enep 89 Classe sensors cts Oe ele ideais ips A Salle pedalas aee Ande 91 CIASSE Acts or assis saio DID oe eee tte sois a 91 Classe Generieket exes tus OG ICS nee 92 Classetcenerncieliets agin e i trad fod teas ted fo ioe 93 Classe Genera cdb7ect 1 v ia anda ends riacho minina dente din de 93 Classe ene TTG CCE NS rea ma pe TOU Siad a ENO RE Ne eee HE 94 Classe cen ric bane so nc Eneee Ena eoecemeccueees 95 Classe T saias ai pads a Sal Ea aii sie ease 96 Utiliza o dO CEC nenanem OD A DL DE DA 136 xi LISTA DE TABELAS Tabela 1 Evolu o dos jogos xii RESUMO Recentemente tem se visto um aument
55. PONTIFICIA UNIVERSIDADE CATOLICA DO RIO GRANDE DO SUL FACULDADE DE INFORMATICA l CURSO DE BACHARELADO EM CIENCIA DA COMPUTA O ICE Kernel de Comportamento Baseado em Agentes para Jogos por FELIPE RECH MENEGUZZI PAULO HENRIQUE DE SOUZA SCHNEIDER THAIS CHRISTINA WEBBER DOS SANTOS Relatorio Final de Trabalho de Conclusao Do Curso de Bacharelado em Ci ncia da Computa o Prof Dr Michael da Costa M ra Orientador Porto Alegre dezembro de 2001 CIP CATALOGA O NA PUBLICA O Meneguzzi Felipe Rech Santos Thais Christina Webber dos Schneider Paulo Henrique de Souza ICE Kernel de Comportamento Baseado em Agentes para Jogos PUCRS Felipe Rech Meneguzzi Paulo Henrique de Souza Schneider e Thais Christina Webber dos Santos Porto Alegre Faculdade de Inform tica da Pontif cia Universidade Cat lica do Rio Grande do Sul 2001 156p il Relat rio de Trabalho de Conclus o Pontif cia Universidade Cat lica do Rio Grande do Sul Faculdade de Inform tica Porto Alegre 2001 Orientador Prof Dr Michael da Costa Mora Relat rio de Trabalho de Conclus o Intelig ncia Artificial Agentes BDI Reativo Jogos Comportamento Objetos Multi Agente All that is necessary for the triumph of evil is that good men do nothing Edmund Burke AGRADECIMENTOS Antes e durante o curso da elabora o deste trabalho diversas pessoas contribuiram para que este se trabalho evoluisse at o ponto onde chegou
56. _declarator_list gt lt belief declarator list gt gt lt belief declarator list gt lt belief declarator gt lt belief declarator gt lt belief declarator gt 5 IDENTIFIER lt expression gt IDENTIFIER lt belief assignment gt gt lt belief reference gt lt assignment operator gt lt expression gt lt belief reference gt gt IDENTIFIER lt composite reference gt A es lt actions gt gt action lt action declaration list gt lt action declaration list gt 5 lt action declaration gt lt action declaration list gt lt action declaration gt 3 lt action declaration gt gt IDENTIFIER lt parameter declaration list gt 126 lt action_effects gt lt action_effects gt gt lt action effects gt lt action effect gt lt action effect gt gt lt belief assingment gt lt list statement gt lt action call 1 ist gt gt lt ac lt action_call gt Objetivos lt action tion call list gt lt _call gt 93 gt IDENTIFI ER lt parameters gt gt lt unary expression gt action call gt lt objectives gt gt objective lt objective declaration list gt lt objective dec lt object i lt objective declara lt objective dec ve declara laration gt IDENTIFI ER lt parame tion gt gt ter declarator list gt larat
57. a o dos agentes em tempo de execu o isto tamb m implica a modelagem de uma classe de agentes din micos cujo conjunto de atributos pode mudar durante a execu o Cria o de uma linguagem de defini o para fun es no Kernel i e Ether Inser o de um algoritmo de planejamento no componente planejador o planejador atualmente depende de planos especificados pela IADL logo o comportamento dos agentes n o pode mudar em tempo de execu o A inser o de planejamento em tempo de execu o possibilitaria a mudan a de comportamento dos agentes ICE de formas possivelmente n o previstas na especifica o do agente capacidade esta bastante interessante em ambientes de jogos Implementa o da gera o de c digo para listas de cren as no compilador ANEXO C 1a25 Pesquisa de Material embasamento proposta 26 Indica o do Prof Avaliador 27 a31 Reda o da Proposta TC1 ABRIL 1a3 Cont Reda o da Proposta TC1 4 Entrega Proposta TC1 16a 26 Revis o da Proposta de TC1 caso indeferida 5a26 Revis o bibliogr fica TC1 27 Entrega da Proposta alterada caso indeferida 28a 30 Cont Revis o bibliogr fica TC1 1a31 Projeto da Arquitetura vol Final TC1 D S T Q 0Q S S 1a9 Cont Projeto da Arquitetura 10a 24 Reda o e fechamento vol Final TC1 25 Entrega do volume final de TC1 26 a 30 In cio implementa o projeto TC1 JULHO
58. a alcan ar um objetivo espec fico n o poss vel que um plano sirva uma lista de objetivos N o existe um componente planejador per se os planos s o estabelecidos manualmente A delibera o se d na escolha do melhor plano para alcan ar o objetivo e n o na elabora o do plano em si 7 Considera es 138 Este manual se prop e a fornecer uma no o geral da linguagem IADL e da utiliza o do compilador ICE Para melhor aproveitar os recursos providos pela linguagem a gram tica completa da IADL encontra se dispon vel no volume final de TC2 bem como uma vis o detalhada da arquitetura ICE e seus componentes 139 GLOSSARIO Agente abstra o utilizada em IA representando uma entidade aut noma geralmente pr ativa que sente o ambiente atrav s de sensores e age sobre o mesmo atrav s de atuadores A Life ou Artificial Life tentativa de pesquisadores de IA de imitar o comportamento de seres vivos ou grupos de seres vivos Consuetudin rio que baseado nos costumes senso comum Daemon programa residente em mem ria utilizado em UNIX para a execu o de tarefas cont nuas Pode ser visto como um agente onde o ambiente o sistema operacional DirectX biblioteca gr fica para desenvolvimento de jogos utilizada na plataforma Windows Game engine parte do jogo que lida com o funcionamento b sico do mesmo Hard coding inclus o de constantes ou partes dos dados diretamente n
59. a de m dulos e componentes e funcionalidades Mas sobre esta implementa o estendeu seus conceitos b sicos para tamb m suportar protocolos de coopera o que segundo HAD96 habilitaram um alto n vel de comunica o multi agente e intera es dentro desse ambiente GRATE foi a primeira arquitetura BDI implementada que trata de estados mentais e utiliza agentes sociais como alternativa para solu o de problemas apesar de se basear em muitos aspectos de IRMA Apesar da arquitetura PRS ser considerada para alguns autores como uma arquitetura h brida segundo DHEOO ou seja aquela que consegue unir as vantagens da delibera o com as facilidades de resposta da reatividade quem veio solidificar este conceito foi a arquitetura InteRRaP Em nenhuma destas arquiteturas apresentadas est a forma o de inten es baseadas nos desejos satisfatoriamente descritas Isto se deve provavelmente porque desejos t m diferen as sem nticas de um autor para outro Em IRMA e GRATE isto realmente n o est bem descrito e n o h distin o clara na implementa o destes m dulos Em PRS isto acontece no meta n vel da rea do Conhecimento sem qualquer especifica o adicional Similarmente em COSY isto de responsabilidade do m dulo de inten es que um conceito largamente dependente dos outros questionados cren as desejos 32 4 PROGRAMAGAO DE JOGOS Este cap tulo visa introduzir um breve hist rico do
60. a determinadas percep es podem ser modelados baseando se no modelo de ag ncia reativo onde se pode 128 estabelecer um mapeamento direto de uma situa o a uma a o espec fica como veremos a seguir Personagens mais elaborados como por exemplo um soldado ou qualquer outra entidade que realize planejamento de suas a es para cumprir seus objetivos podem ser modelados baseando se em caracter sticas BDI Belief Desire Intention Este tipo de comportamento conhecido tamb m como pr atividade nortear o personagem dentro do contexto do jogo dando lhe uma base de conhecimento com seus atributos e a es que chamaremos beliefs e ainda objetivos com planos correspondentes Como podemos notar a IADL permite que estes dois modelos de ag ncia possam ser explorados na modelagem de personagens com caracter sticas reativas e inteligentes ao mesmo tempo 2 1 Modelando agentes reativos A modelagem que se utilizado princ pio reativo visa construir personagens que possam decidir suas a es rapidamente em tempo de execu o As decis es s o tomadas em tempo real baseando se em poucas informa es e regras simples que definem a a o em fun o de uma situa o Sabendo que a defini o de agente pressup e a exist ncia de sensores e atuadores no agente o personagem ent o ser dotado desta caracter stica abstrata e a linguagem IADL permitir que sejam especificadas as percep es que sendo captadas pe
61. a melhor considera o da arquitetura realizada no in cio do TC2 levaram a algumas mudan as na arquitetura proposta inicialmente Estas altera es ser o descritas a seguir Ap s a reconsidera o da arquitetura causada pelo est gio de modelagem f sica cnegou se a algumas conclus es a respeito da arquitetura proposta inicialmente 54 A principio a arquitetura ICE previa um componente para a representa o dos agentes que se basearia no estado interno do agente para a gera o de est mulos percept veis para o usu rio a Persona Como o componente Ether definido na 5 2 3 teria a possibilidade de omitir dados corretos para simular algum tipo de empecilho no sensoriamento o Ether ent o deve guardar consigo os dados reais para que possa informar o agente da realidade no momento em que tal empecilho n o mais existisse Desta forma insere se no agente a possibilidade de n o haver os dados mais fidedignos sobre a realidade no mesmo Este fato invalidaria uma representa o do agente baseada no estado interno do mesmo for ando o componente Persona a ter de buscar este estado junto ao Ether Al m disto observou se que diversos dados deveriam ser enviados para o Game Engine e alguns destes dados n o seriam necessariamente teis para a simula o do comportamento do agente Um exemplo t pico seria no caso de um que agente disparasse com uma arma contra outro agente e se no jogo em quest o existisse uma simula o
62. a pr tica come ando pela defini o mais geral a do agente em si 3 1 Declarando agentes ICE A descri o utilizando a IADL pode ser feita utilizando se de qualquer editor para gerar o arquivo com a descri o O corpo de uma descri o de agente ICE segue o padr o descrito a seguir agent Soldado belief seas Sa lt plans gt lt reactions gt Note que para cada palavra reservada destacada teremos uma estrutura diferente a ser definida e entendida que ser descrita nas se es subseq entes Como citado anteriormente os agentes ICE contemplam caracter sticas BDI ao mesmo tempo em que podem ser definidas rea es Dentro da estrutura de defini o temos ent o cren as palavra reservada belief objetivos palavra reservada objective e planos palavra reservada plan para modelagem de comportamento deliberativo baseado em BDI e 131 rea es palavra reservada reaction para representa o dos reflexos compondo um comportamento reativo 3 2 Cren as Primeiramente define se o que o personagem que queremos modelar conhece sobre si mesmo e sobre seu ambiente no caso o jogo As cren as suportar o os atributos do personagem e estas devem possuir um identificador com um tipo associado int float bool string e tipos compostos podendo ainda ser inicializadas com valores Vejamos o exemplo descrito anteriormente agora na linguagem IADL belief int direction 0 int ammo 5 bool
63. acilitando a modelagem por conseguinte Este aumento do grau de abstra o tende a ser visto por correntes mais conservadoras na ind stria com certa desconfian a uma vez que torna mais dif cil fazer um relacionamento direto do que foi definido com a complexidade final do programa Por m se for considerado o aumento de complexidade nos jogos produzidos atualmente e as mudan as que tal evolu o ocasionou ver se que a utiliza o de uma abstra o de mais alto n vel bastante oportuna principalmente em projetos que visam a melhoria da jogabilidade 6 2 Considera es sobre a Linguagem Na 86 1 1 a import ncia da separa o dos elementos mut veis e imut veis da implementa o de um jogo destacada Esta separa o se realizar na arquitetura ICE atrav s de uma linguagem de defini o de comportamento baseada em agentes h bridos que ir conjugar elementos de defini o de agentes BDI e reativos Logo a linguagem dever apresentar constru es adequadas a descrever caracter sticas das duas arquiteturas Esta linguagem ir se chamar IADL e ser descrita ao longo deste item utilizando uma gram tica da linguagem cujas regras de deriva o relativas a cada ICE Agent Description Language 59 caracteristica serao apresentadas no item correspondente Algumas regras da gramatica nao estao descritas neste capitulo estando a gramatica completa listada no Anexo II no final deste trabalho A descr
64. ador tais como gr ficos som percep o de tato impulsos neurais etc Assim sendo uma das engines do GE pode ser respons vel pela parte da interface com o usu rio Ela captar os est mulos do jogador atrav s de perif ricos como o teclado e mouse e exibir a este o resultado no jogo atrav s do v deo Por m estes est mulos devem ser transportados para a camada dos agentes na arquitetura ICE tanto quanto as respostas dos agentes devem ser transportadas para o GE Desta forma foi confeccionada uma camada de visualiza o dos agentes que tem como objetivo prim rio comunicar o GE com os agentes Esta camada reside basicamente no componente chamado Ether que ser explicado a seguir 5 1 3 Ambiente de comunica o multi agentes Uma vez que os agentes est o definidos estes n o podem permanecer isolados no ambiente Logo deve existir um ambiente onde os 47 agentes possam agir e de onde os agentes recebem percep es para alimentar suas cren as ou seja onde aconte a a intera o entre os agentes e dos mesmos com o mundo Este ambiente tamb m ir implementar as regras do universo do jogo Estas podem ser vistas por exemplo como as leis da natureza tais quais a gravidade e a resist ncia do ar Elas devem ser definidas pelo usu rio do ambiente ICE proporcionando m xima flexibilidade na defini o do mundo 5 2 Descri o da arquitetura ICE 5 2 1 Vis o geral O ambiente ICE ser ess
65. ados anteriores Caso seja necess rio reconsiderar escolhe um novo objetivo e plano vide Figura 21 e Figura 20 A seguir executa um passo do plano selecionado SE Ether Ether Agents Sensor Beliefs Reflexes Actuator Objectives Objective Planner Plan GameEngine GenericAgent Sensor GenericBelief s GenericReflexes Actuator GenericObjectives GenercObjective Generic Planner GenerioPlan startReason getPerception setSensorinput Action S setinput reason e 10 le getinput evaluatelnput setO utputAndUpdateBelief s Action 1 update Action evaluateCurrentObjective isPossible isComplete evaluateObjectives cH selectNextObjective selectPlan nextAction nex tAction setOutputAndUpdateBeliefs Action update Action 1 isC omplete gaP anSize L getActuatorOutput gt gt gt processMessages E Figura 21 Ciclo de execu o do ICE caso ocorra reconsidera o 7 3 Ether e Game Engine 7 3 1 Classe GameEngine Classe principal de um jogo Ela possui normalmente um oop principal onde o processamento geral do jogo como atualiza o de tela entrada de perif ricos etc realizado Este loop o ponto de contato entre o 87 jogo
66. agem Estas tabelas s o introduzidas em uma classe filha do analisador l xico b sico A ferramenta de gera o de parsers do Parser Generator cnamada AYACC tamb m faz uso de uma classe abstrata b sica contendo algoritmos de caminhamento nas tabelas geradas a partir da gram tica especificada e introduzidas em uma classe filha Este programa capaz de gerar parsers dos tipos Simple LR Lookahead LR e Canonical LR sendo que o tipo de parser utilizado na implementa o do compilador da IADL Lookahead LR 7 1 3 M dulos do compilador O compilador da IADL foi dividido em tr s m dulos Analisador l xico e sint tico a estrutura deste m dulo foi gerada atrav s das ferramentas descritas na 7 1 2 utilizando a gram tica descrita na 86 2 Este m dulo utiliza o m dulo construtor de nodos explicado em detalhes na 7 1 5 para criar uma representa o em forma de rvore da descri o do agente Construtor de nodos da rvore sint tica este m dulo respons vel pela cria o e jun o dos componentes da rvore sint tica gerada ao longo do processo de parsing esta rvore sint tica equivale ao 79 c digo intermedi rio da defini o do agente O construtor foi inspirado no padr o Builder em GAM94 Este padr o foi levemente modificado devido ao modo de funcionamento das classes geradas pelas ferramentas utilizadas Gerador de c digo ap s a rvore sint tica ter sido criada esta transfo
67. ambiente sobre os efeitos da mesma Nesta alternativa os efeitos de uma a o n o s o descritos no agente deixando apenas as percep es advindas do ambiente informar os resultados da mesma Esta alternativa implica que a fun o de mapeamento de a es em percep es localizada no Ether seja mais complexa Isto torna a implementa o mais dif cil por m os resultados s o mais interessantes Na segunda que faz com que o agente se comporte como um agente esquizofr nico o agente assume que os efeitos de suas a es s o sempre verdadeiros e imediatamente ap s a execu o das mesmas altera sua base de cren as refletindo tais efeitos Nesta alternativa o agente ir descobrir se falhou caso uma percep o o informe deste fato atualizando suas cren as A alternativa escolhida para implementa o no ICE foi a do agente esquizofr nico pois mais simples de implementar e deixa o componente Ether mais simplificado favorecendo a velocidade do mesmo Al m disso permite que o agente trabalhe pr ativamente levando em considera o a expectativa dos resultados de suas a es Em caso de detec o de falhas ele pode escolher um novo objetivo As constru es providas na gram tica da linguagem s o as seguintes lt actions gt gt action lt action declaration list gt lt action declaration list gt gt lt action declaration gt lt action declaration list gt lt action declaration gt 3 lt action dec
68. apaz de comportar se como um soldado Como se trata de um agente h brido conforme a arquitetura ICE prop e na se o 5 2 2 este agente possui caracter sticas puramente reativas e caracter sticas que tamb m o classificam como BDI ou seja ele teria uma base de cren as com atributos como dire o muni o dist ncia entre outros al m de ser capaz de atirar contra um inimigo virando se para a esquerda ou para a direita podendo mover se nestas dire es inclusive Seus objetivos seriam basicamente ca ar seus inimigos para elimin los e esconder se quando estivesse sem muni o Apresentaria rea es imediatas a determinados acontecimentos como por exemplo ouvir um barulho esquerda ou direita ou mesmo sua frente desta vez indicando a presen a de um inimigo vis vel o inimigo considerado vis vel quando estiver no campo de vis o do agente ou seja neste caso a sua frente 7 5 1 O agente Esta seria a descri o textual de um agente simples que pode ser facilmente transcrita para a IADL Por m quando se deseja gerar c digo acerca desta descri o muitos s o os detalhes a serem considerados na busca de uma boa performance do agente al m da garantia de que o c digo gerado ser fiel descri o dada pelo desenvolvedor do jogo para o agente em quest o Logo abaixo temos o agente Soldado como o chamaremos daqui por diante descrito pela IADL agent Soldado belief int direction 0
69. ar no mesmo Deterministico versus nao deterministico um ambiente determin stico reage como uma fun o ou seja existe um resultado garantido para cada a o O mundo f sico para todos os efeitos n o determin stico Epis dico versus n o epis dico em um ambiente epis dico a performance do agente baseada apenas em um n mero de eventos discretos ou seja o agente n o precisa levar em considera o a intera o de um epis dio com epis dios futuros Est tico versus din mico num ambiente est tico pode se assumir que este n o ir mudar exceto pelas a es do agente Neste contexto o mundo real um ambiente altamente din mico Discreto versus cont nuo um ambiente discreto caso exista um n mero fixo e finito de a es e percep es nele Como exemplo de ambiente discreto RUS94 cita um jogo de xadrez e como cont nuo a condu o de um t xi 14 3 4 Modelos de Agentes poss vel dividir os agentes quanto a sua implementa o em quatro classes de acordo com WOO99 Agentes baseados em l gica onde a tomada de decis o feita atrav s de dedu o l gica Agentes reativos onde a tomada de decis o feita atrav s de algum tipo de mapeamento direto de situa o para a o Agentes BDI onde a tomada de decis o resultado da manipula o de estruturas de dados representando as cren as desejos e inten es do agente Arquiteturas em cama
70. ara encontrar e unificar solu es competindo por recursos e fontes de informa es e s o melhor aproveitados como partes de um sistema multi agente n o tanto quando isolados A filosofia multi agente poderia ser transposta para um ambiente de jogo onde por exemplo os oponentes podem combinar estrat gias de modo a armar ciladas contra jogador Por m estes oponentes tamb m dever o combinar a divis o de recursos tais como armas ou qualquer outro tipo de itens entre eles 11 Uma propriedade interessante dos agentes que eles prov m um meio natural de executar tarefas sobre ambientes incontrol veis Quanto mais agentes mais simples subdividido fica o problema No entanto mais complexa fica a comunica o e a coordena o entre eles 3 3 Taxonomia 3 3 1 Agentes A taxonomia dos agentes requer caracter sticas consideradas chave no que diz respeito identifica o do pr prio agente e do total de agentes no sistema multi agente ao qual ele participa Segundo FRA96 as caracter sticas dos agentes est o fundamentalmente interligadas n o somente as suas propriedades intr nsecas que s o definidas para o agente em particular mas tamb m suas propriedades extr nsecas que s o definidas para um agente no contexto de outros agentes ou seja no meio em que ele est inserido Podemos citar como exemplo de caracter sticas intr nsecas GAS98 Dura o transit ria ou permanente N vel de cogni o rea
71. arefas e monitora o 3 5 5 InteRRaP A arquitetura InteRRaP combina reatividade com delibera o e capacidades de coopera o exemplificando com este modelo uma arquitetura h brida Utiliza se das vantagens do estilo BDI dividindo se em tr s n veis de conhecimento e controle que interagem entre si estruturados em camadas diferentes de abstra o complexidade de representa o de conhecimentos e racioc nio Veja Figura 8 abaixo 28 BC Hierarquica do Agente Unidade de Controle do Agente Nivel de Planejamento Cooperativo NPC Nivel de Planejamento Local NPL Modelo Social Nivel Modelo do Mundo Baseado em Comportamento NBC EE Comunicagao Atuadores a oY ICM AT Legenda Acesso de informa o o Fluxo de controle SG reconhecimento de ativa o ativa o de objetivo PS planejamento escalonamento e execu o Figura 8 A arquitetura InteRRaP FIS98 uma arquitetura que consegue explicar o comportamento dos seus agentes sendo estes ditos sociais ou seja na presen a de outros agentes atuam de forma cooperativa para alcan ar seus objetivos utilizando se claro de suas habilidades sociais Esta arquitetura descreve o agente por tr s m dulos basicamente Pela sua interface com o mundo esta pode ser atrav s do sensoriamento capacidade de habilitar ou desabilitar os sensores e tamb m ler seus valores em dado instante ou o tempo todo a o
72. as restri es estabelecidas Cada n vel pode acessar o n vel da Base de Conhecimentos referente ao seu ou inferior a ele por m n o superior Assim o NBC pode verificar somente o Modelo do Mundo o NPL pode acessar n o s o Modelo do Mundo como tamb m o Modelo Mental e o NPC por ser o n vel mais sofisticado tem acesso livre a todos os n veis de conhecimento 3 5 6 Compara o entre as arquiteturas Arquiteturas de um modo geral s o especifica es de como podemos construir agentes a partir de m dulos e como estes m dulos v o 30 interagir entre si Isto o que gerar as a es dos agentes e modificara o estado interno deles a partir das percep es Cada problema deve ser tratado de forma particular pois cada um tem como requisitos um conjunto de caracter sticas diferentes necessitando que tenhamos de certa forma uma separa o em tipos de arquiteturas conforme o modelo de agente que melhor se adequar ao problema Como visto na 83 4 neste trabalho s o consideradas tr s perspectivas reativa deliberativa ou h brida A abordagem deliberativa comp e uma ampla variedade de conceitos relativos constru o de agentes aut nomos Todas as arquiteturas explanadas anteriormente encaixam se nesta prerrogativa visto que encontram a solu o do problema da mesma forma executando uma sequ ncia de a es que transformam o mundo em seu estado inicial para um estado final objetivo Elas buscaram tamb
73. asa de sua respectiva cor inHome O planejamento que ela possui para atingir seus objetivos bem simples enquanto ela na est em casa ou seja o objetivo getHome o corrente ela continua se movendo findHome Para conseguir informa es do ambiente e atualizar suas cren as ela possui tr s rea es para captar percep es gotHome gotAnyHome e 69 gotKicked GotHome indica quando ela chegou em alguma casa colorida qualquer GotAnyHome indica quando ela chegou em sua casa colorida GotKicked indica quando ela foi expulsa da casa onde estava dormindo Esta ultima acontece quando a unidade est dormindo em uma casa que n o a pertence e a unidade respectiva da casa aparece e a desaloja agent Ball belief bool inHome false bool inAnyHome false action move foundHome inHome true inAnyHome true foundAnyHome inAnyHome true kicked inAnyHome false objective getHome pre inAnyHome false and inHome false pos inAnyHome true sleep pre inAnyHome t rue pos false plan findHome getHome if true priority 1 move reaction gotHome if foundHome foundHome reaction gotAnyHome if foundAnyHome foundAnyHome reaction gotKicked if wasKicked 70 kicked 6 3 4 AntBot A AntBot uma formiga que tem em sua base de conhecimento hungry indicando seu nivel de fome health indica a saude da AntBot e
74. cio desde quando foi poss vel conectar dois computadores atrav s de um cabo serial Desde ent o a tecnologia evoluiu para suportar protocolos como IPX TCP IP e alguns outros Outro fator de influ ncia foi a Internet o desenvolvimento de modems e mais recentemente acesso de banda larga O suporte a multi jogador tornou se um requerimento prim rio para todos os jogos de ultima gera o pois este fator proporciona que o jogo seja aproveitado por mais tempo com a possibilidade de enfrentar outros jogadores ou cooperar com estes O fato da necessidade de multi jogador t o verdade que existem alguns jogos al m de v rios a serem lan ados que possuem o objetivo de serem jogados exclusivamente na rede e g Asheron s Call onde existem diversas comunidades voltadas a estes fins 4 1 7 Evolu o de Software Um benef cio proporcionado pelas evolu es de hardware foi a evolu o na rea de software Com o aumento da capacidade processamento e da quantidade de mem ria foi poss vel desenvolver Sistemas Operacionais com mais recursos e a cria o de compiladores mais otimizados assim possibilitando o uso de linguagens de alto n vel Portanto como os compiladores atuais geram c digo muito mais otimizado hoje quase desnecess rio o uso do Assembly para a gera o de um c digo enxuto A maioria dos jogos atuais s o feitos utilizando se a linguagem C C Os ambientes de programa o tamb m melhoraram Agora eles
75. classes do kernel ICE Cabe ao programador instanciar tantas vezes quanto julgar necess rio cada agente dentro do jogo uma vez que cada 137 especifica o representa um padr o de comportamento podendo ser livremente replicado para diversas entidades do jogo Al m disto o compilador ICEC capaz de detectar os erros mais comuns poss veis na especifica o de um agente em IADL Dentre os erros mais comuns est o Erros de sintaxe quando uma constru o da linguagem utilizada incorretamente ou uma constru o inexistente utilizada 0 compilador informa ao usu rio a linha e o ltimo token reconhecido antes da detec o do erro Erros de declara o quando uma cren a n o declarada utilizada ou quando um tipo n o declarado utilizado para uma declara o de cren a o compilador informa a linha e o nome do s mbolo n o declarado Funcionalidades n o implementadas quando uma constru o relativa a uma funcionalidade n o implementada utilizada o compilador informa a linha e o ltimo token reconhecido antes da detec o do erro Este tipo de erro atualmente ocorre quando constru es relativas a listas de cren as s o utilizadas 6 Limita es do compilador e da linguagem Um objetivo poder ter v rios planos e dependendo das condi es estabelecidas para executar um plano este pode sofrer posterga o indefinida ou seja nunca ser executado Cada plano ir se propor
76. da else if name acheiAmiga AcheiAmigaAction a7 static_cast lt AcheiAmigaAction z gt actLon acheiAmiga else if name acheiComida AcheiComidaAction a8 static_cast lt AcheiComidaAction gt action acheiComida void FormigaBeliefs anda int passo voa void void void void void VOL par metro atrav s do nome da mesma Neste momento o m todo correspondente execu o daquela a o em particular pode ser invocado com ou sem par metros dependendo da descri o dada para o agente em IADL o mesmo principio de gera o de c digo relativo s cren as do mesmo O arquivo de implementa o da classe soldadoBeliefs tamb m dever inicializar todos os seus atributos e sobrecarregar o m todo update provido pela classe 107 posicao passo FormigaBeliefs fuga int passoLargo posicao passoLargo fome FormigaBeliefs come fome comida false FormigaBeliefs alerta predador true FormigaBeliefs protegida predador false FormigaBeliefs ajuda fome amiga false FormigaBeliefs acheiAmiga amiga true FormigaBeliefs acheiComida comida true O m todo update identificar cada a o que Da mesma forma voltando ao exemplo do agente Soldado teremos base a classe GenericBeliefs receber como 108 SoldadoBeliefs cpp include SoldadoBeliefs h SoldadoBeliefs SoldadoBeliefs
77. das onde a tomada de decis o feita atrav s de diversas camadas de software que raciocinam em algum n vel sobre o ambiente Dentre estas classes os agentes podem ser classificados essencialmente em reativos com apenas um representante bvio nesta classifica o ou deliberativos representados pelas arquiteturas BDI e baseadas em l gica As primeiras implementa es de agentes se encaixam na primeira classe de agentes Estas implementa es representam o conhecimento do agente atrav s de um conjunto de afirma es em l gica e o comportamento dos agentes obtido atrav s de provas de teoremas sobre o conjunto de premissas que representam o conhecimento do agente Este tipo de aproxima o na cria o de agentes possui dois problemas segundo WOO99 a velocidade de decis o demorada e a defini o deste tipo de agente excessivamente complexa Uma vez que um dos objetivos deste trabalho facilitar a defini o de comportamento e proporcionar um modelo de agentes que possa se adequar s necessidades de velocidade para a aplica o em jogos este modelo foi considerado incompat vel com os objetivos propostos pelo grupo 15 A classe de arquiteturas em camadas tamb m bastante interessante pois utiliza delibera o e reatividade para atingir comportamento inteligente sendo considerada h brida A arquitetura proposta neste volume utiliza se da aproxima o h brida para combinar agentes reativos e BDI D
78. de pre ammo 0 pos false As condi es para a busca de um objetivo s o modeladas usando se operadores l gicos e de compara o definindo se atrav s da sintaxe ilustrada acima No exemplo utilizamos apenas operadores de compara o gt mas poder se ia utilizar operadores l gicos como and e or dentro do mesmo bloco caso mais de uma condi o devesse ser obedecida Pode se definir tamb m opcionalmente condi es que indiquem que o objetivo fora alcan ado utilizando a mesma sintaxe para defini o das pr condi es Caso isto n o seja desejado estabelece se como padr o a palavra reservada false A ordem de defini o dos objetivos de total relev ncia pois ela que definir a prioridade dos mesmos quando inseridos na arquitetura ICE Feito isto os planos para cumpri los dever o ser especificados 3 6 Planos A ordem de defini o dos planos importante pois definir a prioridade de cada plano em rela o aos outros Atrav s da palavra reservada priority estabelece se um crit rio de desempate quando houver mais de um plano para o mesmo objetivo 134 O Soldado do exemplo tem planos para ca ar o inimigo a esquerda huntLeft direita huntright e para fugir caso se sinta amea ado run Cada plano especificado deve conter a palavra reservada plan e deve receber como par metro o objetivo que se destina a cumprir Nestes planos coloca se ent o a sequ ncia de a es que devem
79. de trajet ria da bala Neste exemplo a posi o exata da arma do atacante seria necess ria para computar a trajet ria descrita pelo tiro no componente que calcula a f sica do jogo usualmente chamado de Physics Engine Este exemplo mostra um dado que seria de pouca utilidade para o ICE a n o ser que se deseje criar uma defini o de comportamento desproporcionalmente complexa Assim caso a totalidade de vari veis sobre uma entidade estivesse contida no ICE criar se ia a necessidade de um overhead enorme e possivelmente desnecess rio de comunica o entre ICE e Game Engine Para sanar este problema optou se por adotar um modelo de representa o onde apenas as informa es relevantes para a representa o do comportamento de uma agente sejam armazenadas no Agente ICE Estes dois fatores motivaram a remo o do componente Persona da arquitetura ICE 55 6 O PROJETO ICE 6 1 Fundamentos do projeto 6 1 1 A Separa o entre L gica e Dados Jogos e programas em geral s o compostos por duas partes l gica e dados Existe uma diferen a marcante entre as duas a l gica define as regras b sicas e os algoritmos do game engine enquanto os dados d o os detalhes do conte do e do comportamento do jogo Sozinhos eles s o in teis por m quando juntos estas partes fazem um jogo evoluir rapidamente necess rio desviar se do assunto principal por um momento para se esclarecer o que game engine a palavra engine al m de seu
80. dentro do mundo virtual do jogo que precisava fugir de quatro fantasmas por um labirinto O fato que tornava o jogo mais interessante que estes fantasmas n o possu am todos o mesmo comportamento cada um tinha um plano de como perseguir e atacar o jogador Este um exemplo de uso de algoritmos de busca e comportamento em um jogo Um ou mais Z do total de CPU desenvolvedores reservada ao dedicados a IA do processamento de jogo 100 90 80 70 60 50 40 30 20 t 10 0 1997 1998 1999 2000 Game DUC GDC GDC GDC Al poll 4 Figura 9 Import ncia da IA nos jogos Desde o Pacman at os dias de hoje a intelig ncia artificial tem evolu do e cada vez tem ganhado mais for a e import ncia no desenvolvimento dos jogos Atualmente algumas equipes de desenvolvimento t m empregado programadores especializados em IA desde o come o do processo de desenvolvimento Segundo W0O000 os desenvolvedores t m reservado cada vez mais tempo de processamento para as rotinas de IA vide Figura 9 e isto mostra a mudan a de foco das empresas e uma nova evolu o na ind stria de jogos Estas mudan as favor veis em rela o IA t m se dado principalmente 40 devido intera o dos usu rios com as empresas requisitando que os oponentes possuam comportamentos realistas e rea es inesperadas Com isso v rias t cnicas de IA t m sido empregadas no contexto dos jogos Uma das mais fundamentais a d
81. deste cabe alho leva em conta as a es pertinentes a reatividade do agente e os componentes gen ricos envolvidos neste processo O agente Soldado ter o seu componente de reflexos espec fico recebendo indica es para O sensor O Actuador SoldadoReflexes cpp include SoldadoReflexes h SoldadoReflexes SoldadoReflexes Sensor sen Actuator act int id GenericReflexes sen act id void SoldadoReflexes evaluateInput GenericAction action string name action gt getName GenericAction newAction if name noiseLeft newAction new TurnAction ilIdAgent turn false 1 else if name noiseRight newAction new TurnAction ildAgent turn false 1 else if name noiseFront newAction new ShootAction ilIdAgent shoot false actuator gt setOutputAndUpdateBeliefs newAction Para o m todo evaluateInput a a o passada por par metro na forma de percep o representada no exemplo por noiseLeft para o agente reverter em a o no ambiente ou em seu estado interno Seguindo a descri o do agente Soldado esta percep o faria com que ele acionasse a a o Turn Neste ponto do c digo a estrutura da a o criada para posteriormente ser adicionada ao Actuator Neste ponto ja identificamos as estruturas de c digo necess rias para cria o de um agente puramente reativo Mas como citado anteriormente a arquitetura proposta pelo grupo tem
82. e classe que representa o jogo N o faz parte do ICE mas o ponto de contato com o jogo Ether classe que armazena os agentes ordena sua execu o e se comunica com o ambiente GenericAgent classe central do agente Mant m refer ncia para suas classes auxiliares e possui o algoritmo de pensamento do agente Sensor classe de entrada de a es do agente Actuator classe de sa da de a es do agente GenericReflexes classe que representa a parte reativa do agente ICE GenericBeliefs classe que armazena as cren as e as a es que o agente pode realizar GenericObjectives classe que armazena e escolhe objetivos GenericObjective classe que representa um objetivo GenericPlanner classe que armazena escolhe e executa planos GenericPlan classe que representa um plano Todas as classes que come am com Generic s o estendidas pelo c digo gerado pelo compilador ICE 85 7 2 2 Ciclo de funcionamento O ciclo completo de funcionamento da arquitetura come a pelo Game Engine e passa por todos os componentes do agente incluindo as partes estendidas Existem duas possibilidades de caminhamento no fluxo de execu o do algoritmo b sico utilizado pela arquitetura ICE vide Figura 20 e Figura 21 Estas possibilidades est o diretamente relacionadas necessidade de reconsidera o ou seja a necessidade de se escolher um novo objetivo A necessidade de reconsidera o pode ser causada por do
83. e existem diversas quest es que se apresentam ao se desenvolver jogos desta forma 57 Al m de se colocar as constantes fora do c digo importante que se descreva comportamentos em scripts externos HUE97 pois estes s o excelentes para se descrever passos sequenciais como por exemplo descrever o que acontece quando o jogador termina uma determinada tarefa do jogo Como o objetivo destes scripts a sua manipula o por pessoal que n o faz parte da equipe de programa o a linguagem utilizada nos mesmos deve ser mantida o mais simples poss vel pois n o se quer transferir a responsabilidade da programa o para o pessoal n o t cnico RAB00a Em decorr ncia da limita o de complexidade nas linguagens de script dos jogos uma pr tica difundida n o se utilizar scripts para a descri o de comportamentos de maior complexidade salvo quando a personaliza o da mesma faz parte do projeto do jogo A cria o de uma linguagem complexa para os scripts tamb m incute um grande aumento de esfor o por parte dos projetistas e programadores Por m atualmente se observa um aumento de import ncia da IA dentro do contexto de desenvolvimento de jogos Desta forma importante que se possa modelar experimentalmente o comportamento inteligente das entidades de um jogo LAM95 Este fato torna a pr tica de se incluir especificidades da IA no c digo altamente restritiva Al m do mais o uso de scripts n o desej vel para
84. e pois nem todas as entidades do jogo necessitam apresentar comportamentos complexos Por exemplo uma formiga que caminha aleatoriamente em busca de alimento No momento em que encontrar um obst culo ela apenas desvia deste sem qualquer reflexo mais importante em seu comportamento Entidades mais complexas podem ser dotadas de objetivos que ir o nortear as a es tomadas pr ativamente Por exemplo imaginemos um 46 soldado que chamaremos de Hans Hans tem como objetivo encontrar o jogador e elimin lo Para este fim ele dever criar um plano de a o de como encontrar o jogador de modo a poder atac lo Este plano pode incluir uma busca aleat ria pelo mundo que dever levar em conta o ambiente e os obst culos e g paredes e buracos nele encontrados Hans tamb m poder encontrar Friedrick que tem como objetivo impedir Hans de encontrar seu objetivo Logo Hans dever tentar evit lo Ap s encontrar o jogador Hans dever planejar como elimin lo Este plano pode incluir coopera o com outros soldados facilitando esta tarefa pois o jogador possivelmente mais h bil do que Hans 5 1 2 Camada de Visualiza o importante lembrar que no contexto de um jogo de computador necess ria a percep o pelo jogador do que ocorre dentro do mundo virtual do mesmo Para tanto o jogo possui o componente GE Game Engine que pode compreender diversos engines mais espec ficos relacionados com a percep o do jog
85. e agentes ICEC implementado como parte do requisito final da disciplina de Trabalho de Conclus o Il do curso de bacharelado em Ci ncia da Computa o da Pontif cia Universidade Cat lica do Rio Grande do Sul Inicialmente o manual procura introduzir o usu rio aos conceitos propostos na arquitetura ICE bem como exemplificar o uso da linguagem de descri o de agentes para que o mesmo possa criar e desenvolver o comportamento dos agentes ICE A IADL utilizada pelo ICEC ICE Compiler para transformar uma descri o de agentes em c digo C As palavras reservadas tipos opera es com tipos como express es operadores un rios e bin rios l gicos e matem ticos e operadores de atribui o estar o listados ao final deste manual para consulta por parte dos usu rios visto que os exemplos abordados nem sempre cobrir o todas as funcionalidades previstas pela linguagem Como os personagens criados s o baseados na no o de agentes em IA uma breve introdu o ao assunto explicitar o que s o e que princ pios seguem dentro da arquitetura proposta 2 Introdu o aos Modelos de Ag ncia A arquitetura ICE foi modelada para prover a possibilidade de implementa o de agentes do tipo h brido cujas caracter sticas podem ser tanto reativas como deliberativas dependendo somente do que se espera do agente quando inserido no ambiente do jogo Por exemplo personagens inanimados ou que apresentam rea es involunt rias
86. e algoritmos para percorrer ambientes de vital import ncia que os elementos m veis de um jogo consigam navegar pelo seu terreno de uma forma adequada O mais popular algoritmo desta classe o A possui diversas implementa es e otimiza es nestes jogos Outra no o que tem se tornado cada vez mais popular a da A Life que modela o comportamento de uma vida Um jogo que ficou famoso por utilizar esta t cnica o The Sims que simula a vida de um ser humano ou uma fam lia atrav s de uma intera o social simulada entre personagens virtuais assim ent o desenvolvendo uma personalidade A t cnica de agentes normalmente explorada com algumas restri es Poucos jogos t m sido desenvolvidos utilizando abertamente esta t cnica 4 2 O Estado da Arte da IA na ind stria 4 2 1 Unreal Tournament Neste produto o jogador batalha contra outros jogadores ou com oponentes controlados pelo computador denominados bots Estes bots possuem uma boa autonomia pois eles sabem como percorrer os cen rios coletando armamentos e muni es e atacar os jogadores com efici ncia ou dependendo do n vel de dificuldade inefici ncia simulada Estes bots s o completamente configur veis ou seja poss vel determinar pesos em seus atributos e necessidades tais como per cia com a arma movimenta o e medo Como o computador controla estes bots razo vel assumir que quanto mais destes existem no ambiente mais le
87. e elaborar planos prevendo o resultado de suas a es e portanto possuem um comportamento mais racional no sentido de agir em busca de um determinado objetivo Contudo estes agentes t m certa dificuldade no tratamento de altera es no ambiente principalmente aquelas que exigem resposta em tempo real Os ambientes din micos exigem dos agentes deliberativos uma constante monitora o do ambiente e atualiza o de suas representa es simb licas Isso pode levar o agente a tomar decis es quando estas j n o s o mais necess rias Para acrescentar reatividade aos agentes deliberativos n o exigida nenhuma estrutura ou caracter stica que j n o esteja presente em sua arquitetura Entretanto h a necessidade de sensores adequados para que os agentes deliberativos possam ser capazes de gerar respostas ao que ocorre no ambiente em que se encontra Um fator determinante no desempenho desse tipo de agente acrescido de reatividade o processo de delibera o 1 Na opini o do grupo este apenas um uso informal de agentes reativos 17 Este processo pode dificultar a gera o de respostas em tempo real quando estas s o assim exigidas pois a delibera o na escolha de uma a o pode demorar tempo suficiente para que a a o j n o seja mais necess ria naquele momento em que ser executada Agentes BDI Belief Desire Intention s o tamb m sistemas deliberativos na medida em que baseiam sua atua o em uma repr
88. e grupo Reda o dos resultados obtidos na fase de implementa o consistiu em sistematizar as conclus es obtidas na implementa o do sistema proposto e inclu las no volume final Esta atividade foi de responsabilidade de todos os componentes do grupo Inclus o do material colhido na revis o bibliogr fica esta tarefa consistiu em organizar os conte dos obtidos na revis o bibliogr fica no volume final do trabalho Esta atividade foi de responsabilidade de todos os componentes do grupo Elabora o do manual do usu rio do sistema ICE esta atividade consistiu em elaborar um guia de refer ncia que facilite a utiliza o do sistema implementado Esta atividade foi de responsabilidade de Thais Webber Reda o final do volume esta tarefa consistiu na reuni o e organiza o de todos os materiais colhidos e redigidos ao longo do trabalho para a elabora o deste documento Esta atividade foi de responsabilidade de Felipe Meneguzzi 8 2 4 Apresenta o do Trabalho de Conclus o II Esta tarefa consistir na elabora o da apresenta o deste trabalho para a banca avaliadora Consistir na elabora o de slides e uma apresenta o expositiva descrevendo a experi ncia e os resultados da realiza o do Trabalho de Conclus o Esta tarefa ser de responsabilidade de todos os componentes do grupo 1 A modelagem tamb m ir definir se a linguagem ser compilada ou interpretada 120 8 3 Depend ncia
89. e que cada objetivo em particular ter dois estados poss veis durante o per odo de delibera o do agente ou o objetivo ser poss vel ou ele j estar completo ou seja n o necessita mais ser atingido ProcurarComidaObjective cpp include ProcurarComidaObjective h ProcurarComidaObjective ProcurarComidaObjective string name FormigaBeliefs bel GenericObjective name bel bool ProcurarComidaObjective isPossible FormigaBeliefs bl static cast lt FormigaBeliefs gt beliefs if b1 gt comida true amp amp bl gt fome gt 5 return true else return false bool ProcurarComidaObjective isComplete FormigaBeliefs bl static_cast lt FormigaBeliefs gt beliefs if false return true else return false A possibilidade de elei o de um objetivo vai depender das pr condi es impostas na sua modelagem No exemplo acima temos uma estrutura de decis o que retornaria verdadeiro caso as condi es preestabelecidas a formiga ter visto alimento al m de estar com fome sejam satisfeitas ou caso contr rio retornaria falso n o respeitando as condi es impostas Tendo todos os objetivos sido criados em termos de gera o dos arquivos acima descritos h a necessidade de reuni los em uma estrutura que facilite a sele o dos mesmos Esta estrutura representada pela classe GenericObjectives cuja finalidade reunir todos os objetivos do agente em u
90. e s o vi veis para serem perseguidos ou seja dados os objetivos de um agente o gerador de 51 inten es ir verificar suas cren as e selecionar os desejos vi veis Tendo os desejos selecionados o gerador de inten es ir organizar os desejos com base em alguma fun o de prioridade definida pelo usu rio e iniciar o planejamento para a concretiza o dos mesmos Nos agentes ICE as inten es equivalem aos passos do plano ou seja a es concretas Como as inten es equivalem aos passos do plano elas podem ser representadas como uma fila de a es para execu o Desta forma quando o componente reativo AR da arquitetura gerar uma a o esta ser colocada na frente da fila de inten es dotando este componente de uma maior prioridade em rela o ao componente ABDI esta prioridade apropriada para a sem ntica esperada para o AR ou seja a capacidade de rea es r pidas a mudan as no ambiente Por exemplo o soldado Hans acaba de ter planejado e decidido as a es necess rias para a defesa de sua base e atingido por um inimigo Hans deve reagir diminuindo seu atributo de energia por m necess rio que esta modifica o seja efetivada imediatamente e n o somente ap s a realiza o de todo o plano de defesa contido nas inten es Esta arquitetura tamb m permite que o agente realize seu planejamento em paralelo com a execu o das a es previamente planejadas Isto poss vel pois o Gerado
91. ector lt GenericAc tion gt EBisPossible EBnextaction EBgetPansize Actuator EBsatist y Obje ctive EZoutputQueue Vector lt GenericAction gt GenericBeliefs etOutput EBupaate cia A pdateBelief s Figura 23 Diagrama das classes internas do agente ICE 7 4 2 Classe GenericAgent GenericAgent RID Integer EBsName String EBbReconsider reason etSensorlnput etActuatorOutput Figura 24 Classe GenericAgent A classe cenericagent personifica a abstra o do agente para o Ether de forma com que o algoritmo de passagem de mensagens contido no Ether tenha uma interface uniforme para os agentes ICE qualquer que seja a representa o e organiza o interna dos mesmos Esta classe foi modelada 90 tendo em mente o padr o Facade de GAM94 sendo sua principal fun o reduzir o acoplamento entre o sistema do Ether e os sistemas internos de cada agente Duas das principais tarefas que o Ether realiza sobre cada agente s o a entrega e recolhimento de mensagens representado as a es e percep es dois m todos s o providos na interface do agente setSensorInput para a inser o de percep es no sensor do mesmo e getActuatorOutput para a remo o das a es marcadas para execu o pelo atuador Apesar de os sistemas multi agente possu rem conceitualmente m ltiplos processos na arquitetura ICE optou se por apenas emular o comportamento de um sistema multi pr
92. encialmente um sistema multi agentes De acordo com as defini es mais gen ricas agentes percebem o mundo atrav s de sensores e agem sobre ele atrav s de atuadores Desta forma a principal e em teoria nica interface necess ria entre os agentes s o a es geradas pelos atuadores e percep es recebidas pelos sensores Game Reativo Figura 12 Descri o em alto n vel da arquitetura do ICE Sob uma an lise simplificada esta interface pode ser vista como um sistema de troca de mensagens cuja implementa o se assemelha maioria dos simuladores de sistemas Assim sendo a arquitetura ICE ser composta de um componente respons vel pela troca deste tipo de mensagens Este componente ser chamado de Ether em refer ncia a subst ncia fantasiosa que permeia e d consist ncia ao universo Este componente ser utilizado como 48 ambiente por todos os agentes do jogo de acordo com a Figura 12 e dada a sua importancia sera detalhado na 5 2 3 O mapeamento das a es em percep es realizado pelo Ether sera definido pelo usu rio do ICE na cria o do ambiente do jogo Em resumo este ser o kernel do ICE pois ser este componente o por onde toda a comunica o entre os agentes ir ocorrer Imersos no Ether est o os agentes que representam as entidades do jogo Estes agentes s o compostos essencialmente de duas partes um componente de mais baixo n vel que dever corresponder ao modelo de agente reati
93. era o de c digo sia sssessss seene eee eenn 97 L ee LT 97 TE A ES autos dado radio dpi caveats oes dived de AAR O 99 9 3 eel 101 7 5 4 Cren as objetivos e planos rrene 102 O ATIVIDADES 27 asya Ra SEIOS 115 8 1 Atividades e Respons veis no TC1 sss eee 115 8 1 1 Revis o Bibliogr fica cesse 115 8 1 2 Projeto da Arquitetura eii serena 116 8 1 3 Reda o do Volume eee 116 8 2 Atividades e Respons veis no TC2 s 117 8 2 1 Implementa o do Projeto 117 8 2 2 Revis o Bibliogr fica sse 118 8 2 3 Reda o do Volume Final de TC2 en 119 viii 8 2 4 Apresenta o do Trabalho de Conclus o Il 119 8 3 Depend ncias entre as Atividades s 120 8 4 Recursos Necess rios eenn ee 120 9 CONCLUS ES a asa das 121 9 1 Trabalhos Futuros sss eee eee eee eee 122 ANEXO CRONOGRANA sss senenn 123 ANEXO II IADL GRAM TICA COMPLETA sss sss 124 ANEXO Ill MANUAL DO ICEC E DA ADL eee seene 127 GILOSSA Te 139 REFERENCIAS BIBLIOGR FICAS sscssssssssesestesssssesearseseseeetatanseeeeseas 141 LISTA DE ABREVIATURAS ABDI Componente BDI dos agentes da arquitetura ICE Al Artificial Intelligence API Application Programming Interface AR Componente Reativo dos agentes da arquitetura ICE CD Compact Disk DAI Distributed Artificial Inte
94. esenta o simb lica e em um racioc nio l gico sobre esta Eles apresentam estados mentais cren as desejos e inten es que s o processados internamente e a es que s o baseadas nestes estados Cren as s o um estado mental representando o conhecimento do agente a respeito do mundo e sobre si mesmo Desejos s o predisposi es a determinadas realiza es Inten es s o um novo estado que ir representar o comprometimento do agente com algumas destas realiza es Claro que a respeito deste modelo de agentes tem se muitos fatores relevantes como por exemplo inconsist ncias nestas bases de conhecimento Na teoria de Bratman descrita em BRA90 a inconsist ncia entre desejos permitida e o agente n o precisa acreditar que seus desejos sejam poss veis Neste estado n o h comprometimento com sua realiza o Mas a partir do momento que este se torna uma inten o n o pode haver inconsist ncias Pois as inten es norteiam a atua o Este tipo de arquitetura no escopo dos jogos interessante para a defini o de entidades cujo comportamento deve se assemelhar a comportamento inteligente A defini o de comportamentos complexos bastante limitada no modelo reativo uma vez que regras est ticas de condi o e a o n o representam exatamente a maneira como seres inteligentes conduzem seu racioc nio Desta forma a utiliza o de abstra es mentais como cren as e desejos facilita o processo de defini
95. esenta o de cada entidade no mundo de jogo descrito para utiliza o com o ICE ira consistir de um componente AR de mais baixo nivel e opcionalmente por um componente ABDI Percep es Agente ICE Figura 13 Vis o geral dos Agentes ICE O motivo desta composi o das entidades do jogo se torna mais aparente ap s a considera o das caracter sticas de cada componente O componente AR dada a sua caracter stica puramente reativa torna poss vel uma implementa o bastante r pida j que seu comportamento ser definido de forma semelhante a cl usulas condicionais se ent o E ser utilizado para a descri o de efeitos cujo comportamento pode ser facilmente descrito a priori pelo desenvolvedor Este comportamento em geral apresentado por entidades inanimadas por entidades que n o apresentam comportamento deliberativo ou at mesmo para descrever rea es involunt rias Por exemplo depois de perceber 20 unidades de dano uma cadeira ir se quebrar ou tamb m um zumbi que anda da direita para a esquerda at encontrar um ser vivo para ent o atac lo O componente ABDI baseado na arquitetura BDI descrita em W0OO99 ter como objetivo a descri o de comportamentos deliberativos Este componente poder apresentar capacidade de planejamento e ser descrito em termos de seus objetivos desta forma possibilitando um alto grau de abstra o por parte do desenvolvedor Evidentemente o componente ABDI apresen
96. essionNode EBadnactions ActionDeclarationNode Ed BJenPostCondition Expres sionNode je EBoetagent P BgetO bjective stone EB getParameters igetObjectives EBgetPlans IgetPreConditionString EB getReactions igetPost Condition Node igetPost ConditionString BeliefDeclarationNode E RE Belef ext Node NULL ListDeclarationNode elief Symbol rev Node NULL ninitial Value ExpressionNode yst EBsList Symbol EBtitemType Type oetBelieString ink etBeliefTy pe l oS tring ObjectiveReferenceNode etBeliefTy peString erseUpdate EBpnParameters ParameterNode etinitialValueString omponentRevers eUpdate EBsObjective Symbol ExpressionNode EBgetobjective EBbParenthesis Boolean EB getParameters EBbrma BeliefReferenceNode EBena ExpressionNode CHENGONES EBenB ExpressionNode Soper Integer EBenParameter ExpressionNode aa Grd igetParameter 2 ae igetParameterString MEO sratonS tin ParameterDeclarationNode ReactionDeclarationNode E Symbol Ae ActionCalINode mo BeliefReferenceNode Type Type Reconsider Boolean oModifiedStrin R SU Sebeliet Symbol jetParameter S jetParameterString je tBeliefSym bal et Type etBelieiType et TypeString econsider jetModifedBeliefSymbal S 0 EBisConstant PlanDeclarationNode cnPlan ActionCallNode nCondition Expre
97. esta forma este trabalho ir se concentrar nos agentes reativos para a obten o de respostas r pidas e nos agentes BDI para a defini o de comportamento pr ativo e planejamento Estes modelos ser o descritos a seguir 3 4 1 Agentes Reativos Rodney Brooks em BRO86 deu voz a um grupo de pesquisadores que era contra a corrente simb lica da IA corrente esta que foi a fonte da aproxima o em l gica dada inicialmente aos agentes Este artigo lan ava as bases para os agentes reativos que diferem essencialmente dos agentes deliberativos na aus ncia de uma representa o interna do mundo segundo Brooks O mundo seu pr prio modelo Tamb m de acordo com os defensores da aproxima o reativa o comportamento racional visto como intimamente ligado ao ambiente que o agente ocupa ou seja o comportamento inteligente n o disjunto de um corpo mas sim o resultado da intera o do agente com o ambiente que ele ocupa e da intera o e coopera o de diversos agentes WOO99 Essencialmente os agentes reativos s o aqueles cujo comportamento consiste em reagir aos est mulos do meio o que se constitui em uma vantagem quando se fala na atua o em ambientes din micos pois os sinais oriundos dos sensores geram uma a o imediata nos atuadores As arquiteturas que se baseiam neste modelo de agente visam constru los para que decidam suas a es em tempo de execu o Ao inv s de atuarem em fun o de uma represe
98. este tipo de agente seria descrito utilizando a IADL composite Unit bool orderResource bool orderDefend bool orderRecover int health T agent Base belief int resources 100 int damage 0 bool defend false Unit unit Unit soldier action orderResource Unit collector collector orderResource true collector orderDefend false collector orderRecover false orderDefend Unit soldier soldier orderResource false soldier orderDefend true soldier orderRecover false orderRecover Unit soldier soldier orderResource false soldier orderDefend false 68 soldier orderRecover true objective saveLife pre defend true pos false getResources pre resources lt 20 pos false saveUnit Unit unit pre unit health lt 5 pos false plan defense saveLife if true priority 1 orderDefend soldier plan resources getResources if true priority 1 orderResource collector plan help saveUnit if true priority 1 orderRecover unit 6 3 3 Bola do Tcheco Balls O agente abaixo representa as unidades coloridas do jogo O objetivo da unidade chegar em sua casa getHome e ap s isso dormir sleep Para isso ela quer saber atrav s das suas cren as quando ela est em alguma casa inAnyHome ou quando ela esta na c
99. execu o de a es f sicas do agente no ambiente e comunica o enviar e receber mensagens de outros agentes 29 Uma base de conhecimento modelo do mundo um modelo mental e um modelo social Uma unidade de controle UC com tr s n veis de abstra o cada um com dois processos Um de reconhecimento de situa es e ativa o SO Outro de planejamento escalonamento e execu o PE Esta unidade fica ent o subdividida em tr s n veis o NBC N vel baseado em Comportamento o NPL N vel de Planejamento Local e o NPC N vel de Planejamento Cooperativo Sendo que em cada um desses n veis pode se perceber fun es distintas por exemplo no NBC tem se procedimentos para tarefas corriqueiras suportando tamb m reatividade o NPL fica respons vel pelos racioc nios do agente sendo que o mesmo deve ter comportamentos totalmente direcionados ao objetivo j o NPC tratar de quest es mais complexas ou pelo menos de quest es ainda n o abordadas t o profundamente at agora como o caso da cooperatividade entre agentes ou seja utilizar se das vantagens desta caracter stica para a realiza o de tarefas em conjunto e coordenadamente A UC acessa constantemente a Base de Conhecimentos podendo modific la com novas cren as objetivos e at mesmo planos hipot ticos Vale ressaltar que a Base de Conhecimento um recurso que pode ser acessado por cada um dos n veis da UC por m com algum
100. expandiu se ainda mais com o advento das primeiras linguagens de programa o pois com elas o computador se aproximou do ser humano deixando de ser simplesmente um processador de c digo bin rio Com as facilidades das linguagens de programa o o desenvolvimento de programas acelerou se gradativamente tanto em tamanho como em complexidade Este aumento muitas vezes ultrapassa a capacidade do ser humano em termos de organiza o e compreens o dos meandros de funcionamento de um programa Desde ent o a busca por flexibilidade e aproxima o com o ser humano t m se tornado uma constante principalmente na rea de engenharia de software O desenvolvimento de jogos como pode ser visto no cap tulo seguinte tomou um curso muito semelhante em sua evolu o WOO9Y9 Mesmo com este grau de evolu o no campo de engenharia de software nossa rela o com o computador essencialmente ainda se mant m a mesma Ao se desenvolver um software tanto projetistas como programadores devem ser extremamente meticulosos ou seja devem pensar em todas as possibilidades de situa o que o programa ir encontrar Caso surja uma situa o inesperada este programa ir na melhor das hip teses pendurar podendo na pior das hip teses causar um acidente de consequ ncias catastr ficas WOO99 ou no caso de jogos acabar totalmente com o desafio de um jogo deixando a sua intelig ncia artificial perdida Nestes e em um n mero crescente de
101. g ou seja inserir de forma est tica no c digo fonte par metros de comportamento do jogo deixando todas as constantes do jogo carreg veis atrav s de arquivos texto externos Evidentemente por quest es de performance estes arquivos poder o se tornar arquivos bin rios na vers o final do jogo Desta forma pode se experimentar diversos valores sem a necessidade de re compila o usando se apenas o Bloco de Notas ou algum tipo de editor especificamente projetado para tanto Desta forma projeta se um programa mais flex vel e como muitas vezes se observa programar uma solu o gen rica faz com que se pense melhor na solu o do problema Por exemplo se a especifica o inicial do jogo pede a exist ncia de tr s tipos de inimigos o programador pode facilmente e talvez at mais rapidamente programar tr s inimigos diretamente no c digo com as caracter sticas descritas na especifica o Por m se for feito um programa que carrega os inimigos de um arquivo externo poss vel fazer experi ncias com diversas caracter sticas dos mesmos e at mesmo colocar uma variedade maior de entidades antag nicas 6 1 2 Modelando comportamento fora do c digo Na medida em que os jogos foram se tornando mais complexos e come aram a envolver mais pessoas de diferentes reas de conhecimento a separa o da l gica e dos dados tornou se um dos objetivos do desenvolvimento de um jogo Por m este processo longe de ser trivial
102. gen ricas foram implementadas compondo n o s estruturas que armazenam cada objetivo em particular como tamb m uma estrutura capaz de armazenar todos os objetivos que o agente capaz de buscar as Classe GenericObjective GenericObjectives O agente Formiga proposto tem tr s objetivos distintos procurar alimento ajudar outra formiga e fugir de predadores Para cada objetivo declarado na descri o do mesmo tem se uma extens o da classe GenericObjective para que todos disponham de m todos de avalia o dos mesmos em termos de possibilidade de execu o e cumprimento do mesmo Um dos objetivos primordiais do agente Formiga segundo a descri o seria buscar alimento no ambiente Denominado ProcurarComidaObjective sobre este objetivo que exemplificaremos a gera o de c digo come ando pela declara o do cabe alho ProcurarComidaObjective h include GenericObjective h include FormigaBeliefs h class ProcurarComidaObjective public GenericObjective public ProcurarComidaObjective string FormigaBeliefs inline bool isPossible inline bool isComplete H necessidade de inclus o das cren as do agente neste cabe alho pois a verifica o realizada em tempo de execu o sobre cada objetivo depende do seu estado interno naquele dado momento 110 O agente estar sempre buscando algum objetivo a cumprir e sua decis o depender do estado de cada um deles Nota s
103. gence A Modern Approach Prentice Hall 1994 SHOHAN Yoav Agent oriented programming Artificial Intelligence 60 Elsevier Science Publishers B V 1993 WEIR Gerhard Prologue Multiagent systems a modern approach to distributed artificial intelligence The MIT press 1999 WOOLDRIDGE Michael Intelligent Agents Multiagent systems a modern approach to distributed artificial intelligence The MIT press 1999 WOODCOCK Steve Game AI The State of the Industry Game Developer Maganize August 2000 CMP Media Inc 2000
104. gt lt list_logical_operator gt gt in forall lt lis lt lis 0 125 lt expression gt gt lt expression gt lt binary_operator gt lt expression2 gt lt unary_expression gt lt constant gt lt belief_reference gt lt expression gt lt unary_expression gt gt lt unary_operator gt lt belief_reference gt lt unary_operator gt lt constant gt lt expression2 gt gt lt constant gt lt belief_reference gt lt expression gt lt unary_operator gt gt lt binary_operator gt gt lt logical_operator gt lt mahtematical_operator gt lt comparison_operator gt lt logical_operator gt gt and or lt mathematical_operator gt gt lt comparison_operator gt gt gt gt lt lt lt assignment_operator gt gt lt conditions gt gt lt list_condition gt lt regular_condition gt lt regular_condition gt gt lt expression gt Agente lt agent gt gt agent lt agent_name gt lt beliefs gt lt actions gt lt objectives gt lt plans gt lt reactions gt Crengas lt beliefs gt gt belief lt belief_declaration_list gt lt belief_declaration_list gt gt lt belief_declaration gt lt belief_declaration_list gt lt belief_declaration gt 3 lt belief_declaration gt gt lt type gt lt belief
105. i o da linguagem foi inicialmente apresentada no volume final do TC1 Esta descri o previa mudan as que seriam introduzidas ap s uma considera o mais precisa resultado de testes de funcionamento realizados no curso do TC2 A descri o da linguagem apresentada neste cap tulo consiste apenas da sua forma final sendo que as mudan as sobre o prot tipo original de linguagem s o salientadas quando pertinente 6 2 1 O Agente A sintaxe definida para a descri o de um agente bastante semelhante utilizada em orienta o a objetos para a descri o de uma classe apenas observando se a mudan a de paradigma De modo a contemplar as caracter sticas BDI do agente para ele dever ser definido um conjunto de cren as que s o relevantes para o mesmo al m de um conjunto de objetivos que correspondem aos desejos As inten es do agente n o ser o definidas na linguagem uma vez que estas ser o obtidas atrav s dos desejos e das cren as em tempo de execu o Como planejamento n o o foco deste trabalho o conjunto de planos dever ser especificado atrav s da linguagem Quanto caracter stica reativa esta ser contemplada atrav s de um conjunto de rea es definidas em rela o a percep es Comum aos dois modelos de agente utilizados ser a defini o do conjunto de a es pass veis de execu o Estas caracter sticas se materializam na seguinte regra lt agent gt gt agent lt agent_name gt
106. ion_list gt gt tion_list gt lt objective_declaration gt gt pre lt conditions gt pos lt conditions gt lt objective lis Planos lt plans gt gt lt plans gt lt plan declarator gt lt plan_d clarat t gt gt ID ENT IFI ER 3 or gt gt T plan IDENTIFI if lt cond PELGOrA ty lt actio Rea es ns gt EG itio INT IR lt objective_list gt ER CONSTANT n call list gt lt reactions gt gt lt reactions gt lt reaction gt lt reaction gt lt reaction gt gt lt reaction_modifier gt reaction ID gt if ID EN TIFEL ER lt action_call gt lt reaction_modifier gt gt reconsider Auxiliares lt parameters gt gt lt parameter_list gt lt parameter_list gt gt lt parameter_list gt lt plan_ declarator gt ENTI FIE gt lt parameter gt gt lt expression gt lt parameter_dec latator list gt gt lt parameter_declarator_list gt lt param lt parameter_declarator gt lt parameter_dec larator gt gt lt parameter gt 3 lt parameter gt eter_declarator gt lt type gt IDENTIFI ER gt 127 ANEXO l MANUAL DO ICEC E DA IADL 1 Introdu o Este manual visa explicar o funcionamento e uso da linguagem IADL ICE Agent Description Language utilizada pelo compilador d
107. is motivos o objetivo atual ter sido completado ou ter se tornado invi vel Reflexes Actuator Objectives Objedive Planner Plan Ether Ether Agents E Beliefs E GenericAge nt Sensor GenericBeliets GenericReflexes Actuator GenericObjectives GenericObjective GenericPlanner GenericPlan GE GameEngine startReason getPercepton setSensorinput Action gaer La Stipu reason evaluatelnput setOutputAndUpdateBeliefs Action ES update Action U evaluateCurrentObjective iP ossble isComplete L ie T a nextAction setOutputAndUpdateBeliefs Action getPlanSize SS proce ssMessages Em update Action getActuatorOutput 11 Figura 20 Ciclo de funcionamento do ICE caso n o ocorra reconsidera o Este ciclo ser descrito passo a passo a seguir O Game Engine em seu la o principal passa o processamento para o Ether O Ether para cada agente coleta suas percep es do ambiente e as registra no agente e transfere a execu o para este O agente por sua vez realiza primeiro seu processamento reativo 86 A seguir verifica se o objetivo escolhido caso exista ainda valido Verifica a necessidade de reconsidera o de objetivos e planos baseado em result
108. laration gt gt IDENTIFIER lt parameter declaration list gt lt action_effects gt lt action_effects gt gt lt action_effects gt lt action_effect gt 9 lt action_effect gt gt lt belief_assingment gt lt unary_expression gt lt list_statement gt lt action_call_list gt gt lt action_call_list gt lt action_call gt lt action_call gt 3 lt action_call gt gt IDENTIFIER lt parameters gt 63 6 2 4 Crengas A primeira estrutura referente ao componente ABDI a ser descrita pela linguagem a defini o das cren as Estas formam o modelo de mundo do agente e s o definidas na forma de identificadores que utilizam os tipos definidos na 6 2 2 As cren as representam portanto o que o agente em quest o sabe ou acredita sobre o estado do mundo a sua volta O estado destas cren as n o representa necessariamente a verdade sobre os fatos podendo estar defasadas ou inclusive completamente divergentes da realidade Isto pode acontecer quando o mundo muda e o agente n o percebe a mudan a Ou ainda em situa es onde o Ether foi deliberadamente constru do para introduzir informa es err neas As regras gramaticais referentes s cren as s o as seguintes lt beliefs gt 5 belief lt belief declaration list gt lt belief declaration list gt gt lt belief declaration gt lt belief declaration list gt lt belief declaration gt 3 l
109. lligence Intelig ncia Artificial Distribu da GE Game Engine IA Intelig ncia Artificial IADL ICE Agent Description Language ICE Intelligence Control Engine ICEC ICE Compiler IP Internet Protocol IPX Internetwork Packet Exchange MP3 MPEG 3 Movie Pictures Expert Group Layer 3 MSDOS Microsoft Disk Operating System PC Personal Computer SO Sistema Operacional TC1 Trabalho de Conclus o TC2 Trabalho de Conclus o II TCP Transmission Control Protocol Figura 1 Figura 2 Figura 3 Figura 4 Figura 5 Figura 6 Figura 7 Figura 8 Figura 9 Figura 10 Figura 11 Figura 12 Figura 13 Figura 14 Figura 15 Figura 16 Figura 17 Figura 18 Figura 19 Figura 20 Figura 21 Figura 22 Figura 23 Figura 24 Figura 25 Figura 26 Figura 27 Figura 28 Figura 29 Figura 30 Figura 31 Figura 32 Figura 33 LISTA DE FIGURAS Contexto da arquitetura ICE dentro do jogo 3 Arquitetura b sica de um agente 9 Vis o abstrata da intera o agente ambiente WOO99 12 Estrutura da arquitetura IRMA extra do de DHEOO 19 Estrutura da arquitetura PRS DHEOO 0 0c cceeeeeeeeeeeeeeeeeeees 22 Arquitetura COSY HAD96 cccccseeeeeeeeeeeseeeseeseseeseeseseeseeeess 25 Arquitetura funcional da GRATE HAD96 26 A arquitetura InteRRaP PISOS sse 28 Import ncia da
110. lo sensor resultam em rea es Nas pr ximas se es veremos como fazer com que o personagem tenha reflexos imediatos atrav s de percep es apresentando o comando reaction provido pela IADL importante lembrar que os agentes reativos s o deficientes em rela o realiza o de tarefas que envolvam diversos passos pois as constru es reativas da linguagem n o permitem a elabora o pr via de uma sequ ncia de a es somente o mapeamento de uma percep o em uma a o correspondente Para adicionar um comportamento deliberativo e dirigido a determinado objetivo de um personagem utilizaremos a no o de BDI 2 2 Acrescentando caracter sticas BDI aos agentes 129 Ja citamos anteriormente a importancia de se trabalhar com reatividade no comportamento dos personagens Por m muitas vezes deseja se que o personagem possa decidir suas a es sem que isto seja um resultado direto da fun o de mapeamento Nesta se o ser o explicadas as constru es da IADL relativas ao comportamento pr ativo apresentado pelos agentes BDI Na no o de BDI o agente descrito em termos de estados mentais dentre eles uma representa o do mundo e de si mesmo na forma de atributos a es que poder realizar e predisposi es a determinadas realiza es as quais cnamaremos de objetivos Estes agentes s o capazes de realizar delibera o acerca de abstra es como cren as e desejos podendo coordenar suas a es
111. m aprimorar seus sistemas de planejamento superando as diversas limita es impostas pelo ambiente que inicialmente tinha que ser projetado incluindo aos agentes deliberativos a capacidade de atuar em ambientes reais Esses agentes mais tarde receberam caracter sticas baseadas nos estudos do comportamento humano desenvolvidos por fil sofos e psic logos sendo designadas de estados mentais conceituando o que chamamos de arquitetura BDI Belief Desire Intention A modelagem de IRMA foi pioneira em se tratando de arquiteturas BDI mas com o intuito de modelar um agente considerando que este possui recursos limitados em termos computacionais dando nfase ao processo de filtragem das informa es processadas pelo agente e ao custo de execu o das v rias estrat gias de delibera o dentro de um ambiente de constantes modifica es N o h nesta arquitetura uma distin o n tida de cren as desejos e inten es bem como n o se percebe uma base l gica que ap ie suas teorias e especifica es Como IRMA a arquitetura PRS foi desenvolvida para suportar simples agentes locais apesar de se ter uma extens o formal para o contexto multi agente esta arquitetura n o implementa cooperatividade entre os 31 agentes dentro do ambiente Entre todos os sistemas descritos PRS um dos que possui certo fundo te rico em sua especifica o COSY utilizou se de elementos das arquiteturas IRMA e PRS inclusive nomenclatur
112. m rdios os jogos eram extremamente simples do ponto de vista t cnico Com a evolu o de processadores e o aumento da capacidade de memoria os jogos ganharam uma nova dimens o e atra ram maior p blico A primeira grande evolu o foi na rea dos gr ficos que hoje em dia uma parte fundamental de qualquer produto Em segundo lugar veio a evolu o dos efeitos sonoros e perif ricos que adicionaram uma maior imers o do jogador no mundo imagin rio de cada jogo Atualmente a mais nova evolu o tem se dado na rea da jogabilidade ou seja apresentar para o jogador um ambiente virtual com maiores desafios e credibilidade Esta a parte onde o campo de Intelig ncia Artificial se introduz nos jogos Dentro deste campo um dos principais desafios a utiliza o e modelagem da IA de modo a permitir maior flexibilidade para a experimenta o de possibilidades Uma das principais reas que vem tomando impulso neste processo de evolu o a defini o de comportamentos para as entidades contidas nos mundos virtuais dos jogos Diversas correntes de projetistas de jogos acreditam que o limite de efic cia para o modelo atual de desenvolvimento e defini o de comportamentos foi atingido Para sanar esta defici ncia diversas alternativas est o sendo pesquisadas pelas companhias produtoras de jogos Infelizmente existe uma certa dist ncia entre a pesquisa em IA em n vel acad mico e a pesquisa realizada nas empresas desta forma
113. m duas a es para executar anda come e estas s o criadas e colocadas ao fim da fila do atuador para serem executadas cumprindo o objetivo procurarComida Assim como cada agente tem uma lista de objetivos ele ter tamb m uma lista de planos para alcan los Esta lista de planos ser constituinte do planejador do agente que ser uma deriva o da classe GenericPlanner provida pela arquitetura ICE O planejador do agente depender desta lista de planos bem como das cren as do mesmo tendo liga o com O Actuator Exemplificando veremos o planejador do agente Formiga FormigaPlanner h 113 include GenericPlanner h include FormigaBeliefs h include Actuator h include FamintaPlan h include AjudaAmigaPlan h include FogePlan h class FormigaPlanner public GenericPlanner public FormigaPlanner FormigaBeliefs Actuator int FormigaPlanner cpp include FormigaPlanner h FormigaPlanner FormigaPlanner FormigaBeliefs beliefs Actuator act int id GenericPlanner FamintaPlan pl new FamintaPlan beliefs act id AjudaAmigaPlan p2 new AjudaAmigaPlan beliefs act id FogePlan p3 new FogePlan beliefs act id allPlans push back pl allPlans push back p2 allPlans push back p3 At o momento descrevemos como cada um dos componentes do agente que criarmos usando a IADL deveria ser implementado ou ainda como o c digo referente descri o do agente
114. ma nica estrutura de dados neste caso uma lista de objetivos Para o agente Formiga ter amos 111 FormigaObjectives h include GenericObjectives h include ProcurarComidaObjective h include AjudarFormigaObjective h include FugirPredadorObjective h class FormigaObjectives public GenericObjectives public FormigaObjectives FormigaBeliefs T Quando estendida a classe derivada possuira objetivos ordenados por prioridade dada pela ordem em que aparecem na descri o do agente em IADL provendo recursos de an lise dos mesmos em situa es espec ficas podendo descartar e eleger cada um conforme a necessidade e prioridade do momento Na implementa o do construtor desta classe cada objetivo seria instanciado e enfileirado como mostrado logo abaixo FormigaObjectives cpp include FormigaObjectives h FormigaObjectives FormigaObjectives FormigaBeliefs beliefs GenericObjectives ProcurarComidaObjective ol new ProcurarComidaObjective procurarComida beliefs AjudarFormigaObjective o2 new AjudarFormigaObjective ajudarFormiga beliefs FugirPredadorObjective o3 new FugirPredadorObjective fugirPredador beliefs allObjectives push_back 03 allObjectives push_back 02 allObjectives push_back ol Logicamente a partir do momento que se t m objetivos a alcan ar necessita se de meios para tanto que na arquitetura ICE foram chamados de
115. mente segue correspondendo s inten es que est o armazenadas no componente das inten es estruturadas em planos Neste ponto que o agente realmente se compromete com um fim mesmo sem ter feito a delibera o sobre todos os meios para atingi lo Uma vez que uma inten o formada o componente raciocinador meios fim invocado para cada plano parcial existente propondo sub planos que o completem este componente pode propor in meras op es para um mesmo objetivo estas juntas passam pelo filtro do Analisador de Oportunidades um componente que tamb m prop e op es mas estas s o o resultado das mudan as no ambiente Tais op es 20 podem ser boas ou nem tanto dependera do ponto de vista do agente por exemplo se forem op es inesperadas mas que mesmo assim satisfazem seus desejos n o deixam de ser tamb m uma forma de tratamento poss vel para determinada situa o O Filtro de Compatibilidade recebe estas op es oriundas do Raciocinador de Meios fim e do Analisador de Oportunidades e testa sua compatibilidade com rela o s inten es j seguidas pelo agente necess ria esta compatibilidade pois s vezes s o inseridas novas cren as fazendo com que planos com que o agente tenha se comprometido anteriormente devam ser reconsiderados ou por outro lado at mesmo abandonados As op es que n o apresentarem incompatibilidade passam para o processo de delibera o onde seus
116. mo 10 WOO9Y9 estende sua defini o para incluir o que ele chama de agentes inteligentes que vem ao encontro da primeira vis o de GAS98 De acordo com Wooldridge o que caracteriza intelig ncia a flexibilidade logo agentes inteligentes devem acima de tudo serem capazes de a o aut noma e flex vel de modo a cumprir com suas metas Neste contexto flexibilidade inclui tr s caracter sticas Reatividade o agente percebe o ambiente e responde no momento correto a mudan as no ambiente de modo a cumprir com seus objetivos Pro Atividade agentes inteligentes comportam se norteados por objetivos e devem tomar a iniciativa para cumpri los Habilidade social agentes inteligentes s o capazes de interagir com outros agentes e possivelmente tamb m com seres humanos de modo a chegar aos seus objetivos Em um jogo o jogador normalmente prefere que seus oponentes sejam mais imprevis veis que eles analisem o ambiente em volta e desenvolvam uma estrat gia mais realista ou seja que simulem o comportamento humano Dentre as vis es citadas anteriormente a que mais corresponderia seria a segunda pois esta espelha com maior fidelidade o racioc nio humano por m esta computacionalmente limitada devido aos recursos tecnol gicos dispon veis nos dias de hoje Apesar disto a pr atividade pode ser complementada pelas alternativas apresentadas Os agentes representam diferentes entidades que colaboram p
117. n dita tendo sido utilizada por exemplo na arquitetura IRMA citada a seguir e em DHEOO 3 5 1 IRMA IRMA Intelligent Resource bounded Machine Architecture baseia se na modelagem de agentes limitados pelos recursos onde esta limitagao refere se primariamente ao poder de processamento Ela apresenta uma especificagao de alto nivel do componente raciocinio pratico ou seja inclui direta representa o de cren as desejos e inten es na arquitetura Al m do mais a arquitetura IRMA apresenta diferentes bancos de informa es cren as desejos biblioteca de planos inten es estruturadas em planos e processos HAD96 Veja Figura 4 abaixo 19 Inten es Biblioteca de Estruturadas Planos em Planos Analisador de Raciocinador Oportunidades de Meios Fim 002525 pebes Desejos Delibera o Filtro de Filtro de Compatibilidade Sobrescrita op es sobreviventes inten es Raciocinador Figura 4 Estrutura da arquitetura IRMA extra do de DHEOO Percep o H uma distin o entre os planos existentes t m se alguns em forma de receitas procedimentos e outros que s o escolhidos por um agente para executar Uma biblioteca de planos cont m seus planos em forma procedural e pode ser vista como um subconjunto de cren as dos agentes qual plano aplic vel para resolver esta ou outra tarefa e em que circunst ncias O ltimo tipo de planos aquele que o agente frequente
118. natureza h brida contando com outros componentes que a torna pass vel de delibera o beliefs objectives e planner 7 5 4 Cren as objetivos e planos Para melhor explicar a gera o de c digo para estes novos componentes utilizaremos um segundo exemplo de descri o de agentes utilizando a IADL um agente Formiga capaz de visualizar alimento 103 predadores e outras formigas seguindo objetivos como procurar alimento ajudar outras formigas e fugir de predadores quando amea ada agent Formiga belief int fome 0 int posicao boolean amiga false boolean predador false boolean comida false action anda int passo posicao passo fuga int passoLargo 0 posicao passoLargo fome come fome comida false alerta predador true protegida predador false ajuda fome amiga false acheiAmiga amiga true acheiComida comida true objective procurarComida pre comida true and fome gt 5 pos 104 ajudarFormiga L pre amiga true pos fugirPredador pre predador true pos plan faminta procurarComida if true priority O anda 5 come f plan ajudaAmiga ajudarFormiga if true priority O anda 2 ajuda plan fuga fugirPredador if rw priority 0 fuga 10 protegida reaction perigo if vePredador alerta reaction oba if veComida
119. ndar P Morgan Kaufmann Publishers 1998 HAD96 HADDADI Afsaneh SUNDERMEYER Kurt Belief Desire Intention Agent Architectures Foundations of Distributed Artificial Intelligence ed O HARE G M P Jennings N R John Wiley and Sons Inc 1996 HOWO1 HOWLAND Geoff How do make games Extra do em 7 de Fevereiro de 2001 Online Dispon vel na Internet www lupinegames com articles path to dev html HUE97 HUEBNER Robert Adding Languages to Game Engines Game Developer Maganize September 1997 CMP Media Inc 1997 LAM95 LAMOTHE Andr Building Brains into Your Games Extra do em 20 de Janeiro 2001 Online Dispon vel na Internet www gamedev net reference articles article574 asp em MIN92 MINSKY Marvin L Future of Al technology Toshiba Review Vol 47 No 7 July 1992 RAB00a RABIN Steve The Magic of data driven Design Game Programming Gems Charles River Media Inc 2000 RABOOb RABIN Steve Designing a General Robust Al Engine Game Programming Gems Charles River Media Inc 2000 RAO98 RAO Anand S GEORGEFF Michael P Modeling Rational Agents within a BDl Architecture Readings in Agents Morgan Kaufmann Publishers ed HUHNS Michael N SINGH Munindar P 1998 ROLOO RUS94 SHO93 WEI99 WOO99 WOO00 143 ROLLINGS Andrew MORRIS Dave Game Architecture and Design The Coriolis Group LCC 2000 RUSSELL Stuart D NORVIG Peter Artificial Intelli
120. no baseado em um objetivo no caso cenericobjective Ele verifica na lista de todos os planos qual satisfaz o objetivo e se este pode ser executado dependendo de sua condi o Caso encontre este ser o plano escolhido nextAction m todo que executa a pr xima a o do plano selecionado Ele chama o m todo de mesmo nome do GenericPlan selecionado 7 4 10 Classe GenericPlan GenericPlan Objective String ctionVector Vector lt GenericAction gt is Possible nextAction etPlanSize atisf y Objectiv e Figura 32 Classe cenericPlan Classe que representa um plano do agente Estes planos s o armazenados pelo GenericPlanner Esta classe possui uma lista de a es geradas pelo compilador que descrevem o plano Possui tamb m uma liga o com O Actuator para a execu o das a es e com O cenericBeliefs para verificar a possibilidade de execu o do plano M todos Principais nextAction m todo que executa a a o corrente Ele retira uma refer ncia da a o da lista e envia para O Actuator satisfyObjective m todo que verifica se o plano tem o objetivo de satisfazer O cenericobjective passado por par metro 97 7 5 Gera o de c digo No intuito de facilitar a compreens o do processo de gera o de c digo utilizaremos duas descri es de agentes como base para esta se o Como um primeiro exemplo suponhamos que se deseja modelar um agente c
121. nta o interna do mundo estes agentes atuam em fun o de seu estado interno e do estado do ambiente a cada momento As decis es s o tomadas em tempo real baseando se em poucas informa es e regras simples que definem a a o em fun o de uma situa o Apesar desta vantagem os agentes reativos s o deficientes em rela o realiza o de 16 tarefas que exigem um comportamento mais complexo e dirigido a determinado objetivo porque eles nao apresentam a capacidade de elaborar previamente uma sequ ncia de a es que os leve at isso Entretanto conceitos semelhantes como por exemplo regras de rea o a eventos individualizadas por entidade s o largamente utilizados atualmente na ind stria de jogos RABOOb dada a sua rapidez de resposta caracter stica necess ria caso se tenha como objetivo que diversas entidades respondam em tempo real 3 4 2 Agentes BDI O segundo modelo de agentes considerado neste trabalho ultrapassa a falta de pr atividade dos agentes reativos s o os agentes deliberativos aqui representados pelos agentes BDI Estes s o aut nomos e mant m uma representa o simb lica do mundo e das a es sobre a qual pode fazer racioc nios l gicos e planejamento de um curso de a es para alcance de um objetivo Como o pr prio nome j diz estes agentes s o capazes de realizar delibera o sendo uma vantagem na solu o de tarefas que exigem coordena o de a es pois s o capazes d
122. nto e prejudicado seria o processamento mental deste Por isso foi realizado um projeto de distribui o 41 de bots em m quinas diferentes onde cada m quina se dedicaria a controlar um bot e enviar seus movimentos para um servidor assim obtendo uma melhor performance 4 2 2 Baldur s Gate Este um jogo de RPG Role Playing Game onde o jogador assume o papel de um her i em um mundo medieval fantasioso Dungeons amp Dragons O jogo possui uma linguagem de script relativamente poderosa para definir comportamentos dos personagens poss vel criar v rias rea es realistas como por exemplo quando uma personagem est prestes a morrer ele pode come ar a correr de seus inimigos em dire o a algum companheiro que possa prover prote o 4 2 3 The Sims um jogo de simula o de pessoas O jogador toma conta de uma ou mais pessoas os Sims moradoras de uma casa e pode influenciar estes Sims a fazerem a es comuns como almo ar assistir televis o e limpar o banheiro Por m os Sims possuem desejos pr prios definidos por suas personalidades e se o jogador decidir n o controlar estes eles ir o agir por conta pr pria simulando de uma maneira interessante o comportamento humano Este jogo como descrito anteriormente utiliza t cnicas de A Life para o comportamento dos Sims 4 2 4 Black and White Neste jogo o jogador assume o papel de Deus em um mundo paralelo Em determinado momento o jogador ob
123. o ambiente ICE s o agentes descritos nos cap tulos anteriores Diversas classes de objetos foram criadas para representar as abstra es apresentadas na defini o te rica do agente de modo a reproduzir com a m xima fidelidade os conceitos estudados pelo grupo As classes que perfazem o agente ICE est o descritas no diagrama de classes da Figura 23 sendo que as classes representadas no diagrama est o explicadas nas se es subsequentes 7 4 1 Diagrama de classes De modo a modularizar o funcionamento interno do agente os diversos componentes dos modelos de ag ncia utilizados foram modelados na forma de classes e dependendo da granularidade escolhida alguns de seus componentes internos tamb m O resultado desta modelagem pode ser visto na Figura 23 89 Sensor EZinputQueue Vector lt GenericAction gt ee GenericAgent EBset nput E o GenericObjectiv es css ddr EBeurrentObjective GenericObjectiv e reason valuateC urrentObjectiv e etSensorl nput v aluateObjectiv es electNextObjectiv e etActuato rOutput GenericReflexes GenericPlanner EBreaci urrentPlan fev aluatelnput S U GenericObjectiv e EBoeneratePlan EBsName String EBselectPlan EBnextaction isPossible EBisComplete E plete etName ZE GenericPlan isoObgctive String BZactionvector V
124. o c digo de um programa Ether Componente da arquitetura ICE respons vel pela representa o do mundo e do entrega de mensagens entre os agentes Persona Componente da arquitetura ICE original respons vel pelo mapeamento do estado do agente para uma representa o visual foi removido na arquitetura final Jogabilidade termo normalmente associado ao grau de satisfa o do jogador com um jogo eletr nico Joystick perif rico de interface com jogos usualmente um manche 140 Kernel parte do sistema operacional que trata do hardware basico Mainframe computador de grande porte utilizado principalmente nos anos 70 associado exist ncia de um centro de processamento de dados Pixel um ponto de ilumina o em um monitor de v deo Planejador Componente de um sistema de intelig ncia artificial respons vel pela cria o de planos para a realiza o de um objetivo pr definido Pr Atividade capacidade de tomar a iniciativa isto agir em antecipa o a um evento ao contr rio de apenas reagir a ele Proxy do ingl s procurador Em engenharia de software especificamente em orienta o a objetos um objeto que tem como fun o representar outro GAM94 Script declara o procedural de comandos ou a es a serem executadas Sprite conjunto de imagens que representam uma anima o Taxonomia teoria da classifica o BRA90 BRO86 DAV96 DAW01 DHE00 FIS98
125. o deste tipo de comportamento 3 4 3 Arquiteturas Hibridas Pensando nas facilidades providas pela reatividade e na complexidade intr nseca ao processo de delibera o pode se pensar em uma 18 arquitetura que una os principios da arquitetura reativa e os mecanismos da arquitetura deliberativa compondo se uma arquitetura hibrida Em arquiteturas h bridas t m se um processo de gera o de a es em resposta a est mulos do meio independente do processo de delibera o que gera as a es necess rias para satisfa o dos anseios do agente atrav s de um planejamento das mesmas Isto eliminaria em parte os problemas citados anteriormente em rela o combina o destas duas abordagens Na verdade a arquitetura do ICE n o prop e uma nova forma de implementar uma funcionalidade ou outra mas uma nova forma de integrar um m dulo reativo a um processo de planejamento no intuito de melhorar a performance global do agente na solu o de tarefas complexas em um mundo din mico 3 5 Arquiteturas de Agentes Diversas arquiteturas utilizando os diversos modelos de agente j foram desenvolvidas com diversos objetivos Desta forma algumas delas foram estudadas de modo a analisar as dificuldades e limita es encontradas por outros pesquisadores Tamb m interessante que algumas delas sejam citadas a t tulo de compara o A utiliza o de uma arquitetura h brida de ag ncia como na arquitetura ICE n o de forma alguma i
126. o processo de pensamento atrav s do m todo react Esta classe tem conex o direta com o sensor pois ela que recebe a entrada de percep es do agente e com o Actuator pois as rea es geram a es a serem executadas M todos Principais react m todo que come a o processamento das rea es do agente Ele encarregado de retirar todas as percep es do sensor e trat las chamando o m todo evaluateInput descrito abaixo Este m todo retorna um booleano que indica se recebeu alguma rea o que necessita uma reconsidera o de objetivos do agente evaluateInput m todo que recebe uma percep o na forma de GenericAction e a trata ou seja caso exista uma rea o para esta percep o gera uma a o de resposta correspondente Como as informa es de rea es e a es s o dependentes do agente este m todo deve ser sobrecarregado pela vers o compilada da IADL respectiva 93 7 4 6 Classe GenericBeliefs GenericBeliefs EBupaat a Figura 28 Classe GenericBeliefs O modelo do mundo que cerca cada agente representado no modelo BDI pelas cren as Beliefs como visto na 3 4 2 Este componente representado pela classe GenericBeliefs cuja principal fun o atualizar o modelo do mundo de acordo com as a es que foram despachadas para execu o no actuator Os efeitos de cada a o estar o descritos em extens es desta classe espec ficas para cada agente de modo
127. o significativo na importancia da IA no processo de desenvolvimento de jogos na medida em que o esfor o de programa o tem se deslocado dos gr ficos e do som para a jogabilidade Al m do mais a evolu o dram tica nas plataformas de hardware desde o nascimento dos jogos de computador tornou poss vel a inclus o de comportamento complexo em entidades de programa Levando em considera o que transformar um programa em um jogo divertido um processo experimental por natureza necess rio dotar a defini o dos m dulos de IA de uma interface de f cil utiliza o em particular uma interface que n o hard coded no programa Para este fim a interface de defini o deve atingir n veis de abstra o mais altos de modo a permitir que n o programadores experimentem com as possibilidades Uma abstra o poss vel a no o de agentes de IA O objetivo deste trabalho definir um kernel para um Gerador de Controle de Intelig ncia em ingl s Intelligence Control Engine usando a no o de agentes da IA A interface de defini o onde o comportamento definido ser uma linguagem orientada a agentes externa O uso de agentes motivado pelo seu alto n vel de abstra o o que permite que n o programadores possam fazer experi ncias com possibilidades de comportamento Como a programa o de IA inerentemente complexa este kernel deve ser um m dulo facilmente anex vel de modo a reusar c digo confi
128. ocesso Esta op o foi feita de modo a evitar o overhead causado pelo uso de threads que apesar de serem processos ditos leves incorrem um certo gasto de mem ria para manuten o e processamento para a troca de contexto DAWO1 Este gasto bastante elevado especialmente quando se leva em considera o que seriam necess rias dezenas ou talvez centenas de threads caso fosse utilizada uma por agente DAW01 Logo o resultado desta alternativa de implementa o o aumento do desempenho geral dos jogos que utilizam a arquitetura ICE Esta emula o atingida utilizando um m todo que passa a linha de execu o para os sistemas internos do agente para que o mesmo possa ter uma fatia do tempo de processamento para realizar seus processos de rea o e delibera o este m todo chamado reason O ciclo de execu o de um agente individual no m todo reason consiste em ativar o componente reativo e em seguida ativar o componente BDI A vers o estendida desta classe muda apenas o seu construtor assim referenciando as classes tamb m estendidas 91 7 4 3 Classe Sensor Sensor fEZinputQueue Vector lt GenericAction gt ESgetInput EBsetInput Figura 25 Classe sensor Esta classe armazena a entrada de percep es do agente Ela possui uma fila de GenericAction e sua l gica a de manipula o de entrada e sa da em filas Quem insere nesta fila O GenericAgent ao receber percep es do
129. olvido Esta tarefa foi de responsabilidade de Paulo Schneider Pesquisa sobre projeto arquitetural de software consiste em pesquisar t cnicas de projeto e implementa o de software adequadas cria o do kernel Este projeto levou em considera o a integra o do paradigma orientado a agentes e contemplar seus objetivos de modulariza o Al m de definir a arquitetura foi definida uma linguagem orientada a agentes adequada ao desenvolvimento de jogos Ao final desta pesquisa foi projetado o 116 produto final do Trabalho de Conclus o Il Esta tarefa foi de responsabilidade de Felipe Meneguzzi Apesar de terem sido enumerados respons veis pelas diversas atividades todos os componentes do grupo adquiriram uma vis o dos conhecimentos exercitados no decorrer do trabalho de modo a diversificar as opini es em cada assunto e promover a intera o do grupo 8 1 2 Projeto da Arquitetura Esta tarefa visou a cria o de um projeto do sistema proposto para a implementa o a ser realizada como parte do Trabalho de Conclus o Il Como foi objetivo e interesse de todos os componentes do grupo o aprimoramento dos conhecimentos sobre projeto e implementa o de software os componentes desta tarefa n o foram delegados individualmente e sim executados pelo grupo como um todo Esta tarefa pode ser subdividida em Funcionalidades consiste na an lise de outras implementa es semelhantes e na defini o de um conjunto
130. onUpdate Badaattibute EBbVirtual Boolean FgenerateBeliefUpdate ESBadciConst TSS generateCompositeType Raddrield EBcode RRgenerateObjective Sado enod EBtoCoderFile generateObjectives EBadaParent EBtoHeaderFile PRgeneratePlan BBinclude StoString generatePlanner EStoCode File fBgenerateReflexes EStorieaderFile f generateReflexesEvaluatelnput EStoString generateTypes MethodHolder AttributeHolder EBsType String ConstructorHolder EBsParentConstructor String Figura 18 Classes do gerador de c digo As meta classes definidas para o Gerador de c digo cont m elementos gen ricos comuns a defini es de classes em orienta o a objetos A principal delas a classe classHolder que representa uma classe Os elementos s o adicionados defini o da mesma na forma de campos onde cada um especializado representando uma parte da defini o de uma classe estes campos s o codificados na classe FieldHolder A classe FieldHolder cont m descritores para caracter sticas comuns a defini es de campos em diversas linguagens orientadas a objetos permitindo que se defina campos de classe e de inst ncia campos constantes 82 e campos que podem ser sobrecarregados em especializa es da classe As especializa es para os campos de uma classe definidas para o ICEC s o AttributeHolder representa um atributo dentro de uma classe
131. organizadas em uma pilha As inten es apresentam tr s estados poss veis ativa pr xima a ser executada ou imediatamente dependendo da estrutura de inten es suspensa adotada a inten o por m nenhuma decis o tomada para utiliz la devendo ocorrer uma ativa o explicita e suspensa condicionalmente espera satisfa o de determinada condi o para passar para o estado ativo A execu o de uma inten o ocorre atrav s da realiza o de a es primitivas modificando o mundo externo ou o estado interno do sistema ou atrav s da cria o de novos objetivos importante ter se procedimentos fixos de decis o pois a partir do momento que o interpretador n o mais alcan a informa o que indique o melhor a fazer ele deve ter uma alternativa em forma de procedimento para sair do impasse Esta caracter stica facilita segundo DHEOO a implementa o deste componente j que o sistema n o ficar preso somente ao comportamento ditado por ele Por outro lado importante que o Interpretador seja capaz de lidar com situa es mais corriqueiras de forma que n o seja necess rio um acesso constante aos ACs de meta n vel pois isto prejudicaria fortemente o desempenho do sistema Como PRS tamb m se trata de uma arquitetura BDI o comprometimento com as inten es previamente adotadas de fundamental import ncia sendo que o racioc nio efetuado baseando se no conjunto de inten es existentes Um agen
132. os de utiliza o da linguagem 65 Bra ds Telle aie FANS n E a A a AAAS 65 6 3 2 Base de comando esse 67 6 3 3 Bola do Tcheco Balle 68 6 3 4 u 16 T 70 vii Do elne TTT 73 7 MODELAGEM E IMPLEMENTAGADO c ceccsssessssseseesenseens 76 1 1 Compilador pe a SR UE NAS GU PIER 76 7 1 1 Compila o versus Interpreta o iii ee 77 Pile FER AMEN AS T 78 7 1 3 M dulos do compilador usas aan nai doa 78 7 1 4 Analisador l xico e sint tico eee eeeeeeeeeneeees 79 7 1 5 Construtor de nodos da rvore sint tica see eee eee 79 7 1 6 Gerador de Codigo sss 81 TZ Ambiente ICE TTT 82 Taz AQUILES LUTA lt Te reie e a E a 83 7 2 2 Ciclo de funcionamento s sse eee ee eee nne 85 7 3 Ether e Game EngiIine cccccccessseeeeeeeeeeeeeeeeeeeeseeeeeeaeeeeeeenees 86 7 3 1 Classe Game ENgIN assis eee 86 7 3 2 GlaSSe Ethet i sraon teeter ahd aa ta theo cans 87 TA PQ L 0 TTT 88 7 4 1 Diagrama de classes sese 88 7 4 2 Classe GeneriCAGent ccccccceessseeeeeceeaessececceeeseeeeesnaseeees 89 7 4 3 Classe Sensor eee eee 91 7 4 4 Classe Actuator eee eee 91 7 4 5 Classe GenericReflexes e eee 92 7 4 6 Classe GenericBeliefs sss 93 7 4 7 Classe GenericObjectives e e nne 93 7 4 8 Classe GenericObjective s e nnne 94 7 4 9 Classe GenernicPianner css eee eee nne 95 7 4 10 Classe GenericPlan cccccccsessseceeeceeaeeeeceeceeeeeeseessaseeees 96 7 5 G
133. os e personagens que poderiam ser trabalhadas por desenhistas profissionais e carregadas para o jogo gra as ao aumento da mem ria que permitiu o armazenamento de tais imagens Deste modo surgiram os populares sprites que s o a denomina o de um conjunto de imagens que quando exibidas sequencialmente formam uma anima o e g Super Mario Bros Finalmente com a evolu o das placas gr ficas que atualmente possuem m dulos de mem ria pr prios para carregar as imagens foi poss vel obter a rapidez necess ria para desenvolver ambientes completamente 3D com texturas e ilumina o adicionando uma dose de realismo aos jogos Com isso os atuais jogos topo de linha s o jogos em 3D normalmente com uma perspectiva de primeira pessoa onde o jogador pode navegar por um imenso ambiente iterativo e g Unreal Tournment 35 4 1 4 Som A evolu o na parte sonora dos jogos levou um certo tempo se comparada com a gr fica Os sons come aram apenas com bips dos alto falantes internos dos computadores e as varia es de sons eram obtidas atrav s de modula o de frequ ncias O desenvolvimento de um hardware espec fico que era conectado em caixas de som adicionou mais tons e eram sem d vida mais agrad veis do que os predecessores Com o tempo v rios formatos de sons inclusive mp3 come aram a ser suportados pelas placas de som Hoje em dia a moda nesta rea o som ambiental em 3D Com uma aparelhagem relati
134. ptativos em outras palavras agentes Aplica es que acessam e ou filtram informa es com rcio eletr nico gerenciamento de workflow produ o inteligente educa o e entretenimento mais especificamente jogos est o cada vez mais se tornando predominantes O que estas aplica es t m em comum a necessidade de mecanismos de busca unifica o aproveitamento apresenta o gerenciamento propaganda e atualiza o de informa es Desde que a base do ambiente seja aberta onde as fontes de informa o s o aut nomas e heterog neas e podem ser adicionadas ou removidas dinamicamente os mecanismos associados devem ser extens veis e flex veis Visivelmente mais pessoas est o chegando conclus o de que agentes s o partes integrais desses mecanismos e que sua aplicabilidade na ind stria de jogos consequentemente essencial devido s exig ncias cada vez maiores de seus consumidores 3 2 3 Defini es B sicas sobre Agentes Muitas s o as tentativas de defini o para agentes e de especifica o de suas caracter sticas Entretanto h um ponto em comum entre conceitos e opini es Podendo se sintetiza las em uma nica defini o agentes s o ativos s o componentes persistentes software com percep o objetivos a o e capacidade de comunica o GAS98 Um agente qualquer entidade que percebe seu ambiente atrav s de sensores e age sobre ele atrav s de atuadores Um exemplo de modelo e
135. r de Inten es que realiza o planejamento pode inserir seus resultados na fila de execu o enquanto o agente extrai e executa as a es na frente da fila O componente AR tamb m possibilita que se definam rea es para situa es cr ticas onde a pausa para re considera o da situa o e re planejamento seria invi vel do ponto de vista de tempo de espera Um aspecto que deve ser levado em considera o devido a esta dualidade na origem das a es do agente o fato de ser poss vel a ocorr ncia de conflitos entre os passos de um determinado plano e uma rea o Para resolver este problema algumas arquiteturas h bridas s o dotadas de um detector de conflitos O projeto da arquitetura ICE permite que tal componente seja utilizado por m a implementa o realizada no TC2 n o ir prover um componente detector de conflitos uma vez que sua devida implementa o 52 seria inviavel do ponto de vista de tempo disponivel Desta forma fica a cargo do usuario a previs o e elimina o de poss veis conflitos causados por conjuga o de planos e rea es Uma das caracter sticas fundamentais dos agentes e que dever ser preservada em sua implementa o no ICE a independ ncia dos mesmos em rela o ao ambiente uma vez que n o haver maneira de se determinar o comportamento do agente atrav s de sua interface De um modo geral os agentes ICE poder o apresentar ou n o objetivos sendo que o processo de planejamen
136. rde est dormindo em uma casa amarela Se uma unidade amarela tentar entrar em sua casa ela pode expulsar a unidade verde Uma unidade que dorme em uma casa com a cor respectiva n o pode ser desalojada 43 Figura 10 Tela do prototipo do jogo Tcheco Balls O jogo termina quando todas as casas coloridas estiverem preenchidas com unidades das cores respectivas 4 3 2 FormiguinhaS FormiguinhaS um jogo em que o objetivo principal obter a maior quantidade poss vel de comida em um ambiente onde o jogador compete com um agente Formiga que tem o mesmo objetivo procurar comida Acontece que este agente ao perceber a presen a do inimigo foge dele neste caso o jogador poder aproximar se do agente para afast lo das comidas ainda existentes Ambos ter o de percorrer um labirinto onde aleatoriamente encontram se espalhadas as comidas O jogador e o agente iniciar o o jogo em posi es aleat rias tamb m o que demonstrar com mais efic cia a atua o do agente neste ambiente Ambos s o representados por um avatar que os diferencia dentro do labirinto O agente representado por uma formiga vermelha e o jogador por uma formiga marrom vis vel na Figura 11 44 Figura 11 Tela do prot tipo do jogo FormiguinhaS O labirinto formado por folhas verdes espalhadas pela tela do jogo as quais nem o jogador nem o agente podem ultrapassar tendo ent o que contorn las O jogo terminar quando n o mais
137. ricos dos quais as cren as da formiga ir o derivar al m de incluir todas as classes geradas para representar as a es da Formiga pois o agente ter presente n o s seus atributos em termos de estado interno como tamb m as a es que consegue realizar no ambiente e em si mesmo estes ltimos na forma de m todos No arquivo de implementa o propriamente dita o construtor da classe rormigaBeliefs dever inicializar todos os atributos inerentes ao agente em quest o e ainda sobrescrever o m todo update provido pela classe base FormigaBeliefs cpp include FormigaBeliefs h FormigaBeliefs FormigaBeliefs 106 fome 0 posicao 0 amiga false predador false comida false void FormigaBeliefs update GenericAction action string name action gt getName if name anda AndaAction al static cast lt AndaAction gt action anda al gt passo else if name fuga FugaAction a2 static cast lt FugaAction gt action fuga a2 gt passoLargo else if name come ComeAction a3 static cast lt ComeAction gt action come else if name alerta AlertaAction a4 static cast lt AlertaAction gt action alerta else if name protegida ProtegidaAction a5 static cast lt ProtegidaAction gt action protegida else if name ajuda AjudaAction a6 static cast lt AjudaAction gt action aju
138. rmada em uma representa o em termos de uma estrutura de classes de objetos em conformidade com a especifica o da arquitetura ICE Ao final do processo de compila o a representa o Orientada a Objetos convertida em arquivos fonte na linguagem alvo que no caso deste trabalho C 7 1 4 Analisador l xico e sint tico O processo de compila o no ICEC encabe ado pelos analisadores l xico e sint tico Estes analisadores s o criados utilizando se as ferramentas j descritas tendo como fonte a gram tica da IADL Devido forma com que as ferramentas utilizadas operam foi necess ria a cria o de um m dulo que isolasse a gera o de c digo intermedi rio do m dulo de an lise sint tica As regras especificadas na defini o da gram tica da linguagem para o analisador sint tico s o acompanhadas de regras da gram tica de atributos utilizada para a gera o do c digo intermedi rio Nas regras da gram tica de atributos s o feitas cnamadas para o m dulo construtor de nodos da rvore sint tica de modo a gerar o c digo intermedi rio 7 1 5 Construtor de nodos da rvore sint tica Este m dulo respons vel pela cria o dos nodos da rvore sint tica que corresponde representa o em c digo intermedi rio do agente sendo compilado Ele composto basicamente por m todos para a cria o de tipos espec ficos de nodos cada um representando um componente l gico da defini o de um agente E
139. s entre as Atividades As atividades de revis o bibliogr fica podem ser executadas concorrentemente visto que s o assuntos relativamente disjuntos A reda o do TC2 relativa aos t picos de implementa o e resultados obtidos da mesma s p de ocorrer ap s a conclus o pelo menos parcial da fase de implementa o Quanto implementa o da arquitetura ICE esta s p de ocorrer ap s a modelagem f sica ter sido devidamente conclu da Ap s o in cio da fase de implementa o o compilador interpretador teve de ser o primeiro m dulo a ser conclu do de modo a possibilitar testes de conceito sobre a arquitetura ICE em implementa o 8 4 Recursos Necess rios O produto final do TC2 n o requisitar de recursos extraordin rios uma vez que consistir apenas de um programa Logo os recursos necess rios consistir o de Um PC utilizando Sistema Operacional Windows 9x 2000 Compilador C preferencialmente o Microsoft Visual C Programas Lex e Yacc DirectX 7 instalado 121 9 CONCLUSOES Durante o curso das pesquisas do grupo para a realiza o deste trabalho diversas conclusdes foram obtidas A grande envergadura que os projetos de jogos de computador em nivel comercial possuem inviabilizam o desenvolvimento de um exemplar completo por um grupo pequeno de pessoas como o grupo que realizou este trabalho Desta forma o grupo teve de eliminar por completo por exemplo o objetivo de se projetar uma
140. s que o sistema tem que escolher para executar imediatamente ou em alguma situa o futura e um interpretador controla o funcionamento do agente selecionando e colocando na estrutura de inten es os planos de acordo com as senten as e os objetivos executando os A Base de Dados cont m fatos que o agente conhece a respeito de seu ambiente e a respeito de si mesmo chamando de cren as de meta n vel Assim como existem alguns objetivos do agente em rela o ao seu pr prio comportamento interno que s o os chamados objetivos de meta n vel As ACs exprimem as formas que o agente tem para atingir seus objetivos ou reagir a certas condi es especificadas declarativamente em 23 procedimentos Cada AC tem duas partes distintas um corpo e uma condi o de invoca o Um conjunto de situa es deve ser satisfeito para que determinada AC seja aceit vel constituindo ent o a condi o de invoca o que formada basicamente de cren as e objetivos O corpo das ACs pode ser visto como uma plano pois medida que um n fim atingido o objetivo respons vel por ativar o plano foi realizado DHEOO Na estrutura de inten es tem se aquelas tarefas que foram selecionadas pelo sistema para execu o imediata ou em algum instante futuro Basicamente cada inten o formada por um AC em conjunto com outras sub ACs s o ACS designadas a realizar objetivos parciais da AC principal necess rias para execu o da mesma
141. s s o a for a motriz para iniciar uma atividade e ent o alcan ar um novo objetivo Este servir como entrada para o processo de An lise de Meios fim Este processo buscar na Biblioteca de Procedimentos planos apropriados para completar o objetivo em quest o Estes planos que 27 indicarao se o objetivo pode ser alcangado localmente colaborativamente ou ainda uma escolha entre estas duas op es pode ser necess ria As inten es aparecem aqui como recursos para priorizar determinados objetivos ou n o quem faz esta delibera o o processo de An lise de Meios fim No caso do agente decidir buscar o objetivo localmente o Avaliador de Compatibilidade verificar se o objetivo e o meio de alcan lo s o compat veis com as inten es existentes Em caso negativo uma revis o feita pelo Solucionador de Inconsist ncias at remover o conflito Se o agente decidir alcan ar o objetivo contando com a colabora o de outros agentes uma a o social estabelecida Em uma primeira fase que se inicia com o estabelecimento da a o social citada anteriormente necess rio identificar os agentes da comunidade que est o potencialmente envolvidos Esta fase denominada Team Formation A segunda fase a gera o do plano social propriamente dito importante salientar que nesta arquitetura as inten es n o somente prov m meios para coordenar as a es como tamb m agem como um guia para execu o das t
142. ser executadas pelo agente em cada plano Estas a es devem estar definidas na se o action Complementando a defini o de cada plano pode se estabelecer mais algumas condi es para execu o de suas a es atrav s do comando if Estas condi es seguem a mesma sintaxe de defini o das pr condi es dos objetivos Caso n o se deseje impor estas condi es utiliza se a palavra reservada true como exemplifica o plano run mais abaixo plan huntLeft kill if lastTurn 1 priority 1 move 1 turn 2 plan huntRight kill if lastTurn 2 priority 1 move 1 turn 1 plan run hide if true priority 1 move 5 takeCover Terminada a descri o o agente poder ser compilado gerando o c digo em C correspondente seguindo as diretivas propostas pela arquitetura ICE 4 Utilizando o Compilador ICE O Compilador ICE ICEC respons vel por traduzir as descri es de agentes feitas na linguagem IADL transformando as em um 135 conjunto de classes que estendem as classes basicas que constituem a arquitetura ICE O compilador utiliza uma interface do tipo linha de comando O usuario do ICEC deve executa lo informando o caminho completo do arquivo que cont m a descri o do agente que deseja compilar e o diret rio em que ser colocado o c digo gerado Temos aqui o exemplo do personagem Soldado que modelamos nas se es anteriores passo a passo agent Soldado
143. significado cl ssico na l ngua inglesa tamb m utilizada no contexto de software especialmente na ind stria de jogos para definir os componentes principais da API mais b sica de um programa isto aquela que d suporte aos componentes de mais alto n vel Fazendo um paralelo com sistemas operacionais o game engine corresponderia ao kernel do jogo De acordo com RAB00a a motiva o b sica da separa o entre a l gica e os dados que o jogo evolui dramaticamente desde a concep o at o produto acabado uma vez que o desenvolvimento de bons jogos n o em um sentido t cnico muito mais uma arte do que uma ci ncia O processo de desenvolvimento de jogos envolve muita experimenta o em rela o a valores de diversos componentes do programa desde regras do pr prio jogo at posi es de c mera em um ambiente Considerando o fato de que a equipe de desenvolvimento do jogo n o composta apenas de programadores e que em diversas situa es quem ir realizar a experimenta o e sugerir as modifica es n o faz parte do pessoal t cnico apesar de ter algumas no es um alto n vel de parametriza o do jogo permite que os designers do jogo possam tentar diversas combina es de par metros sem a necessidade do aux lio de um programador como descrito na Figura 15 56 Figura 15 Modelo ideal de intera o entre os desenvolvedores e o jogo Uma prerrogativa b sica neste sentido evitar o hard codin
144. sses est de certa forma em conflito com os objetivos delineados no cap tulo anterior Entretanto necess rio ter em mente que um dos mais importantes requisitos de um jogo de computador a velocidade e a inser o do comportamento no c digo uma alternativa aceit vel nas fases finais de desenvolvimento de um jogo E foi a alternativa escolhida no curso deste trabalho por ser de implementa o mais r pida e de depura o mais simples N o obstante perfeitamente poss vel a cria o de um interpretador da IADL permitindo desta forma a utiliza o do ambiente ICE da forma proposta na 6 1 2 bastando para isto a cria o de uma extens o din mica das classes gen ricas descritas no restante deste cap tulo 78 7 1 2 Ferramentas Para a cria o do compilador da IADL foram utilizadas variantes do par de ferramentas Lex e YACC chamados ALex e AYACC Estas ferramentas acompanham uma interface de desenvolvimento chamada Parser Generator que distribu da na forma de shareware al m de ser de distribui o gratuita para a comunidade acad mica As ferramentas do Parser Generator t m como vantagem a gera o de c digo orientado a objetos de acordo com a filosofia de projeto utilizada neste trabalho Esta ferramenta faz uso de uma classe abstrata b sica de analisador l xico chamada yylexer que cont m os algoritmos de caminhamento nas tabelas geradas pela gram tica regular que define os tokens da lingu
145. ssion gt lt binary_operator gt lt expression2 gt lt unary_expression gt lt constant gt lt belief_reference gt lt expression gt lt unary_expression gt gt lt unary_operator gt lt belief_reference gt lt unary_operator gt lt constant gt lt expression2 gt gt lt constant gt lt belief_reference gt lt expression gt lt unary_operator gt gt lt binary_operator gt 5 lt logical_operator gt lt mahtematical_operator gt lt comparison_operator gt lt logical_operator gt gt and or lt mathematical_operator gt gt lt comparison_operator gt gt gt gt lt lt lt assignment_operator gt gt py lt condition gt gt lt list condition gt lt regular condition gt lt regular condition gt gt lt expression gt 6 2 3 A es Um elemento comum aos dois modelos utilizados nesta arquitetura h brida a no o de a o que define a capacidade de afetar o ambiente de uma entidade A es ser o definidas atrav s da se o action na defini o do agente Para cada a o s o especificados par metros que podem modificar o resultado da mesma Al m disto ser o especificados os efeitos desta a o nas cren as relacionadas Quanto aos efeitos das a es foram consideradas duas alternativas de sem ntica 62 Na primeira alternativa o agente executa a sua a o e espera um retorno do
146. ssionNode CompositeBeliefReferenceNode S S HEE EBbrnField BeliefReferenceNode EBsPriority Symbol EB getactions EB getCondtion BeliefAssignmentNode UnaryAssignmentNode EB getConditionString mTarget BeliefReferenceNode EJenExpression ExpressionNode EB getO bjectives nExpression ExpressionNode EB getObjectivesString Operation Integer jetExpression EB getPlanQ jetExpressionString EB getPriority jetExpression EB getPriorityString ig E igetOperation getOperationString igetTarget EBgetTargetString Figura 17 Nodos da rvore sint tica 81 7 1 6 Gerador de c digo O m dulo gerador de c digo respons vel pela transforma o do c digo intermedi rio nas classes que comp em um agente Este m dulo composto pelos algoritmos de gera o de c digo suportados por meta classes ou seja classes que descrevem outras classes como visto na Figura 18 CodeGenerator dnAgent ClassHolder L Sis BisClassName String E vector lt FieldHolder gt FieldHolder SBigenerateAgent ublicFields vector lt FieldHolder gt E o aay G5viProtectedFields vector lt FieldHolder gt L s eae BaenerateActions Seres D EBbCode Boost generateActionSetParameters Includes vector lt string gt Const Boolean generateBeliefs bStatic Boolean FRgenerateBeliefActi
147. ssui uma liga o com O cenericBeliefs para a verifica o da pr condi o e da p s condi o M todos Principais isPossible m todo que verifica se a pr condi o valida ou seja se o objetivo valido de ser perseguido isComplete m todo que verifica se a p s condi o valida ou seja se o objetivo esta completado 7 4 9 Classe GenericPlanner GenericPlanner EBcurrentPlan EBiCurrentAction eneratePlan electPlan nextAction isComplete Figura 31 Classe cenericPlanner A escolha em alto n vel do curso de a o que um determinado agente ir tomar feita atrav s dos Objetivos A fim de concretizar o objetivo selecionado necess rio que a es mais espec ficas sejam tomadas A sele o destas a es responsabilidade de um componente planejador representado na arquitetura ICE pela classe GenericPlanner que conter a interface b sica para sele o de planos No escopo deste trabalho o planejamento consistir apenas da execu o de um conjunto pr definido de planos para cada tipo de agente planos estes especificados na defini o do agente em IADL logo esta uma classe de armazenamento escolha e execu o de planos O funcionamento 90 desta classe est ligado com o algoritmo de pensamento do cenericagent pois ele determina quando um novo plano deve ser escolhido M todos Principais selectPlan m todo que seleciona um pla
148. stes nodos podem ser vistos na Figura 17 e s o todos derivados de uma classe comum chamada de Node que cont m as funcionalidades referentes a estrutura b sica da rvore sint tica Ao final do 80 processo de an lise sint tica esta rvore utilizada para a gera o da estrutura de classes que ir o representar o agente na linguagem de programa o alvo ActionDeclarationNode CompositeFieldDeclarationNode CompositeDeclarationNode EBsAction Symbol EBsField Symbol fdnFields CompositeFieldDeclarationNode EBpdnParameters ParameterDeclarationNode EBtType Type Composite Symbol EBaenEfrects ActionEffectNode z BoetField Enn BoetAction etFieldType igetFields EBgetParameters ESgetrietdTypeStrino LabelNode Mcetsrectso p Symbol ActionCallNode LabelType Integer EBpnParameters ParameterNode EBsAction Symbol EBsetSymbolType E v abel AgentDeclarationNode EBoetaction 0 Bas Symbol EBgetParameters 6 EBbdnBeliefs BeliefDeclarationNode A ObjectiveDeclarationNode EBodnObjectives ObjectiveDeclarationNode c Objective Symbol EBrdnReaction ReactionDeclarationNode H dnParameters ParameterDeclaration EBpdnPlans PlanDeclarationNode E senPreCondition Expr
149. t m uma criatura que ser o seu avatar no mundo Ele dever alimentar a criatura para que ela cres a e ensin la magias para que ela ganhe autonomia A criatura observa o jogador em suas a es e tenta imit las assim moldando a sua personalidade Ao obter uma certa autonomia poss vel notar comportamentos imprevis veis e surpreendentes validando o aprendizado da criatura 42 4 3 Jogos Exemplo Na fase de implementa o do trabalho de conclus o alguns jogos que utilizam a arquitetura de agentes do ICE foram implementados Estes jogos foram implementados acoplando se as classes do kernel ICE junto com agentes gerados atrav s da linguagem IADL e est o descritos em linhas gerais abaixo 4 3 1 Tcheco Balls Este jogo tem como prop sito demonstrar as capacidades reativas do agente O jogo constitu do de um tabuleiro com dimens es variadas que possui algumas casas coloridas e unidades coloridas que podem se movimentar e s o controladas pelos agentes O objetivo do jogo que as unidades coloridas achem suas casas de respectiva cor Para isso elas devem percorrer o tabuleiro vide Figura 10 at achar alguma casa colorida Ao achar uma casa com cor as unidades dormem ou seja elas n o fazem mais movimentos n o importando a cor da casa Por m se uma unidade estiver dormindo em uma casa que n o a pertence ela pode ser desalojada pela unidade com cor igual a da determinada casa Ex uma unidade ve
150. t belief declaration gt gt lt type gt lt belief declarator list gt lt belief declarator list gt gt lt belief declarator list gt lt belief declarator gt lt belief declarator gt lt belief declarator gt 5 IDENTIFIER lt expression gt IDENTIFIER lt belief assignment gt gt lt belief reference gt lt assignment operator gt lt expression gt lt belief reference gt gt IDENTIFIER lt composite reference gt 6 2 5 Objetivos O comportamento pr ativo do componente ABDI definido pelos objetivos do mesmo Na IADL os objetivos ser o definidos atrav s de um conjunto de valores desejados para as cren as Estes valores ser o declarados pela constru o pre na forma de uma express o onde os estados desejados para as cren as s o ligados por operadores l gicos quando esta express o for avaliada como verdadeira ent o o objetivo em quest o ter sido atingido Os objetivos ser o definidos atrav s das seguintes constru es da gram tica T Veja 85 2 2 64 lt objectives gt gt objective lt objective_declaration_list gt lt objective_declaration_list gt gt lt objective_declaration_list gt lt objective_declaration gt lt objective_declaration gt 3 lt objective_declaration gt gt IDENTIFIER lt parameter_declaration_list gt pre lt conditions gt pos lt conditions gt lt objective list gt gt IDENTIFIER 9
151. tar uma implementa o mais custosa em termos de tempo de processamento por m como este componente opcional poder ser reservado a entidades de maior import ncia dentro do jogo como por exemplo o soldado Hans Isto ir permitir o dimensionamento do gasto computacional e 50 ao mesmo tempo permitir o balanceamento das capacidades cognitivas dos componentes do jogo Internamente os agentes poder o ser dotados de uma estrutura que permita com que o hibridismo da arquitetura n o cause conflitos Os fluxos de comunica o desta estrutura podem ser vistos na Figura 14 Assim que o agente receber uma percep o do ambiente esta ser entregue ao componente AR que ir verificar nas suas regras se h alguma rea o definida para a mesma Quando o agente executar uma a o sobre o ambiente esta ser entregue a fun o de revis o de cren as Percep es Reativo AR Componente BDI ABDI Fun o de Revis o de Cren as Detec o de Conflitos opcional Gerador de Inten es Atuador Figura 14 Estrutura interna dos Agentes ICE O componente ABDI ir levar em considera o a base de cren as atualizadas para decidir se o objetivo atual continua vi vel ou j foi cumprido A seguir caso haja necessidade de reconsidera o o gerador de inten es ir baseado nos objetivos definidos pelo usu rio representados pelo reposit rio de desejos analisar as cren as e selecionar os desejos qu
152. te comprometido em alcan ar determinado 24 objetivo seguir o plano estabelecido mesmo que altera es no mundo proporcionem formas melhores de alcan lo 3 5 3 COSY COSY Cooperating Systems distingue se por ser um estudo sobre um sistema baseado em conhecimento cooperativo Seus agentes ditos agentes racionais s o capazes de trabalhar em conjunto ordenadamente de forma a atingirem um objetivo em comum Esta a maior diferen a conceitual quando comparamos esta arquitetura com as outras vistas anteriormente Seu modelo de agentes descreve o agente por suas inten es definindo dois estados mentais distintos que veremos a seguir t ticos ou estrat gicos comportamentos percep es a es e comunica o e recursos requeridos para satisfazer as inten es executando os comportamentos tais como eles o sao A arquitetura COSY tem uma estrutura modular contando basicamente com os seguintes m dulos Atuadores Sensores Comunica o Motiva es e Cogni o Os tr s primeiros s o os componentes b sicos do dom nio de atua o de forma que sua implementa o fica a cargo do construtor do agente As fun es inerentes a cada um destes m dulos s o bastante evidentes sendo os Atuadores respons veis pelas a es sobre o meio os Sensores fornecem informa es atualizadas sobre o estado e os eventos do ambiente e o m dulo de Comunica o respons vel pela troca de informa es com os outros
153. te importantes que constituem o desenvolvimento do jogo em si Surge tamb m um novo perfil de funcion rio o designer O perfil deste cargo n o necessariamente o de um programador mas preciso ter no es t cnicas Tamb m n o de um artista ou escritor mas preciso ser criativo O designer encarregado de criar o jogo ele basicamente modela as fases e cria o ambiente onde o jogador ir interagir Para isso ele utiliza um editor de fases comum na maioria dos jogos seguindo o roteiro definido por um escritor e utilizando a arte tanto 2D como 3D desenvolvida por um artista Com os jogos em 3D existem equipes de desenvolvimento que t m empregado inclusive arquitetos No est gio de evolu o atual a cria o de um jogo passa a ser um processo incrivelmente elaborado que mistura a parte t cnica com a parte criativa e art stica virtualmente imposs vel criar um jogo com tecnologia de ponta com um time de menos de quatro pessoas A evolu o das tecnologias 39 tanto de hardware como de ferramentas para a elabora o do jogo requer profissionais especializados nas diversas reas que o comp em como a de gr ficos som e sem d vida a de intelig ncia artificial 4 1 9 Intelig ncia Artificial nos Jogos Segundo HOW01 um dos primeiros e principais jogos a utilizar no es de intelig ncia artificial foi o Pacman Neste o jogador controla um avatar ou seja o representante do jogador
154. tema de controle reativo de nibus espaciais da NASA o que indica que o ambiente de atua o sujeito inevitavelmente a constantes altera es Nela as atitudes como cren as desejos e inten es s o representadas explicitamente e juntas determinam as a es do sistema para alguma dada inst ncia Assim como a arquitetura cl ssica que conhecemos para agentes com atuadores e sensores PRS tamb m se utiliza destes conceitos na modelagem de seus agentes Atrav s dos sensores o agente adquire novas cren as sobre o mundo onde seus sinais s o traduzidos para uma representa o simb lica J as a es que comp em os planos s o traduzidas em comandos para os executores Como veremos a seguir a arquitetura PRS composta basicamente de cinco m dulos conforme a Figura 5 22 Base de Dados Biblioteca de Crengas ACs Planos Interpretador Ambiente Raciocinador Executores Objetivos Estrutura de Inten es Gerador de Comandos Figura 5 Estrutura da arquitetura PRS DHEOO Os componentes constituintes desta arquitetura s o uma Base de Dados contendo as cren as fatos sobre o mundo um conjunto de objetivos representam o comportamento desejado do sistema e do agente substituem o os desejos previstos na arquitetura BDI uma Biblioteca de reas de Conhecimento ACs encapsula o conhecimento sobre como cumprir tarefas e como reagir em determinadas circunst ncias uma estrutura de inten es plano
155. ther funciona como a representa o do ambiente Neste estar mapeada as constantes do mundo que se deseja representar O Ether implementa a troca de duas mensagens com os agentes ICE que s o a o e percep o A mensagem de a o que disparada pelo agente com destino ao Ether visa informar o sistema multi agente da fun o que o agente pretende realizar Ao receber est mensagem o Ether deve descobrir quais agentes podem ser afetados pela a o e para estes enviar a mensagem percep o indicando o que aconteceu no ambiente O Ether ter seu funcionamento ligado diretamente com o da Game Engine ou seja ele ter se tempo de execu o limitado pela GE Como os jogos possuem um loop central localizado na GE onde o processamento cr tico ocorre como exibi o das imagens processamento de perif ricos e l gica do jogo ser designada uma fatia de tempo para que o Ether processe Com isso ser poss vel escalonar facilmente o tempo de processamento l gico Da mesma forma que a GE o Ether pode alterar o tempo de processamento dos agentes ICE designando a eles fatias de tempo para cumprir suas tarefas Com isso o processamento de a es por parte dos agentes pode ser balanceado de forma que elementos que estiverem fora da linha de vis o do jogador assim considerados fora da cena ocupem menos processamento do que elementos pr ximos ao jogador 5 3 Revis es no projeto original A modelagem f sica e
156. tivo ou deliberativo Constru o declarativa ou procedural Mobilidade fixa ou m vel Adaptabilidade capacidade de aprender Modelagem do ambiente deles mesmos ou de outros agentes Como exemplo de caracter sticas extr nsecas CAS 98 Localidade local ou remota Autonomia social independente ou controlada Sociabilidade autistica alienado de seu ambiente ciente prevenido sabedor respons vel atrelado ao grupo 12 Grau de integra o cooperativa competitiva ou antag nica Intera es log stica direta ou via promovedores mediadores ou n o agentes estilo qualidade natureza com agentes mundo ambos n vel sem ntico comunica es declarativas ou procedurais Considerando que agentes s o estruturas computacionais e as caracter sticas dos mesmos utilizam uma terminologia humano cognitiva estes proporcionam uma interface de defini o computacional mais compreens vel Ou seja definem caracter sticas como sociabilidade tipo de integra o adaptabilidade que s o caracter sticas essencialmente humanas Tem se ent o uma aproxima o cada vez maior do comportamento dos agentes com o comportamento humano De certa forma isso tornaria um jogo muito mais atraente e interativo pois seus personagens agiriam como seres pensantes ativos Para a maioria dos jogadores a emo o de um jogo est principalmente no fato de poder sentir a realidade mostrada com
157. to e cogni o dever ser exclusivo das entidades que os apresentarem importante lembrar que a escolha de objetivos a serem cumpridos a sele o de comprometimentos e o planejamento de sua execu o um processo bastante custoso e n o dever ser executada pela maioria dos agentes imersos no mundo 5 2 3 Ether o ambiente dos Agentes Como indicado na Figura 12 e mencionado anteriormente a arquitetura do ICE divide claramente o funcionamento do jogo do funcionamento dos agentes Esta divis o foi concebida a fim de prover um n vel de abstra o maior ao desenvolvedor do jogo ou seja o desenvolvedor do Game Engine pois este n o precisa ou deve ter o conhecimento imediato de como manipular os agentes Por isso o Ether se torna uma camada t o importante na arquitetura O Ether basicamente o cerne do sistema multi agentes corresponde ao sistema de troca de mensagens entre os agentes da arquitetura ICE Uma vez que a nica interface conceitual dos agentes s o as a es dos atuadores e as percep es recebidas pelos sensores o Ether respons vel por receber como entrada as a es de todos os agentes do sistema process las e distribuir percep es de volta aos agentes Em termos de ambiente de agentes o Ether pode ser classificado de acordo com 3 3 2 como inacess vel n o determin stico epis dico din mico e discreto 53 Al m da funcionalidade de roteador das percep es dos agentes o E
158. tulo 5 Por m interessante notar que agentes se prestam principalmente a representar entidades individuais auto contidas e inseridas em ambientes heterog neos Portanto o moderno conceito de agentes 1 Do ingl s Distributed Artificial Intelligence inteligentes tem raizes que se estendem desde os fundamentos de Intelig ncia Artificial computa o orientada a objetos e sistemas distribu dos at areas da filosofia e ci ncias sociais e econ micas RUS94 e WEI99 3 2 Introdu o aos Agentes em IA 3 2 1 Origens dos Agentes Nos prim rdios do desenvolvimento da computa o o computador n o era muito mais do que uma m quina de calcular bastante poderosa Naquela poca utilizava se o computador para fazer in meros c lculos em sequ ncia para aplica es cr ticas c lculos estes que demorariam tempo demais se efetuados por seres humanos de modo que quando prontos eles n o mais seriam teis Um exemplo cl ssico desta utiliza o que os primeiros computadores eram utilizados primariamente para computa o de trajet ria de proj teis mais tarde para c lculo da trajet ria bal stica de m sseis estrat gicos intercontinentais Ainda n o se falava em diferencia o entre software e hardware pois os dispositivos computacionais eram m quinas dedicadas a fun es espec ficas Quando os dispositivos finalmente foram divididos entre m quina e programa come ou a no o de flexibilidade Este conceito
159. type file gt gt lt import section gt lt type declarations gt lt type declarations gt lt import_section gt gt lt imports gt 3 lt type_declaration_section gt gt lt type_declaration_section gt lt type_declaration gt lt type_declaration gt 3 lt imports gt gt lt import gt lt imports gt lt import gt 93 lt import gt gt import lt filename gt Tipos lt simple_type gt gt int float bool string lt type gt gt lt simple_type gt IDENTIFIER lt type_declaration gt gt lt composite gt lt list gt lt composite gt gt composite IDENTIFIER lt fields gt lt fields gt gt lt field gt lt fields gt lt field gt lt field gt gt lt simple_type gt IDENTIFIER lt composite_reference gt gt IDENTIFIER IDENTIFIER lt list gt gt IDENTIFIER list of lt type gt lt constant gt gt lt mathematical_constant gt STRING_CONSTANT BOOL_CONSTANT lt mathematical constant gt gt INTEGER CONSTANT FLOAT CONSTANT Opera es com Tipos lt list statement gt gt IDENTIFIER lt list operation gt lt list iteration gt lt list_iteration gt gt iterate IDENTIFIER with IDENTIFIER lt action_effects gt _operation gt gt add IDENTIFIER remove _condition gt gt lt type gt IDENTIFIER lt list_logical_operator gt IDENTIFIE where lt regular_condition
160. uida do identificador da rea o e a condi o para este reflexo ser acionado A sintaxe deste comando est ilustrada logo abaixo reaction turnLeft if noiseLeft turn 2 reaction turnRight if noiseRight turn 1 reaction shootFront if noiseFront shoot No caso do agente Soldado as percep es definidas s o as tr s citadas anteriormente Logo para cada percep o pode se definir um reflexo correspondente e atrav s dele invocar a execu o de alguma das a es que o personagem implementa Usando como exemplo a percep o noiserront que sup e a presen a de um inimigo a frente do Soldado a rea o denominada shootFront mapeia esta percep o para execu o da a o shoot OU seja atirar imediatamente no inimigo Pode se definir outras percep es neste bloco de rea es quantas se julgar necess rio concluindo a defini o do componente reativo para o personagem em quest o 133 Vejamos a seguir as estruturas necessarias para que se possa incluir pr atividade no agente 3 5 Objetivos Um grande passo na busca de delibera o dar ao personagem objetivos a alcan ar Isto pode ser descrito utilizando a palavra reservada objective No agente Soldado modelado at agora ainda n o hav amos inserido tal caracter stica Para simplificar definiremos dois objetivos principais ao nosso personagem matar e esconder se Vejamos objective kill pre ammo gt 0 pos false hi
161. vamente cara poss vel utilizar esta nova tecnologia e obter um efeito de imers o maior no jogo 4 1 5 Interface A evolu o da interface tamb m foi mais lenta do que a gr fica No in cio a interface era feita atrav s de joysticks b sicos com um no m ximo dois bot es no caso de videogames e teclado no caso dos primeiros computadores A evolu o dos jogos for ou a adi o de mais bot es aos joysticks e a migra o destes para os computadores Com o advento do mouse este perif rico foi aproveitado como um m todo f cil de interface em jogos e continua extremamente popular Os ltimos avan os nesta rea s o os joysticks Force Feedback que possuem um mecanismo vibrat rio que ativado em resposta ao ambiente do jogo e em mouses mais sens veis espec ficos para jogadores Tamb m comum encontrar volantes e pedais como perif ricos de interfaces designados especialmente para jogos de corrida e g Nascar 4 1 6 Jogos Multi Jogador Uma rea relativamente nova a de jogos multi jogador em rede O jogo multi jogador suportado desde o videogame atrav s por exemplo do 36 uso de dois joysticks Por m jogos deste tipo em rede de multi computadores s o relativamente novos pois seguem a evolu o da telecomunica o e dos protocolos de rede Um fato interessante que os primeiros jogos aproximadamente em 1970 operavam em ambientes de rede e rodavam em mainframes Esta rea teve in
162. ve m todo que avalia se o objetivo corrente caso exista n o pode ser executado pr condi o invalida ou se ele j est completo p s condi o valida Caso de alguma das premissas anteriores for verdadeira o m todo retorna a necessidade da reconsidera o de objetivos R evaluateObjectives m todo que cria a lista auxiliar de objetivos avaliados selectNextObjective m todo que pega da lista auxiliar um objetivo que n o foi ainda considerado pelo GenericPlanner Caso n o encontre nenhum objetivo que possa ser executado retorna NULL e ent o o algoritmo de pensamento do cenericagent saber que n o existir um plano neste ciclo 7 4 8 Classe GenericObjective GenericObjectiv e Es Name String isPossible isComplete etName Figura 30 Classe cenericobjective Classe que representa um objetivo do agente Dois componentes perfazem a defini o de um objetivo uma pr condi o que define quando um objetivo vi vel e uma p s condi o que define quando um objetivo foi atingido Cada um destes componentes representado na forma de uma 95 express o l gica em termos do conjunto de cren as do agente que s o avaliadas antes da sele o de um objetivo e durante o processo de execu o de um plano que visa completar o objetivo selecionado armazenada pelo GenericObjectives um dos par metros para a escolha de um plano no GenericPlanner Po
163. vel os testes de compatibilidade de hardware eram nulos Assim sendo o jogo n o corria o risco de executar lentamente pois era 33 desenvolvido pelo mesmo tipo de computador e nao por um mais rapido garantindo a precisao em testes de performance ROLOO Em relagao a programagao inicialmente 0 Assembly era utilizado O fato de que as plataformas possuiam recursos restritos de hardware principalmente memoria tornava necess rio o desenvolvimento de um c digo enxuto que possu a e ainda possui a rapidez como requisito prim rio Como na poca os compiladores C falhavam em gerar um c digo t o otimizado a solu o era mesmo o Assembly Essa medida tornou os jogos menos port veis pois a linguagem de cada plataforma era diferente e os compiladores de linguagens de alto n vel que al m de n o gerar um c digo aceit vel n o possu am formas de compila o para diferentes plataformas alvo Os ambientes de programa o eram r sticos comparados com os de hoje Eles eram apenas editores de Assembly e os programadores necessitavam um bom conhecimento das instru es da plataforma aritm tica bin ria e transforma es de base Os jogos desenvolvidos naquela poca possuiam um esp rito diferente Como os recursos de hardware eram limitados n o era poss vel inovar muito graficamente A jogabilidade termo relacionado com a intera o do usu rio ao ambiente do jogo deveria ser extremamente simples pois
164. vo e um componente de alto n vel que dever corresponder ao modelo de agente BDI Estas entidades do jogo existentes apenas na sua representa o l gica at o momento dever o ser representadas de alguma forma para o jogador Apesar de a cogni o e intera o dos agentes serem os focos principais do ambiente ICE uma interface com o GE ser criada Esta intera o necess ria para que possa existir uma representa o vis vel este adjetivo aqui empregado transcende a representa o visual dos componentes ao usu rio do estado das entidades do jogo pr requisito fundamental para a intera o do usu rio com o ambiente interno do ICE De modo a permitir uma comunica o da parte l gica do jogo i e o ambiente ICE com a parte de visualiza o aqui englobando toda a percep o do jogador n o s o visual o Ether dever prover uma interface que permita ao Game Engine extrair as informa es relevantes gera o da visualiza o Este componente ser apresentado com mais detalhes nas se es subsequentes tamb m apresentando a implementa o realizada no TC2 5 2 2 Os Agentes do ICE A arquitetura de ag ncia proposta como modelo para cria o do ICE ir consistir de um modelo h brido contendo componentes baseados em Agentes Reativos daqui por diante chamados de AR e componentes baseados em Agentes BDI Belief Desire Intention doravante chamados 49 ABDI como descrito na Figura 13 A repr
Download Pdf Manuals
Related Search
Related Contents
Configuring NDMP Backups to Disk on VNX VoloAccess™ User Manual V1.3 Manuel d`utilisation - Poeles This page is intentionally left blank EFE300J シリーズ 取扱説明書 Samsung HT-THQ25 دليل المستخدم Ma rentrée scolaire - Magny-les Sun Microsystems 6U Network Card User Manual Turbosound LMS-A6 User's Manual Copyright © All rights reserved.
Failed to retrieve file