FAct: Um framework para a construção de sistemas multiatores
Texto
(2) Universidade Federal de Pernambuco CENTRO DE INFORMÁTICA PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO. Allan Diego Silva Lima. “FAct: Um Framework para a Construção de Sistemas Multiatores". Este trabalho foi apresentado à Pós-Graduação em Ciência da Computação do Centro de Informática da Universidade Federal de Pernambuco como requisito parcial para obtenção do grau de Mestre em Ciência da Computação.. ORIENTADOR(A): Profa.. Patricia Cabral de Azevedo Restelli Tedesco. RECIFE, ABRIL/2009.
(3) Lima, Allan Diego Silva FAct: Um framework para a construção de sistemas multiatores / Allan Diego Silva Lima - Recife : O Autor, 2009. vi, 82 folhas : il., fig., quadros Dissertação (mestrado) – Universidade Federal de Pernambuco. CIn. Ciência da Computação, 2009. Inclui bibliografia. 1. Inteligência artificial. I. Título. 006.3. CDD (22. ed.). MEI2009-056.
(4)
(5) Agradecimentos Aos meus amigos e colegas que sempre me incentivaram durante todo o projeto. À minha família pelo apoio incondicional durante todo o projeto. Aos meus orientadores, pela confiança e pelo tempo dedicado a este projeto. A Eduardo Dominoni e Bengt Karlson por tenrem cedido o código fonte e todas informações necessárias sobre o projeto BARIM. E, finalmente, a Deus, por sempre me dar forças nos momento s difíceis para superar os desafios da minha vida. Muito obrigado!. i.
(6) Resumo Atores Sintéticos são agentes inteligentes que possuem personalidade, atuam em ambientes multimídias ou virtuais e são represent ados graficamente por avatares. Estas entidades são utilizadas em sistemas de simuladores como forma de enriquecer a interação entre a aplicação e seus usuários, proporcionando assim aumento da credibilidade do projeto. Com a sua popularização sugiram vários projetos que os utilizam. Estes projetos têm diversos aspectos em comum. Por exemplo, neles seus atores se comunicam e possuem modelos de personalidade. Contudo, apesar das similaridades os projetos encontrados na literatura foram implementados de forma independente. Ou seja, tiveram seu código fonte desenvolvido do zero. Porém, no âmbito dos sistemas multiagentes tal problema não ocorre devido à existência. de. diversos. frameworks. multiagentes. que. agrupam. as. funcionalidades comuns a tais sistemas, fazendo com que o desenvolvedor implemente apenas o que é relativo ao seu contexto de simulação. Porém, estes frameworks não são utilizados em sistemas multiarores, pois não suportam as peculiaridades dos sistemas multiatores. Buscando solucionar esse problema, este trabalho apresenta o FAct (Framework for Actors), um projeto criado especificamente para auxiliar na construção sistemas multiatores. Ele focado nas características peculiares destes sistemas e tem como principal objetivo reduzir o custo e tempo de desenvolvimento para os projetos baseados nesta tecnologia. Como forma de exemplificar o uso do FAct e avaliar o seu impacto no desenvolvimento de simuladores multiatores, serão apresentados dois simuladores implementados com base no framework.. Palavras-chave: Atores Sintéticos, Sistemas Multiatores, Agentes Autônomos. ii.
(7) Abstract Synthetic Actors are a special kind of Intelligent Agents that have personality, act in multimedia or virtual environments and are graphically represented by avatars. These entities are been used on the development of simulators to improve the interaction between application and its users, providing an increment of the application relaiability. With the popularization of the synthetics actors many projects using this tecnology have been launched. These projects have several characteristics in common. For example, synthetic actors communicate with each other and have personality models to guide their behavior. However, despite their similarities, the projects founded in the literature have been implemented independently. In other words, they were his code developed from scratch. But, with multiagent systems this problem does not occur anymore because of several mulitiagents frameworks that have already the common features needed for this kind of simulators, so that the developer must implement only what is related to his simulation context. Although they are constanly used in the. development. of. multiagent. systems,. ther. aren‟t. used. in. the. implementation of multiactor systems, since they do not support many of the exclusive features of this kind of simulator. Trying to solve this problem, this work introduces FAct (Framework for Actos), a project specifically created to build multiators systems. It is focused in the main characteristics of the multiatores systems and has the goal to reduce the development cost and time spent on the development of this kind of simulator. As examples of the use of FAct, also two simulators that have been developed using the framework will be discussed here. iii. Keywords: Synthetic Actors, Multiators Systems, Autonomous Agents.
(8) Índice 1 INTRODUÇÃO ............................................................................................................... 1 2 ATORES SINTÉTICOS E SISTEMAS MULTIATORES ............................................... 4 2.1 V ISÃO G ERAL DO C ONCEITO DE A TORES S INTÉTICOS ............................................... 5 2.1.1 Personalidade ............................................................................................. 5 2.1.2 Emoção ....................................................................................................... 5 2.1.3 Influências dos Modelos de Personalidades e de Emoções no Comportamento dos Atores ................................................................................... 6 2.2 S IMULADORES B ASEADOS EM A TORES S INTÉTICOS .................................................. 6 2.2.1 Projeto Oz (The Oz Project) ......................................................................... 7 2.2.2 Projeto Teatro Virtual (The Virtual Theater Project) .................................... 8 2.2.3 Projeto Enigmas no Campus ........................................................................ 9 2.2.4 O Projeto FearNot! (FarNot! Project) ........................................................ 10 2.2.5 O Projeto SmartSim ................................................................................... 12 2.2.6 Projeto BARIM .......................................................................................... 13 2.3 D ISCUSSÃO ......................................................................................................... 15 2.4 S ISTEMAS M ULTIATORES ..................................................................................... 16 2.4.1 Uma definição para Sistemas Multiatores ................................................... 17 2.4.2 Requisitos Necessários a um Framework para Sistemas Multiatores ............ 18 2.5 C ONCLUSÕES ...................................................................................................... 20 3 FRAMEWORKS PARA A CONSTRUÇÃO DE SISTEMAS MULTIAGENTES ........... 22 3.1 C RITÉRIOS DE A VALIAÇÃO ................................................................................... 3.2 P ROJETOS A NALISADOS ....................................................................................... 3.2.1 GNU MAGES (Multi Agents Environment Simulator) .................................. 3.2.2 CORMAS (Common–pool Resources and Multiagent Systems) ..................... 3.2.3 JADE (Java Agent DEvelopment Framework) ............................................. 3.2.4 SeSAm (Shell for Simulated Agent Systems) ................................................ 3.3 D ISCUSSÃO ......................................................................................................... 3.4 C ONCLUSÕES ....................................................................................................... 22 24 24 25 27 29 30 33. 4 FACT: UM FRAMEWORK PARA A CONSTRUÇÃO DE SISTEMAS MULTIATORES .............................................................................................................. 35 4.1 A RQUITETURA DO F RAMEWORK ............................................................................. 4.1.1 Biblioteca de Simulação ............................................................................. 4.1.2 Ferramentas de Suporte ............................................................................. 4.2 A RQUITETURA DA B IBLIOTECA DE S IMULAÇÃO ...................................................... 4.2.1 O pacote Actor .......................................................................................... 4.2.2 O pacote Representation ............................................................................ O pacote WorldData ........................................................................................... 4.2.3 O pacote Log ............................................................................................. O pacote Util ..................................................................................................... 4.2.4 O pacote DesignPattern .............................................................................. 36 37 38 39 39 44 45 46 47 48 iv.
(9) Introdução. O pacote FAct .................................................................................................... 4.3 F ERRAMENTAS DE SUPORTE AO DESENVOLVEDOR .................................................. 4.3.1 ActorModeler: A ferramenta para modelagem de atores .............................. 4.3.2 AnalisysTool : A ferramenta de interpretação de Logs ................................ 4.4 O PROCESSO DE DESENVOLVIMENTO DO FA CT ........................................................ 4.5 C ONCLUSÕES ....................................................................................................... 48 49 50 52 54 56. 5 RESULTADOS OBTIDOS COM O USO DO FACT ..................................................... 57 5.1 M-D S IMULATION : U M S IMULADOR M ULTIATOR B ASEADO N O FA CT ....................... 57 5.1.1 Symlog: O modelo de personalidade adotado .............................................. 58 5.1.2 Modelagem dos Atores ............................................................................... 59 Developer Actor............................................................................................................. 59 Manager Actor .............................................................................................................. 60. 5.1.3 Implementação do M-D Simutation ............................................................. 61 Forge Flex, A biblioteca gráfica utilizada ....................................................................... 61 Arquitetura do simulador ................................................................................................ 61. 5.1.4 Um exemplo de Interação ........................................................................... 5.1.5 Avaliação do Uso do FAct no MD-Simulation ............................................. 5.2 O BARIM S IMULATOR ........................................................................................... 5.2.1 Modelagem dos Atores ............................................................................... 5.2.2 Implementação do BARIM Simulator .......................................................... Avaliação do Uso do FAct no BARIM Simulator .................................................. 5.3 C ONCLUSÕES ....................................................................................................... 64 66 67 68 68 70 72. 6 CONCLUSÕES E TRABALHOS FUTUROS ................................................................ 73 6.1 P RINCIPAIS C ONTRIBUIÇÕES ................................................................................. 75 6.2 D IFICULDADES ENCONTRADAS .............................................................................. 75 6.3 T RABALHOS FUTUROS .......................................................................................... 76 REFERÊNCIAS ............................................................................................................... 78. v.
(10) Lista de Figuras F IGURA 2.1 – I NTERFACE DA APLICAÇÃO A NIMATED P UPPETS ............................................... 9 F IGURA 2.2 – I NTERFACE DO JOGO E NIGMAS NO C AMPUS . .................................................. 10 F IGURA 2.3 – I NTERFACE GRÁFICA DO SIMULADOR EDUCACIONAL F EAR N OT ! ...................... 11 F IGURA 2.4 – O JOGO V IRTUAL T EAM . .............................................................................. 12 F IGURA 2.5 – G RÁFICO DE RELACIONAMENTOS GERADO PELO SIMULAÇÃO . ......................... 15 F IGURA 3.1 – I NTERFACE DO MAGES RODANDO O SIMULADOR C APTURE T HE F LAG . ............ 25 F IGURA 3.2 – A A INTERFACE GRÁFICA DO CORMAS. ........................................................ 27 F IGURA 3.3 - I NTERFACE PARA CONTROLE DE AGENTES REMOTAMENTE DO JADE ................ 28 F IGURA 3.4 – M ODELANDO UM A GENTE NO S E SA M ........................................................... 30 F IGURA 4.1 – V ISÃO GERAL DO FA CT . .............................................................................. 37 F IGURA 4.2 – P ACOTES DO FA CT E SUAS DEPENDÊNCIAS . ................................................... 39 F IGURA 4.3 – E NTIDADES BÁSICAS DO PACOTE A CTOR . ...................................................... 41 F IGURA 4.4 – C LASSES DE SUPORTE A SIMULAÇÃO DO PACOTE A CTOR . ................................ 42 F IGURA 4.5 – V ISÃO G ERAL DO M ODELO G ENÉRICO DE A TOR ............................................ 43 F IGURA 4.6 – M EMBROS DO PACOTE R EPRESENTATION . ...................................................... 45 F IGURA 4.7 – E NTIDADES DO PACOTE W ORLD D ATA . ........................................................... 46 F IGURA 4.8 – M EMBROS DO PACOTE L OG . ......................................................................... 47 F IGURA 4.9 – C LASSES DO PACOTE U TIL . .......................................................................... 47 F IGURA 4.10 – M EMBROS DO PACOTE D ESIGN P ATTERN ...................................................... 48 F IGURA 4.11 – E NTIDADES DO PACOTE FA CT . ................................................................... 49 F IGURA 4.12 – I NTERAÇÃO ENTE A B IBLIOTECA DE S IMULAÇÃO DO FA CT O E DITOR DE A TORES . ................................................................................................................. 50 F IGURA 4.13 – I NTERFACE DA FERRAMENTA DE MODELAGEM DE ATORES . ........................... 51 F IGURA 4.14 – C RIAÇÃO DE UM NOVO ATOR BASEADO EM UM MODELO DE PERSONALIDADE . 51 F IGURA 4.15 – G RÁFICO COM A COMPARAÇÃO DA EVOLUÇÃO DO ATRIBUTO H UMOR EM DOIS ATORES ATRAVÉS DE UM GRÁFICO GERADO PELA A NALISYS T OOL . ................................ 52 F IGURA 4.16 – D IAGRAMA DE MENSAGENS GERADO PELA FERRAMENTA A NALISYS T OOL . ....... 53 F IGURA 4.17 – C OMPARAÇÃO DOS ATRIBUTOS DOS ATORES ANTES E APÓS O RECEBIMENTO DE UMA MENSAGEM . .................................................................................................... 54 F IGURA 5.1 – C LASSES QUE IMPLEMENTAM OS MODELOS DE ATORES DESENVOLVIDOS PARA O MD-S IMULATION . .................................................................................................... 62 F IGURA 5.2 – D EMAIS ENTIDADES DO MD-S IMULATION . ..................................................... 63 F IGURA 5.3 – C LASSES QUE COMPÕEM A INTERFACE GRÁFICA DO MD-S IMULATION . ............. 64 F IGURA 5.4 - E XEMPLO DE INTERAÇÃO ENTRE O DESENVOLVEDOR E SEU GERENTE . .............. 65 F IGURA 5.5 – C LASSES QUE COMPÕEM O BARIM. .............................................................. 69. vi.
(11) Lista de Quadros Q UADRO 3.1 – R ESUMO COMPARATIVOS DOS PROJETOS PARA CONSTRUÇÃO DE SMA S . ........ 33 Q UADRO 5.1 – P ROPRIEDADES DO D EVELOPER A CTOR . ....................................................... 59. vii.
(12)
(13) CAPÍTULO. 1 Introdução. A. plicados à resolução de problemas em diversas áreas, como educação a distância [Torreão et al. 2005], comércio eletrônico [Guttman et al. 1998] e jogos [Barreteau et al. 2001], agentes. inteligentes. são. entidades. computacionais. com. duas. importantes. características. Primeiro, eles são capazes de realizar ações autônomas, i.e. sem a intervenção direta do usuário ou de outros agentes; além disso são capazes de interagir com outros agentes e fazer emergir um comportamento socialmente inteligente.. Como forma de simular ambientes complexos, freqüentemente utilizase um conjunto de agentes, compondo Sistemas Multiagentes (SMAs). Porém, apesar. de. suas. distintas. áreas. de. aplicação. diversos. aspectos. da. implementação de tais sistemas tem muito em comum, como o controle do ciclo de vida dos agentes e o transporte de mensagens. Como alternativa para evitar tal redundância de código, foram criados os frameworks multiagentes, permitindo ao desenvolvedor se preocupar apenas com a modelagem. 1.
(14) Introdução. comportamental dos agentes, reduzindo assim o tempo e conseqüentemente o custo de desenvolvimento dos projetos baseados em agentes.. No entanto, com a crescente necessidade de engajamento do usuário na interação com o sistema, vem se destacando a modelagem de um tipo especial de agente, denominado ator sintético. Estes são agentes inteligentes credíve is (ou virtuais), que apresentam personalidades em um estilo particular de interação, percepção, raciocínio e ação [Silva et al. 2000].. Esse. tipo. diferenciado. de. agente. vem. sendo. utilizado. no. desenvolvimento de diversos projetos de pesquisa [Bates et al. 1994; Rousseau e Hayes-Roth 1997; Aylett et al 2005] e também aplicados na construção de jogos [Silva et al. 2006a] visando aumentar a credibilidade da interação entre o usuário e o agente, através da construção de personagens cada vez mais complexos. O que incrmenta, o grau de dificuldade da implementação desses projetos, tanto no nível arquitetural, quanto em sua codificação, devido justamente as suas características particulares presentes nos atores.. Diferentemente do SMAs, projetos que utilizam atores sintéticos não fazem uso de qualquer tipo de framework. Isto se deve ao fato que de que as atuais bibliotecas para SMAs não possuem modelos genéricos para as características particulares dos atores, como por exemplo, o sup orte a modelos. de. personalidade,. o. que. inviabiliza. sua. aplicação. no. desenvolvimento de projetos baseados em atores. Desta forma, os atuais sistemas foram desenvolvidos praticamente do zero aumentando assim o seu tempo total de desenvolvimento.. Visando suprir a carência de ferramentas para a construção de Sistemas Multiatores (SMAct), este trabalho apresenta o FAct (Framework for Actors), que oferece um framework open source para construção de SMAct. Seus módulos podem ser utilizados e estendidos pelo desenvolvedor, que poderá manter seu foco apenas na implementação do comportamento dos atores e das demais. entidades. presentes. na. simulação,. aumentando. assim. a. sua. 2.
(15) Introdução. produtividade e, conseqüentemente, reduzindo o custo e o tempo de desenvolvimento de SMAct.. Esta dissertação esta organizada em seis capítulos. O Capítulo 2 dá uma visão geral sobre atores sintéticos, apresenta uma definição para Sistemas Multiatores e descreve os requisitos que um framework multiator deve atender. Já o Capítulo 2 realiza uma análise dos frameworks multiagentes presentes na literatura. Em seguida, o Capítulo 4 apresenta o FAct descrevendo suas funcionalidades e arquitetura. Os resultados obtidos na utilização do FAct para o desenvolvimento de novos projetos são abordados no quinto capítulo. No Capítulo 6 é apresentado um resumo das contribuições realizadas por esta pesquisa, um relato das dificuldades encontradas além de discutir diversas sugestões de trabalhos futuros. .. 3.
(16) CAPÍTULO. 2 Atores Sintéticos e Sistemas Multiatores. C. om a crescente necessidade de tornar o comportamento das entidades computacionais credível, atores sintéticos vêm sendo aplicados para. simulação da conduta de indivíduos em diversos projetos de pesquisa [Bates et al. 1994; Rosseau e Hayes-Roth 1997; Silva et al. 2000; Silva et al. 2006a]. Estas entidades não só interagem entre si, mas também com os usuários das aplicações. Além disso, nestes projetos é comum a utilização de mais do que um ator na simulação, compondo assim Sistemas Multiatores (SMAct). Este capítulo dá uma visão geral sobre atores sintéticos, resgatando sua definição e características. Além disto, é também realizada uma análise sobre a evolução dos projetos que adotam esta tecnologia, permitindo assim que ao final do capítulo seja possível realizar uma definição apropriada para o termo “Sistemas Multiatores” e que conseqüentemente sejam listados os requisitos em alto nível que um framework multiator deve implementar.. 4.
(17) Sistemas Multiatores. 2.1 Visão Geral do Conceito de Atores Sintéticos Atores sintéticos, ou agentes credíveis, são entidades computacionais que possuem como objetivo principal transmitir ilusão de vida aos usuários de suas aplicações. Para que isto seja possível, eles contam com atributos com uma semântica diferenciada dos atributos normalmente encontrados nos agentes autônomos. Tais atributos são as emoções, a personalidade e uma representação. gráfica. [Silva. et. al.. 2000].. Que. são. adicionados. as. características que um agente autônomo naturalmente possui como, os serviços que ele provê, os atributos que determinam seu estado e um mecanismo de comunicação. Personalidade Definida como a característica que determina a individualidade de uma pessoa ou personagem [Ferreira 1977]. De forma mais detalhada, a personalidade é utilizada como forma de destinguir um indivíduo de outro quando eles são observados em condições idênticas de desenvolvimento e existência. Além disso durante toda a vida do indivíduo ela permanece praticamente estável, sofrendo poucas modifcações. Comumente, atores sintéticos têm seus comportamentos guiados por modelos de representação de personalidades. Atualmente, há diversos modelos psicológicos para a representação de personalidades que foram adaptados e implementados em simuladores, como o The Big Five [Howard e Howard 1995] e o Symlog [Bales e Cohen 1979]. Mas adiante, ainda neste capítulo, serão relatados e comparados alguns modelos de personalidades aplicados em projetos computacionais. Emoção Sendo outro fator determinante do comportamento das personagens, as suas emoções representam estruturas instáveis no decorrer do tempo [Silva et al. 2000]. Por exemplo, uma pessoa pode ficar irritada rapidamente se o ar condicionado do local onde trabalha parar de funcionar . Isto pode influenciar a forma que ela trata seus colegas de trabalho e também sua produtividade. Entretanto, uma vez que o ar-condicionado volte a funcionar a sua irritação pode passar tão rapidamente quanto surgiu. Este caráter temporário é um dos. 5.
(18) Sistemas Multiatores. principais fatores que diferencia as emoções da personalidade, pois, como discutido na seção anterior, esta segunda tem um caráter duradouro e pouco muda durante a vida de um individuo. Quando associada à personalidade, um modelo de emoções que influência no comportamento dos atores pode fazer com eles reajam de forma distinta diante de uma mesma situação, desde que seu estado emocional seja diferente. Assim, tanto a personalidade quando as emoções podem ser utilizadas com o objetivo de enriquecer a complexidade da simulação.. Influências dos Modelos Comportamento dos Atores. de. Personalidades. e. de. Emoções. no. Como visto anteriormente o comportamento dos atores sintétitos são guaidos por modelos de personalidade e emoções. Quando olhada a influência desses modelos no cliclo de vida de um agente é possível verificar mais claramenta como o compotamento dos atores é influenciados por suas características particulares. Apesar de não modifcar drásticamente a forma que os atores percebem, seus modelos de personalidade e moções transformam significativamente a forma que os agentes raciocinam, o que acaba por provocar ações distintas por parte dos mesmos quando comparadas às ações agentes inteligentes tomariam. Tais atitudes basedas em modelos de personalidades e emoções podem até ser não racionais. Por exemplo, quando um ator deve realizar uma tarefa para qual ele não tem conhecimento suficiente para fazêla, uma ação bastante racional a se tomar seria simplesmente pedir ajuda a alguém que tenha tal conhecimento. Contudo, se o ator tem uma personalidade introvertida e por conta disto não é disposto conversar com outras pessoas, ele poderá, durante seu ciclo de raciocínio, decidir que não vai pedir a ajuda, mas sim tomar ação de realizar a tarefa, mesmo sabendo que ele não a fará corretamente.. 2.2 Simuladores Baseados em Atores Sintéticos Com o passar dos anos, a aplicação de atores sintéticos vem se popularizando. Como exemplos de tais projetos podemos citar os projetos Oz [Bates et al. 1994, Mateas 2002], Teatro Virtual [Rosseau e Hayes-Roth. 1997, Doyle 2002], além dos projetos Enigmas no Campus [Silva et al. 2000],. 6.
(19) Sistemas Multiatores. FearNot! [Paiva et al. 2004; Aylett et al 2005], SmartSim [Silva et al. 2006a], BARIM [Dominoni et al. 2007; Karlsson et al. 2007]. Todos eles fazendo uso de mais do que um simples ator em seus ambienteis de simulação. Os dois primeiros merecem destaque pelo pioneirismo na aplicação de modelos psíquicos aliados a agente autônomos. Já o projeto FearNot! tem sua importância, pois possui objetivos educacionais relacionado s à aplicação de atores sintéticos. Finalmente, os demais foram desenvolvidos no âmbito da UFPE, assim como o projeto desta dissertação. A seguir, cada um destes projetos será abordado com mais detalhes. Para cada um detalhamos seus objetivos, suas aplicações e seus modelos de personalidade e emoção. Projeto Oz (The Oz Project) Desenvolvido na Carnegie Mellon University, o projeto Oz [Bates et al. 1994; Mateas 2002] foi um dos pioneiros na utilização de agentes credíveis. Como o projeto foi idealizado para simulação de ambientes artisticamente interessantes, seus criadores consultaram artistas dos departamentos de Drama e Inglês da Carnegie Mellon University, como forma de criar uma simulação mais compatível com a realidade. Seus atores são baseados em uma arquitetura denominada Tok que suporta. reatividade,. objetivos,. emoções. e. comportamento. social,. características que são amplamente utilizadas nos seus si muladores. Uma das aplicações desenvolvidas no projeto o OZ foi o Lyotard que é uma ambiente de. texto. desenvolvido. em. Lisp. [Peter. 2005]. para. simulação. do. comportamento de um gato em seu ambiente cotidiano. Outra aplicação chamada The Playground, foi criada para simular três crianças em um playground, nela o usuário controla uma das crianças. O objetivo da simulação é testar e demonstrar a habilidade dos pesquisadores da Carnegie Mellon University na construção de personagens que possuem um complexo comportamento social. Estes comportamentos refletem o estado emocional dos personagens e o relacionamento que eles possuem com os demais personagens. O Projeto Oz desenvolveu um modelo de personalidade que tem como base 6 dimensões: (1) a curiosidade, (2) o contentamento, (3) a capacidade de. 7.
(20) Sistemas Multiatores. ignorar, (4) a agressividade, (5) a amigabilidade e (6) a arrogância/orgulho. Este modelo é utilizado para determinar o comportamento dos atores com o auxílio do modelo OCC [Orthony et al. 1990]. Esta por sua vez, é fundamentada em dimensões representadas por pares antônimos como esperança-temor, felicidade-tristeza, orgulho-vergonha e amor-ódio. Projeto Teatro Virtual (The Virtual Theater Project) O projeto Teatro Virtural [Rosseau e Hayes-Roth 1997, Doyle 2002] foi criado para apoiar a construção de agentes inteligentes como atores sintéticos que podem improvisar seus comportamentos em ambientes interativos sem planejamento detalhado, de maneira análoga a um ser humano. Desenvolvido na Stanford University, ele trabalha na construção de atores que interagem entre si e com os humanos para criar novas histórias a cada vez que são utilizados. Ou seja, duas execuções consecutivas dos mesmos atores com o mesmo cenário são diferentes, pois as ações dos atores são improvisadas.. Dentre as aplicações desenvolvidas durante o projeto, podemos ressaltar o Cybercafe que simula a interação entre os clientes, controlados por humanos, e um garçom que é um Ator Sintético. Além disso, há outro simulador, chamado Animated Puppets. Neste há um mundo gráfico habitado por criaturas chamadas woggles que dialogam e brincam umas com as outras. Estas criaturas possuem uma habilidade inteligente para improvisar seus comportamentos. Além disso, neste mundo o usuário pode controlar um woggle enquanto os demais são controlados pelo computador.. 8.
(21) Sistemas Multiatores. Figura 2.1 – Interface da aplicação Animated Puppets. Sua simulação é baseada em duas teorias complementares. A primeira, Teoria dos Traços [Allport 1966] assume que o perfil de uma personalidade individual pode ser descrito em termos de um conjunto de traços psicológicos que influenciam o comportamento. Cada traço é quantificado em uma dimensão contínua como introversão/extroversão ou calmo/emotivo. Nesta teoria assume-se que os traços de personalidade não variam no decorrer do tempo. Em contrapartida, a segunda, Teoria do Aprendizado Social [Bandu ra 1977], a personalidade é modificada a cada situação. Tendo em vista que cada situação é como uma experiência de aprendizado através de reforço.. Projeto Enigmas no Campus Desenvolvido na Universidade Federal de Pernambuco – UFPE, o Enigmas no Campus [Silva et al. 2000] é um jogo multiagentes de aventura onde o jogador deve solucionar enigmas a fim de restituir o conhecimento do Universo destruído por criaturas maldosas e alienígenas. Ele foi criado para. 9.
(22) Sistemas Multiatores. testar o modelo psicológico e social para atores em jogos de aventura desenvolvido por pesquisadores da UFPE e também para avaliar a aplicação uma arquitetura criada na UFPE para atores sintéticos e outros tipos de agentes em jogos de aventura [Silva et al. 2000].. Figura 2.2 – Interface do jogo Enigmas no Campus.. O modelo de personalidade utilizado neste projeto é baseado na teoria The Big Five [Howard e Howard 1995]. Este modelo classifica a personalidade em cinco tipos distintos: extrovertido, aprazível, consciente, neurótico e aberto à experiência. Cada um dos tipos propostos é como recipiente que guarda um conjunto de traços de personalidade que tendem a ocorrer juntos. Por exemplo, o tipo extrovertido, que trata do relacionamento interpessoal, possui. um traço chamado cordialidade. Este traço em. personalidades extrovertidas traz características como afeição, amizade e intimidade. Já em personalidades que não são extrovertidas, este traço de cordialidade traz as características de formalidade e restrição de comunicação.. O Projeto FearNot! (FarNot! Project). 10.
(23) Sistemas Multiatores. O projeto FerarNot! (Fun with Empathic Agents Reaching Novel Outcomes in Teaching!) trata da implementação de uma ferramenta educacional para crianças. A interface desta ferramenta é mostrada na Figura 2.3. Nela, as crianças assumem a responsabilidade por uma vítima de agressão física ou moral, atuando como um amigo invisível. A simulação propõe que criança dê conselhos a vítima, representada por um ator sintético . Os conselhos podem influenciar as atitudes da vítima, porém não tolher a sua autonomia. Ou seja, as atitudes tomadas pela vítima não dependem exclusivamente dos conselhos das crianças, mas também de outros fatores. A estrutura internacional do FearNot! foi inspirada na técnica do teatro-fórum [Boal 2000], onde o espectador é estimulado a entrar em cena, improvisar como protagonista e buscar alternativas ao problema. Assim, durante determinados momentos da simulação, a criança é estimulada a interagir com os atores sintéticos tentando evitar a agressão ou consolando a vítima. Desta forma, os autores do projeto pretendem com que a criança se sensibilize, adquirindo a noção de que agredir moral ou fisicamente outra criança não é correto e passe a evitar tais acontecimentos no seu cotidiano.. Figura 2.3 – Interface gráfica do simulador educacional FearNot!. Neste contexto, foi desenvolvido um componente emocional para a simulação baseado na teoria de Orthony, Clore e Collins [Orthony et al.. 11.
(24) Sistemas Multiatores. 1990], assim como no projeto OZ. Entretanto, nenhum modelo de personalidade foi adotado na construção deste simulador. O Projeto SmartSim O projeto SmartSim [Silva et al. 2006a], também criado na UFPE, tem como objetivo principal o desenvolvimento de um framework para a construção de jogos de negócios [Faria e Nulsen 1996] através da utilização de atores sintéticos para representar personalidades humanas envolvidas no contexto da simulação. Tentando construir simuladores capazes de dar um melhor treinamento a gestão de pessoas, o projeto integra o conhecimento sobre organizações e pessoas com a tecnologia de atores sintéticos. Como forma de validar o framework, foi desenvolvido o protótipo de um jogo sério chamado Virtual Team, apresentado na Figura 2.4. O jogo visa desenvolver determinadas habilidades gerenciais e comportamentais baseadas no PMBOK ® [PMBOK 2004] em gerentes de projeto de software, com menos de cinco anos de experiência. No Virtual Team, o jogador assume o papel de um gerente cujo objetivo é coordenar sua equipe de forma a alcançar um objetivo estabelecido no começo do jogo.. Figura 2.4 – O jogo Virtual Team.. 12.
(25) Sistemas Multiatores. O modelo de personalidade utilizado pelos personagens do SmartSim é baseado no sistema Symlog [Bales e Cohen 1979]. Nele a classificação da personalidade do indivíduo é feita em três dimensões, são elas [Silva et al. 2006a]: Dominância(U)/Submissividade(D) que no jogo foi utilizada como forma de indicar se um indivíduo é predisposto para liderar equipes ou ser liderado por outros; Amigável(P)/Não Amigável(N) que esta relacionado a capacidade social do ator. No caso do Virtual Team, se ele tem ou não um bom relacionamento com seus colegas de trabalho; Aceitação(A)/Não aceitação de autoridade e orientação à tarefa (B) que no jogo foi aplicado como forma de indicar a capacidade que um indivíduo possui de acatar ou não as ordem dadas por seus superiores. Projeto BARIM Visando construir um modelo de interação para servir de base para a construção de sistemas com múltiplos atores sintéticos, o projeto BARIM (Believable Agents Relationship and Interaction Model) [Dominoni et al. 2007; Karlsson et al. 2007] foi desenvolvido da UFPE. O modelo criado é baseado em três elementos principais. O primeiro é: um conjunto de interações que determinam as formas que os agentes se comunicam entre si. O segundo é um protocolo de comunicação que detalha os tipos de mensagem que cada ator é capaz de enviar e receber. Já o terceiro se trata de uma estrutura de relacionamentos, definindo assim com que outras entidades da simulação cada ator é capaz de interagir. No BARIM, a teoria do equilíbrio [Heider 1970] é adotada como guia das interações que atores percebem, mas não direcionadas a eles. Já o protocolo de interações não chega a ser especificado, visto que este depende do domínio da aplicação. Desta forma, apenas algumas indicações sobre como o protocolo deve ser criado são definidas. Porém, o relaci onamento entre os atores é dividido em três níveis, indicando o estado da relação entre dois atores que podendo assumir os valores de Amigável, Neutro e Não -Amigável.. 13.
(26) Sistemas Multiatores. O BARIM foi testado através da construção de uma ferramenta de simulação o BARIM Simulator, com foco nos relacionamentos sociais emergentes de um grupo de atores agindo de acordo com o BARIM. Durante a simulação, atores com habilidades distintas trabalham cooperativamente para a realização de uma tarefa. Além da habilidade de trabalho, também foi inserida na simulação a dimensão extroversão presente no modelo The Big Five [Howard e Howard 1995]. A adição de uma única dimensão de personalidade tem por objetivo a determinação da sua influência, pois caso diversas dimensões fossem utilizadas seria muito mais difícil compreender o quanto cada uma influiu no processo de simulação. Durante a simulação, os atores recebem partes de uma tarefa para realizar, e dependendo da habilidade que cada um possui podem requisitar ajuda para o cumprimento do seu trabalho. Um pedido de ajuda pode ou não ser atendido, dependendo do relacionamento entre os atores.. Uma vez. realizada, cada parte da tarefa pode gerar resultados distintos, uma falha, um acerto ou um erro. Quando um agente realiza sua parte com sucesso tem o seu relacionamento melhorado com o grupo, porém quando não, o relacionamento dele com os demais começa a se deteriorar. Ao final da simulação, é gerado um gráfico similar ao mostrado na Figura 2.5, com o valor dos relacionamentos entre os atores present es na simulação. Assim, é possível identificar os agentes que emergiram como líderes do grupo por terem uma melhor rede de relacionamento do que os demais.. 14.
(27) Sistemas Multiatores. Figura 2.5 – Gráfico de relacionamentos gerado pelo simulação.. 2.3 Discussão A análise realizada mostrou que todos os seis projetos estudados possuem aplicações onde mais de um ator sintético é utilizado. Além disto, estes projetos têm como foco o desenvolvimento de arquiteturas para implementação de atores, como a arquitetura Tok do projeto Oz, ou a experimentação de modelos de personalidade simulados no computador como os projetos Enigma no Campus e BARIM. Entretanto, com relação aos seus objetivo, diferenciam-se dois projetos, o SmartSim e o FearNot! pois, ambos foram concebidos visando a ajudar na educação de gerentes de projeto, no caso do SmartSim, e de crianças no caso do FearNot! Outro ponto importante a ser ressaltado é a presença de um modelo de personalidade e/ou emoção como forma de dar credibilidade a simulação. Assim, seus agentes têm comportamentos mais coerentes com os comportamentos naturais esperados de um ser humano. Entretanto, nenhum dos projetos abordados propõe algo em relação à arquitetura das aplicações como um todo. Aspectos que pouco variam nestes projetos, como o suporte à comunicação entre os atores e o controle do ciclo de vida dos mesmos, foram implementados de maneira similar em cada um. Por exemplo, no jogo Virtual Team do SmartSim, todo código-fonte de ator. 15.
(28) Sistemas Multiatores. sintético foi implementado sem o auxílio de qualquer biblioteca que já desse apoio à implementação das características comuns aos sistemas multiatores. Além disto, nenhum destes projetos cita o uso ou existência de ferramentas criadas para auxiliar no desenvolvimento e testes de aplicações baseadas em atores sintéticos. Tanto a falta de bibliotecas quando de ferramentas de suporte a construção de simuladores com atores sintéticos fazem com que as equipes de desenvolvimento destes projetos tenham o retrabalho de implementar características básicas presentes em praticamente todos os simuladores. Isto traz duas importantes conseqüências ao projeto: (1) o aumento do tempo de prototipação e desenvolvimento; (2) aumento no custo final do projeto, o que muitas vezes se tenta contornar com uma redução em seu escopo.. 2.4 Sistemas Multiatores Análise realizada neste capítulo mostrou que muitos dos projetos que envolvem atores sintéticos possuem aplicações onde mais de um ator se faz presente. Os Projetos Oz e FearNot! simulam o comportamento de crianças; o Projeto Teatro Virtual utiliza diversos atores no Cibercafe; o Enigmas no Campus faz uso de múltiplos atores em seu ambiente; e por fim os projetos SmartSim e BARIM os utilizam na simulação do comportamento de equipes trabalhando para concluir certas tarefas. Nestes projetos, múltiplos atores são empregados quase sempre como forma de tornar a interação do simulador com seu usuário mais rica e credível, tornando-a assim mais próxima da realidade. Por exemplo, no jogo Virtual Team o usuário tem de escolher quais desenvolvedores irão compor uma equipe de desenvolvimento de software. O desempenho da equipe selecionada depende, entre outros fatores, das personalidades de seus membros. Algumas características dos SMAct já foram abordadas desde a introdução até o presente momento. Entretanto, é preciso que se formalize uma definição apropriada para estes sistemas. Desta forma, será possível uma maior compreensão do termo, uma posterior análise das diferenças entre sistemas multiatores e sistemas multiagentes. Além disto, com esta definição e a análise dos projetos multiatores já realizada será possível elicitar os. 16.
(29) Sistemas Multiatores. requisitos em alto nível para construção de um framework de suporte para o desenvolvimento deste tipo de sistema. Uma definição para Sistemas Multiatores Tendo como fundamento a definição para sistemas multiagentes proposta por Ferber [Ferber, 1999] e as características de um ator sintético, é possível definir o termo „sistema multiatores‟ como aplicável a um sistema com os seguintes elementos:. 1. Um ambiente, E;. 2. Um conjunto de objetos, O. Estes objetos são geograficamente situados, e em qualquer dado momento é possível associar qualquer objeto com uma posição em E. Estes objetos podem ser percebidos, criados, destruídos e modificados pelos atores;. 3. Um conjunto de agentes inteligentes, A, onde há pelo menos dois atores sintéticos, e que está contido em O, representando as entidades ativas do sistema;. 4. Um conjunto de representações gráficas, RG, para os atores A, tal que cada ator possua pelo menos uma representação;. 5. Um conjunto de relações R, que liga objetos (e agentes) entre si;. 6. Um conjunto de operações, Op, tornando possível para os agentes de A perceber, produzir, consumir, transformar e manipular objetos de O;. 7. Um conjunto de operadores, OC, com a tarefa de representar as reações do ambiente a Op.. É importante ressaltar que esta definição permite que um sistema multiator também possua agentes inteligentes que não são baseados em personalidade, ou seja, que não são atores, compondo assim um híbrido com. 17.
(30) Sistemas Multiatores. amgos os tipos de entidades. Além disso, os pontos 3 e 4 desta definição se destacam como as principais modificações que foram realizadas na defini ção de SMAs proposta por Ferber. O ponto 3 indica a existência de um conjunto composto por não só agentes inteligentes, mas também atores sintéticos. Isto requer a concepção de uma coleção de agentes com todas as características que ator sintético possui emoções, personalidade, etc. Já o ponto 4 ressalta a ocorrência de um conjunto de representações gráficas para os atores. Elas fazem parte da interface gráfica do projeto, e representam o estado atual do agente para o usuário da aplicação.. Por fim, a definição também acrescenta um conjunto de representações gráficas à definição, além de indicar um modelo de agente, o ator sintético, que pode ser mais complexo de implementar e validar do que a maioria dos agentes autônomos. Requisitos Necessários a um Framework para Sistemas Multiatores Tendo como base a definição para SMAct apresentada na seção anterior e o resultado da análise dos projetos que utilizam atores sintéticos feita anteriormente, foram identificados 5 requisitos em alto nível necessários a construção de um framework multiator. Nas próximas páginas, cada um destes requisitos será descrito em detalhes.. [RQ01] Fornecer um modelo genérico e extensível tanto para atores sintéticos quanto para suas representações gráficas. A utilização de modelo genérico e extensível para sistema atores faz com que o desenvolvedor da simulação tenha que se preocupar apenas em implementar as regras que regem o comportamento do ator. Além disso, o modelo deve dar suporte a dois dos principais diferenciais nos atores, que são seus modelos de personalidade e de emoções. Visando atender requisito particular de um ator sintético, a sua representação gráfica, um framework para construção de SMAct também deve fornecer um modelo genérico para tais representações. Além disto, os modelos genéricos de ator e de. 18.
(31) Sistemas Multiatores. representação, devem possibilitar que o desenvolvedor possa estendê -los de acordo com as necessidades da aplicação que está desenvolvendo.. [RQ02] Controlar o ciclo de vida dos atores bem como o ci clo de vida das suas representações. Outra característica importante para um framework muiltator é vital que ele ofereça meios de criação, gerenciamento e posterior destruição dos atores durante a simulação em um SMAct. Porém este suporte também deve ser estendido para as representações gráficas dos atores. Desta forma, o desenvolvedor precisa apenas se preocupar em definir o seu modelo de at or além do seu comportamento, enquanto que o framework deverá se encarregar de controlar o ciclo de vida dos mesmos.. [RQ03] Prover mecanismos genéricos e extensíveis para a comunicação entre os atores. Como forma de possibilitar a interação entre os atores durante a simulação, se faz necessária a construção de um modelo genérico e extensível de comunicação. Este modelo deve possuir definições para as mensagens trocadas, mecanismos que possibilitem a troca destas mensagens , além de meios para divulgação e busca dos serviços que cada ator provê [Burg et al. 2004].. [RQ04] Fornecer ferramentas gráficas para modelagem e análise da simulação. Ferramentas gráficas para a modelagem da simulação são muito importantes, pois são capazes de permitir que uma parte do simulador seja desenvolvida sem a necessidade de se escrever código. Desta forma, atores, regras, ambiente de simulação, etc. poderão ser implementados, mesmo que. 19.
(32) Sistemas Multiatores. parcialmente, com o auxilio destas ferramentas, reduzindo assim a quantidade de código escrita manualmente.. Outro tipo de ferramentas relevante são as de análise que podem permitir não só a depuração da simulação por parte do desenvolvedor, mas também um maior entendimento da simulação por parte do usuário que a executa. Neste contexto, é fundamental a implementação de uma ferramenta capaz de interpretar os arquivos de log gerando gráficos e diagramas referentes aos estados atores, e das mensagens trocadas entre as entidades da simulação.. [RQ05] Ser distribuído sob uma licença open source. Ser open source trás duas conseqüências fundamentais para um framework SMAct. Primeiramente, possibilita que os simuladores construídos sobre o mesmo tenham a liberdade necessária para modificar o código do framework de acordo com as necessidades do desenvolvedor o que aumenta a sua flexibilidade e facilidade de adaptação aos diversos contextos de simulação. Além disso, facilita o desenvolvimento de uma comunidade com desenvolvedores que contribuem o com projeto.. 2.5 Conclusões Com o principal objetivo de transmitir ilusão de vida aos usuários de suas aplicações, criou-se o conceito ator sintético, um tipo especial de agente autônomo que possui um conjunto de características distintas das comumente presentes nos agentes autônomos. Dentre elas, podemos destacar um modelo de personalidade, um modelo de emoções e uma representação gráfica ou avatar.. Também foi visto que atores sintéticos vêm sendo utilizados em diversos projetos na academia, neste capítulo demos destaque a seis destes, são eles os projetos Oz [Bates et al. 1994], Teatro Virtual [Rousseau 1997], Enigmas no Campus [Silva et al. 2000], Fearnot! [Paiva et al. 2004; Aylett et. 20.
(33) Sistemas Multiatores. al 2005], SmartSim [Silva et al. 2006a], BARIM [Dominoni et al. 2007; Karlsson et al. 2007]. A análise destes projetos mostrou que eles propõem arquiteturas para implementação de atores ou modelos de personalidade e emoções.. Em seguida, foi dada uma definição para sistemas multiator es ressaltando as diferenças entre SMAs e SMAct, mostrando que e ste último tende a ser mais complexo. A análise sobre SMAct e esta definição tornaram possível a enumeração de um conjunto com 5 requisitos, em alto nível, que devem ser implementados por um framework para atores sintéticos.. De maneira geral, os projetos analisados nada relatam sobre a arquitetura de suas aplicações como um todo ou sobre o uso de ferramentas de auxílio no desenvolvimento a simuladores baseados em atores sintéticos. Fazendo assim com que novos projetos baseados nesta tecnologia tenham de ser codificados praticamente do zero. Isto traz conseqüências para eles como aumento do tempo de desenvolvimento, redução do escopo, simplificação da simulação e logicamente ampliação do seu custo de implementação. Contudo, tal problema é amenizado quando falamos de sistemas multiagentes, devido a existência de frameworks que foram criados para simplificar a implementação destes tipos de simuladores.. 21.
(34) CAPÍTULO. 3. Frameworks para a Construção de Sistemas Multiagentes. A. inexistência de frameworks multiatores faz com que os projetos dessa área sejam desenvolvidos praticamente do zero. Entretanto, há uma classe similar de bibliotecas criadas. para o desenvolvimento de aplicações mais genéricas, os simuladores multiagentes.. Este capítulo apresenta uma análise comparativa dos projetos de simuladores multiagentes mais comuns. Além disso, é feita uma discussão sobre o porquê deles não serem utilizados no desenvolvimento de sistemas multiatores.. 3.1 Critérios de Avaliação Atualmente, há um grande número de projetos que tem como foco apoiar o desenvolvimento de SMAs. E para selecionar apenas os sistemas que fossem mais relevantes a esta pesquisa, foram estabelecidos 5 critérios de seleção,. alguns. diretamente. ligados. aos. requisitos. para. frameworks 22.
(35) Frameworks para a Construção de Sistemas Multiagentes. multiatores,. descritos. no. capítulo. anterior.. Os. critérios. são:. (1). Disponibilidade de código fonte, (2) documentação, (3) ferramentas de suporte ao desenvolvimento; (4) quantidade de simuladores desenvolvidos além seus respectivos domínios e (5) objetivos do projeto. A seguir, cada um destes critérios será descrito.. O primeiro critério trata da possibilidade de acesso ao código fonte do projeto e sua licença de distribuição. Assim sendo, foram observados o tipo de permissão dada ao desenvolvedor com relação ao código fonte do projeto, além de todas as ações que podem ser realizadas com este. Este critério é fundamental, pois o acesso ao código fonte do projeto possibilita a sua alteração de acordo com as necessidades da aplicação que está sendo desenvolvida. Já a sua distribuição permite o compartilhamento das modificações realizadas com a comunidade.. O critério documentação do projeto trata do número de artigos publicados em congressos científicos, além da própria documentação técnica da implementação do projeto, ou seja, a documentação da arquitetura, códigofonte, etc. Um alto número de artigos científicos publicados sobre um projeto é um indicador da existência de uma comunidade que o utiliza. Já a documentação técnica do projeto é muito importante para que as pessoas interessadas em utilizá-lo possam aprender sobre ele e aplicá-lo em seus simuladores da forma mais produtiva possível.. As ferramentas de suporte ao desenvolvimento são as aplicações implementadas para auxiliar a criação de novos simuladores . Ou seja, o conjunto de softwares que o projeto fornece para ser utilizado durante o desenvolvimento de um simulador, desde o seu planejamento até a sua implementação. Este conjunto pode reduzir consideravelmente o tempo de desenvolvimento dos novos sistemas.. Imprescindível na análise do sucesso de um framework multiagente, a quantidade e o domínio de suas aplicações estão relacionados com o número de sistemas multiagentes implementados a partir do projeto assim como o. 23.
(36) Frameworks para a Construção de Sistemas Multiagentes. domínio destas aplicações. O numero de aplicações implementadas pode ser visto como um indicador do quão fácil é a utilização do framework. Já a variedade no domínio destas aplicações pode ser utilizada para avaliar a versatilidade do projeto em questão.. Enfim, o quinto critério, os objetivos do projeto, está relacionado às metas que ele procura alcançar e se estas de fato foram atingidas. Isto é relevante para identificar similaridades de escopo nos projetos além de facilitar uma melhor compreensão sobre diversos aspectos do projeto como sua arquitetura, as ferramentas desenvolvidas e a finalidade dos simuladores desenvolvidos.. 3.2 Projetos Analisados Após o processo inicial de avaliação, os projetos GNU MAGES [Bittencourt e Osório 2002], CORMAS [Page et al. 2000], JADE [Bellifemine et al. 1999], e SeSAm [Klügl e Puppe 1998], foram selecionados por destacarem sobre os critérios avaliados perante outros como o FAMA [Sampaio et al. 2004] e JAgent[JAgent 2008]. A seguir, discutiremos as características de cada um destes em maiores detalhes. GNU MAGES (Multi Agents Environment Simulator) O GNU MAGES [Bittencourt 2002] tem como principal objetivo avaliar o desempenho de diferentes arquiteturas de agentes, colaborativos e competitivos em SMAs. O simulador foi completamente des envolvido na linguagem de programação Java [Deitel e Deitel 2007] o que o torna independente de plataforma, e o seu código se encontra disponível para download no seu site oficial 1 sob a General Public Licence [GPLv1 2006]. Apesar de ser open source, o GNU MAGES possui apenas uma aplicação implementada no ambiente, um jogo de simulação militar chamado Capture The Flag [Atkin et al. 1999]. Esta aplicação conta com a interface gráfica mostrada na Figura 3.1. Nela podemos encontrar várias informações como, por exemplo, a posição dos agentes, os seus campos de percepção e os. 1. 1. http://www.inf.unisinos.br/~jrbitt/mages/. 24.
(37) Frameworks para a Construção de Sistemas Multiagentes. valores de alguns de seus atributos. Também é possível acompanhar a simulação graficamente através de outra ferramenta que exibe um mapa com todas as entidades do jogo. Como forma de facilitar a implementação de simuladores similares ao jogo Capture the Flag, foram construídos vários editores: para os agentes, os times e as regras do torneio. Por fim, mais uma funcionalidade interessante do GNU MAGES é a sua capacidade de distribuição da simulação, ou seja é possível dividir os agentes por uma rede de computadores, onde cada computador da rede é responsável por controlar a simulação de um ou mais agentes. Dependendo do tipo de simulação, isto pode aumentar consideravelmente o desempenho da aplicação.. Figura 3.1 – Interface do MAGES rodando o simulador Capture The Flag.. CORMAS (Common–pool Resources and Multiagent Systems) Desenvolvido para simular interações entre um grupo de agentes e um ambiente que guarda recursos naturais, o CORMAS [Page et al. 2000] teve seu início no ano de 1996. Ele é uma plataforma multiagentes especialmente criada para a simulação do gerenciamento de recursos renováveis. Desta. 25.
(38) Frameworks para a Construção de Sistemas Multiagentes. forma, o CORMAS provê um framework para a construção de modelos de simulação entre indivíduos e ambientes compartilhando recursos natur ais.. O projeto foi implementado em SmallTalk [Abdala e Wangenheim 2002], uma linguagem orientada a objetos e independente de plataforma, já que em 1996 esta era umas das linguagens orientadas a objetos mais difundida na comunidade acadêmica. Entretanto, como atualmente existe um reduzido número de programadores. Smalltalk,. a escolha desta linguagem. de. implementação acaba por causar um aumento na dificuldade de compreensão e, conseqüentemente, na modificação do seu código, por parte da comunidade. O CORMAS utiliza uma licença própria que traz como vantagem o fato de se r curta e simples.. Apesar de seus pontos negativos, o CORMAS tem uma grande virtude: sua interface gráfica é simples e de fácil utilização, como mostra a Figura 3.2. Nela podemos observar os 3 tipos de entidades presentes no CORMAS (spatial, social, passive), as 3 formas de visualização da simulação (através de mapas, digramas ou gráficos) e alguns campos responsáveis pela configuração da simulação.. Este simulador já foi utilizado para a construção diversas aplicações, como a simulação da dinâmica de uma savana [Page et al. 2000] além da simulação do equilíbrio em florestas do Mediterrâneo[Rouchier et al. 2000]. Outro fato muito interessante sobre o CORMAS é que as suas aplicações quase sempre apresentam modelos de simulação relativamente simples quando comparados as criadas sob os demais fameworks. Ou seja, elas possuem poucos tipos distintos de agentes, bem como um reduzido conjunto de variáveis que modelam o ambiente. Isto torna suas aplicações mais fáceis de implementar e conseqüentemente de validar, porém acaba por passar a impressão de que o CORMAS não é adequado para simulaações mais complexas.. 26.
(39) Frameworks para a Construção de Sistemas Multiagentes. Figura 3.2 – A a interface gráfica do CORMAS.. JADE (Java Agent DEvelopment Framework) Desenvolvido. e. suportado. pelo. Telecom. Italia. Lab,. o. JADE. [Bellifemine et al.. 1999] foi criado para se tornar um ambiente de desenvolvimento para aplicações baseadas em agentes inteligentes conforme as especificações da Foundation for Intelligent Physical Agents – FIPA [FIPA 2006]. Seu principal objetivo é facilitar o desenvolvimento de sistemas multiagentes garantindo um padrão de interoperabilidade entre estes.. Tendo Java como sua linguagem de implementação, o JADE se tornou independente de plataforma. Quanto à distribuição do seu código fonte, assim como o GNU MAGES, ele utiliza uma licença amplamente difundida na comunidade acadêmica, a GNU Lesser General Public License [LGPL 2006]. Uma. característica. marcante. do. JADE. é. a. preocupação. dos. seus. desenvolvedores em seguir os padrões para implementação de SMAs da FIPA [Charlton et al. 2000]. Estes padrões provêem especificações para diversos aspectos dos SMAs, como, por exemplo, a linguagem de comunicação dos agentes, ontologia necessária para a interação entre sistemas e os protocolos. 27.
(40) Frameworks para a Construção de Sistemas Multiagentes. de. transporte. para. mensagens.. Estas. especificações. facilitam. consideravelmente a interoperabilidade entre SMAs que seguem os padrões da FIPA.. Assim como o GNU MAGES, o JADE também possibilita a distribuição dos agentes da aplicação através de uma rede de computadores. Em adição, de maneira análoga ao CORMAS, o JADE tem sido utilizado em diversas aplicações sobre os mais diversos contextos. Por exemplo, na construção de jogos multiagentes [Morais e Furtado 2003], e de ambientes educacionais multiagentes [Silveira e Viccari 2001]. Além disso, o projeto possui um conjunto de ferramentas que dão suporte ao desenvolvimento de aplicações, a saber:. Uma interface para controle remoto de agentes, como mostra a Figura 3.3; Uma ferramenta de depuração do comportamento dos agentes durante a simulação; Um visualizador para as mensagens trocadas pelos agentes; Uma interface para monitorar o ciclo de vida dos agentes, Um visualizador para os tipos de serviços que cada agente fornece aos demais.. Figura 3.3 - Interface para controle de agentes remotamente do JADE. 28.
(41) Frameworks para a Construção de Sistemas Multiagentes. SeSAm (Shell for Simulated Agent Systems) O SeSAm [Klügl e Puppe, 1998] provê um ambiente genérico para modelagem e experimentação de sistemas baseados em multiplos agentes. Ele tem como foco principal facilitar a construção de modelos de simulação complexos, com muitos agentes e diversas variáveis que compõem a simulação. Implementado em Java, este projeto tem o seu código fonte distribuído sob a Lesser General Public License[LGPL 2008], assim como o JADE.. Um dos principais diferenciais do SeSAm é a quantidade de ferramentas que este possui. Foram implementadas diversas aplicações para dar suporte ao framework, a saber: (1) uma ferramenta para construção de modelos de agentes, (2) uma interface para modelagem de animações além de (3) um programa para o desenvolvimento do protocolo de comunicação dos agen tes, possibilitando ao desenvolvedor implementar boa parte do seu simulador sem escrever uma linha de código. A Figura 3.4 mostra uma imagem do editor de agentes. Nesta figura podemos notar que a modelagem dos agentes é realizada através de um diagrama de estados com as condições de transição correspondentes. Estas ferramentas contribuem de maneira significativa para diminuir a complexidade de construção de simuladores multiagentes com SeSAm, pois reduzem drasticamente a quantidade de código escrito para o simulador.. 29.
(42) Frameworks para a Construção de Sistemas Multiagentes. Figura 3.4 – Modelando um Agente no SeSAm. O seu grande número ferramentas possibilitou a construção de diversas aplicações multiagentes. Por exemplo, ele tem sido utilizado para simular o comportamento de uma colônia de formigas [Klügl et al. 1998] além do comportamento de um incêndio em uma floresta com alguns vilarejos[Klügl e Puppe, 1998]. Este número de aplicações, por sua vez, possibilitou a publicação de vários artigos científicos sobre o SeSAm. Outro ponto importante sobre o projeto é que a sua página possui uma Wiki [Wiki 2006], ou seja, uma página colaborativa editada pelos membros a comunidade de desenvolvimento do projeto que disponibiliza tutoriais e um grande volume de informações de caráter geral sobre o projeto.. 3.3 Discussão Distribuídos livremente sobre licenças que permitem o acesso ao seu código fonte, o JADE, o SeSAm e o CORMAS têm uma grande comunidade de desenvolvedores que trabalham não só contribuindo diretamente com o projeto, mas também no desenvolvimento de aplicações que os u tilizam. Já o GNU MAGES, que apesar de também ser open source, parece estar abandonado por parte da UNISINOS.. 30.
(43) Frameworks para a Construção de Sistemas Multiagentes. Não por acaso, O JADE, o CORMAS e o SeSAm, também são projetos que possuem uma vasta documentação em suas páginas. Dentre estes podemos destacar o. SeSAm. que, em uma iniciativa muito criativa de seus. desenvolvedores, possui uma Wiki onde os membros do projeto podem escrever de maneira colaborativa informações fundamentais sobre como instalar,. configurar,. compilar. e. estender. o. ambiente,. facilitando. o. consideravelmente a integração de novas pessoas à comunidade de desenvolvimento. O JADE, o CORMAS e o SeSAm têm sido utilizados em diversos centros de pesquisa, inclusive no Brasil [Morais e Furtado 2003; Marietto et al. 2004; Heine e Kirn 2004].. De maneira análoga, os projetos que se destacam pelo número de publicações, também se desatacam pelo número de ferramentas para dar suporte ao seu desenvolvimento. Neste ponto, o JADE merece destaque, pois o seu acervo de programas de apoio ao desenvolvimento é bastante vasto, permitindo até a execução remota e passo a passo da simulação, o que facilita consideravelmente o processo de testes de qualquer aplica ção. Outro projeto que merece destaque é o GNU MAGES pela característica de suas ferramentas. Seu editor de torneio e seu editor de bots são não aplicáveis a qualquer tipo de agentes, mas sim a aos agentes do jogo Capture the Flag o que os torna muito bons para este tipo de aplicação e suas variações, porém praticamente inviabiliza a utilização destas em aplicações para domínios distintos.. Outra característica interessante do JADE é que ele possue uma preocupação com os padrões da FIPA. Isto pode facilitar consideravelmente a interoperabilidade entre sistemas multiagentes distintos. Com relação ao objetivo dos projetos analisados, todos têm como objetivo, com poucas variações, auxiliar o desenvolvimento de aplicações multiagentes.. Levando em consideração os requisitos listados para um framework multiator, podemos verificar que de maneira geral estes projetos atendem aos requisitos: [RQ03]. Prover. mecanismos. comunicação entre os atores. genéricos. e. extensíveis. para. a. 31.
Documentos relacionados
Local de realização da avaliação: Centro de Aperfeiçoamento dos Profissionais da Educação - EAPE , endereço : SGAS 907 - Brasília/DF. Estamos à disposição
Para esse fim, analisou, além do EVTEA, os Termos de Referência (TR) do EVTEA e do EIA da Ferrogrão, o manual para elaboração de EVTEA da empresa pública Valec –
O termo extrusão do núcleo pulposo aguda e não compressiva (Enpanc) é usado aqui, pois descreve as principais características da doença e ajuda a
Para Piaget, a forma de raciocinar e de aprender da criança passa por estágios. Por volta dos dois anos, ela evolui do estágio sensório motor, em que a ação envolve os
Os ativos não circulantes classificados como disponível para venda são mensurados pelo menor montante entre o seu custo contábil e o seu valor justo, líquido das despesas com a
da quem praticasse tais assaltos às igrejas e mosteiros ou outros bens da Igreja, 29 medida que foi igualmente ineficaz, como decorre das deliberações tomadas por D. João I, quan-
Por último, temos o vídeo que está sendo exibido dentro do celular, que é segurado e comentado por alguém, e compartilhado e comentado no perfil de BolsoWoman no Twitter. No
Este artigo está dividido em três partes: na primeira parte descrevo de forma sumária sobre a importância do museu como instrumento para construção do conhecimento, destaco