IV Workshop-Escola de. Sistemas de Agentes, seus Ambientes e aplicações IV-WESAAC

Tamanho: px
Começar a partir da página:

Download "IV Workshop-Escola de. Sistemas de Agentes, seus Ambientes e aplicações IV-WESAAC"

Transcrição

1 IV Workshop-Escola de Sistemas de Agentes, seus Ambientes e aplicações IV-WESAAC

2 Adamatti, D.F.;Emmendorfer, L. R.; Lugo, G.G.; Werhli, A. V. IV Workshop-Escola de Sistemas de Agentes, seus Ambientes e aplicações IV-WESAAC Universidade Federal do Rio Grande, Rio Grande - RS

3 Anais do IV Workshop- Escola de Sistemas de Agentes, seus Ambientes e aplicações - IV WESAAC / Adamatti, D.F.;Emmendorfer, L. R.;Lugo, G.G.; Werhli, A. V. (Org) - Rio Grande: Universidade Federal do Rio Grande p. :il. ISSN Agentes. 2. Sistemas de Agentes. 3. Ambientes para Agentes. 4. Aplicações de Agentes. I. Adamatti, D.F. II. Emmendorfer, L. R. III. Lugo, G.G., IV. Werhli, A. V. CDD

4 PREFÁCIO É com grande satisfação que apresentamos os Anais do IV Workhop-Escola de Sistema de Agentes, seus Ambientes e aplicações (WESAAC 2010). Em sua quarta edição, o WESAAC 2010 ampliou seu escopo, sem perder a sua marca, os interesses e ideais que envolviam originalmente os pesquisadores da área. Da mesma maneira, visando um caráter nacional, sua abrangência foi expandida, contando com a participação de pesquisadores destacados na área de sistemas de agentes, de diversas instituições do Brasil, tais como UFRGS, USP, UFSC, UFPE, UFRN, UTFPR, UFPEL e UCPEL, que contribuíram proferindo palestras ou conduzindo oficinas sobre seus temas de pesquisa. O WESAAC 2010 teve como principal objetivo a divulgação dos trabalhos dos pesquisadores brasileiros na área de sistemas de agentes, a partir das palestras e das sessões técnicas realizadas no evento. A comunidade de pesquisa respondeu da melhor maneira às expectativas, sendo responsável por uma chamada de trabalhos muito bem sucedida. O processo de revisão resultou em 12 artigos completos e 11 resumos aprovados. Por se tratar de um Workshop-Escola também visou difundir, a partir de suas oficinas, junto a alunos de pós-graduação (mestrado e doutorado) e de graduação (iniciação científica) conceitos, ferramentas e ambientes para trabalhar com sistemas de agentes em diversas linhas de pesquisa. Gostaríamos de agradecer a todos os pesquisadores que submeteram os seus artigos, assim como aos membros do comitê de programa, aos revisores adicionais pelo criterioso trabalho desenvolvido, às nossas instituições (FURG e UTFPR), à CAPES (processo PAEP 0936/09-0) e ao CNPq (processo /2009-9) que tornaram possível o WESAAC Assim, esperamos que todos os interessados na área de sistemas de agentes possam tirar o maior proveito do material aqui disponibilizado; que muitas discussões e análises possam ser realizadas para que as áreas trabalhem de forma conjunta e eficaz; e, que muitas outras edições do WESAAC se realizem com o extremo sucesso. Boa leitura! Rio Grande, 19 de abril de Diana Francisca Adamatti (FURG) Coordenadora Geral Gustavo A. Giménez Lugo (UTFPR) Coordenador do Comitê de Programa

5 REVISORES Name Affiliation Country Adriana Soares Pereira Centro Universitário Franciscano Brazil Adriano Werhli Universidade Federal do Rio Grande Brazil Alexandre Ribeiro UCS - Universidade de Caxias do Sul Brazil Ana Bazzan UFRGS Brazil Ana Bertoletti De Marchi Universidade de Passo Fundo Brazil Ana Casali Universidad Nacional de Rosario Argentina Ana Cristina Garcia UFF Brazil Anarosa Brandao LTI- USP Brazil André Campos UFRN Brazil André Raabe Universidade do Vale do Itajaí Brazil Andréa Konzen da Silva Universidade de Santa Cruz do Sul Brazil Antonio Carlos da Rocha Costa UCPEL Brazil Carine Webber Universidade de Caxias do Sul Brazil Cecília Flores Universidade Federal de Ciências da Saúde de Porto Alegre Brazil Cesar Tacla Universidade Tecnologica Federal do Parana Brazil Claudia Rizzi Unioeste Brazil Daniela Bagatini UNISC Brazil Diana Adamatti Universidade Federal do Rio Grande Brazil Eder Mateus Gonçalves Universidade Federal do Rio Grande Brazil Eliseo Reategui Universidade Federal do Rio Grande do Sul Brazil Fabio Okuyama Universidade Federal do Rio Grande do Sul Brazil Fred Freitas Universidade Federal de Pernambuco Brazil Graça Marietto Universidade Federal do ABC Brazil Graçaliz Dimuro Universidade Federal do Rio Grande Brazil Gustavo Giménez-Lugo UTFPR Brazil Helder Coelho Universidade de Lisboa Portugal Jaime Sichman USP - Universidade de São Paulo Brazil João Balsa Fac. Ciências da Universidade de Lisboa Portugal João Luis Tavares da Silva Universidade de Caxias do Sul Brazil Jomi Hübner UFSC Brazil Jorge Barbosa Unisinos Brazil Leonardo Emmendorfer Universidade Federal do Rio Grande Brazil Luis Otávio Alvares UFRGS Brazil Magda Bercht UFRGS Brazil Maira Rodrigues Universidade Federal de Minas Gerais Brazil Marcelo Blois PUCRS Brazil Marcos Eduardo Casa Universidade de Caxias do Sul Brazil Maria de Fátima do Prado Lima Universidade de Caxias do Sul Brazil Márcia Cristina Moraes PUCRS Brazil Nuno David I SCTE Portugal Patrícia Scherer Bassani Centro Universitário Feevale Brazil Patrícia Tedesco Centro de Informática UFPE Brazil

6 Name Affiliation Country Patricia Behar Universidade Federal do Rio Grande do Sul Brazil Patricia Jaques UNISINOS Brazil Paulo Ferreira Jr. Universidade Federal de Pelotas Brazil Paulo Trigo Instituto Superior de Engenharia de Lisboa Portugal Rafael Bordini Universidade Federal do Rio Grande do Sul Brazil Raul Wazlawick UFSC Brazil Rejane Frozza UNISC q Brazil Ricardo Rabelo Federal University of Santa Catarina Brazil Ricardo Silveira Universidade Federal de Santa Catarina Brazil Rosa Viccari UFRGS Brazil Sílvio Cazella Unisinos Brazil Sidney Castro Universidade Federal do ABC Brazil Silvia Botelho FURG Brazil Silvia Moraes PUCRS Brazil

7 ARTIGOS COMPLETOS Agentes BDI com Percepção Fuzzy na Simulação de um Modelo Presa-Predador Fuzzy 1-12 Uso de CSP na Especificação Formal do Nível Micro- Organizacional de SMAs Sistema Tutor Inteligente PAT2Math: Proposta de Arquitetura Multiagente Um Sistema de Apoio à Decisão baseado em Agentes para a Companhia Elétrica do Estado de Goiás Método Baseado em Detecção de Mudanças para Determinar Preço de Oferta de Pedidos de Clientes no Ambiente TAC-SCM Um Modelo de Agente Econômico Cognitivo com Base no Conceito de Agentes BDI Introdução da Dimensão Dialógica no Moise+, com Aplicação na Modelagem de Processos de Gestão em uma Universidade Comunitária Teoria dos Jogos aplicada à coordenação de agentes, utilizando Teoria dos Valores de Troca WEBSMIT Sistema Multiagente para Identificação e Atribuição Automática de Tarefas para Grupos de Trabalho Geograficamente Dispersos Aplicação de Sistemas Multiagentes à Gestão do Conhecimento Uma Arquitetura de Referência para Assistentes Pessoais: Uma Abordagem Baseada em Agentes e Serviços de Software O uso de Agentes Inteligentes em Redes de Rádios Cognitivos

8 RESUMOS EXPANDIDOS Detectando Padrões Comportamentais de Agentes Através de Árvores de Decisão Simulação Baseada em Multiagentes em Atividades de Graduação Especificando Rotinas Organizacionais de Sistemas Multiagentes: Detecção de Desvios com Base no Conceito de Expectativa Estendendo o Modelo de Organização de Sistemas Multiagentes PopOrg com Unidades Organizacionais Recursivas Um Modelo Híbrido de Agente BDI Fuzzy Crenças de Grupo como Instrumento de Formação da Reputação Simulação Presa x Predador: Sistemas Dinâmicos e Multi-agentes Probabilístico An X3D Framework for Developing Adaptive Virtual Environments AIHIPER Um Agente Inteligente identificador de crianças portadoras de TDA/H Recicla: Software Educativo para o Ensino Ambiental Um Sistema Baseado em Instituições Eletrônicas para Apoio ao Intercâmbio de Documentos Históricos Autenticados Através de Bibliotecas Digitais

9 Agentes BDI com Percepção Fuzzy na Simulação de um Modelo Presa-Predador Fuzzy Giovani Parente Farias, Graçaliz Pereira Dimuro & Antônio Carlos da Rocha Costa Mestrado em Modelagem Computacional Universidade Federal do Rio Grande Av. Itália km 8, Campus Carreiros Rio Grande - RS - BRASIL {giovanifarias gracaliz ac.rocha.costa}@gmail.com Abstract The aim of this work is to develop a model of fuzzy perception for BDI agents, with an application in the praypredator problem, where the process of deciding on which pray a predator should attack, based on the strength of the pray comparing with its own strength, is based on its fuzzy perception. In this environment, there are different types of predator agents, where of them been the BDI agent with fuzzy perception. Several simulations are realized for the comparative evaluation of the different types of predator agents in two types of environments: with and without competition between predators. 1. INTRODUÇÃO As diferentes arquiteturas de agentes encontradas na literatura [26] têm sido estabelecidas, em sua maioria, para tratar informações com base na lógica clássica, onde uma proposição ou é verdadeira ou é falsa. Por outro lado, a Teoria dos Conjuntos Fuzzy [21] introduzida em 1965 por Zadeh [27] oferece uma forma natural de representar informações vagas e subjetivas. Baseia-se na idéia de que vários elementos no pensamento humano não são dados exatos, mas podem ser aproximados como classes de objetos nas quais a transição entre a pertinência e a não pertinência é gradual e não abrupta. Além disso, o raciocínio humano muitas vezes não segue a lógica bivalorada ou multivalorada, mas uma lógica com verdades fuzzy (nebulosas), conectivos fuzzy e regras de inferência fuzzy. A arquitetura de agentes BDI (Beliefs, Desires and 1 Intentions) [25] descreve o processamento interno do estado de um agente utilizando um conjunto de categorias mentais (crenças, desejos e intenções), definindo uma arquitetura de controle através da qual o agente seleciona racionalmente o curso de suas ações. O agente utiliza suas percepções sobre o ambiente para atualizar suas crenças após a realização de cada ação. Observa-se, entretanto, que a percepção do agente sobre o mundo pode ser incompleta, vaga, incerta, ambígua, subjetiva etc. Esse tipo de incerteza e subjetividade na percepção do ambiente, que não é tratada pela lógica clássica, não está prevista na arquitetura BDI clássica, que também não trata as incertezas em creças, desejos e intenções, informações que poderiam ser úteis para que a atuação do agente fosse mais eficiente. A proposta deste trabalho é desenvolver um modelo de agente BDI Fuzzy para um modelo presa predador fuzzy, onde é proposto um mecanismo de percepção fuzzy para ser acoplado à arquitetura BDI, tal que o agente possa tratar, de maneira mais adequada, as incertezas relativas ao ambiente presa predador fuzzy e a si próprio. O modelo presa predador fuzzy simplificado proposto neste trabalho é baseado no modelo clássico [15] e no modelo presa predador fuzzy apresentado em [19]. A implementação foi realizada na plataforma de agentes Jason [1]. Uma versão inicial deste trabalho foi apresentada como poster no MCSUL 2009 [10]. O artigo está organizado como descrito a seguir. Na Seção 2 são discutidos alguns trabalhos relacionados, no sentido de contextualizar e justificar o presente trabalho. Na Seção 3 são apresentados os conceitos básicos da Teo-

10 Giovani et al. Agentes BDI com Percepção Fuzzy ria dos Conjuntos Fuzzy necessários para o entendimento do trabalho. O Modelo Presa Predador Fuzzy é introduzido na Seção 4, incluindo a nossa proposta para o mecanismo de percepção fuzzy do agente predador. A análise das simulações é discutida na Seção 5. A Seção 6 é a Conclusão. 2. TRABALHOS RELACIONADOS Na literatura existem várias referências ao uso da Lógica Fuzzy para possibilitar aos agentes mecanismos de decisão mais adaptáveis à realidade, podendo ter maior flexibilidade em ambientes complexos e dinâmicos. Em [13], por exemplo, foi observado que modelos de agentes simples, como os que são normalmente utilizados nas ferramentas existentes, não são nem suficientes nem adequados para lidar com a incerteza e a subjetividade que devem ser considerados na análise de valores (como, p.ex., confiança) na sociedade humana. Por este motivo, esses autores, utilizaram a Lógica fuzzy para especificar os atributos de agentes que representam indivíduos, a evolução das mentes dos agentes, a herança, o relacionamento e a similaridade entre indivíduos. Zadeh [28] salientou o princípio da incompatibilidade, que estabelece que complexidade e precisão são propriedades incompatíveis, argumentando que abordagens baseadas em conceitos quantitativos são inadequadas para modelar o conhecimento humano em processos complexos. Assim, nos trabalhos de simulação social baseada em agentes em [11, 20], facetas e traços de personalidades humanas foram especificadas (de acordo com os modelos Big Five e OCEAN) como regras condicionais em agentes fuzzy (que são capazes de executar raciocínio aproximado qualitativo), para realizar simulação do comportamento humano. Outro trabalho interessante, que propõe um abordagem fuzzy para simulação social em sistemas multiagentes foi apresentado em [8]. Já em [9], a Lógica Fuzzy foi utilizada para avaliação de trocas sociais entre agentes baseados em personalidades, propondo a análise das interações entre agentes com base na noção de equilíbrio fuzzy em trocas de serviços entre agentes. Em [22] foi apresentada uma aplicação da Lógica Fuzzy na simulação de comportamentos humanos a redes sociais, representando elementos comportamentais, tais como estresse, motivação ou fadiga, e aspectos sociólogicos. Finalmente, no contexto de agentes BDI, nos trabalhos em [2, 3, 4] foi proposto um modelo geral para agentes BDI graduados, e uma arquitetura, baseada em sistemas multi-contextos, para modelar atitudes mentais graduadas, em sentido similar ao da Lógica Fuzzy. Em outro trabalho [5], um modelo de agente BDI graduado baseado em sistemas multi-contextos foi utilizado para especificar um agente para assistência a viagens, que ajuda turistas a escolher pacotes de férias. Cabe ressaltar também o trabalho inicial em lógicas BDI Fuzzy em [6]. Uma arquitetura BDI Fuzzy para agentes sociais foi proposta em [17], com uma proposta inicial para a modelagem de sociedades cooperativas de agentes, apontando para as condições sociais necessárias para os agentes formarem intenções e ações conjuntas. Em [16], foi proposto um modelo híbrido de agente BDI para operações em terminais de containers, que estendem as características de aprendizagem e adaptabilidade do modelo tradicional com redes neurais e sistemas de inferência neuro-fuzzy, possibilitando a melhora no processo de tomada de decisão em ambientes complexos e dinâmicos. Uma versão mais atualizada do modelo foi apresentada em [24], no contexto de redes sensoriais sem fio. Outra extensão ao modelo BDI com características fuzzy é o modelo Agent Fuzzy Decision-Making (AFDM) [23], que permite que agentes BDI possam tomar decisões com base em julgamentos quantificados de forma fuzzy. Também em [12], foi proposta o modelo BDI neurofuzzy AUV (autonomous underwater vehicle), que consiste de uma rede neural de vários níveis, onde um deles é de elaboração de intenções fuzzy a partir das crenças e desejos do agente. Assim, sabe-se que a Lógica Fuzzy vem sendo utilizada em simulações baseadas em agentes, principalmente em simulação social, mas também são vários os trabalhos com modelos BDI híbridos. Observa-se, entretanto, que embora sistemas de percepção fuzzy tenham sido empregados em agentes e, principalmente, em robots (veja, p.ex, os trabalhos em [7], onde a percepção fuzzy é utilizada para melhorar a navegação de robots, e em [18], que usa a percepção fuzzy em robots para melhorar a credibilidade na expressão de emoções), ainda não existe um modelo BDI acoplado a um mecanismo de percepção fuzzy, no sentido proposto neste trabalho. 3. CONJUNTOS FUZZY A Lógica Fuzzy [21, 27], utilizada para a modelagem de raciocínio com incertezas, permite descrever de forma aproximada e efetiva as características de sistemas complexos ou que não podem ser definidos de forma exata. Os relacionamentos entre elementos e conjuntos seguem uma transição entre pertinência e não pertinência, que é gradual, representados por valores de pertinência intermediários, entre o verdadeiro e o falso da lógica clássica. Um Sistema Baseado em Regras Fuzzy (SBRF) uti- 2

11 Giovani et al. Agentes BDI com Percepção Fuzzy liza a lógica fuzzy para produzir saídas para cada entrada fuzzy. Uma Base de Regras Fuzzy representa o conhecimento do sistema e pode ser descrita conforme a Tabela 1. Nos Sistemas Baseados em Regras Fuzzy cada proposição tem a forma Se estado Então resposta, em que cada estado e cada resposta são valores assumidos por variáveis linguísticas, e estas, por sua vez, são modelados por conjuntos fuzzy. Tabela 1. Forma Geral de uma Base de Regras Fuzzy. R 1 : Proposição fuzzy 1 ou R 2 : Proposição fuzzy 2... ou R n : Proposição fuzzy n Um controlador fuzzy é um sistema de entrada e saída baseado em regras fuzzy que possui, basicamente, quatro componentes, mostrados na Figura 1: como o Método Takagi-Sugeno-Kang [14] (veja a Subseção 3.1). - Módulo de Defuzzificação: processo utilizado para converter o conjunto fuzzy de saída em um valor de saída do sistema e onde acontece a etapa de relação funcional entre as regiões fuzzy e o valor esperado O MÉTODO DE INFERÊNCIA DE KANG- TAKAGI-SUGENO (KTS) No método de KTS, o consequente de cada regra é dado explicitamente por uma função dos valores de entrada desta regra. Como ilustração do método podemos imaginar uma base com r regras fuzzy, onde cada uma delas tem n entradas (x 1, x 2,..., x n ) R n e uma saída z R, conforme a Tabela 2, no qual A ij são subconjuntos fuzzy de R. ou ou. ou Tabela 2. Base de Regras para Ilustrar o Método KTS. R 1 : Se x 1 é A 11 e x 2 é A 12 e e x n é A 1n Então z 1 é z 1 = g 1 (x 1, x 2,..., x n ) R 2 : R r : Se x 1 é A 21 e x 2 é A 22 e e x n é A 2n Então z 2 é z 2 = g 2 (x 1, x 2,..., x n ) Se x 1 é A r1 e x 2 é A r2 e e x n é A rn Então z r é z r = g r (x 1, x 2,..., x n ) A saída geral do método é dada por Figura 1. Esquema geral de um controlador fuzzy - Módulo de Fuzzificação: mapeia cada variável de entrada do sistema em graus de pertinência de algum conjunto fuzzy que representa a variável em questão. - Módulo da Base de Regras: composto pelas proposições fuzzy, descritas na forma linguística Se x 1 é A 1 e x 2 é A 2 e... e x n é A n então u 1 é B 1 e u 2 é B 2 e... se u m é B m de acordo com as informações de um especialista. É neste ponto que as variáveis e suas classificações linguísticas são catalogadas e, em seguidas, modeladas por conjuntos fuzzy, isto é, funções de pertinência. A base de regras descreve relações entre as variáveis linguísticas, para serem utilizadas na máquina de inferência fuzzy. - Módulo de Inferência Fuzzy: fornece a saída a partir de cada entrada fuzzy e da relação definida pela base de regras, ou seja, é onde são realizadas as operações com conjuntos fuzzy propriamente ditas. Para realizar estas operações, existem métodos de inferência fuzzy, tais 3 z = r w j 1 g j (x 1, x 2,..., x n ) j=1 r (1) w j j=1 onde os pesos w j são dados por w j = ϕ Aj1 (x 1 ) 2 ϕ Aj2 (x 2 ) 2 ϕ Ajn (x n ), e 1 e 2 são t-normas, e ϕ Aji são as funções de pertinência [21]. Os pesos w j correspondem à contribuição da regra R j para a saída geral. 4. MODELO PRESA PREDADOR FUZZY O modelo Presa Predador Clássico de Lotka- Volterra [15] pressupõe que tanto presas como predadores estão distribuídos uniformemente num habitat comum onde todos os predadores têm a mesma chance de encontrar e capturar cada presa. Não existe distinção entre os predadores, assim como não há distinção entre as presas. Este modelo serviu de inspiração para a proposta do modelo Presa Predador Fuzzy, onde presas e predadores

12 Giovani et al. Agentes BDI com Percepção Fuzzy apresentam diferentes pesos e idades, o que influencia no resultado do ataque de um predador a uma presa. A força de um agente (presa ou predador) é caracterizada por sua idade e peso. Um adulto pode ter menos força que um jovem, dependendo de seu peso. Ainda, uma presa velha e magra pode ser preferida na escolha de um predador, por ter menos força. Desta forma, podemos caracterizar as presas e os predadores pelo seu nível de força, sendo tal nível determinado através de um processo fuzzy com base na fuzzificação de sua idade e peso PREDADOR BDI FUZZY O Predador BDI Fuzzy é um agente BDI cuja decisão se deve, ou não, atacar uma determinada presa é influenciada por um mecanismo de percepção fuzzy. O agente, com base na fuzzificação de sua idade e peso no instante do possível ataque, calcula seu nível de força, e com base na fuzzificação da idade e peso da presa, atribui um nível de força a ela. Assim o predador BDI Fuzzy só irá atacar presas com o nível de força menor ou igual ao seu. O Modelo de Percepção Fuzzy deste predador, baseiase no sistema de controle fuzzy com o método de inferência de KTS, descrito na Subseção 3.1. As variáveis linguísticas de entradas consideradas são: idade e peso do agente. A variável linguística de saída é o nível de força do agente. Para essas variáveis, atribuiram-se termos linguísticos, e cada um deles com funções de pertinência do tipo trapezoidal, representadas graficamente nas Figuras 2, 3 e O PREDADOR Um predador é caracterizado por sua idade e peso, que são alterados durante a simulação. O predador pode se movimentar (aleatoriamente), em cada instante de tempo, para uma posição vizinha à sua posição atual. A cada movimento o agente perde uma quantia fixa de peso, chamada de taxa de emagrecimento e tem sua idade incrementada por um valor fixo, denominado taxa de envelhecimento. Assim, a cada instante de tempo, o predador perde peso e envelhece, podendo assim atingir o peso mínimo (1 kg), situação na qual o agente morre de fome ou a idade máxima (50 anos), situação na qual o agente morre de velho. A cada movimento, o predador pode passar a ocupar uma posição do ambiente na qual se encontra uma presa. Neste caso, o agente é capaz de perceber a presença da mesma, analisar suas características (idade e peso) e atribuir um nível de força à presa, de acordo com o seu mecanismo de percepção. O agente também calcula o seu próprio nível de força para decidir se deve ou não atacá-la. A cada ataque bem sucedido (ataque no qual o predador ganha da presa) o agente predador tem seu peso incrementado por um valor fixo, chamado de recompensa, porém a cada ataque mal sucedido (ataque no qual o predador perde para a presa) o predador tem seu peso decrementado por um valor fixo, denominado punição. Figura 2. Funções de pertinência da idade do agente Figura 3. Funções de pertinência do peso do agente Figura 4. Funções de pertinência da força do agente Por meio da análise do conjunto dos dados envolvendo as variáveis mencionadas, estabeleceu-se uma base de conhecimento com regras linguísticas, relacionando-as 4

13 Giovani et al. Agentes BDI com Percepção Fuzzy a fim de se estimar o valor do nível de força do agente. A Tabela 3 fornece as regras atingidas (base de regras com 2 entradas e uma saída). A Tabela 4 apresenta a base de regras para o método KTS do modelo de percepção fuzzy do predador. O processo de inferência, no modelo de percepção fuzzy do predador BDI Fuzzy, propicia o cálculo da variável resposta (nível de força) a partir dos valores das variáveis de entrada (idade e peso). Os valores dos graus de pertinência das variáveis de entradas são utilizados para se obter o valor do grau de ativação das regras. No método de Kang-Takagi-Sugeno, o consequente de cada regra é dado explicitamente por uma função dos valores de entrada desta regra. A Tabela 4 mostra a base de regras fuzzy, cada uma delas com 2 entradas (idade, peso) R 2 e uma saída z R, onde jovem, adulto, velho, muito leve, leve, médio, pesado e muito pesado são subconjuntos fuzzy de R. Exemplo 1 Para exemplificar a utilização do método de inferência de KTS no modelo de percepção fuzzy do predador, considera-se os seguintes valores crisp de entrada: idade = 16 e peso = 84. Esses valores são fuzzificados, considerando seus graus de pertinência em relação aos subconjuntos fuzzy que definem essas duas variáveis de entrada, dados nas Figuras 2 e 3. Assim, o valor idade = 16 é considerado jovem com grau ϕ jovem (16) = 0, 4 e adulto com grau ϕ adulto (16) = 0, 6 (Figura 2). O valor do peso = 84 é avaliado como pesado com graus ϕ pesado (84) = 0, 6 e muito pesado com grau ϕ muito pesado (84) = 0, 4 (Figura 3). Cada combinação desses conjuntos acionados pelos valores de entrada ativam algumas regras na base de conhecimento. Nesse caso foram acionadas 4 regras, a saber, R 4, R 5, R 9 e R 10 da base de regras (Tabela 4). Na equação que representa a saída geral do método de inferência KTS (Equação 1), utilizam-se as t-normas do produto, denotada por 1, e do mínimo (denotada por 2 ). Neste caso, o método de inferência de KTS combina os graus de pertinência referentes a cada um dos valores de entrada através da t-norma do mínimo. Assim para as regras R 4, R 5, R 9 e R 10, tem-se, respectivamente: R 4 : w 4 = min {ϕ jovem(16), ϕ pesado (84)} = 0, 4 R 5 : w 5 = min {ϕ jovem(16), ϕ muito pesado (84)} = 0, 4 R 9 : w 9 = min {ϕ adulto (16), ϕ pesado (84)} = 0, 6 R 10 : w 10 = min {ϕ adulto (16), ϕ muito pesado (84)} = 0, 4 R 4, 0, 4 para R 5, 0, 6 para R 9 e 0, 4 para R 10 ) será projetado na equação da saída geral do processo, juntamente com a variável resposta (z i ) da regra em questão, mostrado na Equação 2. z = = = w4z4 + w5z5 + w9z9 + w10z10 w 4 + w 5 + w 9 + w 10 w4f4(16, 84) w10f10(16, 84) w 4 + w 5 + w 9 + w 10 (2) 0, , , , , 4 + 0, 4 + 0, 6 + 0, 4 = 74 A saída z = 74 do sistema baseado no método de Takagi-Sugeno é gerada a partir das entradas reais idade e peso. Esta saída do sistema é obtida pela média ponderada (procedimento de defuzzificação) das saídas de cada regra, usando-se o grau de ativação destas regras como ponderação PREDADOR BDI CRISP O predador BDI-Crisp é um agente BDI, onde o mecanismo de percepção é inspirado no controlador fuzzy do modelo Presa Predador Fuzzy, mas onde os valores dos graus de pertinência das variáveis de entradas são crisp ({0, 1}), e quando utilizados para se obter o valor do grau de pertinência da variável resposta acabam por ativar apenas uma das regras na base de conhecimento (Tabela 4). As representação matemática das funções de pertinência do agente Crisp, relacionadas a variável linguística idade µ jovem (x), µ adulto (x) e µ velho (x) estão nas equações 3, 4 e 5, respectivamente. µ jovem (x) = µ adulto (x) = µ velho (x) = { 1 se x 15 0 caso contrário { 1 se 15 < x < 35 0 caso contrário { 1 se x 35 0 caso contrário (3) (4) (5) As representação matemática das funções de pertinência do agente predador BDI-Crisp, relacionadas a variável linguística peso µ muito leve (x), µ leve (x), µ medio (x), ρ pesado (x) e µ muito pesado (x) estão nas equações 6, 7, 8, 9 e 10, respectivamente. Essa operação é feita a cada uma das regras acionadas, onde w i corresponde ao grau de ativação da regra R i na saída geral do processo. O valor do grau de ativação da regra encontrado em cada regra (0, 4 para 5 µ muito leve (x) = µ leve (x) = { 1 se x 15 0 caso contrário { 1 se 15 < x 35 0 caso contrário (6) (7)

14 Giovani et al. Agentes BDI com Percepção Fuzzy Tabela 3. Base de Regras Linguísticas para o Modelo de Percepção Fuzzy Se idade e peso então nível de força R 1 jovem muito leve muito fraco R 2 jovem leve muito fraco R 3 jovem médio fraco R 4 jovem pesado médio R 5 jovem muito pesado médio R 6 adulto muito leve médio R 7 adulto leve médio R 8 adulto médio forte R 9 adulto pesado muito forte R 10 adulto muito pesado muito forte R 11 velho muito leve muito fraco R 12 velho leve muito fraco R 13 velho médio fraco R 14 velho pesado médio R 15 velho muito pesado médio µ medio (x) = { 1 se 35 < x 65 0 caso contrário (8) BDI-Crisp, da mesma forma que o o predador BDI-Fuzzy, só irá atacar presas com o nível de força menor ou igual ao seu. µ pesado (x) = µ muito pesado (x) = { 1 se 65 < x 85 0 caso contrário { 1 se x > 85 0 caso contrário (9) (10) Exemplo 2 Considerando-se os mesmos valores de entrada (idade, peso) do Exemplo 1, que agora possuem graus de pertinência em relação aos subconjuntos crisp que definem as essas duas variáveis de entrada, tem-se que o valor idade = 16 é considerado adulto com grau µ adulto (16) = 1, conforme a Equação 4, e o valor do peso = 84, é avaliado como pesado com grau µ pesado (84) = 1, conforme a Equação 9. Nesse caso, foi acionada a regra R 9 da base de regras (Tabela 4), onde: R 9 : w 9 = min {µ adulto (16), µ pesado (84)} = 1 e, projetando na equação da saída geral do processo, juntamente com a variável resposta (z 9 ) da regra em questão, que é dada pela Equação 1, obtém-se: z = w 9z 9 = w 9f 9 (16, 84) = 1 88 = 88 w 9 w 9 1 A decisão do predador BDI-Crisp se deve, ou não, atacar uma determinada presa é influenciada pelo mecanismo de percepção crisp do agente. O agente, com base em sua idade e peso no instante do possível ataque, calcula seu nível de força, e com base na idade e peso da presa, atribui um nível de força a ela. Assim o predador 4.4. PREDADOR BDI GULOSO O predador BDI Guloso apresenta um mecanismo de percepção diferente aos demais predadores, pelo fato de não ser capaz de obter nenhum tipo de informação relacionada ao nível de força da presa e nem do próprio agente. Sendo assim, o mecanismo de decisão do predador Guloso é de sempre atacar, seja qual for o tipo de presa encontrada DESCRIÇÃO GERAL DO AMBIENTE Para cada agente, de acordo com sua idade e peso o ambiente lhe atribui um nível de força, cujo cálculo é efetuado pelo mesmo controlador fuzzy utilizado pelo modelo de percepção fuzzy do agente predador BDI Fuzzy, descrito na Seção 4.2. A idade e o peso de uma presa não sofrem alterações do ambiente durante as simulações. Cada presa ocupa apenas uma posição no grid, não podendo haver mais de uma presa ocupando a mesma posição, e não são capazes de se movimentar. A probabilidade do agente predador obter sucesso ao atacar uma presa é dada por P rob = 50 + RAP RP P 2 onde RAP é o nível de força do predador RP P é o nível de força da presa calculados pelo ambiente. 6

15 Giovani et al. Agentes BDI com Percepção Fuzzy Tabela 4. Base de regras para o método KTS do modelo de percepção fuzzy Se idade e peso então força = f i (idade, peso) R 1 jovem muito leve f 1 (x, y) = x + y 2 x + ( y R 2 jovem leve f 2 (x, y) = 2 ) 2 R 3 jovem médio f 3 (x, y) = (x + y) 10 2 R 4 jovem pesado f 4 (x, y) = (x 1) + y 2 R 5 jovem muito pesado f 5 (x, y) = x + y 2 R 6 adulto muito leve f 6 (x, y) = x + y 2 R 7 adulto leve f 7 (x, y) = x + y x + y R 8 adulto médio f 8 (x, y) = R 9 adulto pesado f 9 (x, y) = x + y 4 R 10 adulto muito pesado f 10 (x, y) = R 11 velho muito leve f 11 (x, y) = + 63 x 2 + y (50 x) + y 2 R 12 velho leve f 12 (x, y) = R 13 velho médio f 13 (x, y) = (50 x) + y 2 2 (50 x) + (y 10) 2 R 14 velho pesado f 14 (x, y) = (50 x) + y 2 R 15 velho muito pesado f 15 (x, y) = (50 x) + y 2 7

16 Giovani et al. Agentes BDI com Percepção Fuzzy 5. ANÁLISE DAS SIMULAÇÕES As simulações foram realizadas com objetivo de analisar o comportamento dos diferentes tipos de agentes BDI predadores (Fuzzy, Crisp e Guloso) em ambientes distintos que representam o modelo Presa Predador Fuzzy. Foram realizadas um total de 100 simulações, no qual foram armazenados os dados relacionados ao agente predador e gerados gráficos para facilitar a análise e compreensão dos mesmos. Os predadores começam com idade = 1 e peso = 50, valores que são alterados pelo ambiente durante a execução da simulação. Cada predador movimenta-se aleatoriamente, em cada instante de tempo, para uma posição vizinha à sua posição atual. Ao movimentar-se o agente tem uma perda de 0,1 kg ( taxa de emagrecimento ) e um aumento de 0,05 em sua idade ( taxa de envelhecimento ). A cada ataque bem sucedido o predador ganha 2 kg ( recompensa ), porém, a cada ataque mal sucedido o predador perde 1 kg ( punição ). A simulação termina quando os agentes predadores param sua execução, por terem atingido o peso mínimo (1 kg), situação na qual o agente morre de fome ou a idade máxima (50 anos), situação na qual o agente morre de velho. Figura 5. Média de ataques durante a idade i 5.1. AMBIENTE COM COMPETIÇÃO Consiste de 2 predadores BDI (Fuzzy e Crisp), 250 presas distintas (distribuídas aleatoriamente) e que não se movimentam. Optou-se por essa simplificação para não introduzir variáveis outras variáveis, tais como a destreza da presa em fugir, que pudessem mascarar a avaliação do mecanismo de percepção do agente, direcionado apenas às variáveis peso e idade. A cada ataque bem sucedido do agente predador, a presa derrotada é retirada do ambiente, diminuindo assim o número de presas, porém, a cada ataque mal sucedido, o predador passa a ocupar uma posição vizinha à sua posição atual e a presa não é retirada do ambiente. Este ambiente é chamado de Competitivo porque a presa derrotada é retirada do ambiente, diminuindo assim o número de presas e aumentando a probabilidade do predador se movimentar para uma posição vazia (sem a presença de uma presa) do ambiente, fazendo com que ele possa ter uma maior perda de peso e por consequência de força. Assim os dois predadores competem, de certa forma, pelas presas remanescentes. A Figura 5 representa o número médio de ataques dos predadores a cada intervalo de um ano, mostrando um crescimento significativo por parte do predador Crisp no intervalo entre 14 e 16 anos, este fenômeno pode estar relacionado com o fato do agente Crisp ter os valores dos graus de pertinência das variáveis de entradas crisp, neste caso, o agente apresenta uma mudança repentina de 8 Figura 6. Média de vitórias durante a idade i Figura 7. Média de derrotas durante a idade i

17 Giovani et al. Agentes BDI com Percepção Fuzzy sua auto avaliação passando de um predador considerado jovem para um predador adulto. A Figura 6 apresenta o número médio de vitórias dos predadores a cada intervalo de um ano. Este gráfico mostra um crescimento significativo por parte dos dois predadores, o BDI Crisp no intervalo entre 14 e 17 anos e o BDI Fuzzy no intervalo entre 16 e 20 anos, e uma queda continua, para ambos, a partir dos 30 anos, fator que pode estar relacionado com a diminuição do número de presas no ambiente e o envelhecimento do predador. Na Figura 7 observa-se um crescimento significativo no número médio de derrotas sofridas por parte do predador Crisp, no intervalo de idade de 15 a 16, fato que não ocorre com o predador Fuzzy e pode indicar uma região na qual a percepção do predador Crisp está mal modelada AMBIENTE SEM COMPETIÇÃO Apresenta 3 predadores BDI (Fuzzy, Crisp e Guloso) e 250 presas distintas, distribuídas aleatoriamente e que mudam de posição no ambiente cada vez que são atacadas por um predador, mesmo se o ataque for bem sucedido. Isto significa, de forma simplificada, que o número de presas se mantém equilibrado, isto é, o número de presas que morre é igual ao número de presas que nasce. Assim, a cada ataque bem ou mal sucedido do agente predador, a presa derrotada não é retirada do ambiente, mas tem sua posição redefinida aleatoriamente. Este ambiente é chamado de Não Competitivo devido ao fato da presa derrotada não ser retirada do ambiente, permitindo aos predadores terem as mesmas oportunidades de atacarem presas com as mesmas características. A Figura 8 representa o número médio de ataques dos predadores a cada intervalo de um ano, mostrando um crescimento significativo no número de ataques do predador Crisp no intervalo entre 14 e 16 anos, comportamento semelhante ao apresentado pelo mesmo predador na Figura 5, porém é interessante notar que a queda ocorrida no intervalo entre 34 e 36 anos é diferente nas duas figuras, cuja explicação pode estar relacionada ao número de presas no ambiente. No Ambiente com Competição (Seção 5.1) ocorre uma redução do número de presas ao longo do tempo, diminuindo a chance do predador encontrar uma presa predável, fato que não ocorre no Ambiente sem Competição (Seção 5.2). Esse fator juntamente com o mecanismo de percepção crisp do agente podem ser os responsáveis por este fenômeno. A Figura 9 mostra que os predadores têm um número maior de vitórias no intervalo em torno de 20 e 33 anos. A Figura 10 mostra o número médio de derrotas sofridas pelos predadores a cada ano. A proximidade dos valores do predador Guloso com a do Fuzzy e Crisp no 9 Figura 8. Média de ataques durante a idade i Figura 9. Média de vitórias durante a idade i Figura 10. Média de derrotas durante a idade i

18 Giovani et al. Agentes BDI com Percepção Fuzzy intervalo de idades entre 20 e 30 anos pode representar as idades nas quais os predadores apresentam um maior nível de força, pois um predador que sempre ataca obtém resultados semelhantes aos do que são mais cautelosos. A Figura 11 é uma representação gráfica da média de ataques até a idade i dos predadores BDI Fuzzy, BDI Crisp e BDI Guloso, na qual observa-se que o predador BDI Guloso apresentou uma média de ataques muito superior a dos outros 2 predadores, devido ao seu mecanismo de decisão que sempre opta pelo ataque à presa. A Figura 12 representa a média de vitórias dos 3 predadores até a idade i, onde o predador Guloso alcançou uma média maior de vitória por ser o agente que mais efetua ataques. Nota-se também que o predador Fuzzy apresentou uma pequena vantagem com relação ao predador Crisp. A Figura 13 representa a média de derrotas sofridas pelos 3 predadores até a idade i, na qual observa-se que o predador Guloso apresentou uma média de derrotas muito superior a dos demais. Nota-se que o predador Crisp a- presentou uma média de derrotas maior que o BDI Fuzzy em todas as idades. A Figura 14 mostra o gráfico de barras que representa a média do tempo de vida dos predadores, sendo o Guloso o que apresenta a menor média de vida dentre os predadores. A Figura 15 mostra o gráfico de barras que representa o valor médio do peso do predador ao final de sua execução. O Guloso, apesar de ser o predador que possui a menor média de vida (Figura 14), apresenta uma média de peso superior a do Crisp e semelhante a do Fuzzy. A Figura 16 mostra o gráfico de barras que representa o valor médio do número de ataques, vitórias e derrotas dos predadores até o final de sua execução. O Guloso é o predador que apresenta as maiores médias em todas as categorias e o único a ter o valor médio de derrotas maior que o de vitórias. O predador Fuzzy com base nas médias de vitórias e derrotas é o agente que apresentou melhor desempenho neste ambiente. Figura 11. Média de ataques até a idade i Figura 12. Média de vitórias até a idade i 6. CONCLUSÃO Neste trabalho foi desenvolvido um Modelo Presa Predador Fuzzy simplificado, com a proposta de um modelo de percepção baseado na Lógica Fuzzy para um agente BDI, que tem o papel de predador, sendo a implementação realizada na plataforma de agentes Jason. Nas simulações realizadas, o predador BDI com percepção fuzzy apresentou melhores resultados com relação aos outros predadores, nos dois ambientes propostos, demonstrando que este possui um mecanismo de percepção que melhor representa o ambiente. O comportamento semelhante do predador BDI Fuzzy 10 Figura 13. Média de derrotas até a idade i

19 Giovani et al. Agentes BDI com Percepção Fuzzy ao do predador BDI Crisp pode estar relacionado ao fato das funções de pertinência serem do tipo trapezoidal, ou seja, se as mesmas apresentassem um maior grau de incerteza (patamares menores no grau de pertinência 1) o resultado do comportamento entre os dois agentes poderia apresentar uma diferença mais significativa. Como trabalhos futuros, pretende-se estender o mecanismo de percepção para acrescentar um número maior de variáveis na simulação. A partir da análise desse novo trabalho, será definido o modelo genérico de percepção fuzzy. Pretende-se, também, implementar uma arquitetura de agente híbrido BDI Fuzzy onde os conjuntos de crenças, desejos e intenções serão conjuntos fuzzy. Figura 14. Média de vida Agradecimentos Este trabalho foi financiado pela FAPERGS e pelo CNPQ (Proc /07-0, /07-9, /06-2, /09-5, /07-4). Os autores agradecem aos revisores anônimos por suas considerações e a Rafael Bordini (UFRGS) pelas valiosas sugestões. Referências [1] R. H. Bordini, J. F. Hübner, and M. Wooldridge. Programming Multi-Agent Systems in AgentSpeak using Jason. Wiley, New Jersey, [2] A. Casali, L. Godo, and C. Sierra. Graded BDI models for agent architectures. In Computational Logic in Multiagent Systems, volume 3487 of LNAI, pages Springer, Berlin, Figura 15. Média de peso ao final da execução Figura 16. Média de ataques, vitórias e derrotas dos predadores 11 [3] A. Casali, L. Godo, and C. Sierra. Modelos BDI graduados para arquitecturas de agentes. Revista Iberoamericana de Inteligencia Artificial, 9(26):67 75, [4] A. Casali, L. Godo, and C. Sierra. Multi-context specification for graded BDI-agent. In C. Ghidini, editor, Doctoral Consortium - Fifth International Conference on Modeling and Using Context (CONTEXT-05), pages 31 40, Paris, LIP 6. [5] A. Casali, L. Godo, and C. Sierra. Modeling travel assistant agents: a graded BDI approach. In Artificial Intelligence in Theory and Practice, volume 217 of IFIP International Federation for Information Processing, pages Springer, Berlin, [6] A. P. Cruz. Lógicas BDI fuzzy. Master s thesis, UFRN, [7] F. Cuesta and A. Ollero. Intelligent control of mobile robots with fuzzy perception. In Intelligent Mobile Robot Navigation, volume 16 of Springer Tracts

20 Giovani et al. Agentes BDI com Percepção Fuzzy in Advanced Robotics, pages Springer, Berlin, [8] E. del Acebo and J. L. de la Rosa. A fuzzy system based approach to social modeling in multi-agent systems. In Proc. of Intl. Conf. on Autonomous Agents and Multiagent Systems, pages ACM, [9] G. P. Dimuro, A. V. Santos, G. P. Bedregal, and A. C. R. Costa. Fuzzy evaluation of social exchanges between personality-based agents. In L. S. Lopes, N. Lau, P. Mariano, and L. M. Rocha, editors, New Trends In Artificial Intelligence, Proc. of 14th Portuguese Conference on Artificial Intelligence, EPIA 2009, pages , Aveiro, APIA/Universidade de Aveiro. [10] G. P. Farias, G. P. Dimuro, and A. C. R. Costa. Um modelo de percepção fuzzy para agentes BDI. In L. A. O. Rocha and S. S. C. Botelho, editors, Proc. of the 3rd Southern Conference on Computational Modeling, pages , Rio Grande, [11] N. Ghasem-Aghaee and T. I. Ören. Towards fuzzy agents with dynamic personality for human behavior simulation. In Proc. of the 2003 Summer Computer Simulation Conference, Montreal, July 20-24, 2003, pages 3 10, San Diego, SCS. [12] L. Hai-bo, G. Guo-chang, S. Jing, and F. Yan. AUV fuzzy neural BDI. Journal of Marine Science and Application, 4(3):37 41, [13] S. Hassan, L. Garmendia, and J. Pavón. Agentbased social modeling and simulation with fuzzy sets. In E. Corchado, J. M. Corchado, and A. Abraham, editors, Innovations in Hybrid Intelligent Systems, number 44 in Advances in Soft Computing, pages Springer, Berlin, [14] K. Ishii and M. Sugeno. A model of human evaluation process using fuzzy measure. International Journal of Man-Machine Studies, 22(1):19 38, [15] R. S. M. Jafelice, L. C. Barros, and R. C. Bassanezi. Teoria dos Conjuntos Fuzzy com Aplicações. SB- MAC, São Carlos, [16] P. Lokuge and D. Alahakoon. Decisions based upon multiple values: the BVG agent architecture. In N. R. Pal, Nikola Kasabov, Rajani K. Mudi, Srimanta Pal, and Swapan K. Parui, editors, Neural Information Processing, number 3316 in LNCS, pages , Berlin, Springer. [17] S. A. Long and A. C. Esterline. Fuzzy BDI architecture for social agents. In N. R. Pal, Nikola Kasabov, Rajani K. Mudi, Srimanta Pal, and Swapan K. Parui, editors, Proceedings of the IEEE Southeastcon 2000, pages 68 74, Los Alamitos, IEEE. [18] H. Mobahi and S. Ansari. Fuzzy perception, emotion and expression for interactive robots. In Proc. of the IEEE Intl. Conf. on Systems, Man and Cybernetic (SMCC03), volume 4, pages , Washington, [19] M. S. Peixoto, L. C. Barros, and R. C. Bassanezi. Predator-prey fuzzy model. Ecological Modelling, 124(1):39 44, [20] T. I. Ören and N. Ghasem-Aghaee. Personality representation processable in fuzzy logic for human behavior simulation. In Proc. of the 2003 Summer Computer Simulation Conference, Montreal, July 20-24, 2003, pages 11 18, San Diego, SCS. [21] T. J. Ross. Fuzzy Logic with Engineering Applications. Wiley, New Mexico, [22] E. Sabeur and G. Denis. Human behavior and social network simulation: Fuzzy sets/logic and agentsbased approach. In Proc. of the 2007 Spring Simulation Multi-Conference, Norfolk, 2007, pages , San Diego, SCS. [23] S. Shen, G. M. P. O Hare, and R. Collier. Decisionmaking of BDI agents, a fuzzy approach. In Proceedings of The Fourth International Conference on Computer and Information Technology, pages , Washington, IEEE. [24] S. Shen, G. M. P. O Hare, and M. J. O Grady. Fuzzy-set-based decision making through energyaware and utility agents within wireless sensor networks. Artificial Intelligence Review, 27(2-3): , [25] M. Wooldridge. Reasoning about Rational Agents. Intelligent Robots and Autonomous Agents. The MIT Press, Cambridge, [26] M. Wooldridge. An Introduction to MultiAgent Systems. Wiley, Chichester, [27] L. A. Zadeh. Fuzzy sets. Information and Control, 8: , [28] L. A. Zadeh. Is there a need for fuzzy logic? Information Sciences, 178(13): ,

21 Uso de CSP na Especificação Formal do Nível Micro- Organizacional de SMAs Raquel M. Barbosa 1, Antônio C. R. Costa 1, Patrícia C. A. R. Tedesco 2 & Alexandre C. Mota 2 1 Instituto de Informática Universidade Federal do Rio Grande do Sul Caixa Postal Tel: +55 (51) CEP Porto Alegre - RS - BRASIL miranda@inf.ufrgs.br, rocha@ucpel.tche.br 2 Centro de Informática Universidade Federal de Pernambuco Tel: +55 (81) CEP Recife - PE - BRASIL {pcart,acm}@cin.ufpe.br Abstract This paper explores the use of the CSP language for the formal specification of multiagent systems organizations. It shows that CSP can be used to specify parts of the micro-organizational level of multiagent systems, namely, behaviors of organizational roles and exchange processes between organizational roles. An example of the use of CSP and of the FDR model checker for such purpose is presented. Keywords: CSP, Formal Methods, Multiagent Systems Organizations INTRODUÇÃO O uso da abordagem de sistemas mutiagentes no desenvolvimento de sistemas complexos tem aumentado consideravelmente nos últimos anos. Isto ocorre devido às características desta abordagem e à adequabilidade das técnicas orientadas a agentes para o desenvolvimento de sistemas complexos [17] Dentre as características fundamentais da noção de modelagem conceitual orientada a agentes está a noção de autonomia dos agentes [22]. A presença de autonomia como característica fundamental dos componentes de um sistema, no entanto, adiciona uma complexidade considerável às questões de modelagem do sistema, quando comparada à modelagem como sistema de objetos. Se na modelagem de sistemas orientada a objetos o uso de métodos formais bem estabelecidos é tido como, no mínimo, conveniente para o projetista do sistema, em termos de prevenção de erros e execução de propriedades desejadas no sistema [1], parece-nos que no caso da modelagem orientada a agentes o uso de métodos formais bem estabelecidos torna-se não menos obrigatório, devido à complexidade das questões envolvidas. Diversas metodologias de desenvolvimento de software têm sido propostas para dar suporte à adoção da abordagem orientada a agentes, assim definindo uma área específica da engenharia de software, conhecida como Engenharia de Software Orientada a Agentes [16]. Dentre estas metodologias estão GAIA [23], O-MaSE [6], MAS- CommonKADS [15], MessageUML [2], Tropos [12] e Prometheus [21]. Muitas das metodologias AOSE existentes atualmente surgem como modificaçõoes de metodologias orientadas a objetos já existentes, e existem ainda muitas lacunas no que se refere a aspectos particulares de sistemas multiagentes. Poucas metodologias utilizam métodos formais em seu desenvolvimento, e a especificação formal de organizações de sistemas multiagentes não foi, ainda, com-

22 Barbosa, Costa, Tedesco e Mota Uso de CSP na Especificação Formal do Nível Micro-Organizacional de SMAs pletamente definida como área de pesquisa na área de Engenharia de Software. Um importante aspecto nesta questão está relacionado aos aspectos sociais dos sistemas de agentes. Eles referem-se aos relacionamentos entre agentes e são importantes devido às questões centrais de agentes, como cooperação, competição, negociação, etc. Em particular, a organização social de um sistema deve ser vista como um aspecto central de um modelo orientado a agentes, porque ela define o conjunto de papéis que agentes podem desempenhar no sistema, o conjunto de possíveis relacionamentos que estes papéis podem ter, bem como caracteríscicas reguladoras do sistema, como normas, compromissos, acordos, etc. Na área de sistemas multiagentes, existem diversos estudos preocupados com a modelagem de sistemas de agentes, tais como MOISE+ [13], AGR [10], ISLANDER [9], OPERA [8] and PopOrg [18]. Neste artigo, exploramos a idéia de usar métodos formais padrões de Engenharia de Software para especificar a organizãção de sistemas multiagentes. Em particular, mostramos como CSP [14] [19] pode ser relacionado semanticamente ao modelo PopOrg, e verificamos algumas propriedades de parte da especificação micro-organizacional de um sistema exemplo, usando FDR [11]. Desta forma, usamos CSP para a especificação formal de alguns aspectos operacionais (comportamentos de papéis organizacionais e processos de troca entre papéis organizacionais) do nível micro-organizacional de sistemas que podem ser modelados através do modelo semântico PopOrg [3]. O artigo está estruturado da seguinte forma. A seção 2 apresenta a linguagem CSP. Na seção 3 o modelo PopOrg é resumido, destacando-se seu nível microorganizacional. A seção 4 define a conexão semântica entre traços CSP e comportamentos PopOrg. A seção 5 apresenta um estudo de caso usando CSP para a especificação formal de aspectos operacionais do modelo microorgnizacional de um sistema multiagente. Conclusões e trabalhos futuros são apresentados na seção A LINGUAGEM CSP CSP (Communicating Sequential Processes) é uma notação para a descrição de sistemas concorrentes nos quais os processos componentes interagem através de comunicação [19]. O modelo conceitual usado por CSP considera componentes, ou processos, como entidades independentes (autônomas) com interfaces particulares através das quais eles interagem com seu ambiente. A interface de um processo é descrita como um conjunto de eventos, cada um deles descrevendo um tipo particular de ação atômica que pode ser executada ou sofrida pelo processo. Esta interface pode ser relacionada à especificação estática de um processo, enquanto sua especificação dinâmica descreve como ele irá se comportar nesta interface. Como linguagem formal, CSP pode ser entendida através das semânticas: operacional, denotacional e algébrica [19]. No estilo denotacional, CSP pode ser interpretada em três níveis de detalhes: traces, falhas e falhasdivergências. Neste artigo fazemos uso do modelo de traces (que mostra a história dos eventos de cada processo em um dado sistema) para relacionar CSP com as estruturas organizacionais de sistemas multiagentes baseados em PopOrg. 3. O MODELO POPORG O modelo organizacional PopOrg de sistemas baseados em agentes foi proposto em [7] como uma base semântica para modelos formais de sistemas multiagentes com organizações dinâmicas. Sua proposta é capturar separadamente os dois aspectos de sistemas de agentes: suas populações e suas organizações. A população de um sistema baseado em agentes consiste do conjunto de agentes que nele habitam, juntamente com o conjunto de todos os comportamentos que estes agentes são capazes de realizar e o conjunto de processos de troca que eles podem ter. A organização de um sistema baseado em agentes é uma estrutura composta pelos papéis organizacionais e links organizacionais, onde um papel organizacional é definido em relação ao conjunto de processos organizacionais nos quais o agente está envolvido, e os links organizacionais entre um subconjunto de agentes são os processos que estes agentes executam dentro de processos organizacionais mais abrangentes. O modelo PopOrg é baseado na distinção entre as noções de descrições intensionais e extencionais de sistemas [18]. Descrições intensionais estão relacionadas a aspectos subjetivos, pertencendo ao funcionamento interno dos agentes que operam no sistema modelado (como normas, valores, etc.), enquanto descrições extencionais referem-se a aspectos objetivos, pertencendo ao funcionamento externo dos agentes (como ações executadas, objetos trocados, etc.). O modelo PopOrg concentra-se na representação de aspectos externos do sistema, e considera os aspectos intensionais como estrutura adicional, opcional, que é superimposta na extencional. Desta forma, este modelo é considerado um modelo mínimo de organização de sistemas multiagentes, pois ele representa apenas os componentes-chave de uma organização, permitindo que outros modelos mais complexos possam ser representados através dele. Em [3], este modelo foi estendido de forma a 14

23 Barbosa, Costa, Tedesco e Mota Uso de CSP na Especificação Formal do Nível Micro-Organizacional de SMAs contemplar a divisão entre os níveis micro e macroorganizacional de um sistema. O nível microorganizacional é onde ocorrem as interações organizacionais entre papéis individualizados, enquanto o nível macro-organizacional, é o nível onde unidades organizacionais (grupos de papéis) são introduzidas para permitir a estruturação da organização hierarquicamente, com as interações acontecendo entre estas unidades organizacioanais. Um par de relações de implementação define a forma na qual as unidades organizacionais são implementadas por conjuntos de papéis organizacionais e a forma na qual papéis organizacionais são implementados por agentes individuais da população. O modelo PopOrg com as estruturas micro e macro-organizacional (estrutura-ωω) é uma estrutura P OP ORG = (P OP, ORG, IMP ) onde P OP é a estrutura populacional, ORG ωω = (ORG ω, ORG Ω ) é a estrutura organizacional-ωω, sendo ORG ω o nível microorganizacional e ORG Ω o nível macro-organizacional, e IMP ωω = (IMP ω, IMP Ω ) é a relação de implementação de ORG ωω sobre P OP [4]. Seja Bh o universo dos comportamentos de papéis possíveis no modelo, e Ep o universo de todos os possíveis processos de trocas entre papéis, a estrutura microorganizacional de uma estrutura populacional POP é a estrutura ORG ω = (R ω, L ω, lc ω ), onde: R ω (Bh) é o conjunto dos papéis existentes na organização, onde um papel consiste de um conjunto de comportamentos que um agente que desempenha o papel pode executar. L ω R ω R ω Ep é o conjunto das ligações (links) que existem na organização entre pares de papéis, cada ligação especificando um processo de troca que os agentes que desempenham os papéis ligados podem realizar. lc ω : R ω R ω (L ω ) é a capacidade de ligação de pares de papéis, ou seja, o conjunto de ligações que os pares de papéis podem estabelecer entre eles. A seguir, explicamos como CSP pode ser usado para a especificação dos conjuntos R ω e L ω de sistemas multiagentes baseados em PopOrg. 4. A RELAÇÃO ENTRE TRACES CSP E COMPORTAMENTOS POPORG Para fazer uso significativo da linguagem CSP como formalismo para a especificação de papéis e processos de troca da estrutura micro-organizacional de modelos PopOrg, deve-se ter certeza de que as propriedades dos 15 programas CSP escritas como uma especificação organizacional são preservadas quando transformadas em implementações PopOrg. Na teoria de CSP [19], a preservação de propriedades entre especificações e implemantações é garantida através da relação de refinamento entre os dois modelos semânticos envolvidos: é garantido que o modelo mais refinado herda propriedades do modelo que ele refina. Neste artigo é utilizado o modelo semântico básico de CSP, modelo de traces, observando-se como é possível contruir o modelo comportamental PopOrg como refinamento do modelo de traces de CSP. Isto é suficiente para estabelecer que qualquer propriedade de segurança (safety) provada verdadeira na especificação CSP é também verdadeira para qualquer implementação PopOrg daquela especificação. A figura 1 apresenta a relação entre a linguagem CSP e o modelo PopOrg. As setas curvas mostram que papéis e ligações são compostos de comportamentos e processos de troca e estão incluídos nas capacidades de ligações COMPORTAMENTOS POPORG Assuma que T seja uma estrutura de tempo linear discreta e A, o universo finito de ações a partir das quais são definidos os comportamentos organizacionais. Um comportamento de um papel organizacional PopOrg é uma sequência indexada no tempo de subconjuntos de ações b : T (A) da forma b = {0 α, 1 β,...}, cada subconjunto α, β,... (A) indicando um possível conjunto de ações que o papel organizacional que executa o comportamento b pode realizar no tempo t T. O conjunto de todos os comportamentos organizacionais é denotado por Bh = [T (A)]. Um processo de troca PopOrg, entre dois papéis organizacionais, é uma sequência, indexada no tempo, de pares de subconjuntos de ações, e : T (A) (A), cada par de subconjuntos e(t) (A) (A) indicando o conjunto de ações que cada papel organizacional pode executar no tempo t, quando eles estão interagindo. O conjunto de todos os processos de troca organizacionais é denotado por Ep = [T (A) (A)]. Assim, por exemplo, assumindo que A = {a, b, c,...} e que T = (0, 1, 2,...), temos que b = {0 {a}, 1, 2 {b, c}, 3 {b}, 4, 5 {a, c},...} pode ser um comportamento PopOrg que escolhe aleatoriamente executar no instante zero, uma ou duas ações obtidas do subconjunto {a,b,c} e que e = {0 ({a}, ), 1 (, {b, c}), 2 ({a}, ), 3 (, {b, c}),...} pode ser um processo de troca onde os dois papéis organizacionais envolvidos alternam suas ações, o primeiro papel sempre executando a ação a quando ele age e o segundo executando simultaneamente as ações b e c quando age.

24 Barbosa, Costa, Tedesco e Mota Uso de CSP na Especificação Formal do Nível Micro-Organizacional de SMAs Figura 1. Conexão entre CSP e PopOrg 4.2. O SUBCONJUNTO DE CSP USADO PARA ES- PECIFICAR COMPORTAMENTOS ORGANIZACIONAIS Para esta análise foi considerado apenas um subconjunto dos construtores da linguagem CSP [14] [19]. O único programa primitivo é o programa de deadlock STOP. Para introduzir sequencialidade em programas CSP, usamos o construtor de prefixo. Para introduzir não-determinismo e concorrência entre dois ou mais processos, utilizamos os operadores de escolha externa ( ) e entrelaçamento ( ). No modelo PopOrg, os comportamentos organizacionais são sequências de conjuntos de ações que papéis organizacionais podem realizar. Desta forma, especificações CSP devem ter o alfabeto = (A). Nós fazemos uso do construtor de prefixo na forma α P, com α (A). Entretanto, por conveniência, permitimos que {a} P seja denotado por a P A SEMÂNTICA DE COMPORTAMENTOS DE CSP A semântica PopOrg de CSP é uma semântica de timed traces. Entretanto, ela difere da semântica de timed traces de Timed CSP [5], pois timed traces PopOrg são completos, no sentido em que eles denotam explicitamente todos os conjuntos de ações que são possíveis em cada instante de tempo, enquanto os traces de Timed CSP apenas denotam explicitamente os tempos em que as ações ocorreram. Por outro lado, quando definimos o conjunto de comportamentos PopOrg que correspondem a um programa CSP, sabemos que o sequenciamento abstrato de ações prescritas pelo programa CSP não é traduzido em um sequenciamento temporal rígido. Ou seja, nós garantimos que um número arbitrário de eventos ociosos pode ser inserido entre quaisquer dois eventos concretos, tal que qualquer expressão seja interpretada como um conjunto infinito de comportamentos PopOrg. Desta forma, a semântica dos programas CSP que modelam comportamentos PopOrg é dada pela função bhs t : CSP (Bh), que modela um programa CSP como um conjunto de comportamentos organizacionais PopOrg, partindo do tempo 0. Para definir bhs t, são adotadas as seguintes notações: 16 para qualquer comportamento b = {t α, t + 1 β,...}, o deslocamento de t por k unidades de tempo é definido por: b k = {t+k α, t+k +1 β, t+k +2 γ,...}, para todo k tal que t + k 0. para qualquer evento comportamental {t α}, a exponenciação {t α} n do evento é dada por: {t α} 0 = {t α} n = {t α} {t + 1 α}... {t + n 1 α} = {t α, t + 1 α,..., t + n α}, se n 1 para quaisquer comportamentos b 1 e b 2, iniciando no tempo t, seu entrelaçamento b 1 b 2 é definido por: b 2 = b 2 b 1 = b 1 {t α} b 1 {t β} b 2 = {{t α} b b (b (+1) 1 {t+1 β} b (+2) 2 )} {{t β} b b ({t+1 α} b (+2) 1 b (+1) 2 )} {{t α β} b b (b (+1) 1 b (+1) 2 )} A função semântica bhs t é definida por: bhs t (ST OP ) = {{t, t + 1, t + 2,...}}

25 Barbosa, Costa, Tedesco e Mota Uso de CSP na Especificação Formal do Nível Micro-Organizacional de SMAs bhs t (α P ) = {{t } n {t + n α} b b bhs t+n+1 (P ), n 0} bhs t (α P β Q) = {{t } n {t + n α} b b bhs t+n (P β Q), n 0} {{t } n {t + n β} b b bhs t+n (α P Q), n 0} bhs t (P Q) = {b P b Q b P bhs t (P ), b Q bhs t (Q)} Denotamos bhs 0 (P ) simplesmente por bhs(p ). Alguns exemplos são apresentados a seguir: bhs(a ST OP ) = { {0 {a}, 1, 2,...}, {0, 1 {a}, 2, 3,...}, {0, 1, 2 {a}, 3, 4,...},... } bhs({a, b} c ST OP ) = { {0 {a, b}, 1 {c}, 2, 3,...}, {0 {a, b}, 1, 2 {c}, 3, 4,...}, {0 {a, b}, 1, 2, 3 {c}, 4, 5...},..., {0, 1 {a, b}, 2 {c}, 3, 4,...}, {0, 1 {a, b}, 2, 3 {c}, 4, 5,...},..., {0, 1, 2 {a, b}, 3 {c}, 4, 5...}, {0, 1, 2 {a, b}, 3, 4 {c}, 5,...},..., } bhs(a ST OP b ST OP ) = { {0 {a}, 1, 2,...}, {0 {b}, 1, 2,...}, } bhs(a ST OP b ST OP ) = { {0 {a}, 1, 2,...}, {0 {b}, 1, 2,...}, {0 {a}, 1 {b}, 2,...}, {0 {b}, 1 {a}, 2,...}, {0 {a}, 1, 2 {b},...}, {0 {b}, 1, 2 {a},...},..., {0, 1 {a}, 2,...}, {0, 1 {b}, 2,...}, 17 {0, 1 {a}, 2 {b},...}, {0, 1 {b}, 2 {a},...}, {0, 1 {a}, 2, 3 {b},...}], {0, 1 {b}, 2, 3 {a},...},..., } Fazemos uso da notação [.] para o conjunto de todas as diferentes associações temporais de um dado comportamento, tal que bhs({a, b} c ST OP ) é denotado simplesmente por: bhs({a, b} c ST OP ) = {[0 {a, b}, 1 {c}]} E, sendo P = a P e Q = b Q, temos: bhs(p ) = { [0 {a}, 1 {a}, 2 {a},...], } bhs(q) = { [0 {b}, 1 {b}, 2 {b},...], } bhs(p ; Q) = { [0 {a}, 1 {a}, 2 {a},...], } bhs(p Q) = { [0 {a}, 1 {a}, 2 {a},...], [0 {b}, 1 {b}, 2 {b},...], } bhs(p Q) = { [0 {a}, 1 {a}, 2 {a},...], [0 {b}, 1 {a}, 2 {a},...], [0 {a, b}, 1 {a}, 2 {a},...], [0 {a}, 1 {b}, 2 {a},...], [0 {a}, 1 {a, b}, 2 {a},...], [0 {b}, 1 {b}, 2 {a},...], [0 {a, b}, 1 {a, b}, 2 {a},...],..., [0 {b}, 1 {b}, 2 {b},...], [0 {a}, 1 {b}, 2 {b},...], [0 {a, b}, 1 {b}, 2 {b},...], [0 {b}, 1 {a}, 2 {b},...], [0 {b}, 1 {a, b}, 2 {b},...], [0 {a}, 1 {a}, 2 {b},...], [0 {a, b}, 1 {a, b}, 2 {b},...],..., [0 {a, b}, 1 {a, b}, 2 {a, b},...], }

26 Barbosa, Costa, Tedesco e Mota Uso de CSP na Especificação Formal do Nível Micro-Organizacional de SMAs Claramente, para cada programa CSP existe um mapeamento do seu conjunto de comportamentos PopOrg para seu conjunto de traces, abstraindo-se a relação temporal dos eventos de comportamento: para cada comportamento do programa CSP, da forma {0 α 0, 1 α 1, 2 α 2,...}, existe um trace daquele programa, da forma α i0, α i1, α i2,..., tal que todos os eventos α k no trace são não-vazios, α k, e o trace é tal que, para quaisquer dois de seus eventos α j e α k, se k<j, então os eventos de comportamento t k α k e t j α j estão no comportamento e t k < t j. Nota-se, então, que a semântica PopOrg de CSP dá uma semântica de programa que é um refinamento da semântica de traces. A relação de refinamento entre interpretações CSP tem a propriedade de permitir a interpretação mais refinada herdar as propriedades de programas provadas através da interpretação mais abstrata. Assim, todas as propriedades de programas CSP provadas usando a semântica de traces, são herdadas pela interpretação PopOrg daquele programa, mostrando que programas CSP podem ser usados para a especificação de partes operacionais (comportamentos de papéis e processos de troca) do modelo micro-organizacional PopOrg. 5. UM ESTUDO DE CASO Para o estudo prático da adequabilidade de utilização de CSP para PopOrg, foi analisado o jogo VTEAM [20], um jogo de simulação para treinamento de gerentes de software com a ajuda de atores sintéticos. Neste jogo, o jogador (gerente) assume o papel de gerente de projeto cujo objetivo é conquistar uma missão estabelecida no início do jogo. Além do jogador, existem outros dois tipos de personagens no VTEAM: os membros de equipe e o cliente. Membros de equipe são personagens autônomos, capazes de interagir com os outros a fim de executar as atividades atribuídas a eles pelo gerente de projeto. O cliente é responsável por aceitr as entregas finais produzidas pelo projeto, aprovando ou não os produtos. Em nosso experimento, escolhemos uma cena particular do jogo e descrevemos em CSP as interações entre Gerente e Membros de Equipe em relação à alocação e realocação de atividades, reuniões e pedidos de ajuda. Para verificar as propriedades de comportamentos organizacionais do jogo, foi utilizada a linguagem CSP M e o verificador de modelos FDR2 [11]. O exemplo a seguir mostra a especificação CSP do papel Gerente. Gerente(e,t) = t!={} & ( ~ ( ~ (alocaatividade.ag!at->gerente(e,(diff(t,{at})))))) [] (negaatividade?ag1?at-> ~ realocaatividade.ag1!at.ag2-> desalocaatividade.ag1!at->alocaatividade.ag2!at-> Gerente(e,t)) [] reuniaoacompanhamento?n:{me} -> Gerente(RA,t) [] e == RA & (emreuniao->gerente(e,t) [] fimreuniaoa->gerente(w,t)) [] (reportapt?ag1?at -> ~ realocaatividade.ag1!at.ag2-> desalocaatividade.ag1!at->alocaatividade.ag2!at-> Gerente(e,t)) [] t == {} & fimjogo -> SKIP onde t = {at 1, at 2, at 3, at 4,..., at n } e ME = {0, 1, 2, 3} são o conjunto de tarefas e os índices dos Membros de Equipe, respectivamente. Os traces do processo Gerente são os seguintes: T races(gerente) = {, τ, τ, τ, τ, τ, alocaatividade, τ, τ, alocaatividade, negaatividade, τ, τ, alocaatividade, negaatividade, τ, realocaatividade,, τ, τ, alocaatividade, negaatividade, τ, realocaatividade, τ, desalocaatividade, τ, τ, alocaatividade, negaatividade, τ, realocaatividade, τ, desalocaatividade, alocaatividade,..., reuniaoacompanhamento, reuniaoacompanhamento, emreuniao, reuniaoacompanhamento, f imreuniao, reuniaoacompanhamento, f imreuniao, alocaatividade,..., } Para traduzir os traces do papel Gerente para comportamentos PopOrg correspondentes, é necessário substituir cada evento τ pela ação correspondente (e.g. o primeiro τ refere-se à escolha interna ag2 : diff(me, ag1), que corresponde à escolha de um agente, então é substituído por escolheagente). Bh G = { [t 0 escolheagente, t 1 escolhet arefa, t 2 alocaatividade,...],..., [t 0 solicitareuniaoacompanhamento, t 1 emreuniao,...], [t 0 solicitareuniaoacompanhamento, t 1 fimreuniaoa,...],... } 18 Este conjunto de comportamentos coincide com o re-

27 Barbosa, Costa, Tedesco e Mota Uso de CSP na Especificação Formal do Nível Micro-Organizacional de SMAs sultado da função bhs: bhs(gerente) = { [0 {τ}, 1 {τ}, 2 {alocaatividade},...],..., [0 {solicitareuniaoacompanhamento}, 1 {emreuniao},...], [0 {solicitareuniaoacompanhamento}, 1 {fimreuniaoa},...],... } O trecho em CSP a seguir mostra uma parte da especificação dos Membros de Equipe: MembEquipe(i,estado,l) = (#l <=3) & alocaatividade.i?at -> MembEquipe(i,estado,l^<at>) [] (l==<>) & fimjogo->skip [] (estado == I) and (l!= <>) & ( executaatividade!head(l) -> MembEquipe(i,W,l) [] negaatividade.i!head(l) -> desalocaatividade.i?at -> desaloca(i,estado,l,at,<>) [] desalocaatividade.i?at -> desaloca(i,estado,l,at,<>) [] reuniaoacompanhamento?n -> MembEquipe(i,RA,l) ) [] (estado == W) & ( (executandoatividade -> MembEquipe(i,W,l)) [] fimatividade -> MembEquipe(i,I,tail(l)) [] reuniaoacompanhamento?n -> MembEquipe(i,RA,l) [] dispersao -> MembEquipe(i,I,l) [] problemat -> MembEquipe(i,PT,l) ) [] (estado == RA) & ( emreuniao -> MembEquipe(i,RA,l) [] fimreuniaoa -> MembEquipe(i,I,l) ) Após definidos os conjuntos de comportamentos, podemos definir o conjunto de papéis do sistema, representado no PopOrg como: R ω = {Gerente, MembEquipe} A sincronização de eventos é representada em CSP pelos processos: MEs = i : 0..5 MembEquipe(i, I, <>) 19 V T EAM = Gerente(W, T arefas) T Ms onde MEs é o processo que sincroniza o evento fimjogo entre os Membros de Equipe e VTEAM mostra a sincronização dos eventos alocaatividade, desalocaatividade, reportapt, reuniaoacompanhamento e fimjogo entre Gerente e MembEquipe. Através da intersecção dos traces dos processos sincronizados em VTEAM, obtemos o trace { alocaatividade, desalocaatividade, reportap T, reuninaoacompanhamentoef imjogo }, onde cada evento representa uma troca entre Gerente e MembEquipe. Na notação PopOrg, os processos de troca (Ep) e as micro-ligações (L ω ) são representados por: Ep = {alocaatividade, desalocaatividade, reportat P, reuniao, f imjogo} L ω = {(Gerente, MembEquipe, alocaatividade), (Gerente, M embequipe, desalocaatividade), (Gerente, M embequipe, reportat P), (Gerente, M embequipe, reuniao), (Gerente, M embequipe, f imjogo), (M embequipe, M embequipe, f imjogo)} As capacidades de ligação são representadas por: lc ω (MembEquipe, MembEquipe) = {(M embequipe, M embequipe, f imjogo)} lc ω (Gerente, MembEquipe) = {(Gerente, M embequipe, alocaatividade), (Gerente, M embequipe, desalocaatividade), (Gerente, M embequipe, reportat P), (Gerente, M embequipe, reuniao), (Gerente, M embequipe, f imjogo)} Utilizamos a linguagem CSP M e o verificador de modelos FDR2 para verificar propriedades como deadlock, livelock e não-determinismo, bem como propriedades de segurança (safety properties) que podem ser verificadas através de refinamentos na semântica de traces. Alguns exemplos de propriedades de segurança são: i. VTEAM T pedeajuda.1.0 ->STOP ii. VTEAM \ diff(events,{ reuniaoacompanhamento }) T reuniaoacompanhamento?n -> STOP iii. VTEAM T alocaatividade.1.a1 -> STOP O primeiro exemplo verifica se um pedido de ajuda pode ocorrer no início do jogo. Obviamente esta propriedade é falsa, pois de acordo com a especificação,

28 Barbosa, Costa, Tedesco e Mota Uso de CSP na Especificação Formal do Nível Micro-Organizacional de SMAs um pedido de ajuda só pode ocorrer após a identificação de um problema técnico. A segunda propriedade é verdadeira, pois verifica se uma reunião pode ser solicitada a qualquer momento. Por fim, a terceira verificação analisa a possibilidade de alocação de atividades no início do jogo, o que também é verdadeiro. A verificação de propriedades deste tipo auxiliam o projetista a garantir a correção no projeto de organizações de SMAs, a partir dos requisitos apresentados, evitando a descoberta posterior de falhas. 6. CONCLUSÃO Neste artigo foi apresentado o uso de um método formal de Engenharia de Software, CSP, para a especificação de alguns aspectos organizacionais de um sistema multiagente. O artigo apresentou a adequabilidade de CSP como um formalismo para a espcificação de aspectos operacionais do nível micro-organizacional de modelos PopOrg (i.e., da especificação formal de comportamentos de papéis organizacionais e processos de trocas entre estes papéis). Esta viabilidade foi mostrada com a ajuda da função bh2tr e a relação de refinamento entre os modelos semânticos de CSP, que estabelecem a herança de propriedades válidas entre eles. Papéis e processos de troca de um sistema multiagente exemplo foram especificados em CSP e algumas propriedades da especificação (deadlock, livelock e nãodeterminismo) foram verificadas utilizando-se o verificador de modelos FDR2. Através da relação de refinamento elas mostraram-se válidas também para a implementação PopOrg daquela especificação. Os traces que o FDR2 produziu para os papéis e processos de troca foram traduzidos para mostrar a forma que eles assumem na implementação PopOrg da especificação. A próxima etapa deste trabalho consiste em explorar o uso de CSP para trabalhar com a idéia de interações entre unidades organizacionais e a utilização de outros formalismos para a representação da estrutura de uma organização de SMAs. Referências [1] D. Bjørner. Software Engineering I. Springer Science, [2] G. Caire, W.Coulier, F. Garijo, J. Gomez, J. Pavon, F. Leal, P. Chainho, P. Kearney, J. Stark, R. Evans, and P. Massonet. Agent oriented analysis using message/uml. In M. J. Wooldridge, G. Weiss, and P. Ciancarini, editors, Agent-Oriented Software Engineering II, volume 2222 of Lecture Notes in Computer Science, pages , Berlin Heidelberg, Springer Verlag. [3] A. C. R. Costa and G. P. Dimuro. Introducing social groups and group exchanges in the poporg model. In AMAS 09: Proceedings of The 8th International Conference on Autonomous Agents and Multiagent Systems, pages , Richland, SC, International Foundation for Autonomous Agents and Multiagent Systems. [4] A. C. R. Costa and G. P.Dimuro. A minimal dynamical mas organization model. In V. Dignum, editor, Handbook of Research on Multi-Agent Systems: Semantics and Dynamics of Organizational Models, pages , Hershey, IGI Global. [5] J. Davies and S. Schneider. A brief history of timed csp. Theoretical Computer Science, 138(2): , [6] S. A. Delloach. Engineering organization-based multiagent system. In A. Garcia et al., editor, International Workshop on Software Engineering for Large-Scale Multi-Agent Systems (SELMAS 05), volume 3914 of Lecture Notes in Computer Science, pages , St. Louis, MO, Berlin, Springer. [7] Y. Demazeau and A. C. R. Costa. Populations and organizations in open multi-agent systems. In Proceedings of the 1st. National Symposium on Parallel and Distributed AI (PDAI 96), Hyderabad, India, [8] V. Dignum. A model for organizational interaction: based on agents, founded in logic. PhD thesis, Utrecht University, Utrecht, [9] M. Esteva, D. Cruz, and C. Sierra. Islander: an electronic institutions editor. In Proceedings of the First International Joint Conference on Autonomous Agents and MultiAgent Systems (AAMAS 2002), pages , Bologna, [10] J. Ferber, O. Gutknecht, and F. Michel. From agents to organizations: an organizational view of multiagent systems. In P. Giorgini, J. Muller, and J. Odell, editors, Agent-Oriented Software Engineering VI, volume 2935 of Lecture Notes in Computer Science, pages Springer Verlag, [11] Formal Systems (Europe) FSE. Failures-divergence refinement: Fdr2 user manual,

29 Barbosa, Costa, Tedesco e Mota Uso de CSP na Especificação Formal do Nível Micro-Organizacional de SMAs [12] P. Giorgini, M. Kolp, J. Mylopoulos, and M. Pistore. The tropos methodology: An overview. In M.- P. Gleizes Bergenti and F. Zambonelli, editors, The Tropos Methodology: An Overview, Methodologies And Software Engineering For Agent Systems, page 505. Kluwer Academic Press, New York, [23] F. Zambonelli, N. Jennings, and M. Wooldridge. Developing multiagent systems: The gaia methodology. ACM Transactions on Software Engineering and Methodology, 12(3): , [13] J. F. Hübner and J. S. Sichman. Organização de sistemas multiagentes. In F. Osório R. Vieira and S. Rezende, editors, III Jornada de Mini-Cursos de Inteligência Artificial (JAIA 03), volume 8 of III Jornada de Mini-Cursos de Inteligência Artificial (JAIA 03), pages , Campinas, Brasil, Campinas, SBC. [14] C. A. R. Hoare. Communicating Sequential Processes. Prentice Hall, New York, [15] C. A. Iglesias, M. Garijo, J. C. González, and J. R. Velasco. Analysis and design of multiagent systems using mas-commonkads. In Intelligent Agents IV Agent Theories, Architectures, and Languages, volume 1365 of Lecture Notes in Computer Science, pages Berlin, Springer, [16] N. Jennings and M. Wooldridge. Agent-oriented software engineering. In J. Bradshaw, editor, Handbook of Agent Technology. AAAI/MIT Press, [17] N. R. Jennings. An agent-based approach for building complex software systems. Communications ACM, 44(4):35 41, [18] A. C. R.Costa and G. P. Dimuro. Semantical concepts for a formal structural dynamics of situated multiagent systems. In Proceedings of COIN@Durham, pages 41 52, Durham, UK, Durham, University of Durham. [19] A. W. Roscoe. The theory and practice of concurrency. Prentice Hall, Englewood Cliffs NJ, [20] VTEAM. Projeto vteam [online], Disponível em: < Acesso em: setembro [21] M. Winikoff and L. Padgham. The prometheus methodology. In F. Bergenti, M-P. Gleizes, and F. Zambonelli, editors, Methodologies and Software Engineering for Agent Systems. The Agent-Oriented Software Engineering handbook, volume 11 of Multiagent Systems, Artificial Societies, and Simulated Organizations, pages Kluwer Publishing, [22] M. Wooldridge and N. R. Jennings. Intelligent agents: Theory and practice. Knowledge Engineering Review, 10: ,

30 Sistema Tutor Inteligente PAT2Math: Proposta de Arquitetura Multiagente Fábio R Damasceno 1, Anderson da Cruz 1 & Patrícia A. Jaques 1 1 Programa Interdisciplinar de Pós Graduação em Computação Aplicada Universidade do Vale do Rio dos Sinos Av. Unisions, s/n - São Leopoldo - RS - BRAZIL fabiorafaeldamasceno@gmail.com, anderson@a29.com.br, pjaques@unisinos.br Abstract As the development of an Intelligent Tutor System (ITS) is a quite complex, it should be modularized for its complexity reduction and better problem comprehension. A multi-agent approach has been applied in the conception of ITSs, as it allows to share specific roles in specialised agents. In this way, this article presents the analysis process steps of the ITS PAT2Math architecture, that was built under a multi-agent approach. This architecture was projected following the Prometheus Methodology. Keywords: Multi-Agent System, Intelligent Tutoring Systems, Affective Computing 1. INTRODUÇÃO Sistemas Tutores Inteligentes STI (ou Intelligent Tutoring Systems) são sistemas computadorizados que possuem modelos instrucionais responsáveis por especificar o que lecionar, bem como estratégias de aprendizado para fazê-lo. Uma característica fortemente presente nestes sistemas é a capacidade de se adaptar dinamicamente o conteúdo apresentado ou o estilo de ensino. Tal ensino individualizado para o aluno fornece benefícios semelhantes aos do um professor particular, considerado o melhor caso para aprendizado [12]. Este trabalho apresenta a proposta de arquitetura multiagente para o STI PAT2Math (Personal Affective Tutor To Math). Este sistema tem como objetivo o ensino de álgebra elementar a alunos do ensino fundamental em um ambiente capaz de considerar as emoções do aluno. Métodos usados por uma arquitetura inteligente podem diferir daqueles usados em uma sala de aula convencional, causando conflitos de aprendizado por parte dos estudantes, tornando necessária uma análise criteriosa do 22 projeto. O desenvolvimento do modelo cognitivo da arquitetura é considerado a tarefa mais importante e a que consome maior tempo do projeto, sendo necessário extenso trabalho e envolvendo um certo grau de dificuldade. Os tópicos descritos na seção 2 deste artigo retratam pontos importantes que devem ser considerados durante um projeto de um sistema tutor inteligente, abrangendo detalhes de conteúdo e arquitetura de tais sistemas. O foco do presente artigo se concentra no projeto da arquitetura multiagente a ser utilizada para concretizar o sistema proposto. Maiores detalhes sobre a proposta do STI PAT2Math podem ser encontrados em [10]. Este artigo encontra-se organizado como segue. A seção 2 aborda os tópicos sobre modelagem de STI, área em que o PAT2Math se enquadra. A seção 3 apresenta uma introdução a ontologias, como podem ser representadas e seu benefícios. Na seção 4 são comentadas as características e aspectos positivos da metodologia para desenvolvimento do sistema multiagente (SMA) Prometheus. Na seção 5 é apresentada a arquitetura proposta para atender os objetivos do projeto, mostrando os agentes, suas respectivas bases de dados, mensagens e papéis desempenhados. Os protótipos desenvolvidos são apresentados na seção 6. Trabalhos relacionados são apresentados na seção 7. Conclui-se este estudo na seção MODELAGEM DE SISTEMAS TUTO- RES INTELIGENTES Dentro de um STI, o aluno possui um ambiente interativo, onde pode melhor exercitar os passos das lições que acompanhou e exercitou. Com o objetivo de proporcionar a devida ajuda e esclarecimento de conteúdos aos seus usuários e organizar os dados do sistema, o conheci-

31 Fábio R. Damasceno, Anderson da Cruz and Patrícia A. Jaques Sistema Tutor Inteligente PAT2Math: Proposta de Arquitetura Multiagente mento é dividido internamente nos STIs em três modelos: Expert, Student e Instructional Model [14]. No Expert Model são mapeados todos os conhecimentos relativos aos conteúdos propostos para aprendizado. Trata-se da representação do conhecimento de um especialista no assunto, assim permitindo que o STI compare as habilidades e saberes do estudante com este modelo, avaliando o que este sabe sobre o assunto. Em casos onde o ambiente é mais realístico, o modelo pode avaliar cada uma das ações realizadas pelo aluno, usando, por exemplo, como comparação máquinas de estado que representam os estágios do aprendizado [14]. Por fim, o Instructional Model habilita o STI a ensinar o aluno, através de estratégias adequadas a cada situação, se baseando em dois elementos informações sobre o aluno no seu respectivo modelo e o assunto sendo tratado no sistema. Por exemplo, avaliando o cenário onde o aluno é considerado iniciante em um assunto, o sistema poderia mostrar procedimentos passo-a-passo e explicações mais detalhadas dos conceitos básicos em um primeiro momento. Posteriormente, o sistema deixaria o estudante explorar simulações e exercícios e somente ofereceria ajuda quando requisitado. Atualmente, muitos dos sistemas de ensinoaprendizagem têm usado a tecnologia de agentes na sua concepção. Nesta abordagem orientada a agentes, a arquitetura modular do STI é substituída por uma sociedade de agentes, denominada Sistema Multiagente (SMA), que trabalham de forma cooperativa e em background como parte da arquitetura do ambiente educacional. Esses agentes são usados para facilitar a construção modular da arquitetura de sistemas tutores e comunicação entre estes módulos. Um STI formado por agentes também é denominado de Agente Pedagógico ou Ambiente Inteligente de Aprendizagem. Na literatura de Inteligência Artificial Distribuída (IAD) encontram-se diversas acepções para o termo agente. Uma compilação dessas acepções nos leva a definição proposta por Shoam [17]. Segundo o autor, um agente de software é uma entidade que funciona autônoma e continuamente em um ambiente particular sempre habitado por outros agentes e processos. O termo autonomia não é muito preciso e é empregado no sentido que o agente realiza as suas atividades sem a intervenção constante de uma pessoa. Uma sociedade de agentes que interagem para resolver um problema em comum é chamado de SMA. Em um SMA, os agentes devem possuir algumas capacidades específicas para interagirem num mesmo ambiente [11] [18]. Eles devem ter conhecimento da sua própria existência, assim como da existência dos outros agentes. Eles devem ser capazes de se comunicar possuindo, para tanto, uma linguagem específica. Cada agente deverá possuir conhecimentos e habilidades para executar uma determinada tarefa e, portanto, devem cooperar para atingir um objetivo global. Todos esses aspectos fazem importante a utilização de uma metodologia para a concepção da arquitetura multiagente, tal como, a metodologia Promotheus (ver seção 5). Uma área de estudo que está ganhando força e despertando interesse da comunidade acadêmica é a inserção de Ontologias como ferramenta para organização de conhecimento e tomadas de decisão em STIs. A análise desse recurso é feita na seção a seguir [5]. 3. ONTOLOGIAS Ontologia (com "O"maiúsculo) é a área da Filosofia que estuda a natureza da existência e a estrutura da realidade, atuando como uma especificação explícita de uma conceitualização [4]. Já o termo ontologia (com "o"minúsculo) se resume a categorização de tipos de elementos, relacionando estes com domínio estudado. Tratase de um termo frequentemente utilizado para se referir a compreensão semântica, a estrutura conceitual do conhecimento compartilhada por pessoas que participam em dado domínio. Em sistemas de Inteligência Artificial, o que existe de fato é o que pode ser representado [4]. Já em um ambiente da Web, no entanto, uma ontologia não é simplesmente um framework conceitual, mas sim uma estrutura concreta e sintática que modela a semântica de um domínio, em linguagem de máquina, compreensível por ela [5]. Atualmente a Web é estruturada para lidar com pessoas, termos de domínio e ainda tags HTML que são claramente compreensíveis por desenvolvedores e usuários, no entanto não possuem sentido algum para sistemas computadorizados, aplicações e/ou agentes. A estrutura XML vem mudando este conceito, porém seu layout lida primariamente com estrutura física dos documentos, além de sofrer com a falta de semântica presente em suas tags, que poderiam ser o meio de compreensão computacional [5]. É importante ressaltar que ontologias não são uma novidade no ambiente Web. Na realidade, um esquema metadata é na verdade uma ontologia especificando as características do conjunto de atributos físicos e/ou conceituais de determinados recursos [5]. O diferencial está na construção de linguagens e ferramentas de inferência de conhecimento, visto que uma ontologia pode especificar a semântica de recursos RESOURCE DESCRIPTION FRAMEWORK (RDF) E RDF VOCABULARY DESCRIPTION LAN- GUAGE SCHEMA (RDFS) Embora a hierarquia não seja uma característica determinante e sempre presente em ontologias, se trata de 23

32 Fábio R. Damasceno, Anderson da Cruz and Patrícia A. Jaques Sistema Tutor Inteligente PAT2Math: Proposta de Arquitetura Multiagente 24 um importante componente no seu modelo de representação, formalmente definido pelo Resource Description Framework (RDF) e RDF Vocabulary Description Language Schema (RDFS). Tais modelos suportam reuso de elementos de qualquer ontologia ou esquema de metadados que pode ser identificado por um URI (Uniform Resource Identifier) [5]. O RDF define um modelo e conjunto de elementos para descrever recursos baseados em propriedades nominais e valores. Adicionalmente ele provê uma sintaxe que permite a qualquer comunidade de descrição de recursos criar uma representação específica do domínio com as suas respectivas semânticas, além da incorporação de elementos de distintos esquemas de metadados. Esse modelo, e sua sintaxe, pode ser usado para codificar informação em formato de linguagem de máquina, para troca de dados entre aplicações e processamento da semântica. O RDFS adicionalmente complementa e estende o RDF definindo uma linguagem de máquina declarativa e processável, que pode ser usado para formalmente definir uma ontologia ou conjunto de classes e suas respectivas propriedades. De forma cooperativa, fornecem um modelo sintático e estrutura semântica para definir ontologias processáveis por máquina e esquemas de metadados, além de permitir interoperabilidade de estruturas representativas entre conjuntos heterogêneos de recursos [5]. Uma ontologia RDFS é diferente das taxonomias e estruturas de classificação clássicas, no entanto, no topo dos níveis da hierarquia a classe recurso e suas filhas classe e propriedade não são determinadas pelo domínio da ontologia, e sim pelo esquema RDFS [5]. Cada elemento presente nesta ontologia é um tipo de classe ou propriedade. Relações entre estas são potencialmente multihierárquicas, ou seja, uma classe podendo ser filha de uma ou mais classes superiores. Comparando tais estruturas com as ontologias RDFS percebe-se que a diferença mais significativa consiste em que estas últimas definem conjuntos de elementos que podem receber valores, para representar características físicas e conceituais de um determinado recurso, ao contrário das estruturas classificativas simples, que lidam com entidades que são atribuídas a classes hierárquicas do sistema, não podendo também lidar com regras de inferência sobre o conteúdo. Uma ontologia não pode ser considerada como uma taxonomia, um esquema classificativo ou ainda um dicionário. Trata-se de um sistema representativo único, que integra em uma única estrutura as características de vários meios de representação, como os três últimos citados. A ontologia fornece a semântica básica para esquemas de metadados e facilita a comunicação entre sistemas e agentes através de um modelo conceitual de comunidade de usuários padronizado. Tais fatores descritos fornecem o fundamento conceitual que torna o objetivo da Web Semântica possível [5] BENEFÍCIOS DO USO DE ONTOLOGIAS Uma ontologia no cenário Web pode oferecer um meio conciso e sistemático para definir a semântica dos recursos presentes na rede. A visão desta Web Semântica é voltada para a distribuição de dados e serviços, definidos e unidos de uma maneira que podem ser usados por máquinas e não apenas para propósitos de visualização, além de permitir a automação, integração e reusabilidade de dados e serviços entre várias aplicações [4]. Uma ontologia especifica conceitos do domínio relevantes, possíveis relações e propriedades destes. Dessa forma, proporciona a possibilidade de processar recursos baseando-se na interpretação do seu conteúdo, ao invés da estrutura física do mesmo. As informações pedagógicas relevantes contidas em uma ontologia podem aprimorar Web Services em geral, aumentando sua precisão. Isso se deve à possibilidade de se prever durante o design dos mesmos, funcionalidades distintas dependendo do tipo de recurso sendo abordado, analisando-se as informações de uma ontologia. A composição de serviços também é beneficiada com estas informações, tendo em vista que o serviço requester pode necessitar de diferentes ações de um provedor, com base no tipo instrucional do recurso. Por fim, tem-se a interoperabilidade facilitada, pois na teoria cada sistema poderia proporcionar o seu próprio serviço especializado e fazer uso de serviços oferecidos por outros [20]. Em um sistema de ensino, um Gerador de Cursos une recursos de aprendizagem em um currículo, levando em consideração o estado e objetivos do aprendiz, suas preferências, entre outros. Se recursos extras são mapeados por uma função instrucional externa ao sistema, podem ser incluídos em cada um dos currículos disponíveis. A seleção de determinados conjuntos de recursos também pode ser mais precisa com o uso conjunto de tal ontologia [20]. Na arquitetura de um sistema de ensino, que armazena preferências pessoais e informação sobre o estudante em um Modelo de Estudante, tais ontologias podem utilizar a informação contida nelas para a atualização mais precisa dos dados referentes ao aluno [20]. 4. METODOLOGIA Prometheus A metodologia Prometheus é uma abordagem consistente para construção de sistemas multiagente, consistida de três fases distintas: Especificação do Sistema, Design Arquitetural e Design Detalhado. Na primeira fase, Especificação do Sistema, são analisados os fatores de entrada (inputs), saída (outputs), e repositórios de dados (data sources), sejam compartilha-

33 Fábio R. Damasceno, Anderson da Cruz and Patrícia A. Jaques Sistema Tutor Inteligente PAT2Math: Proposta de Arquitetura Multiagente dos ou não. Posteriormente, na fase de Design Arquitetural, usam-se os outputs para determinar que agentes irão existir no sistema, bem como as suas interações. Tendo isto concluído, a fase de Design Detalhado pode ser iniciada, onde é avaliado internamente como cada agente irá concluir as suas tarefas [15]. O desenvolvedor ao utilizar esta metodologia deve considerar alguns fatores importantes na modelagem do seu respectivo SMA [15]: Informações provenientes do ambiente do sistema são consideradas percepções do agente; e, posteriormente, enviá-los para tomada de decisão do Tutor. Adicionalmente, este AI é encarregado de mostrar tópicos e informações na tela do sistema. O diagrama, que pode ser visualizado na Figura 1, explica relação entre os agentes da arquitetura proposta, lembrando que o foco da implementação construída se concentra na interação do Agente Tutor (AT) com o AMC. Percebe-se com esta figura, a importância do AT, pois este atua como centro dos demais presentes na arquitetura, tomando decisões, repassando e processando dados. Mecanismos que podem afetar este ambiente são considerados ações que o agente pode tomar; Um evento não é considerado igual a uma percepção, trata-se de um conceito de maior importância para um agente; Nem tudo que ocorre no ambiente faz o agente alterar seus planos para alcançar um objetivo; Percepções necessitam de processamento por parte do agente para se tornarem um evento; e Tal processamento deve ocorrer no agente para ser considerada uma metodologia Prometheus. A metodologia Prometheus foi selecionada para este projeto por fornecer uma modelagem concreta de fatores relevantes a um SMA. Adicionalmente, a Prometheus fornece uma interface sólida para a fase de Design da metodologia, tornando claro para uma equipe de desenvolvimento os avanços realizados em cada versão do sistema. 5. TRABALHO PROPOSTO Existem cinco agentes que compõem atualmente a arquitetura multiagente deste projeto. Estes agentes correspondem aos módulos da arquitetura tradicional de um sistema tutor inteligente. São eles: Agente Interface (AI), Agente Domínio (AD), Agente Tutor (AT), Agente Modelo de Aluno (AMA) e Agente Modelo Cognitivo (AMC). O papel do Tutor é analisar os atributos do estudante e selecionar uma explicação apropriada para o mesmo. O Agente de Domínio (AD) varre a sua base, onde todo o conhecimento e tópicos estão mapeados, enviando estes dados para o Tutor quando requisitado. O Agente Modelo de Aluno monitora as informações sobre o usuário conforme este interage com o sistema. O Agente do Modelo Cognitivo (AMC) atua como um especialista, sabendo resolver equações algébricas, tendo como papel verificar a consistência dos elementos de uma equação e resolver ela. Por fim, o AI é responsável por unir os dados sobre ações do usuário dentro do sistema Figura 1. Diagrama geral dos agentes O AD consulta na sua base de dados Objetos de Aprendizado conforme o AT solicita. O Agente de Modelo de Aluno pesquisa na sua respectiva base de informações dados sobre o aluno que atualmente utiliza o sistema, conforme o AT requisita informações, para criar um plano de ensino por exemplo. Já o AI recebe informações do Tutor para mostrar na tela, bem como informa a ele dados de uso do sistema, para que sejam encaminhados ao AMA, que atualiza a base de informações dos estudantes. Por fim o AMC retorna passos de solução de equações algébricas, analisando se determinados passos realizados pelo estudante fez estão corretos ou não PAPÉIS DOS AGENTES Esta seção apresenta a relação de papéis no sistema que cada um dos agentes presentes na arquitetura desempenha. De um total de cinco agentes, existem nove papéis que são trabalhados, sendo o AMA o que mais possui tais funções. O diagrama que pode ser visualizado na figura 2, mostra a relação de papéis no sistema que cada um dos agentes presentes na arquitetura desempenha. De um total de cinco agentes, existem nove papéis que são trabalhados, sendo o AMA o que mais possui tais funções. O Agente de Interface (AI) atua como: 25 Expositor de Dados para o Aluno: Toda e qualquer informação que o AT julgue necessário mostrar ao aluno é repassado a este agente, que mostra tais informações no formato especificado, seja na tela do computador ou em um navegador de celular;

34 Fábio R. Damasceno, Anderson da Cruz and Patrícia A. Jaques Sistema Tutor Inteligente PAT2Math: Proposta de Arquitetura Multiagente Figura 2. Diagrama de relação entre agentes com seus respectivos papéis Coletor de Informações de Usabilidade: Toda interação do usuário, que o Agente considere relevante, é mapeada e repassada ao Tutor, para que seja encaminhada à base de Modelo de Aluno. Outra característica é a conclusão de lições/exercícios, que devem ser atualizados como novos conhecimentos que o estudante em questão possui. O Agente de Modelo de Aluno (AMA) atua como: Recebedor de Dados do Aluno: Quando o AT recebe uma informação relevante sobre o aluno através do AI, este encaminha ao AMA. Atualizador de Dados do Aluno: Uma alteração sobre o estado do aluno, como ter lido com sucesso um determinado conteúdo, é alterada na Base de Modelo do Aluno através deste papel. Emissor de Dados do Aluno: Quando o AT requisita uma informação sobre o aluno que atualmente está utilizando o sistema, o Agente de AMA é responsável por encaminhar tais dados. O Agente de Modelo Cognitivo (AMC) atua como: Verificador de Equações: Quando um determinado aluno executa um passo durante a resolução de equação, o AT se encarrega de processar essa informação e enviar uma mensagem para o AMC para que este valide-a. Resolvedor de Equações: O AT pode julgar necessário mostrar a solução completa de uma equaçãoproblema que o estudante esteja trabalhando, enviando uma mensagem para o AMC para que este envie o conjunto de passos a serem executados para tal. O Agente de Domínio (AD) atua como: Localizador de Objetos de Ensino: O AT do sistema pode necessitar de um objeto de aprendizado 26 com características distintas, seja com um texto mais aprofundado, ou imagens mais explicativas. Neste momento, ele envia uma mensagem ao AD para que faça a devida varredura na Base de Domínio e retorne-o para a devida construção do plano de ensino por parte do AT. O Agente Tutor (AT) do Sistema atua como: Selecionador de Planos de Ensino: Informações do aluno, características dos Objetos de Aprendizado, disponibilidade de recursos, entre outros fatores são levados em consideração quando o AT vai criar um plano de ensino adequado ao aluno RELAÇÃO DAS BASES DE DADOS COM OS PA- PÉIS DOS AGENTES Esta seção mostra a relação das bases de conhecimento com os papéis dos agentes presentes na arquitetura do projeto proposto. Base Cognitiva de Resolução de Equações: Contém as regras para resolução de uma equação algébrica, organizadas em passos. É utilizada pelo AMC para resolução e validação de passos individuais no desenvolvimento de equações. É acionada sempre que este tenta resolver e validar passos realizados por alunos na resolução de uma equação. Base de Modelo Cognitivo do Aluno: Contém todos os dados relevantes sobre o aluno, tais como quais exercícios foram resolvidos e quais lições foram lidas dentro do sistema. Trata-se de uma base extremamente importante para o AT, pois esse a consulta para a criação de um plano de ensino mais eficiente para o aluno em questão. Tal base lida com o AMC, quando este executa os papéis de Atualizar Dados do Aluno, Emissor de Dados do Aluno e Recebedor de Dados do Aluno. Lida também com o Agente de Tutor, quando este recebe dados de usabilidade do sistema por parte do aluno, na execução do papel Coletor de Informações de Usabilidade. Planos de Ensino e Estratégias Pedagógicas: São bases com elementos comuns no projeto de um plano de ensino, possui estereótipos que o AT deve considerar ao derivar um plano personalizado para um determinado aluno. Interagem diretamente com o AT quando este executa seu papel de Selecionador de Planos de Ensino. Base de Domínio: Contém todas informações e explicações sobre os variados conteúdos contidos na arquitetura tutora do sistema proposta, sendo característica de tais objetos de aprendizado diversos níveis, para alunos distintos, com fatores cognitivos diferenciados em relação a tais conteúdos.

35 Fábio R. Damasceno, Anderson da Cruz and Patrícia A. Jaques Sistema Tutor Inteligente PAT2Math: Proposta de Arquitetura Multiagente 5.3. TROCA DE MENSAGENS ENTRE OS AGENTES No diagrama que pode ser visualizado na Figura 3 são retratadas as interações entre os agentes e suas respectivas bases de dados, através de mensagens. O Agente Tutor (AT) pode enviar as seguintes mensagens: Envia dados sobre Aluno: O AI encaminha informações sobre mudanças no comportamento e características do aluno, como um exercício concluído com sucesso que deve ser atualizado na sua base de conhecimentos. Consulta Base sobre Informações do Aluno: O AT pode requisitar ao AMA algum dado pertinente sobre o estudante que estiver usando o sistema em determinado momento. Isso seria usado na criação de um plano de ensino adequado ao aluno, por exemplo. Requisita resolução de Equação: O AT pode requisitar, através de uma mensagem, a resolução, por completo ou em parte, de uma equação-problema que o aluno esteja tentando solucionar. Requisita Busca de Conteúdo, baseado nos Dados do Aluno: O AT pode requisitar um determinado conteúdo para criação de um plano de ensino, baseando-se em características do aluno que está usando o sistema. Envia Conteúdo para Mostrar na Tela: O AT, ao receber um determinado Objeto de Aprendizado que havia requisitado ao AD, pode enviar tais informações para a tela através de uma mensagem para o AI. O Agente de Interface pode enviar as seguintes mensagens: Envia dados de interação do aluno com interface: Conforme o aluno interage dentro do sistema proposto, informações relevantes são repassadas ao Agente Tutor, para que este encaminhe ao Agente de Modelo do Aluno para a devida atualização, que reflete em maior precisão de dados no momento de criação de um plano de ensino, por exemplo. O Agente de Modelo de Domínio pode enviar as seguintes mensagens: Envia conteúdo solicitado pelo Agente Tutor: Quando o Agente Tutor requisita um determinado conteúdo, é retornado um Objeto de Aprendizagem condizente com a requisição através desta mensagem. Tal informação é processada a agregada em um plano de ensino que o Agente Tutor esteja criando, por exemplo. O Agente de Modelo Cognitivo (AMC) pode enviar as seguintes mensagens: Envia informação de resolução da base cognitiva: Quando o AT requisita a resolução ou validação de uma equação, o AMC envia os passos da solução/- validação através desta mensagem. O Agente de Domínio (AD) pode enviar as seguintes mensagens: Envia conteúdo solicitado pelo AT: Quando o AT requisita um determinado conteúdo, é retornado um Objeto de Aprendizagem condizente com a requisição através desta mensagem. O Agente de Modelo de Aluno (AMA) pode enviar as seguintes mensagens: Retorna informações sobre o aluno: Quando o AT requisita uma determinada informação sobre o aluno que está utilizando o sistema, o AMA retorna esta informação através desta mensagem. É utilizada na construção de planos de ensino por parte do AT. Para a inferência das causas de erro durante o aprendizado de álgebra e a devida formalização em trocas de mensagens entre os agentes propostos, um estudo de ontologias foi realizado. Para a construção desta está sendo utilizada a plataforma Protégé 4.0, onde é possível especificar todos os componentes relevantes na comunicação entre os agentes da arquitetura, bem como fatores que levam ao erro durante resolução de exercícios algébricos e foi implementado no framework JADE (Java Agent Development Framework) ESTRUTURA DAS MENSAGENS O Agente Tutor (AT), durante o processo de ensino ao estudante, pode requisitar ao Agente de Modelo Cognitivo (AMC) a resolução de uma determinada equação para verificar se um passo realizado pelo aluno está correto. Isso é realizado quando uma mensagem de sistema, contendo a string representando a equação, é encaminhada do AT para o AMC. É o próprio AMC que resolve as equações. Por fim, este último encaminha uma mensagem com a devida resolução. As mensagens seguirão o seguinte padrão: 27 Descrição das siglas dos dados IA - Identificação do aluno IC - Identificação da ação EI - Equação inteira OP - Operadores OF - Operação feita

36 Fábio R. Damasceno, Anderson da Cruz and Patrícia A. Jaques Sistema Tutor Inteligente PAT2Math: Proposta de Arquitetura Multiagente Figura 3. Arquitetura Multiagente do Pat2mathl RT - Resultado Operações possíveis: AD - Adição SB - Subtração DV - Divisão MT - Multiplicação MM - Mínimo Múltiplo Comum (MMC) DM - Distributiva em relação à multiplicação FC - Fator Comum (Colocar Termo em Evidência) QS - Produto Notável Quadrado da Soma QD - Produto Notável Quadrado da Diferença PS - Produto Notável Produto de uma soma indicada por uma diferença BK - Fórmula de Bhaskara OI - Operação Inversa / Oposta RZ - Raiz Quadrada (extrair) SP - Simplificação 6. IMPLEMENTAÇÃO Os códigos apresentados nesta seção foram desenvolvidos utilizando a linguagem java e a plataforma JADE. JADE (Java Agent Development Framework) é um framework implementado em sua totalidade na linguagem de programação Java, cujo objetivo é simplificar a construção de sistemas multiagente através de um middleware que está de acordo com as especificações da FIPA, além de um conjunto de ferramentas que permitem a depuração de código e desenvolvimento. Tal plataforma pode ser distribuída livremente entre máquinas, sem a necessidade de possuir o mesmo sistema operacional [6]. 28 A utilização deste framework se deu em decisões iniciais de projeto, e é portanto mantida até então. Os protótipos de agentes desenvolvidos neste trabalho foram baseados em exemplos existentes no livro Developing Multi-Agent Systems with JADE [3]. O código 1 mostra a implementação da classe RequestExplanationBehavior que é referente a um comportamento do Agente Tutor. Esta classe simula o momento em que o agente solicita ao Agente Modelo Cognitivo a resposta de uma determinada equação. O método action() envia solicitações de resolução de equações para o Agente Modelo Cognitivo em intervalos de tempo aleatórios. Este intervalo foi utilizado para que o Agente Modelo Cognitivo pudesse carregar todas as regras necessárias para resolver as equações da base de regras. 1 p u b l i c c l a s s R e q u e s t E x p l a n a t i o n B e h a v i o r extends S i m p l e B e h a v i o u r { 2 p u b l i c RequestExplanationBehavior ( Agent a ) { 3 super ( a ) ; 4 c o u n t = 0 ; 5 } 6 7 p u b l i c void action ( ) { 8 t r y { 9 Random r = new Random ( ) ; 10 Thread. s l e e p ( r. n e x t I n t ( 1 0 ) * ) ; 11 ACLMessage msg = new ACLMessage ( ACLMessage.INFORM ) ; 12 msg. addreceiver (new AID ( " CongtiveModelAgent ", AID.ISLOCALNAME ) ) ; 13 s w i t c h ( count ) { 14 c a s e 0 : 15 msg. s e t C o n t e n t ( " IA : j o a o #IC : r e s o l v e E q u a c a o # EI : x+3=0 " ) ; 16 break ; 17 c a s e 1 : 18 msg. setcontent ( "IA : joao #IC : resolveequacao #EI :7x+1=0 " ) ; 19 break ; 20 c a s e 2 : 21 msg. setcontent ( "IA : joao #IC : resolveequacao #EI :4x+2=0 " ) ; 22 break ; 23 c a s e 3 : 24 msg. setcontent ( "IA : joao #IC : resolveequacao #EI :3x+2x 5=0" ) ; 25 break ; 26 c a s e 4 : 27 msg. s e t C o n t e n t ( " IA : j o a o #IC : r e s o l v e E q u a c a o # EI : x+3=0 " ) ; 28 break ; 29 c a s e 5 : 30 msg. setcontent ( "IA : joao #IC : resolveequacao #EI :8x 12=0" ) ; 31 break ; 32 default : break ; 33 } 34 count ++; 35 System. o u t. p r i n t l n ( " Mensagem e n v i a d a : " ) ; 36 System. o u t. p r i n t l n ( msg ) ; 37 System. o u t. p r i n t l n ( ) ; 38 myagent. send ( msg ) ; 39 } 40 catch ( E x c e p t i o n e ) { e. p r i n t S t a c k T r a c e ( ) ; } 41 } 42 p r i v a t e i n t count ; 43 p u b l i c boolean done ( ) { return count == 5 ; }

37 Fábio R. Damasceno, Anderson da Cruz and Patrícia A. Jaques Sistema Tutor Inteligente PAT2Math: Proposta de Arquitetura Multiagente 44 } Código 1. Classe RequestExplanationBehavior O código 2 mostra a implementação da classe SolveEquationBehavior que é referente ao comportamento que o Agente do Modelo Cognitivo adota quando recebe um questionamento sobre uma equação. É neste momento que a equação matemática é resolvida e retornada ao Agente Tutor. A linha 10 do código 2 mostra o momento em que o Agente Modelo Cognitivo recebe a mensagem solicitando a resolução de uma equação. Na linha vinte, o conteúdo da mensagem recebida é tratada. Na seqüência, o trecho da mensagem que é referente a equação a ser resolvida é passada como paramento ao resolvedor de equações, como pode ser visto na linha 28. Para resolver a equação, o resolvedor utiliza as regras que são carregadas no construtor da classe, linha 5. O resolvedor retorna um vetor com todos os passos necessários para resolver a equação. Este vetor é convertido para uma string no formato apresentado em 5.4 e remetido ao Agente Tutor, como pode ser visto na linha p u b l i c c l a s s S o l v e E q u a t i o n B e h a v i o r extends S i m p l e B e h a v i o u r { 2 p r i v a t e Resolvedor re s ol v e do r ; 3 p u b l i c SolveEquationBehavior ( Agent a ) throws Exception { 4 super ( a ) ; 5 resolvedor = new Resolvedor ( ) ; 6 } 7 8 p u b l i c void action ( ) { 9 t r y { 10 ACLMessage msg = myagent. receive ( ) ; 11 S t r i n g [ ] messagepart ; 12 S t r i n g ia, ic, e i ; 13 i a = i c = e i = " " ; 14 i f ( msg!= n u l l ) { 15 t h i s. r e s o l v e d o r. c l e a r R e s u l t ( ) ; 16 System. o u t. p r i n t l n ( " Mensagem Recebida " ) ; 17 System. o u t. p r i n t l n ( msg ) ; 18 System. o u t. p r i n t l n ( ) ; 19 m e s s a g e P a r t = msg. g e t C o n t e n t ( ). s p l i t ( " # " ) ; 20 f o r ( i n t i = 0 ; i < messagepart. length ; i ++) { 21 i f ( m e s s a g e P a r t [ i ]. s p l i t ( " : " ) [ 0 ]. e q u a l s ( " IA " ) ) 22 i a = m e s s a g e P a r t [ i ]. s p l i t ( " : " ) [ 1 ] ; 23 e l s e i f ( m e s s a g e P a r t [ i ]. s p l i t ( " : " ) [ 0 ]. e q u a l s ( " IC " ) ) 24 i c = m e s s a g e P a r t [ i ]. s p l i t ( " : " ) [ 1 ] ; 25 e l s e i f ( m e s s a g e P a r t [ i ]. s p l i t ( " : " ) [ 0 ]. e q u a l s ( " EI " ) ) 26 e i = m e s s a g e P a r t [ i ]. s p l i t ( " : " ) [ 1 ] ; 27 } 28 Vector <String > result = resolvedor. Solve ( ei ) ; 29 S t r i n g f u l l R e s u l t = " " ; 30 f o r ( S t r i n g expression : r e s u l t ) 31 i f (! e x p r e s s i o n. s t a r t s W i t h ( " # " ) ) 32 f u l l R e s u l t += "OP : " + e x p r e s s i o n + " # " ; 33 ACLMessage reply = msg. createreply ( ) ; 34 System. o u t. p r i n t l n ( " Mensagem de R e s p o s t a " ) ; 35 r e p l y. s e t C o n t e n t ( f u l l R e s u l t ) ; 36 System. o u t. p r i n t l n ( r e p l y ) ; 37 System. o u t. p r i n t l n ( ) ; 38 myagent. send ( r e p l y ) ; 39 } 40 } 41 catch ( E x c e p t i o n e ) { e. p r i n t S t a c k T r a c e ( ) ; } 42 } 43 } 5 p u b l i c void action ( ) { 6 ACLMessage msg = myagent. receive ( ) ; 7 i f ( msg!= n u l l ) { 8 System. o u t. p r i n t l n ( " R e s p o s t a " ) ; 9 S t r i n g [ ] p a r t s = msg. g e t C o n t e n t ( ). s p l i t ( " # " ) ; 10 f o r ( i n t i = 0 ; i < parts. length ; i ++) 11 System. o u t. p r i n t l n ( p a r t s [ i ] ) ; 12 System. o u t. p r i n t l n ( ) ; 13 } 14 } 15 p r i v a t e i n t count ; 16 p u b l i c boolean done ( ) { return count == 10; } 17 } Código 3. Classe SolutionBehavior O código 4 apresenta a implementação da classe que simula o Agente Tutor. Esta classe possui o método setup() que é responsável por configurar o Agente. Nesta implementação o método adiciona os dois comportamentos do Agente Tutor que estão sendo simulados, que são a requisição de resolução de equação mostrada no código 1 e o recebimento da solução, mostrada no código 3. A linha três pára a execução do processo por dez mil milissegundos para que o Agente do Modelo Cognitivo consiga carregar as regras para resolver as equações da sua base de regras. 1 p u b l i c c l a s s TutorAgent extends Agent { 2 p r o t e c t e d void setup ( ) { 3 t r y { 4 Thread. s l e e p ( ) ; 5 } catch ( InterruptedException e ) { 6 e. p r i n t S t a c k T r a c e ( ) ; 7 } 8 super. addbehaviour (new R e q u e s t E x p l a n a t i o n B e h a v i o r ( t h i s ) ) ; 9 super. addbehaviour (new S o l u t i o n B e h a v i o r ( t h i s ) ) ; 10 } 11 } Código 4. Classe Tutor Agent O código 5 mostra a implementação da classe que simula o Agente do Modelo Cognitivo. Assim como a implementação do Agente Tutor, esta classe possui um método setup() que adiciona ao agente a comportamento que recebe uma requisição para solucionar uma equação, resolve esta e remete ao Agente Tutor a solução. A implementação deste comportamento é apresentada no código 2. 1 p u b l i c c l a s s CongtiveModelAgent extends Agent { 2 p r o t e c t e d void setup ( ) { 3 super. addbehaviour (new S o l v e E q u a t i o n B e h a v i o r ( t h i s ) ) ; 4 } 5 } Código 5. Classe CongtiveModelAgent Código 2. Classe SolveEquationBehavior O código 3 mostra a implementação do comportamento do Agente Tutor responsável por receber a solução da equação enviada pelo Agente do Modelo Cognitivo. Para este protótipo, este comportamento apenas envia para a tela do console a mensagem recebida. 1 p u b l i c c l a s s S o l u t i o n B e h a v i o r extends S i m p l e B e h a v i o u r { 2 p u b l i c SolutionBehavior ( Agent a ) { 3 super ( a ) ; 4 } 7. TRABALHOS RELACIONADOS Algebrain é um Sistema Tutor Inteligente cujo objetivo é resolver uma equação para uma determinada variável. O sistema não se preocupa em mostrar uma única resposta final, ao invés disso mostra o processo todo da resolução. Integrado ao sistema existe um sistema especialista baseado em regras que simula os passos de um expert da área de resolução de equações, o que ele faria em cada caso. Este modelo cognitivo de um estudante 29

38 Fábio R. Damasceno, Anderson da Cruz and Patrícia A. Jaques Sistema Tutor Inteligente PAT2Math: Proposta de Arquitetura Multiagente ideal, que nunca erra, se encontra no servidor da aplicação web resolvendo equações junto com o usuário. Este está em contato freqüente com o Módulo Tutor que proporciona dicas de resolução assim como determina o grau de eficácia nos passos que o aluno faz para resolver uma equação e dar o feedback adequado a cada ocasião [1]. O trabalho proposto difere de outros STI Web, tal como Algebrain [1] por buscar uma melhoria na usabilidade da interface, enriquecendo a experiência do usuário através de páginas dinâmicas e execução de código em lado cliente. Além disso, PAT2Math será o primeiro STI capaz de considerar as emoções do usuário através de dispositivos próprios, capacitando o tutor a agir ativamente ao estado do aluno, incentivando-o através de fala, gestos, expressões faciais e corporais, facilitando a comunicação tutor-aluno. Além disso, embora o Algebrain também utilize um sistema especialista para auxiliar alunos na resolução de equações, ele não é capaz de detectar as concepções errôneas dos mesmos. O ActiveMath é um sistema tutor inteligente cuja a abordagem pedagógica do sistema consiste na livre interação do aluno com as lições propostas, construindo o seu aprendizado. Visa o ensino individual, onde se pode optar por quais tarefas executar, bem como em qual ordem. O ActiveMath baseia-se em conteúdos que se adaptam ao aluno e suas necessidades. A arquitetura do ActiveMath tem como princípio básico a separação de conteúdos e funcionalidades, bem como a devida diferenciação entre tipos de conhecimento. As regras pedagógicas de ensino são armazenadas na Base Pedagógica de Regras, não interferindo nas informações de aluno, armazenadas no Modelo de Estudante, por exemplo. Tal princípio facilita questões de reusabilidade e manutenção do modelo, além de estruturá-lo como um todo para a web. O conhecimento é representado na forma semântica em linguagem XML, que na realidade é uma extensão do OpenMath. Conhecimentos são tratados como objetos de aprendizado, não uma simples sintaxe como são abordados em geral. Isto traz alguns benefícios, tais como serem mais compreensivos e poderem ser interligados com outros saberes presentes no sistema [9]. Em relação a outros tutores que seguem os princípios gerais de arquiteturas de STI [2], existem vantagens que vão além da questão de um sistema Web capaz de considerar emoções. A abordagem utilizando um Arquitetura Multiagente é considerada uma técnica que contribui muito para a redução de complexidade de sistema, através da criação de componentes modulares que resolvem subtarefas que constituem um objetivo maior. Cada agente utiliza a sua técnica mais eficiente para resolver tais subtarefas, não seguindo a abordagem geral, mais genérica para a solução [19]. O presente projeto se compara aos demais da área pelo caráter educacional envolvido, bem como didática 30 diferenciada na parte de tutoria, ensino de conteúdo. O PAT2Math visa traçar o aprendizado do aluno com técnicas de Knowledge Tracing [2] com o objetivo de saber como remediar um aprendizado errado por parte do aluno, saber inferir em que parte do processo cognitivo do aluno ocorreu um erro. Um elemento que destaca o projeto dos demais é a consideração de fatores emocionais durante o ensino. Tal característica é proveniente do estudo de uma arquitetura de emoções a ser incluída no Módulo Tutor do Sistema, conforme descrito em [7] e da inferência de emoções por face, conforme descrito em [13]. 8. CONCLUSÃO A arquitetura proposta visa interação e relação entre múltiplos agentes, cada qual com um conjunto de papéis a serem representados no sistema. A execução de tais papéis torna o ensino-aprendizagem do aluno no proposto ambiente Web possível, se apoiando juntamente na metodologia Prometheus, que possui um forte referencial teórico e sistemas baseados na mesma. Além disso, a concepção do STI segundo uma abordagem multiagente diminui a complexidade no desenvolvimento do sistema e melhora a compreensão do projeto entre os membros da equipe devido a modularização dos componentes deste projeto. Atualmente o projeto se encontra em fase intermediária de desenvolvimento. A arquitetura e o contexto do sistema já estão definidos, assim como os papéis dos agentes propostos [10]. Existe um grupo de pesquisa, composto por estudantes de graduação e mestrado na área das Ciências Exatas, trabalhando ativamente neste projeto. O esforço deste grupo resultou até o momento na especificação completa do sistema e no desenvolvimento dos seguintes agentes: AMC - já descrito em [16], AD, AI (parcial) e AT (parcial), bem como a documentação especialista em álgebra, que está servindo como base para as ontologias que serão embarcadas no AT. Adicionalmente, será integrado o recurso de reconhecimento de emoções através da face, baseado no trabalho de pesquisa de [13], assim como através de um modelo psicológico-cognitivo descrito em [7]. Juntamente no sistema será integrado o agente pedagógico animado e afetivo, cujo o referencial teórico encontra-se em [8]. Referências [1]Sherman Alpert, Mark Singley, and Graeme Pye Fairweather. Deploying intelligent tutors on the web: An architecture and an example. In IJAIED, 10(2), pages , 1999.

39 Fábio R. Damasceno, Anderson da Cruz and Patrícia A. Jaques Sistema Tutor Inteligente PAT2Math: Proposta de Arquitetura Multiagente [2]John R. Anderson. General principles for an intelligent tutoring architecture. Cognitive Approaches to Automated Instruction, [3]Fabio Bellifemine, Giovanni Caire, and Dominic Greenwood. Developing Multi-Agent Systems with JADE. wiley, [4]Cui Guangzuo. Ontoedu:ontology-based eucation grid system for e-learning. FIFTH AGRICULTU- RAL ONTOLOGY SERVICE (AOS) WORKSHOP, [5]Elie Jacob. Ontologies and the semantic web. Bulletin of the American Society for Information Science and Technology, 29:19, 22, [6]JADE. Introduction to JADE. acessado em agosto de 2009, Setembro [7]Patrícia Augustin Jaques. Avaliando um modelo afetivo de aluno baseado em uma abordagem cognitiva. SBIE, 2008, Fortaleza - CDROM., [8]Patrícia Augustin Jaques, Matheus Lehmann, and Sylvie Pesty. Evaluating the affective tactics of an emotional pedagogical agent. In ACM-SAC 09, pages , NY, USA, ACM. [9]Erica Melis and Jörg Siekmann. Activemath: An intelligent tutor system for mathematics. Seventh International Conference Artificial Intelligence and Soft Computing, [14]James Ong and Sowmya Ramachandram. Intelligent tutoring systems: Using ai to improve training performance and roi. Stottle Henke Publications, The pro- [15]Lin Padgham and Michael Winikoff. metheus metodology. April [16]Henrique M. Seffrin, Geiseane Rubi, Talvany Carlotto, Gabriel Mello, and Patrícia A. Jaques. Um resolvedor de equações algébricas como ferramenta de apoio à sala de aula no ensino de equações algébricas. WIE - CSBC, 2009, Bento Gonçalves., pages , [17]Yoav Shoam. An overview of agent-oriented programming. Software Agents. Menlo Park: AAAI Press/The IT Press, pages , [18]Jaime Simão Sichman, Yves Demazeu, and Olivier Boissier. How can knowledge-based systems be called agents? SBIA, 9, 1992, Rio de Janeiro. Anais... RJ: PUC-RJ, pages , [19]Marina V. Sokolova and Antonio Fernández- Caballero. Modeling and implementing an agentbased environmental health impact decision support system. Expert Syst. Appl., 36(2): , [20]Carsten Ullrich. C. ullrich. Proceedings of Workshop on Applications of Semantic Web Technologies for E-learning, SW-EL 04, pages 17,23, [10]Gabriel Mello, Talvany Carlotto, Geiseane Rubi, Henrique M. Seffrin, and Patrícia A. Jaques. Implementando o agente de base de domínio so sistema tutor inteligente pat2math. XIII Ciclo de Palestras sobre Novas Tecnologias na Educação, 2009, Porto Alegre., [11]Jean-Peirre Müller and Yves Demazeu. Descentralized artificial intelligence. European Workshop on Modelling Autonomous Agents in a Multi-Agent World, 1, 1989, Cambridge. North-Holland: Elselvier Science Publishers, [12]Tom Murray. Authoring intelligent tutoring systems: An analysis of the state of the art. International Journal of Artificial Intelligence in Education, [13]Eduardo Oliveira and Patrícia Augustin Jaques. Inferindo as emoções do usuário pela face através de um sistema psicológico de codificação facial. IHC, 2008, POA : SBC/ACM,

40 Um Sistema de Apoio à Decisão baseado em Agentes para a Companhia Elétrica do Estado de Goiás Ronneesley M. Teles 1, Marcos Ivamoto 1, Leonardo H. S. Mello 1, Valdemar V. Graciano Neto 1 & Cedric Luiz de Carvalho 1 1 Instituto de Informática Universidade Federal de Goiás (UFG) Caixa Postal Goiânia GO Brasil Fone: +55 (62) (FAX) {ronneesley mivamoto lhsmello vgracianoneto cedric.inf.ufg }@gmail.com Abstract Decision Support Systems (DSS) are a specific kind of Information System that has help skills in decisionmaking suggesting optimizated solutions to the user while he is performing some task. So, DSSs must have a relevant autonomy level to be capable of deliberating about the problem is being solved and suggest a good solution to the user. Considering such need, intelligent agents seems like a suitable option to provide such capability. This paper proposes a Decision Support System based on Multiagent Systems to support the Eletric Company of the State of Goiás in its occurences treatment job. Keywords: Decision Support Systems, Multi-Agent, Behaviour Repository. Sistemas de Apoio à Decisão (SAD) são um tipo específico de Sistema de Informação capaz de auxiliar no processo de tomada de decisão sugerindo ao usuário soluções otimizadas para a tarefa que está sendo desempenhada. Logo, SADs devem ter um grau de autonomia elevado, suficiente para conseguir deliberar sobre o problema a ser resolvido a fim de sugerir uma boa solução para o usuário. Considerando tal necessidade de autonomia, agentes inteligentes aparecem como uma opção adequada para prover tal capacidade ao sistema. Este artigo propõe a concepção de um Sistema de Apoio à Decisão baseado em Sistema Multi-Agente para apoiar a Companhia Elétrica do Estado de Goiás em sua tarefa de atendimento de ocorrências. Keywords: Sistema de Apoio à Decisão, Multi- Agentes, Repositório de Comportamentos INTRODUÇÃO A Companhia Elétrica do Estado de Goiás (CELG) é a empresa responsável pela distribuição de energia elétrica bem como pela manutenção da rede de distribuição em todo o Estado de Goiás. A CELG é dividida em unidades gerenciais chamadas Centros de Operação e Distribuição (COD). Cada COD é responsável por uma região específica do Estado de Goiás. O COD utilizado como cenário deste trabalho é o COD correspondente à Região Metropolitana de Goiânia. Cada COD é responsável pelo atendimento de reclamações referentes a falhas na rede elétrica na sua região de cobertura. Tais reclamações são chamadas de ocorrências. As ocorrências são registradas pelo serviço de atendimento ao cliente e são encaminhadas para os despachantes do COD. Para tomar providências em relação às falhas ocorridas, a CELG dispõe de veículos especializados denominados viaturas. Um atendimento consiste na associação de uma viatura a uma ocorrência. As viaturas são posicionadas em locais estratégicos para otimizar o atendimento das ocorrências. Os despachantes são responsáveis por alocar as viaturas para atender as ocorrências registradas. Este posicionamento é realizado a cada início de turno das viaturas. O dia é dividido em três turnos de oito horas. Esta distribuição é feita manualmente e com base no conhecimento e experiência dos despachantes. Para alocar viaturas às ocorrências, os despachantes

41 Ronneesley Teles, Marcos Ivamoto, Leonardo Mello, Valdemar Neto & Cedric de Carvalho Um Sistema de Apoio à Decisão baseado em Agentes para a Companhia Elétrica do Estado de Goiás devem atentar-se a várias restrições que a CELG deve respeitar: o tempo que o cliente está sem fornecimento, a urgência da ocorrência, a distância da ocorrência às viaturas, o valor homem-hora (HH) dos técnicos que atendem às ocorrências, horas excedentes caso o turno da viatura tenha se encerrado e quilometragem excedente em relação ao limite estipulado por veículo. A quantidade de despachantes é bastante reduzida em relação à quantidade de ocorrências registradas por dia. Para tomar decisões, a única ferramenta que os despachantes têm como auxílio é um sistema computacional que exibe a região de atendimento, as ocorrências, a prioridade de cada uma, a localização das viaturas e a localização de cada ocorrência. Não existe uma ferramenta que auxilie na seleção da melhor viatura para atendimento de uma ocorrência, garantindo que o consumidor seja atendido no menor tempo possível e com o menor custo para a empresa. O cenário descrito exibe vários inconvenientes: 1. o conhecimento envolvido na tomada de decisão durante um atendimento não é documentado. Assim, apenas os despachantes humanos detêm tal conhecimento em suas mentes; 2. não há ferramentas que possibilitem uma análise histórica e/ou estatística das decisões tomadas e das ocorrências registradas. Sem estes dados, não se obtém uma otimização nas decisões; 3. as decisões são tomadas com base em conhecimento implícito, não verificável ou validável; 4. não se tem garantias da otimalidade das soluções concebidas e; 5. erros dispendiosos podem se repetir devido a não ser possível observar falhas de experiências anteriores [6]. Os incovenientes apresentados revelam que a CELG possui um processo de tomada de decisão ineficiente e não auditável. Além disso, o conhecimento e a memória organizacional não são documentados ou armazenados. Como o mecanismo de tomada de decisão não é um processo bem definido, o capital intelectual não é preservado. Este artigo propõe a concepção de um Sistema de Apoio à Decisão Inteligente baseado em Sistema Multi- Agentes. A intenção é otimizar a solução destes problemas e auxiliar os despachantes na tomada de decisão referente à distribuição das viaturas e a alocação das viaturas para atender às ocorrências de acordo com as restrições estipuladas. As vantagens inicialmente observáveis são inerentes à utilização da técnica de Sistemas Multi-Agentes. Dentre as vantagens, pode-se citar processamento distribuído de ocorrências, automatização, inteligência, troca de mensagens entre despachantes e viaturas, sugestão de soluções com base em conhecimento armazenado e não apenas com base na experiência dos despachantes. Espera-se, como consequência, um aumento na velocidade de atendimento das ocorrências, minimização do tempo que o usuário fica sem fornecimento, redução dos custos com desperdício de recursos humanos e financeiros, e a preservação do capital intelectual e da memória organizacional da CELG, minimizando os problemas apresentados. O restante deste trabalho está estruturado da seguinte forma: a Seção 2 trata da motivação de utilizar agentes para implementação deste trabalho; a Seção 3 apresenta o modelo proposto, discute a implementação e os conceitos utilizados; a Seção 4 discute os trabalhos correlatos; a Seção 5 traz as conclusões, trabalhos futuros e discussões finais sobre o tema e, por fim, são apresentadas as referências utilizadas neste trabalho. 2. MOTIVAÇÃO PARA O USO DE AGENTES Para auxiliar a CELG, foi concebido um Sistema de Apoio à Decisão (SAD) baseado em Sistemas Multi- Agentes (SMA). Várias iniciativas de utilizar agentes no desenvolvimento de SADs tem sido citadas na literatura. Harbouche e Djoudi [8] citam que o uso de agentes é adequado quando estes são uma metáfora natural dos atos humanos e que agentes possuem uma alta capacidade de representação de comportamento. Estas propriedades endossam a utilização de agentes neste trabalho, no qual pretende-se simular os comportamentos de operadores humanos responsáveis pela rede elétrica e dos despachantes. Eom e Kim [7] reafirmam a adequação desta abordagem quando mencionam que o uso de agentes inteligentes está aumentando no desenvolvimento de SADs devido a um propósito especial dos agentes: reduzir o trabalho e a sobrecarga de informações sobre o usuário. Bellifemine et al. [2] sugerem que a maneira mais fácil de obter comportamento coerente e resolução de conflitos é prover um grupo com um agente que tem uma perspectiva mais ampla do sistema, explorando uma estrutura hierárquica e/ou organizacional. Este agente controlador seria responsável por captar informação dos agentes em um grupo, criar planos e atribuir tarefas para agentes individuais para reforçar a coerência global. Este artigo propõe uma adaptação das ideias sugeridas por Bellifemine et al [2]. Tal adaptação inclui a utilização de um sistema multi-agentes heterogêneo no qual os agentes possuem um caráter cooperativo, composto de três tipos de agentes: viatura, despachante e comunicador. 33

42 Ronneesley Teles, Marcos Ivamoto, Leonardo Mello, Valdemar Neto & Cedric de Carvalho Um Sistema de Apoio à Decisão baseado em Agentes para a Companhia Elétrica do Estado de Goiás Figura 1. Arquitetura do Sistema Para isso, a região metropolitana de Goiânia é dividida em regiões gerenciadas por um agente despachante que representa o conhecimento dos despachantes humanos. As viaturas serão representadas por agentes reativos. A sugestão das viaturas mais adequadas para cada ocorrência acontecerá como resultado da troca de mensagens entre o agente do tipo despachante e agentes do tipo viatura sob sua responsabilidade. 3. MODELO PROPOSTO Um protótipo foi desenvolvido utilizando o framework JADE, um arcabouço totalmente implementado na linguagem Java que simplifica a implementação de sistemas multi-agentes [9]. As seções seguintes descrevem o modelo implementado neste protótipo DESCRIÇÃO A Figura 1 apresenta a arquitetura do modelo. Em concordância com vários trabalhos presentes na literatura ([1], [4], [8] e [14]), a arquitetura apresenta um agente especializado em recepcionar dados do usuário e comunicar aos agentes do SMA as requisições realizadas pelo usuário humano. Tal agente é chamado Agente Comunicador. Este agente é responsável por efetuar a comunicação entre o usuário e o restante do sistema, em especial, os outros agentes. Toda requisição feita pelo usuário é encaminhada pelo 34 agente comunicador para o agente despachante. O modelo tenta estabelecer um processo para dar suporte ao trabalho desenvolvido na CELG, composto de duas fases principais a saber: distribuição de viaturas em cada início de turno e alocação das viaturas às ocorrências (despacho) tomando as restrições mencionadas como parâmetro para escolha e/ou sugestão. Para resolver o problema da alocação de viaturas a cada início de turno, foi criada uma heurística chamada Heurística da Diagonal. Esta heurística processa os dados históricos de ocorrências na região metropolitana de Goiânia para distribuir as viaturas de modo igualitário nas várias regiões da cidade. Primeiramente, verifica-se quantas ocorrências foram registradas em toda a região metropolitana durante um certo período na base histórica (por exemplo, um mês). Divide-se então a quantidade total de ocorrências pela quantidade total de viaturas obtendo-se um valor que representa a média de ocorrências atendidas por viatura (moav) no período considerado. Esta média é então utilizada como parâmetro na Heurística da Diagonal. A equação 1 ilustra um equivalente matemático a esta descrição, onde qtdeocorrencias representa a quantidade de ocorrências registradas no período considerado e qtde- Viaturas representa a quantidade de viaturas disponíveis para realizar o atendimento. moav = qtdeocorrencias qtdev iaturas (1)

43 Ronneesley Teles, Marcos Ivamoto, Leonardo Mello, Valdemar Neto & Cedric de Carvalho Um Sistema de Apoio à Decisão baseado em Agentes para a Companhia Elétrica do Estado de Goiás Figura 2. Início da Execução da Heurística da Diagonal Em seguida, de posse do valor do moav, é possível criar sub-regiões gerenciáveis. Sub-regiões são regiões geográficas obtidas a partir da execução da heurística. Estas sub-regiões serão formadas por uma ou mais microregiões de 1 km 2. Em cada início de turno, executa-se a Heurística da Diagonal. Se uma micro-região possui uma quantidade de ocorrências igual ou superior ao moav do período histórico para o qual este valor foi calculado, é associada uma viatura àquela micro-região que passa a ser considerada uma sub-região. Mas, se ao contrário, a microregião de 1 km 2 não atingir o valor do moav calculado, então a Heurística da Diagonal expande a área considerada no sentido da diagonal principal (do canto superior esquerdo para o canto inferior direito) da micro-região sendo avaliada. A área candidata a sub-região agora possui 4 km 2. Se esta área possuir uma quantidade de ocorrências no período considerado igual ou superior ao moav, então marca-se esta área como sendo uma sub-região e ela recebe uma viatura. Caso ainda não atinja o valor moav, a heurística continua executando iterativamente, expandindo a área, até que finalmente o acumulado de ocorrências no período registrado iguale-se ou supere o moav calculado e aquela seja considerada uma sub-região. Depois que uma sub-região é definida, a heurística continua sua execução até que toda a área de Goiânia esteja dividida nestas sub-regiões. As viaturas sobressalentes são divididas proporcionalmente em relação à quantidade de ocorrências que ultrapassaram o valor de moav em cada sub-região. A Figura 2 apresenta alguns blocos obtidos a partir da execução da Heurística da Diagonal. O primeiro bloco possui 144 km 2. É possível notar nesta figura que as micro-regiões de 1 km 2 possuem associadas a si um número. Este número corresponde à quantidade de ocorrências registradas na micro-região no último período considerado. A Figura 2 ilustra apenas uma porção da região metropolitana. A Figura 3 ilustra a região metropolitana como uma matriz dividida em várias sub-regiões. Esta figura corresponde ao que seria a região metropolitana dividida em sub-regiões após a execução da Heurística da Diagonal. Para isso, a região metropolitana é considerada um retângulo de 168 km por 137 km. A Heurística da Diagonal possui algumas peculiaridades. Um exemplo é o problema que foi chamado de Problema da Fronteira. Esta situação acontece quando, percorrendo uma linha e produzindo as subregiões, chega-se a uma situação na qual não é possível avançar no sentido da diagonal e a quantidade de ocorrências registradas é inferior ao moav. Nestes casos, convencionou-se aglutinar esta área sobressalente à última sub-região definida. O fato de a área desta última sub-região definida aumentar não é um problema porque as viaturas sobressalentes são distribuídas sempre proporcionalmente à quantidade de ocorrências que excedem o moav naquela área. Depois que a Heurística da Diagonal é executada, a 35

44 Ronneesley Teles, Marcos Ivamoto, Leonardo Mello, Valdemar Neto & Cedric de Carvalho Um Sistema de Apoio à Decisão baseado em Agentes para a Companhia Elétrica do Estado de Goiás Figura 3. Resultado da Heurística da Diagonal região metropolitana fica dividida em sub-regiões (como mostra a Figura 3). Cada sub-região possui uma quantidade de agentes que representam as viaturas posicionadas em pontos estratégicos para atender às ocorrências registradas naquela sub-região. Para gerenciar as sub-regiões, foi definido um agente do tipo despachante. Para cada ocorrência registrada, o agente despachante trocará mensagens com os agentes viatura para deliberar sobre qual a viatura mais adequada para atender à ocorrência, observando as restrições de distância, turno, custo homem-hora, urgência, etc. A Figura 4 ilustra todo o processo de obtenção de uma sugestão de viaturas para atender a uma ocorrência, desde a requisição do usuário até a sugestão das viaturas mais adequadas: 1. O despachante humano requisita sugestão de viaturas para uma ocorrência registrada; 2. Agente Comunicador encaminha requisição de sugestão de conjunto de viaturas para atender a uma ocorrência; 3. O Agente Despachante troca mensagens com os agentes Viatura e requisita o cálculo da distância entre as viaturas e a ocorrência considerando as posições das viaturas e da ocorrência (valor passado na mensagem); 4. O Agente Despachante retorna a lista das viaturas mais próximas e disponíveis mediante a urgência da ocorrência; 5. O Agente Comunicador dispõe as viaturas sugeridas pelo Agente Despachante; 6. O despachante humano escolhe uma viatura; O Agente Comunicador notifica o Agente Despachante sobre a viatura escolhida pelo usuário; 8. O Agente Despachante notifica a viatura escolhida para que a mesma desloque-se para o local da ocorrência; 9. A viatura muda seu status para ocupada e desloca-se para reparar a falha na rede; 10. Após reparar a falha na rede, a viatura notifica o Agente Despachante da conclusão do seu trabalho; 11. O Agente Despachante recebe a notificação de término e a encaminha para o Agente Comunicador; 12. O Agente Comunicador notifica o despachante humano do término, o que encerra aquele ciclo de atendimento. As ocorrências são classificadas como urgentes ou não urgentes. Tanto para ocorrências urgentes como para não urgentes, são sugeridas as dez viaturas mais próximas da ocorrência. Se a ocorrência for urgente, serão sugeridas viaturas ocupadas ou não, sem levar em conta se a viatura está em final de turno. Se a ocorrência for não urgente, então serão sugeridas até dez viaturas livres ordenadas por proximidade. Em ambos os casos, serão sugeridas primeiro aquelas cujos técnicos estejam com menor quantidade de ocorrências atendidas (a fim de tentar equilibrar a quantidade de ocorrências atendidas por cada viatura em cada turno) e cujas viaturas estejam com menor quilometragem rodada acumulada no turno. Este processo pode acontecer várias vezes em um espaço curto de tempo. Neste ponto é possível perceber

45 Ronneesley Teles, Marcos Ivamoto, Leonardo Mello, Valdemar Neto & Cedric de Carvalho Um Sistema de Apoio à Decisão baseado em Agentes para a Companhia Elétrica do Estado de Goiás Figura 4. Processo Completo de Sugestão de Viaturas uma das grandes vantagens em se utilizar SMA: a possibilidade de abstrair melhor a realidade. Afinal, SMA provê a capacidade de representação de várias viaturas trabalhando de forma paralela nas diversas sub-regiões da cidade, assim como acontece no cenário real. A troca de mensagens entre agentes viatura e despachante dispara comportamentos como cálculo de distância nos agentes viatura e comportamento de despacho nos agentes despachantes. A seção seguinte descreve a forma como os comportamentos são armazenados dentro da aplicação desenvolvida REPOSITÓRIO DE COMPORTAMENTOS Em SMAs convencionais desenvolvidos com JADE [9], os comportamentos são implementados como parte do código da aplicação. Os comportamentos são adicionados aos agentes através do método addbehaviour(). A Figura 5, retirada de Bellifemine et al. [2], mostra um exemplo de adição de um comportamento cíclico a um agente. Nesta figura, é possível observar como o código do comportamento fica acoplado ao código do agente. Com isso, algumas premissas clássicas da Engenharia de Software acabam por não ser atendidas, tais como alta coesão, baixo acoplamento e a consequência de ambas: boa manutenibilidade. Boff e Oliveira [3] propõem uma solução que auxilia na portabilidade e manutenibilidade de Sistemas de Informação (SI). Nesta abordagem, eles isolam as Regras de Figura 5. Exemplo de adição de comportamento retirado de Bellifemine et al. [2] Negócio (RN) do SI em um repositório de modo que, se for necessária alguma atividade de manutenção, inserção ou remoção de regras no modelo de domínio especificado, basta realizar estas alterações no repositório e tais alterações serão propagadas por todo o sistema. Criou-se neste trabalho uma variação do conceito apresentado por Boff e Oliveira [3]: o conceito de 37

46 Ronneesley Teles, Marcos Ivamoto, Leonardo Mello, Valdemar Neto & Cedric de Carvalho Um Sistema de Apoio à Decisão baseado em Agentes para a Companhia Elétrica do Estado de Goiás Repositório de Comportamentos. O princípio de funcionamento é semelhante ao apresentado no trabalho de Boff e Oliveira. Os comportamentos dos agentes podem ser vistos como elementos do SMA que podem ser isolados em um repositório. Quando o sistema vai ser carregado, os comportamentos especificados no repositório são então adicionados aos agentes antes que entrem em execução. Assim, os comportamento não são especificados juntamente aos agentes, mas sim no repositório. Além dos comportamentos, são registradas tuplas que relacionam os agentes aos quais cada comportamento deve ser adicionado. de Boff e Oliveira [3]: portabilidade (não somente relacionada a plataformas distintas, mas até mesmo a domínios distintos, podendo aplicar tal conceito a qualquer SI que possa se utilizar de sistemas multi-agentes) e manutenibilidade (agilidade e corretude na modificação de comportamentos do SMA como um todo). Este conceito aparece como uma boa prática de programação orientada a agentes. Criar classes que representam os comportamentos dos agentes e isolá-los em um repositório permite um melhor reaproveitamento de tais códigos, reduz o acoplamento, facilita a manutenção e melhora a legibilidade do código. Figura 6. Ciclo de Manutenção de Comportamentos Caso seja desejado modificar um comportamento, basta selecionar o comportamento do Repositório, efetuar a alteração, e requisitar a replicação no sistema. A Figura 6 ilustra o ciclo de vida dos comportamentos no Repositório de Comportamentos: 1. A aplicação é inicializada; 2. os comportamentos são lidos do repositório, instanciados e adicionados aos agentes. Este passo é executado observando quais agentes estão associados a quais comportamentos dentro do repositório; 3. os agentes são criados efetivamente; 4. em virtude de uma requisição de mudança, são efetuadas mudanças em um ou mais comportamentos no repositório; 5. os comportamentos são propagados nos agentes, facilitando assim a manutenção e teste dos mesmos. Tal conceito é muito importante pois traz para este trabalho as mesmas vantagens apresentadas no trabalho TRABALHOS RELACIONADOS Foram encontrados alguns trabalhos que se assemelham ao trabalho desenvolvido em relação à tecnologia utilizada para implementar a inteligência do SAD. Silva e Ito [5] apresentam um SAD baseado em agentes utilizado para auxiliar no tratamento de pacientes crônicos. Eles usam JADE para desenvolver tal sistema e criam agentes utilizando a arquitetura BDI. No que tange à tecnologia utilizada para implementação da inteligência do SAD, Silva e Ito [5] desenvolvem um trabalho estritamente correlato. A diferença é que a quantidade de agentes utilizada é menor e os agentes utilizados são do tipo BDI, possuindo capacidade cognitiva. Isso minimiza a necessidade de uma grande quantidade de agentes atuando no sistema. Cizbula et al. [4] apresentam uma arquitetura genérica para um SAD Multi-agente que dá suporte à tomada de decisão baseado em técnicas de aprendizado supervisionado. A principal vantagem da arquitetura proposta é que ela pode ser facilmente usada em diferentes domínios nos quais Sistemas de Apoio à Decisão são necessários: saúde, psicologia, economia, seguros, etc. Para validar a proposta, Cizbula et al. [4] implementam dois estudos de caso para a arquitetura genérica aplicada a um Sistema de Apoio à Decisão Médica, que apóia o diagnóstico de doenças. O trabalho de Cizbula et al. [4] possui semelhanças com o que está sendo aqui descrito com relação a algumas características do domínio de aplicação (essencialmente distribuído e paralelo). Além disso, este trabalho contribui no sentido de generalizar a arquitetura que eles descreveram para aplicá-la a vários domínios. O projeto aqui descrito também tem por intuito generalizar a aplicabilidade da solução concebida. Yu et al. [14] apresentam um Sistema de Apoio à Decisão para Desenvolvimento de Produto baseado em Multi-Agente. Yu et al. [14] dizem que o desenvolvimento de um novo produto é uma tarefa muito complexa e que envolve muitos riscos, pois a falha na populariza-

47 Ronneesley Teles, Marcos Ivamoto, Leonardo Mello, Valdemar Neto & Cedric de Carvalho Um Sistema de Apoio à Decisão baseado em Agentes para a Companhia Elétrica do Estado de Goiás ção de novos produtos ocorre em uma taxa elevada (66% a 90% dos produtos lançados não se popularizam). Para capturar informações relevantes a respeito deste domínio, Yu et al. [14] criam agentes. Cada agente é responsável por receber informações de uma fonte diferente (usuário, mercado, departamentos), analisá-las, deliberar com outros agentes e, em seguida, responder ao usuário sobre a viabilidade de lançamento do produto. Segundo Yu et al. [14], a diversidade de fontes e de sub-problemas a serem resolvidos destacam o caráter distribuído deste problema. Para ajudar na solução deste problema, Yu et al. [14] oferecem um SAD para clarear as vantagens e desvantagens de cada projeto, entender o impacto de várias incertezas sobre o projeto para reduzir riscos ou evitá-los e reduzir problemas advindos de um lançamento de produto mal-sucedido. Os agentes de Yu et al. [14] são do tipo cognitivo, enquanto que os agentes deste trabalho são reativos. Trata-se de um trabalho que também utiliza agentes para prover a inteligência do SAD. Em relação à utilização de agentes para auxiliar empresas de energia elétrica, Nagata e Sasaki [10] apresentam um trabalho no qual agentes são utilizados para auxiliar no processo de encontrar o ponto de falha na rede elétrica de modo automático, sem a necessidade do contato do cliente notificando sobre a falha na rede. Tolbert et al. [13] mostra um cenário no qual agentes auxiliam no gerenciamento, otimização do consumo e geração de energia. Rehtanz [12] menciona a utilização de agentes na operação e controle de Sistemas de Energia Elétrica, auxiliando na gerência da rede, pontos de falha e fluxo de energia. Phadke e Thorp [11] sugerem a utilização de agentes para auxiliar no processo de retransmissão de energia. Não foi encontrado nenhum outro trabalho na litetura que utilizasse agentes para resolver problemas de distribuição de veículos para manutenção de redes de energia elétrica, o que torna este trabalho inovador em sua abordagem de manutenção de redes elétricas. 5. CONCLUSÕES E TRABALHOS FU- TUROS Concluiu-se que a utilização de Sistemas Multi- Agentes para a implementação de Sistemas de Apoio à Decisão para resolver problemas como o descrito pode ser uma alternativa a se considerar. Sistemas de Apoio à Decisão Inteligentes parecem ser uma alternativa viável para auxiliar os despachantes a cumprir seu trabalho sem a necessidade de efetuar cálculos e análises que demandavam tempo, esforço e eram ainda sujeitos a erros. Além disso, tal tipo de sistema protege o capital intelectual da corporação e a memória organizacional, pois as decisões não são mais tomadas com base exclusivamente na experiência dos despachantes humanos, mas sim como uma cooperação entre a sugestão oferecida pelo sistema - regido por um processo definido - e a decisão do despachante humano. Vislumbra-se ainda melhorias para o SAD em questão como: 1. a possibilidade de transformar o Repositório de Comportamentos em uma ferramenta de testes de comportamentos, capaz de emular comportamentos e sugerir para o manutenedor do sistema o melhor comportamento para um cenário específico, 2. tornar a definição do comportamento independente de plataforma utilizando alguma linguagem de especificação de comportamentos, 3. aumentar a inteligência dos agentes viatura, convertendo-os em agentes cognitivos, capazes de deliberar por si próprios e negociar com os agentes de sua sub-região qual a melhor opção para atender às ocorrências que chegam, 4. aumentar a quantidade de agentes do tipo despachante de modo a dar ao modelo um caráter mais distribuído, criando um agente despachante para cada sub-região, minimizando a sobrecarga decorrente da alta quantidade de mensagens trocadas entre os agentes. O conceito de Repositório de Comportamentos mostrou-se muito interessante do ponto de vista de manutenibilidade de SMA. Uma melhoria que pode ser implementada é estender este conceito para suportar comportamentos definidos utilizando outras técnicas de Inteligência Artificial para prover inteligência aos agentes, tais como Redes Neurais, Árvore de Decisão, Algoritmos Genéticos, Lógica Fuzzy ou Redes Bayesianas. A arquitetura apresentada pode ser utilizada para auxiliar os despachantes de qualquer companhia elétrica na seleção da viatura mais adequada para atender a uma ocorrência, com o menor tempo de espera por parte do consumidor e menor custo associado a recursos humanos e financeiros. Mas, a solução não é restrita ao domínios de companhias de eletricidade. A abordagem seria útil a qualquer tipo de cenário no qual deseja-se gerenciar uma frota de veículos de modo a posicioná-los em regiões estratégicas em relação a um acumulado de dados históricos e de modo a roteá-los para atender a solicitações em posições geográficas especificadas. O conceito de Repositório de Comportamentos pode também ser estendido a qualquer aplicação desenvolvida sobre SMA. Qualquer sistema desenvolvido sobre SMA pode ter os comportamentos armazenados num 39

48 Ronneesley Teles, Marcos Ivamoto, Leonardo Mello, Valdemar Neto & Cedric de Carvalho Um Sistema de Apoio à Decisão baseado em Agentes para a Companhia Elétrica do Estado de Goiás repositório para facilitar a manutenção e a propagação do comportamento por todos os agentes. Além disso, comportamentos definidos para um tipo de agente específico podem ser reutilizados em outros agentes em aplicações distintas. Exemplo: o comportamento de cálculo de distância pode ser utilizado em qualquer contexto no qual tem-se agentes que precisam saber suas distâncias até um determinado ponto. Aplicações para processamento geográfico, otimização de rotas, etc são alguns exemplos citáveis de aplicações que podem ter agentes que compartilham comportamentos. Apesar de ter sido implementado um protótipo, não foram feitos testes apurados devido à falta de dados disponíveis e acesso aos dados da empresa até a data de escrita deste artigo. Referências [1] Andrea Addis, Giuliano Armano, and Eloisa Vargiu. From a generic multi-agent architecture to multiagent information retrieval systems. Sixth International Workshop From Agent Theory to Agent Implementation, [2] Fabio Luigi Bellifemine, Giovanni Caire, and Dominic Greenwood. Developing multi-agent systems with JADE. Wiley, 1th edition, [8] Khadidja Harbouche and Mahieddine Djoudi. Agent-based design for e-learning environment. Journal of Computer Science, pages , [9] Telecom Italia. Jade - java agent development framework. Disponível em: Acesso em: 24 jan. 2009, [10] T. Nagata and H. Sasaki. A multi-agent approach to power system restoration. IEEE Transactions on Power Systems, pages , [11] Arun Phadke and James Thorp. Computer Relaying for Power Systems. Wiley, [12] Christian Rehtanz. Autonomous Systems and Intelligent Agents in Power System Control and Operation. Springer-Verlag, [13] Leon M. Tolbert, Hairong Qi, and Fang Z. Peng. Scalable multi-agent system for real-time electric power management. IEEE Power Engineering Society Summer Meeting, pages , [14] Tianbiao Yu, Jing Zhou, Feng Xu, Yadong Gong, and Wanshan Wang. Decision support system of product development based on multi-agent International Conference on Information Technology and Computer Science, [3] Glauber Boff and Juliano Lopes de Oliveira. Modelagem, implementação e manutenção de regras de negócio em sistemas de informação. Workshop de Manutenção de Software Moderno - Simpósio Brasileiro de Qualidade de Software, [4] Gabriela Czibula, Adriana Mihaela Guran, and Grigoreta Sofia Cojocarand Istvan Gergely Czibula. Multiagent decision support systems based on supervised learning IEEE International Conference on Automation, Quality and Testing, Robotics - Volume 03, pages , [5] Leandro Ramos da Silva and Márcia Ito. Proposta de um sistema multiagentes para acompanhamento de pacientes crônicos. Anais do XI Congresso Brasileiro de Informática na Saúde, [6] José Braga de Vasconcelos, Álvaro Rocha, and Chris Kimble. Sistemas de informação de memória organizacional: Uma abordagem ontológica para a definição de competências de grupo. Actas da 4 a Conferência da Associação Portuguesa de Sistemas de Informação, [7] Sean Eom and Eyong Kim. A survey of decision support system applications ( ). Journal of the Operational Research Society.,

49 Método Baseado em Detecção de Mudanças para Determinar Preço de Oferta de Pedidos de Clientes no Ambiente TAC-SCM Fernando Roberto Pereira, Roni Fabio Banaszewski, Jean Marcelo Simão, Cesar Augusto Tacla Curso de Pós-Graduação em Engenharia Elétrica e Informática Industrial (CPGEI) Universidade Tecnológica Federal do Paraná (UTFPR) Av. Sete de Setembro, 3165 Fone: +55 (41) CEP Curitiba - PR - BRAZIL {nandoroberto, banaszewski, jeansimao, tacla}@cpgei.ct.utfpr.edu.br Abstract This paper presents an adaptation of an approach based on Drift Detection and instance based machine-learning. This adapted approached is applied to agents in stochastic simulation scenarios of the TAC-SCM (Trading Agent Competition - Supply Chain Management) environment in order to determine selling prices of goods. In short, this approach allows detecting frequent market changes and determining a competitive price based on feedback obtained from negotiations with clients. The proposed approach is evaluated by practical experiments. It is also concomitantly presented an approach to minimize the expensive computable cost caused by the instance based machine learning technique used in the experiments. Resumo Este artigo apresenta adaptações de uma abordagem fundamentada em técnicas de detecção de variações chamada Drift Detection e de aprendizagem de máquina baseada em instâncias. Esta adaptação é aplicada para realizar venda de produtos em cenários estocásticos providos pelo ambiente de simulação TAC-SCM. Em suma, a abordagem adaptada permite detectar mudanças freqüentes de mercado e determinar um preço competitivo em função do feedback obtido nas negociações com os clientes. Neste âmbito, buscou-se demonstrar por meio de experimentos práticos o comportamento da abordagem proposta. Ademais, é apresentada conjuntamente uma solução para minimizar o custo computacional dispendioso acarretado pela técnica de aprendizagem de máquina baseada em instâncias. Keywords: Aprendizagem Baseada em Instâncias; Dynamic Weighted Majority; Previsão de Preços. 1. INTRODUÇÃO A Gestão de Cadeias de Suprimentos ou Supply Chain Management (SCM) consiste no planejamento e coordenação das atividades de uma organização desde a obtenção de matéria prima até a entrega do produto final. De acordo com [14], o SCM corresponde a um conjunto de abordagens usadas para integrar eficientemente fornecedores, fábricas, depósitos e armazéns, sendo que as mercadorias devem ser distribuídas na quantidade certa, no local certo e na hora certa, minimizando os custos globais do sistema e satisfazendo os requisitos impostos. A gestão eficiente das cadeias de suprimentos é vital para que organizações se sobressaiam no mercado cada vez mais competitivo [4]. Devido a esta importância, muitas soluções inovadoras são propostas para melhorar o processo de SCM, inclusive adotando métodos oriundos da Inteligência Artificial [15]. 41

50 Pereira, Banaszewski, Simão e Tacla Método Baseado em Detecção de Mudanças para Determinar Preço de Oferta de Pedidos de Clientes no Ambiente TAC-SCM Para que estes métodos possam ser estudados sem provocar riscos aos processos das organizações, se fazem necessárias ferramentas que simulem as principais características de um mercado competitivo. Com o objetivo de incentivar estes estudos, as entidades e-supply Chain Management Lab da Carnegie Mellon University e Swedish Institute of Computer Science (SICS) desenvolveram um ambiente de simulação de cadeia de suprimentos no segmento de computadores [2]. Este ambiente é denominado Trading Agent Competition - Supply Chain Management (TAC-SCM). O ambiente TAC-SCM permite a competição entre agentes que representam cada qual uma organização. Cada agente deve realizar três atividades principais na interação com o mercado simulado: i) a compra de componentes (i.e. placa-mãe, processador, disco rígido e memória) para a produção de computadores; ii) a produção de computadores e, iii) a venda dos computadores produzidos com o intuito de aumentar o seu lucro. Estas atividades estão vinculadas a certas peculiaridades derivadas do mundo real (e.g. juros bancários, taxas de estocagem de produtos, penalidades por atraso na entrega de produtos), que devem ser contornadas pelos agentes a fim de que se tornem competitivos no mercado. Dentre as atividades realizadas pelos agentes, o presente artigo aborda com maior ênfase a atividade de venda de computadores. Mesmo que haja influência entre as execuções das três atividades, a atividade de venda é a que mais contribui para aumentar a lucratividade dos agentes na competição, uma vez que busca estabelecer preços de venda competitivos em relação aos preços dos outros agentes do mercado. No ambiente TAC-SCM, a atividade de venda é realizada em um cenário estocástico. As negociações entre os agentes e os clientes (i.e. consumidores de computadores) ocorrem por meio do protocolo de leilão fechado e de primeiro preço [13]. Neste tipo particular de negociação, os agentes participantes disputam por meio de lances únicos os pedidos de computadores provenientes dos clientes com a condição de não conhecer os lances de seus adversários. O agente que oferecer o lance com o menor preço (menor preço de venda) para um pedido é considerado o vencedor. Conseqüentemente, o agente vencedor deverá vender a quantidade de produtos definido no pedido pelo preço acordado na negociação. Para determinar o preço de venda dos computadores, é necessário levar em consideração vários fatores, como: a) capacidade de produção (montagem de computadores); b) condições de mercado; d) disponibilidade de matéria prima (i.e. componentes para montagem dos computadores). Dentre estes fatores existem dois cruciais, condições de mercado e acessibilidade a matéria prima. As condições de mercado têm relação direta aos preços dos concorrentes, logo apresenta indeterminismo e, por isso, não podem ser fixos. O fator disponibilidade de matéria prima está vinculada às condições de fabricação de cada fornecedor, as quais são determinadas de forma estocástica pelo ambiente TAC-SCM. Ainda, como exemplo de características que são consideradas pelo ambiente TAC-SCM para gerir os fornecedores pode ser citadas: a) capacidade inicial da produção; b) capacidade normal de produção; c) taxa de reputação, dentre outras. Em situações onde o ambiente é estocástico, os conceitos (no caso deste trabalho, o conceito é preço de venda competitivo) mudam continuamente, sendo que tais mudanças podem ocorrer de forma abrupta ou ocorrer gradualmente. Neste contexto, as detecções de variações em aprendizagem dinâmica pertencem a uma classe de problema conhecida como drift detection [7], que é contemplada neste artigo. Neste artigo, apresenta-se a adaptação de uma abordagem proposta em [6] que faz uso de uma técnica de detecção de variações, mas especificamente um algoritmo representante desta classe denominado Dynamic Weighted Majority (DWM) em conjunto com uma técnica de aprendizagem de máquina baseada em instâncias conhecida como IB3. Particularmente, a aprendizagem baseada em instâncias requer um conjunto de características que representam as instâncias de treinamento, as quais devem pertencer a uma determinada classe. Um exemplo de classe é a compra de produtos. Em [6], os autores aplicaram o DWM para realizar justamente as atividades de compra de produtos, onde classificam se uma compra é interessante ou não em um cenário com características similares ao apresentado no TAC-SCM. Uma particularidade importante que é encontrada em [6] é que todos os atributos para compor as instâncias de treinamento são conhecidos. Neste artigo, apresenta-se a adaptação da abordagem proposta em [6] e adequação da mesma por meio de estratégias baseadas em buscas para determinar preços de venda de computadores. Esta adequação é necessária em virtude da falta de um atributo para compor as instâncias, atributo este sendo o preço de venda. 42

51 Pereira, Banaszewski, Simão e Tacla Método Baseado em Detecção de Mudanças para Determinar Preço de Oferta de Pedidos de Clientes no Ambiente TAC-SCM Esta adequação inova e traz como benefício para abordagem proposta em [6] a utilização da mesma em situações onde a priori não se tem todos os atributos para formar a instância de classificação. Dentre as contribuições já mencionadas, é importante salientar sobre a contribuição na área de negociação, mais especificamente políticas de negociações entre agentes. Onde o método proposto conjuntamente com o algoritmo DWM, buscam fazer descobertas de forma automática e dinâmica das políticas de oferta dos agentes oponentes. Em suma, esta abordagem habilita o agente a detectar as mudanças freqüentes de mercado (i.e. mudança da demanda dos clientes por tipo de computador) e determinar um preço competitivo em função dos lances aceitos/rejeitados obtidos nas negociações com os clientes. Assim, são apresentadas e comparadas por meio de simulações no TAC-SCM duas estratégias de busca, seqüencial e binária, para determinar valores para o atributo preço de venda. 2. FUNDAMENTAÇÃO TEÓRICA Esta seção possui a seguinte estrutura: a subseção 2.1 aborda a competição Trading Agent Competition e o respectivo simulador TAC-SCM, e a subseção 2.2 descreve os conceitos de Inteligência Artificial abordados neste artigo TRADING AGENT COMPETITION O Trading Agent Competition (TAC) é um fórum internacional destinado a incentivar pesquisas em problemas de negociação entre sistemas de agentes, principalmente relacionados a SCM. Este fórum é realizado anualmente e aborda diferentes cenários de cadeias de suprimento. Um deles se refere ao segmento de fabricação e vendas de computadores. Este cenário é simulado em um ambiente denominado TAC-SCM [2]. O ambiente TAC-SCM executa em um servidor e oferece suporte para conexão simultânea de até 6 agentes competidores. Estes devem tomar decisões de forma autônoma, ou seja, sem intervenção humana. Basicamente, uma simulação é iniciada em um instante pré-agendado e é finalizada após o decorrer de 220 dias virtuais, sendo que cada dia virtual tem duração de 15 segundos. Em termos funcionais, o ambiente TAC-SCM permite a simulação das ações de consumidores de computadores e fornecedores de componentes para a fabricação dos computadores, além de simular serviço bancário, e de produção e armazenagem. Basicamente, a função dos consumidores é adquirir computadores de algum dos 6 agentes conectados no simulador e a função dos fornecedores é fornecer componentes para estes agentes produzirem os computadores. Por sua vez, cada agente desempenha funções para gerenciar a cadeia de suprimentos pela qual é responsável. Cada agente realiza atividades de vendas de computadores, compras de componentes, planejamento e coordenação da produção, gerenciamento de estocagem tanto dos computadores prontos quanto dos componentes para a fabricação, e realiza entregas dos computadores para os pedidos feitos pelos consumidores buscando respeitar o prazo estipulado. Dentre as atividades de um agente, este artigo aborda a atividade de vendas de computadores. Esta atividade é executada diariamente pelo agente após o recebimento de um pacote com vários pedidos de cotações de computadores proveniente dos clientes. Cada pedido, chamado de Request For Quotation (RFQ), contém os seguintes atributos: a) Tipo de computador desejado (tipos 1-16); b) Quantidade de computadores desejada (1-20); c) Data de entrega (3-12 dias no futuro); d) Preço reserva (indica o máximo que o cliente deseja pagar pelo produto); e) Penalidade (valor que deve ser pago para cada dia de atraso na entrega. Após o quinto dia de atraso é feito o cancelamento do pedido. Diariamente os agentes recebem um pacote de RFQs, assim são incumbidos de selecionar um subconjunto deste para efetuar ofertas, devendo definir o preço de venda do produto para cada RFQ. Ao receber os lances, os clientes somente consideram aqueles que satisfaçam os seguintes requisitos: a) o lance deve atender toda a quantidade especificada na RFQ; b) o lance deve conter a mesma data de entrega especificada na RFQ; c) o preço da oferta deve ser inferior ou igual ao preço de reserva especificado na RFQ. As ofertas que não atendem estes requisitos são automaticamente descartadas pelos respectivos clientes. Após o recebimento das ofertas dos agentes, os clientes determinarão o ganhador de cada RFQ. O critério utilizado para determinar o ganhador é o menor preço vinculado ao lance. Em caso de empate, o ganhador será determinado de forma aleatória de acordo com as melhores ofertas de mesmo valor. No início do dia seguinte, o agente vencedor é notificado com uma ordem de compra para cada RFQ que ganhou. 43

52 Pereira, Banaszewski, Simão e Tacla Método Baseado em Detecção de Mudanças para Determinar Preço de Oferta de Pedidos de Clientes no Ambiente TAC-SCM 2.2. TÉCNICAS DE INTELIGÊNCIA ARTIFICIAL Esta seção é estruturada da seguinte forma: a subseção descreve a técnica de aprendizagem baseada em instâncias, a subseção descreve a técnica de detecção de variações e, por fim, a subseção descreve o algoritmo de detecção de variações DWM APRENDIZAGEM BASEADA EM INSTÂNCIAS Para [12], a técnica de aprendizagem de máquina baseada em instâncias elabora sua hipótese diretamente a partir das próprias instâncias de treinamento. De forma geral a essência do método baseado em instâncias consiste na representação de instâncias de treinamento como pontos em um espaço n- dimensional. Estes pontos são definidos pelas n características que descrevem as instâncias. Cada característica é representada na forma de um par (atributo, valor) e todas as instâncias apresentam as mesmas características. Será considerado o seguinte exemplo para elucidar como são representadas as instâncias no espaço n- dimensional. Para determinar se um dado dia é apropriado para a prática do tênis, o dia poderia ser representado por duas características as quais remetem a duas dimensões no espaço Euclidiano. As características poderiam ser, temperatura entre os valores 0 até 50 C e tempo, onde tempo seria, dia com sol, chuva, nublado ou com neve, os quais poderiam ser discretizado com os valores 0, 1, 2 e 3 respectivamente. Em função destas características poderiam ser determinadas duas classes, dias apropriados para a prática do tênis ou não. Cada característica representa um eixo no espaço. O conceito chave do aprendizado baseado em instâncias está na propriedade de qualquer ponto de entrada x específico ter probabilidade de ser semelhante às propriedades de pontos na vizinhança de x [1]. Para identificar os (pontos) vizinhos mais próximos de um ponto de consulta, faz-se uso de uma métrica de distância D(x 1, x 2 ) baseada nas características dos pontos x 1 e x 2. Existem diferentes formas de calcular a distância entre duas instâncias, entre estas estão a distância Euclidiana, Mahalanobis e Hamming. Cada uma destas métricas apresenta qualidades particulares que faz com que uma seja mais apropriada do que outra para determinados casos [5]. Entre os algoritmos de aprendizagem baseados em instância, o IB1 se apresenta como o algoritmo básico desta classe. Ele é derivado do algoritmo de classificação de padrões Nearest Neighbor [3] e apresenta algumas evoluções sobre este, tais como: a) normalização do intervalo de valores das características, b) processamento de instâncias de forma incremental e, c) tolerância a valores ausentes de uma característica. Os algoritmos baseados em instâncias são considerados de simples implementação, uma vez que demandam poucos parâmetros de ajustes. Entretanto, em cenários representados por grandes quantidades de dados, estes algoritmos necessitam fazer uso de mecanismos mais eficientes para encontrar os vizinhos mais próximos de um ponto de consulta x. De fato, o simples cálculo da distância até cada ponto exige um alto tempo de processamento DETECÇÃO DE VARIAÇÕES Em determinadas situações a detecção rápida das variações de conceito (i.e. drift detection) é essencial. Esse recurso permite observar as mudanças de contexto que ocorrem no ambiente e em função dessa detecção, selecionar a ação mais pertinente para a situação atual de forma a minimizar o impacto negativo no sistema causado pela variação do ambiente [8]. Segundo [6], a técnica drift detection tem três objetivos principais: a) Detectar rapidamente as mudanças de conceitos; b) Distinguir às mudanças de conceitos dos ruídos; c) Reconhecer e lidar com contextos recorrentes. Alguns sistemas podem captar informações erradas de variação de contexto devido a falhas em algum dispositivo. Estas ocorrências inserem ruído no ambiente, levando a percepções falsas. Estas situações consistem em anomalias que devem ser identificadas, tal identificação deve ser realizada sem afetar os conceitos adquiridos corretamente. Outro aspecto importante nesta técnica consiste na capacidade de identificar conceitos recorrentes, ou seja, conceitos que se revezam entre estados válidos e inválidos com certo grau de regularidade. Por exemplo, o ciclo das estações do ano (i.e. primavera, verão, outono e inverno) podem ser armazenados e reutilizados em situações futuras. A técnica drift detection pode ser definida como uma modificação no conceito atual. Esta técnica é esclarecida por meio da Figura 1, a qual representa uma variação entre dois conceitos. Figura 1: Mudança de conceitos [6]. 44

53 Pereira, Banaszewski, Simão e Tacla Método Baseado em Detecção de Mudanças para Determinar Preço de Oferta de Pedidos de Clientes no Ambiente TAC-SCM Na figura 1 os elementos A e B são conceitos, e i j representa um elemento do conjunto de instâncias. Para exemplificar a variação de conceito, considera-se inicialmente o conceito A como atual e estável, o qual se localiza entre as instâncias i 1 e i x. Considerando a ocorrência de certo número de instâncias que modificam o estado, representado por Δ x (i.e. número de instâncias), o conceito B pode assumir o papel de conceito atual. Como observado na figura 1, à mudança do conceito A para o B ocorre entre i x e i x+δx. Desta forma, quando Δ x = 1, ocorre uma mudança de conceitos brusca, e em contrapartida, quanto maior for o valor de Δ x, a mudança de conceitos ocorrerá de forma mais suave DYNAMIC WEIGHTED MAJORITY (DWM) Um dos algoritmos da família drift detection é o DWM. Ele consiste em um algoritmo de aprendizagem em tempo real para detectar variações de conceitos. O DWM mantém uma base de aprendizado que utiliza como critério de classificação. Possui um conjunto de entidades denominadas especialistas que tentam através da maioria dos votos expressarem suas opiniões. Estes especialistas são criados e destruídos dinamicamente em resposta às suas mudanças de desempenho. Segundo [10], o DWM é um algoritmo de ponderação que combina a decisões de especialistas, retornando a maioria dos votos sobre uma nova previsão. É importante observar que o ponto que remete a técnica de drift detection consiste no momento de treinamento da base de conhecimento de todos os especialistas, isto reflete nas mudanças de conceitos. A base de conhecimento dos especialistas é formada por exemplos, instâncias que são passadas para o aprendizado dos especialistas. Basicamente, o algoritmo inicia criando um conjunto de especialistas. Cada especialista pode ter seu próprio método de aprendizado, e possui também um peso de voto. A cada nova instância, o algoritmo a repassa para o conjunto de especialistas e recebe como retorno uma predição por parte de cada especialista, ou seja, cada especialista retorna a classe que a instância pertence em função do seu conhecimento atual. O algoritmo prediz baseado na maioria dos votos de predição dos especialistas. Se um especialista classificar erroneamente uma instância em relação à predição majoritária, então o algoritmo decrementa seu peso por uma constante de multiplicação β. Se achar necessário, ele também criará um novo especialista com peso 1. O algoritmo normaliza os especialistas com pesos de tal ordem que o maior peso será igual a um. Isso impede que qualquer especialista recém adicionado domine a tomada de decisão. O algoritmo também remove especialistas com pesos inferiores ao limiar definido θ. O parâmetro ρ rege a freqüência com que o DWM, irá criar, remover e atualizar (i.e. reduzir e normalizar o peso do voto) dos especialistas. Observa-se que o DWM gera um número variável de especialistas [6]. 3. METODOLOGIA Esta seção apresenta a forma pela qual a técnica de detecção de variações DWM foi adaptada para a atividade de venda de computadores no ambiente TAC-SCM. De modo geral, o agente se utiliza de um módulo de venda, o qual é responsável por fazer predições do estado atual do mercado e gerar suas ofertas aos clientes. Este módulo é composto pelo algoritmo DWM, que por sua vez é composto por um conjunto de especialistas, os quais possuem o conhecimento do mercado (i.e. conjunto de instâncias de treinamento). O agente é composto em sua totalidade por cinco módulos, sendo eles: a) Mediator: elemento responsável pela integração entre o agente com o servidor TAC-SCM, tem como tarefa distribuir e sincronizar o fluxo de dados de entrada e saída entre o servidor e os módulos do agente; b) Strategy: este módulo tem como função determinar as metas de compra de componentes, as quais são enviadas para o módulo Components; também é de sua responsabilidade estimar o custo de produção de cada tipo de computador o qual é enviado para o módulo Seller. Adicionalmente, seleciona as RFQs mais lucrativas formando uma carteira que é enviada para o Production. Todas essas tarefas são feitas diariamente; c) Components: sua tarefa principal é comprar componentes a um baixo custo, respeitando as metas de compra enviadas pelo Strategy; d) Production: é responsável por formar a sub-carteira de RFQs em função da carteira recebida do Strategy, a qual deverá conter pedidos de cotação mais lucrativos e que poderão efetivamente ser produzidos em função da capacidade de produção da fábrica e dos componentes em estoque. Também é sua função escalonar a produção dos computadores maximizando a produção e minimizando os ciclos ociosos. A entrega dos produtos também é de sua 45

54 Pereira, Banaszewski, Simão e Tacla Método Baseado em Detecção de Mudanças para Determinar Preço de Oferta de Pedidos de Clientes no Ambiente TAC-SCM responsabilidade; e) Seller: como já mencionado, este módulo é incumbido de determinar os valores de venda dos RFQs, estimando-os em função da situação atual do mercado. A Figura 2 apresenta a composição interna do módulo Seller. Basicamente, este é composto por uma entidade de controle, a qual é responsável por fazer a comunicação com os outros módulos e interagir com a entidade de classificação, que envolve o algoritmo DWM. Figura 2: Estrutura interna do módulo de vendas de computadores. Conforme descrito na seção o DWM apresenta alguns parâmetros que devem ser definidos a priori. Tais parâmetros devem ser deliberados em função do problema, de forma a maximizar os resultados. A implementação utilizada foi configurada com os seguintes parâmetros: a) ρ (período) com o valor 20, isto implica que a cada 20 instâncias de treinamentos serão realizadas as seguintes tarefas, reavaliar o peso do voto dos especialistas, eliminação dos especialistas que apresentarem valor inferior ao limiar definido θ e a criação de novos especialistas; b) β (constante de multiplicação) apresenta o valor 0.7, tal valor faz com que o peso do voto do especialista seja decrementado em 30% em função do peso corrente. O peso inicial de cada especialista é igual a 1; c) θ (limiar inferior para remoção) para este parâmetro foi atribuído o valor 0.16, com isto quando o especialista alcançar tal valor será eliminado. Com este respectivo valor para θ, no pior caso o especialista será eliminado na sétima interação (cada interação representa uma atualização do peso do voto do especialista), ou seja, quando ele já obteve mais de 120 instâncias de treinamento. Desta forma, o processo de execução do algoritmo DWM adaptado para a atividade de vendas de computadores ocorre nas seguintes etapas: Treinamento: As ordens de compra ganhas relativas às RFQs do dia anterior são utilizadas para treinar os especialistas, esses especialistas são criados e destruídos dinamicamente conforme seu desempenho. Uma RFQ que deu origem a uma ordem de compra se transforma em uma instância de treinamento interessante, caso contrário, torna-se uma instância não interessante, assim há duas classes. Nessa etapa, todos os dados necessários para formar a instância de treinamento estão disponíveis. Classificação: Cada RFQ é classificada em função do conhecimento dos especialistas e cada especialista possui um peso associado. Esse valor corresponde ao voto. Quando o algoritmo DWM solicita a classificação dos especialistas, eles retornam como resposta a classe a qual pertence aquela RFQ. Em função da soma dos pesos dos votos é determinada a classificação. A técnica de aprendizado de máquina utilizada mede a distância entre a instância que desejamos classificar em função da base de conhecimento dos especialistas pela distância Euclidiana; A figura 3 exemplifica através de um diagrama de sequência as atividades de treinamento e classificação do algoritmo DWM, no decorrer dos dias da simulação. Com objetivo de representar cada RFQ em função da demanda do mercado, as seguintes características foram utilizadas: a) Preço de reserva; b) Segmento do produto (alto, baixo, médio); c) Quantidade de computadores; d) Prazo de entrega (i.e. data de entrega - dia atual); e) Penalidade; f) Preço. Dentre as características, apenas o preço é desconhecido, os outros dados são extraídos da própria RFQ. É importante salientar que a característica do preço remete diretamente ao lucro efetivo que o agente terá com a venda dos computadores. Deste modo um valor muito baixo para esta característica pode representar baixa lucratividade ou até mesmo prejuízo, entretanto, um valor muito alto, fará com que o agente dificilmente consiga vender. Para descobrir valores competitivos de preço de venda, propõe-se o uso de uma estratégia baseada em busca. Esta estratégia baseada em busca é considerada uma heurística (i.e. método sistemático para determinar o valor). A suposição desta incógnita é de 46

55 Pereira, Banaszewski, Simão e Tacla Método Baseado em Detecção de Mudanças para Determinar Preço de Oferta de Pedidos de Clientes no Ambiente TAC-SCM Figura 3: Diagrama de sequência do processo de execução do algoritmo DWM. extrema importância para o classificador determinar a qual classe determinada RFQ pertence. Se a suposição do valor para esta característica for desconexa da realidade do mercado atual, a instância dificilmente irá ser classificada como pertencente à classe de instâncias interessantes, ou seja, a suposição feita para tal característica não condiz com leitura do mercado que o conjunto de especialistas possui. No escopo deste artigo, foram idealizadas duas estratégias, a primeira baseada em busca seqüencial e a segunda é baseada em busca binária. Ambas são descritas em maiores detalhes nas subseções seguintes. 3.1 ESTRATÉGIA DE BUSCA SEQÜENCIAL Essa abordagem consiste em percorrer linearmente o espaço de busca entre o valor máximo disposto a ser pago pelo cliente, valor este que está contido na RFQ, até o preço de custo do produto. O preço de custo é determinado pela média aritmética do custo de aquisição dos componentes necessários para montar determinado produto dos últimos 10 dias, valor este determinado pelo módulo Strategy, conforme descrito na seção 3. A cada nova RFQ, é solicitado ao algoritmo DWM para predizer o preço de venda. O DWM monta a instância de classificação com os dados vindos da RFQ e no atributo preço coloca o valor do preço de reserva. Em seguida, o algoritmo pede que cada especialista classifique a instância como interessante ou não. Caso a maioria dos votos seja da classe interessante, o preço de venda determinado é considerado válido e será feita uma oferta ao cliente com esse valor. Caso contrário, o preço de venda é decrementado em 1% e será solicitada novamente a classificação. Esse processo ocorrerá até que uma das condições seguintes seja atingida: O algoritmo classifica um preço de venda como interessante antes de atingir o preço de custo; i.e. os especialistas chegaram a um consenso e determinaram o preço de venda; O preço de venda é decrementado até o preço de custo sem que seja classificado como interessante. Neste caso, a oferta será feita com preço de custo. Aqui existe a suposição que os especialistas não possuem conhecimento suficiente para determinar o preço de venda. Essa técnica apresenta um custo computacional elevado, pois é necessário um número muito grande de 47

56 Pereira, Banaszewski, Simão e Tacla Método Baseado em Detecção de Mudanças para Determinar Preço de Oferta de Pedidos de Clientes no Ambiente TAC-SCM interações para alcançar seu objetivo. A complexidade dessa técnica no pior caso é da ordem de O(n), onde n é o intervalo do preço de reserva até preço de custo dividido por 1% do preço de reserva. Por exemplo, se o preço de reserva for igual a e o preço de custo igual a 2.000, o espaço de busca possui 20 elementos dado por ( )/(0,01*2.500). A figura 4 ilustra um espaço de duas dimensões que remete a um exemplo de uma instância com duas características, tipo dos computadores e o custo. Cada ponto representa uma instância de treinamento no espaço bidimensional. respectivamente, do segmento médio [( ), (2-3)] e do segmento baixo [( ), (1-2)]. Com a mudança do mercado os valores dos atributos são alterados, onde antes determinada faixa de valores poderia representar o segmento alto com a mudança de mercado representará o segmento médio. Com isso a base de conhecimento dos agentes pode representar instancias de classes distintas em regiões muito próximas ocasionando os ruídos. Diante destas observações pode-se deduzir que o simples fato da RFQ ser classificada como interessante uma única vez pela comunidade de especialista, a classificação não abona sua lisura. 3.2 ESTRATÉGIA DE BUSCA BINÁRIA Mediante os problemas apresentados na estratégia de busca seqüencial buscou-se uma nova abordagem pela pesquisa binária. Nesta busca, são realizadas sucessivas divisões do espaço de busca a procura de uma classificação interessante. Como na primeira técnica proposta, o espaço de busca é dividido entre o preço de reserva e o preço de custo do produto. Figura 4: Representação da base de conhecimento de um especialista, representando-se apenas duas características. Esta estratégia esta suscetível a uma grande taxa de erro, interpretações errôneas em função de ruídos, pois ela percorre linearmente o espaço de busca no intuito de classificar uma dada instância como interessante. A figura 4 ilustra a busca linear em função do custo, e também representa regiões do espaço bidimensional que possuem ruído. Especificamente a figura 4 ilustra três regiões, os segmentos alto, médio e baixo. Cada ponto (instância) é composto por 2 atributos [custo, tipo dos computadores], respectivamente são representados pelos eixos x e y no gráfico. Quanto maior a semelhança nos valores que compõem estes atributos mais próximos às instâncias são representadas no espaço, delimitando regiões semelhantes. Com o passar do tempo e com a mudança do mercado os valores dos atributos tendem a mudar. Estas mudanças fazem com que as instâncias mudem drasticamente sua região no espaço, gerando ruídos. A geração ruído na base de conhecimento dos especialistas pode ser explicada pelo seguinte exemplo: em um dado momento os valores para os atributos custo e tipo dos computadores do segmento alto ficam na faixa [( ), (3-4)] O espaço de busca é dividido ao meio ao se iniciar a classificação. O preço de venda neste ponto é passado ao classificador DWM. Se resposta desta classificação pertencer à classe interessante a busca continuará sendo realizada no intervalo superior, caso contrário, será realizada no intervalo inferior. Por exemplo, se o preço de reserva for igual a e o preço de custo igual a 1.000, o espaço de busca é igual a O espaço de busca é dividido ao meio, resultando no preço de venda dado por ( /2).O preço de venda é inserido na instância a ser classificada e caso o resultado desta classificação seja interessante, o novo espaço de busca será entre e Caso contrário, o espaço de busca será de 1000 até Esse processo ocorrerá até se atingir o valor máximo de interações definido. Assim para determinar o preço de venda é utilizado uma das duas condições seguintes: Em nenhuma das interações a votação dos especialistas obteve a classificação como interessante, e será atribuído à RFQ o preço de custo; Se em alguma/algumas das interações a votação dos especialistas resultar interessante, então atribui-se à RFQ o preço de venda obtido na última interação que a classificou como interessante; A complexidade dessa abordagem é da ordem de O(log 2 n), onde n é o tamanho do espaço de busca. 48

57 Pereira, Banaszewski, Simão e Tacla Método Baseado em Detecção de Mudanças para Determinar Preço de Oferta de Pedidos de Clientes no Ambiente TAC-SCM Assim se o espaço de busca for igual 1.024, tem-se exatamente 10 interações, ou seja, log 2 (1.024). Esta estratégia também busca minimizar o problema de ruído na classificação dos pedidos de cotação, tendo como virtude a cobertura de uma maior extensão do espaço de busca, em função dos saltos consecutivos em torno de uma dada região de interesse, assim torna-se possível detectar a qualidade das instâncias de uma dada região ou a detecção de ruídos através desta aproximação suave. A figura 5 semelhante à figura 4 representa as instâncias em um espaço bidimensional, a figura 5 também ilustra como ocorrem às sucessivas divisões do espaço de busca no intuito de uma classificação mais precisa e robusta, afim de filtrar regiões que apresentam ruídos. Figura 5: Representação da base de conhecimento de um especialista, representando-se apenas duas características. 4. RESULTADOS Esta seção apresenta os testes realizados para validar o método proposto, bem como a forma que eles foram realizados e seus respectivos resultados. Para averiguar se a adaptação do método proposto neste artigo é válida para determinar o preço de venda de pedidos de cotações, foram realizados 10 experimentos práticos. Foi idealizado um cenário com 6 competidores concorrentes vinculados ao simulador TAC-SCM. Para a realização dos experimentos foram utilizadas 3 classes distintas de competidor-agentes, sendo eles compostos pelos mesmos módulos Mediator, Strategy, Components e Production, conforme descrito na seção 3. Eles apenas se diferem pelo módulo de venda, Seller. Foi utilizada esta metodologia no intuito de minimizar a influência de atividades como, compra de componentes e produção de computadores, em relação à atividade de venda, realizada pelo módulo Seller. Que é constituído pelo método proposto. A primeira classe de agentes utiliza a estratégia de lucro fixo para determinar o preço de venda. Em função do preço de custo é acrescido um valor constante de 10%, assim ele sempre busca uma margem de lucro fixa. A segunda classe de agentes utiliza a estratégia de busca seqüencial, conforme descrita na seção 3.1. Por fim, a terceira classe de agentes emprega a estratégia de busca binária conforme descrita na seção 3.2. Nos experimentos práticos não foram realizadas comparações entre o método proposto neste artigo, em relação a soluções propostas em outros agentes encontrados na literatura. A justificativa pelo qual não foi realizada esta comparação é explicada pela alta relação entre as atividades que o agente é incumbido a realizar. A comparação do agente como um todo pode comprometer a análise de desempenho da atividade específica de venda de computadores. A utilização de uma margem fixa de 10% nos agentes da classe de estratégia de lucro fixo tem por intuito produzir baixa lucratividade para todos os agentes. Assim podemos avaliar se os agentes das outras classes conseguem aprender a situação do mercado sem conhecer as ofertas dos concorrentes, apenas com o feedback das próprias RFQs dos pedidos ganhos. Pelo fato dos agentes disporem dos mesmos módulos, eles disputam na maioria das vezes pelas mesmas RFQs, deixando a competição mais acirrada. Devido ao fato dos agentes com estratégia de lucro fixo possuírem a mesma solução em todos os módulos, a probabilidade deles gerarem valores de oferta iguais para as RFQs é ínfima. Em função dos valores estocásticos gerados pelo simulador na representação dos fornecedores de componentes. A utilização da técnica do DWM consiste na detecção de variações de demanda do mercado de forma geral, averiguando a oscilação do mesmo. De forma intrínseca o algoritmo consegue detectar as propostas dos oponentes e gerar preços competitivos objetivando maior lucratividade de forma dinâmica. O gráfico 1 reflete os dados quantitativos dos experimentos realizados. Foram realizadas 10 competições, em cada uma havia 4 agentes da classe de estratégia de lucro fixo, 1 agente da classe estratégia de busca seqüencial. E 1 agente da classe estratégia de busca binária. 49

58 Pereira, Banaszewski, Simão e Tacla Método Baseado em Detecção de Mudanças para Determinar Preço de Oferta de Pedidos de Clientes no Ambiente TAC-SCM Gráfico 1: Dados quantitativos obtidos nos experimentos. Gráfico 1(a): Representa a quantidade de RFQs respondidas por cada agente. Gráfico 1(b): Representa a quantidade de RFQs que foram transformadas em ordens de compra. Gráfico 1(c): Representa o lucro bruto com a venda dos computadores. Gráfico 1(d): Representa a quantidade de computadores vendidos. O gráfico 1(a) representa a quantidade de RFQs que cada agente ofertou. Os agentes com estratégia fixa respondem maior número de RFQ, isto se explica pelo fato que os agentes desta classe têm dificuldade em transformar estes pedidos de cotação em ordens de compra. Com isso os outros módulos do agente raciocinam (e.g. verificam a ociosidade da fábrica) e buscam aumentar a sub-carteira para aumentar o número de vendas. As classes de agentes com estratégia de busca seqüencial e binária apresentam menor quantidade de RFQs, isto é elucidado pelo fato deles conseguirem transformar os RFQs em ordens de compra com maior facilidade. Com isso o módulo Production restringe a sub-carteira de RFQs para que não ultrapasse a capacidade máxima de produção. Os dados apresentados pelo gráfico 1(b) complementam as informações do gráfico 1(a) e reforçam a interpretação obtida pelos dados anteriores. As estratégias de busca seqüencial e binária necessitam de menor número de RFQs para transformar em maior número de ordens. Isto significa que estas duas estratégias conseguem ter melhor desempenho que a estratégia fixa, pois conseguem vender maior número de computadores. A interpretação obtida pela analise do gráfico 1(c) mostra a supremacia das duas classes de agentes com estratégia de busca seqüencial e binária, sendo que estes dados revelam o montante total em dinheiro arrecado. O gráfico 1(d) quantifica o número de computadores vendidos, estes valores remetem diretamente a quantidade de RFQ transformadas em ordens, como descrito na seção CONSIDERAÇÕES FINAIS Em virtude dos dados apurados pela experimentação prática relatados na seção 4, é possível concluir que o método proposto obteve excelentes resultados. Conseguindo detectar as mudanças do mercado, e estabelecendo preço de venda mais competitivo que estratégias mais simplistas como a de lucro fixo. Os resultados satisfatórios são explicados pelo fato 50

59 Pereira, Banaszewski, Simão e Tacla Método Baseado em Detecção de Mudanças para Determinar Preço de Oferta de Pedidos de Clientes no Ambiente TAC-SCM que abordagem adaptada consegue detectar preço médio de cada segmento do mercado. Deste modo suas ofertas tendem a ser competitivas, assim obtendo grande parcela do mercado. É importante salientar que o método proposto não apenas baixa o preço das ofertas a um valor inferior, ele procura o melhor preço. Isto é percebido pelo gráfico 1(c) onde é possível averiguar a grande diferença de arrecadação de dinheiro no acumulado de cada simulação. Isto demonstra a grande lucratividade da abordagem proposta. Outro ponto importante que deve ser considerado é a competição direta entre as estratégias de busca seqüencial e binária. Utilizou-se esta abordagem, onde ambas as estratégias competem juntas no intuito de demonstrar que elas alcançam resultados muito semelhantes, como é possível observar no gráfico 1. Isto é explicado pelo fato que ambas utilizam o método proposto. As estratégias apenas se diferem na forma como fazem a suposição dos preços no momento da classificação. Este artigo não tem por objetivo confrontar às estratégias de busca seqüencial e binária para averiguar qual é a melhor, cada qual apresenta vantagens e desvantagens. O foco deste artigo encontra-se em demonstrar como adaptar a abordagem proposta em [6] em situações onde não se tem todos os valores para os atributos das instâncias. Outra observação que dever ser feita é sobre a estratégia de busca seqüencial. Esta estratégia se desponta em relação ao seu concorrente direto, estratégia de busca binária. Esta sutil diferença demonstrada pelo gráfico 1(c), é elucidada pela sua tática agressiva para determinar os preços, ou seja, sempre é considerada a primeira classificação como interessante, conforme descrito na seção 3.1. Assim ela sempre tenta maximizar o seu lucro, buscando o teto máximo do preço em função do conhecimento dos especialistas. Em contrapartida a estratégia de busca binária é mais comedida, buscando valores mais refinados. Esta característica traz 2 benefícios eminentes, o primeiro remete ao sucessivo refinamento do preço, que em ambientes mais competitivos ou ruidosos esta propriedade é de extrema importância. O segundo beneficio é em função da redução do tempo computacional, característica muito importante que deve ser levada em consideração já que o ambiente de simulação TAC-SCM apresenta tempo finito para as realizações das tarefas dos agentes. Este artigo também contribui e inova no sentido de aumentar a gama de problemas que podem ser atacados com este método proposto. Assim é demonstrado que não há necessidade de se utilizar somente esta técnica em problemas que dispunham a priori todos os valores para os atributos que compõem às instâncias. REFERÊNCIAS [1] Aha, D.W., Kibler, D., Albert, M.K.. Instance- Based Learning Algorithms, Machine Learning. 6(1), Pp , [2] Collins, J. Arunachalam, R. Sadeh, N. Eriksson, J. Finne, N. Janson, S. The Supply Chain Management Game For The 2007 Trading Agent Competition. Pittsburgh, School Of Computer Science Carnegie Mellon University, [3] Cover, T.M., Hart, P.E.. Nearest Neighbor Pattern Classification. Institute Of Electrical And Electronics Engineers Transactions On Information Theory, 13, 21-27, [4] COYLE J.J., BARDI, E.J., LANGLEY, C.J., Supply Chain Management: A Logistics Perspective. South-Western College Pub; 8 Edition, [5] Deza, E., Deza, M., Dictionary Of Distances. Elsevier, ISBN , [6] Enembreck, F. Tacla, C. A. Barthès, J. P. Learning Negotiation Policies Using Ensemble- Based Drift Detection Techniques. International Journal On Artificial Intelligence Tools - World Scientic Publishing Company, [7] Gama, J., Medas, P., Castillo, G., Rodrigues, P. Learning With Drift Detection. Proc. Of The 17th Brazilian Symposium On Artificial Intelligence Sbia 04, Lnai 3171, Ana L.C. Bazzan And Sofiane Labidi (Eds.), Springer, Pp , Brazil. Isbn , [8] Helmbold, D. P., Long, P. M. Tracking Drifting Concepts By Minimizing Disagreements. Machine Learning, 14(1):27-46, [9] Knuth, D. The Art Of Computer Programming, Volume 3: Sorting And Searching, Third Edition. Addison-Wesley. ISBN Section 6.2.1: Searching An Ordered Table, Pp , [10] Kolter, J. Z; Maloof, M. A. Dynamic Weighted Majority: A New Ensemble Method For Tracking Concept Drift. Ieee Conference On Data Mining, 51

60 Pereira, Banaszewski, Simão e Tacla Método Baseado em Detecção de Mudanças para Determinar Preço de Oferta de Pedidos de Clientes no Ambiente TAC-SCM [11] Mitchell, T. Machine Learning. New York: Mcgraw Hill, [12] Russell, S. Norvig, P. Inteligência Artificial. Elsevier Editoria Ltda, [13] Shoham, Y., Leyton-Brown, K.. Multiagent Systems: Algorithmic, Game-Theoretic, And Logical Foundations. Cambridge University Press, [14] Simchi-Levi, D., Kaminsky, P., Simchi-Levi, E. Designing And Managing The Supply Chain. Mcgraw-Hill Higher Education, [15] Tranvouez, E. Ferrarini, A. Multiagent Modelling Of Cooperative Disruption Management In Supply Chains. IEEE,

61 Um Modelo de Agente Econômico Cognitivo com Base no Conceito de Agentes BDI Fernanda Mendez Jeannes 1, Antônio Carlos da Rocha Costa 1 1 Programa de Pós-Graduação em Informática, CEPOLI Universidade Católica de Pelotas (UCPel) Rua Félix da Cunha 412 Telefone: +55 (53) Cep: Pelotas - RS - BRASIL fejeannes@gmail.com, rocha@ucpel.tche.br Abstract Social simulations in agent systems have been a constant theme in Artificial Intelligence. This article applies concepts related to microeconomics and microeconomic systems to help the modeling of cognitive economic agents, with consumer and producer behaviors, based on the BDI model of agents. Keywords: BDI, Microeconomics, Economic agent, Consumer behavior, Theory of the Firm 1. INTRODUÇÃO Sistemas de agentes capazes de perceber e reagir ao ambiente em que estão inseridos assim como possuir conhecimentos e aprender com suas interações têm sido amplamente estudados em Inteligência Artificial (IA) com o objetivo de simular a atividade intelectual humana. O presente trabalho está inserido na área de simulações sociais, envolvendo sociedades de agentes econômicos cognitivos. Uma sociedade é composta por sistemas sociais que podem ter caráter sociológico, político, econômico, cultural, entre outros. Estudos atuais realizados em simulações sociais [3] têm como base a Teoria Sociológica de Piaget [6], que usa valores de troca para regular as interações sociais. As trocas sociais se referem à troca de serviços entre os indivíduos da sociedade. As trocas sociais possuem avaliação qualitativa quanto ao serviço prestado, ou seja, este serviço pode ser 53 considerado ótimo, bom, ruim ou regular, por exemplo, apresentando assim um caráter subjetivo para a regulação do processo de decisão individual. Entretanto, quando se pode mensurar os objetos de troca, esta avaliação pode se tornar quantitativa apresentando assim um caráter econômico. Em simulações com caráter social, um agente realiza um serviço para um segundo agente, neste caso, o serviço é o objeto de troca. O agente que recebe o serviço passa então a ter um débito para com o agente que realiza o serviço, podendo ser cobrado em um outro momento. Nota-se que, neste caso, o objeto de troca (o serviço) só pode ser utilizado entre dois agentes, ou seja, o agente que realiza o serviço só pode cobrar o seu crédito especificamente do agente que recebe este serviço. No caso das simulações com caráter econômico, têmse dois principais objetos de troca, o produto e a moeda. Quando um agente, enquanto comportamento de produtor, vende um produto para um segundo agente, enquanto comportamento de consumidor, ele adquire moeda pela troca. Esta moeda pode então, servir de objeto de troca com um terceiro agente, por exemplo, quando o agente que antes adquiriu moeda enquanto produtor, realize uma compra enquanto consumidor, utilizando a moeda para negociar com o terceiro agente, enquanto produtor. A utilização de moeda como objeto de troca permite que, em simulações de caráter econômico, ocorra uma maior possibilidade de troca utilizando-se o mesmo objeto, aumentado assim, a rede de troca entre os agentes. Neste trabalho serão apresentados os principais con-

62 Fernanda Mendez Jeannes e Antônio Carlos da Rocha Costa Um Modelo de Agente Econômico Cognitivo com Base no Conceito de Agentes BDI ceitos envolvidos na definição de um modelo de um agente econômico cognitivo com comportamento de consumidor e de produtor, tendo por base os conceitos de agentes BDI [11], assim como os resultados obtidos através da análise do comportamento destes agentes em um mercado econômico. A escolha de um modelo de agente que apresente ambos os comportamentos se justifica pelo fato de que, em um mercado, um indivíduo em determinados momentos necessite consumir serviços ou recursos e em outros momentos ele necessite produzir serviços ou recursos. Os comportamentos são definidos de acordo com conceitos como Microeconomia [9] [10], Teoria do consumidor [5] [8] e Teoria da Firma [2] [7]. que engloba os comportamentos de consumidor e de produtor, pode ser observado na Fig. 1. Estudos realizados sobre o comportamento do consumidor em um mercado são utilizados para determinar como um consumidor interage e toma decisões de acordo com as suas necessidades de consumo. O comportamento de produtor do agente econômico cognitivo é determinado pela Teoria da Firma. 2. UM MODELO DE AGENTE ECONÔ- MICO COGNITIVO E SUAS INTERAÇÕES ECONÔMICAS Nesta seção serão apresentados os principais aspectos envolvidos na modelagem de um agente econômico cognitivo, com comportamento de produtor e de consumidor, com base no conceito de agentes BDI, assim como, a estrutura do modelo e das interações econômicas entre os agentes MODELO GERAL DE UM AGENTE ECONÔMICO COGNITIVO O agente econômico cognitivo deve realizar interações econômicas em um mercado de agentes econômicos e ter capacidade de produção e de consumo de produtos. Portanto, apresenta comportamento tanto de consumidor quanto de produtor e atua com ambos os comportamentos de acordo com as suas necessidades. O agente econômico cognitivo deve ser capaz de analisar as suas necessidades para tomar as suas decisões. Para a avaliação e tomada de decisão o agente econômico cognitivo é baseado no conceito de agentes BDI, onde as crenças, desejos e intenções, são analisados para o comportamento de consumidor (de acordo com a Teoria do Consumidor) e de produtor (conforme a Teoria da Firma), a fim de modelar o comportamento do agente econômico. A proposta de um agente que apresente ambos os comportamentos se justifica pelo fato de que, em um mercado, um indivíduo, em determinados momentos, necessite consumir serviços ou recursos e, em outros momentos, ele necessite produzir serviços ou recursos. Por exemplo, um produtor para produzir determinado bem necessita consumir determinada matéria prima, assim como o consumidor para poder consumir determinado bem necessita realizar serviços para receber pagamentos e formar um orçamento. O modelo do agente econômico cognitivo proposto, Figura 1. Modelo de um agente econômico cognitivo O ambiente analisado é o de um mercado onde podem ser observadas as trocas e interações entre os agentes econômicos. Estas ocorrem de acordo com a análise que o agente faz de alguns aspectos como a necessidade, a utilidade e o valor de um produto. O objetivo de um agente econômico cognitivo é considerado um objetivo de manutenção [4]. Um objetivo de manutenção define um estado que o agente quer manter como verdadeiro. No caso dos agentes econômicos cognitivos o objetivo geral é o de se manter sempre no mercado econômico realizando trocas com outros agentes econômicos. Neste trabalho, na modelagem das trocas econômicas realizadas entre os agentes é considerado somente o valor em moeda, na forma de trocas imediatas, pois define bem a modelagem de trocas de caráter econômico. Para o consumidor, os valores associados às trocas são relacionados ao seu investimento monetário para comprar o produto e a satisfação que terá na utilização deste. Os valores associados às trocas por parte do produtor dizem respeito ao investimento feito por ele para produzir o produto, ou seja, o custo de produção, e a satisfação em vender este produto. A Tabela 1 mostra um comparativo de acordo com os estados mentais (crenças, desejos e intenções) do modelo geral de um agente econômico cognitivo, de acordo com o comportamento de consumidor e de produtor. Este comparativo apresenta os principais pontos, referentes aos estados mentais, de um possível mercado de agentes econômicos. Um comparativo semelhante explicitando as principais características referentes aos estados mentais do modelo de mercado específico simulado neste trabalho será apresentado na Seção

63 Fernanda Mendez Jeannes e Antônio Carlos da Rocha Costa Um Modelo de Agente Econômico Cognitivo com Base no Conceito de Agentes BDI Tabela 1. Comparativo das características do agente conforme o comportamento Comportamento Consumidor Produtor Crenças necessidade, conhecimento e benefícios que o consumidor tem sobre o produto e conhecimento de mercado Desejos (Eventos) Intenções (Planos) adquirir produto para satisfazer uma necessidade por um bom preço objetivos em relação à aquisição, ao descarte e ao uso de produtos e serviços valor e lucro sobre o produto e conhecimento de mercado obter lucro com a venda, manter clientes, realizar parcerias, vender produto em estoque ações de produção e/ou venda, oferta e marketing 2.2. ASPECTOS DA MODELAGEM DE UM AGENTE ECONÔMICO COGNITIVO A modelagem de um agente econômico cognitivo pode ser subdividida em modelos específicos (subcategorias) de acordo com os principais aspectos envolvidos na sua concepção. A subdivisão do modelo de agente econômico cognitivo em modelos específicos pode ser observada na Fig. 2. Figura 2. Aspectos da modelagem de um agente econômico cognitivo O Modelo de Conteúdo define o aspecto geral, o tema envolvido na interação entre os agentes. Neste caso, o Modelo de Conteúdo é especificado pela Microeconomia. Aqui, são consideradas as definições sobre o mercado no qual os agentes realizam as suas interações, como a demanda e a oferta de cada agente e a necessidade, a utilidade e o valor associados ao produto. O Modelo de Trocas é definido pelo tipo de trocas que serão realizadas entre os agentes. No caso dos agentes econômicos cognitivos as trocas são do tipo econômicas onde o agente possui valores associados a estas trocas. Quando o agente econômico corresponde ao comportamento de produtor, os valores associados às trocas dizem respeito ao investimento realizado para produzir o produto (custo de produção) e à satisfação em vender este produto. Quando o agente econômico corresponde ao comportamento de consumidor, os valores associados às trocas são relacionados ao investimento em moeda do consumidor para adquirir o produto e à satisfação que terá na utilização do mesmo. O Modelo de Coordenação define os aspectos e as 55 considerações envolvidas na coordenação das interações entre os agentes quando estes estão realizando negociações em um mercado econômico. A coordenação é um quesito importante a ser tratado para que não ocorram conflitos, por exemplo, na troca de mensagens entre os agentes, para que estes não possuam informações desencontradas ou errôneas em sua tomada de decisão. O Modelo de Agentes BDI define os estados mentais dos agentes (crenças, desejos e intenções), fundamental para a deliberação e a tomada de decisão. A divisão dos principais aspectos envolvidos na modelagem de um agente econômico cognitivo se faz fundamental para que se possa adaptar este tipo de modelagem para outros tipos de simulações sociais com agentes cognitivos, como política, filosofia, cultura, etc. Por exemplo, a modelagem pode ser adaptada para simulações políticas, onde o Modelo de Conteúdo pode ser definido pelas Ciências Políticas e o Modelo de Trocas definido pela troca de ideologias que podem ser assimiladas ou não por outros tipos ou grupos políticos ESTRUTURA DAS TROCAS As simulações de um mercado foram realizadas com quatro agentes econômicos cognitivos, possuindo comportamentos tanto de produtores quanto de consumidores, onde existe a possibilidade de cada agente realizar negociações com todos os outros agentes presentes no mercado. Em um mercado, o consumidor procura e adquire produtos do produtor e realiza pagamentos pelas mercadorias adquiridas, enquanto o produtor vende produtos ao consumidor, recebendo o pagamento pela venda. Na simulação de um mercado com agentes econômicos cognitivos que apresentam comportamento tanto de consumidor quanto de produtor, esta troca de produtos por moeda pode ser analisada de acordo com as relações econômicas entre estes comportamentos. Um esquema exemplificando este modelo de trocas com dois agentes econômicos cognitivos pode ser analisado a seguir na Fig. 3. Figura 3. Esquema de relações entre dois agentes em um mercado Um esquema geral com as possíveis relações entre os quatro agentes presentes na simulação de um mercado podem ser observadas na Fig. 4.

64 Fernanda Mendez Jeannes e Antônio Carlos da Rocha Costa Um Modelo de Agente Econômico Cognitivo com Base no Conceito de Agentes BDI Figura 6. Período de consumo Figura 4. Esquema geral de relações entre quatro agentes em um mercado Com a finalidade de regular e ordenar as negociações e as trocas entre os agentes econômicos cognitivos, as interações são realizadas de forma que um agente sempre desempenhe um papel central na negociação. Dependendo do comportamento utilizado pelo agente que desempenha o papel central na negociação, pode-se ter um período de produção ou um período de consumo. Um período de produção designa um determinado número de ciclos em que o agente central da negociação age de acordo com o seu comportamento de produtor, neste caso, os demais agentes no mercado reagem de acordo com os respectivos comportamentos de consumidores, sendo agentes periféricos na negociação. Um exemplo de período de produção pode ser observado na Fig. 5. agentes apresentaria resultados semelhantes, entretanto, a apresentação do modelo ficaria muito mais complexa PAPÉIS ECONÔMICOS E OS ARRANJOS DE NE- GOCIAÇÃO A forma geral de negociação é centralizada em um agente econômico, sendo os demais agentes presentes no mercado considerados periféricos à negociação, como explicitado anteriormente. Desta forma, em um período de produção o agente central é o produtor, enquanto os consumidores são periféricos, ao passo que, em um período de consumo o agente central é o consumidor enquanto os produtores são periféricos. Para melhor definir os comportamentos dos agentes econômicos em cada situação, estes são nomeados de acordo com as suas atribuições nos seguintes papéis: Produtor Central, Produtor Periférico, Consumidor Central e Consumidor Periférico. Uma vez que as simulações são realizadas com quatro agentes econômicos cognitivos, para um período de produção são possíveis quatro diferentes arranjos de negociação, como pode ser observado na Fig. 7, onde os agentes são denotados por A, B, C e D. Figura 5. Período de produção De forma análoga, um período de consumo ocorre quando, por um determinado número de ciclos, o agente central da negociação age de acordo com o seu comportamento de consumidor enquanto os demais agentes no mercado reagem de acordo com os respectivos comportamentos de produtores, desempenhando papéis de agentes periféricos na negociação. Um exemplo de período de consumo pode ser observado na Fig. 6. Cabe ressaltar que a escolha por um modelo de simulação de um mercado econômico envolvendo quatro agentes econômicos cognitivos, deve-se ao fato de que este trabalho objetiva a análise do comportamento microeconômico dos agentes, ou seja, o comportamento dos indivíduos que interagem no mercado econômico, e não o comportamento macro-econômico dos agentes, ou seja, o comportamento emergente das interações de populações destes indivíduos. Além disso, um número maior de Figura 7. Possíveis arranjos de produção Como cada agente apresenta ambos comportamentos, para um período de consumo também existem quatro arranjos de negociação que podem ser simulados com estes quatro agentes, como exibido na Fig

65 Fernanda Mendez Jeannes e Antônio Carlos da Rocha Costa Um Modelo de Agente Econômico Cognitivo com Base no Conceito de Agentes BDI importantes para manter o funcionamento do sistema, como protocolos e formas de interação. A Fig. 9 mostra a modelagem da simulação sobre estas três características. Os principais aspectos envolvidos na simulação referentes à estas três características para os agentes e o sistema podem ser comparados na Tabela 2. Tabela 2. Comparativo dos aspectos da modelagem da simulação Figura 8. Possíveis arranjos de consumo A fim de organizar a troca de informações, ou seja, para garantir a coordenação na troca de informações entre os agentes, as simulações foram realizadas com a presença de um quinto agente, chamado de agente controlador. O agente controlador representa o sistema de negociações dos agentes no mercado, definindo, por exemplo, o tipo de negociação de cada período, o papel de cada agente a cada período, a coordenação das atividades entre os agentes, entre outros ESTADOS MENTAIS DOS PAPÉIS ECONÔMICOS O modelo da simulação de um mercado com agentes econômicos cognitivos tendo por base o conceito de agentes BDI pode ser analisado sobre dois pontos diferentes: o agente e o sistema. Do ponto do agente, pode-se definir e analisar os estados mentais para os quatro papéis de agentes econômicos, o produtor central, o produtor periférico, o consumidor central e o consumidor periférico. O sistema de negociações dos agentes é representado na simulação pelo agente controlador, visto que ele define os papéis de cada agente econômico influenciando suas decisões econômicas. Pelo fato de o agente controlador também ser baseado no conceito de agentes BDI, pode-se da mesma forma definir e analisar os seus estados mentais. Como a simulação tem em sua base aspectos de modelos específicos de modelagem, estes estados mentais podem ser classificados de acordo com três características: as considerações econômicas, as trocas e a coordenação. Nas considerações econômicas estão inseridas todas as informações referentes ao conteúdo econômico, como funções de oferta e demanda, necessidade e moeda. Nas trocas estão inseridos todos os ítens que são efetivamente trocados entre os agentes, como produto e moeda. Na coordenação estão inseridas todas as informações 57 Aspecto Agente Sistema Considerações econômicas Funções de oferta e demanda, quantidade de moeda, necessidade; Controle sobre o tipo de negociação; Controle de estoque, pedidos, produção, preços; Controle sobre o arranjo de negociação Demandar de acordo com suas necessidades; Ofertar de acordo com a sua produção; Deliberar sobre o mercado (efetivar ou não uma negociação) Trocas Troca de moeda e produto; Troca de informação sobre os papéis Troca de informação (sobre preços e pedidos) Coordenação Utilização dos planos de resposta (coordenação indireta); Envio de pedidos e propostas; Respostas de fim de ciclo/período Controle sobre avisos de fim de ciclo/período (coordenação direta); Desencadear o início das negociações; Controle sobre o agente que deve negociar no ciclo A partir da análise dos principais aspectos envolvidos na simulação, a definição dos estados mentais para os papéis dos agentes econômicos pode ser realizada para os agentes e o sistema, como pode ser observado na Tabela 3. A análise dos estados mentais do agente controlador, que representa o sistema de negociações do mercado, pode ser observada na Tabela 4. Tabela 4. Estados mentais do agente controlador Comportamento Agente Controlador Crenças Controle sobre o número de agentes no mercado e sobre os ciclos; Desejos (Eventos) Envio de papéis aos agentes econômicos; Sorteio do tipo e do arranjo de negociação; Intenções (Planosmero Controlar o envio aos agentes econômicos do nú- de agentes no mercado; Iniciar e finalizar ciclos e períodos; Aviso de atualização de crenças ao fim de um período; 3. SIMULAÇÕES REALIZADAS Nesta seção será apresentada a estrutura da simulação econômica utilizada para o sistema de negociações e trocas econômicas entre os quatro agentes econômicos cog-

66 Fernanda Mendez Jeannes e Antônio Carlos da Rocha Costa Um Modelo de Agente Econômico Cognitivo com Base no Conceito de Agentes BDI Figura 9. Modelagem da simulação Tabela 3. Estados mentais dos papéis econômicos Comportamento Produtor Central Produtor periférico Consumidor Central Consumidor Periférico Crenças Função de oferta; Moeda; Função de oferta; Moeda; Função de demanda; Moeda; Função de demanda; Moeda; Produção; Demanda de mercado; Respostas; Produção; Necessidades; Esto- que; Preços; Necessidades; Esto- que; Desejos (Eventos) Vender produtos de acordo com o seu preço de oferta; Intenções (Planos) Verificar e calcular o preço da demanda do mercado; Controlar respostas das análises de proposta; Definir e avisar aos consumidores se a negociação será efetivada ou não; Vender produtos de acordo com o seu preço de oferta; Calcular o preço total da demanda do consumidor central; Adquirir produtos de acordo com a sua necessidade, demanda e orçamento; Deliberar sobre a sua necessidade; Solicitar o preço referente ao seu pedido; Calcular seu preço de demanda; Analisar a proposta; Adquirir produtos de acordo com a sua necessidade, demanda e orçamento; Deliberar sobre a sua necessidade; Solicitar o preço do seu pedido; Calcular seu preço de demanda; Analisar a proposta; nitivos de acordo com os papéis econômicos de cada comportamento. Da mesma forma, serão descritos os parâmetros utilizados nas simulações para cada agente econômico, bem como os resultados relativos às simulações. Para um melhor entendimento do processo de negociação dos agentes na simulação econômica, o esquema geral da simulação será apresentado dividido em três etapas, a etapa de coordenação, o período de produção e o período de consumo. A etapa de coordenação representa o início da simulação, onde ocorre a definição do tipo de negociação e dos papéis que cada um dos quatro agentes presentes no mercado vai utilizar, ou seja, a definição do arranjo de negociação. O período de produção representa a negociação centralizada em um agente que delibera e toma as suas decisões com base em seu comportamento de produtor. Assim como, o período de consumo representa a negociação que tem como elemento central um agente econômico que delibera e toma as suas decisões com base em seu comportamento de consumidor, como visto anteriormente na Seção ETAPA DE COORDENAÇÃO Ao princípio da simulação ocorre uma etapa de coordenação das atividades, iniciada pelo agente controlador. O primeiro passo realizado pelo agente controlador é enviar aos agentes econômicos presentes no mercado a informação do número de agentes disponíveis para negociações. Isto faz com que os agentes tenham consciência deste mercado, ou seja, saibam com quantos outros agentes é possível a tentativa de trocas econômicas. Ao início da simulação, o agente controlador possui um plano para controle do mercado, onde ele deve enviar uma mensagem para o agente periférico 1 ativar o seu plano de controle de mercado, onde este atualiza a sua crença sobre o número de agentes presentes no mercado. Nota-se que o agente controlador ao enviar a mensagem ao agente periférico 1 também envia um plano de resposta. Os planos de resposta desempenham um papel fundamental na coordenação da troca de mensagens entre os agentes. Funciona de forma que o agente que envia a mensagem espere pela informação de que o agente que recebeu a mensagem entendeu esta mensagem e já a executou, estando assim, o agente que enviou a mensagem liberado para seguir com o seu próximo plano, definido pelo plano de resposta. O agente controlador utiliza então os seus planos de controle de mercado até que todos os agentes tenham recebido a informação de quantos agentes econômicos estão disponíveis para negociações. 58

67 Fernanda Mendez Jeannes e Antônio Carlos da Rocha Costa Um Modelo de Agente Econômico Cognitivo com Base no Conceito de Agentes BDI 59 Após, o agente controlador deve sortear aleatóriamente o tipo de negociação a ser realizada no período, se será um período de produção ou um período de consumo. O sorteio é realizado de forma que cada tipo de negociação tenha cinqüenta por cento de chances de ser escolhido. Depois, o arranjo de negociação deve ser sorteado para definir qual papel cada agente vai desempenhar no período. Como explicado anteriormente, existem quatro possíveis arranjos para cada tipo de negociação. Assim como no sorteio do tipo de negociação, o sorteio do arranjo também é realizado para que todos tenham a mesma chance de ocorrer, neste caso, são vinte e cinco por cento para cada arranjo. Então, definido o arranjo, o agente controlador dá início ao período de negociação escolhido enviando um informe a cada agente econômico com informações a serem acrescentadas em suas crenças para posteriores consultas em suas bases de crenças. Estas informações dizem respeito: à identificação do papel de cada agente econômico no período, a quantidade inicial de moeda que cada um possui para realizar as suas negociações e também informações sobre as necessidades, para os agentes econômicos que desempenharem papéis de consumidores. A identificação do papel de cada agente econômico no período é fundamental para que ele possa buscar em sua base de crenças a função econômica que será utilizada, de demanda ou de oferta, dependendo do seu papel. A quantidade inicial de moeda que cada agente econômico possui para realizar as suas negociações é a única informação que persiste ao longo dos períodos, ou seja, cada agente começa com uma quantidade de moeda e o único modo de alterar este valor é através das negociações. Se o agente realizar trocas com o seu comportamento de produtor, ele vai receber moeda pela venda, se o agente econômico realizar trocas de acordo com o seu comportamento de consumidor, ele vai pagar pela mercadoria adquirida. Este fator pode influenciar as negociações, por exemplo, se o agente econômico não realizar vendas de seus produtos. Este fato pode influenciar o seu poder de consumo, pois pode faltar orçamento para ele adquirir produtos. A informação sobre as necessidades para os agentes que desempenharem papéis de consumidores é importante, pois está diretamente ligada à quantidade de produto que o agente deseja adquirir. Estes agentes recebem informação sobre a necessidade de consumo por ciclo e também sobre a necessidade de consumo máximo em um período. A necessidade é tratada da seguinte maneira: a cada ciclo o agente tem a necessidade de consumir um determinado número de unidades de produto. O que significa que, se por algum motivo o agente não conseguir consumir esta quantidade de unidades em um ciclo, essa necessidade é acumulada para o ciclo posterior e assim sucessivamente. Porém o agente possui uma necessidade máxima em um período. Em um período de produção, se algum dos três agentes que estiverem desempenhando os papéis de consumidores periféricos atingirem o limite de consumo, no próximo ciclo será realizado um pedido de zero unidades, sinalizando que não há mais necessidade de consumo. Já em um período de consumo, sendo o agente central o único consumidor, caso ele alcance o seu limite máximo de consumo ele envia uma mensagem ao coordenador para que seja finalizado o ciclo de negociações corrente e seja iniciado um novo período. A decisão pela realização de um sorteio aleatório do tipo e do arranjo de negociação se justifica pela possibilidade de observação de um mercado onde os quatro agentes econômicos têm igual probabilidade de desempenhar cada um dos quatro papéis, sendo livres para decidir quando e de quem desejam adquirir produtos ou quando e para quem querem vender produtos PERÍODO DE PRODUÇÃO O período de produção ocorre quando o agente que desempenha o papel central na negociação corresponde ao comportamento de produtor, enquanto os agentes que desempenham papéis periféricos à negociação correspondem aos respectivos comportamentos de consumidores, como explicado na Seção 2.3. Um período de produção é formado por ciclos de produção. A cada ciclo de produção negociações com o arranjo de produção definido no período de coordenação são realizadas. Em um ciclo de produção, cada agente consumidor periférico envia ao agente produtor central a quantidade de produto que deseja adquirir de acordo com a sua necessidade. O agente produtor central, então, calcula o preço para o total de pedidos recebido, ou seja, calcula o seu preço de oferta sobre a quantidade de produto demandada pelo mercado. Então, ele envia aos consumidores periféricos a informação sobre o seu preço de oferta. Com esta informação, cada agente consumidor deve deliberar sobre se quer ou não efetivar a negociação adquirindo a quantidade de produto solicitada, para isto, cada um deve considerar se o preço está de acordo com as suas possibilidades (conforme a sua função de demanda) e também se possui orçamento suficiente para efetivar a compra. De acordo com esta deliberação, cada agente consumidor periférico envia ao agente produtor central a informação sobre se está disposto ou não a efetivar a negociação. O agente produtor central, por sua vez, só dará início a efetivação das trocas se todos os agentes consumidores aceitarem a proposta de preço de oferta. Se pelo menos um consumidor periférico recusar a compra a negociação não é efetivada. A partir deste ponto, um novo ciclo é iniciado (caso

68 Fernanda Mendez Jeannes e Antônio Carlos da Rocha Costa Um Modelo de Agente Econômico Cognitivo com Base no Conceito de Agentes BDI ainda existam ciclos de produção a serem simulados), ou então, um novo período é iniciado (caso todos os ciclos já tenham sido simulados), onde deve ocorrer um novo sorteio para definir se este novo período será de produção ou de consumo. Ao princípio do período de produção, é iniciado o primeiro ciclo de produção. O agente controlador faz com que o primeiro agente consumidor periférico inicie o seu processo de negociação com o produtor central. Ao início de suas atividades, o primeiro agente consumidor periférico deve definir a quantidade de produto que deseja adquirir, com base nas suas necessidades, e enviar uma solicitação de preço ao produtor central. Este inicia o processo de soma de pedidos para saber qual será a demanda do mercado. Então, através de um plano de resposta, o agente controlador faz com que o segundo agente consumidor periférico inicie o seu processo de negociação com o produtor central, da mesma forma que ocorreu com o primeiro agente consumidor. Novamente, o mesmo processo ocorre, desta vez para que o terceiro agente consumidor periférico inicie o seu processo de negociação. Quando o terceiro agente consumidor envia o seu pedido, o agente produtor central sabe que já está apto a calcular o preço para a demanda do mercado, pois este possui a informação de quantos agentes consumidores estão no mercado. Logo, o produtor central calcula o seu preço de oferta e dá início a fase de análise de proposta enviando ordenadamente a informação sobre o seu preço para que os consumidores periféricos deliberem sobre a aceitação ou a recusa da oferta. Cada consumidor periférico, a partir do cálculo do seu preço de demanda e da verificação do seu orçamento, envia uma mensagem para o agente produtor informando se aceita ou não a negociação. O produtor soma a quantidade de respostas recebidas (para controlar se todos já responderam à análise de proposta) e soma também o número de respostas de aceitação e o número de respostas de recusa. Caso todos os agentes aceitem a negociação, o agente produtor central envia uma mensagem para que cada um ative o seu plano para atualizar as suas crenças sobre quantidade de produto em estoque e moeda. Então o próprio agente produtor atualiza as suas crenças sobre quantidade de produto produzida e moeda e faz uso do seu plano de fim de ciclo para remover suas crenças sobre a quantidade de pedidos recebida e sobre as respostas obtidas. Caso pelo menos um agente consumidor periférico recuse a negociação, o agente produtor central envia uma mensagem aos consumidores informando que a negociação não será efetivada. Neste caso, não são necessárias atualizações de crenças sobre moeda, estoque e produção, o agente produtor somente utiliza o seu plano de fim de ciclo para remover suas crenças sobre o a quantidade de pedidos recebida e sobre as respostas obtidas. Então, o produtor central envia uma mensagem ao agente controlador para que este inicie a finalização do ciclo informando a todos os agente presentes no mercado que aquele ciclo de negociação acabou. Após esta fase de informação, o controle sobre o início da produção volta ao agente controlador para que este defina, de acordo com os critérios adotados, se um novo ciclo deverá ser iniciado ou se o período de produção acabou. No caso do fim de um período o agente controlador envia esta informação aos agentes econômicos para que estes atualizem as suas crenças. Aqui, todas as crenças sobre as negociações devem ser removidas. A única crença que não é removida é sobre a moeda, que é a única informação que persiste e se propaga sobre os períodos de negociação. Assim que todos os agentes econômicos tenham atualizado as suas crenças o agente controlador está apto a realizar um novo sorteio sobre o tipo de negociação do próximo período PERÍODO DE CONSUMO O período de consumo ocorre quando o agente que desempenha o papel central na negociação corresponde ao comportamento de consumidor, enquanto os agentes que desempenham papéis periféricos à negociação correspondem aos respectivos comportamentos de produtores, anteriormente explicado na Seção 2.3. Assim como ocorre no período de produção, o período de consumo também é formado por ciclos de consumo. A cada ciclo de consumo, negociações com o arranjo de consumo definido no período de coordenação são realizadas. Ao princípio de um ciclo de consumo o agente controlador envia uma mensagem ao agente consumidor central para que este inicie o consumo. O agente consumidor central, então, deve verificar se já atingiu a sua necessidade máxima de consumo no período. Caso ele tenha atingido este limite, ele envia uma mensagem ao agente controlador para que este finalize o ciclo corrente e dê início a um novo período (através da escolha do tipo de período), pois ele não tem mais interesse em realizar negociações. Caso a necessidade máxima de consumo não tenha sido atingida, então o agente consumidor central delibera sobre a sua necessidade no ciclo e envia uma mensagem ao primeiro agente produtor periférico solicitando o preço relativo à quantidade pedida. O primeiro agente periférico, por sua vez, calcula o seu preço de oferta relativo ao pedido e envia uma mensagem ao agente consumidor central com a sua proposta de preço. Então, o consumidor central realiza esta mesma seqüência de interações com o segundo e o terceiro agente produtor periférico. Ao obter todas as propostas de preços, o agente consumidor central então analisa estas propostas para decidir se vai realizar a negociação e com quem, se esta for efe- 60

69 Fernanda Mendez Jeannes e Antônio Carlos da Rocha Costa Um Modelo de Agente Econômico Cognitivo com Base no Conceito de Agentes BDI tivada. Para esta tomada de decisão, o primeiro critério utilizado é sobre qual agente ofertou o menor preço sobre o produto, então se este preço se encaixa no preço que o consumidor central está disposto a pagar (de acordo com a sua função de demanda) e se ele possui orçamento suficiente, a negociação será efetivada com o produtor periférico escolhido, se não a negociação é recusada. No caso de efetivação da negociação, o consumidor envia ao produtor escolhido uma mensagem para que este atualize as suas crenças sobre a sua produção e a sua moeda, e através de um plano de resposta ele próprio atualiza o seu estoque e a sua quantidade de moeda. Após, envia uma mensagem ao agente controlador para que este inicie a finalização do ciclo informando a todos os agente presentes no mercado que aquele ciclo de negociação acabou. Se a negociação é recusada, o consumidor central envia uma mensagem ao agente controlador para que este inicie a finalização do ciclo. Analogamente ao ciclo de produção, após a finalização do ciclo, o controle sobre o início do consumo volta ao agente controlador para que este novamente defina, de acordo com os critérios adotados, se um novo ciclo deverá ser iniciado ou se o período de consumo acabou. No caso do fim de um período, o agente controlador envia esta informação aos agentes econômicos para que estes atualizem as suas crenças. Assim como na etapa de produção, todas as crenças sobre as negociações devem ser removidas, exceto sobre a quantidade de moeda. Quando todos os agentes econômicos tenham atualizado as suas crenças, o agente controlador realiza um novo sorteio sobre o tipo de negociação do próximo período PARÂMETROS DA SIMULAÇÃO Com a finalidade de verificar o comportamento dos quatro agentes econômicos cognitivos ao interagirem e tomarem as suas decisões de acordo com os respectivos estados mentais, simulações do mercado foram realizadas utilizando a plataforma Jason [1]. Na simulação do mercado se fazem presentes cinco agentes, o agente controlador, o agente central, que possui os comportamentos de produtor central e de consumidor central e os três agentes periféricos, agente 1, agente 2 e agente 3, que possuem os comportamentos de produtor periférico e consumidor periférico. As simulações são realizadas na forma de períodos, que podem ser períodos de produção ou consumo, como visto na Seção 2.3. A cada período um determinado número de ciclos são simulados para um determinado arranjo de negociação. Pode-se pensar em um período de simulação como a passagem de um dia em um mercado. Os agentes iniciam o dia com os estoques de consumo e de produção zerados, pois ainda não consumiram nem produziram nenhum bem, então, a cada novo ciclo (que representa uma nova negociação no mesmo dia), para calcular os preços que pagariam por uma quantidade de produto ou do custo para produzir uma quantidade do produto, o agente considera a quantidade de produto já consumida ou produzida nos ciclos anteriores. Para que os agentes econômicos possam realizar as negociações no mercado e tomar as suas decisões, algumas especificações como função de oferta, função de demanda, quantidade inicial de moeda e necessidades devem ser definidas. As especificações econômicas que cada agente deve possuir, foram escolhidas de forma que exista uma maior possibilidade de variações de negociações, como aceites, recusas por incompatibilidade de ofertas e demandas, recusas por não haver mais necessidade de consumo e recusas por falta de orçamento. Os quatro agentes econômicos cognitivos presentes na simulação do mercado são nomeados por agente A, agente B, agente C e agente D. Na Tabela 5 serão apresentadas as especificações econômicas para cada agente. Logo, as principais crenças que definem o comportamento econômico de cada agente são individuais: função de demanda, função de oferta, quantidade de moeda, necessidade por ciclo e necessidade máxima de consumo. De acordo com o papel do agente econômico no período, informado através do agente controlador, ele deve consultar a base de crenças para saber sobre qual crença ele deve corresponder. As bases de crenças do agente central, podem ser observadas a seguir: /* Initial beliefs and rules */ //Funcoes de oferta para consumidores centrais funcaooferta(pca,q,p) :- P = 5 + Q *(95 / 100). funcaooferta(pcb,q,p) :- P = 10 + Q *(90 / 100). funcaooferta(pcc,q,p) :- P = 15 + Q *(85 / 100). funcaooferta(pcd,q,p) :- P = 20 + Q *(80 / 100). //Funcoes de demanda para consumidores centrais funcaodemanda(cca,q,p) :- P = Q. funcaodemanda(ccb,q,p) :- P = Q. funcaodemanda(ccc,q,p) :- P = Q. funcaodemanda(ccd,q,p) :- P = Q. //Necessidade por ciclo necciclo(a,necciclo) :- NecCiclo = 4. necciclo(b,necciclo) :- NecCiclo = 3. necciclo(c,necciclo) :- NecCiclo = 2. necciclo(d,necciclo) :- NecCiclo = 1. //Necessidade máxima por periodo qnecmax(a,necmaxima) :- NecMaxima = 40. qnecmax(b,necmaxima) :- NecMaxima = 30. qnecmax(c,necmaxima) :- NecMaxima = 20. qnecmax(d,necmaxima) :- NecMaxima = 10. Onde os papéis são definidos por: pca - papel de produtor central A pcb - papel de produtor central B

70 Fernanda Mendez Jeannes e Antônio Carlos da Rocha Costa Um Modelo de Agente Econômico Cognitivo com Base no Conceito de Agentes BDI Tabela 5. Especificações econômicas Agente A B C D Função de Oferta p = 5 + q 95 p = 10 + q 90 p = 15 + q 85 p = 20 + q Função de Demanda p = 130 q p = 120 q p = 110 q p = 100 q Moeda Necessidade por Ciclo Necessidade Máxima pcc - papel de produtor central C pcd - papel de produtor central D cca - papel de consumidor central A ccb - papel de consumidor central B ccc - papel de consumidor central C ccd - papel de consumidor central D As bases de crenças dos agentes periféricos 1, 2 e 3 podem ser observadas a seguir: /* Initial beliefs and rules */ //Funcoes de oferta para consumidores periféricos funcaooferta(ppa,q,p) :- P = 5 + Q *(95 / 100). funcaooferta(ppb,q,p) :- P = 10 + Q *(90 / 100). funcaooferta(ppc,q,p) :- P = 15 + Q *(85 / 100). funcaooferta(ppd,q,p) :- P = 20 + Q *(80 / 100). //Funcoes de demanda para consumidores periféricos funcaodemanda(cpa,q,p) :- P = Q. funcaodemanda(cpb,q,p) :- P = Q. funcaodemanda(cpc,q,p) :- P = Q. funcaodemanda(cpd,q,p) :- P = Q. //Necessidade por ciclo necciclo(a,necciclo) :- NecCiclo = 4. necciclo(b,necciclo) :- NecCiclo = 3. necciclo(c,necciclo) :- NecCiclo = 2. necciclo(d,necciclo) :- NecCiclo = 1. //Necessidade máxima por periodo qnecmax(a,necmaxima) :- NecMaxima = 40. qnecmax(b,necmaxima) :- NecMaxima = 30. qnecmax(c,necmaxima) :- NecMaxima = 20. qnecmax(d,necmaxima) :- NecMaxima = 10. Onde os papéis são definidos por: ppa - papel de produtor periférico A ppb - papel de produtor periférico B ppc - papel de produtor periférico C ppd - papel de produtor periférico D cpa - papel de consumidor periférico A cpb - papel de consumidor periférico B cpc - papel de consumidor periférico C cpd papel de consumidor periférico D 5. RESULTADOS DA SIMULAÇÃO As simulações realizadas com quatro agentes econômicos cognitivos modelados de acordo com os conceitos e parâmetros até aqui exibidos, reverteram-se em resultados satisfatórios, pois o modelo de agente econômico cognitivo se mostra válido de acordo com as interações e os comportamentos dos agentes. A seguir serão apresentados dois períodos de uma simulação realizada com dez períodos de quatro ciclos cada, sendo um período de produção e um período de consumo, a fim de explicar a leitura dos resultados obtidos com a simulação. Nas tabelas que representam os resultados da simulação, pode ser observado: qual arranjo de negociação e o papel de cada agente no período, a quantidade de produto em estoque (para os consumidores), a quantidade de moeda de cada agente, a quantidade de produto produzida (para os produtores), o pedido realizado (para os consumidores) e os preços de oferta e demanda relativos ao pedido. Também é possível observar o resultado da negociação, se foi aceita ou recusada, assim como as quantidades de estoque, moeda e produção ao final da negociação. Para o primeiro período simulado com o arranjo de negociação 3, onde o agente C é o produtor central e os demais são consumidores periféricos, pode-se observar que nos quatro ciclos, o agente D recusa a negociação, pois o preço de oferta não está de acordo com o seu preço de demanda. Deste modo, em nenhum ciclo ocorre a compra do produto, visto que, como explicado anteriormente, se pelo menos uma gente recusa a negociação a compra não é efetivada. Os valores relativos a esta simulação podem ser observados na Tabela. 6. O segundo período simulado é um período de consumo, cuja negociação é realizada de acordo com o arranjo 1, onde o agente A age de acordo com o papel de consumidor central e os demais agentes, de acordo com os respectivos papéis de produtores periféricos. Os resultados da simulação deste período pode ser analisados na Tabela. 7. No primeiro e no segundo ciclo o agente A realiza a negociação com o agente B, pois este possui o menor preço de oferta. No terceiro ciclo, como o agente B já produziu oito unidades, o preço dele se torna mais elevado quando comparado com o agente C, de quem o agente A acaba realizando a compra. No último ciclo, o preço de 62

71 Fernanda Mendez Jeannes e Antônio Carlos da Rocha Costa Um Modelo de Agente Econômico Cognitivo com Base no Conceito de Agentes BDI Tabela 6. Resultado da simulação do período1: produção Tabela 7. Resultado da simulação do período 2: consumo 63

72 Fernanda Mendez Jeannes e Antônio Carlos da Rocha Costa Um Modelo de Agente Econômico Cognitivo com Base no Conceito de Agentes BDI oferta do agente B volta a ser favorável, pois desta vez quem aumentou o preço de oferta por causa da produção foi o agente C. 6. CONCLUSÃO Os principais conceitos pertinentes à avaliação de uma modelagem de agentes microeconômicos com base em agentes BDI foram abordados neste trabalho para fundar a estrutura de um mercado com agentes econômicos cognitivos. Os estudos realizados durante este trabalho mostram ser possível a modelagem de trocas entre agentes microeconômicos com comportamento de consumidor e produtor tendo por base o modelo de agentes BDI, pelo fato de estes agentes simularem estados mentais e reagirem à percepções do seu ambiente de acordo com os seus objetivos. Considerando-se a simulação de um mercado, os agentes microeconômicos, produtores ou consumidores, devem reagir à estímulos e percepções de preços e quantidades de um determinado produto para atingir seus objetivos de vender ou comprar produtos. As simulações de um mercado com quatro agentes econômicos cognitivos se mostraram muito satisfatórias pelo fato de os agentes corresponderem aos comportamentos de produtor e de consumidor e negociar, agir e tomar suas decisões de acordo com as respectivas funções de oferta e demanda. Os resultados das simulações corroboram o modelo de agente econômico cognitivo com comportamento de produtor e de consumidor com base no conceito de agentes BDI. Outro ponto positivo dos resultados obtidos refere-se à possibilidade de uma simulação mais flexível, onde os agente possuem uma liberdade probabilística de negociação como produtores ou consumidores. A modelagem dos agentes também se mostrou promissora quanto à outros tipos de simulações de sistemas sociais, como política, filosófica e cultural, por exemplo. Uma possibilidade de simulação política pode ser a simulação de um debate eleitoral, onde alguns agentes candidatos de diferentes ideais possam expor as suas idéias enquanto os agentes eleitores podem aderir ou não à estas idéias e, ao final do debate, votar no candidato escolhido. Também se mostrou praticável a implementação de um mercado em que não só o consumidor faz pedidos ao produtor, como o produtor pode oferecer produtos ao consumidor. Em resumo, as simulações de mercados econômicos com agentes econômicos cognitivos que apresentem comportamento tanto de produtor quanto de consumidor, mostrou que é possível explorar sistemas sociais, neste caso particularmente o sistema microeconômico, e obter resultados satisfatórios com a interação dos agentes em um ambiente social, aqui representado por um mercado econômico. Referências [1] Rafael H. Bordini, Jomi Fred Hübner, and Michael Wooldridge. Programming Multi-agent Systems in AgentSpeak Using Jason. Wiley Series in Agent Technology. Wiley, Liverpool, UK, [2] Kalman J. Cohen and Richard M. Cyert. Theory of the Firm: Resource Allocation in Market Economy. Prentice-Hall, New Jersey, [3] G. P. Dimuro, A. C. R. Costa, and L. A. M. Palazzo. Systems of exchange values as tools for multi-agent organizations. Journal of the Brazilian Computer Society, 11(1):31 50, Special issue on Agent s Organizations. [4] Simon Duff and James Harland. Formalising proactive maintenance goals. Declarative Agent Languages and Technologies DALT, [5] John C. Mowen and Michael S. Minor. Comportamento do Consumidor. Pearson Prentice Hall, [6] Jean Piaget. Sociological Studies. Routlege, London, [7] Diva B. Pinho, Marco A. S. de Vasconcelos, and et al. Manual de Introdução à Economia. Saraiva, São Paulo, [8] Beatriz S. Samara and Marco A. Morsch. Comportamento do Consumidor: conceitos e casos. Prentice Hall, [9] Hal R. Varian. Microeconomia. Campus, Rio de Janeiro, [10] Walter J. Wessels. Microeconomia: Teoria e Aplicações. Saraiva, São Paulo, [11] M. Wooldridge. Reasoning about Rational Agents. Intelligent Robots and Autonomous Agents. The MIT Press, Cambridge, Massachusetts,

73 Introdução da Dimensão Dialógica no Moise+, com Aplicação na Modelagem de Processos de Gestão em uma Universidade Comunitária A. Hübner 1, A.C.R. Costa 2, G.P. Dimuro 2, V.L.D. Mattos 3, S.S. Hernandes 1 & M.M. Lange 1 1 Centro Politécnico, Universidade Católica de Pelotas Rua Felix da Cunha 412, Pelotas - RS - BRASIL 2 PPGMC - Centro de Ciências Computacionais, Universidade Federal do Rio Grande Av. Itália km 08, Campus Carreiros, Rio Grande - RS - BRASIL 3 DEMAT, Instituto de Ciências Exatas, Universidade Federal Rural do Rio de Janeiro BR-465 km 7, Seropédica, Rio de Janeiro - RJ - BRASIL {ale.hubner ac.rocha.costa gracaliz viviane.leite.mattos}@gmail.com Abstract Several proposals have been presented for modeling the organization of multiagent systems. One of them is MOISE+, which specifies three dimensions: the structural dimension, which defines roles and links of inheritance and groups; the functional dimension, which specifies a set of global plans and missions for the goals to be achieved; and the deontic dimension, which is responsible for assigning obligations and permissions to roles with respect to missions. The aim of this work is to introduce a fourth dimension in the MOISE+ model, focused in the communication between roles. For that, the model MOISE+ will be extended with a dialogic dimension that defines the protocols used for role communication. In order to interlink this new dimension to the MOISE+ model, new relations will be added to the deontic specification, which is responsible for indicating which protocols should or could be used to achieve the goals that constitute the roles missions. The use of the extended model is illustrate with a case study of the process of the creation of a graduate course in a community university. Keywords: multiagent systems, organization models, MOISE+, dialogical dimension, role communication protocols, modeling of management processes INTRODUÇÃO O objetivo principal dos Sistemas Multiagentes (SMA) é prover mecanismos para a criação de sistemas computacionais a partir de entidades de software autônomas, denominadas agentes, que interagem na resolução de problemas [18, 21, 22]. Um agente é autônomo quando sua existência e funcionamento independe dos demais agentes, mas respeita as restrições comportamentais que seu grupo estabelece. Os sistemas SMA tem como principal característica a coletividade e não um único indivíduo, e, desta forma, passa-se o foco para a forma de interação entre as entidades que formam o sistema e para a sua organização [7]. Um dos grandes desafios da área de sistemas computacionais complexos foi conseguir criar mecanismos genéricos para que a coordenação dos agentes funcionasse de forma adequada e eficiente. Observa-se que a comunicação é o principal instrumento dos agentes para coordenarem as suas ações. A interação de agentes pode ser de forma direta (por meios de comunicação) ou indireta (por meio do próprio ambiente) [22]. Uma organização de SMA pode ser vista como um conjunto de restrições adotadas por um grupo de agentes

74 A. Hübner et al. Introdução da Dimensão Dialógica no Moise+ para que possam atingir seus objetivos mais facilmente. Os modelos de organização desenvolvidos na área de sistemas multiagentes podem ser analisados conforme uma variedade de dimensões, tais como as dimensões estrutural, dialógica, funcional, normativa e ontológica. [3] O modelo organizacional MOISE+ [16, 17, 18] contempla a especificação de três dimensões: a estrutural, preocupada com a definição dos papéis e ligações de heranças e grupos; a funcional, onde é estabelecido um conjunto de planos globais e missões para que as metas sejam atingidas; e a deôntica, que é responsável pela definição de qual papel tem obrigação ou permissão para realizar cada missão. O MOISE+ foi influenciado de forma direta pelo modelo anterior, o modelo MOISE [12]. O MOISE+ acrescentou vários atributos ao modelo MOISE, mas terminou abandonando componentes que especificavam a comunicação dos papéis. Essas modificações simplificaram o modelo permitindo focalizar alguns componentes organizacionais, no caso a estrutura, o funcionamento e as obrigações. Entretanto, observa-se que, no nível da organização do SMA, a especificação das interações entre papéis pode ser uma ferramenta para regular as interações entre os agentes que assumem tais papéis. Assim, da mesma forma que a comunicação entre agentes é fundamental para possibilitar a interação entre eles, tem-se a comunicação entre papéis é um mecanismo de interação no nível organizacional que vai regular a comunicação entre os agentes que assumirem tais papéis. Isso torna-se particularmente importante em algumas tipos de organizações onde os processos que nela ocorrem envolvem um fluxo intenso de comunicação entre os papéis e/ou entre grupos e subgrupos de papéis. Um exemplo de tal tipo de organização é uma universidade sob o ponto de vista de seus processos de gestão, dirigidos principalmente pela comunicação entre os papéis, tais como, reitor, diretor de centro, coordenador de curso, professor, secretária, ou entre grupos de papéis (por exemplo: reitoria, corpo docente, conselho universitário, comissão científica, conselho de centro, núcleo de pesquisa, etc.), ou entre sub-grupos (como os grupos de pesquisa de um núcleo de pesquisa). Em [14], foi realizada a modelagem conceitual da organização de uma universidade particular comunitária e de seus processos de gestão, onde essas particularidades foram evidenciadas. Mais especificamente, em [15], utilizou-se o modelo organizacional MOISE+ para uma tentativa de modelar a organização de um sistema multiagente para simulação dos processos de gestão de cursos de especialização no contexto deste tipo de universidade, onde então percebeu-se a necessidade de especificar a comunicação entre papéis identificados na organização. Assim, este trabalho apresenta a proposta da introdução de uma dimensão dialógica no modelo MOISE+, focada na comunicação entre papéis no nível da organização de um sistema multiagente, e não na comunicação entre agentes no nível da população, como é freqüente (cf. [1]). Apresenta-se também um estudo de caso, relativo ao processo de criação de um curso de especialização em uma universidade particular comunitária. Este artigo está organizado como descrito a seguir. A Seção 2 discute os conceitos de interação e comunicação em SMA. Na Seção 3, apresentam-se os principais conceitos sobre organização de SMA, focando no modelo MOISE+. A Seção 4 aborda o problema da interação no nível da organização de sistema multiagente, introduzindo a proposta da dimensão dialógica que estende o modelo MOISE+ para permitir a especificação da comunicação entre papéis. Na Seção 5, apresenta-se um estudo de caso sobre o processo de criação de um curso de especialização em uma universidade, que se mostrou interessante por apresentar uma organização onde há um grande fluxo de comunicação entre os papéis envolvidos. A Seção 6 é a Conclusão. 2. INTERAÇÃO E COMUNICAÇÃO EM SISTEMAS MULTIAGENTES Para atingir sua metas, os agentes geram planos que guiam suas atividades e ações, as quais podem ser seqüenciais, escolhas ou paralelas. Denomina-se interação entre agentes ou entre agente/ambiente uma sequência de trocas de informações, que pode ser realizada de forma direta ou de modo indireto. A interação entre agentes tem dois fins principais: 1. a partilha do conhecimento, informação, crenças ou planos com outros agentes; e 2. a sincronização de atividades entre agentes. As interações instrumentalizam as ações de coordenação de dois ou mais agentes, propiciando a um grupo de agentes inteligentes combinarem seus esforços na busca de solução para problemas distribuídos. A comunicação é o processo de transmissão de mensagens que permite que os agentes em um sistema multiagente realizem interações que servirão de base para coordenar suas ações e realizar a cooperação. Algumas especificações de Linguagem de Comunicação de Agentes (LCA) [9] foram propostas com o objetivo de viabilizar a comunicação entre agentes desenvolvidos em projetos diferentes. Existem várias linguagens definidas no âmbito da comunicação em SMA, para serem usadas em diferentes níveis de abstração do mecanismo de comunicação. Dentre as mais utilizadas destacam-se o KQML [19], KIF [11] e o FIPA ACL [9], que se baseia nas duas primeiras. Neste 66

75 A. Hübner et al. Introdução da Dimensão Dialógica no Moise+ trabalho, serão empregados alguns dos parâmetros utilizados nestas linguagens, em especial a FIPA ACL, que é um padrão que tem grande aceitação. A base de comunicação entre agentes, no padrão FIPA ACL (Agent Communication Language), é o uso de atos comunicativos definidos por performativas, como request, inform ou refuse, que indicam o tipo de mensagem que está sendo transmitida e que são independentes do conteúdo da mensagem. O fornecimento do conteúdo da mensagem juntamente com a performativa associada constitui um envelope bem especificado que é denominado de Envelope da Linguagem de Comunicação de Agentes, ou Envelope ACL. É pela ACL que se especificam os mecanismos necessários para adicionar contexto ao conteúdo das mensagens e ao ato comunicativo, tais como identificar o emissor e o receptor, a linguagem de conteúdo e o protocolo de interação da mensagem, entre outros [9]. Graças a uma ACL, agentes de sistemas heterogêneos conseguem se comunicar, uma vez que a definição da ACL é uma definição abstrata e bastante genérica. 3. ORGANIZAÇÃO DE SMA A organização de um SMA é definida por [10] como um padrão descrevendo como os seus membros se relacionam e interagem para atingir um fim comum. É um conceito essencial na estruturação de uma comunidade de agentes computacionais inteligentes [3, 6]. A necessidade da organização do sistema decorre das demandas por coordenação das atividades dos agentes, que é um pré-requisito básico para a obtenção de um comportamento coerente e efetivo, tanto no nível individual quanto no nível global do sistema. A organização de um SMA consiste em um grupo de agentes que: desempenham papéis, uns para os outros; possuem compromissos mútuos e globais; compartilham de crenças comuns; realizam intenções conjuntas, no sentido de atingir um mesmo objetivo; utilizam-se de um mecanismo de interação para se relacionarem MODELOS ORGANIZACIONAIS Os modelos organizacionais ajudam a visualizar de forma mais ou menos abstrata a estrutura e o funcionamento da organização de um SMA, procurando prever soluções que facilitem à organização atingir os seus objetivos. A Figura 1, extraída de [20], mostra dois tipos básicos de organizações de sistema multiagente: uma que possui a visão centrada nos agentes e a outra na organização. Quando a visão é centrada nos agentes, o observador não 67 tem acesso a uma descrição da organização, por ela ser interna aos agentes, podendo apenas acompanhar os comportamentos destes e, a partir deles, criar uma visão subjetiva da organização. Já na visão centrada na organização, o observador poder contar com um descrição explícita da organização, por ela ser externa aos agentes. A descrição explícita da organização de um sistema multiagente, necessária na visão centrada na organização, é feita segundo um modelo organizacional, que determina como a organização é constituída [20]. A seguir, apresenta-se uma breve descrição de alguns modelos clássicos. Para uma comparação entre esses modelos através de exemplos veja também [2]. Modelo AALAADIN. Proposto por [8], tem o ponto de vista centrado na organização, e a organização é definida como um conjunto de grupos que possuem uma determinada estrutura. Cada grupo contém um conjunto de papéis necessários ao seu funcionamento e um conjunto de agentes membros. Os papéis são representações abstratas para as funções que os agentes disponibilizam. A arquitetura interna dos agentes é isenta de qualquer tipo de restrição. Um agente é considerado simplesmente como uma entidade ativa e comunicativa que assume papéis nos grupos onde é membro. Este modelo pode ser utilizado tanto para sociedades Tipo OR (o sistema possui uma organização, mas os agentes não têm capacidade para conhecer tal organização), quanto Tipo OC (os agentes podem tanto conhecer a organização institucionalizada quanto a organização observada). Essa propriedade é comum entre os modelos que seguem a visão centrada na organização. Metodologia GAIA. A metodologia GAIA [21] tem aplicabilidade a um grande conjunto de sistemas multiagentes, além de lidar com aspectos de nível macro (sociedade) e de nível micro (agente) dos sistemas. É baseada na visão de que um SMA se comporta como uma organização computacional que consiste de vários papéis interagindo. Ela permite que um analista vá sistematicamente do estabelecimento de requisitos até um projeto que seja suficientemente detalhado a ponto de ser implementado diretamente, utilizando parte da terminologia e notação da análise e projeto orientados a objetos. Nesta metodologia, um papel é caracterizado por: Responsabilidade: funções que o agente deve realizar para o sistema, definidas por meio de atividades e protocolos; Permissões: para utilização de recursos; Atividades: ações que o agente pode realizar; Protocolos: como o agente deve interagir com os demais.

76 A. Hübner et al. Introdução da Dimensão Dialógica no Moise+ Figura 1. Visões de organizações de SMA [20] Modelo TOVE. Proposto por [10], este modelo envolve três conceitos: Organização: consiste de várias divisões e subdivisões, um conjunto de agentes alocados nestas divisões, um conjunto de papéis que os agentes assumem e um conjunto de metas; Papel: são definidos como protótipos de funções a serem desempenhadas pelos agentes na organização; Agente: pode assumir um ou mais papéis e se comunicar com outros agentes, caso haja uma ligação de comunicação entre eles. Os agentes também realizam atividades e podem assumir determinados recursos na utilização de atividades, porém sujeitos a determinadas restrições de comportamentos. Modelo Funcional TÆMS. Tem como objetivo descrever a estrutura de tarefas de modo a viabilizar a análise e a simulação da organização [4, 5]. Diferente dos outros modelos, o TÆMS tem a tarefa como noção central. As tarefas podem ser abordadas por três pontos de vista diferentes: A visão objetiva: considera a estrutura de tarefas completa, real, que resolve um problema em um determinado período de tempo. A visão subjetiva: é tida pelos agentes que participam na execução da tarefa, ou seja, é a tarefa vista pelos agentes. Em geral os agentes não vêem a tarefa como um todo, mas somente a parte que lhes cabe, aquela que a organização do sistema permite. A visão generativa: contém informações de como gerar várias visões objetivas e subjetivas para a resolução de problemas em um dado domínio. A partir destas visões geradas, pode-se calcular informações mais gerais (estatísticas) sobre a tarefa MODELO ORGANIZACIONAL MOISE+ O modelo organizacional MOISE+ (Fig. 2) [20] visa mostrar como a organização de um SMA pode contribuir para a manutenção e busca da sua finalidade, estabelecendo os componentes que formam a organização e como estes se relacionam. Pode ser usado também para auxiliar no processo de reorganização do sistema, quando necessário. O modelo MOISE+ apresenta três formas de estabelecer restrições organizacionais, chamadas dimensões: Dimensão Estrutural (papéis, grupos e ligações): vê o papel como um conjunto de restrições comportamentais que um agente aceita quando entra em um grupo da organização; um exemplo disso é um agente assumir o papel de um professor, assim passando a ter autoridade sobre o agente que assumiu o papel de aluno. Dimensão Funcional (metas, planos e missões): define um conjunto de planos que um SMA utiliza para alcançar suas metas, que se estruturam em uma árvore de decomposição de metas em sub-metas. A decomposição das metas constitui os planos e sub-planos. 68 Os conjuntos de metas no esquema social são chamadas de missões. As missões são atribuídas aos papéis e representam compromissos dos agentes que assumem esses papéis. Um agente comprometido com uma missão passa a ser responsável pela satisfação de todas as metas da mesma. As missões podem receber níveis de preferência individuais, que são usadas nos casos em que se deseja indicar uma ordem de preferência entre as missões.

77 A. Hübner et al. Introdução da Dimensão Dialógica no Moise+ Dimensão Deôntica (obrigações): é a responsável por estabelecer a relação entre a Especificação Estrutural e a Especificação Funcional, ou seja, quais as missões que um papel tem a obrigação ou permissão de se comprometer. Estas três dimensões é que compõem uma Especificação Organizacional (EO), a qual não inclui agentes, pois tem um caráter mais abstrato. A EO, por sua vez, é instanciada por um conjunto de agentes formando uma Entidade Organizacional (EnO), que estabelece a posição dos agentes no contexto do sistema. A Fig. 2, baseada em [20], ilustra a composição de uma especificação organizacional e de uma entidade organizacional de um sistema multiagente. Figura 2. Constituintes de um sistema multiagente segundo o modelo organizacional MOISE+ [20] Uma organização definida de acordo com o modelo MOISE+ pode ser respresentada em um arquivo XML, em um formato específico, o qual pode ser manipulado por um editor MOISE+. 4. UMA DIMENSÃO DIALÓGICA PARA O MOISE+ Uma análise análoga à realizada na Seção 2, sobre interações de agentes de um SMA, pode ser realizada no nível da organização do SMA, sobre interações de papéis. Assim, pode-se dizer que a especificação das interações entre papéis (no nível da organização) pode regular as interações entre os agentes que assumem tais papéis (no nível dos agentes). 69 Figura 3. Modelo MOISE+ estendido com a dimensão dialógica Por exemplo, no modelo GAIA [23] um papel é definido por um conjunto de 4 atributos: responsabilidades, permissões, atividades e protocolos. Os protocolos estabelecem os requisitos das interações entre os papéis (p.ex., o papel de gerente pode ter associado a si o protocolo de Redes de Contrato). Estes protocolos são definidos na fase de análise de cada papel, onde são identificados e documentados. Esta associação de protocolos e papéis gera um modelo de interação, que especifica as ligações entre os papéis. Observa-se, entretanto, que o modelo organizacional MOISE+ não especifica como será feita a interação dos papéis. Por isso, neste trabalho, propõe-se o desenvolvimento de uma quarta dimensão, denominada de dimensão dialógica, focada na comunicação dos papéis, estendendo o modelo MOISE+ com a especificação de protocolos u- sados na comunicação entre papéis. Uma versão inicial deste trabalho foi apresentada em [13]. A inclusão da dimensão dialógica no modelo MOISE+ implica o acréscimo de novas relações na dimensão deôntica, as quais são responsáveis por indicar quais missões possuem metas que necessitem de comunicação entre papéis. Os protocolos definidos na dimensão dialógica são abstratos, não especificando detalhes das operações de comunicação que utilizam. A vinculação entre essas operações abstratas de comunicação e as primitivas de comuncação efetivamente disponibilizadas aos agentes que vão desempenhar os papéis definidos na organização deverá ser feita em separado, através de um documento que denominamos de Especificação Dialógica. A nova configuração organizacional proposta para o MOISE+ está apresentada na Fig. 3. A especificação deôntica contará agora com um elemento deontic-link, responsável por definir que protocolo será usado quando um papel possuir uma meta que exija interação com outro papel (ver Fig. 4). Os protocolos são definidos na especificação dialógica de modo abstrato, mas utilizando alguns parâmetros e performativas da FIPA ACL para montar a estrutura da men-

78 A. Hübner et al. Introdução da Dimensão Dialógica no Moise+ <deontic-specification> <deontic-relation type="permission" role="role[x]" mission="m1" /> <deontic-relation type="permission" role="role[y]" mission="m2" /> <deontic-relation type="obligation" role="role[z]" mission="m3" /> <deontic-links mission="m1" > <link type="obligation" goal="g1" protocol="p1" /> </deontic-links> <deontic-links mission="m2" > <link type="obligation" goal="g2" protocol="p2" /> <link type="permission" goal="g3" protocol="p3" / </deontic-links> </deontic-specification> Figura 4. Uso da comunicação na especificação deôntica sagem (ver Fig. 5). Pode-se acompanhar os elementos e atributos XML utilizados na implementação da dimensão dialógica que ilustram dois protocolos, um voltado para informar um agente e o outro para requisitar (ordenar) algo a um agente: O elemento <protocol> possui um atributo: 1. id, responsável pela ligação da especificação de comunicação com a especificação deôntica. O elemento <msg> possui de dois a quatro atributos: 1. send: quem envia a mensagem; 2. receiver: quem recebe a mensagem; 3. propagate: envia a mensagem para um grupo; 4. to: destino final da mensagem quando é usado encaminhamento. O elemento <content> possui quatro atributos: 1. type: define a interpretação da mensagem; 2. from: contém o primeiro remetente da mensagem; 3. says: carrega o conteúdo da mensagem; 4. force: indica se a mensagem pode ou não receber alterações. O elemento <return> pode ter um ou dois atributos: 1. reply-with: contém o código identificador para uma resposta de retorno; 2. in-reply-to: contém o código referenciado na mensagem recebida. Para definir a interpretação desejada para cada tipo de mensagem, as performativas da linguagem ACL foram incorporadas ao protocolo de comunicação. Conforme a Tabela 1, pode-se observar o emprego de uso de cada uma delas. Alguns exemplos de uso das performativas (Tabela 1) mais importantes podem ser acompanhadas abaixo: 1. INFORM "O radio está ligado" 2. QUERY-IF "O radio está ligado?" 3. CFP "Alguém quer ligar o radio?" <dialogical-specification> <protocol-definitions> <protocol id="p1" > <msg send="role[x]" receiver="role[y] "propagate="group[y]"> <content type="inform" says="hakuna Matata!" /> </msg> </protocol> <protocol id="p2"> <seq> <msg id="1" send="role[x]" receiver="role[y]"> <content type="query-ref" says="what time is it?" force="true" /> <return reply-with="time" /> </msg> <msg id="2" send="role[y]" receiver="role[x]"> <content type="inform" says="18h" force="true" /> <return in-reply-to="time" /> </msg> </seq> </protocol> <protocol id="p3"> <seq> <msg id="1" send="role[x]" receiver="role[y]" to="role[z]"> <content type="request" says="pay your debt" /> <return reply-with="debt" /> </msg> <msg id="2" send="role[y]" receiver="role[z]" > <content type="inform" from="role[x]" says="he said: pay your debt!" /> <return reply-with="debt" /> </msg> <msg id ="3" send="role[z]" receiver="role[y]" to="role[x]" > <content type="refuse" says="no chance" force="true" /> <return in-reply-to="debt" /> </msg> </seq> </protocol> </protocol-definitions> </dialogical-specification> Figura 5. Protocolo para comunicação 4. REQUEST "Ligue o radio para mim" 5. AGREE "Confirmado, vou ligar o radio para você" 6. REFUSE "Eu não vou ligar o radio" 7. FAILURE "Eu não consigo ligar o radio" 8. PROPOSE "Eu posso ligar o radio para você, pelo seguinte preço" 9. SUBSCRIBE "Quero ser avisado quando o radio for ligado" 10. NOT-UNDERSTOOD "Radio? Que radio?" Para os agentes serem capazes de entender e serem entendidos por outros agentes, além da linguagem de comunicação, seria necessário a definição de uma ontologia que especifique o significado dos termos e conceitos em discussão. Porém, por estar se tratando da comunicações de papéis e se tratar de uma especificação mais abstrata, 70

79 A. Hübner et al. Introdução da Dimensão Dialógica no Moise+ Performativa accept-proposal agree cancel cfp confirm disconfirm failure inform inform-if inform-ref not-understood propose proxy query-if query-ref refuse reject-proposal request request-when request-whenever subscribe Tabela 1. Lista das performativas Significado Aceitação de proposta numa negociação Aceitação de desempenhar uma dada ação Cancelamento da execução de uma dada ação Utilizada para iniciar uma dada negociação (Call for proposals) Confirmação da veracidade de uma dada mensagem Inverso da mensagem anterior Uma tentativa de executar uma dada ação (usualmente requisitada por outro agente) que falhou Permite comunicar informação aos outros agentes Informação sobre a veracidade de determinada informação Informação sobre um dado valor Indicação de que uma dada mensagem não foi percebida Envio de proposta, por exemplo, como resposta a uma mensagem cfp Permite enviar uma mensagem que vai ser reenviada a um conjunto de agentes Pedido de informação sobre a veracidade de determinada informação Pedido de informação sobre um dado valor Recusa de executar determinada ação Recusa de uma proposta efetuada no contexto de uma dada negociação Consiste num pedido a um dado agente para executar determinada ação Pedido para executar uma dada ação quando uma determinada condição for verdadeira Pedido para executar uma dada ação sempre que uma determinada condição for verdadeira Pedido para ser informado acerca das alterações relacionadas com determinado fato ou informação as especificações quanto à linguagem e à ontologia não foram incluídas nessa versão dos protocolos de comunicação, não fazendo parte dos objetivos deste trabalho, mas, caso necessário, poderão ser incluídas em trabalhos futuros. Foi também implementado um visualizador (Fig. 6), na linguagem Python, que reúne as especificações feitas para a dimensão dialógica, junto com as ligações feitas na dimensão deôntica, para que se possa visualizar de forma estruturada/organizada os protocolos que os papéis usam para executarem suas tarefas. 5. EXEMPLO DE APLICAÇÃO Em [14, 15], foi desenvolvida a modelagem conceitual dos processos de gestão em uma universidade comunitária. Para estudo de caso deste trabalho, considerou-se um desses processos, mais especificamente, o processo de criação de um curso de especialização, detalhado em [10], e resumido a seguir. O acontecimento de um curso de especialização em uma instituição de ensino superior pode ser dividido em quatro estágios: criação, divulgação, aulas e orientações e encerramento. O primeiro estágio, que abrange a concepção e formalização do curso, denominado de criação, tem o papel de professor como mentor da idéia da proposta do curso. Ele começa a buscar materiais e falar com colegas de trabalho (papel professor) para trocar idéias, além 71 de conversar com o papel de Diretor do Centro ao qual se vincula para submeter informalmente uma proposta de curso. Como é o papel de professor que vai fazer a maioria das interações nesta abordagem, ele vai se utilizar muito da comunicação para requisitar serviços, prestar esclarecimentos e receber pareceres ao longo de todo o processo de criação. Então, somente após saber se o curso a ser proposto tem uma probabilidade de aprovação considerável e se há verbas disponíveis para o empreendimento, o professor elabora um pré-projeto pedagógico. Passa então a ter várias reuniões com outros professores para formar uma equipe de trabalho, composta por papéis de professor. Com a equipe formada, são realizados ajustes no projeto pedagógico. Após, o professor entra em contato com a Assessoria de Planejamento e Controle para elaborar uma planilha de custos. Formaliza então sua proposta, encaminhando oficialmente ao Diretor do Centro o projeto pedagógico do curso e respectiva planilha de custos. Neste momento é aberto um processo que será avaliado em várias instâncias da Universidade, tais como: Conselho Consultivo do Centro, Pró-reitoria de Graduação, Pró-reitoria Administrativa e Conselho Superior. Somente depois de aprovado em todas as instâncias, o processo passa para o segundo estágio: divulgação. Havendo inscrições suficientes, acontecem as aulas e as orientações dos trabalhos de conclusão. Encerrando o pro-

80 A. Hübner et al. Introdução da Dimensão Dialógica no Moise+ Figura 6. Visualização proporcionada pela ferramenta cesso, o professor elabora um relatório acadêmico e financeiro relativo ao evento. Para a modelagem do processo de criação de um curso de especialização no MOISE+, utilizou-se uma base de informações construída na primeira fase do projeto, que apresenta os diagramas de atividades mostrando todas as interações entre os papéis identificados no processo, e um diagrama de classes representando a estrutura de uma universidade e identificando os seus grupos e subgrupos de papéis, utilizando já a nomenclatura do MOISE+. [14, 15] Com estas informações, foi possível desenvolver a especificação organizacional de um sistema multiagente para a simulação do processo de criação de um curso de especialização, utilizando o modelo MOISE+. A parte estrutural apresenta todos os papéis que compõem os grupos e subgrupos de papéis desta organização. Papéis como professor e diretor, grupos como centro e subgrupos como corpo docente estão apresentados na Fig. 7. Na Fig. 8, mostra-se a representação de parte dos objetivos listados pelo MOISE+ na dimensão funcional. Planos e missões são mostrados na Fig. 9. A dimensão deôntica (Fig. 10) é responsável por indicar qual papel tem obrigação ou permissão de se comprometer com as missões. Como exemplo, temos o papel professor, que tem permissão de se comprometer com a missão m2, mas obrigação de executar a missão m4. A Fig. 11 mostra o acréscimo dos elementos na dimensão deôntica, onde são representados os protocolos a serem usados nas interações dos papéis na criação do curso de especialização, ligando a dimensão deôntica com a dialógica. Os protocolos da dimensão dialógica encontram-se na Fig CONCLUSÃO Encontram-se na literatura diversos modelos de organização para a etapa de modelagem de sistemas multiagentes. Este trabalho direcionou-se, em particular, ao modelo MOISE+. O modelo MOISE+ foi desenvolvido com base no modelo MOISE, do qual herdou muitas características. Entretanto, alguns elementos do MOISE não permaneceram no MOISE+, tais como as especificações de protocolos de comunicação. Neste artigo, foi discutido a importância, em algumas aplicações, da especificação das interações entre papéis (no nível da organização), como um elemento de regulação das interações entre os agentes que assumem tais papéis (no nível da população de agentes). Portanto, assim como a comunicação entre agentes é fundamental para a interação no nível da população de agentes, a comunicação entre papéis é um mecanismo de interação no nível organizacional que vai regular a comunicação (e, portanto, a interação) entre os agentes que assumirem tais papéis. Este trabalho introduziu uma extensão ao modelo organizacional MOISE+, pela incorporação da dimensão dialógica, voltada para a comunicação entre papéis, onde são definidos os protocolos usados na comunicação entre papéis. A dimensão dialógica é interligada ao modelo MOISE+ pelo acréscimo de novas relações na dimensão deôntica, responsáveis por indicar quais missões possuem objetivos que necessitem de comunicação entre papéis. A dimensão dialógica foi modelada com a especificação em forma de protocolos na linguagem XML. Apresentou-se um estudo de caso relacionado ao processo de criação de um curso de especialização em uma universidade, extraído de um estudo realizado sobre processos de gestão em universidades comunitárias [14, 15]. O estudo de caso mostrou-se particularmente interessante para esta proposta, tendo em vista que este tipo de organização exige um grande fluxo de comunicação entre papéis. A implementação do sistema multiagente, baseado na modelagem apresentada, para simulação do processo de criação de um curso de especialização em uma universidade comunitária é trabalho futuro. Agradecimentos Este trabalho foi parcialmente financiado pelo CNPq (Proc /07-0, /07-9, /09-5, 72

81 A. Hübner et al. Introdução da Dimensão Dialógica no Moise+ Figura 7. Especificação Estrutural Figura 8. Especificação Funcional /07-4) e FAPERGS. Os autores agradecem aos revisores anônimos, por suas considerações, e a Jomi Hübner (UFSC), por seu auxílio na compreensão do MOISE+ e importantes sugestões. Referências [1] A. C. R. Costa and Y. Demazeau. Toward a formal model of multi-agent systems with dynamic organizations. In Proc. the 2nd. Intl. Conf. on Multiagent Systems, page 431, Kyoto, AAAI. [2] L. Coutinho, J. S. Sichman, and O. Boissier. Modeling organization in MAS: A comparison of models. In Proc. of the First Workshop on Software Engineering for Agent-oriented Systems, pages 1 10, Uberlândia, SBC. 73 [3] L. Coutinho, J. S. Sichman, and O. Boissier. Modeling dimensions for multi-agent systems organizations. In Proc. of IJCAI-07 Workshop on Agent Organizations: Models and Simulations (AOMS 07), pages 25 36, Hyderabad, IJCAI. [4] K. Decker. Task environment centered simulation. In M. Prietula, K. Carley, and L. Gasser, editors, Simulating Organizations: Computational Models of Institutions and Groups, pages AAAI Press/MIT Press, Cambridge, [5] K. S. Decker and V. R. Lesser. Task environment centered design of organizations. In Ingemar Hulthage, editor, AAAI Spring Symp. on Computational Organization Design, Stanford, AAAI. [6] V. Dignum, editor. Multi-Agent Systems: Semantics and Dynamics of Organizational Models. IGI Global, Hershey, [7] G. P. Dimuro, A. C. R. Costa, and L. A. M. Palazzo. Systems of exchange values as tools for multi-agent organizations. Journal of the Brazilian Computer Society, 11(1):31 50, 2005.

82 A. Hübner et al. Introdução da Dimensão Dialógica no Moise+ Figura 9. Especificação Funcional [8] J. Ferber and O. Gutknecht. A meta-model for the analysis and design of organizations in multi-agent systems. In Y. Demazeau, editor, Proc. of the Third Intl. Conf. on Multiagent Systems, pages , Los Alamitos, IEEE. [9] Foundation for Intelligent Physical Agents. FIPA 97 Specification Part 2: Agent Communication Language, October Version 2.0. [10] M. S. Fox, M. Barbuceanu, and M. Gruninger. An organisation ontology for enterprise modeling: Preliminary concepts for linking structure and behaviour. Computers in Industry, 29(1 2): , [11] M. R. Genesereth. Knowledge interchange format. In James F. Allen, Richard Fikes, and Erik Sandewall, editors, Proc. of the 2nd Intl. Conf. on Principles of Knowledge Representation and Reasoning, pages , Cambridge, Morgan Kaufmann. [12] M. Hannoun, O. Boissier, J. S. Sichman, and C. Sayettatinho. MOISE: An organizational model for multi-agent systems. In Proc. of Intl. Joint Conferences, 7th. Ibero-American Conf. on Artificial Intelligence (IBERAMIA 00) and 15th. Braz. Symp. on Artificial Intelligence (SBIA 00), volume 1952 of LNAI, pages , Berlin, Springer. [13] A. Hübner, A. C. R. Costa, and G. P. Dimuro. Extending the MOISE+ organizational model with a dialogic dimension. In Proc. of The 3rd Southern Conf. on Computacional Modeling, Los Alamitos, IEEE. (to appear). [14] A. Hübner, G. P. Dimuro, and V. L. D. Mattos. Modelando processos de gestão em uma universidade privada comunitária utilizando UML. In Anais do 16 o Congresso de Iniciação Científica, Pelotas, UCPEL. [15] A. Hübner, G. P. Dimuro, V. L. D. Mattos, S. S. Hernandes, and M. M. Lange. Utilizando o MOISE+ para a modelagem da organização de um sistema multiagente para simulação de processos de gestão de cursos de especialização em uma univesidade comunitária. In Anais do 17 o Congresso de Iniciação Científica, Pelotas, UCPEL. [16] J. F. Hübner, J. S. Sichman, and O. Boissier. A model for the structural, functional, and deontic specification of organizations in multiagent systems. In G. Bittencourt and G. Ramalho, editors, Advances in Artificial Intelligence, Proc. of the 16th Braz. Symp. on Artificial Intelligence, volume 2507 of LNCS, pages Springer, [17] J. F. Hübner, J. S. Sichman, and O. Boissier. MOISE+: towards a structural, functional, and de- 74

83 A. Hübner et al. Introdução da Dimensão Dialógica no Moise+ Figura 10. Especificação Deôntica Figura 11. Extensão da Especificação Deôntica ontic model for MAS organization. In Proc. of the First Intl. Joint Conf. on Autonomous Agents and Multiagent Systems, pages , New York, ACM. [18] J. F. Hübner, J. S. Sichman, and O. Boissier. Developing organised multi-agent systems using the MOISE+ model: programming issues at the system and agent levels. International Journal of Agent-Oriented Software Engineering, 1(3/4): , [19] A. Preece. Knowledge query and manipulation language: A review. Technical report, University of Aberdeen, Aberdeen, [20] J. S. Sichman. Raciocínio social e organizacional em sistemas multiagentes: avanços e perspectivas, (Tese de Livre Docência, USP). [21] M. Wooldridge. Reasoning about Rational Agents. Intelligent Robots and Autonomous Agents. The MIT Press, Cambridge, [22] M. Wooldridge. An Introduction to MultiAgent Systems. Wiley, Chichester, [23] M. Wooldridge, N. R. Jennings, and D. Kinny. The gaia methodology for agent-oriented analysis and design. Autonomous Agents and Multi-Agent Systems, 3(3): , 2000.

84 A. Hübner et al. Introdução da Dimensão Dialógica no Moise+ <dialogical-specification> <protocol-definitions> <protocol id="p1" > <seq> <msg id="1" send="professor" receiver="professor" proxy="corpodocente"> <content type="cfp" says="o que acham de criarmos um curso de especialização?" force="false" /> </msg> <msg id="2" send="professor" receiver="professor" proxy="corpodocente"> <content type="agree" says="me responsabilizo pela coordenação" force="false" /> </msg> <msg id="3" send="professor" receiver="professor"> <content type="request" says="pode ajudar na pesquisa sobre agentes?" force="false" /> <return reply-with="agentes" /> </msg> </seq> </protocol> <protocol id="p2"> <seq> <msg id="1" send="professor" receiver="colaborador"> <content type="query-ref" says="alô, quem esta falando?" force="true" /> <return reply-with="alô" /> </msg> <msg id="2" send="professor" receiver="colaborador"> <content type="cpf" says="poderia colaborar para criação de um curso de especialização?" force="true" /> <return reply-with="colaborar" /> </msg> </seq> </protocol> <protocol id="p3"> <seq> <msg id="1" send="professor" receiver="colaborador"> <content type="query-ref" says="olá, tudo bem?" force="true" /> <return reply-with="olá" /> </msg> <msg id="2" send="professor" receiver="colaborador"> <content type="cpf" says="poderia colaborar para criação de um curso de especialização?" force="true" /> <return reply-with="colaborar" /> </msg> </seq> </protocol> <protocol id="p4"> <seq> <msg id="1" send="professor" receiver="assessorsetor"> <content type="query-ref" says="alô, quem esta falando?" force="true" /> <return reply-with="alo" /> </msg> <msg id="2" send="professor" receiver="assessorsetor"> <content type="cpf" says="como devemos proceder na criação de um curso de especialização?" force="true" /> <return reply-with="proceder" /> </msg> </seq> </protocol> <protocol id="p5"> <seq> <msg id="1" send="professor" receiver="assessorsetor"> <content type="query-ref" says="ola, tudo bem?" force="true" /> <return reply-with="ola" /> </msg> <msg id="2" send="professor" receiver="assessorsetor"> <content type="cpf" says="como devemos proceder na criação de um curso de especialização?" force="true" /> <return reply-with="proceder" /> </msg> </seq> </protocol> <protocol id="p6"> <seq> <msg id="1" send="assessorsetor" receiver="professor"> <content type="query-if" says="esses valores estão corretos?" force="true" /> <return reply-with="esclarecimento" /> </msg> <msg id="2" send="professor" receiver="assessorsetor"> <content type="confirm" says="sim, já foram revisados." force="true" /> <return in-reply-to="esclarecimento" /> </msg> <msg id="1" send="assessorsetor" receiver="professor"> <content type="agree" says="pode prosseguir" force="true" /> </msg> </seq> </protocol> </protocol-definitions> </dialogical-specification> Figura 12. Protocolos da Dimensão Dialógica 76

85 Teoria dos Jogos aplicada à coordenação de agentes, utilizando Teoria dos Valores de Troca Diego Rodrigues Pereira 1, Antônio Carlos da Rocha Costa 2 1 Programa de Pós-Graduação em Computação Instituto de Informática Universidade Federal do Rio Grande do Sul Caixa Postal 15064, Cep: Porto Alegre - RS - BRASIL Telefone +55 (51) , Fax +55 (51) drpereira@inf.ufrgs.br 2 Programa de Pós-Graduação em Informática, CEPOLI Universidade Católica de Pelotas (UCPel) Rua Félix da Cunha 412 Telefone: +55 (53) Cep: Pelotas - RS - BRASIL rocha@ucpel.tche.br Abstract The Game Theory is a field in mathematics that studies the agent s behavior in strategic situations, in which decision making affects all players involved. It provides several tools to model agent interactions in Multiagent Systems. Another tool to do this is the Exchange Values Theory, which model interactions between small groups of agents, that do services to each other. However, as the agents acts on its own and are self-interested, there are some problems to keep the exchange system in balance, requiring some regulation. In order to accomplish this, in this work we use Bayesian Games, or games with imperfect information, that allow us to represent uncertainty about the game being played. This can be represented by a probability distribution over the games. First we present a brief introduction on Game Theory s concepts that are used here and then a Exchange Values Bayesian Game model, which allow us to regulate the exchanges made by the agents, without an external agent that regulates these interactions. Keywords: Game Theory, Bayesian Games, Exchange Values Theory, Multiagent Systems INTRODUÇÃO Teoria dos Jogos é um estudo matemático do comportamento de agentes em situações estratégicas, nas quais decisões de um agente afetam outros envolvidos na situação. A Ciência da Computação tem sido bastante influenciada pela Teoria dos Jogos, principalmente a área de Inteligência Artificial. Sua principal contribuição para IA é no campo dos Sistemas Multiagentes, onde o interesse é modelar interações entre agentes, e para isso a Teoria dos Jogos oferece diversas ferramentas. Uma outra ferramenta para modelar interação entre agentes é a Teoria dos Valores de Troca. Teoria dos Valores de Troca é o nome dado às interações entre pequenos grupos de agentes, que realizam serviços uns para os outros. Para avaliar este tipo de serviço, os agentes atribuem valores à estes serviços, como por exemplo um grau de satisfação por um serviço prestado por outro agente, ou o investimento realizado na prestação de serviços. Entretanto, como os agentes agem de forma autônoma e com interesses próprios, existem dificuldades em se manter o sistema de trocas em equilíbrio, se fazendo necessária uma certa regulação. Para tal, neste artigo é utilizado um ramo da teoria dos jogos, os Jogos

86 Pereira D. R., Costa A. C. R. Teoria dos Jogos aplicada à coordenação de agentes, utilizando Teoria dos Valores de Troca Bayesianos. Jogos Bayesianos ou jogos de informação incompleta, permitem que se represente a incerteza sobre o próprio jogo que está sendo jogado. Esta incerteza é representada como uma distribuição de probabilidades sobre o conjunto de jogos possíveis. Neste artigo é apresentado um modelo de Jogo Bayesiano dos Valores de Troca que fornece uma forma de regulação entre as trocas realizadas entre os agentes, sem o auxílio de um agente externo que regule essas interações. O artigo está organizado da seguinte maneira: na Seção 2 apresenta-se os principais conceitos de Teoria dos Jogos, que serão utilizados neste artigo; na Seção 3 é apresentado o conceito de jogo Bayesiano; na Seção 4 é apresentado o conceito das Trocas Sociais; na Seção 5 apresenta-se o modelo do jogo Bayesiano utilizando os Valores de Troca; e por fim na Seção 6 apresentam-se as considerações finais e trabalhos futuros. 2. TEORIA DOS JOGOS 2.1. INTRODUÇÃO A Teoria dos Jogos [7] pode ser vista como um estudo matemático da interação entre agentes independentes e com interesses próprios. A teoria é usualmente aplicada a economia, ciência política, biologia, psicologia, linguística e ciência da computação. Neste artigo será utilizado o ramo dominate da Teoria dos Jogos, chamado teoria dos jogos não-cooperativa [7], especificamente jogos na forma normal. Apesar de se chamar de teoria dos jogos não-cooperativa, esta teoria não se aplica apenas a situações onde os objetivos dos agentes são conflitantes. No caso de agentes cooperativos, existe a teoria dos jogos coalizacional [8]. A principal diferença entre os dois é que na teoria dos jogos não-cooperativa um indivíduo é modelado (suas crenças, preferências e ações possíveis) enquanto que na teoria dos jogos coalizacional um grupo de indivíduos é modelado AGENTES COM INTERESSES PRÓPRIOS Um agente com interesses próprios possui uma descrição própria dos estados do mundo (ou do ambiente onde está inserido) que ele gosta, o que pode incluir o bem estar dos outros agentes, e deve agir para alcançar estes estados do mundo. Para modelar tais interesses a abordagem dominate é a teoria da utilidade [9]. Esta abordagem tenta quantificar o grau de preferência do agente entre as opções disponíveis, e tenta entender como estas preferências mudam quando um agente encontra incerteza no momento de receber uma alternativa. Para isto o agente utiliza uma função de utilidade, que irá influenciar como o agente toma decisões sobre o que fazer. As funções de utilidade são uma base para se entender a teoria da preferência e uma ação racional, items que compõem a teoria dos jogos. Uma função de utilidade mapeia estados do mundo em números reais. Tais números medem o grau de satisfação do agente naqueles estados. Se o agente não tem certeza do estado em que se encontra, então temos uma utilidade esperada, em função de uma distribuição de probabilidades sobre o conjunto de estados do mundo JOGOS NA FORMA NORMAL A idéia de utilidade é baseada no conceito de preferência derivada da teoria das preferências de von Neumann e Morgenstern [9]. Esta teoria é apresentada em [8], onde os conceitos principais (axiomas e provas) são apresentados e discutidos. De acordo com a teoria da utilidade (e a teoria das preferências), agentes racionais sempre terão valores esperados em suas funções de utilidade que eles desejam maximizar. Portanto o conceito de agir de forma ótima em um ambiente é simples, desde que os resultados e as probabilidades envolvidas sejam conhecidas e possam ser representadas. Os agentes escolherão as ações que maximizam sua utilidade esperada. Entretanto a complexidade de se tomar decisões em tais ambientes aumenta quando existem dois ou mais agentes maximizadores de utilidade, que possuem ações que influenciam na utilidade um do outro. Para analisar tais casos utilizamos a teoria dos jogos DEFINIÇÃO DE JOGOS NA FORMA NORMAL A forma normal, conhecida também por forma estratégica, é uma forma familiar de representar interações entre agentes na teoria dos jogos. Um jogo representado nesta forma apresenta todas as utilidades dos agentes em todos os estados do mundo, no caso especial onde os estados do mundo dependem somente da combinação de ações dos agentes. Abaixo, temos a definição de um jogo na forma normal como visto em [7]: Definição 2.1 Um jogo (finito, com n-jogadores) na forma normal é uma tupla (N, A, u), onde: N é um número finito de agentes, indexados por i; A = A 1... A n, onde A i é um conjunto finito de ações disponíveis para o jogador i. Cada vetor a = (a 1,..., a n ) A é chamado de perfil de ação; u = (u 1,..., u n ) onde u i : A R é uma função de utilidade (ou de recompensa) com valores reais para o jogador i. De maneira geral, estes jogos podem ser representados com uma matriz de n dimensões. Cada linha corresponde a ações possíveis para o jogador 1, cada coluna 78

87 Pereira D. R., Costa A. C. R. Teoria dos Jogos aplicada à coordenação de agentes, utilizando Teoria dos Valores de Troca corresponde a ações possíveis para o jogador 2, e cada célula corresponde a um possível resultado do jogo. Em cada uma das células é escrito a utilidade de cada jogador para aquele resultado, sendo o primeiro número a utilidade do jogador 1. Esta representação pode ser vista no exemplo da seção a seguir Exemplo: Dilema do prisioneiro: Um exemplo clássico utilizado para se entender teoria dos jogos é o Dilema do Prisioneiro. O nome deriva de uma estória de dois prisioneiros suspeitos de um crime. Eles são levados a salas de interrogatório separadas, e cada um deles pode cooperar ou negar (deny no original em inglês) o crime. Os valores negativos podem ser interpretados como valores absolutos em anos na prisão. Os resultados possíveis são os seguintes: se os dois prisioneiros cooperarem eles apenas ficariam um ano na prisão, situação representada pela célula (C, C), com a primeira ação sendo do jogador 1 e a segunda do jogador 2. Se os dois negarem a participação no crime (ou se negarem a cooperar) os dois pegariam sentenças moderadas de três anos, como pode ser visto na célula (D, D). Mas se um deles optar por cooperar e o outro não temos as situações das células (C, D) e (D, C): o prisioneiro que cooperou fica livre (nenhum ano na cadeia) e o outro ficaria quatro anos. A matriz completa de resultados pode ser vista na Figura 1(a). Os valores das utilidades dos jogadores no exemplo do Dilema do Prisioneiro podem ser generalizados, pois a essência do jogo não mudaria caso a recompensa de 4 fosse substituída por 5, ou se fossem adicionados 50 a todas as recompensas. Em sua forma mais geral, o Dilema do Prisioneiro é qualquer jogo como o mostrado na Figura 1(b) em que c > a > d > b. Figura 1. (a) Dilema do Prisioneiro; (b) Forma geral do Dilema do Prisioneiro 2.5. JOGOS DE RECOMPENSA COMUM Os jogos na forma normal possuem algumas classes restritas que merecem uma atenção. A primeira é a classe de Jogos de Recompensa Comum (Common-Payoff Games) [7]. Nestes jogos, para todos os perfis de estratégia, todos os jogadores recebem a mesma recompensa. 79 Definição 2.2 Um jogo de recompensa comum é um jogo no qual todos os perfis de estratégia a A 1... A n e qualquer par de agentes i, j, possuem u i (a) = u j (a). Jogos de recompensa comum também são chamados de jogos de coordenação pura ou jogos de times. Em tais jogos os agentes não tem interesses conflitantes; seu único desafio é coordenar ações que maximizem a utilidade de todos. Como exemplo podemos imaginar dois motoristas que dirigem em uma estrada um ao encontro do outro. Tal rodovia não tem regras sobre qual lado se deve dirigir, por isso os motoristas devem decidir se dirigem no lado esquerdo ou no lado direito da pista. Se escolherem o mesmo lado recebem uma grande utilidade. Se não coordenarem as suas ações eles recebem uma baixa utilidade. A Figura 2 mostra a matriz de recompensas para os dois jogadores. Figura 2. Jogo de Coordenação 2.6. JOGOS DE SOMA ZERO Um outro caso especial a ser considerado nos jogos na forma normal, são os Jogos de Soma Zero (Zero-Sum Games) [7]:, que também podem ser chamados de jogos de soma constante. Diferentemente dos jogos de recompensa comum, jogos de soma constante são mais significativos no contexto de jogos com dois jogadores. Definição 2.3 Um jogo de dois jogadores na forma normal é dito de soma constante se existe uma constante c tal que para cada perfil de estratégia a A 1 A 2 é verdade que u 1 (a) + u 2 (a) = c. Quando assumirmos que c = 0 temos então um jogo de soma zero. Se jogos de recompensa comum representam jogos de pura coordenação, jogos de soma zero representam pura competição, pois temos que o ganho de um jogador deriva diretamente da derrota do outro jogador. Um exemplo clássico de jogo de soma zero é o Cara ou Coroa (Matching Pennies). Neste jogo cada jogador tem uma moeda, e independentemente escolhe cara ou coroa. Se as duas moedas caem iguais (as duas em cara ou as

88 Pereira D. R., Costa A. C. R. Teoria dos Jogos aplicada à coordenação de agentes, utilizando Teoria dos Valores de Troca duas em coroa) o jogador 1 ganha as duas moedas, senão o jogador 2 leva as duas. A matriz de recompensa pode ser vista na Figura 3. Figura 3. Jogo de Cara ou Coroa 2.7. ESTRATÉGIAS E EQUILÍBRIOS Estratégias: Foram definidas até agora apenas as ações disponíveis para cada jogador do jogos, portanto a seguir serão definidos seu conjunto de estratégias. Um tipo de estratégia seria escolher uma ação e jogá-la. Tal estratégia é chamada estratégia pura. Chama-se a escolha de uma estratégia pura para cada agente de perfil de estratégia pura. Jogadores podem ainda escolher ações aleatórias, dentre as suas disponíveis. Tal estratégia é chamada de estratégia mista. Todas as definições a seguir podem ser vistas em [7] Define-se uma estratégia mista para um jogo na forma normal a seguir. Definição 2.4 (Estratégia Mista). Seja (N, A, u) um jogo na forma normal, e para qualquer conjunto X seja Π(X) o conjunto de distribuições de probabilidades sobre X. Então o conjunto de estratégias mistas para o jogador i é S i = Π(A). Definição 2.5 (Perfil de Estratégia Mista). O conjunto de perfis de estratégia mista é o produto cartesiano dos conjuntos individuais de estratégias mistas, S 1,... S n. Por s i (a i ) denota-se a probabilidade de uma ação a i ser jogada no perfil de estratégia mista s i. O subconjunto de ações que possuem uma probabilidade positiva na estratégia mista s i é chamado de suporte de s i. Definição 2.6 (Suporte). O suporte de uma estratégia mista s i para o jogador i é o conjunto de estratégias puras a i s i (a i ) Equilíbrios: Nesta seção serão definidos os conceitos de solução de um jogo, como a melhor resposta e o equilíbrio de Nash, vistos em [7]. Um dos mais influentes conceitos de solução em Teoria dos Jogos é o Equilíbrio de Nash. Mas primeiro é necessário definir o conceito de melhor resposta. Definição 2.7 (Melhor Resposta). A melhor resposta do jogador i para o perfil de estratégia s i é a estratégia mista s i S i tal que u i (s i, s i) (s i, s i ) para todas as estratégias s i S i Sendo que s i = (s 1,..., s i 1, s i+1,..., s n ) é um perfil de estratégia s sem a estratégia do agente i. De maneira geral um agente não saberá qual as estratégias que seu oponente irá escolher. Portanto o conceito de melhor resposta não é um conceito de solução. Mas podemos utilizar o conceito de melhor resposta para formular a definição de Equilíbrio de Nash. Definição 2.8 (Equilíbrio de Nash). Um perfil de estratégia s = (s 1,..., s n ) é um equilíbrio de Nash se, para todos os agentes i, s i é a melhor resposta para s i. O equilíbrio de Nash é um perfil de estratégia estável: nenhum agente irá trocar a sua estratégia mesmo que conheça a estratégia e seus oponentes. Existe ainda o teorema, formulado por John Nash [3] que garante que todos os jogos com um número finito de jogadores e perfis de ação tem pelo menos um equilíbrio de Nash. A prova deste teorema pode ser vista em [8]. 3. JOGOS BAYESIANOS 3.1. INTRODUÇÃO Todas as formas de jogos apresentados até agora assumiam que os jogadores sabiam que jogo estava sendo jogado, quantos jogadores estavam envolvidos, as ações disponíveis para eles, bem como suas recompensas. Até mesmo em jogos de informação imperfeita [7], em que as ações jogadas pelos agentes não são conhecidas, mas o jogo que eles estão jogando sim. Mas em Jogos Bayesianos [7, 8], ou jogos de informação incompleta, permitem que se represente a incerteza sobre o próprio jogo que está sendo jogado. Esta incerteza é representada como uma distribuição de probabilidades sobre o conjunto de jogos possíveis. Para jogos Bayesianos são feitas duas restrições: Primeiro, todos os jogos têm o mesmo número de agentes e o mesmo espaço de estratégias; eles apenas diferem em suas recompensas. Segundo, as crenças dos agentes são probabilidades a posteriori obtidas ao se condicionar uma probabilidade a priori para cada agente. A primeira restrição parece ser muito forte, pois podese imaginar diversos tipos de incertezas que os jogadores poderiam enfrentar em um jogo: 80

89 Pereira D. R., Costa A. C. R. Teoria dos Jogos aplicada à coordenação de agentes, utilizando Teoria dos Valores de Troca Número de jogadores envolvidos; Quais as ações disponíveis para cada agente; As recompensas envolvidas para cada a perfil de ação; Entretanto, todos os tipos de incertezas em Jogos Bayesianos podem ser reduzidas a incertezas sobre as recompensas, através da formulação do problema. Por exemplo, se quer modelar uma situação onde haja incerteza sobre o número de ações disponíveis para outros jogadores. Pode-se reduzir esta incerteza apenas retirando ações irrelevantes. Considere o jogo da Figura 4, com dois jogadores onde o jogador da linha não sabe se seu oponente tem apenas duas estratégias E (esquerda) e D (direita) ou se tem uma terceira C (centro). Se considerarmos trocar o jogo à esquerda, o menor por uma versão a seguir na Figura 5, adicionando uma nova coluna C 3.2. DEFINIÇÕES Existem diversas formas de apresentar jogos Bayesianos, nesta seção apresenta-se duas que serão utilizadas, como visto em [7] Conjuntos de Informação: A primeira definição que será apresentada é baseada em conjuntos de informação. Nesta definição, um jogo Bayesiano consiste de um conjunto de jogos que diferem somente em suas recompensas, com um distribuição de probabilidade a priori definida sobre eles, e uma estrutura de partição sobre os jogos para cada agente. Definição 3.1 Um jogo Bayesiano é um tupla (N, G, P, I), onde: N é o conjunto de agentes; G é um conjunto de jogos com N agentes cada, tal que g, g G então para cada agente i N o espaço de estratégias em g é idêntico ao espaço de estratégias em g ; P Π(G) é uma distribuição de probabilidade a priori sobre os jogos, onde Π(G) é o conjunto de todas as distribuições de probabilidades sobre G; e Figura 4. Exemplo de redução de incerteza I = (I 1,..., I N ) é uma tupla de partições de G, uma para cada agente. A Figura 6 é um exemplo de um jogo Bayesiano. É formado de quatro jogos 2 2 (Cara ou Coroa, Dilema do Prisioneiro, Coordenação e Batalha dos Sexos), e cada partição dos agentes consiste de duas classes equivalentes. Figura 5. Nova coluna central Claramente a coluna central é dominada pelas outras duas, e não participa de nenhum equilíbrio de Nash (ou qualquer outro conceito de solução). Como há um isomorfismo entre as duas versões a incerteza sobre o conjunto de ações pode ser reduzida à incerteza sobre recompensas. De forma similar, outras incertezas sobre os jogos podem ser reduzidas à incertezas sobre as recompensas. A segunda restrição sobre jogos Bayesianos é a suposição de uma probabilidade a priori comum. Como um jogo Bayesiano define não somente incertezas dos agentes sobre jogo a ser jogado, mas suas crenças sobre as crenças dos agentes sobre o jogo a ser jogado, formando uma hierarquia infinita de crenças aninhadas. A suposição de uma probabilidade a priori é válida e limita o escopo de aplicabilidade. 81 Figura 6. Um jogo Bayesiano

90 Pereira D. R., Costa A. C. R. Teoria dos Jogos aplicada à coordenação de agentes, utilizando Teoria dos Valores de Troca Tipos Epistêmicos: Um jogo Bayesiano é um jogo definido por um conjunto de jogadores, ações e funções de utilidade. Na definição anterior, os agentes não tinham certeza sobre qual jogo estavam jogando, entretanto, cada jogo possível tem o mesmo conjunto de de ações e jogadores, e portanto os agentes apenas não tinham certeza sobre a função de utilidade. Nesta definição é utilizado a noção de um tipo epistêmico (epistemic type), ou simplesmente tipo, como uma forma de se definir incerteza diretamente sobre a função de utilidade do jogo. Definição 3.2 Um jogo Bayesiano é uma tupla (N, A, Θ, p, u) onde: N é um conjunto de agentes; A = A 1... A n, onde A i é um conjunto finito de ações disponíveis para o jogador i; Θ = Θ 1... Θ n, onde Θ i é o espaço de tipos do jogador i; p : Θ [0, 1] é uma distribuição de probabilidade a priori comum sobre os tipos; e u = (u 1... u n ), onde u i : A Θ R é a função de utilidade para o jogador i. Todos os jogadores conhecem a descrição acima (é de conhecimento comum) e, cada agente conhece seu próprio tipo. Em geral a noção de tipo do agente contém toda a informação que um agente possui e não é de conhecimento comum. Normalmente isto inclui seu conhecimento de sua função de utilidade, por exemplo, mas pode incluir suas crenças sobre as recompensas dos outros agentes, sobre as crenças deles sobre sua própria função de utilidade ou outras crenças. Para exemplificar melhor o conceito de tipos, considere o exemplo da Figura 6. Para cada agente temos dois tipos, que correspondem aos seu dois conjuntos de informação. As ações do jogador 1 são C e B e do jogador 2 são E e D. Denota-se o tipo do agente 1 θ 1,1 e θ 1,2 e do agente 2 θ 2,1 e θ 2,2. A distribuição conjunta destes tipos é a seguinte: p : (θ 1,1, θ 2,1 ) =.3, p : (θ 1,1, θ 2,2 ) =.1, p : (θ 1,2, θ 2,1 ) =.2, p : (θ 1,2, θ 2,2 ) =.4. As probabilidades para o primeiro jogador são p(θ 2,1 θ 1,1 ) = 3/4, p(θ 2,2 θ 1,1 ) = 1/4, p(θ 2,1 θ 1,2 ) = 1/3 e p(θ 2,2 θ 1,2 ) = 2/3. As funções de utilidades de ambos agentes são dadas na Figura ESTRATÉGIAS E EQUILÍBRIOS Para planejar estratégias e equilíbrios sobre os jogos Bayesianos, utiliza-se os tipos espistêmicos, pois esta definição é a mais utilizada em projeto de mecanismos (mechanism design), uma das aplicações de jogos Bayesianos. Primeiramente deve se definir o espaço de estratégias em um jogo Bayesiano. Em jogos de informação imperfeita, na forma extensiva, uma estratégia pura é um mapeamento de conjuntos de informação para ações. A definição é similar em jogos Bayesianos: uma estratégia pura α i : Θ i A i é um mapeamento de de todos os tipos que o agente i poderia ter para ações que ele jogaria se tivesse aquele tipo. Pode se definir então estratégias mistas de uma forma natural, como distribuições de probabilidades sobre estratégias puras. Denota-se uma estratégia mista para i como s i S i, onde S i é o conjunto de todas as estratégias mistas de i. A notação s j (a j θ j ) é usada para denotar a probabilidade sobre a estratégia mista s j que o agente j joga a ação a j, dado que o tipo de j é θ j. Como tem-se um ambiente com diversas fontes de incerteza, deve-se considerar como calcular a utilidade esperada do agente. No cenário de jogos Bayesianos, existem três noções de utilidade esperada a serem consideradas: ex post, ex interim, e ex ante. A primeira é computada baseada nos tipos verdadeiros dos agentes, o segundo considera que o agente sabe seu tipo mas não sabe o tipo dos outros jogadores e no terceiro o agente não sabe o seu tipo e nem o do outro agente. Todas estas utilidades podem ser vistas também em [7] Definição 3.3 Utilidade esperada Ex post. A utilidade ex post de um agente em um jogo Bayesiano (N, A, Θ, p, u), onde as estratégias dos agentes são dadas por s e os tipos dos agentes são dados por θ, é definida como EU i (s, θ) = a A s j (a j θ j ) u i (a, θ) j N Neste caso, a única incerteza é sobre a estratégia mista do outro agente, pois a utilidade ex post do agente i é computada nos tipos reais dos agentes. No caso dos jogos Bayesianos o agente não irá saber o tipo dos outros agentes, mas esta definição será utilizada para definir os outros dois tipos de utilidade espearada. Definição 3.4 Utilidade esperada Ex interim. A utilidade ex interim de um agente em um jogo Bayesiano (N, A, Θ, p, u), onde θ i é o tipo do agente i e as estratégias dos agentes são dadas pelo perfil de estratégia mista s, é definida como 82 EU i (s, θ i ) = p(θ i θ i ) s j (a j θ j ) u i (a, θ i, θ i ) θ i Θ i a A j N ou de forma equivalente como

91 Pereira D. R., Costa A. C. R. Teoria dos Jogos aplicada à coordenação de agentes, utilizando Teoria dos Valores de Troca a 1 a 2 θ 1 θ 2 u 1 u 2 a 1 a 2 θ 1 θ 2 u 1 u 2 C E θ 1,1 θ 2,1 2 0 B E θ 1,1 θ 2,1 0 2 C E θ 1,1 θ 2,2 2 2 B E θ 1,1 θ 2,2 3 0 C E θ 1,2 θ 2,1 2 2 B E θ 1,2 θ 2,1 0 0 C E θ 1,2 θ 2,2 2 1 B E θ 1,2 θ 2,2 0 0 C D θ 1,1 θ 2,1 0 2 B D θ 1,1 θ 2,1 2 0 C D θ 1,1 θ 2,2 0 3 B D θ 1,1 θ 2,2 1 1 C D θ 1,2 θ 2,1 0 0 B D θ 1,2 θ 2,1 1 1 C D θ 1,2 θ 2,2 0 0 B D θ 1,2 θ 2,2 1 2 Figura 7. Funções de utilidade u 1 e u 2 para o jogo Bayesiano da Figura 6 EU i (s, θ i ) = θ i Θ i p(θ i θ i )EU i (s, (θ i, θ i )) Portanto, i deve considerar todas as possibilidades de tipo para os outros agentes θ i e cada perfil de ação pura a para avaliar a sua função de utilidade u i (a, θ i, θ i ). Ele deve pesar a sua utilidade por duas medidas: a probabilidade dos tipos do outro agente serem θ i dado que seu tipo é θ i, e a probabilidade que o perfil de ação pura a seja escolhido dado todas as estratégias mistas e tipo. Como a incerteza sobre estratégias mistas foi definida no caso ex post, pode se definir a utilidade ex interim como uma soma ponderada de EU i (s, θ) termos. Por fim, existe o caso ex ante, onde a utilidade esperada de i é calculada sobre o conjunto de estratégias mistas s sem se observar os tipos dos agentes. Definição 3.5 Utilidade esperada Ex ante. A utilidade ex interim de um agente em um jogo Bayesiano (N, A, Θ, p, u), onde as estratégias dos agentes são dadas pelo perfil de estratégia mista s, é definida como. EU i (s) = θ Θ p(θ) a A s j (a j θ j ) u i (a, θ) j N ou de forma equivalente como ou novamente como EU i (s) = θ Θ p(θ)eu i (s, θ) EU i (s) = θ iθ i p(θ i )EU i (s, θ i ) A seguir é definida a melhor resposta Definição 3.6 (Melhor resposta em um jogo Bayesiano). O conjunto de melhores respostas do agente i para um perfil de estratégia mista s i é dado por 83. BR i (s i ) = arg max s i Si EU i (s i, s i ) Note que BR i é um conjunto, pois podem existir diversas estratégias para i que tenham a mesma utilidade esperada. O cálculo da BR i é uma maximização independente da utilidade esperada ex interim de i condicionada por cada tipo que ele poderia ter. A seguir é definido o equilíbrio Bayes-Nash. Definição 3.7 (Equilíbrio de Bayes-Nash). Um equilíbrio de Bayes-Nash é o perfil de estratégia mista s que satisfaz i s i BR i (s i ). Esta é a definição de equilíbrio de Nash do Capítulo 2. Cada agente joga a melhor resposta para as estratégias dos outros jogadores. A diferença desta definição para a de equilíbrio de Nash é que este conceito de equilíbrio Bayes-Nash é construído em cima das definições de jogos Bayesianos de melhor resposta e utilidade esperada. Para que um agente i possa jogar a melhor resposta para os outros agentes i, i deve saber que estratégia cada agente jogaria se fosse de um determinado tipo CALCULANDO EQUILÍBRIOS A fim de se calcular os equilíbrios de Bayes-Nash, podemos construir uma representação na forma normal que corresponde a uma jogo Bayesiano. Como foi feito com jogos na forma extensiva, a forma normal induzida para jogos Bayesianos tem uma ação para cada estratégia pura. Isto é, as ações para um agente i são mapeamentos distintos de Θ i para A i. Cada recompensa de i dado o perfil de estratégia pura s é sua utilidade esperada ex ante sobre s. Então um equilíbrio de Bayes- Nash de um jogo Bayesiano é exatamente um equilíbrio de Nash em sua forma induzida. Isto possibilita a aplicação do teorema de Nash sobre jogos Bayesianos, e portanto um equilíbrio de Bayes-Nash sempre existe. Considere o exemplo seguinte, utilizando o jogo apresentado na Figura 6. Note que neste jogo cada agente possui quatro estratégias puras possíveis (dois tipos e duas

92 Pereira D. R., Costa A. C. R. Teoria dos Jogos aplicada à coordenação de agentes, utilizando Teoria dos Valores de Troca ações). Então as estratégias do jogador 1 podem ser chamadas de CC,CB,BC e BB. U U significa que o agente 1 escolhe U independente de seu tipo, UD significa que ele escolhe U se seu tipo for θ 1,1 e D se seu tipo for θ 1,2 e assim por diante. De forma similar definimos as estratégias para o jogador 2 no jogo Bayesiano como EE,ED,DE e DD. Um jogo 4 4 na forma normal pode ser definido, no qual estas 4 estratégias dos dois agentes, e suas recompensas são as recompensas esperadas nos jogos individuais, dadas suas crenças na distribuição de probabilidade a priori inicial. Por exemplo a utilidade esperada ex ante do jogador 2 sobre o perfil de estratégia (UU, LL) é calculado da seguinte forma: u 2 (UU, LL) = θ Θ p(θ)u 2 (U, L, θ) = p(θ 1,1, θ 2,1 )u(u, L, θ 1,1, θ 2,1 ) +p(θ 1,1, θ 2,2 )u(u, L, θ 1,1, θ 2,2 ) +p(θ 1,2, θ 2,1 )u(u, L, θ 1,2, θ 2,1 ) +p(θ 1,2, θ 2,2 )u(u, L, θ 1,2, θ 2,2 ) = 0.3(0) + 0.1(2) + 0.4(1) = 1 Continuando desta forma, a matriz de recompensa completa pode ser construída como indicado na Figura 8. EE ED DE DD CC 2, 1 1, 0.7 1, , 0.9 CB 0.8, 0.2 1, , 1 0.6, 1.9 BC 1.5, , , , 0.1 BB 0.3, , , , 1.1 Figura 8. Forma normal induzida do jogo da Figura 6 Com esta matriz de recompensa, o jogo pode ser analisado de forma direta. Podemos determinar que a resposta do jogador 1 para a estratégia do oponente DE é BC. Se o agente obtiver algum sinal (uma observação do estado do outro agente), ele pode computar as probabilidades a posteriori e recomputar a utilidade esperada de qualquer vetor de estratégias. Portanto se o agente linha (jogador 1) receber o sinal θ 1,1 (significando que ele é do tipo 1), ele pode atualizar as recompensas esperadas e computar o novo jogo mostrado na Figura 9. EE ED DE DD CC 2, , , 2 0, 2.25 CB 2, , , 2 0, 2.25 BC 0.75, , , , 0.25 BB 0.75, , , , 0.25 Figura 9. Jogo na forma normal induzida ex interim, onde o jogador 1 observa o tipo θ 1,1 Note que para o jogador linha, BC ainda é a melhor resposta para DE, o que mudou foi o quanto esta estratégia é melhor que as outras três. Esta matriz de recompensas pode ser utilizada para encontrar as melhores respostas do jogador 1, mas pode não ter sentido em se analisar os equilíbrios de Nash nesta matriz. Isto é devido ao fato de que tal matriz não é de conhecimento comum, pois se o jogador coluna receber um sinal diferente, ele chegaria a um número diferente de valores (apesar de suas melhores respostas ficarem preservadas) EQUILÍBRIO Ex Post Ao se utilizar as utilidades ex post, pode se definir um conceito de equilíbrio que é mais forte que o equilíbrio de Bayes-Nash. Definição 3.8 (Equilíbrio Ex post). Um equilíbrio ex post é um perfil de estratégia mista s que satisfaz θ, i, s i argmax s i S i EU i (s i, s i, θ). Nesta definição os agente não conhecem os tipos dos outros agentes. Na verdade ela diz que os agente não desviam de sua estratégia mista mesmo que conhecem todos os tipos (o vetor θ). Esta forma de equilíbrio é interessante, pois não é afetada pelas distribuições probabilidades de tipos p(θ). Pode se dizer que um equilíbrio ex post não requer que um agente acredite que os outros agentes tenham crenças precisas sobre sua própria distribuição de tipo. A princípio um equilíbrio de Bayes- Nash assume que isto é verdade. O equilíbrio ex post é similar ao equilíbrio em estratégias dominantes, que não requerem que os agentes acreditem que os outros agentes ajam de forma racional. 4. TEORIA DOS VALORES DE TROCA 4.1. INTRODUÇÃO Trocas Sociais é o nome dado às interações entre pequenos grupos de agentes, que realizam serviços uns para os outros. Para avaliar este tipo de serviço, os agentes atribuem valores à estes serviços, como por exemplo um grau de satisfação por um serviço prestado por outro agente, ou o investimento realizado na prestação de serviços. Esta abordagem foi introduzida pela Teoria das Trocas Sociais de Piaget [6] VALORES DE TROCAS SOCIAIS Valores de Troca [6] dão origem a uma economia qualitativa para avaliar trocas sociais, onde os envolvidos nas trocas obtém créditos por serviços prestados a outros, e débitos por serviços recebidos de outros. Os saldos 84

93 Pereira D. R., Costa A. C. R. Teoria dos Jogos aplicada à coordenação de agentes, utilizando Teoria dos Valores de Troca destas trocas de valores permitem aos indivíduos encontrarem um estado de equilíbrio das trocas sociais realizadas, e tomarem uma decisão sobre o que fazer. Valores de troca qualitativos englobam valores econômicos de algum tipo (geralmente quantitativos) e são vistos como base para regras sociais. Regras sociais podem ser de vários tipos (formal ou informal, moral, econômica etc.) e podem ser vistas como uma maneira de manter o saldo geral dos valores de troca, a fim de alcançar um determinado estado (equilibrado, favorável para um ou mais indivíduos, etc.), e portanto mantendo os indivíduos motivados (ou obrigados) a continuar participando destas trocas. Valores de trocas materiais e virtuais são classificados por Piaget [6] em duas categorias mais amplas: trocas imediatas e trocas futuras. Nas trocas imediatas, os agentes trocam serviços de maneira imediata, serviço por serviço, para que seja possível avaliar tais serviços de forma imediata, enquanto os serviços estão sendo prestados, permitindo assim, que cada agente possa regular a quantidade e a qualidade do serviço que ele presta a outro agente (da mesma maneira que pessoas trocam bens materiais, negociando que bem irá entrar na troca). Dois tipos de valores estão associados a este tipo de troca imediata, que correspondem ao investimento necessário para se realizar um serviço para outro agente, e a satisfação que tal serviço proporcionou ao agente que recebeu o serviço. Tais valores são chamados de valores materiais de troca. No caso das trocas futuras existe uma separação de tempo entre os estágios de uma troca de serviços, dando origem aos valores de troca virtuais, englobando créditos e débitos: quando um agente executa um serviço para outro, ele recebe um crédito por tal serviço, e o outro recebe um débito por ter recebido tal serviço deve pagar este débito em algum futuro. O termo virtual se refere exatamente ao fato de que tal valor ainda não existe e será pago em algum momento no futuro. Por exemplo se alguém empresta um livro para outra pessoa, o correto seria, em princípio, esta pessoa devolver o livro para a pessoa, em um futuro não muito distante ESTRUTURA DAS TROCAS SOCIAIS Uma troca social entre dois agentes, α e β, é executada em dois tipos de estágios. Nos estágios do tipo I αβ o agente α realiza um serviço para o agente β. Os valores de troca envolvidos neste estágio são os seguintes: r Iαβ é o valor do investimento feito por α pela realização do serviço para β. Um valor de investimento é sempre negativo; s Iβα é o valor da satisfação de β pelo recebimento do serviço feito por α; t Iβα é o valor do débito de β, o débito é adquirido 85 em relação a α pela satisfação do serviço realizado por α; v Iαβ e o valor do crédito que α adquire de β pelo serviço realizado para β. De maneira análoga são as trocas do tipo II αβ, onde o agente α cobra um crédito por um serviço realizado anteriormente para β, que presta então um serviço para α em retorno. Um processo de trocas sociais consiste da realização de diversas dessas etapas ao longo do tempo. Um sistema está em equilíbrio material se os balanços entre os valores de investimento e satisfação estão equilibrados para cada agente, após uma sucessão de trocas realizadas no tempo. Os valores de débito e crédito é que garantem a continuidade das interações. 5. VALORES DE TROCA MODELADOS COMO JOGOS BAYESIANOS 5.1. INTRODUÇÃO Neste capítulo apresenta-se um modelo de Jogo Bayesiano, utilizando a Teoria dos Valores de Troca. O jogo é consiste de nove jogos diferentes que refletem os estados dos agentes. O modelo de estados foi modelado em [5, 4], que mostram os estados internos dos agentes envolvidos nas trocas. Aqui estes estados representarão os tipos dos agentes, como será visto no modelo a seguir MODELO Definição 5.1 Um jogo Bayesiano é uma tupla (N, A, Θ, p, u) onde: N = {α, β} é um conjunto de agentes; A α = {do-service, ask-service}, é o conjunto de ações disponíveis para o agente α, onde do-service significa que o agente deve oferecer um serviço para o outro agente (estágio de trocas tipo I αβ ) e ask-service significa que o agente deve solicitar um serviço para o outro agente (estágio de trocas tipo I βα ); A β = {yes, no} é o conjunto de ações disponíveis para o agente β onde yes significa que o agente β deve aceitar o serviço oferecido por α (ou aceita fazer um serviço para α) e no significa que o agente β deve recusar o serviço oferecido por α (ou se recusar a fazer o serviço solicitado por α); Θ = {Θ α, Θ β }, onde Θ α = {θ α+, θ α0, θ α } é o espaço de tipos do jogador α; e Θ β = {θ β+, θ β0, θ β } é o espaço de tipos do jogador β;

94 Pereira D. R., Costa A. C. R. Teoria dos Jogos aplicada à coordenação de agentes, utilizando Teoria dos Valores de Troca p : Θ [0, 1] é uma distribuição de probabilidade a priori comum sobre os tipos; e u = (u 1... u n ), onde u i : A Θ R é a função de utilidade para o jogador i. A matriz de recompensa para o jogo Bayesiano dos valores de troca será representada da seguinte forma: na Figura 10 são apresentados os tipos dos agentes envolvidos na troca. Após na Figura 11 são apresentados os nove jogos possíveis que os agentes podem estar jogando. Θ α, Θ β θ α+ θ α0 θ α θ β+ p = p = p = θ β0 p = p = p = θ β p = p = p = Figura 10. Matriz com os tipos dos jogadores e a distribuição de probabilidade a priori A Figura 12 mostra a função de utilidade dos agentes envolvidos no jogo Bayesiano. Considerando a equação do Capítulo 3 para calcular as utilidades ex ante, podemos construir a matriz de recompensa induzida para o jogo Bayesiano das Trocas de Valores. A Figura 13 reproduz a matriz para o jogador 1(α) e a Figura 14 reproduz a matriz para o jogador 2(β). As matrizes possuem as seguintes ações para os jogadores: Y Y Y significa que o agente escolhe a ação yes, independente de seu tipo, Y Y N ele escolhe yes para os tipos θ α+ e θ α0, mas escolhe a ação no caso seu tipo for θ α. De forma similar para o jogador coluna β, mas para as ações do service e ask service. Nas duas matrizes de recompensa, foram encontrados dois equilíbrios: o jogador β deve fazer a ação yes independente de seu tipo (isto é a ação Y Y Y ), e o jogador α tem duas melhores respostas, DDA e DAA, que resultam nos melhores resultados para os dois jogadores. Este resultado deriva dos jogos envolvidos no jogo Bayesiano, pois em todos eles existiam incentivos para os agentes permanecerem em equilíbrio, isto é, as recompensas eram maiores se os agentes escolhessem permanecer no estado de equilíbrio, aqui no jogo Bayesiano denotado por Θ α0 e Θ β0 para α e β respectivamente. Se for considerado ainda uma estratégia mista para α ele poderia jogar 50% das vezes DDA, e 50% das vezes DAA. 6. CONCLUSÃO 6.1. CONSIDERAÇÕES FINAIS A Teoria dos Jogos oferece diversas ferramentas para serem aplicadas à interação de agentes em um Sistema Multiagente, pois permitem que um agente raciocine sobre o comportamento do outro agente, escolhendo a melhor forma de interagir com ele. 86 a α a β Θ α Θ β u α u β do service yes θ α+ θ β+ 0 5 do service yes θ α0 θ β do service yes θ α θ β do service yes θ α+ θ β do service yes θ α0 θ β do service yes θ α θ β0 5 5 do service yes θ α+ θ β do service yes θ α0 θ β 0 5 do service yes θ α θ β do service no θ α+ θ β do service no θ α0 θ β do service no θ α θ β do service no θ α+ θ β do service no θ α0 θ β do service no θ α θ β0 0 0 do service no θ α+ θ β do service no θ α0 θ β do service no θ α θ β ask service yes θ α+ θ β+ 5 0 ask service yes θ α0 θ β ask service yes θ α θ β ask service yes θ α+ θ β ask service yes θ α0 θ β ask service yes θ α θ β0 5 5 ask service yes θ α+ θ β ask service yes θ α0 θ β 5 0 ask service yes θ α θ β ask service no θ α+ θ β ask service no θ α0 θ β ask service no θ α θ β ask service no θ α+ θ β ask service no θ α0 θ β ask service no θ α θ β0 0 0 ask service no θ α+ θ β ask service no θ α0 θ β ask service no θ α θ β Figura 12. Função de utilidade para os agentes α e β

95 Pereira D. R., Costa A. C. R. Teoria dos Jogos aplicada à coordenação de agentes, utilizando Teoria dos Valores de Troca Figura 11. Todos os jogos possíveis DDD DDA DAD DAA ADD ADA AAD AAA Y Y Y Y Y N Y N Y Y N N N Y Y N Y N N N Y N N N Figura 13. Matriz de recompensa para o jogador 1 α DDD DDA DAD DAA ADD ADA AAD AAA Y Y Y Y Y N Y N Y Y N N N Y Y N Y N N N Y N N N Figura 14. Matriz de recompensa para o jogador 2 α 87

96 Pereira D. R., Costa A. C. R. Teoria dos Jogos aplicada à coordenação de agentes, utilizando Teoria dos Valores de Troca Especificamente, se aplicada à Teoria dos Valores de Troca, a Teoria dos Jogos fornece uma forma de regulação entre as trocas realizadas entre os agentes, sem o auxílio de um agente externo que regule essas interações. Outros trabalhos como [2, 1, 5, 4], já abordaram o problema da regulação nas Trocas Sociais, entretanto nenhum deles utilizando a Teoria dos Jogos TRABALHOS FUTUROS Como trabalhos futuros, pode se indicar outros testes para serem aplicados ao jogo Bayesiano descrito no Capítulo 5. Por exemplo, pode se variar a distribuição inicial de probabilidade a priori, com diversas distribuições, a fim de se investigar se os equilíbrios se mantém. Pode se alterar as matrizes de recompensa dos jogos originais que compõem o jogo Bayesiano, alterando a localização dos equilíbrios, para uma análise do equilíbrio do jogo na forma induzida. Por fim, pode se variar os tipos e ações disponíveis, para aumentar ou diminuir a complexidade do jogo. Pode se expandir o conceito de jogo Bayesiano para incluir o Projeto de Mecanismos (Mechanism Design) [8], regulando as trocas feitas pelos agentes. Costa, editors, SBIA 2008, volume 5249 of LNAI, pages Springer, Berlin, [6] Jean Piaget. Sociological Studies. Routlege, London, [7] Yoav Shoham and Kevin Leyton-Brown. Essentials of Game Theory: A Concise, Multidisciplinary Introduction. Morgan and Claypool Publishers, California, [8] Yoav Shoham and Kevin Leyton-Brown. Multiagent Systems: Algorithmic, Game-Theoretic, and Logical Foundations. Cambridge University Press, Cambridge, December [9] John von Neumann and Oskar Morgenstern. Theory of games and economic behavior. Princeton University Press, Princeton, Referências [1] G. P. Dimuro and A. C. R. Costa. Exchange values and self-regulation of exchanges in multi-agent systems: The provisory, centralized model. In Sven Brueckner, Giovanna Di Marzo Serugendo, David Hales, and Franco Zambonelli, editors, Engineering Self-Organising Systems, volume 3910 of LNCS, pages Springer, Berlin, [2] G. P. Dimuro, A. C. R. Costa, L. V. Gonçalves, and A. Hübner. Centralized regulation of social exchanges between personality-based agents. In Coordination, Organizations, Institutions, and Norms in Agent Systems II, volume 4386 of LNCS, pages Springer, Berlin, [3] John Nash. Non-cooperative games. The Annals of Mathematics, 54(2): , [4] D. R. Pereira, L. V. Gonçalves, G. P. Dimuro, and A. C. R. Costa. Constructing BDI plans from optimal POMDP policies, with an application to agentspeak programming. In Proc. of Conf. Latinoamerica de Informática, CLEI 08, Santa Fe, SADIO. [5] D. R. Pereira, L. V. Gonçalves, G. P. Dimuro, and A. C. R. Costa. Towards the self-regulation of personality-based social exchange processes in multiagent systems. In G. Zaverucha and A. Loureiro 88

97 WEBSMIT Sistema Multiagente para Identificação e Atribuição Automática de Tarefas para Grupos de Trabalho Geograficamente Dispersos César Arboite Pereira 1 José Lucas Garcia Filho 1 Márcia Cristina Moraes 1 & Silvia Moraes 1 1 Faculdade de Informática Pontificia Universidade Católica do Rio Grande do Sul Av. Ipiranga 6681, Prédio 32 Telefone: +55 (51) Porto Alegre - RS - BRAZIL {cesarap-lucasjava}@gmail.com {marcia.moraes-silvia.moraes}@pucrs.br Abstract Software projects that involve multiple work teams have a greater complexity than other types of projects, because there are many factors that project managers need to consider. In geographically distributed projects, each team may be responsible for implementing a part of the project, and considering that they are geographically distributed it is possible to have some interaction difficulties. A system that uses multi-agent systems for automatic allocation of work teams is an interesting alternative. Such a tool helps project manager in the allocation of teams without the need of the manager to have a detailed knowledge about the skills of the available resources for selecting a team. This paper presents a prototype tool, called WEBSMIT (Multi-Agent System for Automatic Identification and Assignment of Tasks for Teams Geographically Distributed), which identify the best team available to perform the activity required for a project. Keywords: Allocation of tasks, Geographically distributed teams, Multi-agent systems, Analogy by similarity 1. INTRODUÇÃO Atualmente, o projeto de um novo produto tem se mostrado um processo intensivamente colaborativo. Isto ocorre devido à complexidade dos projetos que envolvem várias equipes de trabalho, cada uma responsável pela execução de uma parte do projeto. Estas equipes, em muitos casos, estão localizadas em pontos geograficamente distantes o que dificulta a interação entre elas pela ausência de um contato mais direto e pessoal. Neste caso, algumas situações particulares podem 89

98 César Arboite Pereira, José Lucas Garcia Filho, Márcia Cristina Moraes e Silvia Moraes WEBSMIT Sistema Multiagente para Identificação e Atribuição Automática de Tarefas para Grupos de Trabalho Geograficamente Dispersos surgir e influenciar diretamente o desenvolvimento do projeto [1]. Uma possível situação é quando ocorre uma falha (bug) no produto e essa falha tem nuances de diferentes equipes; o problema, então, passa a ser a identificação da equipe mais adequada para solucion ar tal falha. A mesma situação pode acontecer quando é necessário realizar uma extensão das funcionalidades do produto, antes ou após a sua entrega. Essa extensão pode exigir o envolvimento de diferentes equipes. No entanto, o inter-relacionamento das atividades necessárias ao seu desenvolvimento pode dificultar a divisão e distrib uição dessas atividades entre as equipes. Muitas vezes, com gerente de projetos e equipes de desenvolvimento trabalhando em locais geograficamente distantes, se torna difícil para o gerente de proje tos conhecer profundamente as equipes de trabalho e tomar a decisão de alocar a equipe mais adequada para o desenvolvimento de alguma tarefa. A fim de auxiliar o gerente de projetos no processo de alocação de equipes, geograficamente dispersas, que possuam as competências necessárias para realizar s a atividades de um projeto, estamos propondo o sistema WEBSMIT (Sistema Multiagente para Identificação e Atribuição Automática de Tarefas para Grupos de Trabalho Geograficamente Dispersos). Este sistema faz uso do paradigma de sistemas multiagentes para identificar a disponibilidade e as competências de uma equipe e alocá-la para a realização de uma atividad e de um projeto. O artigo está organizado em quatro seções. A seção dois descreve o referencial teórico utilizado neste trabalho. A seção três apresenta a modelagem do sis tema proposto e o seu funcionamento. A seção quatro descreve as considerações finais e trabalhos futuro s. 2. REFERENCIAL TEÓRICO Para o desenvolvimento deste trabalho foi necessário o estudo de conceitos relacionados às áreas de engenharia de sofware e de inteligência artificial.os conceitos estudados serão apresentados nas próximas subseções. 2.1 PROJETO DE SOFTWARE De acordo com o PMBOK [2], projeto é um esforço temporário empreendido para criar um produto, serviço ou resultado exclusivo. A principal diferença entre projetos e trabalho operacional, embora possuam características semelhantes, é o fato de que as operações são contínuas e repetitivas, enquanto que os projet os são temporários e exclusivos. 2.2 PROJETOS GEOGRAFICAMENTE DISTRIBUÍDOS Projetos geograficamente distribuídos são aqueles que possuem uma ou mais equipes alocadas em locais diferentes, tais como cidades, estados e países. Mu itas organizações optam por esta abordagem por se tratar, muitas vezes, de uma oportunidade de aumento nos lucros, uma vez que se pode obter mão-de-obra qualificada por menores custos, diminuição nos índi ces de retrabalhos, além de utilizar, muitas vezes, a diferença no fuso horário a favor do projeto. Em contrapartida, esta abordagem tem como conseqüência uma série de riscos que não se teria em um ambiente de projeto convencional. Podemos citar como exemplos a diferença sócio-cultural entre as equipes, a comuni cação e o relacionamento entre as equipes. Nesse contexto desafiador, cabe ao gerente de projetos fazer com que suas equipes trabalhem em harmonia, visando o cumprimento dos prazos estabelecidos, dentro do custo e do escopo previsto, e com a qualidade esperada pelo cliente. Fica visível que neste cenário torna-se praticamente impossível gerenciar sem o apoio de ferramentas que dêem subsídios para tomadas de decisões ao gerente do projeto [3]. 2.3 GERENCIAMENTO DE RECURSOS HUMANOS Conforme o PMBOK [2], o gerenciamento dos recursos humanos do projeto inclui os processos que organizam e gerenciam a equipe do projeto. A equipe do projeto é composta por pessoas com funções e responsabilidades atribuídas para o término do projeto. Os recursos humanos do projeto são todos os membros do projeto que serão designados a exercerem determinadas funções e responsabilidades no projeto, de acordo com suas competências. Função é o rótulo que descreve a parte de um projeto pela qual uma pessoa é responsável [2]. Em projetos de software as funções também são conhecidas como papéis. São exemplos de funções em equipes de projetos de software: analist a de sistemas, analista de negócios, gerente de projetos, desenvolvedor, analista de testes, etc. Responsabilidade é o trabalho que um membro da equipe do projeto deve realizar para terminar as atividades do projeto. Como exemplos de responsabilidades em projetos de software podemos citar: codificação dos casos de uso, realiz ação de testes funcionais dos casos de uso, especificaçã o de casos de uso, entre outras. Competências são as habilidades e as capacidades necessárias para realizar as atividades do projeto [2]. 2.4 AGENTES E SISTEMAS MULTIAGENTES Em Inteligência Artificial, é difícil encontrar uma única definição para o termo agentes, porém, existe um consenso de que autonomia é a característica central de todos os tipos de agentes. Parte da dificuldade de se encontrar uma definição geral se deve a existência de diferentes objetivos para diferentes situações em q ue se utilizam agentes. Segundo Weiss [4], uma definição abrangente sobre o termo agente diz que ele pode ser 90

99 César Arboite Pereira, José Lucas Garcia Filho, Márcia Cristina Moraes e Silvia Moraes WEBSMIT Sistema Multiagente para Identificação e Atribuição Automática de Tarefas para Grupos de Trabalho Geograficamente Dispersos considerado como uma entidade situada em um ambiente capaz de tomar decisões autônomas e ter um comportamento especifico a fim de realizar os objetivos para aquilo que foi projetado. Um agente para conseguir realizar seu objetivo, deve possuir algumas propriedades especificas como: ser autônomo, para conseguir operar sem a direta intervenção humana; social, para conseguir cooperar com humanos ou com outros agentes para cumprir tarefas; reativo, para responder às percepções de mudança de ambiente; e pró-ativo para não simplesmente responder as mudanças de ambiente, mas para tomar iniciativas rumo ao objetivo [5]. Quando um conjunto de agentes interage em um ambiente comum temos o que se denomina de sistema multiagente [6]. De acordo com Weiss [4] as características de um sistema multiagente são: a existência de uma infra-estrutura de comunicação en tre os agentes; os sistemas são normalmente abertos e compostos por agentes autônomos e distribuídos que podem ser cooperativos ou competitivos. 2.5 ANALOGIA POR SIMILARIDADE Uma abordagem que fornece respostas rápidas e usa experiência passada (recursos) para produzir novas soluções para problemas inesperados é a analogia po r similaridade [7]. Um modelo de analogia simplificado em um banco de dados é o seguinte: existe um alvo T descrito por m pares de atributo-valor, para o qual se quer encontrar o valor de outro atributo Q. Existem várias fontes S 1,..., S n (análogas) que têm valores para o atributo Q desejável bem como para os m atributos conhecidos para o alvo. A similaridade s é definida como o número de valores de atributos que combinam para um determinado alvo e fonte e a diferença é definida por d = m-s. Assumindo que existem r atributos relevantes para descobrir o valor de Q, p(d, r) é definida como sendo a probabilidade que a fonte S, diferindo do seu alvo em d atributos, se combina com os r atributos relevantes. A suposição de que não existe informaçã relevante significa que todos os atributos são igua lmente importantes para serem relevantes. Pode-se calcular p(d,r) usando um argumento combinatório simples (Russell 1988). Seja N m o número de escolhas de quais atributos são relevantes tais que S combina com T e m tais atributos. Seja N o número total de escolhas de quais atributos são relevantes, temos a seguinte equação (1): m d r m r p(d, r) = N m / N = ( r > = 1) (1) o como objetivo auxiliar o gerente de projetos no processo de encontrar os melhores recursos disponíveis para a realização de atividades em um projeto de software geograficamente distribuído. O sistema é composto por três módulos (Figura 1): segurança (responsável pela validação de usuários); cadastros (responsável por popular a base de dados do sistema com informações relevantes para o processo de alocação de recursos) e agentes (responsável pelo processo de seleção e alocação de equipes para atividades do projeto). Na s próximas seções serão detalhadas as informações armazenadas na base de dados, o módulo de agentes e o funcionamento do sistema. Figura 1: Módulos do sistema 3.1 INFORMAÇÕES ARMAZENADAS NA BASE DE DADOS Como apresentado na Figura 1, para o desenvolvimento do sistema WEBSMIT será necessário possuir uma base de dados com informações de projet os, atividades, tarefas, equipes e recursos. O sistema usa como base para realizar a alocação das equipes as competências de cada recurso e para isso, portanto, também será necessário armazenar informações sobre os conhecimentos específicos de cada integrante de uma equipe. De acordo com estas necessidades, a seguir serão apresentadas as informações que armazenaremos na base de dados do sistema. Projeto Módulo de Segurança Módulo de Cadastros Módulo de Agentes Base de Dados Não existe atividade se esta não está atrelada a um projeto, logo, o cadastro de projetos é o primeiro passo do sistema. Um projeto deverá possuir um nome e uma descrição para ser identificado. O campo descrição será utilizado somente para identificação do projeto em buscas posteriores ao cadastramento. Além disso, os projetos serão constituídos por uma serie de ativid ades. 3. SISTEMA WEBSMIT O sistema WEBSMIT é um sistema Web que tem Atividade Como citado anteriormente, uma atividade fará parte de um projeto, e para estas atividades é que o sistema irá 91

100 César Arboite Pereira, José Lucas Garcia Filho, Márcia Cristina Moraes e Silvia Moraes WEBSMIT Sistema Multiagente para Identificação e Atribuição Automática de Tarefas para Grupos de Trabalho Geograficamente Dispersos realizar a alocação da equipe mais adequada. Cada atividade possuirá uma descrição e um atributo indicando a qual projeto está relacionada. Como a alocação da equipe será feita por atividade, teremo s também que armazenar a equipe que estará realizandoa atividade após ser feita a alocação automática. Tarefa Definimos que as tarefas em um projeto, pertencem a uma atividade e são realizadas por um único recurso, que possui o papel requerido para a tarefa e tambémas competências necessárias para realizá-la. A alocaçã o automática irá utilizar estas informações de competências para buscar o melhor recurso para a tarefa. Recurso Um recurso em um projeto representa uma pessoa. Cada recurso possui uma serie de competências que podem ou não ser relacionadas ao seu papel, como, p or exemplo, um recurso que possui um papel de programador pode possuir competência em UML, que também é uma competência do papel de analista de sistemas. Após a alocação automática, um recurso será relacionado a uma tarefa, indicando que a estará realizando. Esta informação será futuramente armazenada em uma base de histórico de atividades d a equipe, para que o sistema, quando for fazer uma nova alocação verifique se o recurso e a equipe já reali zaram uma tarefa relacionada. Equipe Uma equipe será formada por recursos de diferentes competências. Com base nas competências dos recurso pertencentes à equipe o sistema realizará a alocaçã o da equipe em uma atividade. Visual Studio, Html, Javascript, UML, WebService, XML, Ajax, CSS, PL/SQL, PMBOK, Scrum, Liderança, Comunicação, Negociação, Inglês e Espanhol. Papel Os papéis são as funções exercidas pelos membros da equipe (recursos) durante um projeto. Um recurso poderá exercer apenas um papel. Alguns dos papéis que podem ser executados pelos recursos de uma equipe, sendo que uma equipe poderá tanto possuir mais de um recurso para cada papel, como nenhum recurso para outro papel, são: programador, testador, analista de sistemas, gerente de projetos, DBA (Data Base Administrador) e arquiteto de software. 3.2 MÓDULO DE AGENTES Para o desenvolvimento do módulo de agentes foi utilizado um sistema multiagente composto pelos seguintes agentes: agente de grupo, agente seletor de grupos e agente gerenciador de tarefas, como mostra a Figura 2. Estes agentes fazem acesso a uma base de dados geral de atividades, que contém tanto as atividades realizadas pelas equipes quanto às ativi dades que estão em andamento. Agente Gerenciador de Tarefas Base Geral de Atividades Agente Seletor de Grupos Competência As competências são utilizadas para alocar os recursos às tarefas e conseqüentemente as equipes à atividades. Cada recurso poderá possuir n competências. Uma competência não estará diretamente ligada a um papel, visto que um programador pode, por exemplo, possuir o conhecimento de PMBOK, apesar de não faze r uso dela enquanto realiza o papel de programador. Esta visão facilita a alteração do papel de um recurso, que pode a qualquer momento receber outro papel, ou seja, o recurso passa a exercer um novo papel, mas continuará com as competências que utilizava para desempenhar o seu papel anterior. Como exemplos de competências podemos citar: Java, C#, Sql ANSI, Oracle, SqlServer, Php, Eclipse, s Agente de Grupo Agente de Grupo Equipe 1 Equipe 2 Figura 2: Arquitetura do módulo de agentes Agente de grupo é aquele que representa virtualmente uma equipe engajada no desenvolvimento do projeto. O agente tem o conhecimento e controle sobre as atividades que estão sobre responsabilidad e da sua equipe. Com base nestas informações o agente informa, quando solicitado, um índice probabilístic o de aptidão da equipe que define a capacidade da equipe executar uma determinada atividade. Para realizar o cálculo deste índice, o agente verifica quais tarefas estão cadastradas na atividade a ser realizada. As tarefas 92

101 César Arboite Pereira, José Lucas Garcia Filho, Márcia Cristina Moraes e Silvia Moraes WEBSMIT Sistema Multiagente para Identificação e Atribuição Automática de Tarefas para Grupos de Trabalho Geograficamente Dispersos necessitam sempre de um recurso com as competências adequadas para realizá-las. O papel do agente de grupo é verificar se todas as tarefas da atividade têm condições de serem cumpridas pelos recursos de sua equipe. Esta verificação é realizada utilizando-se o algoritmo d e analogia por similaridade apresentado na seção 2.5. Agente seletor de grupos é responsável pela escolha do grupo (que representa uma equipe) mais adequado para resolver uma atividade. Este agente recebe uma solicitação de um agente de grupo quanto à escolha de uma equipe para resolver uma determinada tarefa, este agente realiza uma busca na base geral das atividades e verifica se a tarefa já foi resolvida ou se sua resolução está em andamento. Caso ele não a encontre, ele dispara um broadcast para todos os agentes de grupo solicitando que eles informem seus índices de aptidão e disponibilidade para executar tal tarefa. Ao receber as respostas dos agentes por grupo quanto à execução d e uma tarefa, este agente decide, através de uma lista ordenada, qual agente de grupo resolverá a tarefa e informa ao agente a sua decisão. Agente gerenciador de tarefas é o responsável pelo controle e atualização das atividades realizadas po r todos os agentes de grupo na base geral das atividades do projeto. Ele garante a consistência da base geral de atividades, evitando, por exemplo, que a mesma atividade esteja em execução por grupos diferentes. Ao receber uma requisição do agente de grupo para regi strar uma tarefa em execução na base geral das atividades, o agente verifica se a atividade a ser registrada já está sendo executada por outro grupo. Neste caso, este agente informa ao agente de grupo solicitante que a tarefa já está em execução e não realiza o registro. No outro caso, o agente atualiza a base de atividades e responde ao agente de grupo solicitante uma confirmação da sua solicitação. Ao receber uma requisição do agente de grupo para registrar o térm ino de uma tarefa na base geral das atividades, ele atualiza o registro correspondente à atividade e responde confirmando a solicitação. Para realizar a comunicação entre os agentes foi desenvolvido um protocolo baseado em troca de mensagens. Este protocolo pode ser visualizado na Figura 3. Figura 3: Protocolo de comunicação entre os agentes 93

102 César Arboite Pereira, José Lucas Garcia Filho, Márcia Cristina Moraes e Silvia Moraes WEBSMIT Sistema Multiagente para Identificação e Atribuição Automática de Tarefas para Grupos de Trabalho Geograficamente Dispersos Como apresentado na Figura 3, o gerente de projetos solicita pelo sistema WEBSMIT a alocação de uma equipe para realizar uma determinada tarefa. O agente que é ativado neste momento é o agente selet or de grupos. Este agente realiza uma busca na base geral das atividades e verifica se a tarefa já foi resolvida ou se sua resolução está em andamento. Caso a tarefa n ão esteja na base de dados, o agente seletor de grupo dispara um broadcast para todos os agentes de grupo solicitando os seus índices de aptidão para executa r a tarefa. Os agentes de grupo realizam o cálculo do seu índice de aptidão utilizando o algoritmo de analogi a por similaridade (este processo será detalhado no próximo parágrafo) e informa este índice para o age nte seletor de grupo. Após ter recebido todos os índice s de aptidão de cada agente de grupo, o agente seletor d e grupo cria uma lista ordenada de grupos que podem realizar a tarefa e faz a seleção do melhor grupo. Tendo selecionado um grupo para realizar a tarefa, o agente seletor de grupos envia uma mensagem para o agente gerenciador de tarefas que atualiza o estado da atividade na base de dados geral de atividades. O agente gerenciador de tarefas envia uma mensagem para o agente de grupo da equipe selecionada. O agente de grupo aloca a equipe e informa ao agente gerenciador de tarefas que a sua equipe foi alocada para realizar a tarefa. O agente gerenciador de tarefas informa ao gerente de projeto o resultado da sua solicitação. A alocação automática de recursos feita pelos agentes desenvolvidos levará dois pontos em consideração: as competências necessárias para a realização de cada tarefa pertencente à atividade; e as competências dos recursos pertencentes à equipe e aptos a realizar as tarefas da atividade. Quando uma atividade é cadastrada, o gerente de projetos também cadastra tarefas para a atividade. Ao cadastrar uma tarefa, o gerente de projetos estabelece um papel que deverá executá-la e as competências necessárias para a execução sua execução. Cada tare fa poderá ser executada por somente um recurso, e uma atividade deverá ser executada somente por uma equipe, ou seja, todas as tarefas de uma atividade serão executadas por recursos de uma mesma equipe. Para verificar o percentual de aptidão de cada recu rso e por conseqüência da equipe, o agente de grupo verifica se algum recurso da equipe executa o papel necessário para a tarefa e se possui as competência s necessárias. Além disso, a disponibilidade dos recursos também é analisada, ou seja, se um recurso estiver alocado para outra tarefa no mesmo período tarefa solicitada, este não poderá ser superalocado. Para realizar o cálculo do percentual de aptidão da para a atividade, é utilizado o algoritmo de analogia por similaridade, como mencionado anteriormente. Com as atividades, tarefas e competências devidamente cadastradas temos então o seguinte cenário a ser levado em consideração para o cálculo do percentual de aptidão: m número de competências necessárias para execução da tarefa s número de combinações da lista de competências de um recurso com a lista de competências da tarefa d = m - s diferença entre a lista de competências desejadas para a execução da tarefa e as competênci as possuídas pelo recurso r = m/2 número de atributos relevantes, ou seja, definimos que o recurso deve possuir no mínimo 50% das competências necessárias para ser considerado apto. Após a aplicação das variáveis na equação (1) apresentada na seção 2.5, será gerado um número entre 0 e 1 que irá determinar a aptidão de um recurso poder realizar a tarefa. 3.3 FUNCIONAMENTO DO SISTEMA Apresentaremos a seguir os passos necessários para a execução do fluxo principal de utilização do sistema, desde o acesso ao sistema, ao cadastramento de projeto, atividades, recursos, papéis, competênc ias e equipes. Após o gerente de projetos ter realizado o login no sistema, ele terá acesso a Tela Inicial, como apresentado na Figura 4. Figura 4: Tela inicial do sistema A seguir demonstraremos o fluxo de cadastro de um projeto. Apesar de começarmos pelo cadastro de projeto neste exemplo, esclarecemos que poderíamos ter iniciado por outros cadastros, como, por exemplo, 94

103 César Arboite Pereira, José Lucas Garcia Filho, Márcia Cristina Moraes e Silvia Moraes WEBSMIT Sistema Multiagente para Identificação e Atribuição Automática de Tarefas para Grupos de Trabalho Geograficamente Dispersos o cadastro de competências. Ao clicar no link Projetos do menu do sistema, o usuário é direcionado primeiramente para a página e d Pesquisa de Projetos. Nesta página, o usuário deverá clicar no botão Novo para que o sistema seja direcionado para a página de Cadastro de Projetos (Figura 5). Nesta página, o usuário deverá informar o nome do projeto, sua descrição, a data de inicio e a data de fim do respectivo projeto. Após isso, ao cl icar no botão Cadastrar, o usuário recebe a mensagem d e Cadastro efetuado com sucesso e o sistema apresenta a opção de Cadastrar Atividades para o projeto recém cadastrado como mostra a Figura 6. Figura 5: Cadastro de projetos Figura 7: Cadastro de atividades Como pode ser visto na Figura 7, é possível cadastrar ao mesmo tempo diversas atividades em um projeto. Preenchendo os campos de cadastro e clicando em Adicionar, a atividade entra para uma lista na parte inferior da tela. Para finalizar o cadastro das atividades, o usuário clica em Finalizar. Cas o queira editar ou excluir alguma das atividades cadastradas antes de finalizar, o gerente deve clicar nos respectivos botões, Editar e Excluir. Ao confirmar a inclusão das atividades, o sistema disponibiliza a mesma função encontrada no Cadastro de Projetos. O sistema pergunta se o gerente deseja cadastrar tarefas para a atividade recém cadastradas (Figura 8). Assim como no cadastro de projeto visto anteriormente, vamos considerar que o gerente não deseje cadastrar tarefas neste momento, então ao cl icar na opção Cancelar o gerente será direcionado para a Tela Inicial do sistema. Figura 6: Mensagem de confirmação do cadastro de pr ojeto Vamos considerar que o usuário não deseje cadastrar atividades neste momento, então ao clicar na opção Cancelar o usuário será direcionado para a tela inicial do sistema. Para cadastrar uma atividade, o gerente deve acessar o menu de Atividades na Tela Inicial. A o clicar no item do menu Atividades, o gerente vai ser direcionado para a tela de Pesquisa de Atividades, onde deverá clicar na opção Nova, sendo assim direcionado para a página de Cadastro de Atividades (Figura 7), com todos os campos liberados para inserção da atividade. Figura 8: Mensagem de confirmação do cadastro de at ividade Para cadastrar uma competência no sistema, o gerente deve acessar o menu Competências da Tela Inicial do sistema. Na tela de Pesquisa de Competências que é aberta, o gerente deverá selecionar a opção Nova e é então direcionado par a tela de Cadastro de Competências. Nessa tela, como mostra a Figura 9, o gerente informa o nome da competência e em seguida clica em Cadastrar para confirmar a inserção da competência. a 95

104 César Arboite Pereira, José Lucas Garcia Filho, Márcia Cristina Moraes e Silvia Moraes WEBSMIT Sistema Multiagente para Identificação e Atribuição Automática de Tarefas para Grupos de Trabalho Geograficamente Dispersos Cadastro de Tarefas (Figura 11), com todos os campos liberados para inserção da tarefa. Figura 9: Cadastro de competência Já que demonstramos como é realizado o cadastramento de uma competência, podemos agora passar ao cadastramento de papel, pois veremos a seguir que o cadastro de um papel está condicionadoà existência de competências previamente cadastradas. Para cadastrar um novo papel no sistema, o gerente deve acessar o menu Papel na Tela Inicial do sistema. A tela de Pesquisa de Papeis será exibida e o usuário deverá selecionar a opção Novo. Logo após, o gerente é direcionado para a tela de Cadastro de Papéis, como mostra a Figura 10. Nesta tela, o gerente informa o nome do papel e incluí as competências que dizem respeito ao papel que esta sendo cadastrado. Em seguida o gerente deverá clicar em Cadastrar para confirmar a inserção do papel. Figura 11: Cadastro de tarefas Como pode ser visto na Figura 11, é possível cadastrar ao mesmo tempo diversas tarefas em uma atividade preenchendo os campos de cadastro e clicando em Adicionar. Para finalizar o cadastro das tarefas, o gerente clica em Finalizar. Para cadastrar um novo recurso no sistema, o gerente deverá acessar o menu Recurso da Tela Inicial do sistema. Na tela de Pesquisa de Recurs o que é aberta, o gerente seleciona a opção Novo. Logo após, o gerente é direcionado para a tela de Cadastro de Recurso, como mostra a Figura 12. Então, o gerente informa o nome do recurso, selecio na o papel que o recurso vai executar e inclui as competências que o recurso possui. Em seguida deverá clicar em Cadastrar para confirmar a inserção do recurso. Figura 10: Cadastro de papéis Uma vez cadastradas as competências e os papéis necessários, podemos realizar o cadastramento das tarefas do projeto. Ao acessar o item de menu Tarefas da Tela Inicial do sistema, o gerente será direcionado para a tela de Pesquisa de Tarefas, onde deverá clicar n a opção Nova, sendo assim direcionado para a tela d e Figura 12: Cadastro de recursos Para cadastrar uma nova equipe no sistema, o gerente deve acessar o menu Equipe na Tela Inicial do sistema. Na tela de Pesquisa de Equipe 96

105 César Arboite Pereira, José Lucas Garcia Filho, Márcia Cristina Moraes e Silvia Moraes WEBSMIT Sistema Multiagente para Identificação e Atribuição Automática de Tarefas para Grupos de Trabalho Geograficamente Dispersos que é aberta, o gerente clica no botão Nova e o sistema exibe a tela de Cadastro de Equipe, como mostra a Figura 13. O gerente, então, informa um nome para identificar a equipe e seleciona os recursos que farão parte da equipe. Na listagem dos recursos disponíveis, são listados somente os recursos que n ão estão em nenhuma equipe. Em seguida o gerente clica em Cadastrar para confirmar a inserção da equipe. Figura 15: Identificação de equipe alocada Figura 13: Cadastro de equipes A alocação de recursos é realizada na tela de Visualização ou Edição de Atividades. O gerente pesquisa pela atividade que deseja fazer a alocação e clica na opção de Visualizar Atividade. Se a atividade estiver corretamente cadastrada, o botão de Alocar Equipe estará disponível (Figura 14). Para realizar a alocação então, basta o usuário clicar n este botão e logo após o sistema informará qual equipe f oi alocada para realizar a atividade (Figura 15). Figura 14: Visualização de atividade para alocação de equipe Nesta seção foi apresentado o fluxo principal, necessário para realizar a alocação de uma equipe e m um projeto. Após todos os recursos e equipes serem cadastrados no sistema, o gerente de projetos irá cadastrar os novos projetos e atividades que serão desenvolvidos futuramente, utilizando o sistema para auxiliá-lo a realizar a alocação automatizada dos recursos. 4. CONSIDERAÇÕES FINAIS E TRABALHOS FUTUROS Projetos com equipes geograficamente dispersas tem-se tornado cada vez mais comuns atualmente, e com esta tendência temos uma série de novos problemas que estão relacionados a este tipo de projeto. Um desses problemas é, em muitos casos, o desconhecimento da equipe pelo gerente de projetos, suas competências, habilidades, entre outros, que impedem as tomadas de decisões do gerente em relação à equipe mais adequada, e que tenha disponibilidade para a realização de uma nova atividade a ser realizada no projeto. O sistema WEBSMIT, tem como objetivo auxiliar o gerente de projetos identificando a disponibilidade e as competências das equipes para realização de atividades em projetos e realizando a alocação da melhor equipe disponível para realizar a atividade necessária ao projeto. Durante a realização deste trabalho, nas pesquisas realizadas, não encontramos ferramentas que realize m a alocação automática de recursos para equipes de projetos geograficamente distribuídas. Atualmente estamos trabalhando na validação da funcionalidade do sistema. Uma validação inicial se rá 97

106 César Arboite Pereira, José Lucas Garcia Filho, Márcia Cristina Moraes e Silvia Moraes WEBSMIT Sistema Multiagente para Identificação e Atribuição Automática de Tarefas para Grupos de Trabalho Geograficamente Dispersos feita para se comparar a realização da alocação de recursos da maneira tradicional, feita por um gerente de projetos com conhecimento das suas equipes com a alocação automática realizada pelo sistema WEBSMIT. A versão atual do sistema WEBSMIT foi desenvolvida em C# com banco de dados SQL Server 2005 Express. A escolha por esta linguagem de desenvolvimento ocorreu devido ao trabalho ter sido desenvolvido no âmbito de um trabalho de conclusão de curso que possui um tempo de execução limitado e pelos alunos envolvidos no projeto já possuírem experiência de programação nesta linguagem. Como trabalhos futuros pretendemos realizar a implementação do sistema utilizando ferramentas específicas para desenvolvimento de agentes e reali zar uma comparação de performance entre as duas versões do sistema. Outros trabalhos futuros a serem realizados são a descentralização da base de dados e a possibilidade de se alocar algum ou alguns dos recursos de uma equipe para a realização de uma tarefa ao invés de se alocar a equipe como um todo. York, 47(4): 62-66, [2] Project Management Institute. A guide to the project management body of knowledge (PMBOK guide). Project Management Institute. Pensylvania, [3] J. Audy, R. Prikladnicki. Desenvolvimento Distribuído de Software. Campus: Rio de Janeiro, [4] G. Weiss. Multiagent Sytems - A modern Approach to Distributed Artificial Intelligence. The MIT Press: Cambridge, Massachussets, [5] J. Bradshaw. Software Agents. AAAI Press/The MIT Press: Menlo Park, California, [6] L. O. Alvares, J. Sichman. Introdução aos Sistemas Multiagentes. In Jornada de Atualização em Informática, Congresso da SBC, 17., SBC:Brasilia, p.1-38, [7] S. Russell. Analogy by Similarity. In David Helman (Ed.), Analogical Reasoning, D. Reidel, Boston, REFERENCES [1] S. Krishna, S. Sahay, G. Walsham. Managing Cross-Cultural Issues in Global Software Outsourcing. Communications of the ACM, New 98

107 Aplicação de Sistemas Multiagentes à Gestão do Conhecimento Maiquel de Brito 1 & Carine Geltrudes Webber 1 1 Centro de Computação e Tecnologia da Informação Universidade de Caxias do Sul Rua Francisco Getúlio Vargas, 1130 Fone: +55 (54) Cep Caxias do Sul - RS - BRASIL maiquelb@terra.com.br, cgwebber@ucs.br Abstract The Knowledge Management is a concept that evolves some practices for manage the knowledge with efectiveness, looking it as a very important resource to the organizations today. This paper presents a research about the use of multiagent systems in Knowledge Management. Some works has been published using multiagent systems as a technological tool to aid in processes of Knowledge Management. The review of this works, conjugated with some theorical issues, makes possible the design of a model of Multiagent System that have some features related with Knowledge Management. The implementation of this model was made just as a test using the Jason platform. Some details about this implementation are described in this paper. Keywords: Knowledge Management, Multiagent Systems, BDI Agents, Jason. Resumo A Gestão do Conhecimento consiste em um conceito que envolve diversas práticas para gerenciar o conhecimento de maneira efetiva, administrando-o como recurso importante para as organizações nos dias atuais. Este artigo apresenta um estudo sobre a aplicação de Sistemas Multiagentes à Gestão do Conhecimento. Alguns trabalhos têm sido desenvolvidos aplicando Sistemas Multiagentes em ferramentas tecnológicas de apoio à Gestão do Conhecimento. A análise destes trabalhos, aliada a questões teóricas, possibilita a elaboração de um modelo de Sistema Multiagentes que agrega diversas funcionalidades relacionadas com apoio à Gestão do Conhecimento. A implementação deste modelo foi feita em caráter de teste com a utilização da plaforma de desenvolvimento 99 "Jason" e alguns detalhes a respeito são descritos neste artigo. Palavras chave: Gestão do Conhecimento, Sistemas Multiagentes, Agentes BDI, Jason. 1. INTRODUÇÃO O conhecimento constitui um recurso determinante para o sucesso das organizações nos dias atuais. Organizações produzem, armazenam e compartilham conhecimento através de pessoas e processos que a compõem. Para que o conhecimento seja utilizado de maneira favorável à organização, é necessário que ele seja gerenciado de maneira eficiente. Neste contexto, a Gestão do Conhecimento (GC) insere-se como um conceito que envolve diversas práticas para gerenciar o conhecimento de maneira efetiva. A GC pode ser definida como como um conjunto de ações sistemáticas e disciplinadas que uma organização pode desempenhar para obter maior valor agregado sobre o conhecimento que possui ([4], [15], [18]). A tecnologia, aliada a pessoas e processos, exerce papel importante ao fornecer recursos que dêem suporte à GC. Entre estes recursos, é possível citar como exemplo sistemas de apoio à decisão, técnicas mineração de dados, portais corporativos, entre outros ([10], [4], [8]). Os recursos tecnológicos constituem-se em uma importante fonte de apoio à GC devido à grande quantidade de conhecimento produzido, compartilhado e acessado nas organizações sob a forma de informação em meio digital. Esse grande número de informações, para ser bem aproveitado, precisa ser tratado de forma a oportunizar que o conhecimento seja identificado, coletado e distribuído de maneira apropriada e eficiente. Neste contexto, ferramentas tecnológicas podem conferir agilidade, confiabilidade,

108 Maiquel de Brito e Carine Geltrudes Webber Aplicação de Sistemas Multiagentes à Gestão do Conhecimento automatização, autonomia e inteligência às atividades de GC. Processos de GC são necessários nas organizações uma vez que o conhecimento, apesar de ser produzido de maneira individual, é coletivo, pois é adquirido e compartilhado através de interações sociais ([14]). Este aspecto deve ser considerado pela GC e pelas ferramentas que a apoiam, pois as fontes de informação encontram-se distribuídas em diversos meios como bancos de dados, redes corporativas, intranets, internet etc. Em vista disso, a computação distribuída apresenta-se como alternativa e, neste contexto, agentes de software e sistemas multiagentes (SMA) podem ser uma solução tecnológica adequada, conforme demonstram diversos trabalhos nesta área ([3], [11], [6], [12], [20], [2], [1]). Este artigo tem por objetivo apresentar as vantagens e um estudo de caso da aplicação de SMAs no desenvolvimento de ferramentas de suporte à GC. Ele está organizado da seguinte maneira: a próxima seção descreve características da GC contempladas por SMAs desenvolvidos e publicados em meios especializados; a seção 3 apresenta um modelo de SMA aplicado a GC em um portal corporativo hipotético; a seção 4 descreve alguns aspectos relacionados da implementação, feita em caráter de teste, de algumas funcionalidades do modelo proposto e a seção 5 apresenta algumas considerações e conclusões a respeito dos estudos descritos neste artigo. 2. TRABALHOS RELACIONADOS Ao longo dos últimos anos, SMAs têm sido desenvolvidos com vistas a contemplar funcionalidades relacionadas com GC. Alguns destes sistemas, descritos em publicações especializadas, foram analisados com o objetivo levantar as funcionalidades contempladas, bem como verificar aspectos relacionados às implementações. As aplicações analisadas são descritas em [3], [11], [6], [12], [20], [2] e [1]. Estas possuem características diferentes e, de certa forma, complementares, enfocando aspectos específicos da GC. Observando pontos em comum e diferenças entre elas, pode-se elencar uma série de atividades de suporte a GC que podem ser apoiadas por SMAs, conforme será descrito a seguir. Classificação de Itens de Conhecimento: Itens de conhecimento (documentos, mensagens eletrônicas, endereços de páginas web etc) em geral podem ser classificados de diversas maneiras conforme seus conteúdos e conforme o contexto a que são associados por diferentes usuários. A classificação de itens de conhecimento (ICs) pode ser algo difícil devido à sua grande produção e disseminação, bem como à subjetividade de classificações feitas por usuários. O uso de ferramentas informatizadas pode auxiliar a classificar documentos adequadamente, de forma automatizada, segundo determinadas características. Recuperação e Recomendação de Itens de Conhecimento: Com a utilização de ferramentas computacionais apropriadas, ICs classificados de maneira adequada podem ser recomendados aos usuários, conforme sua necessidade, de forma ágil e eficaz, mesmo que estejam distribuídos em ambientes em que usuários não tenham acesso direto uns aos outros ou que este acesso seja dificultado por circunstâncias quaisquer. Processamento de Consultas em Linguagem Natural: A obtenção de resultados satisfatórios na busca de informações em meio digital depende, muitas vezes, da utilização correta dos termos a serem consultados. O processamento adequado de consultas em linguagem natural permite que usuários simulem, em ambiente informatizado, o comportamento em um ambiente real: perguntas podem ser informadas de maneira coloquial e documentos que tenham relação com a pergunta são reconhecidos e retornados ao usuário. Neste contexto, agentes podem prestar um importante auxílio ao processar as consultas em linguagem natural e interpretar os termos da consulta utilizando, nesta interpretação, premissas provenientes do ambiente e da interação com outros agentes Comparação e Gerenciamento de Informações a Respeito de um Mesmo Domínio: A busca por informações a respeito de um determinado assunto pode ter como resultado diversos ICs, alguns deles com informações de baixa qualidade (irrelevantes, inconsistentes, falsas, contraditórias etc). Sistemas informatizados podem analisar as informações avaliando sua consistência com relação a informações semelhantes. Cristalização do Conhecimento: O conceito de cristalização do conhecimento, apresentado por [3], refere-se ao nível em que determinado conhecimento é consolidado entre os usuários do sistema. O nível de cristalização pode ser definido através da avaliação de usuários ou de maneira automatizada através do monitoramento do acesso e utilização dos ICS. Análise de Comportamento, Definição de Perfil e Recomendação de Especialistas: Ferramentas informatizadas podem analisar o comportamento dos usuários do sistema e definir um perfil dos mesmos baseado em tal comportamento. Além disso, é possível recomendar usuários com perfis adequados a determinadas necessidades informacionais. Criação e Manutenção Dinâmica de Grupo (Comunidades): Através da análise do comportamento, os 100

109 Maiquel de Brito e Carine Geltrudes Webber Aplicação de Sistemas Multiagentes à Gestão do Conhecimento sistemas podem identificar usuários com os mesmos interesses e com conhecimentos a respeito de assuntos semelhantes. De posse destas informações, o sistema pode, automaticamente, reunir tais usuários em grupos. Na GC, existe o conceito de comunidades de prática que, segundo [17], são grupos que reúnem, de maneira informal, pessoas com interesses comuns no aprendizado e na aplicação do conhecimento a respeito de um determinado assunto SÍNTESE DAS ANÁLISES REALIZADAS O conjunto de características analisadas e citadas anteriormente pode ser dividido em dois grupos: Gestão de Itens de Conhecimento e Análise de Usuários. A resolução de problemas diversos pode demandar esforço desnecessário devido à falta de acesso à informações relacionadas a casos semelhantes ocorridos anteriormente; Consultas a informações podem ficar sem resposta em virtude da utilização de terminologias diferentes. Confrontando o cenário citado com as funcionalidades verificadas nos sistemas analisados, é possível concluir que tais funcionalidades, acrescidas de mudanças e adaptações quando necessário, podem contribuir para a melhoria no processo de GC, ao auxiliar o manuseio de ICs em ambientes complexos. As características de pró-atividade e processamento distribuído podem auxiliar usuários a acessar informações (e, em última análise, o conhecimento) que se encontram distribuídas e pouco estruturadas. Figura 1. Análise de Aplicações De posse das características delineadas anteriormente, é possível traçar um cenário e projetar a utilização de sistemas multiagentes no auxílio à GC. Informações são produzidas e compartilhadas em ritmo crescente nas organizações; pessoas têm acesso à informação em diferentes formatos, provenientes de diferentes origens. Estas informações internalizam-se, tornando-se conhecimento tácito, pertencente às pessoas componentes da organização. Em paralelo a este processo de internalização, o conhecimento tácito pode ser formalizado, muitas vezes de maneira desordenada e desestruturada, através da elaboração de documentos (oficiais ou não oficiais), redação de mensagens eletrônicas, troca de mensagens instantâneas, acesso a páginas web, anotações diversas etc. Percebe-se, através deste cenário, um ambiente rico em conhecimento e informação. Apesar desta riqueza, porém, pode haver baixa eficiência no acesso a toda a informação produzida. Como consequência disso, é possível exemplificar algumas situações: Itens de conhecimento produzidos podem ficar armazenados, de maneira isolada, em mídias dos mais diferentes tipos, e nunca virem a tornar-se conhecidos e, consequentemente, úteis; Habilidades e expertises podem ficar ocultas se não forem divulgadas de maneira apropriada; MODELO DE SISTEMAS MULTIAGEN- TES APLICADO A UM PORTAL WEB Diversos tipos de aplicações podem auxiliar em atividades de Gestão do Conhecimento. Entre estas, é possível citar Sistemas de Apoio à Decisão, Sistemas de Controle de Fluxo de Trabalho (Workflow), Sistemas de Gerenciamento de Relacionamento com Clientes (CRM), Portais Corporativos, entre outros. Para o presente trabalho, foi utilizado um ambiente de Portal Corporativo hipotético e genérico. Segundo [13], [15] e [5], portais corporativos são programas de computador, em ambiente web, que permitem que informações produzidas pelos usuários de uma organização sejam disponibilizadas e distribuídas através de um ponto de acesso único. Além disso os portais devem fornecer ferramentas que facilitem a recuperação das informações armazenadas e também ferramentas que promovam colaboração e comunicação entre usuários. Devido a estas características, portais corporativos são alternativas tecnológicas apropriadas para o apoio à GC na medida em que estes provém uma solução para centralização do conhecimento formalizado na organização. Apesar de todos os recursos citados anteriormente, a arquitetura tradicional de portais, no entanto, é limitada pelo baixo nível semântico do conteúdo armazenado. Informações armazenadas em tal ambiente podem oferecer pouca ou nenhuma contextualização, terminologias diferentes para conceitos semelhantes, dificuldades na associação entre informações complementares etc. Estes fatores podem acarretar problemas como perda de tempo na pesquisa de informações, produção de informações redundantes, retrabalho em virtude da solução de problemas mal documentados entre outros. Além disso, portais em moldes tradicionais fornecem pouco ou nenhum suporte

110 Maiquel de Brito e Carine Geltrudes Webber Aplicação de Sistemas Multiagentes à Gestão do Conhecimento ao aproveitamento de informações a respeito do comportamento do usuário na utilização do sistema, o que impede o ambiente de prover funcionalidades como, por exemplo, sugestão de itens de conhecimento potencialmente úteis, adaptação do ambiente conforme determinadas preferências dos usuários e vínclulação de usuários em comunidades conforme interesses e conhecimentos identificados através da utilização do portal. Neste contexto, agentes podem oferecer uma complementação significativa a funcionalidades disponibilizadas por portais. Associando os conceitos de sistemas multiagentes, GC e portais à análise das aplicações citadas anteriormente, propõe-se um modelo de agentes que forneça suporte a funcionalidades relacionadas à GC na utilização de portais FUNCIONALIDADES DO MODELO PROPOSTO O modelo proposto apoia-se em algumas funcionalidades, descritas a seguir Monitoramento de atividades e definição de perfil de usuários: Informações a respeito de funcionalidades e conteúdos acessados e da forma de navegação em um portal podem revelar padrões de comportamento e interesses do usuário, e, em função disso, sugerir melhores maneiras de operar o sistema e recomendar ICs com base nas interações identificadas. O sistema pode identificar assuntos a respeito dos quais o usuário tem conhecimento e também assuntos dos quais ele necessita de maiores informações. De forma semelhante, o monitoramento de atividades do usuário pode identificar assuntos que lhe são prioritários. Assim, o usuário pode, através de suas interações com o sistema, permitir que este se adapte a seu perfil Classificação de Itens de Conhecimento: ICs são, a todo momento, inseridos, alterados ou excluídos do ambiente a que o portal se refere. Se tais ICs não forem corretamente classificados, no entanto, o acesso a eles pode tornar-se difícil, demandando recursos em excesso. Por isso, a correta classificação dos ICs pode ser determinante para garantir que estes sejam recuperados de maneira eficiente e oportuna. Deve-se salientar que a classificação aqui referida ultrapassa a simples utilização de palavras chave para identificar o assuntos a que o IC refere-se. Ao contrário, ao tratar-se de classificação de ICs, tem-se em mente que estes sejam classificados em assuntos e contextos adequados, baseados no significado do seu conteúdo (semântica) porém independente da forma como esse conteúdo é expresso. A classificação de ICs pode, em um primeiro momento, ser feita com base na intervenção dos usuários. Estes podem interferir no sistema sugerindo classificações conforme seu conhecimento a respeito de assuntos específicos. A aplicação de agentes na classificação de ICs, no modelo proposto, tem por objetivo, além de utilizar sugestões dos usuários, promover a classificação de forma autônoma. Através de ações pró-ativas, os agentes devem detectar mudanças no conjunto de ICs que compõem o ambiente em que se inserem. Ao detectar essas mudanças, os agentes devem identificar diversas características a respeito do IC, tais como seu conteúdo, palavras-chave, metadados, autor etc. Com base nessas características e com o auxílio de uma ontologia apropriada, os agentes classificadores devem proceder classificações adequadas. Além de novas classificações, os agentes devem detectar alterações em ICs e, em função destas alterações, rever as classificações existentes, confirmando-as, sugerindo novas classificações ou modificando e eliminando classificações já existentes. Além disso, os agentes devem exercer uma atividade pró-ativa validando classificações feitas por usuários, pois estas podem ser inconsistentes e conflitar com alguma classificação previamente realizada Recomendação de Itens de Conhecimento: A grande produção e armazenamento de ICs em meios informatizados tem como um de seus benefícios a possibilidade de recuperação de informações produzidas anteriormente e o consequente reaproveitamento do conhecimento já formalizado. Os portais têm como uma de suas finalidades a facilitação da recuperação de informações através da organização das mesmas em assuntos e da incorporação de ferramentas de busca. A aplicação de agentes na recomendação de ICs em portais, no modelo proposto, visa buscar informações com maior nível de refinamento em relação à simples utilização de mecanismos de busca por palavras-chave, baseando as buscas em informações relacionadas ao contexto da solicitação do usuário e também ao contexto informacional a que o o IC foi vinculado (através das funcionalidades de classificação de ICs). Esta contextualização pode ser incrementada com a utilização, por parte dos agentes, de informações acumuladas ao longo da utilização do sistema, de percepções acerca do ambiente e da interação com outros agentes. Além disso, a recomendação de ICs no modelo proposto utiliza-se da característica pró-ativa dos agentes e trata da sugestão autônoma de documentos conforme a necessidade do usuário, detectada pelo sistema ao longo da utilização do mesmo. As atividades dos usuários podem ser monitoradas e, através disso, podem ser identificados assuntos de potencial interesse por parte do usuário com base em informações a respeito dos ICs acessados. Essas informações podem ser percebidas como modificações no ambiente em que os agentes estão inseridos e, com base nisso, os agentes podem recomendar ICs automaticamente que, de outra forma, necessitariam da iniciativa do usuário. Caso essa iniciativa não se efetivasse, ICs 102

111 Maiquel de Brito e Carine Geltrudes Webber Aplicação de Sistemas Multiagentes à Gestão do Conhecimento úteis poderiam ficar sem ser conhecidos ou serem localizados em momento inoportuno, quando o usuário já não tem mais necessidade do IC em questão Comparação de Itens de Conhecimento: Entre as limitações existentes em mecanismos de buscas convencionais pode-se citar a busca por coincidência de termos, com baixo nível de semântica aplicado às consultas [7]: as pesquisas são feitas com base nas palavras utilizadas, desprezando seu significado e o contexto em que são utilizadas. Além disso, verifica-se, em algumas situações, o retorno de itens muito semelhantes ou idênticos, o que implica em uma sobrecarga de informações, muitas delas desnecessárias, obrigando o usuário a selecionar, entre os itens retornados, aqueles que lhe são interessantes ou, como alternativa, efetuar novas pesquisas modificando os termos utilizados. Aliado à aplicação de semântica nas operações de busca, o modelo proposto tem como característica permitir a comparação entre ICs. Dessa maneira, uma busca não deve, necessariamente, retornar itens duplicados. Além disso, deve ser possível identificar e sugerir ao usuário ICs que sejam complementares: um item retornado pode ter, associado a si, outros itens com informações diferentes e, ainda assim, complementares. Por fim, a comparação pode permitir identificar ICs que estejam em oposição entre si, retornando ao usuário itens que sejam contraditórios, o que pode facilitar a comparação entre diferentes teorias, pontos de vista etc. Neste contexto, agentes podem exercer atividades como, por exemplo, a comparação de ICs acessados com outros ICs, fornecendo suporte às atividades de recomendação, citadas anteriormente. Além disso, ao fazer comparações, diferentes agentes podem interagir entre si trocando informações com a finalidade de refinar as comparações, tornando-as contextualizadas e incrementando seu nível de refinamento e de semântica Cristalização de itens de conhecimento: Ambientes em que o conhecimento é compartilhado podem reunir usuários com diferentes níveis de conhecimento em determinados assuntos. E as interações dos usuários sobre este ambiente produzem ICs com diferentes níveis de relevância e confiabilidade. No modelo proposto, de maneira semelhante ao descrito na análise de aplicações, utiliza-se o conceito de "cristalização"para definir o quanto um IC é consolidado e confiável. Esse nível de cristalização se efetiva através do tempo, à medida em que usuários acessam ICs, os refinam e emitem opiniões a seu respeito. Dessa maneira, de uma forma gradual, alguns itens de conhecimento atingem níveis de cristalização superior a outros Gerenciamento de comunidades: No modelo proposto, agentes podem ser usados para reunir usuários, de forma automatizada, em "comunidades"ou grupos de usuários que compartilhem os mesmos interesses, conhecimentos e necessidades de informação. Através do monitoramento das atividades dos usuários junto ao portal, é possível determinar assuntos a respeito dos quais estes têm interesse e conhecimento. Usuários com interesses e conhecimentos semelhantes podem ser reunidos em comunidades. Essa alocação dos usuários em comunidades pode ser feita de maneira automatizada: ao perceber mais de um usuário tratando a respeito de um mesmo assunto, agentes podem interagir entre si e reunir estes usuários em grupos ARQUITETURA A arquitetura do modelo proposto é exibida na figura 2. Figura 2. Arquitetura Conforme a figura 2, a interface do sistema constitui o meio entre o sistema e o ambiente externo (usuário ou outros sistemas). Através dela, usuários podem submeter ICs ao portal, podem buscar ICs de que tenham necessidade ou podem realizar outras operações quaisquer no portal. Estas três formas de interação devem ser detectadas pelo sistema. No momento em que um novo IC é submetido ao sistema, ou quando alguma alteração é feita em um IC já existente, os agentes responsáveis devem promover a classifiação do IC em questão. Esta classificação pode acontecer de maneira automatizada e pode também contar com a intervenção do usuário, que pode sugerir classificações de acordo com o seu conhecimento tácito. Em qualquer uma destas situações, deve acontecer uma validação da classificação atribuída ao IC em questão. Ao ser classificado de maneira automatizada, esta classificação deve ser comparada com classificações já existentes (quando houverem) para detectar eventuais inconsistências. Além disso, quando houver sugestão de classificação por parte do usuário, esta deve ser validada para que esteja em consonância com classificações sugeridas pelo

112 Maiquel de Brito e Carine Geltrudes Webber Aplicação de Sistemas Multiagentes à Gestão do Conhecimento sistema. A necessidade de obtenção de ICs pode acontecer através da solicitação formal do usuário ou pode ser detectada de maneira autônoma através da interação do usuário com o sistema. A partir desta necessidade, os agentes componentes do sistema devem recomendar os itens mais adequados à necessidade identificada. A atividade de classificação é suportada pela função de comparação. Ao executar a função de classificação, além de identificar a melhor forma de classificar o IC, o sistema deve compará-lo com ICs já existentes e estabelecer relações entre eles. Além disso, no momento em que um IC é submetido ao sistema, este já é inserido no processo de cristalização. A atividade de recomendação, por sua vez, é suportada pelas funções de comparação e de cristalização. Ao executar uma recomendação de IC, o sistema deve analisar relações como, por exemplo, similaridade, complementação e oposição entre ICs a serem recomendados ao usuário. Além disso, é interessante informar ao usuário o nível de cristalização dos ICs recomendados para que este possa identificar com facilidade quais ICs são mais consolidados e têm maior potencial de satisfazer suas necessidades de informação. Paralelamente às atividades envolvendo a submissão de ICs, a atividade dos usuários junto ao portal é monitorada e informações são reunidas para que sejam identificados usuários com interesses e conhecimentos similares e esses venham a ser reunidos em comunidades AGENTES Para que as funcionalidades descritas anteriormente sejam implementadas, são propostos seis agentes: agente classificador, agente recomendador, agente intermediador, agente comparador, agente cristalizador e agente gerenciador de comunidades Agente intermediador: A cada usuário é associado um agente do tipo intermediador. Este agente é responsável por introduzir, na sociedade de agentes em questão, as demandas de conhecimento geradas pelos usuários e tem como objetivo informar os agentes apropriados a respeito de uma nova necessidade de IC. Para atingir tal objetivo, o agente precisa ter percepção das novas necessidades de conhecimento existentes por parte do usuário. Para isso, no modelo exibido na Figura 3, tal percepção é representada pela legenda necessidadedeic(assunto). O parâmetro assunto informa ao agente detalhes a respeito da necessidade de IC e pode receber palavras-chave, frases, nomes de arquivo etc. Ao perceber uma necessidade de IC, a crença necessitaitemdeconhecimento é adicionada à base de crenças, indicando que o agente necessita de um IC conforme definido no parâmetro assunto. Além disso, tal percepção determina a execução da ação buscaric(assunto), que incorpora as funcionalidades envolvidas na tentativa de obtenção do IC que atenda aos requisitos necessários. Na ação buscaric(assunto), o agente intermediador também envia uma mensagem ao agente recomendador (descrito a seguir), representada pela legenda solicitacaodeic(assunto). Esta mensagem irá comunicar um agente do tipo recomendador a respeito da necessidade de IC por parte do usuário e o agente recomendador, por sua vez, irá agir de forma a atender a solicitação recebida. Figura 3. Agente Intermediador A figura 4 exibe um diagrama que representa o protocolo de comunicação entre o agente intermediador e o agente recomendador. A comunicação inicia-se no momento em que o agente intermediador envia ao recomendador a solicitação de um IC segundo parâmetros enviados na mensagem. O agente recomendador, por sua vez, irá procurar ICs que atendam à solicitação recebida e também por usuários que tenham conhecimento a respeito do assunto solicitado. Caso sejam encontrados tais ICs e usuários, o agente recomendador retornará ao solicitador os ICs apropriados; caso contrário, o agente recomendador retornará uma mensagem informando ao agente solicitador que não foi encontrado IC de acordo com os parâmetros informados. Figura 4. Protocolo de comunicação Agente recomendador: Agentes do tipo recomendador são responsáveis, basicamente, por receber solicitações de ICs, e, em resposta a isso, fazer recomen- 104

113 Maiquel de Brito e Carine Geltrudes Webber Aplicação de Sistemas Multiagentes à Gestão do Conhecimento dações de ICs e também de usuários, ligados ao sistema, que tenham conhecimentos que possam ser úteis. Para isso, o agente tem quatro objetivos: localizar ICs, definir relevância dos ICs localizados, localizar usuários com conhecimentos úteis e localizar usuários com interesses semelhantes. A Figura 5 representa o modelo do agente recomendador. Figura 6. Protocolo de Cominicação Agente comparador: Agentes do tipo comparador são responsáveis por fazer comparações e estabelecer relações entre ICs. Estas relações podem ser de três tipos: Relação de similaridade, quando houver semelhanças entre ICs; Figura 5. Agente Recomendador A solicitação de IC por parte do usuário, descrita anteriormente, é representada pela legenda solicitacao- DeIC(assunto). Esta solicitação é feita, no sistema, por um agente do tipo intermediador, e seu protocolo de comunicação foi descrito anteriormente e é representado através da Figura 4. Ao receber a solicitação, o agente irá acessar as bases de ICs que dispõe e procurará por itens que atendam à solicitação recebida, fazendo as devidas recomendações. Os métodos usados para definir os ICs a serem recomendados, bem como as formas de representação de conhecimento utilizadas fogem ao escopo deste trabalho. Os ICs localizados, antes de serem retornados ao agente intermediador que fez a solicitação, serão avaliados pelos agentes cristalizador e comparador. O agente cristalizador informará o agente recomendador a respeito do nível de cristalização dos ICs retornados; o agente comparador, por sua vez, fará verificações nos ICs com vistas a detectar itens com conteúdo igual, bem como ICs com informações complementares e opostas. Estas informações serão repassadas ao usuário. Paralelo à busca por ICs, o agente recomendador contactará um agente do tipo gerenciador de comunidades, avisando-o que o usuário necessita de conhecimento a respeito do assunto em questão. O agente gerenciador de comunidades armazenará esta informação e retornará uma lista de usuários que tenham interesse e conhecimento em assuntos correlatos. Dessa forma, o usuário poderá entrar em contato com os usuários sugeridos em busca de conhecimentos que lhe sejam úteis. Estas interações entre os agentes exigem um protocolo de comunicação, que é representado pela Figura Relação de complementação, quando ICs tiverem informações pertencentes a um mesmo domínio, porém diferentes e, consequentemente, complementares; Relação de contradição, quando conteúdos dos ICs forem opostos entre si. O agente comparador interage com o agente recomendador, conforme ilustrado na Figura 6. Ao receber a solicitação de comparação, o agente verifica a relação entre os ICs passados pelo agente recomendador e lhe retorna os resultados. As formas de comparação dos ICs não se incluem no escopo deste trabalho Agente cristalizador: Agentes do tipo cristalizador, são responsáveis, no modelo proposto, pela cristalização de ICs. A cristalização, conforme mencionado anteriormente, é o índice que define o quanto o IC é consolidado e confiável. O nível de cristalização evolui conforme ICs são acessados e também através da avaliações positivas dos usuários. Figura 7. Agente Cristalizador As tarefas executadas pelo agente cristalizador são duas: persistir a evolução da cristalização e recuperar o

114 Maiquel de Brito e Carine Geltrudes Webber Aplicação de Sistemas Multiagentes à Gestão do Conhecimento nível de cristalização dos ICs. Para persistir a cristalização, o agente utiliza-se de dois procedimentos distintos. Um deles é a percepção do acesso a ICs, feito de maneira autônoma. O agente acompanha os ICs acessados, verificando informações como quantidade de acessos, frequência de acessos, número de acessos feitos pelos mesmos usuários, sugestão etc. Através destas informações, o agente garante a evolução do nível de cristalização dos ICs. Além disso, no modelo proposto, os usuários podem avaliar os ICs, atribuindo-lhes diferentes níveis de utilidade e confiabilidade. Esta informação também será considerada pelo agente cristalizador na evolução da cristalização dos ICs. O índice de cristalização é utilizado em resposta a solicitações feitas pelo agente recomendador, através de interação representada pela Figura Agente classificador: Agentes do tipo classificador são responsáveis por classificar os ICs de maneira adequada. Para uma recuperação eficiente, os ICs devem ser classificados corretamente, sendo vinculados a assuntos, palavras-chave etc. Para atingir seus objetivos, o agente classificador tem duas percepções acerca do ambiente em que está inserido: deve perceber a inserção de um novo IC e também alterações em ICs já existentes. Diante destas percepções o agente inicia o processo de classificação do IC em questão. Da maneira semelhante ao agente comparador, os métodos de classificação e as formas de representação de conhecimento utilizadas para tal não se incluem no escopo deste trabalho. Figura 8. Agente Classificador Agente gerenciador de comunidades: Agentes do tipo gerenciador de comunidades, conforme o nome sugere, atuam em prol da funcionalidade de gerenciamento de comunidades, proposta no presente modelo. Para atingir seus objetivos, o agente gerenciador de comunidades precisa ter a percepção de ICs que, eventualmente, venham a ser acessados. O acesso a um IC denota o interesse do usuário por assuntos a que tal item se refere, bem como algum nível de conhecimento adquirido a respeito de tais assuntos. Além disso o agente pode receber solicitações de recomendação de usuários por parte do agente recomendador. O agente gerenciador de comunidades, diante das percepções e mensagens trocadas, irá manter listas que representam grupos (ou comunidades) de usuários. Estas comunidades serão formadas conforme os assuntos a que se referem os ICs e podem agrupar duas categorias de usuários: usuários que tenham conhecimento e usuários que tenham interesse em determinados assuntos. Usuários com interesse a respeito de determinados assuntos são aqueles que através de solicitações ou de navegação, manifestam interesse, detectado através do agente intermediador. Usuários que tenham conhecimento a respeito de determinados assuntos são aqueles que obtêm respostas à solicitações de ICs ou que que inserem ICs no sistema. Pode haver uma intersecção entre usuários que tenham conhecimento e interesse: usuários que têm conhecimento tem interesse; o contrário, porém não é verdadeiro: usuários que têm interesse não têm, obrigatoriamente, conhecimento. Figura 9. Agente Gerenciador de Comunidades 4. IMPLEMENTAÇÃO DE AGENTES O modelo descrito anteriormente foi elaborado com base na teoria relacionada a agentes BDI. Para a implementação de tais agentes, em caráter de testes, foi utilizada a plataforma Jason, que é uma extensão da linguagem Agent Speak que, por sua vez, é uma linguagem de programação orientada a agentes baseados na arquitetura BDI([16], [19], [9]). Para que os agentes implementados através da plataforma Jason possam ser executados em função dos estados mentais crenças, desejos e intenções, sua implementação é composta por três elementos principais: crenças, objetivos e planos. Enquanto as crenças representam aquilo que o agente "sabe"a respeito do ambiente, os objetivos representam os estados que o agente deseja conferir ao ambiente e os planos representam as atividades a serem executadas para que o agente atinja determinados objetivos. As características descritas nas referências consultadas fornecem um indicativo de que a plataforma Jason pode ser usada para implementar os agentes do SMA para portal de conhecimento. Para analisar esta viabilidade com mais profundidade, alguns agentes foram implementados em caráter de teste. As implementações não tiveram objetivo de contemplar todas as características modeladas. Seu objetivo foi apenas verificar de que maneira as 106

115 Maiquel de Brito e Carine Geltrudes Webber Aplicação de Sistemas Multiagentes à Gestão do Conhecimento crenças, objetivos e planos podem ser codificados para a implementação de agentes com arquitetura BDI e, além disso, verificar, de maneira prática, as possibilidades de interação entre os agentes implementados com Jason. Foram selecionados para implementação os agentes intermediador, recomendador e gerenciador de comunidades AGENTE INTERMEDIADOR Agentes do tipo intermediador têm por função fazer a intermediação e monitorar as atividades dos usuários e junto ao sistema. Cada usuário terá um agente intermediador associado a si. Ao detectar necessidades de informação por parte do usuário, o agente tem adicionado à sua base de crenças a crença necessitaitemdeconhecimento, conforme exemplificado na 10: Figura 13. IC não localizado recebidas. Ao receber uma solicitação, o agente tem adicionada a sua base de crenças a crença solicitacaodeic, que indica que o agente precisa buscar um IC que atenda aos parâmetros que lhe foram comunicados e dá início ao plano de execução exibido na Figura 14. O plano em questão, através dos objetivos buscarrecomendacaodeic e buscarrecomendacaodeespecialista, realiza a busca por ICs e também por outros usuários que possam contribuir com informações relacionadas ao assunto solicitado. Figura 10. Adição da crença necessitaitemdeconhecimento Ao ser adicionada, a crença necessitaitemdeconhecimento gera um evento que inicia um plano de execução, conforme exibido na 11. Figura 14. Solicitação de IC Figura 11. Plano de execução para a crença necessitaitemdeconhecimento O parâmetro assunto, entre parênteses, informa a expressão a respeito da qual o agente solicitador procura ICs. No plano de execução exemplificado, o agente intermediador entra em contato com agentes do tipo recomendador buscando recomendações de ICs adequados. Ao receber recomendações, o agente tem adicionado a sua base de crenças a crença propostadeic, conforme exibido na figura 12 Os planos de execução para os objetivos buscar- RecomendacaoDeIC e buscarrecomendacaodeespecialista são exibidos na 15. Nestes planos, observa-se algumas ações do agente como consulta a base de crenças e interação com outros agentes. Figura 15. Planos de execução - Agente Recomendador Figura 12. Recomendações Recebidas Uma última crença prevista para o agente solicitador é denominada recusasolitacaodeic e tem significado oposto à crença propostadeic: é adicionada à BC quando uma solicitação de IC não têm resposta satisfatória AGENTE RECOMENDADOR Agentes do tipo recomendador são responsáveis pelo recebimento das solicitações de ICs por parte dos agentes intermediadores e, diante disso, realizam tarefas necessárias para entregar respostas satisfatórias às solicitações AGENTE GERENCIADOR DE COMUNIDADES Agentes do tipo gerenciador de comunidades têm por atribuição identificar e recomendar usuários com conhecimentos e interesses em determinados assuntos (especialistas) e gerenciar grupos que reunam usuários com conhecimentos e interesses em assuntos semelhantes. Ao perceber a necessidade recomendação de um especialista, o agente tem adicionada a sua base de crenças a crença soliciacaodeespecialista. Ao ser adicionada, esta crença gera um evento que aciona um plano de execução denominado buscarespecialistaporassunto. A adição da crença

116 Maiquel de Brito e Carine Geltrudes Webber Aplicação de Sistemas Multiagentes à Gestão do Conhecimento solicitaçãodeespecialista e os planos de execução do objetivo buscarespecialistaporassunto são exibidos na figura 16. Figura 16. Agente Gerenciador de Comunidades Os planos de execução do objetivo buscarespecialistaporassunto utilizam-se da crença especialistaporassunto, exibida na figura 17 Figura 17. Crença Especialista por Assunto 4.4. CONSIDERAÇÕES A RESPEITO DA IMPLEMEN- TAÇÃO Conforme mencionado anteriormente, as implementações feitas não têm por objetivo esgotar as possibilidades da plataforma Jason nem contemplar todas as funcionalidades modeladas e descritas. Não foram contempladas, por exemplo, características da plataforma como a execução do sistema em ambiente distribuído, criação de interface personalizada para entrada e saída de dados ou criação de funções personalizadas (internal actions). Além disso, foram contempladas características relacionadas à recuperação de informações (ICs e especialistas), porém não foram mencionadas funcionalidades relacionadas à entrada de informações no sistema. Quanto à recuperação de informações, esta foi feita apenas através da utilização de palavras-chave. Como incremento, pode-se utilizar, por exemplo, a aplicação de ontologias. Isso permitiria que ICs fossem recuperados e especialistas fossem sugeridos com base em um processamento com certo nível de semântica, ultrapassando o limite da simples utilização da coincidência de palavras como critério de seleção. Entre alguns aspectos adicionais relacionados aos testes realizados, pode-se citar que parte das crenças dos agentes é persistida em um banco de dados relacional e a saída de dados foi feita em um terminal, sem refinamentos na interface. 5. CONCLUSÃO O conhecimento tem sido citado por muitos autores como recurso importante e determinante para o sucesso das organizações nos dias atuais. Devido a essa importância, diversas práticas, reunidas sob o conceito de "Gestão do Conhecimento" têm sido utilizadas para gerenciar o conhecimento de maneira eficiente nas organizações. Em contextos caracterizados pela grande quantidade de conhecimento produzido, divulgado e acessado de diversas maneiras, ferramentas tecnológicas constituem uma importante fonte de apoio às práticas de GC. Além disso, deve-se levar em conta que o conhecimento, nas organizações, pode estar fisica e logicamente distribuído : informações podem estar armazenadas em diversos meios, sob diversas formas, e pessoas podem estar fisicamente distantes. Para prestar auxílio à GC neste contexto, SMAs podem ser uma alternativa tecnológica adequada. Em vista disso, o presente artigo teve como objetivo analisar a viabilidade e as vantagens do uso de SMAs no desenvolvimento de ferramentas de suporte à GC. As diversas aplicações analisadas sinalizaram iniciativas isoladas e pontuais de utilização de SMA para apoio à GC. Apesar de serem inciativas isoladas e pontuais, no entanto, foi possível verificar que SMAs podem ser utilizados em atividades relacionadas à GC e proporcionam um incremento na qualidade destas atividades através de características como a pró-atividade dos agentes e a possibilidade de execução de forma distribuída. Ao agirem de maneira pró-ativa, os agentes podem fazer com que informações sejam procuradas, encontradas e sugeridas aos usuários sem demandar, por parte destes, qualquer tipo de iniciativa. Tal característica é importante pois pode auxiliar na redução do trabalho dos usuários na busca de informações e no incremento da qualidade das informações. Além disso, a computação distriuída pode fazer com que agentes trabalhem em favor do sistema e dos usuários sem demandar que estes estejam fisicamente próximos e sem demandar que os ICs estejam reunidos em um único ambiente. Estas características, aplicadas a ambientes com alta produção e demanda de conhecimento, onde há heterogeneidade em aspectos como, por exemplo,terminologias, formas de armazenamento de informações, localização de usuários, formas de acesso às informações, ratificam a aplicabilidade de SMAs à GC. Com o modelo proposto neste artigo, buscou-se unificar diversas funcionalidades da GC que podem ser apoiados por SMAs. Para isso, procurou-se abranger diversas funcionalidades através da utilização diferentes tipos de agentes, de modo que estes possam agir de maneira colaborativa na realização de atividades relacionadas à GC, de acordo com as funções que lhes foram atribuídas. Quanto ao modelo de SMA apresentado, este é resultado de análise e reflexão a respeito de aspectos teóricos relacionados à GC, SMA e também outros trabalhos re- 108

117 Maiquel de Brito e Carine Geltrudes Webber Aplicação de Sistemas Multiagentes à Gestão do Conhecimento lacionados ao assunto. Com a evolução dos estudos, o modelo pode ser refinado, acrescido de novos agentes e, de forma semelhante, os agentes definidos podem sofrer refinamentos em suas características. Quanto ao ambiente a que o modelo foi definido, utilizou-se o contexto de um portal web genérico devido ao fato de esta tecnologia ser recomendada na literatura como ferramenta de apoio à GC. O modelo apresentado, no entanto, pode ser aplicado, com as devidas adaptações a outros ambientes tecnológicos. Além disso, pode-se, em trabalhos futuros, estender o modelo a um portal com funcionalidades e tecnologias específicas. Com relação à implementação dos agentes modelados, a plataforma Jason se mostrou uma alternativa viável para a implementação de agentes BDI, incluindo aqueles modelados neste trabalho. A implementação, porém, teve caráter meramente experimental, não sendo utilizável em um ambiente real sem uma série de complementações. Em trabalhos futuros, a implementação dos agentes pode ser incrementada e acrescida funcionalidades e características não contempladas, tais como execução de agentes distribuídos em uma rede de computadores, utilização de ontologias, entre outros. Referências [1] M. Bonifacio; A. Manzardo; P. Bouquet. A distributed intelligence paradigm for knowledge management. Spring Symposium Series 2000 on Bringing Knowledge to Business Processes, pages 69 76, [2] W. Dai; S. H. Rubin; C. Chen. Supporting knowledge management infraestructure: A multi-agent approach. Proceedings of the IEEE/WIC Intenational Conference on Intelligent Agent Technology, page 461, [3] G. Garcia; R. Cobos. A multi-agent platform for extending a knowledge management system. IEEE/WIC/ACM International Conference on Web Intelligence, 18:59 65, [4] A. D. Marwick. Knowledge management technology. IBM systems journal, 40: , [5] R. A. Freitas; L. W. Quintanilla; A. S. Nogueira. Portais Corporativos: Uma ferramenta estratégica para a Gestão do Conhecimento. Editora Brassport, [6] A. Vizcaino; J. P. Soto; J. Portillo; M. Piattini. A multi-agent model to develop knowledge management systems. Proceedings of the 40th Annual Hawaii International Conference on System Science, page 203, [7] M.E. V. Pickler. Web semântica: ontologias como ferramentas de representação do conhecimento. Perspect. ciênc. inf. [online], 12(1):6 14, apr article/viewfile/251/468. [8] T. Davenport; L. Prusak. Working Knowledge. How Organizations Manage What They Know. Harvard Business School Press, [9] A. S. Rao. Agent speak(l): Bdi agents speak out in a logical computable language. In Rudy van Hoe, editor, Seventh European Workshop on Modelling Autonomous Agents in a Multi-Agent World, Eindhoven, The Netherlands, [10] R. Ruggles. The state of the notion: knowledge management in practice. Californa management review, 40:80 89, [11] B. Yu; M. P. Singh. An agent-based approach to knowledge management. Proceedings of the eleventh international conference on Information and knowledge management, pages , [12] R. S. S. Guizzardi; P. G. Ludermir; D. Sona. A recommender agent to support knowledge sharing in virtual enterprises. rguizzardi/publications/guizzluder-sona-virtualenterprises07-cameraready.pdf. Acesso em: 28 nov. 09. [13] E.O. Spinola. Portais corporativos e a gestão do conhecimento. GC Brasil, 7:6 14, [14] I. Nonaka; H. Takeuchi. Criação de conhecimento na empresa. Campus, 10 edition, [15] J. C. C. Terra. Gestão do conhecimento: o grande desafio empresarial: uma abordagem baseada no aprendizado e na criatividade. Editora Negocio, [16] J. F. Hübner; R. H. Bordini; R. Vieira. Introdução ao desenvolvimento de sistemas multiagentes com jason. XII Escola de Informática da SBC, pages 51 89, [17] E. Wenger. Communities of practice: Learning, meaning, and identity. Cambridge University Press, [18] W. R. Bukowitz; R. L. Williams. Manual de gestão do conhecimento: ferramentas e técnicas que criam valor para a empresa. Bookman, [19] R. H. Bordini; J. F. Hübner; M. Wooldridge. Programming multi-agent systems in Agent Speak using Jason. John Willey and Sons, 2007.

118 Maiquel de Brito e Carine Geltrudes Webber Aplicação de Sistemas Multiagentes à Gestão do Conhecimento [20] C. Zhang; D. Tang; Y. Liu; J. You. A multiagent architecture for knowledge management system. Fifth International Conference on Fuzzy Systems and Knowledge Discovery, 5: ,

119 Uma Arquitetura de Referência para Assistentes Pessoais: Uma Abordagem Baseada em Agentes e Serviços de Software Saulo Popov Zambiasi 1 & Ricardo J. Rabelo 1 1 Programa de Pós-Graduação em Engenharia de Automação e Sistemas (PPGEAS) Universidade Federal de Santa Catarina (UFSC) Bairro Trindade, Caixa Postal 476 CEP Florianópolis SC Brasil Telefone/Fax: +55 (48) {popov, rabelo}@das.ufsc.br Resumo A crescente evolução das tecnologias da computação e o mercado cada vez mais competitivo tem obrigando as empresas a se aperfeiçoarem no âmbito de seus processos. Novas ferramentas têm surgido para fornecer o devido suporte com respostas mais rápidas e confiáveis aos clientes e fornecedores. Porém, se por um lado têm facilitado o trabalho das pessoas, por outro as têm levando a um aumento das suas tarefas e responsabilidades. Uma maneira alternativa de resolver essa problemática é prover às pessoas uma assistência via software de computador, munindo as de um conjunto de ferramentas para automatizar algumas tarefas e para gestão das suas atividades, assim como um secretário humano especializado. Vários esforços vêm sendo feito para a criação de sistemas computacionais com esse objetivo. Porém, esses geralmente seguem por caminhos distintos que não necessariamente mantêm a compatibilidade e a interoperabilidade uns com os outros, além de não se preocuparem em estarem conectados com os sistemas empresariais. Neste sentido, este trabalho visa propor uma arquitetura de referência para softwares assistentes pessoais a partir da qual instanciações possam ser feitas consoante as características das pessoas e das empresas onde trabalham. Palavras chave: Assistentes Pessoais, Agentes, Serviços de Software, Arquitetura. 1. INTRODUÇÃO Com a crescente evolução das Tecnologias de Informação e Comunicação (TIC) e o aperfeiçoamento das ferramentas computacionais disponíveis para pessoas e organizações, o mercado tem se tornado cada vez mais competitivo. Isso tem obrigado as empresas e organizações a se aperfeiçoarem no âmbito de seus processos em vários níveis de abstração, conceitos e tarefas [1, 2]. Não obstante a isso, a necessidade de antecipar novas tendências, e responder a elas adequadamente, tais como a implantação e utilização de novos métodos de trabalho, tem se mostrado de vital importância para a sobrevivência, continuidade e ampliação dos negócios das organizações inseridas nesse novo contexto e de, conseqüentemente, tornar os processos organizacionais mais ágeis em conformidade com a conjectura de cada atividade específica [2, 3]. 111

120 Saulo Popov Zambiasi e Ricardo J. Rabelo Uma Arquitetura de Referência para Assistentes Pessoais: Uma Abordagem Baseada em Agentes e Serviços de Software À luz de questões referentes às atividades organizacionais e seus procedimentos de supervisão, as novas ferramentas disponíveis passam a fornecer um grande suporte à inserção de inovações, que vão ao encontro de respostas mais rápidas e confiáveis aos clientes e fornecedores. No entanto, a prática tem mostrado que essas mudanças, se por um lado têm facilitado o trabalho das pessoas, por outro as têm forçado a serem mais produtivas, levando a um aumento ainda maior das suas tarefas e responsabilidades [4]. Além disso, observa se empiricamente que elas têm estado cada vez mais ocupadas e imersas em diversos problemas, alguns desses conseqüentes da própria implantação dessas novas tecnologias, e nem sempre conseguindo cumprir com suas tarefas em tempo hábil e/ou com a qualidade esperada. Nesse sentido, o principal aspecto que se deseja focar neste trabalho é o que permeia o tempo das pessoas empregado no seu trabalho e outras formas onde as TICs podem contribuir para ajudá las. A premissa disso é que as pessoas são o mais nobre dos recursos organizacionais. Portanto, a sua participação deveria ser direcionada para a realização de atividades tão essenciais hoje em dia quanto à operação dos processos em si, ou seja, para atividades que agregam maior valor pessoal, interpessoal e para a própria entidade da qual participam, tais como a realização de negócios, o exercício da criatividade para a inovação, a aprendizagem e o aperfeiçoamento de suas funções. Contudo, a rotina diária das organizações apresenta uma ruptura nas idéias acima ilustradas, obrigando as pessoas a se dedicarem a tarefas repetitivas, desgastantes, pouco atrativas e muitas vezes sem grande valor [5]. Mesmo nas tarefas que agregam maior valor, as pessoas encontram se tão ocupadas que não conseguem executá las a tempo e/ou com a qualidade esperada. Isso tem efeito direto na agilidade e na eficiência das organizações como um todo, principalmente ao se considerar que as organizações funcionam de forma cada vez mais integrada, com suas várias atividades dependentes cada vez mais umas das outras. Toda essa situação acaba por culminar em uma problemática ainda maior à medida que se observa que as pessoas geralmente estão envolvidas em diversas tarefas simultaneamente, por vezes de diferentes setores de atuação, com terminologias próprias e com seus próprios contextos de execução e de negócio [6]. 2. SOFTWARES ASSISTENTES PESSOAIS De uma maneira geral, a referida problemática poderia ser amenizada com a disponibilidade de mais pessoas para a crescente quantidade de tarefas, assim como para suprir o aumento da complexidade dessas; ou mesmo de algum tipo de secretário ou ajudante para as pessoas em suas atividades [7]. Porém, quando levada em consideração a realidade financeira da maior parte das organizações (micro, pequenas e médias), o custo final disso torna esse caminho usualmente inviável. Mesmo que intrinsecamente alguns cargos empresariais necessitem fornecer aos seus respectivos responsáveis um ou mais secretários, ou assistentes, isso é suficiente apenas para essas pessoas e não supre a necessidade da grande maioria dos funcionários. Portanto, parece justificável o uso de uma forma alternativa de assistência para as pessoa. Tal assistência poderia ser fornecida, de maneira alternativa, via software de computador, munindo as pessoas de um conjunto de ferramentas para automatização de suas tarefas e assistência na gestão das atividades, muitas vezes tal qual um secretário humano [7]. A utilização de uma ferramenta computacional para fornecer assistência às pessoas inseridas nas empresas segue em conformidade com a evolução das TICs, em que equipamentos cada vez mais potentes, menores, acessíveis e inteligentes permitem que a interação deixe de ser apenas entre parceiros humanos. Tal interação passa agora a ser tratada em negociações entre humanos e computador ou mesmo entre computadores [8], facilitando a interação entre uma pessoa e um assistente pessoal, por exemplo CONCEITOS O conceito de um software com capacidade de antecipar as necessidades dos usuários e executar ações sem a necessidade de interação, tal como agendar viagens, restaurantes, gerenciar agenda e e mails, não é novo e tem influenciado a imaginação de muitos escritores de ficção científica e cientistas da computação [9, 10]. É possível imaginar um futuro com assistentes baseados em conhecimento e que funcionam através da Internet na forma de um tipo de software secretário, provendo serviços tanto para tarefas do trabalho como para casa. Contudo, tal como secretários humanos, seu sucesso deve depender do quanto este tem conhecimento sobre os hábitos dos seus usuários [10]. Do ponto de vista organizacional, o conceito de softwares assistentes pessoais pode ser visto como uma ferramenta que fornece assistência em alguns níveis de 112

121 Saulo Popov Zambiasi e Ricardo J. Rabelo Uma Arquitetura de Referência para Assistentes Pessoais: Uma Abordagem Baseada em Agentes e Serviços de Software auxílio no cenário organizacional como forma de resolver em parte a questão da crescente quantidade de tarefas das pessoas [13]. Todavia, um software assistente pessoal não pode ser visto apenas como um programa de computador personalizado. Isto porque um assistente pessoal deve ser baseado em rede, ser interativo, adaptativo, de propósito geral, de execução autônoma e que possa interagir com outros assistentes pessoais, especificidades correlatas com a tecnologia de agentes de software [11]. Agentes se caracterizam como algo que, provido de sensores, recebe informações do ambiente ao seu redor e toma ações, interagindo com este ambiente por meio de mecanismos denominados de atuadores. Além disso, os agentes devem poder se comunicar com outros para poderem alcançar seus objetivos [12]. Seguindo este conceito, os assistentes pessoais, tal qual um agente, podem perceber seu ambiente através de recursos (como a agenda do usuário, preferências, preferências de outros usuários, reputações) e respondem com ações e assistência ao usuário. Em tempo, um assistente pessoal precisa trabalhar com certa autonomia para cumprir suas tarefas, tal qual um agente [13]. Dessa forma, um agente de software pode substituir parcial ou totalmente uma pessoa para determinadas tarefas e em várias situações diferentes, assumindo o papel de um assistente, muitas vezes sendo necessário se comunicar com outros sistemas, ou outros agentes, sem a intervenção direta ou indireta de um humano [14]. Além disso, os agentes devem refletir a mesma dinâmica que um usuário apresenta na vida real, ou seja, assim como os interesses do usuário mudam com o tempo, os agentes também devem ajustar seus objetivos para corresponder com seus usuários [15]. Assim, os assistentes pessoais podem ser vistos como softwares na forma de agentes, ou agentes pessoais, que fornecem assistência as pessoas em suas atividades diárias. Em verdade, estes já têm sido, e continuarão sendo, utilizados em vários domínios de aplicação [16]. Assim, seguindo a tendência de alguns autores e correlacionando as características de agentes e de assistentes pessoais, este trabalho usa a denominação de Agente Assistente Pessoal (AAP) para um software que fornece assistência à um usuário, aglutinando as terminologias apresentadas por [11] e [16]. Apesar dos avanços na área de TIC em si, uma perspectiva a se chamar a atenção em função da observação dos autores do presente artigo em relação a trabalhos na área, é a utilização ou desenvolvimento de softwares assistentes de forma não integrada ao ambiente e aos processos de negócios (business process) da empresa. No primeiro aspecto, os assistentes são implementados como sistemas independentes dos demais da empresa, sem interação ou inter operação alguma, fazendo com que o usuário tenha que, explicitamente, navegar por ambientes diferentes e, pior, tenha que redigitar informações e nutrir o assistente de informações contextualizadas. No segundo aspecto, que está intimamente relacionado ao primeiro, o assistente usualmente atua como um sistema puramente reativo à interação do usuário, e não de forma ativa (ou até próativa) mas consoante a uma lógica de negócios expressa nos processos de negócios da empresa, executando as tarefas de forma integrada com outros sistemas dela. Apesar de estar associada a TICs, uma segunda perspectiva é a inter operação. Os assistentes pessoais costumam ser softwares concebidos para realizarem suas atividades mas sem uma preocupação de projeto de transacionarem com outras aplicações. Na ótica de se integrar o assistente ao ambiente geral de execução de processos da empresa, essa perspectiva é essencial uma vez que usualmente os sistemas dela são distribuídos e heterogêneos. A terceira perspectiva a se chamar a atenção é quanto a flexibilidade das ações de um assistente. Isso envolve outros aspectos, como adaptabilidade e escalabilidade. No escopo de transações empresariais, cada negócio tem inúmeras particularidades, tanto de contexto como de ambientes computacionais envolvidos. Por exemplo, um assistente deve oferecer ajuda de forma diferente a uma mensagem referente a um processo de venda de produto (a clientes) a uma de compra de produtos (de fornecedores) [7]. Portanto, há necessidade de adaptabilidade àquelas mesmas transações comerciais que não são estáticas. Tanto a empresa como seus sistemas alteram se ao longo do tempo com relação aos seus processos de negócios. Dessa forma, há necessidade de se lidar com a escalabilidade do software assistente, em termos de que deve estar preparado para flexibilizar suas ações consoante a mudanças e/ou introdução de novos processos de negócios. O aspecto final é o da distribuição de aplicações na forma de serviços serviços. As empresas, embora tradicionalmente tenham seus sistemas implantados todos localmente, começam a conviver com ambientes largamente distribuídos, fazendo uso de sistemas externos, disponibilizados por outras empresas que são, principalmente, provedores externos de serviços. Tais provedores são tipicamente formados de software houses e por dispositivos 113

122 Saulo Popov Zambiasi e Ricardo J. Rabelo Uma Arquitetura de Referência para Assistentes Pessoais: Uma Abordagem Baseada em Agentes e Serviços de Software computacionais distribuídos. Nesse sentido, o software assistente deve poder acessar tais serviços consoante os requisitos funcionais associados aos processos de negócios ora em execução, o que pode levar ao caso da necessidade de composição de diferentes serviços para que o comportamento desejado possa ser montado REQUISITOS GERAIS Tomando como base os conceitos apresentados, certos requisitos gerais de base desejáveis para os AAPs podem ser identificados. O AAP deve atuar com certa autonomia em suas tarefas de forma que estes possam verificar a situação dos seus usuários (como por exemplo novos e mails que chegam em sua caixa postal), e que possam responder apropriadamente a cada situação que aparece. Ele deve ser flexível em termos de poder atuar diante de novas situações e cenários de negócios. Além disso, é necessário ser adaptável ao usuário, em conformidade com as informações sobre ele, suas preferências, necessidades, situação atual, e tomando em conta a evolução dessas informações em relação ao tempo. O AAP também deve interagir com seu usuário de forma a tornar possível a assistência a ele. É importante que seja baseado em rede, ou seja, ter a capacidade de buscar informações via redes de computador, tal como a Internet, e interagir com outros sistemas e assistentes pessoais de outros usuários de forma a alcançar os objetivos do seu usuário. Ainda, deve ser inter operável com os elementos envolvidos nos processos para fornecer assistência pessoal. É necessário que seja de propósito geral, ou seja, não específico à apenas uma atividade ou um grupo de usuários, adaptando se aos propósitos do seu usuário; Por fim, o AAP deve ser adaptável ao contexto e integrado e inter operável aos processos de negócios da empresa. Do ponto de vista funcional, agora mais concretamente para um assistente no ambiente de empresa, são identificadas também algumas macroações que espera se de um AAP: Substituir o usuário em determinadas tarefas no contexto dos processos de negócio da empresa; Gerenciar a agenda e atividades do usuário; Procurar por informações em repositórios; Auxiliar a identificar quais tarefas precisam ser executadas e como; Fornecer recomendações para o usuário; Filtrar e gerenciar informações provindas de redes ubíquas SUB-PROBLEMAS ENVOLVIDOS Contudo, para um assistente pessoal poder cumprir com os requisitos acima definidos, alguns subproblemas são identificados. Relevância das Informações: Identificação de quais informações sobre os usuários são realmente relevantes e como elas podem ser utilizadas na execução da assistência aos usuários [17, 11, 16]. Conhecimento dinâmico: Um AAP precisa se adaptar as mudanças de interesses, objetivos dos usuários e ao contexto dos ambientes em que o usuário transita [4, 15]. Interação Usuário AAP: O AAP deve poder identificar quando e como a interação com o usuário deve ocorrer [7, 17, 18]. Portabilidade: A interação do usuário com seu AAP deve ser independente de onde ele esteja localizado e do dispositivo computacional que se está utilizando [8, 18]. Disponibilidade: Nos casos dos comportamentos dos AAP estarem localizados em repositórios remotos, deve haver uma forma de tratar indisponibilidades quando os repositórios não estão acessíveis. Este não é um problema com solução trivial [19, 20, 17]. Flexibilidade: Um AAP deve se adaptar, em termos de funcionalidades, as necessidades do seu usuário de forma dinâmica e flexível. O problema está em como tornar possível à um usuário de um AAP reunir um conjunto de comportamentos para se adaptar as suas necessidades e, em certos casos, organizá los de forma algorítmica para resolver um problema específico [10]. Segurança: A segurança engloba todo o sistema computacional. Porém, a ênfase está na distribuição dos comportamentos do AAP na Internet, na comunicação dos agentes com os sistemas e na interação com o usuário [19]. Conflitos: Mesmo com os comportamentos distribuídos, podem existir problemas de conflitos na ordem da execução destes no caso um depender de outro(s) para executarem seu processamento [7]. 114

123 Saulo Popov Zambiasi e Ricardo J. Rabelo Uma Arquitetura de Referência para Assistentes Pessoais: Uma Abordagem Baseada em Agentes e Serviços de Software Inter operabilidade: Dever haver interoperabilidade entre todos os componentes do modelo, tornando possível a utilização de comportamentos já existentes e largamente utilizados na internet (serviços) como fonte de funcionalidades a serem utilizadas pelos AAPs [21, 22]. Previsão e Monitoramento: Encontrar novas oportunidades de negócios não é tarefa fácil. Para tal, é necessário ter como base as informações e preferências dos usuários, eventos e estados locais e atuais, e um certo nível de inteligência no AAP. Softwares Proprietários: Muitos dos trabalhos na área são proprietários, fechados e não possuem um padrão, não dando suporte às empresas desenvolverem seus próprios assistentes, inter operáveis com assistentes de outras empresas. Também não fornecem recursos para a utilização explícita de outras funcionalidades (em repositórios de terceiros) [23, 24, 25]. Softwares Monolíticos: Os softwares estudados se mostraram na forma de um sistema de processamento centralizado em um único sistema computacional. 3. PROPOSTA Este trabalho objetiva fundamentalmente conceber uma arquitetura de referência para assistentes pessoais baseada em agentes e em serviço de softwares, mais especificamente na Arquitetura Orientada a Serviços (SOA). Esta seção descreve a proposta da arquitetura e cada um dos elementos que a compõe. Uma arquitetura de referência é caracterizada por um padrão genérico para um projeto, abordando requisitos para o desenvolvimento de soluções e que é guiado pelo modelo de referência, de forma a atender as necessidades do projeto [22]. Para compor uma arquitetura de referência, é necessário apresentar os tipos dos elementos envolvidos, como eles interagem e o mapeamento das funcionalidades para estes elementos [26]. De fato, a definição de uma arquitetura de referência para agentes assistentes pessoais que segue conforme especificidades e requisitos apresentados na seção II. B., já se caracteriza como um fator de grande importância para a inovação pretendida. Contudo, são ainda propostos novos requisitos que devem guiar a definição da arquitetura de forma a manter uma maior inter operabilidade entre os elementos envolvidos, além de uma maior flexibilidade na composição dos comportamentos do AAP. Estes requisitos são: A arquitetura deve ser baseada em padrões abertos e atuais, independente de tecnologia e que possa ser facilmente adaptável (flexível). O AAP deve poder ser implementado em linguagens e tecnologias tanto comerciais quanto gratuitas ou opensource. O AAP deve permitir que novos comportamentos, processos para execução das atividades do agente, sejam agregados dinamicamente sem que seja necessário alterar sua implementação pronta. Deve ser possível substituir um comportamento por outro com atividade semelhante e mesmos parâmetros, fornecido por outra entidade, sem que seja necessário reconfigurar o agente, ou que as alterações sejam mínimas. Deve haver a possibilidade dos comportamentos do AAP não estarem necessariamente localizados no mesmo computador do núcleo de execução do agente em si, ou seja, poderem estar distribuídos em repositórios de comportamentos na Internet, podendo ser utilizados gratuitamente, alugados ou vendidos por terceiros. Por fim, um comportamento deve poder ser invocado pelo AAP apenas quando este estiver habilitado para tal e todas as suas condições para ativação forem satisfeitas. É importante salientar que o uso de uma arquitetura de referência para o desenvolvimento de AAPs, que segue os requisitos acima citados pode trazer certas vantagens, tais como a inter operabilidade, a flexibilidade dos comportamentos do agente, a independência de fornecedores de assistentes pessoais e comportamentos, a possibilidade de qualquer pessoa poder ter seu assistente pessoal, com os mais variados tipos de comportamentos, gostos e custos VISÃO GERAL O Agente Assistente Pessoal (AAP) é, no contexto deste trabalho, um processo computacional criado para representar um usuário na execução de certas tarefas, automaticamente ou com algum grau de intervenção/supervisão humana. Seu macrocomportamento é composto pelo conjunto de comportamentos distribuídos na Internet e que podem ser executados paralelamente. 115

124 Saulo Popov Zambiasi e Ricardo J. Rabelo Uma Arquitetura de Referência para Assistentes Pessoais: Uma Abordagem Baseada em Agentes e Serviços de Software A visão do macro comportamento que o AAP possui é o subconjunto dos possíveis comportamentos que podem ser utilizados. Este subconjunto é escolhido pelo usuário e agregado ao AAP como forma de satisfazer suas necessidades. Tal agregação dos comportamentos se dá pela seleção de comportamentos (serviços Web) de repositórios de comportamentos via rede de computadores/internet, e a uma posterior configuração deste em um ambiente de configuração do AAP. Algumas informações são o endereço do local onde este comportamento está alocado, os parâmetros que precisam ser passados e as informações que possam ser relevantes para a execução de tal comportamento. Tendo em vista a composição dos requisitos e especificidades dos assistentes pessoais descritas até este ponto, é possível esboçar uma visão geral do cenário dos AAPs, conforme a proposta do presente trabalho, apresentada na Figura 1. comportamentos de A, no qual B A. Seja bi um comportamento de B e {bi, b2,..., bn} o conjunto de comportamentos de B (1), logo, o comportamento de B é caracterizado por n B= bi (1) i=1 Em suma, o comportamento do Agente Assistente Pessoal, ou macro comportamento, é o subconjunto de comportamentos selecionados e configurados para este, da totalidade de comportamentos disponíveis e distribuídos em uma rede de computadores, em conformidade com os padrões abertos de conectividade e comunicação aceitos pelo mesmo. Os comportamentos são serviços de software que podem ser formados pela orquestração de outros serviços de software ARQUITETURA Dando seqüência a proposta deste trabalho, a arquitetura concebida é apresentada na Figura 2. Esta está organizada seguindo um modelo em três camadas. Tal representação possui a vantagem de mostrar separadamente os módulos que devem interagir com o usuário, os módulos de execução dos processos e a representação das informações persistentes. Cada camada contém os elementos que buscam cumprir com os requisitos descritos nas seções 2.2 e 3. Figura 1: Visão geral do AAP. Essa visão é composta pelo usuário, inserido em um contexto local de negócios, que possui um conjunto de tarefas que são de sua responsabilidade, interesses pessoais e organizacionais e características específicas do dispositivo computacional que o usuário está utilizando. Por meio desse conjunto de elementos, o usuário interage com seu assistente pessoal. Este, por sua vez, possui uma representação das informações de interesses do usuário, e de um conjunto de informações relativas aos estados e eventos do usuário e dos comportamentos em execução. Formalizando a visão personalizada do macrocomportamento do AAP da Figura 1, tem se A um conjunto não vazio, tal que A representa o conjunto de n comportamentos distribuídos em uma rede de computadores {a1, a2,..., an}. Define se como B o comportamento resultante (ou macro comportamento) do AAP, sendo caracterizado pelo conjunto de Figura 2: Arquitetura de Referência para AAPs. Fazendo um paralelo com os requisitos para assistentes pessoais apresentados nas seções 2.2 e 3, esta proposta pretende apresentar soluções para eles da seguinte forma: A autonomia é resolvida com um servidor de AAPs, que instancia os AAPs dos usuários, e cada um destes é um agente autônomo. Os requisitos de flexibilidade e adaptabilidade são comportados pela 116

125 Saulo Popov Zambiasi e Ricardo J. Rabelo Uma Arquitetura de Referência para Assistentes Pessoais: Uma Abordagem Baseada em Agentes e Serviços de Software arquitetura SOA, em que os comportamentos, na forma de serviços Web, podem ser selecionados e orquestrados pelo usuário conforme sua necessidade e suas tarefas. A interação é feita pelo AAP quando necessária e quando um comportamento requerer tal interação. A interoperabilidade e a estrutura baseada em rede fica implícita na utilização de SOA para compor os comportamentos do AAP. A questão da interoperabilidade aos processos da empresa depende destes estarem em conformidade com SOA e com UBL (Universal Business language). Por fim, a adaptabilidade de contexto depende de como cada comportamento irá tratar o contexto de informações que são provindas de redes ubíquas CAMADA DE APRESENTAÇÃO A camada de apresentação é caracterizada pela maneira como o usuário interage com o AAP. Esta possui dois elementos básicos, um navegador Web e o Modelador de Interface. Estes são descritos a baixo: Navegador Web: Localizado no dispositivo computacional do usuário, serve como meio de acesso ao sistema para criação, configuração e manutenção do AAP. Modelador de Interface: Ajusta o sistema para a interação do usuário com os comportamentos, conforme as particularidades de cada comportamento. Para suportar essa funcionalidade, toma se como exemplo a proposta de [21], que apresenta uma forma de criação de uma interface gráfica de usuário automática e dinamicamente a partir de uma descrição de um serviço Web e, a partir dessa, uma invocação dinâmica ao serviço Web CAMADA DE PROCESSOS Camada caracterizada pelos elementos do processamento do AAP. Núcleo de Execução do Servidor: Programa servidor responsável por instanciar e gerenciar a execução dos AAPs registrados em uso. Núcleo de Execução no Cliente: Extensão ativa do AAP no cliente para: (i) gerenciar a comunicação entre o usuário e o AAP via modelador de interface, (ii) gerenciar e sincronizar as informações do dispositivo computacional do usuário com o banco de dados no AAP, (iii) interpretar novas informações que chegam, previamente filtradas pelo Filtro e enviar o resultado para o AAP, (iv) informar os estados, eventos, ações e situação do usuário ao Gerenciador de Estados e Eventos no AAP. Filtro: Módulo responsável por filtrar novas informações que chegam, conforme preferências e interesse do usuário ou possível utilização por algum comportamento do AAP. Apenas o que é realmente relevante ao usuário e ao processamento do AAP é processado. Núcleo de Execução: Núcleo de processamento central do AAP, responsável por: (i) escalonar os comportamentos do AAP na forma de processos no Motor de Execução de Comportamentos ; (ii) gerenciar os comportamentos que estão em execução; (iii) decidir, por meio da base de informações e do Gerenciador de Estados e Eventos, que comportamentos devem entrar em execução e instanciá los; (iv) gerenciar conflitos de comportamentos; (v) comunicar se com o Núcleo de Execução no Cliente quando necessário interação com o usuário. Devido ao processamento dos comportamentos serem distribuídos, a favor da abordagem SOA, este fica liberado de grande parte do processamento de cada comportamento. Gerenciador de Estados e Eventos: Módulo funcional para atua tal como um quadro negro, com informações voláteis e atualizadas sempre que possível, de forma a responder ativamente aos demais módulos. Essas informações são provenientes do dispositivo computacional do usuário e da execução ou resultados dos processamento dos comportamentos. Aplicação Web: Localizado no servidor de AAP e acessado via navegador Web, serve como interface entre a entidade que fornece (aluga, vende, ou distribui gratuitamente) AAPs e os usuários. Por meio desta, o usuário pode conhecer as características da entidade, tipos de serviços que esta fornece e as especificidades dos assistentes pessoais. Além disso, o usuário pode selecionar os comportamentos através de um Índice de Comportamentos e Serviços 117

126 Saulo Popov Zambiasi e Ricardo J. Rabelo Uma Arquitetura de Referência para Assistentes Pessoais: Uma Abordagem Baseada em Agentes e Serviços de Software Conhecidos, com pontuações conforme uma Especificação de QoS (Quality on Service), e pode configurar cada comportamento do AAP. Motor de Execução de Comportamentos: O Núcleo de Execução verifica as condições para que um comportamento entre em execução e invoca os via Motor de Execução de Comportamentos, da qual mantem o Gerenciador de Estados e Eventos informado de qualquer modificação ou situação dos comportamento. Buscador de Comportamentos e Serviços: Facilita a composição do macro comportamento do AAP por meio da criação de de um Índice de Serviços e Comportamentos, previamente pesquisados na Web. São organizados por funcionalidades e podem ser selecionados pelos usuários no momento de configurar seus AAPs. Isso não impede que o usuário possa agregar ao seu AAP comportamentos que não estejam cadastrados no índice. As funcionalidades extras deste módulo, assim como a inteligência e eficiência utilizada na procura de comportamentos nos repositórios podem ser específicas de cada implementação e de cada entidade fornecedora desta funcionalidade. Este módulo deve fazer uso dos resultados de uma Tese de doutorado [27] em vias de finalização, sendo desenvolvida no Grupo GSIGMA, do DAS CAMADA DE DADOS Cadastro de AAPs: Controla a execução dos AAPs cadastrados no servidor, conforme particularidades e informações configurações por cada usuário e para cada comportamento que o AAP utiliza. Índice de Serviços e Comportamentos Conhecidos: Repositório de índice de informações referentes aos comportamentos, facilitando a modelagem do macrocomportamento do AAP. Informações e Preferências: Base de informações persistente com informações referentes as preferências do usuários de cada comportamento agregados ao AAP. Essas servem para para filtrar novas informações que chegam para selecionar e iniciar a execução dos comportamentos e para conduzir a execução dos comportamentos. Especificações de QoS (Quality on Service): Informações para avaliação dos comportamentos conhecidos no Índice de Comportamentos por meio de um sistema de pontuação, auxiliando o usuário na escolha dos comportamentos para compor o macro comportamento do seu AAP. Estas especificações devem vir essencialmente dos resultados de uma Tese de Doutorado [27] em vias de finalização, sendo desenvolvida no grupo GSIGMA, do DAS. Comportamentos do AAP: Documentos textos com uma sintaxe estruturada na forma algorítmica para organizar, gerenciar variáveis, orquestrar e instanciar os serviços que serão a composição de cada comportamento do AAP. Repositórios de Comportamentos: Provedores de serviços que seguem as especificações de SOA. Alguns destes podem passar a produzir serviços específicos para AAPs. Podem ser serviços individuais ou comportamentos compostos pela orquestração de serviços individuais. Repositórios de Serviços UBL: Fornece padronização para comportamentos de negócios, mantendo uma maior compatibilidade e interoperabilidade com outros sistemas, organizações, empresas ou assistentes pessoais de terceiros. Sugere se que tais comportamentos sejam baseados em UBL (Universal Business Language). Neste momento há uma Dissertação de Mestrado sendo desenvolvida no grupo GSGIMA, do DAS, de implementação de um catálogo de serviços Web com base na especificação UBL. Templates: Para cada comportamento do AAP que segue a padronização UBL deve existir um ou mais templates que visam auxiliar a configuração de tal comportamento. Repositórios de Serviços Não UBL: Demais comportamentos que não seguem o padrão UBL. Encontrados em repositórios na internet e 118

127 Saulo Popov Zambiasi e Ricardo J. Rabelo Uma Arquitetura de Referência para Assistentes Pessoais: Uma Abordagem Baseada em Agentes e Serviços de Software desenvolvidos por terceiros, não intentam manter um padrão de negociação específica. Informações e Preferências no Cliente: São todas as informações que possuem relevância na execução dos comportamentos do AAP e do filtro. Devem estar sincronizadas com a base de dados localizada no AAP. Referem se às preferências do usuário e às informações necessárias para a execução de cada comportamento, passadas pelo usuário no momento da configuração deste. Baseado em uma versão preliminar da arquitetura apresentada em [6], foi desenvolvido um protótipo simplificado com alguns dos componentes citados. Contudo, nem todos os módulos foram implementados e mesmo os que foram desenvolvidos foram feitos de forma bastante simples. Tal protótipo serviu como base para resolver questionamentos que estavam em aberto PONTOS DE ANÁLISE Até o momento atual deste trabalho, algumas questões foram levantadas e tratadas, mas há aspectos em aberto que devem ser vistos na etapa seguinte, para a finalização da proposta como Tese de Doutorado. A utilização de serviços Web ainda não se encontra com sua utilização abrangente o suficiente para que seja possível o fornecimento de todas as funcionalidades desejáveis para a composição um conjunto de comportamentos para um bom macro comportamento do AAP, sendo necessário uma análise prévia de tipos de comportamentos mais gerais e alguns mais específicos que podem ser utilizados para a execução do protótipo pelas pessoas envolvidas no processo de avaliação do sistema. O usuário deve poder acrescentar um comportamento ao macro comportamento do AAP de forma dinâmica. Porém, ainda não foi definida a forma como o usuário irá interagir com o sistema caso ele queira criar um novo comportamento, a partir da orquestração de outros comportamentos/serviços. Tendo isso em vista, existem três alternativas a serem avaliadas: A utilização de um editor BPM para modelar o comportamento e carregar o documento BPEL (Business Process Execution Language) gerado no AAP. Contudo, este caminho limitaria a configuração dos comportamentos dos AAPs à usuários com conhecimentos de BPM/BPEL ou obrigaria os usuários a terem que conhecer tal tecnologia. A criação de uma interface mais simples no próprio sistema para configuração do AAP, que apresente ao usuário uma forma gráfica simplificada de fluxogramas. Porém, isso levaria a um outro ponto que é a necessidade de alocação de tempo para a criação de tal interface ou mesmo para a pesquisa de interfaces que poderiam ser adaptadas para a situação. A utilização de uma estrutura algorítmica simples a ser traduzida para BPEL. Neste caso, deve se criar uma pseudo linguagem ou utilizarse de uma biblioteca que permita a utilização de scripts. Ainda, esta opção possui o mesmo problema da alocação de tempo que anterior. O filtro de informações ainda precisa ser definido, modelando este módulo do sistema internamente na forma de trabalhar com as informações de preferências e objetivos do usuário e relacioná las às informações que são recebidas pelo AAP. 4. ASPECTOS DA IMPLEMENTAÇÃO Para criar uma primeira instância da Arquitetura, e como forma de fornecer um embasamento prático para a continuidade do trabalho, foi desenvolvido um primeiro protótipo parcial, composto de um comportamento simples para o gerenciamento de uma conta de e mails de um usuário do AAP [6]. Contudo, como seu comportamento foi implementado em um programa Java, foi necessário o aperfeiçoamento deste para um segundo protótipo, utilizando agora a orquestração dos comportamentos via BPEL, ajustando o protótipo aos novos requisitos da arquitetura agora atualizada. Os comportamentos do AAP se caracterizam como algoritmos customizados, pré prontos ou criados pelo usuário do AAP. No protótipo esses algoritmos são desenvolvidos em BPEL devido a sua forma natural de invocação de serviços Web, vistos pelo AAP como comportamentos provindos de repositórios para serem orquestrados em um comportamento do AAP. Ainda, mesmo que um comportamento seja apenas a utilização de um único serviço Web, um documento BPEL deve ser criado para representar tal comportamento no AAP. Cada um dos comportamentos é visto na forma de serviços disponíveis em Repositórios de Serviços Web e a composição de serviços para a criação de um comportamento para o AAP é também visto como um 119

128 Saulo Popov Zambiasi e Ricardo J. Rabelo Uma Arquitetura de Referência para Assistentes Pessoais: Uma Abordagem Baseada em Agentes e Serviços de Software serviço (Figura 3). parar (Figura 4). Figura 3: Comportamentos do Agente Assistente Pessoal. Nesta segunda etapa do protótipo, os elementos implementados foram: o Núcleo de Execução no AAP (Java); a Aplicação Web no servidor de AAPs para criar e configurar o AAP (PHP e HTML); o comportamento do AAP para o Gerenciamento de E mails (BPEL); um comportamento no repositório de comportamentos que acessa uma conta de um servidor de e mails (serviço Web em Java); um comportamento no repositório de comportamentos que monitora uma conta de um serviço de Instant Messages (IM) (serviço Web). Estes serviços são selecionados e organizados na forma de um algoritmo (em um documento BPEL). Esta etapa é classificada como a orquestração dos serviços para a criação de um comportamento especifico. Este comportamento pode ser fornecido pela própria empresa, por terceiros, ou desenvolvido pelo próprio usuário do AAP e é visto pelo AAP como um serviço que irá compor a gama de comportamentos, ou macrocomportamento, do AAP. Os elementos utilizados para a execução do protótipo, que não houve a necessidade de reimplementação, foram: um navegador Web (Firefox) para acesso ao Webmail do usuário e à Aplicação Web ; um servidor de e mails (Dovecot) com uma aplicação para acesso via Webmail (uebimiau); um servidor Web para as aplicações Web e Webmail (Apache); um cliente de IM (Pidgin) ; um servidor de IM (Gtalk). Como motor de execução dos comportamentos em BPEL foi utilizado o servidor Apache Tomcat com ODE (Orchestration Director Engine). Em tempo, para a implementação, execução e testes do protótipo foram utilizados computadores com sistema operacional GNU/Linux Ubuntu na versão O comportamento do gerenciamento de e mails funciona em um laço infinito até que o Núcleo de Execução envie um comando para o comportamento Figura 4: Fluxograma do comportamento de gerenciamento de e mails. O algoritmo inicia e se mantêm um tempo em espera, de forma a não sobrecarregar o processamento do comportamento. Após isso, é verificado se o comando parar foi enviado e, caso tenha recebido este comando, então o algoritmo termina, caso contrário é verificado o estado do usuário no Gtalk. Se o usuário estiver com seu estado disponível, então o comportamento volta ao começo, caso contrário é invocado o processo para verificar e mails. Caso não existam novos e mails o algoritmo volta ao início, senão este executa uma análise do novo e mail. Se este novo e mail for uma nova atividade enviada para o usuário, então essa atividade é estruturada e enviada para o usuário na forma de um e mail especial. Esta funcionalidade deve ser mais tarde substituída por um comando para adicionar nova atividade na agenda do usuário. Ainda, no algoritmo, caso não seja uma nova atividade, então é verificado se o e mail é urgente, caso seja urgente, é enviado um e mail resposta para o remetente informando do motivo de não poder responder no momento e informando que logo que possível a mensagem será lida e respondida. Esta funcionalidade também deve ser substituída mais tarde por outra que envia mensagens via SMS (Short Message Service) para o celular do usuário com o assunto do e mail. No momento atual, o trabalho encontra se na etapa de desenvolvimento de um novo protótipo do sistema, agora com todos os módulos da arquitetura implementados e da qual deverão ser aplicados testes para a validação da proposta. Para tal, deverão ser preparados questionamentos para serem aplicados a usuários selecionados para utilizar AAPs, fazendo uma análise comparativa de como a utilização de um AAP afetou suas atividades rotineiras. Também deverá ser utilizada uma ferramenta/ metodologia (ainda a ser definida) para a análise da utilização do tempo dos indivíduos participantes do processo de avaliação. 120

129 Saulo Popov Zambiasi e Ricardo J. Rabelo Uma Arquitetura de Referência para Assistentes Pessoais: Uma Abordagem Baseada em Agentes e Serviços de Software Assim, indicadores de desempenhos qualitativos e quantitativos serão empregados na avaliação do trabalho. Como qualitativos, por exemplo, deverão ser utilizados indicadores que, de alguma forma, meçam o quanto o trabalho do usuário foi mais facilitado e como quantitativo, que meçam, por exemplo, o quanto do trabalho foi diminuído ou tornado mais rápido. 5. CONSIDERAÇÕES FINAIS Neste artigo foi apresentada uma proposta de uma Arquitetura de Referência para Assistentes Pessoais baseada em Agentes e Serviços de Software. Estes assistentes pessoais visam fornecer um suporte às pessoas com o intuito de minimizar o tempo gasto na execução de tarefas repetitivas e tediosas, ou quando uma pessoa não possa estar disponível ou encontram se demasiado ocupada. A arquitetura proposta busca fornecer um caminho de inter operabilidade entre assistentes pessoais via software de computador, mantendo a compatibilidade entre as instâncias que seguem esta arquitetura e tendo os assistentes conectados aos sistemas empresariais. Com base na arquitetura apresentada em [6], houve refinamentos efetuados na mesma tais como: (i) o acréscimo de um módulo servidor para o gerenciamento de um conjunto de agentes, cada qual com suas próprias informações, usuários e comportamentos; (ii) uma seção para gerenciamento de especificações de QoS em relação aos serviços utilizados pelos AAPs; (iii) um indexador de serviços Web para facilitar a procura de comportamentos para serem acrescentados aos AAPs pelos usuários; e (iv) a utilização de templates baseados em UBL para a padronização dos comportamentos relacionados aos processos de negócios da empresa. Em tempo, tendo a nova arquitetura formulada, o protótipo foi aperfeiçoado, gerando uma segunda versão. Além disso, foram executadas pesquisas relacionadas aos aspectos para a implementação de uma próxima versão do protótipo para a validação da proposta, assim como a forma que esta será validada, com análise da execução do protótipo em um ambiente controlado e em um ambiente real, por meio de logs dos usuários, análise de tempo para execução de tarefas (quantitativamente) e questionários aos usuários com opiniões sobre as mudanças ocorridas nos processos de trabalho após a utilização de um AAP (qualitativamente). Os próximos passos do trabalho incluem ainda um novo refinamento, a apresentação detalhada de cada elemento que compõe a arquitetura e a implementação de uma instância de assistentes pessoais baseado na arquitetura apresentada. Ainda, deverão ser feitos testes quantitativos e qualitativos em ambiente controlado e ambiente real para a validação do modelo e do protótipo a ser implementado. AGRADECIMENTOS Este trabalho é parcialmente financiado pela CAPES Coordenação de Pessoal de Nível Superior ( REFERÊNCIAS [1] Loss, L. Aprendizado de redes colaborativas de organizações: um arcabouço para dar suporte à criação e uso de conhecimento Tese (Doutorado) PPGEEL UFSC, Florianópolis, [2] Stojanovic, Z.; Dahanayake, A. Serviceoriented software system engineering: challenges and pratices. Idea Group Inc. Hershely, PA [3] Lackenby, C.; Seddighi, H. A dynamic model of virtual organisations: formation and development. In: Camarinha Matos, pg [4] Maes, P. Agents that reduce work and information overload. Communications of the ACM, nº.7, vol37, NY, USA, [5] Hoyle, M.A.; Lueg, C. Open Sesame!: A Look at Personal Assistants. Proceedings of the International Conference on the Practical Application of Intelligent Agents (PAAM97), London, 1997, 51 60, [6] Zambiasi, S.P.; Rabelo, R.J. Uma Proposta de Arcabouço para Agentes Assistentes Pessoais. 7 th I2TS. Foz do Iguaçu, Brasil, [7] Bocionek, S. Software secretaries: learning and negotiating personal assistants for the daily office work In Systems, Man, and Cybernetics. 'Humans, Information and Technology'. IEEE. 12 vol Oct [8] Vieira, W. Agentes Móveis Adaptáveis para Operação Remota. PhD Thesis, Universidade Nova de Lisboa, Lisboa, [9] Markoff, J. A Software Secretary That Takes Charge. New York Times, Dec 13, 2008 < /14stream.html?_r=1&scp=7&sq=personal 121

130 Saulo Popov Zambiasi e Ricardo J. Rabelo Uma Arquitetura de Referência para Assistentes Pessoais: Uma Abordagem Baseada em Agentes e Serviços de Software %20assistant&st=cse> access in Mar 17, [10] Michaell, T., Caruana, R., Freitag, D., McDermott, J., Zabowski, D. Experience With a Learning Personal Assistant. Communications of the ACM, July, [11] Huhns, M.N.; Singh, M.P. Personal assistants. IEEE Internet Computing, Vol. 2, Issue 5, pp Sep./Oct [12] Russel, S., Norvig, P., Inteligência Artificial, 2ªEd, Trad. 2ª ed. RJ: Elsevier, [13] Wong, J.S.K., Mikler, A.R. Intelligent mobile agents in large distributed autonomous cooperative systems. The Journal of Systems and Software 47, pg.75 87, [14] Weiss, G. Multiagent systems: a modern approach to distributed artificial intelligence. MIT Press, [15] Sensoy, M., Yolum, P. Evolving service semantics cooperatively: a consumer driven approach. Springer Science+Business Media, LLC, Nov 9, [16] Schiaffino, S., Amandi A.; Polite Personal Agents. IEEE Intelligent Systems, p Jan Fev [17] Bush, J., Irvine, J. and Dunlop, J. Personal Assistant agent and content manager for ubiquitous services. wireless communication systems, ISWCS'06. 3rd International Symposium on, [18] Franco, R.D., Neyem, A., Ochoa, S. et al. Supporting mobile virtual team s coordination with soa based active entities. Establishing The Foundation of Collaborative Networks, IFIP TC 5 Working Group 5.5 Eighth IFIP Working Conference on Virtual Enterprises, September 10 12, 2007, Guimarães, Portugal. IFIP 243 Springer [19] Coulouris, G.F.; Dollimore, J.; Kindberg, T. Distributed systems: concepts and design. Addison Wesley Longman, [20] Kshemkalyani A.D.; Singhal, M. Distributed computing principles, algorithms, and systems. Cambridge University Press [21] Gesser, Carlos E. Uma abordagem para a integração dinâmica de serviços web em portais. Eng. Elétrica UFSC. Dissertação [22] MacKenzie, C.; Laskey, K.; McCabe, F. at all. Reference Model for Service Oriented Architecture 1.0. OASIS Standard, 12 October < open.org/soa rm/v1.0/ soa rm.pdf> acessado em Fev/2009. [23] Markoff, John. A software secretary that takes charge. NY Times, Dec 13, 2008 < /14stream.html?_r=1&scp=7&sq=personal %20assistant&st=cse> access in Mar17, [24] Vance, A. Microsoft Mapping course to a jetsons style future, NY Times, Mar 1, 2009.< hnology/business computing/02compute.html? scp=1&sq=jetsons&st=cse>. Access Mar 8, [25] Mundie, C. Microsoft to make computers "humanistic"...meet Laura..., Interview on Beet.TV, Oct, 2008 < watch?v=6gornu6e_og> Access Mar 17, [26] Hofmeister, C., Nord, R., Soni, D. Applied software architecture. Addison Wesley, [27] Tramontin, R.J.; Rabelo, R.J. A knowledge search framework for collaborative networks. International Federation for Information Processing Publications IFIP, vol

131 O uso de Agentes Inteligentes em Redes de Rádios Cognitivos Rafael Gassen, Rafael Kunst, Rejane Frozza, Andréa Konzen Departamento de Informática Universidade de Santa Cruz do Sul (UNISC) Av. Independência, 2293 Bairro Universitário Santa Cruz do Sul RS Brasil rafael.gassen@gmail.com, {rkunst, frozza, andrea}@unisc.br Resumo As redes de rádios cognitivos permitem que um serviço não licenciado utilize um espaço livre de uma faixa de frequência licenciada. Este artigo apresenta a modelagem e o desenvolvimento de uma camada cognitiva, com agentes inteligentes, responsável pelo processo decisório de utilização de espaços livres das faixas de frequência em rádios cognitivos. Também é apresentada a análise do desempenho dos agentes nas simulações realizadas em quatro diferentes faixas de frequência. Palavras-chave: redes de rádios cognitivos, espectro de frequência, agentes inteligentes Abstract Cognitive radio networks avoid unlicensed frequency band uses a space of a licensed frequency band. This paper presents a model and development of a cognitive layer, with intelligent agents, responsible for making use of open spaces of the frequency bands in cognitive radio. Furthermore it presents the analyses of the performance of the use of Intelligent Agents to aid in cognitive radios in four differents frequency bands. Keywords: Cognitive radio networks, spectrum sensing, intelligent agents 1. INTRODUÇÃO Com o desenvolvimento de novas tecnologias e com o crescimento das redes de computadores, surgem mais opções de serviços utilizados através das redes sem fio. Porém, para os avanços continuarem, é necessário que sejam realizadas mudanças no serviço de espectro de frequências e em suas faixas. No espectro de frequências existem dois tipos de faixas, as faixas licenciadas e as não licenciadas. As faixas de frequências licenciadas podem ser de uso exclusivo ou não exclusivo. No caso das faixas de frequências licenciadas é adquirido o direito de uso exclusivo, através dos órgãos reguladores das telecomunicações. Nesse caso, normalmente grandes empresas utilizam essa licença para garantia do seu serviço na rede. Já as faixas de frequência não licenciadas, são abertas para qualquer tipo de serviço em dispositivos que utilizem certa frequência de rádio. A dificuldade em encontrar frequências de redes não licenciadas com boa disponibilidade, prejudica a implantação de novos serviços na rede ou o reforço dos já existentes, como os serviços de banda larga. O estudo da utilização de rádios cognitivos (RC), segundo Akyildiz [1], refere-se a um serviço não licenciado utilizar um espaço livre de uma faixa de frequência licenciada. Esse serviço irá se propagar na faixa de frequência licenciada até que o usuário primário (aquele que disponibiliza a faixa de frequência licenciada) da frequência volte a ter a necessidade de transmitir dados. Quando isso ocorrer, o RC, através de um algoritmo, procura uma faixa de frequência livre para voltar a transmitir. 123

132 Rafael Gassen, Rafael Kunst, Rejane Frozza e Andréa Konzen O uso de Agentes Inteligentes em Redes de Rádios Cognitivos Para a distribuição do espectro entre as faixas de frequência é necessária a aplicação da técnica chamada de spectrum sensing, que é responsável pelas decisões que os RCs realizam. De acordo com Stevenson [8], é através do spectrum sensing que os usuários de RC poderão saber qual faixa de frequência será utilizada, ou seja, qual faixa de frequência está ociosa e pode receber uma transmissão. Este trabalho apresenta uma solução para o problema do spectrum sensing em redes de RC utilizando os Sistemas Multiagentes para o gerenciamento do espectro de frequências em redes sem fio. Foram realizadas simulações do comportamento das redes sem fio no acesso ao espectro. O objetivo do uso dos agentes inteligentes foi auxiliar na escolha (tomada de decisão) de uma faixa de frequência livre, já que não havia uma implementação eficiente e disponível para o problema do spectrum sensing na área de redes de computadores. O artigo está organizado nas seguintes seções: a seção 2 apresenta as definições de redes de rádios cognitivos e espectro de frequências; na seção 3, destacam-se alguns trabalhos envolvendo redes de computadores e uso de agentes inteligentes; a seção 4 descreve o modelo de camada cognitiva com o uso de agentes para prover espectro de frequência em redes de rádios cognitivos; a seção 5 apresenta o resultado de algumas simulações; e, na seção 6, são apresentadas as considerações. 2. REDES DE RÁDIOS COGNITIVOS As redes de rádios cognitivos permitem distribuir de uma forma mais homogênea as faixas de frequência. Atuam, primeiramente, como analisadores destas faixas, monitorando-as, a fim de verificar quais estão ociosas, ou seja, sem transmissão, e qual a sua largura. As frequências conhecidas e utilizadas por aparelhos eletrônicos são transportadas através de ondas eletromagnéticas. Essas ondas foram divididas conforme suas características, criando o espectro de frequências. Conforme Stevenson [8] e Cabric [2], espectro de frequências é o meio que realiza o envio ou recebimento dos dados e da voz. Utilizando-se desse espectro de frequências estão, por exemplo, Internet sem fio, telefones celulares, comunicação aérea civil e militar e telemetria. Conforme Ghasemi [5], para um RC analisar a melhor frequência e proporcionar a transmissão, é preciso tomar uma decisão. Em vista disso, os RCs se utilizam da técnica chamada de spectrum sensing (sensor de espectro), que tem o objetivo de descobrir quais faixas de frequências estão livres para o uso. Para que um RC realize a troca de uma frequência para outra, é necessário utilizar alguma instrução fornecida por um usuário ou ainda alguma instrução previamente construída. A tomada de decisão é fundamental, pois o fato de considerar as informações do momento e as experiências passadas proporcionará formas adequadas de se chegar ao objetivo estabelecido. A fim de melhorar a atuação do spectrum sensing, é possível aplicar técnicas para os RCs tomarem decisões mais precisas. 3. TRABALHOS RELACIONADOS Esta seção apresenta alguns trabalhos das áreas de gerência de redes com uso de agentes e estudos de RC no espectro de frequências. A gerência de redes de computadores com agentes inteligentes é tratada em Souza [7] e em Franceschi [3]. No trabalho de Souza [7] o objetivo foi monitorar o tráfego de rede com o uso de agentes em intervalos de tempos pré-determinados. Já em Franceschi [3], os agentes possuem dois tipos de comportamento: reativo, quando as ações de gerência são realizadas após o aparecimento do problema; pró-ativo, quando existe um gerenciamento com ações preventivas. Zhang [9], em seu trabalho apresenta o uso de RC para aliviar a escassez de espectro de frequências em redes sem fio, utilizando o sensor de espectro (spectrum sensing). Desde as primeiras pesquisas com RC, tem-se visualizado a possibilidade de um usuário dinamicamente poder se utilizar de um acesso secundário em uma faixa de frequência licenciada, sem que seja prejudicada a utilização por um de seus usuários principais. Na proposta de Le [6] os RCs são capazes de aprender em seus ambientes e se adaptarem de forma inteligente as mais diferentes formas para prestar serviço ao usuário. Foi desenvolvida uma camada inteligente subdividida em três camadas: percepção, raciocínio e aprendizado. O objetivo é gerenciar os recursos do rádio para cumprir as suas funcionalidades cognitivas com melhor desempenho. No trabalho de Ghasemi [5], demonstra-se claramente que a utilização de espectro é suficiente para todos os tipos de usuário, sejam eles primários ou secundários, porém existe uma má distribuição do espectro entre as faixas de frequências. Dessa forma, já vem sendo estudada a utilização de espaços livres no espectro para utilização de serviços como, por exemplo, para faixas de frequência de TVs. A partir dos estudos nas áreas de Gerenciamento de Redes e de agentes e da análise dos trabalhos relacionados, foi proposto desenvolver agentes inteligentes em uma camada cognitiva, com o uso do spectrum sensing. 124

133 Rafael Gassen, Rafael Kunst, Rejane Frozza e Andréa Konzen O uso de Agentes Inteligentes em Redes de Rádios Cognitivos 4. MODELO PROPOSTO DA CAMADA COGNITIVA Esta seção apresenta a modelagem e o desenvolvimento do sistema multiagente proposto, atuando em redes de rádio cognitivo, com agentes homogêneos, pois todos executam o mesmo processo de raciocínio sobre as informações que estiverem recebendo da rede. Um agente estará presente em cada um dos usuários secundários (que se utilizam do espectro livre) existentes, para que este, com o auxilio dos agentes possa utilizar de faixas de frequências de um usuário primário (que disponibiliza a faixa de frequência licenciada). Os agentes poderão buscar pelo espectro livre em quatro faixas de frequência (FTP, HTTP, VoIP com supressão de silêncio e sem supressão de silêncio). Cada faixa de frequência vai simular o envio de um tipo de dado da aplicação. Deste modo, têm-se espaços livres em momentos diferentes, buscando simular o comportamento de uma aplicação real. Cada agente possui uma estrutura de dados em memória (um vetor de cinco posições), indicando se há canal livre ou não (0 - canal livre; 1- canal ocupado). A cada necessidade de transmissão, o agente varre as faixas de frequências, verifica os canais livres e atualiza a sua memória. Conforme a Figura 1, cada faixa de frequência é representada por um vetor que indicará se o canal está ocupado ou livre para trafegar. Quando existir os números 0 e 1, significa que existem dados trafegando. Já o número 2 representa que a faixa de frequência está livre para receber o usuário secundário. Para a implementação deste trabalho, visando os melhores resultados, definiu-se que os dados trafegando seriam 0 (zero) e 1 (um), além de ser uma definição existente em protocolos de redes. Estes, quando estão com dados trafegando, repassam sinais em bits. Para representar a faixa vazia, foi escolhido o número 2. Figura 1: Ambiente Multiagente atuando sobre as faixas de frequência O usuário primário sempre avisa quando vai entrar na ocupação do canal de uma das faixas. Isto também ativa a atualização da memória dos agentes. O usuário primário sempre terá prioridade em usar as faixas de frequência. Foram modelados três cenários distintos. Cada cenário com uma quantidade de agentes diferentes. Quando um usuário secundário precisa transmitir, é direcionado por um agente a uma faixa de frequência livre. Os cenários propostos são de 2, 5 e 10 agentes secundários. Além destes três cenários, cada um deles possui duas abordagens diferentes, com e sem comunicação entre os agentes. Sem comunicação: cada agente tomará a decisão de qual canal livre ocupar apenas pelas informações registradas em sua memória. Neste caso, sempre que houver a necessidade de transmissão, o 125

134 Rafael Gassen, Rafael Kunst, Rejane Frozza e Andréa Konzen O uso de Agentes Inteligentes em Redes de Rádios Cognitivos agente varre as quatro faixas de frequência e escolhe a primeira que está disponível. Pode acontecer de quando o agente tentar ocupar um canal, que estava com status livre em sua memória, este já ter sido ocupado por outro agente, então o agente terá sempre que checar o canal escolhido antes da ocupação efetiva. Com comunicação: foi desenvolvido um protocolo de comunicação simples entre os agentes (envio de mensagem broadcast de canal ocupado - confirmação de recebimento). Desta forma, quando um agente ocupar um canal, informa aos demais, que atualizarão a sua memória. O agente confia plenamente nas informações da sua memória quando decidir pela ocupação de um canal registrado como livre, por isso, ele não faz uma verificação em todas as faixas de frequência novamente. Além disso, quando um agente pára de usar uma faixa de frequência, ele também avisa aos demais, pois eles confiam plenamente na memória. Da mesma forma, quando o usuário primário começa a transmitir, todos os usuários secundários são informados pelo agente. Para realizar a simulação do espectro de frequência, baseado em RC, foram utilizados dois softwares: o Labview (Laboratory Virtual Instrument Engineering Workbench), versão 8.2, que foi usado para implementação dos algoritmos, e o MATLAB (MATrix LABoratory), que foi usado para geração dos modelos de tráfego de rede. 5. ANÁLISE DOS RESULTADOS DE SIMULAÇÕES Esta seção apresenta as simulações realizadas com 10 e 5 agentes com e sem comunicação com seus resultados e avaliação do uso de agentes inteligentes no processo de análise do spectrum sensing. Salientase que, o detalhamento das outras simulações pode ser encontrado em Gassen [4]. A primeira verificação feita foi em relação à liberação da faixa de frequência por parte do usuário secundário, assim que o usuário primário precisasse utilizá-la novamente. Para isso, foram realizadas algumas amostragens dos canais antes e depois da entrada dos agentes. Na Figura 2, é possível verificar a leitura realizada antes (vetor de baixo) e depois (vetor de cima) do processamento dos agentes. Percebe-se que após o início do tráfego no modelo FTP (representado por 0 e 1), o agente não fica mais atuando no espectro deste modelo de tráfego. O número 20 (vetor de cima) refere-se a um agente que está utilizando um canal de FTP livre (valor 2 do vetor de baixo). Quando o agente primário voltar a utilizar o canal (valor 0 do vetor de baixo), o agente deixa de atuar (valor 0 do vetor de cima). Figura 2: Demonstração do espectro de frequência antes e depois do agente ter assumido um espaço livre Numa simulação com análise de 10 agentes atuando com comunicação, observou-se que, na grande maioria dos modelos de tráfego, a utilização dos agentes nas faixas licenciadas foi pequena, conforme pode ser visualizado na Figura 3. O eixo horizontal do gráfico apresenta os valores 0 e 1 indicando tráfego de dados, o valor 2 indicando canal livre e os valores de 11 a 20 indicando os 10 agentes. Já os agentes representados pelos valores 13 e 15, atuaram no modelo FTP por bastante tempo. O modelo de tráfego FTP apresenta uma característica de envio de pacotes em grandes quantidades e, após, fica um período sem transmitir. Essa característica, complementada com o auxílio do agente com comunicação, permitiu que um agente pudesse atuar por um período de tempo neste modelo de tráfego. Os tráfegos de HTTP, VoIP com supressão de silêncio (representado na Figura 3 por VoIPCS) e VoIP sem supressão de silêncio (representado na Figura 3 por VoIPSS), tiveram a maior parte do tempo com os canais livres. 126

135 Rafael Gassen, Rafael Kunst, Rejane Frozza e Andréa Konzen O uso de Agentes Inteligentes em Redes de Rádios Cognitivos Figura 3: Visão da ocupação do tráfego para 10 agentes com comunicação Na mesma simulação com 10 agentes e sem comunicação, percebeu-se uma grande diminuição do tempo ocioso das faixas de frequências (representado pelo número 2). Enquanto que, na simulação com comunicação, o tempo ocioso chegou perto dos 90% para o modelo de tráfego HTTP. Neste caso, esteve no máximo próximo a 10%, conforme pode ser visualizado na Figura 4. A diminuição do tempo ocioso ocorreu pelo fato dos agentes conseguirem rapidamente acessar uma faixa de frequência, apenas verificando o status momentâneo dos quatro modelos de tráfego. Figura 4: Visão da ocupação do tráfego para 10 agentes sem comunicação 127

136 Rafael Gassen, Rafael Kunst, Rejane Frozza e Andréa Konzen O uso de Agentes Inteligentes em Redes de Rádios Cognitivos Ainda analisando a simulação entre os 10 agentes com e sem comunicação, foi realizada uma comparação entre os serviços executados por cada agente nas duas simulações. Conforme a Figura 5, os únicos agentes que tiveram um bom desempenho na simulação com comunicação foram os agentes 13 e 15. Já no processo sem comunicação, os agentes atuaram de forma mais homogênea. Figura 5: Visão da ocupação média dos 10 agentes nas simulações com e sem comunicação. Na simulação realizada com 5 agentes, observouse que o modelo de tráfego FTP foi significativamente utilizado pelos agentes 13 e 15. Outros modelos como o HTTP e o VoIP com supressão de silêncio também foram utilizados pelo agente 12, quando estavam ociosos, conforme pode ser visto na Figura 6. O eixo horizontal do gráfico apresenta os valores 0 e 1 indicando tráfego de dados, o valor 2 indicando canal livre e os valores de 11 a 15 indicando os 5 agentes. Figura 6: Visão da ocupação do tráfego para 5 agentes com comunicação 128

137 Rafael Gassen, Rafael Kunst, Rejane Frozza e Andréa Konzen O uso de Agentes Inteligentes em Redes de Rádios Cognitivos Com essa simulação, pode-se notar uma melhora considerável nos trabalhos dos agentes com relação à simulação realizada com 10 agentes com comunicação. Para a simulação sem comunicação, é possível verificar, na Figura 7, que houve um aumentou no período em que os tráfegos estavam ocupados, transmitindo dados para o usuário primário (representado por 0 e 1). Assim, pode-se observar melhora da distribuição das tarefas entre os 5 agentes. Figura 7: Visão da ocupação do tráfego para 5 agentes sem comunicação Realizando-se uma comparação entre os serviços com comunicação e sem comunicação dos agentes, visualiza-se na Figura 8, que dois únicos agentes tiveram maior atividade quando a comunicação entre eles existiu. Os demais agentes tiveram um desempenho inferior, se comparados com o serviço sem comunicação. Figura 8: Visão da ocupação média dos 5 agentes nas simulações com e sem comunicação 129

138 Rafael Gassen, Rafael Kunst, Rejane Frozza e Andréa Konzen O uso de Agentes Inteligentes em Redes de Rádios Cognitivos É possível analisar, a partir das comparações, que quando não há comunicação entre os agentes, os mesmos podem mais rapidamente estar acessando uma faixa que está livre, e transmitir o pacote de dados que o usuário secundário necessita. Acredita-se que isso ocorreu em função da comunicação existente entre os agentes demandar um tempo computacional, ocasionando, algumas vezes, a perda de uma oportunidade de transmissão em uma faixa de frequência, já que não houve a implementação de um protocolo de comunicação mais elaborado entre os agentes, utilizando-se, por exemplo, KQML ou FIPA. 6. CONSIDERAÇÕES Pensando-se na crescente necessidade de poder desenvolver novas tecnologias através do espectro de frequência, buscou-se estudar uma forma de estar viabilizando a entrada de novos serviços em faixas de frequências muito utilizadas, ou seja, as frequências não licenciadas. Em função disso, percebe-se que os Rádios Cognitivos (RC) estão sendo cada vez mais utilizados para resolver problemas no espectro de rede. Através de simulações com o algoritmo desenvolvido no Labview, pode-se notar uma diferença entre as simulações realizadas com e sem a comunicação entre os agentes. Nos casos onde a comunicação não existia, houve mais participação dos agentes nas faixas de frequência, sejam eles 2, 5 ou 10. Acredita-se que essa participação baixa, quando as simulações foram realizadas com agentes com comunicação, tenha ocorrido em função do tempo despendido para a comunicação e pelo fato de ter sido desenvolvido um protocolo básico de comunicação. Para uma análise mais aprofundada sobre o cenário dos agentes com comunicação, outros testes devem ser realizados, a fim de explorar as possíveis hipóteses do problema. Como foram realizadas simulações com somente quatro modelos de tráfego, foi possível perceber que os agentes sem comunicação tiveram um desempenho melhor, uma vez que foi mais rápido para os agentes verificar a ocupação do canal diretamente na faixa de frequência, ao invés de esperar a informação dos outros agentes sobre canais livres. Provavelmente, elevando-se o número de faixas de frequência, o desempenho da utilização de agentes com comunicação se torne mais vantajoso, visto que, percorrer mais faixas se tornaria um processo lento para os agentes sem comunicação. Além disso, com os acessos realizados pelos usuários secundários, auxiliados pelos agentes, buscou-se fazer com que as faixas licenciadas (usuários primários) não sofressem prejuízos com a utilização de usuários secundários em sua frequência. Este trabalho representou uma pesquisa inicial do uso de agentes no domínio de Rádios Cognitivos. Pretende-se avançar nos estudos e testes já realizados para obter resultados mais satisfatórios. REFERÊNCIAS [1] I. F. Akyildiz et al. A Survey on Spectrum Management in Cognitive Radio Networks. IEEE Communications Magazine, EUA, p , abr [2] D. Cabric; S. Mubaraq; R. W. Brodersen. Implementation Issues in Spectrum Sensing for Cognitive Radios. Berkeley Wireless Research Center, University of California. Berkeley, [3] A. S. M. Franceschi; J. M. Barreto; M. Roisenberg. Desenvolvimentos de agentes autônomos em gerência de redes de computadores. Universidade Federal de Santa Catarina [4] R. Gassen. Aplicação de agentes inteligentes para prover spectrum sensing em redes de rádios cognitivos. Universidade de Santa Cruz do Sul: Santa Cruz do Sul (Trabalho de Conclusão). [5] A. Ghasemi. Spectrum Sensing in Cognitive Radio Networks: Requirements, Challenges and Design Trade-offs. IEEE Communications Magazine, EUA, p , abr [6] B. Le et al. A Public Safety Cognitive Radio Node. SDR Forum Technical Conference, Denver, USA [7] A. M. Souza. Gerência de Redes de Computadores Utilizando Agentes Móveis Inteligentes. Workshop de Trabalhos de Iniciação Científica e de Graduação (WTICG) [8] C. R. Stevenson et al. IEEE : The First Cognitive Radio Wireless Regional Area Network Standard. IEEE Communications Magazine, EUA, p , jan [9] Q. Zhang et al. Cognitive Radio for Emergency Network. Mobile Multimedia: Communication. Nova Publishers, U.S.A. Engineering Perspective

139 Detectando Padrões Comportamentais de Agentes Através de Árvores de Decisão Josimara de Á. Silveira, Thiago L. Paes, Leonardo R. Emmendorfer e Diana F. Adamatti Centro de Ciências Computacionais C3 Universidade Federal do Rio Grande (FURG) Av. Itállia, km 08, Carreiros Rio Grande -RS - BRASIL josi_silver@hotmail.com, thiagopaes@gmail.com, leonardo.emmendorfer@gmail.com, dianaadamatti@furg.br Abstract This paper provides a description of an alternative for detecting the behavior of multiagent systems. Decision trees are learned from behavioral data collected from simulations of a predator-prey ecosystem. The behavior inferred from the decision trees is compared to the programmed behavior of the agents, and the differences between both are analyzed. Keywords: Artificial Inteligence, Decision Trees, Multiagent Systems, Predator-Prey. 1. INTRODUÇÃO Técnicas de aprendizado artificial, ou aprendizado de máquina, são adotadas em diversas situações que envolvem a necessidade de adaptação, mudança de comportamento, extração de conhecimento, detecção de padrões, entre outras. O aprendizado de máquina está relacionado com a obtenção de melhora de desempenho automática, através de experiência. No estudo em questão, utilizamos árvores de decisão. A aprendizagem de árvores de decisão é um método para aproximar funções alvo de valor discreto, onde a função aprendida é representada através de uma estrutura de condicionamento em árvore [1][2]. Árvores de decisão são treinadas por meio de conjuntos de dados que simbolizam eventos já ocorridos e já classificados. Existem diversos algoritmos para a geração de árvores de decisão. Neste trabalho, utilizamos o J48, uma variante do C 4.5. [3] O segundo conceito importante de ser enfatizado antes de prosseguirmos é o de Sistemas Multiagentes (SMA). Os Sistemas Multiagentes (SMA) formam uma subárea da Inteligência Artificial Distribuída e concentram-se no estudo de agentes autônomos em um universo multiagente. Para os SMA, o termo autônomo designa o fato de que os agentes têm uma existência própria, independente da existência de outros agentes. Usualmente, cada agente possui um conjunto de capacidades comportamentais que definem sua competência, um conjunto de objetivos, e a autonomia necessária para utilizar suas capacidades comportamentais a fim de alcançar seus objetivos. Um agente é uma entidade computacional com um comportamento autônomo que lhe permite decidir suas próprias ações [4]. O objetivo do estudo em questão é reconstruir regras que regem dinâmicas de agentes a partir do comportamento observado dos mesmos. Inicialmente estamos trabalhando com um sistema multiagente baseado em regras comportamentais bastante simples. Uma questão muito freqüente em aprendizado artificial diz respeito aos limites associados a cada uma das técnicas. Em outras palavras, qual o escopo de aplicação de cada técnica de aprendizado artificial? Com isso em mente, surge a idéia de conduzir experimentos de modo a respeitar esta questão e procurar descobrir até que ponto as árvores de decisão são suficientes para detectar padrões de comportamentos de agentes e gerar, para diferentes classes de indivíduo, descrições aproximadas da sua 131

140 Josimara Silveira e Thiago Paes Detectando Padrões Comportamentais de Agentes Através de Árvores de Decisão. personalidade. O trabalho tomou como base um modelo multiagente do tipo presa-predador[5][8]. Foram escolhidos empiricamente conjuntos de parâmetros para os quais o modelo é estável, representando a manutenção das duas espécies concorrentes ao longo do tempo. 2. METODOLOGIA Foi utilizada uma simulação multiagentes de um ecossistema presa-predador, no caso lobo-ovelha. Tal simulação foi implementada a partir de uma modelo já pronto disponível na versão 4.04 do NetLogo[6]. Foi criada uma versão estendida da original, na qual foram adicionados comportamentos de fuga e busca entre os agentes, que antes se moviam aleatoriamente. A movimentação e o alcance local dos indivíduos utilizam o conceito de vizinhança de Moore, a qual consiste das células mais próximas. Existe a possibilidade de movimentação para 8 direções distintas,,correspondentes às direções Norte (N), Sul(S), Leste(L), Oeste (O), Noroeste (NO), Nordeste (NE), Sudoeste (SO), Sudeste(SE). O modelo é formado por 3 tipos de agentes: Grama, Lobos e Ovelhas. A grama morre sempre que uma ovelha a atinge. Quando isso acontece, um contador é incrementado com um valor randômico relacionado a um valor de grass-regrowthtime estipulado na simulação. Esse valor é decrementado até que zere e a grama nasça novamente naquele lugar. Cada vez que uma ovelha come grama a energia da ovelha aumenta. Os lobos interagem com as ovelhas em uma relação de predação, caçando-as (Figura 1). Quando o lobo caça uma ovelha sua energia aumenta. Para isso, o lobo percebe as ovelhas (somente as que estão a sua frente). A visão do lobo é em forma de cone com 200 graus de abertura. ifelse (ovelhas_na_volta >= 1) [ Escolhe_uma_das_ovelhas_com_200_gr aus_de_visao() if alvo!= ninguem [ Mata_ovelha() Aumenta_energia_lobo() ] Diminui_energia_lobo Atualiza_coordenadas() ] Figura 1: Pseudocódigo - Comportamento dos lobos Já as ovelhas sobrevivem fugindo dos lobos e alimentando-se de grama. A fuga das ovelhas está relacionada com a percepção ou não de lobos à sua volta. O método utilizado para fugir baseia-se em cada ovelha perceber a presença ou não de algum lobo e também a posição destes (Figura 2). Caso não existam lobos à sua volta, não há fuga e a ovelha movimenta-se aleatoriamente. Caso exista lobo, o comportamento da ovelha é delineado conforme regras de precedência. Quando em perigo, a ovelha olha primeiro para o noroeste (NO) e, caso não exista lobo, dirige-se para lá. Se existe lobo em NO, ela olha para o norte (N) e dirige-se até lá caso não haja predador, e assim por diante seguindo a ordem de procura: NO, N, NE, O, E, SO, S, SE. Tanto lobos quanto ovelhas perdem energia ao se mover. ifelse (lobos_na_vizinhanca >1) [ ifelse (lobo_em_no) = 0 [ vai_para_no ];; ifelse (lobo_em_n) = 0 [ vai_para_n ];; ifelse (lobo_em_ne) = 0 [ vai_para_ne ];; ifelse (lobo_em_o) = 0 [ vai_para_o ];; ifelse (lobo_em_e) = 0 [ vai_para_e ];; ifelse (lobo_em_so) = 0 [ vai_para_so ];; ifelse (lobo_em_s) = 0 [ vai_para_s ];; ifelse (lobo_em_se) = 0 [ vai_para_se ];; ] Anda_randomico() // sem lobo na vizinhanca ] Perde_energia() // se movimentou, perdeu energia Atualiza_coordenadas() Figura 2: Pseudocódigo - Como as ovelhas fogem? Os dados de comportamento gerados pelo ambiente NetLogo são os seguintes, para os agentes do tipo lobo : a energia de cada individuo, um vetor de nove posições que representa a existência ou não de ovelhas nos seus oito vizinhos ou junto dele, 132

141 Josimara Silveira e Thiago Paes Detectando Padrões Comportamentais de Agentes Através de Árvores de Decisão. a soma do número de ovelhas na volta, um booleano representador do fato do lobo estar vivo ou não (um lobo não estará vivo quando sua energia for igual a zero) e um booleano representador do fato do lobo ter matado ou não uma ovelha. O registro dos indivíduos do tipo ovelha contém: um inteiro representando a energia de cada indivíduo, um booleano representador do fato do indivíduo ter comido grama ou não, um vetor de oito posições que representa a presença ou não de lobos em cada uma das direções da vizinhança, um inteiro contendo a soma do número de lobos na vizinhança, um booleano representador do fato do individuo estar morrendo (quando sua energia chega a zero) ou vivendo e, que movimento o indivíduo realizou (são 9 valores possíveis, os oito espaços a sua volta ou um movimento aleatório caso não haja um lobo na vizinhança). Os registros foram tratados para servir de entrada para o software WEKA [7], versão 3.7, o qual utiliza uma coleção de algoritmos de aprendizado de máquina para realizar mineração de dados. Neste software os registros dos agentes foram classificados utilizando o algoritmo de árvore de decisão J48, o mais popular deste software, o qual é uma variante do algoritmo C4.5 [3]. 3. RESULTADOS 3.1 COMPORTAMENTO DOS AGENTES A Figura 3 apresenta a árvore de decisão que foi aprendida utilizando dados comportamentais dos agentes do tipo ovelha, a partir de simulações. Figura 3: Árvore de decisão dos indivíduos do tipo ovelha Nesta árvore percebe-se que os movimentos realizados pelos indivíduos do tipo ovelha foram, preferencialmente, o movimento aleatório e o movimento para NO. De acordo com a árvore de decisão, a ovelha irá se mover aleatoriamente em 3 ocasiões: quando não há lobo a norte ou a nordeste da posição atual da ovelha; quando não existe lobo a norte, mas há a nordeste e a energia da ovelha é maior que 5,5; ou ainda, caso exista lobo a norte, a ovelha não comeu grama e a energia dela é maior ou igual a 9,625. Também existem três comportamentos detectados pela árvore para que a decisão da ovelha seja mover para NO: quando há lobo a norte e a ovelha comeu grama; quando há lobo a norte, a ovelha não comeu, mas tem energia maior que 9,625; ou quando não há lobo a norte, mas há a nordeste e a energia é menor ou igual a 5,5. A Figura 4 apresenta a árvore de classificação indivíduos do tipo lobo. 133

142 Josimara Silveira e Thiago Paes Detectando Padrões Comportamentais de Agentes Através de Árvores de Decisão. Figura 4: Árvore de decisão dos individuos do tipo lobo Nesta Figura nota-se quando o um individuo do tipo lobo consegue matar um do tipo ovelha. Há duas formas que o lobo consegue matar a ovelha: quando há uma ovelha no centro, ou seja, ocupando a mesma posição que a sua; ou quando não há ovelha no centro, mas há uma a leste, nenhuma a noroeste e sua energia é menor ou igual a 16,5. E há três formas onde não consegue matar a ovelha: quando não há ovelha no centro ou a leste; quando não há ovelha no centro e há a leste e a noroeste; ou ainda, quando não há ovelha no centro, mas há uma a leste, nenhuma a noroeste e sua energia é maior que 16, VALIDAÇÕES DOS DADOS EXTRAÍDOS Os dados extraídos tanto sobre as ovelhas quanto sobre os lobos mostraram-se altamente competentes em representar o modelo presa-predador em questão, confirme ilustrado na Tabela 1. tipo instâncias classificadas corretamente Total % ovelha ,19% lobo ,90% Tabela 1: Eficiência das árvores de decisão como classificadores 4. DISCUSSÃO E CONCLUSÃO A classificação dos dados no WEKA mostrou que as árvores de decisão tiveram poder suficiente para capturar e explicitar comportamentos dos agentes que estavam implícitos no código. Como resultado, as técnicas utilizadas mostraram que, para o modelo em questão, o comportamento efetivo dos agentes (detectado pelas árvores) pode ser representado por um conjunto pequeno de variáveis se comparado com o comportamento programado (explícito no código) e o erro é baixo(5,1% e 5,8% para lobos e ovelhas, respectivamente). Para ambos os agentes, tendo em vista as árvores geradas, 4 é o número máximo de variáveis que precisam ser analisadas para sabermos qual a ação de cada agente. Em contrapartida, ao olhar o código referente à simulação, nos depararemos com um número consideravelmente maior de variáveis. Como trabalhos futuros, pretende-se utilizar a mesma abordagem para ambientes complexos onde os agentes são reais (humanos, por exemplo) a partir de dados de observação do comportamento destes agentes. Existem vários possíveis cenários que podem ser observados, que vão de controle de tráfego e personalidade de condutores até flutuações de mercados de investimento, como bolsas de valores. REFERÊNCIAS [1] R. Duda., P. Hart, D. Stork. PatternClassification2ed. Willey Interscience, Capítulo 8, 2002 [2] T. Mitchell Machine Learning. WCB McGraw Hill, Capítulo 3, [3] JR. Quinlan, C4.5: Programs for Machine Learning. Morgan Kaufmann Publishers, [4] L. O. Alvares, J. Sichman. Introdução aos Sistemas Multiagentes. In: Jornada de Atualização em Informática, 16.; Congresso da SBC, 17., 1997, Brasília. Anais... Brasília: SBC, p.1-38, 1997 [5] F. Hoppensteadt, "Predator-prey model", Scholarpedia, 1(10), 1563, 2006 [6] U. Wilensky. NetLogo Wolf Shee Predation model. Center for Connected Learning and Computer-Based Modeling, Northwestern University, Evanston, IL.1997 [7] M. Hall, E. Frank, G. Holmes, B. Pfahringer, P. Reutemann, I. H. Witten. The WEKA Data Mining Software: An Update; SIGKDD Explorations, Volume 11, Issue 1, 2009 [8] A. J. Lotka, Lotka on population study, ecology, and evolution. Population and Development Review, 15(3), ,

143 Simulação Baseada em Multiagentes em Atividades de Graduação Diana F. Adamatti 1 1 Centro de Ciências Computacionais Universidade Federal do Rio Grande (FURG) dianaadamatti@furg.br Abstract Este artigo apresenta um estudo de caso com alunos de graduação que foram introduzidos a área de Agentes e Simulação Baseada em Agentes, desenvolvendo experimentos com essas técnicas computacionais. Keywords: Simulação Baseada em Multiagentes, Ensino de Graduação 1. INTRODUÇÃO Os Sistemas Multiagentes (SMA) estudam o comportamento de um conjunto de agentes autônomos, eventualmente com características diferentes, evoluindo em um ambiente comum. Estes agentes podem interagir uns com os outros, com o objetivo de realizar suas tarefas de modo cooperativo, compartilhando informações, evitando conflitos e coordenando a execução de atividades [1]. Adicionalmente, a utilização da simulação como e- lemento auxiliar na tomada de decisão humana tende a ser muito eficaz, pois seu emprego permite o exame de detalhes específicos com grande precisão [9]. Da integração das tecnologias de agentes e de simulação, surgiu a área de Simulação Baseada em Multiagentes (Multi- Agent-Based Simulation (MABS)), que é especialmente útil em domínios em que a interdisciplinaridade se faz presente [6]. A área de Simulação Baseada em Agentes tem grande atividade de pesquisa na pós-graduação, inclusive contando, em diversos programas, com disciplinas específicas. Contudo, a utilização dessa técnica a nível de graduação, em cursos da área de computação, ainda é restrita. Um fato que pode explicar esse processo é que, em disciplinas da graduação ligadas a Inteligência Artificial (IA), as ementas apresentam conteúdos de grandes áreas da IA, como Redes Neurais, Algoritmos Genéticos, Lógica Fuzzy, entre outros. Desta forma, o estudo mais aprofundado de Agentes e Simulação Baseada em Multiagentes não pode ser realizado. Este artigo apresenta um estudo de caso com alunos de graduação que foram introduzidos a área de Agentes e Simulação Baseada em Agentes e realizaram experimentos de simulação em um ambiente bastante simples de utilizar, que trabalha com uma formação de regras em português estruturado, denominado SIMULA [5]. O artigo é divido em 4 seções. Na seção 2 são apresentados os conceitos de agentes, simulação e simulação baseada em multiagentes. A seção 3 apresenta o estudo de caso proposto e na seção 4 estão as conclusões encontradas pelo estudo realizado. 2. SIMULAÇÃO BASEADA EM MULTIA- GENTES Modelar um fenômeno sob a perspectiva de um SMAs pode ser realizado a partir das seguintes etapas [5]: Decompor o fenômeno em um conjunto de elementos autônomos; Modelar cada um dos elementos como um agente, definindo seu conhecimento, funções, comportamento e modos de interação; Definir o ambiente dos agentes; Definir quais agentes possuem a capacidade de ação e comunicação. 135

144 Diana F. Adamatti Trabalhando com Simulação Multiagentes em Atividades de Graduação Já os métodos de simulação são empregados com grande sucesso como elemento auxiliar na tomada de decisões, principalmente no planejamento a médio e longo prazo e em situações que envolvem custos e riscos elevados. Os modelos de simulação são muito eficazes e versáteis no estudo dos mais diferentes problemas. Seu emprego permite o exame de detalhes específicos com grande precisão [8]. Assim, a simulação baseada em computador é uma das ferramentas mais poderosas disponíveis nos dias de hoje para projetar, planejar, controlar e avaliar novas alternativas e/ou mudanças de estratégias em sistemas no mundo real. Sua utilização significa construir programas de computador (software) que representem o sistema do mundo real em questão e imitem seu funcionamento [6, 8]. A simulação pode ser dividida em três etapas [9]: Etapa da Modelagem: construir o modelo do fenômeno a ser estudado; Etapa de Experimento: aplicar variações sobre o modelo construído, alterando parâmetros que influam no processo de resolução; Etapa de Validação: comparar dados experimentais obtidos com o modelo e a realidade, permitindo a análise dos resultados obtidos. Pela Figura 1, pode-se verificar as etapas de um processo de simulação. A partir da realidade, é realizada uma modelagem do problema desejado e é construído um modelo. Para se construir este modelo, têm-se como base uma teoria. Com o modelo, realiza-se a simulação e depois a avaliação do mesmo. Para a avaliação, utilizam-se os resultados obtidos pelo modelo e as observações da realidade [4]. Figure 1. Etapas de um Processo de Simulação [4]. Da união das tecnologias de Simulação e Sistemas Multiagentes, surge a área de Simulação Baseada em Multiagentes (Multi-Agent-Based Simulatin (MABS)). Muitas aplicações em SMAs são desenvolvidas para simular alguma situação da realidade. Para tal, o fenômeno real é decomposto em um conjunto de elementos e em suas interações. Cada elemento é modelado como um agente e o modelo geral é o resultado das interações entre estes agentes. Segundo Drogoul e Ferber [4], os objetivos de MABS são: Testar hipóteses sobre a emergência de comportamentos no nível macro a partir de interações no nível micro; Construir teorias que contribuam para o entendimento de fenômenos, etológicos, sociológicos ou psico-sociais, que relacionam comportamentos a estruturas; Integrar teorias parciais de diferentes disciplinas (sociologia, psicologia cognitiva, etologia) numa mesma estrutura. Alguns aspectos importantes em MABS são [4]: É uma técnica bastante adequada para situações onde existem muitos indivíduos, com comportamentos diversos e complexos; Pode-se levar em conta tanto aspectos quantitativos como aspectos qualitativos; Programam-se os comportamentos primitivos de cada indivíduo e o comportamento global que emerge das interações entre os indivíduos é analisado, mas não pré-programado de modo direto. 3. APLICAÇÃO EM ATIVIDADES DE GRADUAÇÃO Na Universidade Federal do Rio Grande (FURG), os alunos do Curso de Engenharia de Computação estudam Inteligência Artificial no quarto ano do curso, na disciplina anual de Sistemas Inteligentes. Essa é uma disciplina em colegiado, onde cada bimestre um professor ministra a sua área de pesquisa. No quarto bimestre, os alunos estudaram agentes, envolvendo comunicação, organização, tomada de decisão e simulação. O trabalho exigido na disciplina foi em simulação baseada em agentes. A descrição proposta do trabalho foi a seguinte: 1. Escolha um problema a ser modelado; 2. Especifique os agentes e regras do problema; 3. Especifique o ambiente do problema; 4. Implemente no ambiente de simulação baseado em agentes SIMULA; 5. Elabore um relatório apresentando a evolução dos agentes durante a execução. 136

145 Diana F. Adamatti Trabalhando com Simulação Multiagentes em Atividades de Graduação A idéia foi que a descrição do trabalho fosse o mais genérica possível, dando aos estudantes a oportunidade de escolha de problemas em diversas áreas de conhecimento. As etapas 1, 2, 3 e 4 da descrição da descrição do trabalho estão diretamente relacionadas com as etapas necessárias para modelar um fenômeno sob a perspectiva de um SMAs, descrito por Frozza [5]. A solicitação de um relatório com a evolução dos agentes (etapa 5) foi a forma encontrada para que os alunos percebessem como comportamentos primitivos de cada agente podem influenciar no comportamento global, mesmo que não implementado de forma direta. O trabalho proposto está diretamente relacionado ao objetivo de "teste" de hipóteses sobre a emergência de comportamentos, citado por Drogoul e Ferber [4], visto que os alunos não construiriam teorias para o entendimento de fenômenos EXEMPLOS DE TRABALHOS IMPLEMENTADOS Os trabalhos foram realizados individualmente ou em duplas. As áreas de conhecimento escolhidas pelos alunos foram as mais diversas, como biologia, economia, fisiologia e jogos. As Figuras 2, 3 e 4 apresentam alguns dos trabalhos desenvolvidos pelos alunos. A Figura 2 apresenta como os alunos implementaram o conhecido jogo Pacman no SIMULA. Os alunos definiram os agentes Pac, Bola, Fantasma e Muro, e regras de movimentação, onde o Pac (rosto "smiles" na Figura 2) procura as Bolas (círculos pequenos em amarelo) e os Fantasmas (em verde) procuram o Pac. O agente Muro é um objeto estático, que foi utilizado para montar o ambiente do tipo labirinto (quadrados cinza). O objetivo da simulação é que o Pac "coma" todas as Bolas e não seja eliminado pelos Fantasmas. A Figura 3 apresenta a implementação da Guerra dos Impérios, que gira em torno de um castelo medieval, onde as redondezas do castelo são perturbadas por um bando de bárbaros. Os aldeões tem de tentar sobreviver fugindo dos bárbaros, ao mesmo tempo que precisam caçar para fazer seu castelo prosperar. O castelo deve gerenciar esses recursos coletados pelos aldeões para recrutar mais aldeões, ou soldados para conter a ameaça dos bárbaros. O aluno definiu os agentes Aldeão, Comida, Bárbaro, Soldados,Castelo e Grama. Existe um ciclo de sobrevivência, onde a Comida (em vermelho na Figura 3) come a Grama (em verde). Os Aldeões (em azul) caçam a Comida e fogem dos Bárbaros (em preto). Se houver recursos suficientes no Castelo (em preto, no canto superior esquerdo), Soldados serão chamados para auxiliar na defesa. O sistema estará em estabilidade se os Soldados conseguirem eliminar os Bárbaros e o número de Comidas for suficiente para os Aldeões sobreviverem. Figure 3. Exemplo de simulação: Guerra dos Impérios Figure 2. Exemplo de simulação: Pacman A Figura 4 apresenta a implementação do Funcionamento do Sistema Imunológico Humano quando atacado por um vírus. Os alunos definiram os agentes Célula- Boa, CélulaInfectada, Vírus e Anticorpo. A simulação inicia com uma quantidade grande de CélulasBoas (círculos com contorno preto na Figura 4), uma quantidade baixa de Vírus (em verde) e uma quantidade muito baixa de Anticorpos (em azul). Os Vírus, quando encontram CélulasBoas, as atacam e estas tornam-se CélulasInfectadas (círculos com contorno em vermelho). Contudo, a prioridade de um Vírus é fugir dos Anticorpos. Os Anticorpos, quando percebem que o número de CélulasInfectadas cresce, se reproduzem e tentam matar os Vírus. Os Anticorpos tentam recurperar as CélulasInfectadas, para 137

146 Diana F. Adamatti Trabalhando com Simulação Multiagentes em Atividades de Graduação reestabelecer a estabilidade do sistema, ou seja, acabar com os Vírus. comunicação. Sua grande vantagem é a implementação em Java, permitindo utilização em diferentes Sistemas O- peracionais. Para as atividades de graduação propostas, onde os alunos foram introduzidos a área de agentes, SIMULA correspondeu amplamente aos objetivos propostos. Para execução dos trabalhos, os alunos foram instigados a estudar e pensar "como" os problemas escolhidos funcionavam, de forma a realizar a modelagem e posteriormente a implementação das simulações. Interessante perceber que todas as escol has de problemas foram de áreas não-exatas, como fisiologia, biologia e jogos, fazendo com a multidisciplinariedade fosse colocada em prática. Assim, do ponto de vista didático, os resultados do trabalho proposto foram completamente positivos, pois os alunos aprenderam uma nova técnica computacional e a aplicaram de maneira efetiva. Figure 4. Exemplo de simulação: Funcionamento do Sistema Imunológico Além dos três exemplos apresentados acima, outros trabalhos muito interessantes foram implementados, como: Simulação da difusão da Doença da Dengue, onde foi apresentado com os mosquitos se reproduzem, mostrando as etapas de ovo e larva, e atacam as pessoas, infectando-as; Simulação de uma situação de guerra entre dois exércitos, onde estratégias diferentes foram criadas, e dependendo da configuração de cada exército, uma delas pode ser melhor que a outra; Simulação do jogo do Detetive, onde o Assassino pode estar disfarçado no meio das pessoas, e não ser descoberto. 4. CONCLUSÕES A Simulação Baseada em Multiagentes é uma área extremamente multidisciplinar, podendo ser aplicada a diversos domínios. A utilização de uma ferramenta de simulação baseada em agentes torna o processo de aprendizagem facilitado nesta área. Existem diversas ferramentas disponíveis, como Cormas [2], SWARM [3], Madkit [7]. A escolha da ferramenta SIMULA [5] deve-se ao fato de ser extremamente simples de utilizar. Ela também possui diversas restrições, como quantidade de agentes, tamanho do ambiente (grid) e definição de regras de movimentação (rotinas pré-definidas). Essa ferramenta trabalha apenas com agentes reativos e não tem suporte a Agradecimentos Gostaria de agradecer aos alunos do 4o. ano de Engenharia de Computação da FURG, que realizaram os trabalhos apresentados nesse artigo, no escopo da disciplina de Sistemas Inteligentes (2009). REFERENCES [1] L. O. C. Alvares and J. S Sichman. Introdução aos sistemas multiagentes. In Jornada De Atualização Em Informática, pages 1 37, Brasília - UnB, Sociedade Brasileira de Computacão. [2] Cormas. Natural resources and multi-agent simulations, [3] M. Daniels. The swarm simulation system - a tool for studying complex systems, < [4] A. Drogoul and J. Ferber. Multi-agent simulation as a tool for modeling societies: Application to social differentiation in ant colonies. In Proceedings of MAAMAW 92, Viterbo, Elsevier North-Holland. [5] R. Frozza. SIMULA: Ambiente para desenvolvimento de sistemas multiagentes reativos. Master s thesis, UFRGS, Universidade Federal do Rio Grande do Sul - Brasil, Rio Grande do Sul, Brasil, [6] N. Gilbert and K. G. Troitzsch. Simulation for the Social Scientist. Buckingham and Philadelphi: Open University Press, London, [7] O. Gutknecht and J. Ferber. The madkit project: a multiagent development kit, < [8] M. T. Rebonatto. Um estudo sobre simulação paralela. Master s thesis, Instituto de Informática, UFRGS, Porto Alegre, Mestrado em Ciência da Computação. [9] J. Strack. GPSS: modelagem e simulação de sistemas. LTC, Rio de Janeiro, p. 138

147 Especificando Rotinas Organizacionais de Sistemas Multiagentes: Detecção de Desvios com Base no Conceito de Expectativa C.E.O. Silva 1, G.P. Dimuro 1,2, A.C.R. Costa 1,2 1 Programa de Pós-Graduação em Modelagem Computacional 2 Centro de Ciências Computacionais Universidade Federal do Rio Grande Av. Itália km 08, Campus Carreiros Rio Grande - RS - BRAZIL caduolisilva@bol.com.br, {gracaliz ac.rocha.costa }@gmail.com Abstract This work considers the formal notion of objective expectations, behavioral, centered in objective effects of the actions executed by the agents, at a certain moment, in the context of some organizational routine of a multiagent system. The aim of this work is to develop a methodology for the specification and property verification of organizational routines, based on Petri Nets and on the process representation language CSP, formalizing the concept of deviations in routines of multiagent systems. We also will develop a case study of the modeling of the family behaviors in a domestic environment, for the analysis of the pattern of electric energy consume. Keywords: Expectations, organizational routines, multiagent systems, organization of multiagent systems 1. INTRODUÇÃO Em geral, existem diferentes formas de considerar a noção de expectativa em sistemas multiagentes. Por exemplo, uma abordagem mentalista, ou cognitivista, define uma expectativa como um conjunto complexo 139 de elementos cognitivos (uma combinação de objetivos, crenças, etc.) [1]. Este tipo de abordagem subjetivista pode também tomar a forma adotada em [14, 15, 16], e também sugerida brevemente em [1], que associa à expectativa uma combinação de valores de probabilidade e valores de utilidade, atribuídas aos resultados possíveis das ações (utilizando a noção de valores de utilidade esperados subjetivos [18]). Veja também os trabalhos em [4, 5, 6]. Um aspecto crucial dos dois trabalhos mencionados no parágrafo anterior é que a expectativa de um agente está relacionada a uma situação momentânea no sistema. Isto é, está relacionada a uma situação que é artificialmente isolada de todo comportamento do agente, e da o- peração continuada do sistema. O agente é considerado como tendo um objetivo e executando uma ação em um dado instante (ou acreditando que um dado evento vai acontecer, ajudando o agente a atingir o objetivo), e todas as formas passadas e futuras com as quais o agente participa no sistema não são consideradas. Assim, expectativas sobre as interações futuras do agente não podem ser adequadamente estudadas em tais contextos.

148 C.E.O. Silva et al. Especificando Rotinas Organizacionais de SMA Entretanto, a maioria dos sistemas de agentes, incluindo os humanos, é considerada importante por causa de seus funcionamento contínuo ao longo do tempo e, em particular, por causa de seu funcionamento repetitivo, periódico; isto é, suas rotinas. Rotinas já vem sido reconhecidas como uma característica essencial da dinâmica operacional de sistemas sociais (conforme, p.ex., Giddens em [10]), e a mesma idéia parece se aplicar para sistemas multiagentes. Aqui, o funcionamento visa o contínuo monitoramento e/ou controle de algum sistema alvo, ou o serviço continuado para os seus usuários. [2] Um exemplo da importância de rotinas periódicas e padrões esperados de comportamento no gerenciamento da eletricidade em situações domésticas pode ser analisado em [9, 19]. Também, a modelagem de expectativas parece ser promissora para a idéia de desenvolver assistentes pessoais para dar suporte ao usuário humano em suas atividades do dia a dia. [7, 8] Este resumo descreve a proposta de uma dissertação de mestrado, cujo objetivo geral é desenvolver uma metodologia para especificação e verificação de propriedades de rotinas organizacionais e formalizar o conceito de desvios em rotinas de sistemas multiagentes, como base na formalização do conceito de expectativa em rotinas de sistemas multiagentes introduzido em [3]. O trabalho está organizado como descrito a seguir. Na Seção 2, discute-se brevemente o trabalho desenvolvido em [3], que fundamenta esta proposta. A proposta deste trabalho é introduzida em 4. As considerações finais estão na Seção UMA NOÇÃO FORMAL DE EXPECTA- TIVAS OBJETIVAS NO CONTEXTO DE ROTI- NAS DE SISTEMAS MULTIAGENTES Em [3], foi desenvolvido um ponto de vista complementar para essa questão das expectativas em rotinas organizacionais. Foi apresentada uma formalização conjunto-teorética de uma noção de expectativa objetiva, comportamental, centrada em torno dos efeitos objetivos das ações executadas pelos agentes, em um dado momento, dentro do contexto de alguma rotina do sistema. Em particular, foram introduzidos dois aspectos novos relacionados a expectativas de agentes. A noção de expectativa foi estendida tal que, no contexto de rotinas organizacionais de sistemas, ela pode ser aplicada não somente aos fatos resultantes da execução das ações dos agentes ou de eventos do ambiente, mas também às próprias ações e eventos. Assim, expectativas objetivas de ações e eventos foram consideradas como as fundamentais, mostrando que expectativas objetivas de fatos podem e devem ser derivadas daquelas. Para tanto, foi formalizado o conceito de rotinas organizacionais de sistemas, onde as duas noções de expectativas objetivas foram definidas. Observa-se também que essa abordagem deve ficar o mais próxima possível da abordagem para expectativas que considera os valores de utilidade esperada subjetivos, citados na seção anterior. Entretanto, valores de utilidade, como tais, não podem ser considerados, de modo produtivo, em conexão com ações e fatos que acontecem em rotinas de sistemas. Isto porque rotinas são usualmente adotadas em um sistema somente quando todas as ações são claramente úteis para as rotinas em que elas ocorrem. Isto é, ações menos úteis tendem a ser substituídas por ações mais adaptadas, e, portanto, mais úteis, às rotinas e ao funcionamento do sistema como um todo. Se uma ação é incluída em uma rotina organizacional, ou se um fato é considerado para uma rotina operar propriamente, fica claro que esta ação, ou este fato, certamente tem uma utilidade para a rotina, e não há porque tentar quantificar tal valor. Portanto, para que a utilidade esperada objetiva de um ação (ou fato ou evento) pudesse se aproximar do modelo de utilidade esperada subjetiva, em [3] os componentes subjetivos foram substituídos pelos componentes objetivos. Principalmente, as probabilidades subjetivas e os valores de utilidade que essencialmente constituem valores de utilidade esperada subjetivos foram substituídos pelas probabilidades objetivas e pelos graus objetivos de perfeição da realização de ações, fatos e eventos. A formalização introduzida em [3] aponta para a utilização de rotinas organizacionais e expectativas para análise da simulação multiagente do funcionamento de diversos sistemas práticos, tais como o controle de energia em ambientes domésticos (como citado na seção anterior), o sistema de produção de uma fábrica, a logística de transporte de cargas, etc., no sentido de detectar acontecimentos fora do padrão esperado (desvios nas rotinas, falhas nas expectativas correntes), de forma a possibilitar a antecipação da ocorrência de ações, fatos ou eventos inesperados no futuro, assim como o ajuste momentâneo ou permanente nas rotinas do sistema. 3. EXEMPLOS DE APLICAÇÃO Um exemplo contextualizado que ilustra como as redes de Petri poderiam auxiliar na modelagem de rotinas pode ser encontrado em [3]. O exemplo trata da rotina de um porteiro (agente a) que tem a função de abrir e fechar a porta da frente de um edifício, para garantir o bom funcionamento do ar condicionado, e uma pessoa (agente b) que precisa entrar no prédio para chegar ao escritório onde 140

149 C.E.O. Silva et al. Especificando Rotinas Organizacionais de SMA trabalha todos os dias, que aqui chama-se de funcionário. O porteiro, ao perceber a pessoa que trabalha no escritório entra em cena, geralmente realiza a ação de abrir a porta e, depois que este passa completamente pela porta, ele realiza a ação de fechar a porta. Porém, essas ações estão condicionadas às ações do funcionário do escritório, que podem ser, por exemplo, as seguintes: entrar normalmente pela porta (ação habitual, esperada pelo porteiro), ou, antes de entrar no edifício, parar para falar com alguém que está passando ou atender ao telefone celular. Ao realizar qualquer uma das duas últimas ações, o funcionário do escritório se desvia da rotina, surpreendendo as expectativas do porteiro, o qual não deve deixar a porta aberta por um tempo maior que o da passagem de uma pessoa. Outra situação que pode ser considerada neste cenário, é o funcionário encontrar a porta semi-aberta ou mesmo emperrada, o que configura que a ação de abrir a porta por parte do porteiro não foi bem sucedida, por fatores diversos, causando outro tipo de desvio na rotina ao frustrar a expectativa do funcionário de entrar rapidamente no prédio. Esse trabalho visa estudar, em particular, as rotinas que se estabelecem no ambiente familiar, visando analisar o consumo de energia. Podemos ter nesse ambiente familiar, diversas situações que podem aumentar ou diminuir o consumo de energia, dependendo dos desvios que podem ocorrer nessas rotinas. análise das falhas em expectativas em rotinas de sistemas, tais como, p.ex., falha na expectativa por ação mal sucedida, ou falha na expectativa por ocorrência de eventos não esperados; (v) Desenvolver um estudo de caso na modelagem de comportamentos de uma família no ambiente doméstico, para análise do padrão de consumo de energia elétrica. 5. CONSIDERAÇÕES FINAIS Com a realização deste trabalho, cria-se a possibilidade de uma sistematização na análise de rotinas organizacionais, com a possibilidade de detecção de desvios nessas rotinas, o que possibilitará, no caso do estudo de caso, auxílio ao controle de energia em ambientes domésticos. A detecção de desvios nas rotinas ou falhas nas expectativas correntes podem auxiliar na antecipação da ocorrência de ações, fatos ou eventos inesperados no futuro. Isso possibilitará a elaboração de alternativas para o ajuste momentâneo ou permanente nas rotinas do sistema. Embora o estudo de caso seja bastante específico, a abordagem é geral, e poderá ser utilizada em diversas outras aplicações caracterizadas por atividades rotineiras, tais como o sistema de produção de uma fábrica, a logística de transporte de cargas, etc. 4. A PROPOSTA DESTE TRABALHO O objetivo deste trabalho é desenvolver uma metodologia para especificação e verificação de propriedades de rotinas organizacionais e formalizar o conceito de desvios em rotinas de sistemas multiagentes. Mais especificamente, tem-se as seguintes metas: (i) Desenvolver um método para especificação de rotinas utilizando Redes de Petri [12, 13] e a verificação de suas propriedades utilizando o simulador CPN Tools ( (ii) Desenvolver um método para especificação de rotinas com base na linguagens de representação de processos CSP [11, 17] e a verificação de suas propriedades utilizando o analisador de modelos FDR2 ( (iii) Comparar as duas abordagens e determinar os modos preferenciais de utilização nas aplicações pretendidas; (iv) Formalizar o conceito de desvios em rotinas organizacionais, que possam ser detectados através da 141 Agradecimentos Este trabalho é parcialmente financiado pelo CNPq (Proc /07-0, /07-9, /09-5, /07-4), e dá continuidade ao trabalho de pesquisa realizado quando A.C.R. Costa esteve como professor visitante na Université Joseph Fourrier, e G.P. Dimuro foi pesquisadora convidada no Laboratoire d Informatique de Grenoble LIG, junto ao MAGMA Group, coordenador por Y. Demazeau, em Janeiro e Fevereiro de Os autores agradecem aos revisores anônimos e também a J. Dugdale (LIG) pelas valiosas sugestões. REFERENCES [1] C. Castelfranchi. Mind as an anticipatory device: For a theory of expectations. In Massimo De Gregorio, Vito Di Maio, Maria Frucci, and Carlo Musio, editors, Brain, Vision, and Artificial Intelligence, Proc. of 1rst Intl. Symp., Naples, 2005, number 3704 in LNCS, pages Springer, [2] A. C. R. Costa and G. P. Dimuro. A minimal dynamical organization model. In V. Dignum, editor,

150 C.E.O. Silva et al. Especificando Rotinas Organizacionais de SMA Handbook of Research on Multi-Agent Systems: Semantics and Dynamics of Organizational Models, pages IGI Global, Hershey, [3] A. C. R. Costa, G. P. Dimuro, and Y. Dugdale, J.and Demazeau. A formal notion of objective expectations in the context of multiagent systems routines. In New Trends In Artificial Intelligence, Proc. of the 14th Portuguese Conference on Artificial Intelligence, EPIA 2009, Track on Multi-Agent Systems: Theory and Applications, MASTA 2009, pages , Aveiro, Universidade do Aveiro. [4] S. Cranefield. A rule language for modelling and monitoring social expectations in multi-agent systems. In Olivier Boissier, Julian Padget, Virginia Dignum, Gabriela Lindemann, Eric Matson, Sascha Ossowski, Jaime Simão Sichman, and Javier Vázquez-Salceda, editors, Coordination, Organizations, Institutions and Norms in Agent Systems, number 3913 in LNAI, pages Springer, [5] S. Cranefield. Modelling and monitoring social expectations in multi-agent systems. In Pablo Noriega Javier Vázquez-Salceda, Guido Boella, Olivier Boissier Virginia Dignum, Nicoletta Fornara, and Eric Matson, editors, Coordination, Organizations, Institutions and Norms in Agent Systems II, number 4386 in LNAI, pages Springer, [6] S. Cranefield and Michael Winikoff. Verifying social expectations by model checking truncated paths. In Jomi Fred Hübner, Eric Matson, Olivier Boissier, and Virginia Dignum, editors, Coordination, Organizations, Institutions and Norms in Agent Systems IV, number 5428 in LNAI, pages Springer, [7] L. Crépin, Y. Demazeau, O. Boissier, and F. Jacquenet. Privacy preservation in a decentralized calendar system. In Yves Demazeau and et al., editors, 7th Intl. Conf. on Practical Aspects of Agents and Multi-agent Systems (PAAMS 2009), number 55 in Advances in Soft Computing, pages Springer, Berlin, [8] L. Crépin, Y. Demazeau, O. Boissier, and F. Jacquenet. Privacy preservation in a decentralized calendar system. In Yves Demazeau, Juan Pavón, Juan M. Corchado, and Javier Bajo, editors, 7th Intl. Conf. on Practical Aspects of Agents and Multiagent Systems (PAAMS 2009), number 55 in Advances in Soft Computing, pages Springer, Berlin, [9] J. Dugdale and P. Salembier. Modélisation située des activités individuelles et collectives pour la conception. Rapport de contrat de collaboration EDF- IRIT/NEB, Institute de Recherche en Informatique de Toulouse, Toulouse, [10] A. Giddens. The Constitution of Society: Outline of the Theory of Structuration. Polity Press, Cambridge, [11] C. A. R. Hoare. Communicating Sequential Processes. Prentice Hall, Englewood Cliffs, [12] K. Jensen. A brief introduction to coloured petri nets. In E. Brinksma, editor, Tools and Algorithms for the Construction and Analysis of Systems, LNCS, pages Springer-Verlag, Berlin, [13] K. Jensen, L. M. Kristensen, and L. Wells. Coloured petri nets and cpn tools for modelling and validation of concurrent systems. International Journal on Software Tools for Technology Transfer, 9: , [14] M. Piunti, C. Castelfranchi, and R. Falcone. Expectations driven approach for situated, goal-directed agents. In Matteo Baldoni, Antonio Boccalatte, Flavio De Paoli, Maurizio Martelli, and Viviana Mascardi, editors, Proc. of WOA 2007/8th AI*IA/TABOO Joint Workshop "From Objects to Agents": Agents and Industry: Technological Applications of Software Agents, 2007, Genova, pages Seneca Edizioni Torino, [15] M. Piunti, C. Castelfranchi, and R. Falcone. Expectations driven approach for situated, goal-directed agents. In Matteo Baldoni and et al., editors, Proc. of 8th AI*IA/TABOO Joint Work. "From Objects to Agents": Agents and Industry, pages , Genova, Seneca Edizioni Torino. [16] M. Piunti, J. Goncalves, and C. Martinho. Modeling expectations for affective agents. In Proceedings of the ACII-07 Doctoral Consortium, [17] A. W. Roscoe. The Theory and Practice of Concurrency. Prentice Hall, Englewood Cliffs, [18] L. J. Savage. The Foundations of Statistics. Wiley, New York, [19] M. Vantieghem, U. Görkem Ketenci, J. Dugdale, and Y. Deamazeau. Modélisation socio-cognitive des attentes par système multi-agents dans le milieu domestique. Stage de master 2 en sciences cognitives , Laboratoire d Informatique de Grenoble, Grenoble,

151 Estendendo o Modelo de Organização de Sistemas Multiagentes PopOrg com Unidades Organizacionais Recursivas Simone Escouto da Rosa 1, Graçaliz Pereira Dimuro 1,2 & Antônio Carlos da Rocha Costa 1,2 1 Programa de Pós-Graduação em Modelagem Computacional - PPGMC 2 Centro de Ciências Computacionais - C3 Universidade Federal do Rio Grande - FURG Av. Itália km 08, Campus Carreiros Rio Grande - RS - BRAZIL monnipel@yahoo.com.br,{gracaliz ac.rocha.costa }@gmail.com Abstract This work presents a proposal of a recursive approach for the definition of the concept of organizational unities (or, more generally, social systems) in the macrolevel structure of the multiagent system organizational model called PopOrg (Population-Organization Model). The implementation relations of the micro- and macrolevel structures of the PopOrg Model will be also studied recursively in this approach. A visual language, based on diagrams, will be developed to allow the graphical representation of the elements of the model, like the population, the micro- and macro-level structures, the implementation relations, and also the relationships between the organization unities in the macro-level structure. Keywords: PopOrg Model, MAS Organizational Models, Social Systems, Organizational Unities, Social Exchanges 1. INTRODUÇÃO: O MODELO POPORG O PopOrg (Population-Organization Model) [2, 3, 5] é um modelo organizacional de Sistema Multiagente que consiste de uma descrição conjunto-teorética da estrutura mínima de uma organização de Sistemas Multiagentes. Este modelo é centrado na explicação da estrutura dinâmica da organização de Sistema Multiagente. 143 No modelo PopOrg, as interações entre agentes (ou entre grupos de agentes, papéis ou grupo de papéis), são descritas como processos trocas sociais entre pares de agentes (ou pares de grupos de agentes, papéis ou grupo de papéis), segundo a Teoria das Trocas Sociais de Piaget [11]. Trocas sociais podem ser entendidas como trocas de serviços entre os agentes, com a avaliação destes serviços por partes dos agentes. O modelo PopOrg model apresenta duas camadas: a camada da população e a camada da estrutura da organização de um sistema multiagente. A primeira camada é a da população de um sistema multiagente, que é formada pelos seus agentes, seus comportamentos, e suas interações, que são modeladas como processos de trocas sociais entre agentes. A segunda camada é a camada da organização em si, que se divide em dois níveis, o nível da micro-estrutura e o nível da macro-estrutura. No nível da micro-estrutura, estão os papéis que podem ser assumidos pelos agentes, os comportamentos de papéis, e as ligações que podem ser estabelecidas entre papéis. Os papéis são definidos como conjuntos de comportamentos que os agentes que assumem tais papéis devem executar na organização. As ligações entre papéis são descritas em termos das

152 S.E. Rosa, G.P. Dimuro e A.C.R. Costa PopOrg com Unidades Organizacionais trocas sociais estabelecidas pelos agentes que assumem tais papéis. Existe ainda uma relação de implementação, que define como um papel pode ser implementado por um ou mais agentes, e como os agentes podem implementar um ou mais papéis. A dinâmica da organização no nível micro é descrita em termos de, por exemplo, criação e remoção de papéis e ligações entre papéis, ou a entrada e saída de agentes, ou a criação e a eliminação de interações entre os agentes. As causas dessas modificações podem ser subjetivas, tais como a avaliação das trocas sociais realizadas pelos agentes. Por exemplo, avaliações ruins, por parte de um agente, com relação às trocas continuadas realizadas com um outro agente, pode levar que a ligação entre os papéis assumidos por esses agentes venha a desaparecer na camada da micro-estrutura da organização. Em geral, esta análise se reduz ao problema de analisar o equilíbrio e/ou estabilidade desejada entre essas interações. A macro-estrutura de uma organização de sistema multiagente é formada por grupos ou conjuntos de papéis e ligações entre esses grupos, tal como definido em [4]. Entretanto, observa-se que a definição de grupo social, tal como introduzido em [4], não explora a característica recursiva da noção de grupo, tal como um grupo composto por grupos mais simples ou a composição de grupos mais simples. A proposta deste trabalho é explorar a característica recursiva da noção de grupos de papéis em termos de unidades organizacionais. Este trabalho resumido está organizado conforme descrito a seguir. Na Seção 2, apresenta-se uma breve descrição de trabalhos sobre agentes e organização de sistemas multiagentes existentes na literatura. Na Seção 3, discutem-se brevemente os principais conceitos relacionados à Teoria das Trocas Sociais em que se baseia a noção de interação do modelo PopOrg. Na Seção 4, explica-se o objetivo desta proposta de trabalho. A Seção 5 traz as considerações finais. 2. MODELOS DE ORGANIZAÇÃO DE SIS- TEMAS MULTIGANTES Um agente é uma entidade ativa imersa em um ambiente real ou virtual, que é capaz de agir, de se comunicar e trocar informações com outros agentes. Os agentes são autônomos, sua existência independe da existência de outros agentes. Caracterizam-se por sua autonomia de decisão, autonomia de execução, capacidade de aprender e raciocínio. O agente pratica ações no ambiente para alcançar seus reais objetivos. Os agentes interagem entre si em um sistema multiagentes [12]. Os Sistemas Multiagntes têm como objetivo principal (estudar ou observar) as diversas interações entre os agentes e suas mudanças de comportamentos na resolução de problemas específicos quando apresentados ao ambiente. Uma organização de Sistemas Multiagentes define um modelo que especifica as relações entre seus componentes e a maneira como eles interagem para chegarem ao mesmo propósito. [6, 7] A organização impõe restrições sobre os possíveis comportamentos dos agentes no sistema, de maneira que estes comportamentos contribuam com a execução dos objetivos do sistema. Um sistema multiagente deve ser organizado de maneira que atenda os requisitos fundamentais necessários para que o sistema se comporte de maneira coerente e efetiva. Em geral, diz-se que a organização é formada por um conjunto de agentes que: desempenham papéis, uns para os outros; possuem compromissos mútuos e globais; compartilham de crenças comuns; realizam intenções conjuntas, no sentido de atingir um mesmo objetivo; utilizam-se de um mecanismo de interação para se relacionarem. São exemplos de modelos organizacionais: AALAADIN, GAIA, TOVE, TÆMS e MOISE+. [6, 7, 9, 10, 13, 14] O PopOrg, introduzido primeiramente em [1, 8], é, assim, um modelo formal de organização de sistemas multiagentes considerado minimal, pois inclui os conceitos mínimos para modelar uma organização de agentes, sendo que a noção de interação é entendida com um processo de trocas sociais. [2, 3, 5] 3. PROCESSOS DE TROCAS SOCIAIS No PopOrG, as interações são descritas como processos de trocas sociais, segundo Piaget [11]. De acordo com Piaget, as trocas sociais podem ser entendidas como trocas de serviços entre os indivíduos, envolvendo o favorecimento dos outros e também a avaliação destes serviços. Valores de troca são os valores com os quais os agentes avaliam as trocas sociais que eles realizam entre si. Essas trocas visam um objetivo relacionado ao indivíduo, e compreendem ganhos e perdas, emoções, investimentos, expectativas entre outros elementos. Um serviço representa uma ação efetuada por um indivíduo que pode ser entendida como uma ação intencional e dirigida em direção a outro indivíduo, com isso permitindo uma avaliação que poderá ser benéfica ou prejudicial. As trocas foram denominadas, por Piaget, de trocas imediatas e trocas postergadas. Nas imediatas, ocorrem 144

153 S.E. Rosa, G.P. Dimuro e A.C.R. Costa PopOrg com Unidades Organizacionais trocas de serviço entre os indivíduos e a cada serviço executado é realizada uma avaliação, fazendo com que cada indivíduo possa regular a quantidade e a qualidade do serviço executado. Dentro das trocas imediatas existem dois tipos de valores que são o investimento, valor necessário para a execução de um serviço, e a satisfação que é expressa pelo indivíduo que recebe o serviço. A essas ações concretas denominamos valores reais ou materiais. As trocas postergadas dão origem aos valores de trocas virtuais, serviços que ainda não foram realizados. Estes valores virtuais são chamados de crédito e débito. Durante o processo de troca entre os agentes os valores virtuais não são expressos explicitamente, ficando guardados na memória dos agentes, podendo representar algum sentimento como emoção, gratidão, etc. Os valores virtuais são, assim, responsáveis pela continuidade do processo de trocas no futuro. 4. A PROPOSTA DESTE TRABALHO O objetivo geral deste trabalho é desenvolver uma extensão do modelo PopOrg para incluir unidades organizacionais (ou, mais geralmente, sistemas sociais) na macro estrutura, definidas de forma recursiva. O conceito de unidade organizacional está no nível macro da camada de organização. A definição formal deverá ter uma natureza recursiva, onde, a partir de unidades básicas formadas por conjuntos básicos de papeis e segundo alguma uma regra de construção a ser estabelecida, sejam formadas novas unidades organizacionais. Os comportamentos de unidades organizacionais devem ser definidos como funções compostas sobre os comportamentos dos papeis que compõem a unidade, assim como os processos de trocas intra e entre unidades. Esses comportamentos serão descritos em termos de ações que possam ou não ter visibilidade externa às unidades. Desta forma, alguns comportamentos só terão visibilidade interna. No processo de recursão, comportamentos com visibilidade externa em sub-unidades, poderão ter somente visibilidade interna na estrutura maior que englobar essas unidades. A relação de implementação deverá estabelecer em que condições unidades organizacionais são bem implementadas por papéis, que por sua vez são implementados por agentes da população. Em cada etapa de definição, serão estabelecidas as propriedades e proposições, que deverão ser provadas, e aquela proposição que melhor caracterizar o funcionamento de uma unidade em relação à sua implementação será estabelecida como o Teorema Principal das unidades organizacionais. 145 Uma linguagem visual será definida para representar, com auxílio de diagramas, os elementos do modelo, tais como a população, as estruturas de nível micro e macro, as relações de implementação, e também os relacionamentos entre as unidades organizacionais na estruturas de nível macro. Após cada etapa de definição, serão construídos exemplos com a linguagem desenvolvida. Por fim, será realizado um estudo de caso. 5. CONSIDERAÇÕES FINAIS Este artigo descreveu uma proposta de dissertação de mestrado, que pretende, através da extensão do modelo PopOrg com unidades organizacionais definidas recursivamente, conferir ao modelo a possibilidade de utilização em modelagens concretas. Para tanto, a linguagem visual deverá auxiliar no estudo das propriedades do modelo, quando aplicado a esses estudos de caso concretos. Agradecimentos Este trabalho é parcialmente financiado pela FAPERGS e pelo CNPq (Proc /07-0, /07-9, /09-5, /07-4). Os autores agradecem aos revisores anônimos pelas valiosas sugestões. Referências [1] A. C. R. Costa and Y. Demazeau. Toward a formal model of multi-agent systems with dynamic organizations. In Proc. of ICMAS 96 2nd. Int l Conf. on Mutiagent Systems, page 431, Kyoto, IEEE. [2] A.C.R. Costa and G.P. Dimuro. A basis for an exchange value-based operational notion of morality for multiagent systems. In J. Neves, M. Santos, and J. Machado, editors, Progress in Artificial Intelligence, 13th Portuguese Conf. on Artificial Intelligence, EPIA 2007, number 4874 in LNAI, pages Springer, Berlin, [3] A.C.R. Costa and G.P. Dimuro. Semantical concepts for a formal structural dynamics of situated multiagent systems. In J. Sichman, P. Noriega, J. Padget, and S. Ossowski, editors, Coordination, Organizations, Institutions, and Norms in Agent Systems III, number 4870 in LNAI, pages Springer, Berlin, [4] A.C.R. Costa and G.P. Dimuro. Introducing social groups and group exchanges in the PopOrg model.

154 S.E. Rosa, G.P. Dimuro e A.C.R. Costa PopOrg com Unidades Organizacionais In Proceedings of AAMAS 2009, volume 1, pages , Budapest, IFAAMAS. [5] A.C.R. Costa and G.P. Dimuro. A minimal dynamical MAS organization model. In Virginia Dignum, editor, Multi-Agent Systems: Semantics and Dynamics of Organizational Models. IGI Global, Hershey, [6] L. Coutinho, J. S. Sichman, and O. Boissier. Modeling organization in MAS: A comparison of models. In Proc. of the First Workshop on Software Engineering for Agent-oriented Systems, pages 1 10, Uberlândia, IFAMAS. [7] L. Coutinho, J. S. Sichman, and O. Boissier. Modeling dimensions for multi-agent systems organizations. In Proc. of IJCAI-07 Workshop on Agent Organizations: Models and Simulations (AOMS 07), pages 25 36, Hyderabad, IFAMAS. [8] Y. Demazeau and A.C.R. Costa. Populations and organizations in open multi-agent systems. In 1st National Symposium on Parallel and Distributed Aartificial Intelligence (PDAI 96), Hyderabad, India, [9] V. Dignum, editor. Multi-Agent Systems - Semantics and Dynamics of Organizational Models. IGI Global, Hershey, [10] Jomi F. Hübner, O. Boissier, and J. S. Sichman. Programming MAS reorganisation with MOISE+. In J. Meyer, M. Dastani, and R. Bordini, editors, Foundations and Practice of Programming MAS, number in Dagstuhl Seminars Proc., Dagstuhl, IFBI. [11] J. Piaget. Sociological Studies. Routlege, London, [12] M. Wooldridge. An Introduction to MultiAgent Systems. Wiley, Chichester, [13] M. Wooldridge, N. R. Jennings, and D. Kinny. The GAIA methodology for agent-oriented analysis and design. Autonomous Agents and Multi-Agent Systems, 3(3): , [14] F. Zambonelli, N. R. Jennings, and M. Wooldridge. Developing multiagent systems: The GAIA methodology. ACM Transactions on Software Engineering and Methodology, 12(3): ,

155 Um Modelo Híbrido de Agente BDI Fuzzy Giovani Parente Farias 1, Graçaliz Pereira Dimuro 1,2 & Antônio Carlos da Rocha Costa 1,2 1 Mestrado em Modelagem Computacional 2 Centro de Ciências Computacionais Universidade Federal do Rio Grande Av. Itália km 8, Campus Carreiros Rio Grande - RS - BRASIL {giovanifarias gracaliz ac.rocha.costa}@gmail.com Abstract This work describes the proposal of the development of a hybrid Fuzzy-BDI agent model, in order to allow the agent to deal more appropriately with the uncertainties of the environment, desires, intentions and agent plans, resulting in more efficient and safer applications. The implementation will be carried out using the Jason agent platform. 1. INTRODUÇÃO A área de Sistemas Multiagentes (SMA) [27, 29] estuda o comportamento de um grupo de agentes que cooperam para resolver um problema que normalmente um único agente não seria capaz de resolver. Agentes são entidades imersas em ambientes virtuais onde, a partir de sistemas computacionais complexos e técnicas da Inteligência Artificial [23], interagem com outros agentes e com o próprio meio, possuindo capacidade de perceber alterações, agir de acordo com regras pré-definidas ou criadas a partir dessas percepções, comunicar-se e interagir, explicitar e representar entidades, objetos e grandezas físicas com personalidade e autonomia, raciocinar, deliberar e tomar decisão, além de apresentar uma capacidade para aprender. Como uma entidade, agentes usam a comunicação como mecanismos de troca de informações com o ambiente e entre os próprios agentes. Essa troca, intencional, ocorre a partir de mudanças percebidas no ambiente, realimentando o estado e a capacidade de um agente, em específico no modelo BDI [28, 29]. 147 A arquitetura BDI (Belief, Desire and Intention) consiste de um modelo de agentes baseados em crenças, desejos e intenções, e têm sua origem na teoria de raciocínio prático humano. As idéias básicas da abordagem BDI são descrever o processamento interno do estado de um agente utilizando um conjunto de categorias mentais (crença, desejo e intenções) e definir uma arquitetura de controle através da qual o agente seleciona racionalmente o curso de suas ações. A linguagem AgentSpeak [4], inspirada na arquitetura BDI, é uma extensão do paradigma de programação em lógica, tendo sido a abordagem predominante na implementação de agentes inteligentes ou racionais. O Jason [3] é um interpretador da linguagem Agent- Speak e possui capacidade de implementar as facilidades esperadas e previstas para agentes em um ambiente social, em especial a comunicação. A maioria das arquiteturas de agentes desenvolvidas até o momento têm sido estabelecidas para tratar informações com base na lógica clássica, onde uma proposição ou é verdadeira ou é falsa. Observa-se, entretanto, que no modelo BDI o conhecimento de um agente sobre o mundo pode ser incompleto, vago, incerto, ambíguo. Esse tipo de incerteza nas crenças do agente (i.e., informações que um agente acredita ter sobre o mundo no qual ele se encontra e sobre si mesmo) não está previsto na arquitetura BDI. Também não são tratadas as incertezas em desejos e intenções, informações que poderiam ser úteis para que a atuação do agente fosse mais eficiente. [6, 13, 14] Por outro lado, a Lógica Fuzzy [1, 2, 9, 21, 22, 30], utilizada para a modelagem de raciocínio com incertezas, permite descrever de forma aproximada e efetiva as ca-

156 G.P. Farias et al. Um Modelo Híbrido de Agente BDI Fuzzy racterísticas de sistemas complexos ou que não podem ser definidos de forma exata. Assim, a Lógica Fuzzy é uma teoria desenvolvida para o tratamento de informações incertas, vagas ou ambíguas, onde os relacionamentos entre elementos e conjuntos seguem uma transição entre pertinência e não pertinência que é gradual, representados por valores de pertinência intermediários entre o verdadeiro e o falso da lógica clássica. Este trabalho descreve a proposta de uma dissertação de mestrado, onde pretende-se experimentar um modelo de agente BDI-Fuzzy, desenvolvendo uma arquitetura de agente que possa tratar, de maneira mais adequada, as incertezas do ambiente, desejos, intenções e planos do agente. Este resumo está organizado como descrito a seguir. Na Seção 2, discutem-se brevemente trabalhos relacionados. A proposta do modelo híbrido BDI-Fuzzy é resumida na Seção 3. As considerações finais estão na Seção TRABALHOS RELACIONADOS Na literatura existem várias referências ao uso da Lógica Fuzzy para possibilitar aos agentes mecanismos de decisão mais adaptáveis à realidade, podendo ter maior flexibilidade em ambientes complexos e dinâmicos. Em [17], por exemplo, foi observado que modelos de agentes simples, como os que são normalmente utilizados nas ferramentas existentes, não são nem suficientes nem adequados para lidar com a incerteza e a subjetividade que devem ser considerados na análise de valores (como, p.ex., confiança) na sociedade humana. Por este motivo, esses autores, utilizaram a Lógica fuzzy para especificar os atributos de agentes que representam indivíduos, a evolução das mentes dos agentes, a herança, o relacionamento e a similaridade entre indivíduos. Zadeh [31] salientou o princípio da incompatibilidade, que estabelece que complexidade e precisão são propriedades incompatíveis, argumentando que abordagens baseadas em conceitos quantitativos são inadequadas para modelar o conhecimento humano em processos complexos. Assim, nos trabalhos de simulação social baseada em agentes em [15, 32], facetas e traços de personalidades humanas foram especificadas (de acordo com os modelos Big Five e OCEAN) como regras condicionais em agentes fuzzy (que são capazes de executar raciocínio aproximado qualitativo), para realizar simulação do comportamento humano. Já em [12], a Lógica Fuzzy foi utilizada para avaliação de trocas sociais entre agentes baseados em personalidades, propondo a análise das interações entre agentes com base na noção de equilíbrio fuzzy em trocas de serviços entre agentes. Em [24] foi apresentada uma aplicação da Lógica Fuzzy na simulação de comportamentos humanos a redes sociais, representando elementos comportamentais, tais como estresse, motivação ou fadiga, e aspectos sociólogicos. Finalmente, no contexto de agentes BDI, nos trabalhos em [5, 6, 7] foi proposto um modelo geral para agentes BDI graduados, e uma arquitetura, baseada em sistemas multi-contextos, para modelar atitudes mentais graduadas, em sentido similar ao da Lógica Fuzzy. Em outro trabalho [8], um modelo de agente BDI graduado baseado em sistemas multi-contextos foi utilizado para especificar um agente para assistência a viagens, que ajuda turistas a escolher pacotes de férias. Cabe ressaltar também o trabalho inicial em lógicas BDI Fuzzy em [10]. Uma arquitetura BDI Fuzzy para agentes sociais foi proposta em [20], com uma proposta inicial para a modelagem de sociedades cooperativas de agentes, apontando para as condições sociais necessárias para os agentes formarem intenções e conjuntas e ações conjuntas. Em [19], foi proposto um modelo híbrido de agente BDI para operações em terminais de containers, que estendem as características de aprendizagem e adaptabilidade do modelo tradicional com redes neurais e sistemas de inferência neuro-fuzzy, possibilitando a melhora no processo de tomada de decisão em ambientes complexos e dinâmicos. Uma versão mais atualizada do modelo foi apresentada em [26], no contexto de redes sensoriais sem fio. Outra extensão ao modelo BDI com características fuzzy é o modelo Agent Fuzzy Decision-Making (AFDM) [25], que permite que agentes BDI possam tomar decisões com base em julgamentos quantificados de forma fuzzy. Também em [16], foi proposta o modelo BDI neurofuzzy AUV (autonomous underwater vehicle), que consiste de uma rede neural de vários níveis, onde um deles é de elaboração de intenções fuzzy a partir das crenças e desejos do agente. Assim, sabe-se que a Lógica Fuzzy vem sendo utilizada em simulações baseadas em agentes, principalmente em simulação social, mas também são vários os trabalhos com modelos BDI híbridos. Finalmente, observou-se que sistemas de percepção fuzzy têm sido empregados em agentes e, principalmente, em robots (veja, p.ex, em [11]), mas não relacionados à arquitetura BDI. Uma etapa inicial deste trabalho definiu um mecanismo de percepção fuzzy para o modelo BDI, com aplicação ao modelo presa-predador fuzzy. [13, 14] Neste trabalho foi utilizado o método de inferência fuzzy de Takagi-Sugeno-Kang [18], que elimina a etapa de defuzificação. 148

157 G.P. Farias et al. Um Modelo Híbrido de Agente BDI Fuzzy 3. A PROPOSTA DE UM MODELO DE AGENTE BDI-FUZZY A proposta deste trabalho é experimentar um modelo de agente BDI Fuzzy, onde pretende-se implementar uma arquitetura de agente que possa tratar, de maneira mais adequada, as incertezas relativas ao ambiente e ao próprio agente. Esta proposta se difere das encontradas na literatura, considerando os seguintes elementos: Percepção Fuzzy: o agente deverá ser dotado de um mecanismo de avaliação fuzzy dos dados obtidos sobre o ambiente através de seus sensores (tais como: distância, temperatura, nuances de cores, etc.) e também sobre si mesmo (p.ex., peso, altura, idade, condição física, etc.). O mecanismo de percepção fuzzy deverá ser uma variação do já introduzido inicialmente em [13, 14], onde pretende-se considerar um método de inferência diferente do método de Takagi-Sugeno-Kang [18] adotado naquele trabalho (como, por exemplo, o método de Mandani [1]), que possa mais naturalmente refletir a percepção fuzzy nas crenças fuzzy do agente; Grau da Crença Fuzzy: representa o quanto o agente acredita que uma informação sobre o ambiente ou sobre si mesmo (suas habilidades na realização de ações) está correta; Grau no Desejo Fuzzy: permite ao agente estabelecer diferentes níveis de preferência, assim como diferentes níveis de sucesso aceitáveis; Grau nos Planos Fuzzy: também indica uma medida de preferência, mas nesse caso, na forma de o quanto esse plano é bom para se atingir uma meta, baseado nas crenças sobre as habilidades do próprio agente. Assim, com base em uma representação fuzzy para crenças, desejos, intenções e planos, agente BDI Fuzzy deverá também ser dotado de um mecanismo fuzzy de seleção de objetivos, assim como de um mecanismo fuzzy de seleção de planos, que levem em conta os graus fuzzy em crenças, desejos e planos. 4. CONSIDERAÇÕES FINAIS O principal resultado que pretende-se com este trabalho é o modelo híbrido de agente BDI Fuzzy, cuja aplicação acredita-se mostrar adequada em problemas e ambientes com informação vaga, imprecisa, incerta, onde modelos BDI clássicos podem não apresentar o comportamento desejado [6, 13, 14]. A implementação do modelo na plataforma Jason viabilizara sua utilização em aplicações diversas, onde o 149 problema do tratamento de informações vagas seja importante ou essencial. O desenvolvimento do estudo de caso permitirá a avaliação da proposta em um contexto multidisciplinar. Agradecimentos Este trabalho é financiado pela FAPERGS e pelo CNPQ (Proc /07-0, /07-9, /06-2, /09-5, /07-4). Os autores agradecem a Rafael Bordini (UFRGS) pelas valiosas sugestões. Referências [1] L. C. Barros and R. C. Bassanezi. Tópicos de Lógica Fuzzy e Biomatemática. IMECC/UNICAMP, Campinas, [2] G. Bojadziev and M. Bojadziev. Fuzzy Sets, Fuzzy Logic, Applications. World Scientific, Singapore, [3] R. H. Bordini and J. F. Hübner. Jason a java-based agentspeak interpreter used with saci for multiagent distribution over the net, (available at [4] R. H. Bordini, J. F. Hübner, and M. Wooldridge. Programming Multi-Agent Systems in AgentSpeak using Jason. Wiley, New Jersey, [5] A. Casali, L. Godo, and C. Sierra. Graded BDI models for agent architectures. In Computational Logic in Multiagent Systems, volume 3487 of LNAI, pages Springer, Berlin, [6] A. Casali, L. Godo, and C. Sierra. Modelos BDI graduados para arquitecturas de agentes. Revista Iberoamericana de Inteligencia Artificial, 9(26):67 75, [7] A. Casali, L. Godo, and C. Sierra. Multi-context specification for graded BDI-agent. In C. Ghidini, editor, Doctoral Consortium - Fifth International Conference on Modeling and Using Context (CONTEXT-05), pages 31 40, Paris, LIP 6. [8] A. Casali, L. Godo, and C. Sierra. Modeling travel assistant agents: a graded BDI approach. In Artificial Intelligence in Theory and Practice, volume 217 of IFIP International Federation for Information Processing, pages Springer, Berlin, [9] G. Chen and T. T. Pham. Introduction to Fuzzy Sets, Fuzzy Logic, and Fuzzy Control Systems. CRC Press, New York - USA, 2000.

158 G.P. Farias et al. Um Modelo Híbrido de Agente BDI Fuzzy [10] A. P. Cruz. Lógicas BDI fuzzy. Master s thesis, UFRN, [11] F. Cuesta and A. Ollero. Intelligent control of mobile robots with fuzzy perception. In Intelligent Mobile Robot Navigation, volume 16 of Springer Tracts in Advanced Robotics, pages Springer, Berlin, [12] G. P. Dimuro, A. V. Santos, G. P. Bedregal, and A. C. R. Costa. Fuzzy evaluation of social exchanges between personality-based agents. In L. S. Lopes, N. Lau, P. Mariano, and L. M. Rocha, editors, New Trends In Artificial Intelligence, Proc. of 14th Portuguese Conference on Artificial Intelligence, EPIA 2009, pages , Aveiro, APIA/Universidade de Aveiro. [13] G. P. Farias. Um modelo de percepção fuzzy para agentes BDI. Technical report, UCPEL, Pelotas, (Projeto de Graduação em Ciência da Computação, orientadora: G.P. Dimuro, disponível em [14] G. P. Farias, G. P. Dimuro, and A. C. R. Costa. Um modelo de percepção fuzzy para agentes BDI. In L. A. O. Rocha and S. S. C. Botelho, editors, Proc. of the 3rd Southern Conference on Computational Modeling, pages , Rio Grande, [15] N. Ghasem-Aghaee and T. I. Ören. Towards fuzzy agents with dynamic personality for human behavior simulation. In Proc. of the 2003 Summer Computer Simulation Conference, Montreal, July 20-24, 2003, pages 3 10, San Diego, SCS. [16] L. Hai-bo, G. Guo-chang, S. Jing, and F. Yan. AUV fuzzy neural BDI. Journal of Marine Science and Application, 4(3):37 41, [17] S. Hassan, L. Garmendia, and J. Pavón. Agentbased social modeling and simulation with fuzzy sets. In E. Corchado, J. M. Corchado, and A. Abraham, editors, Innovations in Hybrid Intelligent Systems, number 44 in Advances in Soft Computing, pages Springer, Berlin, [18] K. Ishii and M. Sugeno. A model of human evaluation process using fuzzy measure. International Journal of Man-Machine Studies, 22(1):19 38, [19] P. Lokuge and D. Alahakoon. Decisions based upon multiple values: the BVG agent architecture. In N. R. Pal, Nikola Kasabov, Rajani K. Mudi, Srimanta Pal, and Swapan K. Parui, editors, Neural Information Processing, number 3316 in LNCS, pages , Berlin, Springer. [20] S. A. Long and A. C. Esterline. Fuzzy BDI architecture for social agents. In N. R. Pal, Nikola Kasabov, Rajani K. Mudi, Srimanta Pal, and Swapan K. Parui, editors, Proceedings of the IEEE Southeastcon 2000, pages 68 74, Los Alamitos, IEEE. [21] H. T. Nguyen and E. A. Walker. A First Course in Fuzzy Logic. Chapman & Hall/Crc, Las Cruces, New Mexico, third edition, [22] T. J. Ross. Fuzzy Logic with Engineering Applications. Wiley, New Mexico, [23] S. Russel and P. Norvig, editors. Inteligência Artificial. Elsevier/Campus, Rio de Janeiro, [24] E. Sabeur and G. Denis. Human behavior and social network simulation: Fuzzy sets/logic and agentsbased approach. In Proc. of the 2007 Spring Simulation Multi-Conference, Norfolk, 2007, pages , San Diego, SCS. [25] S. Shen, G. M. P. O Hare, and R. Collier. Decisionmaking of BDI agents, a fuzzy approach. In Proceedings of The Fourth International Conference on Computer and Information Technology, pages , Washington, IEEE. [26] S. Shen, G. M. P. O Hare, and M. J. O Grady. Fuzzy-set-based decision making through energyaware and utility agents within wireless sensor networks. Artificial Intelligence Review, 27(2-3): , [27] G. Weiss, editor. Multiagent Systems - A Modern Approach to Distributed Artificial Intelligence. The MIT Press, Cambridge, Massachussetts, [28] M. Wooldridge. Reasoning about Rational Agents. Intelligent Robots and Autonomous Agents. The MIT Press, Cambridge, [29] M. J. Wooldridge. Multiagent Systems: A Modern Approach to Distributed Artificial Intelligence. The MIT Press, Cambridge, Massachusetts, [30] L. A. Zadeh. Fuzzy sets. Information and Control, 8: , [31] L. A. Zadeh. Is there a need for fuzzy logic? Information Sciences, 178(13): , [32] T. I. Ören and N. Ghasem-Aghaee. Personality representation processable in fuzzy logic for human behavior simulation. In Proc. of the 2003 Summer Computer Simulation Conference, Montreal, July 20-24, 2003, pages 11 18, San Diego, SCS. 150

159 Crenças de Grupo como Instrumento de Formação da Reputação Tiago L. Schmitz 1, Jomi F. Hübner 1 e Carine G. Webber 2 1 Departamento de Engenharia de Automação e Sistemas - Universidade Federal de Santa Catarina PO Box 476, Florianópolis, SC, CEP , Brasil tlschmitz, jomi@das.ufsc.br 2 Centro de Computação e Tecnologia da Informação - Universidade de Caxias do Sul R. Francisco Getúlio Vargas, Caxias do Sul, RS, CEP , Brasil cgwebber@ucs.br Resumo A qualidade das interações entre agentes é um fator determinante na eficiência de um SMA. Uma das ferramentas utilizadas para melhorar essas interações é o uso do conceito de reputação. Os modelos cognitivos de reputação são modelos recentes e dentre eles o ForTrust[6], apesar de sua excelente fundamentação teórica, que faz uso de alguns conceitos que ainda não possuem um modelo de implementação. Nesta direção, o presente artigo apresenta um modelo de implementação das crenças de grupo usando o conceito de artefatos,que são estruturas de um ambiente, passivas e orientadas a funções, que podem ser construídas, destruídas e operadas pelos agentes. Propõe-se a construção de um artefato para representar as crenças de um grupo de agentes usando-se como domínio de aplicação a edição colaborativa de documentos da Wikipédia. Palavras chave: Crenças de Grupo, Reputação, For- Trust, Modelo Cognitivo, Artefato INTRODUÇÃO Em um sistema multi-agentes (SMA) o comportamento coletivo de agentes autônomos é utilizado como forma de resolver problemas. A metáfora de sociedade traz consigo conceitos de outras áreas, tais como: Sociologia, Psicologia e Economia. Um dos conceitos mais importantes herdados é a interação entre os participantes, função elementar para o funcionamento de um SMA. A qualidade dessas interações é decisiva na concepção da solução, pois um comportamento desleal de um participante ou uma falha na comunicação tem potencial para afastar o sistema da melhor solução. Por exemplo, suponha que um agente A solicita a um agente B um cálculo. O agente B processa a requisição e por um ato deliberado pela sua concorrência com A ou por simples falta de competência em realizar tal cálculo, ele retorna um valor inconsistente. O agente A utiliza tal resposta e o sistema tende a se afastar do resultado desejado. A questão que permeia este problema é a avaliação das informações e a escolha de parceiros em um ambiente não confiável. Dois conceitos são socialmente utilizados para responder a esta questão: confiança e reputação. A confiança é uma relação entre dois agentes, ou seja, o agente A considera B confiável. A reputação é uma relação de vários indivíduos para com outro, por exemplo, um grupo I acredita na reputação de B para desempenhar uma determinada tarefa. Estes conceitos aplicados a um SMA tornam a ecologia das relações saudável, uma vez que reforçam os comportamentos positivos e desmotivam os negativos [3]. Em SMA abertos, onde agentes entram e saem da sociedade, com freqüência é difícil construir uma rede de confiança uma vez que as interações podem ser limitadas a um curto espaço de tempo. O uso da reputação, foco desse trabalho, atribui um grau de aceitação a um indivíduo do grupo para desempenhar uma tarefa sem que necessariamente o agente requisitante tenha interagido com o agente alvo anteriormente. Para tanto utiliza as experiências dos demais participantes do grupo. O presente trabalho utiliza o modelo ForTrust proposto em [6]. Este modelo de reputação utiliza o conceito de crença de grupo (CG). Uma crença de grupo é um conhecimento comum a um grupo de agentes e representa algo que o grupo acredita. Enquanto as crenças individuais estão claramente representadas no estado mental dos agentes, não é evidente a localização das crenças de todo um grupo de agentes. O trabalho apresentado neste artigo se encontra em fase preliminar e apresenta uma proposta inicial de implementação de crenças de grupo para a construção de uma

160 Tiago L. Schmitz, Jomi F. Hübner and Carine G. Webber Crenças de Grupo como Instrumento de Formação da Reputação arquitetura de implementação de um modelo cognitivo de reputação. A seção a seguir apresenta brevemente algumas características e modelos de reputação. A terceira seção apresenta o projeto ForTrust. A quarta seção apresenta o uso de artefatos para a composição das crenças de grupo propondo uma solução para implementar o modelo de reputação ForTrust. A quinta seção apresenta um cenário de aplicação para a reputação baseada em crença de grupos. Por fim, a última seção descreverá o estado atual do trabalho e planos futuros. 2. MODELOS DE REPUTAÇÃO Existem na área de SMA diversos modelos de reputação. Contudo há uma característica comum a todos os modelos que é a questão temporal. Pode-se dizer que a reputação baseia-se na manutenção e análise de um histórico de comportamento dos participantes, auxiliando a decidir em quem confiar, encorajando comportamentos leais e dissuadindo comportamentos desonestos [4]. As principais propriedades dos modelos de reputação são paradigma, visibilidade, granularidade e fonte de informação [9]. O paradigma trata do modo como é feita a manipulação das informações, dividindo-se em cognitivo e teoria dos jogos. O cognitivo baseia-se em crenças, desejos e intenções. Define a confiança em alguém baseado em um estado mental [9]. Exemplos de modelos nesta categoria são: ForTrust [6], Castelfranchi e Falcone [2]. Baseado na Teoria dos Jogos, que usa funções e métodos probabilísticos [9],tem-se por exemplo: ReGreT [8], Carter et al. [1], schillo et al [10]. A visibilidade trata do escopo da reputação, podendo ser subjetiva ou global. Na visibilidade subjetiva cada agente tem uma visão própria da reputação de seus pares [9], sendo um exemplo é o modelo ReGreT [8]. Na visibilidade global, os agentes compartilham de uma única base de reputação [9], por exemplo: ForTrust [6] e Carter et Al. [1]. A granularidade trata de como a reputação é aplicada ao agente, dividindo-se em duas subcategorias: a livre de contexto e a contextual. Livre de contexto é aquela que o agente possui apenas uma reputação independente dos papéis que desempenha no grupo [9], por exemplo, os modelos Schillo et al. [10] e ebay [5]. Já na contextual, o agente possui uma reputação para cada papel que desempenha no grupo[9], por exemplo, os modelos ForTrust [6] e ReGreT [8]. A fonte de informação trata da origem das informações utilizadas para estabelecer a reputação. Um modelo pode se valer de uma ou mais fontes de informação. Os principais tipos de fontes são: a interação direta, o testemunho e o preconceito. Na interação direta as informações são obtidas através das interações de dois agentes; no testemunho as informações são obtidas através de um terceiro agente que fornece informações sobre o agente alvo e no preconceito a reputação é atribuída a um agente com base na sua classe de agente [9]. Dentre os modelos citados nesta seção o ForTrust é o único que não possui uma implementação. Uma das razões para isso está na sua modelagem cognitiva, que faz uso de um conceito que não possui ainda uma arquitetura de implementação. Este fato motiva a busca por tal arquitetura e a verificação de seu potencial, sendo portanto explorado na próxima seção. 3. PROJETO FORTRUST O projeto ForTrust trabalha com um modelo cognitivo de confiança e reputação. Baseado no modelo de confiança de Castelfranchi e Falcone [2], sua constituição não se resume a uma mera probabilidade atualizada a cada interação dos agentes. A confiança é construída através de uma série de crenças que quando reunidas levam a um estado interno que permite ou não confiar em um determinado agente [6]. No modelo ForTrust, as crenças que fundamentam uma relação de confiança são: objetivo, capacidade, competência e intenção. Sendo assim, para que um agente A confie em um agente B para fazer uma tarefa J é necessário que: A tenha um objetivo X; A acredite que B é capaz de fazer J; A acredite que B tem competência para atingir X fazendo J e A acredite que B tem a intenção de fazer J. O agente A, tendo essas crenças, pode confiar em B [6]. Tomando como exemplo um time de futebol. O técnico tem o objetivo de levar a equipe à vitória, para tanto deve escalar 11 jogadores que acredita serem capazes de levar o time a atingir este objetivo. Ele escolherá para cada posição um jogador que ele acredite competente para a posição; seja capaz de desempenhar o papel satisfatoriamente e tenha a intenção de desempenhar a função. Para a reputação o caso é similar, contudo faz uso do conceito de crenças de grupo. Uma CG é um conjunto de crenças partilhadas por um grupo, logo, não é mais um agente A que tem uma crença sobre um agente B, mas um grupo I que tem uma crença sobre um agente B [6]. Sendo assim, para que I crie uma reputação para um agente B para fazer uma tarefa J é necessário que: I tenha um objetivo X; I acredite que B é capaz de fazer J; I acredite que B tem competência para atingir X fazendo J; I acredite que B tem a intenção de fazer J. O grupo I tendo essas crenças pode estabelecer uma reputação para B [6]. Considere o seguinte exemplo: na escolha de um representante de uma agremiação os sócios nem sempre conhecem diretamente os candidatos a representante. O grupo de sócios 152

161 Tiago L. Schmitz, Jomi F. Hübner and Carine G. Webber Crenças de Grupo como Instrumento de Formação da Reputação acaba por escolher o representante através de sua reputação, sendo assim, o grupo acredita que: o candidato pode exercer a função de representante; tem competência para representar satisfatoriamente o grupo e tem a intenção de representar o grupo. O fato do grupo compartilhar essas crenças aumenta o grau de complexidade da concepção da arquitetura do sistema, pois não temos hoje na proposta de como as CGs são instituídas e concretizadas em sistemas computacionais. Através de um estudo preliminar observa-se que algumas técnicas como consenso, votação, recomendação, entre outras são factíveis para a implementação das CGs. Contudo não são técnicas triviais e não é sabida qual técnica é mais adequada. 4. SUPORTE ÀS CRENÇAS DE GRUPO USANDO ARTEFATOS O meta-modelo de agentes e artefatos proposto por [11] enriquece o ambiente dos agentes com artefatos que são ali colocados para auxiliá-los na realização e coordenação das suas atividades. Artefatos são estruturas do ambiente passivas e orientadas a funções que podem ser construídas, destruídas e operadas pelos agentes. Por exemplo, uma calculadora seria um artefato enquanto o indivíduo que a manipula seria o agente, ao invés de o indivíduo realizar o cálculo ele requisita que a calculadora execute-o. Artefatos possuem duas interfaces, A primeira, permite ao agente disparar operações do artefato. A segunda interface permite apenas a observação do artefato [11]. Estas interfaces podem ter grau de visibilidade distintos. Desta maneira, um determinado agente pode visualizar apenas as informações ou disparar operações do artefato dependendo de suas permissões. Uma proposição inicial para implementação das crenças de grupo é a criação de um artefato CG. Sua função é manter um conjunto de crenças entendidas pelo grupo como verdade. Nesta estrutura os agentes pertencentes ao grupo anunciam por meio dos artefatos as proposições que eles entendam relevante para o grupo. Estas proposições não são necessariamente as crenças do agente, mas o que eles desejam informar ao grupo. Os agentes têm liberdade para anunciar qualquer proposição ao grupo, porém apenas em um ambiente sincero esses anúncios correspondem garantidamente as crenças do agente. O artefato ao receber os anúncios dispara uma tarefa que irá sintetizá-los procurando agregar o que vem a ser a crença do grupo. A figura 1 representa um artefato de CG. Onde (1) é um display que fornece uma lista das crenças do grupo; (2) é um display que fornece um histórico dos anúncios com seus respectivos agentes; (3) é um botão que o agente 153 pode usar caso ele acredite que o agente alvo satisfaz a crença representada pelo artefato passando por parâmetro Agente alvo (A) e uma atividade (F); por fim, (4) é a negação de (3), o agente pode usar essa operação caso ele não acredite que A satisfaz a crença representada pelo artefato. A maneira como o artefato fará a análise dos anún- (1) (2) (3) Acredita (A, F) (4) Ñ Acredita (A, F) Figura 1. Exemplo de artefato de CG cios é um processo investigado no estágio atual deste trabalho, e incorpora a busca por identificar algoritmos que façam as CG serem as mais adequadas para o grupo. Algumas possibilidades abordadas são: votação, consenso e testemunho. Na votação, o grupo seria conclamado a expressar seu voto periodicamente sobre o agente alvo e sobre a sua credibilidade perante a crença que o artefato representa. A proposição com maioria simples dos votos uma crença grupo. A regra que conclama os agentes a votar é descrita no regimento do grupo. O artefato de grupo é responsável por avisar os agentes da necessidade de votar sob pena de exclusão do grupo. No consenso, o artefato de CG recebe um novo anúncio e consulta o grupo mediando uma audiência conciliatória para determinar a validade deste anúncio para o grupo. No testemunho quando o artefato recebe uma proposição é recalculada a crença de grupo da relação agente alvo e papel proposta com base nas proposições anteriores e no nível hierárquico dos agentes. A proposição de um agente de maior grau tem um peso maior na decisão do que a dos agentes de grau inferior. A criação do artefato de reputação baseado no projeto ForTrust é um modelo que agrega vários artefatos de CG, onde as crenças que ganham relevância são competência, objetivo, intenção e capacidade. A figura 2 apresenta um arquitetura em estágio embrionário proposta neste trabalho. Nela são observados quatro artefatos CGs cada qual é a representação de uma categoria de crença (competência, objetivo, intenção e capacidade). Estes quatro artefatos recebem anúncios dos agentes e por testemunho os sintetizam em CGs. Uma vez sintetizada a CG, a mesma é informada ao artefato reputação, que sintetizará a reputação baseada no modelo ForTrust. Por fim o artefato de grupo faz a regulamentação dos indivíduos conforme o regimento do grupo e disponibiliza uma lista com os agentes pertencentes ao grupo. Para exemplificar o funcionamento estabeleceremos o uso do testemunho para sintetização das crenças do grupo. Um agente A acredita que B não tem competência para realizar uma tarefa X; A informa ao artefato competência que Ñ acredita (B,X) ; no Artefato competência é disparado o processo que analisa

162 Tiago L. Schmitz, Jomi F. Hübner and Carine G. Webber Crenças de Grupo como Instrumento de Formação da Reputação todas as proposições recebidas que relaciona o agente B com a tarefa X; É constatado que não há nenhuma proposição positiva de B competente em X; A proposição é ratificada como uma crença do grupo disparando um processo de no artefato de reputação que através do modelo ForTrust classificará o agente B com uma reputação inapto a realizar X. Competência Objetivo Intenção Capacidade garantir a viabilidade de implementação das crenças de grupo. O próximo passo é a definição das regras para a incorporação das crenças do individuo no artefato de crenças de grupo. Uma vez definidos estes requisitos, será inciada a modelagem e a implementação da arquitetura. A avaliação será realizada através de uma série de experimentos analisando o tempo de detecção de danos em relação ao tempo decorrido. Acredita (A, F) Ñ Acredita (A, F) Acredita (A, F) Ñ Acredita (A, F) Reputação Acredita (A, F) Ñ Acredita (A, F) Grupo Acredita (A, F) Ñ Acredita (A, F) Figura 2. Exemplo de arquitetura de implementação do modelo de reputação com artefato de CG 5. CENÁRIO DE APLICAÇÃO A Wikipédia, enciclopédia livre, permite a seus usuários a livre criação e edição de artigos contanto que a sua manipulação esteja em acordo com as políticas de uso da ferramenta. O grande domínio abrangido pela enciclopédia, o volume de inserções e alterações executadas diariamente torna complexa a tarefa de validar as novas informações. Esta característica torna o ambiente propício ao surgimento de atos de vandalismo maliciosos ou não, imprecisão de informações, propagandas, entre outros. Para analisar as alterações e para evitar estas desconformidades, a Wikipédia implementa diversos dispositivos. Dentre eles é previsto o uso de uma entidade denominada patrulheiro. Os patrulheiros são usuários normais que assumem uma função de analisar, voluntariamente, a lista de alterações em busca destas desconformidades [7]. Como auxílio aos patrulheiros é proposto o uso de um SMA para a criação de um sistema de reputação dentro da comunidade da Wikipédia. O uso desse tipo de sistema permite estabelecer um grau de confiança entre o patrulheiro e o usuário contribuidor, mesmo que um determinado patrulheiro nunca tenha analisado a contribuição de um referido usuário. A reputação perante a comunidade permite ao patrulheiro inferir um grau de confiança no usuário, facilitando assim a análise das suas alterações. O patrulheiro pode assim se focar nos usuários com reputação duvidosa e analisar suas contribuições [7]. 6. PLANOS FUTUROS No presente momento é feito um estudo mais aprofundado do uso de artefatos e suas capacidades a fim de Referências [1]J. Carter, E. Bitting, and A. Ghorbani. Reputation formalization for an information-sharing multiagent system. Computacional Inteligence, 1: , [2]C. Castelfranchi and R. Falcone. Principles of trust for MAS: Cognitive anatomy, social importance and quantification. ICMAS, 1:72 79, [3]C. Castelfranchi, R. Falcone, B. Firozabadi, and Y. Tan. Special issue on trust, deception and fraud in agent societies. Applied Artificial Intelligence Journal, 1: , [4]S. J. Cesare. Uma ontologia funcional de reputação para agentes. Master s thesis, Escola politécnica da Universidade de São Paulo, [5]eBay. ebay [6]A. Herzig, E. Lorini, J. F. Hübner, and L. Vercouter. A logic of trust and reputation. Logic Journal of the IGPL, [7]Y. Krupa, L. Vercouter, J. F. Hübner, and A. Herzig. Trust based evaluation of wikipedia s contributors. In Proc. of 10th Annual International Workshop, volume 5881 of LNCS, pages , [8]J. Sabater and C. Sierra. Regret: A reputation model for gregarious societes. Proc. of the Fouth Workshop on Deception, Fraud and Trust in Agent Societies, 1:61 69, [9]J. Sabater and C. Sierra. Review on computacional trust and reputation models. Kluwers Academic Publishers, 1:27, [10]M. Schillo, P. Funk, and M. Rovatsos. using trust for detecting deceiful agents in artificial societies. Applied Artificial Intelligence, 1, [11]M. Viroli, T. Holvoet, A. Ricci, K. Schelfthout, and F. Zambonelli. Infrastructures for the environment of multiagent systems. Autonomous Agents and Multi-Agent Systems, 14(1):49 60,

163 Simulação Presa x Predador: Sistemas Dinâmicos e Multi-agentes Probabilístico Raphael Campos, Gisele Simas, Giovani Farias, Simone Rosa, Camila de Oliveira, Carlos Silva Universidade Federal do Rio Grande - FURG Av Itália - Km 8 - Rio Grande - RS - Brasil Abstract Este trabalho trata da modelagem do problema Presa x Predador aplicado a peixes (fanecas) e tubarões, através de Simulação Multi-agentes. Uma modelagem matemática desenvolvida, para tal problema, por Volterra [1], foi aplicada no contexto de simulação Social de duas formas distintas: I. utilizando um diagrama de modelo de sistemas dinâmicos; e II. utilizando simulação de agentes com uso de probabilidades. As duas formas de simulação adotadas forneceram bons resultados. Além disso, acreditamos que, por existirem fatores não tratados na modelagem matemática original (por exemplo, a competição de outras espécies pelos alimentos das fanecas), a utilização de probabilidades poderia ajudar a reproduzir melhor as características observáveis no mundo real. Keywords: Simulação multi-agentes, probabilidades, sistemas dinâmicos, problema presa x predador 1. INTRODUÇÃO Este trabalho trata da modelagem do problema Presa x Predador aplicado a peixes (fanecas) e tubarões, através de Simulação Multi-agentes [5]. A modelagem matemática para tal problema foi estudada por Volterra e uma descrição detalhada pode ser encontrada em [1]. Neste trabalho, a modelagem foi desenvolvida utilizando a ferramenta NetLogo [2]. A Simulação foi realizada de duas formas distintas: I. utilizando um diagrama de modelo de sistemas dinâmicos; e II. utilizando simulação de agentes. Modelos desenvolvidos sob a abordagem de sistemas dinâmicos são descritos por um conjunto de equações diferenciais. Esta abordagem generaliza o comportamento para todos os atores modelados, sendo considerada uma abordagem de nível macro [4]. No entanto, nos modelos sob a abordagem de agentes, o comportamento de cada agente é contemplado e o resultado emerge da relação dos agentes. Decorre daí, então, o desafio para adaptar um modelo baseado em sistemas dinâmicos, para um sistema baseado em agentes. Como modelar o comportamento de cada agente, para que o resultado seja o mesmo ou parecido com o modelo baseado em sistemas dinâmicos? Com base nos parâmetros das equações, aplicou-se a probabilidade, para cada agente, se reproduzir ou morrer. Os valores dos parâmetros foram obtidos experimentalmente, analisando a modelagem matemática apresentada por Volterra [1]. Os resultados obtidos com a Simulação de Agentes, utilizando probabilidades, foram aproximados dos realizados com Sistemas Dinâmicos e com os dados recolhidos por Umberto d Ancona [1]. Dessa forma, demonstram que a técnica obtida com probabilidade satisfez as espectativas. Primeiramente, na seção 2, descrevemos o problema Presa x Predador abordado. Na seção 3, apresentamos a metodologia utilizada de maneira mais detalhada. Após, na seção 4, relatamos os resultados comparativos entre as duas técnicas de simulação utilizadas e, por fim, na seção 5, apresentamos a conclusão. 2. PROBLEMA Umberto d Ancona estudou a relação entre tubarões e fanecas, compreendendo de que forma uma espécie afeta a população da outra. D Ancona percebeu que a população de fanecas deveria crescer quando existisse poucos tubarões e que o mesmo ocorresse com os tubarões quando a população de fanecas aumentasse, decorrendo daí um ciclo [1]. Dessa forma, tem-se: I) O aumento do número de fanecas é diretamente proporcional ao número de fanecas existentes. Este dado qualitativo sobre a evolução das fanecas com o tempo 155

164 Raphael Campos, Gisele Simas, Giovani Farias, Simone Rosa, Camila de Oliveira, Carlos Silva Simulação Presa x Predador: Sistemas Dinâmicos e Multi-agentes Probabilístico traduz-se pela equação: aumento_das_f anecas = A nro_fanecas, onde A é uma constante real positiva. II) diminuição do número de tubarões é diretamente proporcional ao número de tubarões existentes. Assim a evolução dos tubarões descreve-se pela equação: diminuicao_dos_tubaroes = C nro_tubaroes, onde C é uma constante real positiva MODELO A criação do modelo veio posteriormente com a intervenção do matemático e físico italiano Vito Volterra, o qual, formalizou matematicamente a relação entre tubarões (predadores) e fanecas (presas) [1]: a diminuição do número de fanecas e o aumento do número de tubarões são diretamente proporcionais ao número de encontros entre as duas espécies. Nesse modelo, a relação traduz-se pelo produto do número de elementos em cada espécie e possui uma motivação probabilística: diminuicao_fanecas = B nro_fanecas nro_tubaroes aumento_dos_tubaroes = D nro_fanecas nro_tubaroes A partir das conseqüências (aumentos e diminuições) dessa relação para cada espécie, obtem-se as seguintes expressões: variacao_fanecas = A nro_fanecas B nro_fanecas nro_tubaroes variacao_dos_tubaroes = C nro_tubares +D nro_fanecas nro_tubaroes Apartir dos estudos feitos por Volterra, pode-se definir um sistema de equações diferenciais que modelam o fenômeno presa x predador aplicado às espécies de fanecas e tubarões. Para isto, vamos denominar t como o tempo (variável real não negativa), x(t), como o número de presas no instante t e y(t), como o número de predadores no instante t. As variações em número de indíviduos das duas espécies, ao longo do tempo, são dadas pelas derivadas temporais das funções x e y, ou seja, x e y. Dessa forma, obtemos o seguinte sistema de equações diferenciais (A, B, C e D são constantes positivas): { x = Ax Bxy y = Cy + Dxy Note que, neste modelo, x(t) e y(t) variam nos números reais não negativos, diferentemente, do que acontece na realidade onde o número de indivíduos varia apenas em números inteiros ESTIMAÇÃO DOS PARÂMETROS Para a obtenção das constantes A (taxa de natalidade dos peixes), B (taxa de predação), C(taxa de mortalidade dos tubarões) e D(eficiência do predador), empregadas nas equações da Seção 2, foram realizados testes no Octave [3] até que se obtivesse constantes que reproduzisse graficamente os dados observados no mundo real e modelados matemáticamente por Volterra [1]. As constantes escolhidas foram: A = 0.04, B = , C = 0.15 e D = Os resultados obtidos no Octave [3] utilizando tais constantes são demonstrados nas figuras 1, 2 e 3. Figure 1. Número de Indivíduos x Tempo (até o passo de tempo = 1000) obtidos matematicamente no Octave. Figure 2. Número de Indivíduos x Tempo (até o passo de tempo = 10000) obtidos matematicamente no Octave. 3. METODOLOGIA Tendo-se compreendido o problema a ser tratado neste artigo, esta seção passa a descrever as duas abordagens utilizadas para a simulação do fênomeno presa x predador. Primeiramente, a seção 3.1 relata questões sobre a definição dos parâmetros adotados. Após, a seção 3.2 apresenta a primeira abordagem utilizada: Sistemas Dinâmicos e, por último, a seção 3.3 descreve a Silmulação Multi-agentes baseada em probabilidades. Figure 3. Número de Indivíduos Fanecas x Tubarões, obtidos matematicamente no Octave. 156

165 Raphael Campos, Gisele Simas, Giovani Farias, Simone Rosa, Camila de Oliveira, Carlos Silva Simulação Presa x Predador: Sistemas Dinâmicos e Multi-agentes Probabilístico 3.2. MODELO DINÂMICO Na simulação pelo diagrama de modelo dinâmico, é criado um diagrama gráfico que representa as relações existentes entre as duas espécies. Este diagrama é apresentado na Figura 4. Como observado, foram criadas duas populações: a de peixes (Fishes) e a de tubarões (Sharks). Figure 4. Diagrama do Modelo Dinâmico obtido no NetLogo (aa = A, bb = B, cc = C e dd = D em relação à Seção 2). I) População de Peixes: variacao_de_peixes = A nro_peixes B nro_peixes nro_tubaroes A cada passo de tempo, acrescentam-se à população de peixes A nro_peixes indivíduos (informação descrita pela seta à esquerda ligada a população de peixes); e subtraem-se B nro_peixes nro_tubaroes indivíduos (informação descrita pela seta à direita ligada a população de peixes). II) População de Tubarões : variacao_de_tubaroes = C nro_tubaroes +D nro_peixes nro_tubaroes A cada passo de tempo, acrescentam-se à população de tubarões D nro_peixes nro_tubaroes indivíduos (informação descrita pela seta à esquerda ligada a população de tubarões); e subtraem-se C nro_tubaroes indivíduos (informação descrita pela seta à direita ligada a população de tubarões) SIMULAÇÃO DE AGENTES Na Simulação de Agentes, cada agente deve tomar uma ação baseado em algumas informações que possui, ou seja, a ação a ser tomada é definida individualmente para cada agente e, portanto, não se tem como realizar as equações descritas acima de forma determinística. Dessa forma, nós realizamos uma abordagem que descreve as equações, descritas acima, através de probabilidades. A cada passo de tempo, todos os agentes executam o seguinte código, implementado na ferramenta NetLogo [2]: ask turtles [ if (breed = fishes) [ let variacao ( A * (count fishes) - B * (count fishes) * (count sharks)); ifelse (variacao > 0) [ if(random-float <= variacao * / (count fishes)) [ reproduce_fish ] ] [ if(random-float <= -1 * variacao * / (count fishes)) [ death_fish ] ] ] if (breed = sharks) [ let variacao (- C * (count sharks) + D * (count fishes) * (count sharks)); ifelse (variacao > 0) [ if(random-float <= variacao * / (count sharks)) [ reproduce_shark ] ] [ if(random-float <= -1 * variacao * / (count sharks)) [ death_shark ] ] ] move ] Nesse trecho de código, primeiramente, se verifica qual a espécie (breed) do agente (turtle) em questão. Após, se calcula, através das equações da modelagem matemática de Volterra (Seção 2), a variação, em números de indivíduos, que a população de tal agente deve sofrer (variável variacao no código acima). Caso esta variação seja positiva (variacao > 0), significa que devem nascer novos indivíduos e, portanto, o agente em questão terá uma probabilidade de se reproduzir (reproduce_fish ou reproduce_shark) que será tão maior quanto maior for o valor da proporção entre o número de indivíduos existentes na população (count fishes ou count sharks) e o número de indivíduos que devem nascer (variável variacao). De forma semelhante, caso esta variação de indivíduos (variável variacao) seja negativa, o agente em questão terá uma probabilidade de morrer (death_fish ou death_shark) que será tão maior quanto maior for o valor da proporção entre o número de indivíduos existentes na população (count fishes ou count sharks) e o número de indivíduos que devem morrer (variável variacao). Portanto, para efeitos de entendimento, vamos considerar a espécie fish, no caso em que a variação de indivíduos seja positiva (variacao>0 devem nascer fishes). Sabendo que este trecho será executado, em cada passo de tempo, tantas vezes quanto o número de agentes existentes. Tem-se que: o número de vezes que o código será executado multiplicado pela probabilidade de nascer indivíduos deve ser igual à variação no números de agentes: Nro de repetições do código * probabilidade (nascer) = variação de indivíduos Nro de agentes * probabilidade (nascer) = variacao (Count fishes) * probabilidade (nascer) = variacao Probabilidade (nascer) = variacao / (count fishes) 157

166 Raphael Campos, Gisele Simas, Giovani Farias, Simone Rosa, Camila de Oliveira, Carlos Silva Simulação Presa x Predador: Sistemas Dinâmicos e Multi-agentes Probabilístico A probabilidade é implementada, então, utilizando a geração de números randômicos: Se Random K < probabilidade (nascer) * K então Agente reproduz, ou seja, Se Random K < variacao * K / (count fishes) então Agente reproduz. Sendo que K é uma constante atribuída apenas para que se gere um número randômico entre 0 e K, quanto maior for, menor serão os efeitos indesejáveis de imprecisão de erros de representação de número real com várias casas decimais após a vírgula. 4. RESULTADOS As figuras 5, 6, 7 mostram as variações das populações de peixes e tubarões até o instante 1021 obtidas como resultado das simulações: inicial de tubarões = 39; taxa de natalidade dos peixes ( A ) = 4; taxa de predação ( B ) = 0.05; taxa de mortalidade dos tubarões ( C )= 19; eficiência do predador ( D ) = As figuras 5 e 6 representam a evolução populacional das duas espécies, no decorrer tempo, obtidas pela abordagem de sistema dinâmicos e de simulação de agentes respectivamente. Percebe-se que, nos instantes iniciais, os gráficos são bastante parecidos, com maior instabilidade na abordagem multiagentes. Esta instabilidade se acentua à medida que aumentam os instantes, havendo, portanto, uma maior distinção entre as abordagens com o avanço do tempo. A figura 7 demonstra a relação cíclica entre fanecas e tubarões no ecossistema. Percebe-se que, em ambas as abordagens, está presente o comportamento cíclico, no entanto, na abordagem com sistemas dinâmicos, por seus parâmetros serem estáticos, o ciclo foi mais estável. Para o caso dos agentes, os quais têm seus comportamentos probabilísticos baseados em parâmetros variáveis constata-se um ciclo mais aleatório quanto ao número de fanecas e de tubarões por instante. Figure 5. Variação de números de indíviduos das espécies no decorrer do tempo, obtidos pela abordagem de Sistema Dinâmico. Figure 6. Variação de números de indíviduos das espécies no decorrer do tempo, obtidos pela abordagem de Simulação Multi-agentes. 5. CONCLUSÃO As duas abordagens, de simulação, aplicadas sobre o problema: "presa x predador", estudado por Umberto d Ancona, apresentaram resultados coerentes com o seu estudo matemático. Observa-se isso nos gráficos comparativos apresentados nos resultados. De modo geral, as diferenças se devem a precisão proporcionada pela abordagem em sistemas dinâmicos e a incerteza causada pela simulação multi-agentes, na qual, o comportamento dos agentes é orientado pela probabilidade. Tais simulações estão coerentes com o modelo matemático da relação entre fanecas e tubarões no ecossistema. A probabilidade proporcionou a aplicação da abordagem de agentes, pois diferentemente dos sistemas dinâmicos, não há como se obter meio agente, o que é possível de se modelar em uma simulação baseada em equações. Além disso, acreditamos que, por existirem fatores não tratados na modelagem matemática original (por exemplo, a competição de outras espécies pelos alimentos das fanecas), a utilização de probabilidades poderia ajudar a reproduzir melhor as características observáveis no mundo real, inserindo oscilações que poderiam ocorrer devido a estes outros fatores não modelados. Por fim, este trabalho nos proporciona um desafio motivador ao demandar duas abordagens distintas para um mesmo problema, propiciando o raciocínio sob duas lógicas diferentes. Desta forma, compreendem-se melhor as distinções entre as abordagens, bem como, aprimora-se o conhecimento da ferramenta NetLogo. Com isso, potencializa-se a aplicação destas abordagens para diferentes fenômenos sociais. REFERENCES [1] - Acessado em dezembro de [2] - Acessado em dezembro de 2009 Figure 7. Relação entre fishes (fanecas - eixo x) e sharks (tubarões - eixo y) no decorrer do tempo - gráfico à esquerda refere-se à Simulação Multi-agentes e à direita, ao Sistema Dinâmico. Os resultados apresentados foram gerados utilizando os seguintes parâmetros: número inicial de peixes = 148; número [3] - Acessado em dezembro de 2009 [4] N. Gilbert, G. K. Troitzsch. Simulation for the social scientist, McGraw-Hill, 2nd edition, New York, [5] L. Panait, S. Luke. Cooperative Multi-Agent Learning: The State of the Art. Autonomous Agents and Multi-Agent Systems

167 An X3D Framework for Developing Adaptive Virtual Environments Luiz Fernando Braga Lopes 1,2, José Barbosa Dias Junior 3, Eduardo Filgueiras Damasceno 4, Alexandre Cardoso 5, Edgard Afonso Lamounier Junior 5 1 CESUMAR - Centro Universitário de Maringá, 2 UNIPAR - Universidade Paranaense, 3 Instituto Federal de Goiás - Campus de Goiânia, 4 Instituto Federal Goiano - Campus de Rio Verde, 5 UFU - Universidade Federal de Uberlândia lfbraga@{cesumar.br,unipar.br}, juniorddos@yahoo.com.br, edamasceno@cefetrv.edu.br, alexandre@ufu.br, lamounier@ufu.br Abstract This work describes the concepts related to Adaptive Interfaces and presents a framework model for the management of Interaction Interfaces in Virtual Reality Environments. To that aim, characteristics of Adaptive Virtual Environments, as well as the technologies needed for the development of Virtual Reality Interfaces were identified. In addition to that, an Artificial Intelligence model was adopted for the reorganization of information based on user interaction in a specific digital teaching context. The combination of these three elements forms the basis of this adaptive framework, which provides an environment favorable to the development of specific educational approaches trough the generation of individualized contexts. Keywords: Adaptive Interface, Virtual Reality, Artificial Intelligence, Digital Teaching 1. Introduction Every user in front a computer, especially those in an educational environment, possesses different levels of knowledge, varied needs, abilities and preferences. In this context, the need to develop computational systems that can be adaptable to the diversity of characteristics of each individual user, or groups of users, has emerged from the prospect of individualized education, or processes, that would allow the student to progress according to his or her own interests and objectives, in his or her own pace. This need finds in the use of Adaptive Environments (AE) an important alternative. In an attempt to open the way for user s initial interactive process, an interface design possesses basic instruments which are very similar to those used in real-world architecture, such as: esthetic (graphic elements) or plastic (geometric forms) modeling; consideration and classification of aspects related to technological investigation and innovation; building viability; rationalization of elements and resources; functionality; satisfaction of users basic needs; and the different means available for execution. Although digital interfaces have become increasingly more complex due to successive additions of resources, most users only use a fraction of the functionalities provided by programs. In most programs, all commands are available to the user at the same time, which significantly decreases the screen s available working area, leading to visual pollution. This quickly becomes a problem when users need more room for their work, like the edition of an image or writing a document [1]. The aim of this work was to contribute to the development of an intelligent framework that can adapt to the individual needs of each user, at the same time that it provides a cleaner interface, one in which only what is essential for managing the activity is available. Thus, some relevant reference work on the different characteristics of Virtual Environments was investigated, and three-dimensional modeling techniques based on XML (Extensible Markup Language) were applied in order to demonstrate the capability of the architecture developed here. This architecture, applied to the study of physics, provides intelligent services in virtual environments that can become adherent to the user through real-time generation of customized profiles, enhancing usability in this application domain. This set of factors boosts interactivity between user and machine, especially in educational, games and entertainment contexts. 2. Adaptive Virtual Environments Adaptivity in VE, for study and research in the most diverse areas of science, aims at presenting information adapted to the users knowledge, needs and preferences. A program is said to be adaptive, if it is capable of automatically change its behavior according to the context [2]. Statically designed digital interfaces offer a rigid structure that may not see to the requirements of, or even motivate and guide, users. In 159

168 contrast, adaptive interfaces can gather information on users during the interface s definition process, at the same time as it is presented to them. The action of gathering information aims at automatically identifying the personal interests of each user, and forming an organized database of interests. The overall objective of these systems is to provide users with update content, subjectively interesting, with pertinent information, size and depth adequate to the context, and in direct correspondence to their individual profile. This profile may be understood as a source of knowledge that contains information, explicitly or implicitly acquired, on all aspects relevant to the user, with the purpose of being used in a software application adaptation process. Adaptivity has been studied as a possible solution to overcome usability problems and for the customization of different characteristics of 3D domains, such as the disposition of geometries and interaction controls [3]. An activity displayed on a digital interface has to adapt to users profiles in terms of necessities or interests, and not the other way round. According to Gardner s Multiple Intelligences theory [4], each individual has different sets of abilities and, consequently, not all of them learn in the same pace. Therefore, it is the educator s role to discover alternative ways to promote the development of the various student abilities, restructuring the relationship between student the educator. 3. Cases of Virtual Environments Design Information collected in the form of preliminary questionnaires is used by adaptivity techniques to customize users experience. Such techniques are commonly used by Internet Portals in which, by the use of personal identification and a password, pages are shown in an individualized way. A good example is the virtual libraries, which can automatically display subjects previously researched by the user [3]. Hence, a computerized system is capable, to a great extent, of self-management, as control parameters and tolerance limits are established, which provide the conditions to enhance the result intended. Thus, the relevant adaptive systems that contributed to the development of this research are presented below. In a recent article, the intention was to present a software development process model, with corresponding methodology, that is specifically orientated to the development of a small application for a multimedia systems classroom, the so-called virtual laboratories. In this project, named VirtLab, the multimedia reproduction of a real laboratory into a computer system is presented as a virtual laboratory. The virtual components correspond to those of a real laboratory and are, for example, devices, accessories and substances normally found in this task model [5]. Many articles found in the literature are dedicated to introduce new interactions techniques, or to describe particular software configurations as well as their use in different situations. The environments presented above, in general, offer flexibility in 3D interactions, introduce particularities for their use and propose relevant characteristics for interactive assessment. A point in common among the environments identified is that they are dynamic (reactive) interfaces. This characteristic enables the environment to provide some suggestion of localization or orientation, in case users get distracted, or do not have the aptitude necessary for the interaction. However, in addition to these characteristics, there are other usability patterns that can be used to explore the interaction context even further. Examples of those factors may be displayed on the interface as wizards, guidance, error management, standard help or audiovisual alerts [6]. Applied to a pedagogic domain, a VE must be sufficiently flexible and attractive to attend all students needs, function in all levels of ability and academic performance, and engage a variety of intellectual possibilities, so that students may gather all their talents for the resolution of their tasks [7]. 4. The X3D-Based Framework For an interaction design to be successful, the need to involve various technologies leads to the understanding about the importance of how the users act and react to situations, and how they communicate and interact. One of the main benefits of these technologies, such as VR, is to offer alternative ways to represent and interact with information, which is not possible with traditional interaction technologies. Thus, VR has the potential to offer apprentices the possibility to explore ideas and concepts in different ways [8]. The environment developed in this work is characterized by its high interactivity, being capable of altering its behavior in a dynamic way in response to the variations detected when users are carrying out tasks (Figure 1). Therefore, having a pedagogical context in mind, the specific objectives of this work involved: (i) collect information on the handling of 3D interfaces, identifying the characteristics that can contribute to the management of the architecture; (ii) provide an environment composed by objects that offer interactive details relevant to the interface; (iii) apply a computational intelligence model that can supply responses in adequate time, not negatively affecting the feeling of involvement of users; (iv) adapt the interface to users, and not users to the interface, 160

169 minimizing information overload; and (v) introduce this adaptive model in a wide and diversified area (classroom). Figure 1: Cycle proposed by the framework 5. Implementation - Process Route From a pedagogical point of view, it has been attempted to develop an architecture that would enhance learning through users relationship with the environment s graphic interface. Thus, users feel confident in exploring those virtual spaces made available to them. Hence, the Interaction Layer consists of a group of virtual objects, in which each object is associated to an event, or group of events, to assist users in their tasks. The main responsibilities of the objects in this layer are: a) Present an initial interface - in case students do not possess a user model yet - or a customized interface, based on the current users models; b) Receive requests (inputs) from users; c) Collect information about users, such as features and behavior during the use of the computer or system by monitoring computer use (register programs concomitantly with the beginning of the activity, and monitor the activity s relevant processes), or by requesting this information directly from users; d) Control scene navigation through, for example, restrictions to the movements of the view point; e) Pause and re-start the activity, allowing flexibility during the activities development and administration; f) Register the activities running time; g) Re-present information to users in a customized fashion (individualized). The Behavior Layer consists of a set of pieces of information that promotes interface adaptation to users. The elements that compose this layer are the following: a) Build, represent, and keep adaptation models, according to users models; b) Update users models according to adaptation rules, adopting a retro-feeding system and analyzing the results for possible system effectiveness improvements; c) Process the information provided by users through an interface object, updating or, in case they do not exist yet, creating users models; d) Establish targets or infer suppositions about users, or group of users, based on users models; e) Reformulate users consultations, tasks and targets according to users models, and make them available for the corresponding adaptation object. The Modeling Layer, on the other hand, can be defined as a representation of some visual characteristics of 3D objects included in the scene, as well as the evolution of the interaction interface itself. This layer builds the environment through the observation of users behaviors when using the system, collecting information on their characteristics and interests. As a result, the system becomes capable of inferring facts (environment re-organization) for users based on their actions. The services provided by this layer are listed below: a) Encase characteristics, such as the colors and sizes of objects included in the scene; b) Remodel the visualization environment (scene objects), as well as the interaction environment (navigation controls, interface arrangement); c) Convert (update) files from VRML to X3D format; d) Include sonorous and visual alerts, as well as nonconventional help menu. 6. Case Study - Assessing the Approach The analysis and modeling work, discussed in the previous Sections, have been validated with a prototypical implementation of the Solar System, loaded in a commercial browser plug-in. The action of uploading an X3D file directly results in the installation of some kind of plug-in, in which the interaction controls are fixedly displayed and in different positions, which can be changed by updating introduced by manufactures. The process initially takes place with students going through a kind of log in to have access to the system; in case it is their first access, they are directed to register into the system. From then on, the collection of information on users starts with the definition of the file that will contain the data on the interaction. The next interface presents students with various educational contexts. Taking into consideration that students had already had access to the system, they will be able to proceed to the next task from the beginning, or to continue with some task already started. After choosing the activity, a generic interface is presented along an X3D file that contains the virtual scene. From this point on, as the 161

170 users interact with the environment, the concepts related to their profiles can be changed, in case an evolution in their knowledge state is identified (Figure 2). According to this state, the system determines if new objects should be inserted or updated in the VE. Thus, the system can adapt itself to users during their interaction with the environment. performance of tasks were not necessarily designed having users in mind. Actually, they were only typically designed as systems to carry out certain functions. Essentially, it means to develop interactive interfaces that are easy, pleasant and effective to use, always from users perspective. With the architecture presented here, it is attempted to contribute to the study of adaptive interfaces for the creation of an information-rich environment, which will increase the level of satisfaction of users when carrying out tasks pedagogical environments. 8. References Figure 2: Variations interfaces seeking accommodation to User Profile Based on the results obtained from the interactions taking place along the process, the environment may lead to the adoption of more adequate strategies to lead students learning of a particular subject. The objects composed by events and their respective characteristics may be reassessed and altered at any moment. In the end, all the system s processes result in this interface which will have to be unique for each user, containing easy access to all resources that, in thesis, will better contribute for the evolution of their learning. 7. Conclusions and Proposals for Further Research A question of relevance for the community that researches VEs concerns the difficulty a system has to create and update users profiles, since, in the great majority of these systems, users tend to have a static profile, i.e., one that do not progress with time, leading to loss of interest. In this work, an architecture that tries to assist in preserving users interest was presented. Based on dynamic user interaction, it is possible to predict new interests, and surprise users with objects displayed in more attractive areas. This results in a more adequate learning environment to users individual profile, as well as supplying the conditions for developing different forms of competence, and thus empowering the learning process. Many digital interfaces that require the manipulation of information by users for the [1] STUERZLINGER, W.; CHAPUIS, O.; PHILLIPS, D.; ROUSSEL, N. User interface façades: towards fully adaptable user interfaces. In Proceedings of the 19 th Annual ACM Symposium on User interface Software and Technology (Montreux, Switzerland, October 15-18, 2006). UIST 06. ACM Press, New York, NY, [2] HENRICKSEN, K.; INDULSKA, J. Adapting the Web Interface: An Adaptive Web Browser. Proceedings of the Second Australasian User Interface Conference (AUIC.01) X/01, IEEE, 2001 [3] CELENTANO, A.; PITTARELLO, F. Observing and adapting user behavior in navigational 3D interfaces. In Proceedings of the Working Conference on Advanced Visual interfaces (Gallipoli, Italy, May 25 28, 2004). AVI 04. ACM Press, New York, NY, [4] GARDNER, H. Frames of Mind: The Theory of Multiple Intelligences. Basic Books 10 th edition, April 20, [5] SCHERP, A. Software Development Process Model and Methodology for Virtual Laboratories. In Proceedings of the 20 th IASTED International Multi-Conference Applied Informatics (AI 2002), Innsbruck, Austria, February 18-21, [6] JURISTO, N.; LOPEZ, M.; MORENO, A.; SÁNCHEZ, M. Improving Software Usability through Architectural Patterns. In: Workshop Bridging the Gaps between SE and HCI - International Conference on Software Engineering (ICSE), 2003, USA. 2003, pp [7] WISKE, Martha Stone. Teaching for Understanding: Linking Research with Practice. Jossey Bass Education Series. October 1997 [8] PREECE, Jennifer; ROGERS, Yvonne; SHARP, Helen. Interaction Design: Beyond Human-computer Interaction. Publisher: John Wiley & Sons; 2nd Edition (12 Jan 2007) 162

171 AIHIPER Um Agente Inteligente identificador de crianças portadoras de TDA/H Hudson Afonso B. Da Silva, Claudivan da Silva Miranda, Zildomar Carlos Felix, Alex de Souza Vieira, Paulo Cezar Cardoso P. R. Filho Universidade Federal do Pará - UFPA Faculdade de Computação FACOM Curso de Sistemas de Informação Campus de Marabá CAMAR hudson_bs@hotmail.com, claucsmborder@hotmail.com, zildomarf@gmail.com, lexvieira@ig.com.br, p_a_u_l_o_c@hotmail.com Abstract: This article presents the AIHIPER, an intelligent agent designed to identify children who show symptoms of ADHD - Disorder Attention Deficit / Hyperactivity Disorder). The main objective is more easily identify a child who needs special attention for possessing ADHD and help you to better school performance and social development, assisting teachers in the identification of abnormal behavior of the child before they will cause more consequences serious. Keywords: Attention-deficit/hyperactivity, Expert Systems, Agent. Resumo: Este artigo apresenta o AIHIPER, um agente inteligente desenvolvido para identificar indícios que podem levar crianças a apresentar sintomas de TDAH Transtorno de Déficit de Atenção/ Hiperatividade). Seu objetivo central é identificar com mais facilidade uma criança que necessite de atenção especial por apresentar possibilidades de portar indícios TDAH e ajudá-la a ter um melhor desempenho escolar e social, auxiliando a profissional área no processo de identificação dos comportamentos anormais da criança antes que os mesmos venham causar conseqüências mais graves. Palavras-chaves: TDAH, Sistema Especialista, Agentes 1. INTRODUÇÃO Atualmente é comum presenciar em diversos cenários, e principalmente no educacional, crianças que se apresentam bastante agitadas e inquietas, ou às vezes com uma postura completamente adversa, ou seja, distante sem prestar a atenção, simplesmente desatenta ao meio. No âmbito educacional, esse tipo de comportamento pode trazer sérios prejuízos ao desenvolvimento intelectual. No entanto, outro grande prejuízo é presenciar as pessoas de forma errônea classificar grande parte destas crianças como Hiperativas. O diagnóstico para Transtorno de Déficit de Atenção/ Hiperatividade-TDAH não pode ser dado sem uma fundamentação teórica e científica, deve ser feito por profissionais capacitados para tal tarefa. As crianças e adolescentes com instabilidade de atenção e hiperatividade têm problemas para controlar seu comportamento, conseqüentemente seu rendimento escolar pode ser insuficiente, o que representa um desafio para seus pais, professores, pediatras e para eles mesmos. Segundo estatísticas, a incidência com maior freqüência é nos meninos que nas meninas e os afeta principalmente na idade pré-escolar. Sabe-se que seu comportamento é de uma criança muito travessa e que é difícil controlar-se, conduta que os pais e professores devem entender, para oferecer todo o apoio [6]. Topczewski [10] alerta que nem todas as crianças inquietas sofrem de hiperatividade, logo é necessário um diagnóstico feito por profissionais adequados. Este diagnóstico deverá conter dados da escola, da casa e um 163

172 histórico familiar para diferenciar a TDAH de agitação natural. O Transtorno do Déficit de Atenção/Hiperatividade (TDA/H), descrito pela primeira vez em 1902, recebeu diversas denominações ao longo dos anos e foi considerado um distúrbio grave. Mas é importante saber que não se trata de uma neurose, um desequilíbrio psicológico ou uma deformação de caráter. É, sim, um problema biológico, resultado de uma instabilidade neuroquímica do sistema de transmissão de informações entre as várias partes do cérebro. É importante diagnosticar os transtornos e/ou deficiências de aprendizagem no início da vida escolar, evitando, dessa forma, dificuldades futuras [1]. Antunes [9] compara a vítima de TDAH, ao míope. Explica que o míope resolve tudo com um simples óculos, mas que existem milhares de crianças com inabilidades ainda invisíveis para seus professores. Pela discriminação que sofrem os TDAH, é que é necessário que se fale muito da miopia da atenção, é imprescindível que se busquem depressa os óculos para a TDAH e não faça de alunos com deficiências contornáveis, pessoas predispostas à crítica, amarguradas pela culpa. Uso de ambientes virtuais tem sido utilizado por vários profissionais da área de educação como ferramenta pedagógica nas mais diversas atividades, tais como: monitoramento de discussões em fóruns, formação de grupos para atividades colaborativas, e dentre outras. Essas ferramentas além de fornecer apoio educacional, podem ser usadas para capturar/obter informações dos alunos, e essas informações podem auxiliar o professor e outros profissionais a identificar possíveis problemas no âmbito educacional. Assim, o uso de ambientes virtuais podem também ser utilizados com o propósito de procurar e oferecer indícios que leve a um diagnóstico precoce. Deste modo, este trabalho tem por objetivo construir um ambiente virtual onde será inserido um Agente Inteligente para procurar indícios para identificar crianças que possam apresentar sintomas de TDAH - Transtorno de Déficit de Atenção/ Hiperatividade). Esse trabalho não tem a finalidade de substituir o psicólogo, psicopedagogo ou outro profissional responsável pelo diagnóstico, o agente busca informações a partir de tarefas que serão disponibilizadas no ambiente para poder auxiliar os profissionais competentes pela área. O maior objetivo é tentar oferecer um mecanismo possa ajudar as crianças a ter um melhor desempenho escolar e social, uma vez que este identifica os comportamentos anormais antes que os mesmos venham causar conseqüências mais graves. Este artigo está organizado da seguinte forma: Na seção 2, são apresentados conceitos relacionados com transtorno por déficit de atenção e hiperatividade; na seção 3 será apresentada a proposta para o desenvolvimento do Agente Inteligente, com sua arquitetura e seus módulos. Na seção 5 são apresentadas as conclusões e propostos trabalhos futuros 2. TRANSTORNO POR DÉFICIT DE ATENÇÃO/HIPERATIVIDADE O Na década de 40, o transtorno por déficit de atenção/hiperatividade começou a ser considerado como decorrente de uma disfunção cerebral mínima, visto que as crianças apresentavam sintomas (hiperatividade, desatenção e desorganização) semelhantes aos daquelas que haviam contraído encefalite letárgica [3]. Os problemas de aprendizagem observados no aluno com essa disfunção eram considerados como decorrentes de alterações no Sistema Nervoso Central, as quais não afetavam, entretanto, o desenvolvimento intelectual da criança [5]. Foi proposto no DSM-III [4] o uso do termo distúrbio por déficit de atenção com ou sem hiperatividade, com a seguinte classificação: com hiperatividade, sem hiperatividade e tipo residual. Acreditava-se que tal distúrbio pudesse ser encontrado em 3% na população em idade escolar. Para o diagnóstico diferencial, os sintomas deveriam ter aparecido na criança antes dos sete anos, assim como precisavam estar ocorrendo há pelo menos seis meses [4]. É importante ressaltar que os sintomas da hiperatividade devem ser constantes, com duração mínima de 6 meses e não estarem limitados a uma situação apenas. Também é necessário que eles realmente tragam prejuízo para a vida do portador. Geralmente não apresentam atraso intelectual e sim dificuldade de adaptação aos ambientes sociais. A pessoa do tipo desatento deve apresentar, pelo menos, 6 das características conforme a tabela 1. Tabela 1: Característica desatento [4] Característica 1 Não enxerga detalhes e faz erros por falta de cuidado 2 Tem dificuldade em manter a atenção 3 Parece não ouvir quando se fala com ela 4 Tem dificuldade na organização 5 Não gosta de tarefas que exigem esforço 164

173 mental prolongado 6 Freqüentemente perde objetos 7 Distrai-se com facilidade 8 Esquecimento nas atividades rotineiras A pessoa do tipo hiperativo/impulsivo deve apresentar, pelo menos, 6 das características conforme tabela 2. Tabela 2: Característica hiperativo/impulsivo [4] Característica 1 Inquietação, mexendo as mãos e os pés ou não parando quieta na cadeira 2 Tem dificuldade em permanecer sentada 3 Corre sem destino (em adultos, sentimento de inquietação) 4 Dificuldade em fazer uma atividade quieta ou em silêncio 5 Fala excessivamente 6 Responde a perguntas antes delas serem formuladas 7 Age como se fosse movida a motor 8 Tem dificuldade em esperar a vez 9 Interrompe conversas e se intromete O estudo sobre hiperatividade tem sido uma das necessidades atualmente, pois este transtorno vem sendo bem comum não só nos países desenvolvidos, como também nos países em desenvolvimento. A motivação maior é procurar soluções que possam minimizar esse problema. 3. A PROPOSTA DO AGENTE INTELIGENTE AIHIPER O objetivo desta ferramenta desenvolvida consiste em ajudar os professores a detectar em seus alunos a existência ou não de indícios que possam ser utilizados para diagnosticar de algum tipo de TDA/H pelo profissional habilitado, a partir daí, permitir que o professor, por meios de atividades pré-definidas, aperfeiçoe o processo de ensino aprendizagem como foco especial nos alunos que precisam de auxílio especial. Os professores poderão incluir atividades para seus alunos no sistema e, essas atividades deverão fazer parte de uma estratégia pedagógica definida previamente. Após a realização das atividades, o professor deve preencher um formulário, este formulário é baseado no DSM-III [4], os dados coletados serão analisados pelo Agente Inteligente AIHIPER, e poderão fornecer indícios se o aluno possui ou não algum distúrbio de atenção. Com essa ferramenta o trabalho do professor torna-se mais eficiente, devido o fato da possível préidentificação de uma possibilidade de distúrbio que venha atrapalhar o aluno no seu desenvolvimento num ambiente escolar. O agente aqui estudado não exerce o papel de psicopedagogo em sua totalidade, ele possibilita o auxílio para identificar a três tipos de diagnósticos, os quais são tipo: (a) desatento, (b) hiperativo/impulsivo, e (c) o tipo combinado, que é a combinação de características dos dois grupos anteriores ARQUITETURA Nesta seção será apresentada a arquitetura do Agente Inteligente, bem como os módulos que fazem parte da mesma. O Agente AIHIPER é um Agente Reativo simples. Nos agentes reflexivos, cada percepção dispara alguma ação pré-estabelecida no programa, sendo esta relação uma simples regra do tipo <condição, ação> onde a condição é dada pela percepção do agente. A figura 1 mostra a arquitetura geral da aplicação, nesta, pode-se destacar o agente AIHIPER. O agente possui integração com alguns módulos importantes, tais como: (a) modelo do Aluno, (b) módulos de estratégias pedagógicas, (c) gerador de cenários e (d) a base de conhecimento. Professor Alunos Interface Agente AIHIPER Estratégias Pedagógicas Modelo Do Aluno Figura 1 Arquitetura da Aplicação Gerador De Cenários Base de Conhecimento Relatórios 165

Utilizando Lógica Fuzzy para Avaliar a Qualidade de uma Compra Via Internet

Utilizando Lógica Fuzzy para Avaliar a Qualidade de uma Compra Via Internet Utilizando Lógica Fuzzy para Avaliar a Qualidade de uma Compra Via Internet Leonardo Martins Rodrigues 1 e Graçaliz Pereira Dimuro 1 1 Programa de Pós-Graduação em Modelagem Computacional Universidade

Leia mais

Aplicação de Agentes BDI com Percepção Fuzzy em um Modelo Presa-Predador Fuzzy

Aplicação de Agentes BDI com Percepção Fuzzy em um Modelo Presa-Predador Fuzzy Aplicação de Agentes BDI com Percepção Fuzzy em um Modelo Presa-Predador Fuzzy Giovani Parente Farias 2 Graçaliz Pereira Dimuro 2 Antônio Carlos da Rocha Costa 2 Resumo: Este artigo introduz um modelo

Leia mais

Complemento III Noções Introdutórias em Lógica Nebulosa

Complemento III Noções Introdutórias em Lógica Nebulosa Complemento III Noções Introdutórias em Lógica Nebulosa Esse documento é parte integrante do material fornecido pela WEB para a 2ª edição do livro Data Mining: Conceitos, técnicas, algoritmos, orientações

Leia mais

Francisca Raquel de Vasconcelos Silveira Gustavo Augusto Lima de Campos Mariela Inés Cortés

Francisca Raquel de Vasconcelos Silveira Gustavo Augusto Lima de Campos Mariela Inés Cortés Francisca Raquel de Vasconcelos Silveira Gustavo Augusto Lima de Campos Mariela Inés Cortés Introdução Trabalhos Relacionados Abordagem Proposta Considerações Finais Conclusão Trabalhos Futuros 2 Agentes

Leia mais

ESTUDO DE CASO: LeCS: Ensino a Distância

ESTUDO DE CASO: LeCS: Ensino a Distância ESTUDO DE CASO: LeCS: Ensino a Distância HERMOSILLA, Lígia Docente da Faculdade de Ciências Jurídicas e Gerenciais de Garça FAEG - Labienópolis - CEP 17400-000 Garça (SP) Brasil Telefone (14) 3407-8000

Leia mais

Gerenciamento de Projetos Modulo II Ciclo de Vida e Organização do Projeto

Gerenciamento de Projetos Modulo II Ciclo de Vida e Organização do Projeto Gerenciamento de Projetos Modulo II Ciclo de Vida e Organização do Projeto Prof. Walter Cunha falecomigo@waltercunha.com http://waltercunha.com PMBoK Organização do Projeto Os projetos e o gerenciamento

Leia mais

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia.

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia. 1 Introdução aos Sistemas de Informação 2002 Aula 4 - Desenvolvimento de software e seus paradigmas Paradigmas de Desenvolvimento de Software Pode-se considerar 3 tipos de paradigmas que norteiam a atividade

Leia mais

DAS6607 - Inteligência Artificial Aplicada à Controle de Processos e Automação Industrial

DAS6607 - Inteligência Artificial Aplicada à Controle de Processos e Automação Industrial DAS6607 - Inteligência Artificial Aplicada à Controle de Processos e Automação Industrial Aluno: André Faria Ruaro Professores: Jomi F. Hubner e Ricardo J. Rabelo 29/11/2013 1. Introdução e Motivação 2.

Leia mais

Simulação Transiente

Simulação Transiente Tópicos Avançados em Avaliação de Desempenho de Sistemas Professores: Paulo Maciel Ricardo Massa Alunos: Jackson Nunes Marco Eugênio Araújo Dezembro de 2014 1 Sumário O que é Simulação? Áreas de Aplicação

Leia mais

PESQUISA SOBRE O PERFIL DE ALUNOS NA UTILIZAÇÃO DE UM SITE DOCENTE DO ENSINO SUPERIOR

PESQUISA SOBRE O PERFIL DE ALUNOS NA UTILIZAÇÃO DE UM SITE DOCENTE DO ENSINO SUPERIOR PESQUISA SOBRE O PERFIL DE ALUNOS NA UTILIZAÇÃO DE UM SITE DOCENTE DO ENSINO SUPERIOR Wesley Humberto da Silva (Fundação Araucária), André Luis Andrade Menolli (Orientador) e-mail: wesleyhumberto11@mail.com

Leia mais

Avaliação Fuzzy de Trocas Sociais entre Agentes com Personalidades

Avaliação Fuzzy de Trocas Sociais entre Agentes com Personalidades Avaliação Fuzzy de Trocas Sociais entre Agentes com Personalidades André V. dos Santos, Graçaliz P. Dimuro Programa de Pós-Graduação em Informática, UCPel, Rua Felix da Cunha 412, 96010-000 Pelotas, Brasil

Leia mais

Instituto de Computação, Universidade Federal do Amazonas (UFAM) Manaus-AM, Brasil

Instituto de Computação, Universidade Federal do Amazonas (UFAM) Manaus-AM, Brasil Elicitação de Requisitos a partir de Modelos de Processos de Negócio e Modelos Organizacionais: Uma pesquisa para definição de técnicas baseadas em heurísticas Marcos A. B. de Oliveira 1, Sérgio R. C.

Leia mais

Introdução a computação móvel. Middlewares para Rede de Sensores sem Fio. Uma avaliação na ótica de Adaptação ao Contexto

Introdução a computação móvel. Middlewares para Rede de Sensores sem Fio. Uma avaliação na ótica de Adaptação ao Contexto Introdução a computação móvel Monografia: Middlewares para Rede de Sensores sem Fio Uma avaliação na ótica de Adaptação ao Contexto Adriano Branco Agenda Objetivo do trabalho O que é uma WSN Middlewares

Leia mais

Pós-Graduação em Gerenciamento de Projetos práticas do PMI

Pós-Graduação em Gerenciamento de Projetos práticas do PMI Pós-Graduação em Gerenciamento de Projetos práticas do PMI Planejamento do Gerenciamento das Comunicações (10) e das Partes Interessadas (13) PLANEJAMENTO 2 PLANEJAMENTO Sem 1 Sem 2 Sem 3 Sem 4 Sem 5 ABRIL

Leia mais

Análise crítica dos resultados oriundos de certificados de calibração relativo à calibração de bloco-padrão utilizando lógica fuzzy.

Análise crítica dos resultados oriundos de certificados de calibração relativo à calibração de bloco-padrão utilizando lógica fuzzy. Análise crítica dos resultados oriundos de certificados de calibração relativo à calibração de bloco-padrão utilizando lógica fuzzy. Flávio Carnelli Frade 1,2, Pedro Bastos Costa 1,3, Giovane Quadreli

Leia mais

ALESSANDRO RODRIGO FRANCO FERNANDO MARTINS RAFAEL ALMEIDA DE OLIVEIRA

ALESSANDRO RODRIGO FRANCO FERNANDO MARTINS RAFAEL ALMEIDA DE OLIVEIRA ALESSANDRO RODRIGO FRANCO FERNANDO MARTINS RAFAEL ALMEIDA DE OLIVEIRA INTRODUÇÃO O projeto de um banco de dados é realizado sob um processo sistemático denominado metodologia de projeto. O processo do

Leia mais

2. Representação Numérica

2. Representação Numérica 2. Representação Numérica 2.1 Introdução A fim se realizarmos de maneira prática qualquer operação com números, nós precisamos representa-los em uma determinada base numérica. O que isso significa? Vamos

Leia mais

Módulo 15 Resumo. Módulo I Cultura da Informação

Módulo 15 Resumo. Módulo I Cultura da Informação Módulo 15 Resumo Neste módulo vamos dar uma explanação geral sobre os pontos que foram trabalhados ao longo desta disciplina. Os pontos abordados nesta disciplina foram: Fundamentos teóricos de sistemas

Leia mais

Segurança e Escalabilidade em WebLab no Domínio de Redes de Computadores

Segurança e Escalabilidade em WebLab no Domínio de Redes de Computadores Segurança e Escalabilidade em WebLab no Domínio de Redes de Computadores Autor: Daniel Vieira de Souza 1, Orientador: Luís Fernando Faina 1 1 Programa de Pós-Graduação em Ciência da Computação Universidade

Leia mais

MÓDULO 6 INTRODUÇÃO À PROBABILIDADE

MÓDULO 6 INTRODUÇÃO À PROBABILIDADE MÓDULO 6 INTRODUÇÃO À PROBBILIDDE Quando estudamos algum fenômeno através do método estatístico, na maior parte das vezes é preciso estabelecer uma distinção entre o modelo matemático que construímos para

Leia mais

PERFIL EMPREENDEDOR DE ALUNOS DE GRADUAÇÃO EM DESIGN DE MODA

PERFIL EMPREENDEDOR DE ALUNOS DE GRADUAÇÃO EM DESIGN DE MODA PERFIL EMPREENDEDOR DE ALUNOS DE GRADUAÇÃO EM DESIGN DE MODA Alini, CAVICHIOLI, e-mail¹: alini.cavichioli@edu.sc.senai.br Fernando Luiz Freitas FILHO, e-mail²: fernando.freitas@sociesc.org.br Wallace Nóbrega,

Leia mais

Requisitos de Software

Requisitos de Software Requisitos de Software Centro de Informática - Universidade Federal de Pernambuco Kiev Gama kiev@cin.ufpe.br Slides originais elaborados por Ian Sommerville e adaptado pelos professores Márcio Cornélio,

Leia mais

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação SOFT DISCIPLINA: Engenharia de software AULA NÚMERO: 08 DATA: / / PROFESSOR: Andrey APRESENTAÇÃO O objetivo desta aula é apresentar e discutir conceitos relacionados a modelos e especificações. Nesta aula

Leia mais

Universidade Federal de Uberlândia Brasil

Universidade Federal de Uberlândia Brasil s de s do Universidade Federal de Uberlândia Brasil Índice s de 1 2 3 4 5 Índice s de 1 2 3 4 5 s de Quando surge uma praga em uma lavoura, os agricultores utilizam de inseticidas eficientes ao maior número

Leia mais

TEORIAS DE CONTÉUDO DA MOTIVAÇÃO:

TEORIAS DE CONTÉUDO DA MOTIVAÇÃO: Fichamento / /2011 MOTIVAÇÃO Carga horária 2 HORAS CONCEITO: É o desejo de exercer um alto nível de esforço direcionado a objetivos organizacionais, condicionados pela habilidade do esforço em satisfazer

Leia mais

UNIVERSIDADE FEDERAL DE SANTA CATARINA

UNIVERSIDADE FEDERAL DE SANTA CATARINA UNIVERSIDADE FEDERAL DE SANTA CATARINA CIÊNCIAS DA COMPUTAÇÃO MÁQUINAS DE COMITÊ APLICADAS À FILTRAGEM DE SPAM Monografia submetida à UNIVERSIDADE FEDERAL DE SANTA CATARINA para a obtenção do grau de BACHAREL

Leia mais

15 Computador, projeto e manufatura

15 Computador, projeto e manufatura A U A UL LA Computador, projeto e manufatura Um problema Depois de pronto o desenho de uma peça ou objeto, de que maneira ele é utilizado na fabricação? Parte da resposta está na Aula 2, que aborda as

Leia mais

ü Curso - Bacharelado em Sistemas de Informação

ü Curso - Bacharelado em Sistemas de Informação Curso - Bacharelado em Sistemas de Informação Nome e titulação do Coordenador: Coordenador: Prof. Wender A. Silva - Mestrado em Engenharia Elétrica (Ênfase em Processamento da Informação). Universidade

Leia mais

Engenharia de Requisitos

Engenharia de Requisitos Engenharia de Requisitos Introdução a Engenharia de Requisitos Professor: Ricardo Argenton Ramos Aula 08 Slide 1 Objetivos Introduzir a noção de requisitos do sistema e o processo da engenharia de requisitos.

Leia mais

Começo por apresentar uma breve definição para projecto e para gestão de projectos respectivamente.

Começo por apresentar uma breve definição para projecto e para gestão de projectos respectivamente. The role of Project management in achieving Project success Ao longo da desta reflexão vou abordar os seguintes tema: Definir projectos, gestão de projectos e distingui-los. Os objectivos da gestão de

Leia mais

As Organizações e a Teoria Organizacional

As Organizações e a Teoria Organizacional Página 1 de 6 As Organizações e a Teoria Organizacional Autora: Sara Fichman Raskin Este texto é totalmente baseado no primeiro capítulo do livro Organizational theory: text and cases, do autor Jones Gareth,

Leia mais

Requisitos de Software. Requisitos de Software. Requisitos de Software. Requisitos de Software. Requisitos de Software. Requisitos de Software

Requisitos de Software. Requisitos de Software. Requisitos de Software. Requisitos de Software. Requisitos de Software. Requisitos de Software INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE Curso Técnico em Informática ENGENHARIA DE SOFTWARE Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br Clayton Maciel Costa

Leia mais

FATEC Cruzeiro José da Silva. Ferramenta CRM como estratégia de negócios

FATEC Cruzeiro José da Silva. Ferramenta CRM como estratégia de negócios FATEC Cruzeiro José da Silva Ferramenta CRM como estratégia de negócios Cruzeiro SP 2008 FATEC Cruzeiro José da Silva Ferramenta CRM como estratégia de negócios Projeto de trabalho de formatura como requisito

Leia mais

Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO)

Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO) Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO) Parte: 1 Prof. Cristóvão Cunha Objetivos de aprendizagem

Leia mais

Projeto de Sistemas I

Projeto de Sistemas I Instituto Federal de Educação, Ciência e Tecnologia de São Paulo Projeto de Sistemas I Professora: Kelly de Paula Cunha E-mail:kellypcsoares@ifsp.edu.br Requisitos: base para todo projeto, definindo o

Leia mais

DESENVOLVIMENTO DE INTERFACE WEB MULTIUSUÁRIO PARA SISTEMA DE GERAÇÃO AUTOMÁTICA DE QUADROS DE HORÁRIOS ESCOLARES. Trabalho de Graduação

DESENVOLVIMENTO DE INTERFACE WEB MULTIUSUÁRIO PARA SISTEMA DE GERAÇÃO AUTOMÁTICA DE QUADROS DE HORÁRIOS ESCOLARES. Trabalho de Graduação DESENVOLVIMENTO DE INTERFACE WEB MULTIUSUÁRIO PARA SISTEMA DE GERAÇÃO AUTOMÁTICA DE QUADROS DE HORÁRIOS ESCOLARES Trabalho de Graduação Orientando: Vinicius Stein Dani vsdani@inf.ufsm.br Orientadora: Giliane

Leia mais

Sistema para Visualização dos Resultados de Pesquisas de Clima Organizacional. PERSPECTIVA Consultores Associados Ltda.

Sistema para Visualização dos Resultados de Pesquisas de Clima Organizacional. PERSPECTIVA Consultores Associados Ltda. PERSPECTIVA Consultores Associados Ltda. Sistema para Visualização dos Resultados de Pesquisas de Clima Organizacional Manual do Usuário Este documento é de autoria da PERSPECTIVA Consultores Associados

Leia mais

Análise qualitativa do processo de workflow da ouvidoria do IFMG campus Bambuí: um estudo de caso

Análise qualitativa do processo de workflow da ouvidoria do IFMG campus Bambuí: um estudo de caso Análise qualitativa do processo de workflow da ouvidoria do IFMG campus Bambuí: um estudo de caso Estefânia Paula da SILVA¹; Lígia Maria SOARES PASSOS² ¹ Aluna do curso de Engenharia de Produção do IFMG

Leia mais

Extração de Requisitos

Extração de Requisitos Extração de Requisitos Extração de requisitos é o processo de transformação das idéias que estão na mente dos usuários (a entrada) em um documento formal (saída). Pode se entender também como o processo

Leia mais

CAPÍTULO 1 - CONTABILIDADE E GESTÃO EMPRESARIAL A CONTROLADORIA

CAPÍTULO 1 - CONTABILIDADE E GESTÃO EMPRESARIAL A CONTROLADORIA CAPÍTULO 1 - CONTABILIDADE E GESTÃO EMPRESARIAL A CONTROLADORIA Constata-se que o novo arranjo da economia mundial provocado pelo processo de globalização tem afetado as empresas a fim de disponibilizar

Leia mais

Maíra Ribeiro Rodrigues

Maíra Ribeiro Rodrigues Seminário PPGINF - UCPel Maíra Ribeiro Rodrigues maira.r.rodrigues@gmail.com University of Southampton, UK Formação Bacharelado em Ciência da Computação UCPel, 2000. Tópico: Agentes Improvisacionais de

Leia mais

Capítulo 4 - Roteamento e Roteadores

Capítulo 4 - Roteamento e Roteadores Capítulo 4 - Roteamento e Roteadores 4.1 - Roteamento Roteamento é a escolha do módulo do nó de origem ao nó de destino por onde as mensagens devem transitar. Na comutação de circuito, nas mensagens ou

Leia mais

Lean Seis Sigma e Benchmarking

Lean Seis Sigma e Benchmarking Lean Seis Sigma e Benchmarking Por David Vicentin e José Goldfreind O Benchmarking elimina o trabalho de adivinhação observando os processos por trás dos indicadores que conduzem às melhores práticas.

Leia mais

Introdução ao Aplicativo de Programação LEGO MINDSTORMS Education EV3

Introdução ao Aplicativo de Programação LEGO MINDSTORMS Education EV3 Introdução ao Aplicativo de Programação LEGO MINDSTORMS Education EV3 A LEGO Education tem o prazer de trazer até você a edição para tablet do Software LEGO MINDSTORMS Education EV3 - um jeito divertido

Leia mais

Engenharia de Software III

Engenharia de Software III Engenharia de Software III Casos de uso http://dl.dropbox.com/u/3025380/es3/aula6.pdf (flavio.ceci@unisul.br) 09/09/2010 O que são casos de uso? Um caso de uso procura documentar as ações necessárias,

Leia mais

ENGENHARIA DE SOFTWARE I

ENGENHARIA DE SOFTWARE I ENGENHARIA DE SOFTWARE I Prof. Cássio Huggentobler de Costa [cassio.costa@ulbra.br] Twitter: www.twitter.com/cassiocosta_ Agenda da Aula (002) Metodologias de Desenvolvimento de Softwares Métodos Ágeis

Leia mais

PRÓ-MATATEMÁTICA NA FORMAÇÃO DE PROFESSORES

PRÓ-MATATEMÁTICA NA FORMAÇÃO DE PROFESSORES PRÓ-MATATEMÁTICA NA FORMAÇÃO DE PROFESSORES Regina Luzia Corio de Buriasco * UEL reginaburiasco@sercomtel.com.br Magna Natália Marin Pires* UEL magna@onda.com.br Márcia Cristina de Costa Trindade Cyrino*

Leia mais

5 Mecanismo de seleção de componentes

5 Mecanismo de seleção de componentes Mecanismo de seleção de componentes 50 5 Mecanismo de seleção de componentes O Kaluana Original, apresentado em detalhes no capítulo 3 deste trabalho, é um middleware que facilita a construção de aplicações

Leia mais

Universidade Federal de Pernambuco

Universidade Federal de Pernambuco Universidade Federal de Pernambuco GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO CENTRO DE INFORMÁTICA 201 1. 2 Sistema de Gestão de Processos de Negócio Baseado em Modelos Declarativos Proposta de Trabalho de Graduação

Leia mais

Roteiro. Arquitetura. Tipos de Arquitetura. Questionário. Centralizado Descentralizado Hibrido

Roteiro. Arquitetura. Tipos de Arquitetura. Questionário. Centralizado Descentralizado Hibrido Arquitetura Roteiro Arquitetura Tipos de Arquitetura Centralizado Descentralizado Hibrido Questionário 2 Arquitetura Figura 1: Planta baixa de uma casa 3 Arquitetura Engenharia de Software A arquitetura

Leia mais

GereComSaber. Disciplina de Desenvolvimento de Sistemas de Software. Sistema de Gestão de Serviços em Condomínios

GereComSaber. Disciplina de Desenvolvimento de Sistemas de Software. Sistema de Gestão de Serviços em Condomínios Universidade do Minho Conselho de Cursos de Engenharia Licenciatura em Engenharia Informática 3ºAno Disciplina de Desenvolvimento de Sistemas de Software Ano Lectivo de 2009/2010 GereComSaber Sistema de

Leia mais

Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA

Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA RESUMO Ricardo Della Libera Marzochi A introdução ao Service Component Architecture (SCA) diz respeito ao estudo dos principais fundamentos

Leia mais

Metodologia e Gerenciamento do Projeto na Fábrica de Software v.2

Metodologia e Gerenciamento do Projeto na Fábrica de Software v.2 .:: Universidade Estadual de Maringá Bacharelado em Informática Eng. de Software III :. Sistema de Gerenciamento de Eventos - Equipe 09 EPSI Event Programming System Interface Metodologia e Gerenciamento

Leia mais

ROTEIRO PARA ELABORAÇÃO DE PROJETOS

ROTEIRO PARA ELABORAÇÃO DE PROJETOS APRESENTAÇÃO ROTEIRO PARA ELABORAÇÃO DE PROJETOS Breve histórico da instituição seguido de diagnóstico e indicadores sobre a temática abrangida pelo projeto, especialmente dados que permitam análise da

Leia mais

APOO Análise e Projeto Orientado a Objetos. Requisitos

APOO Análise e Projeto Orientado a Objetos. Requisitos + APOO Análise e Projeto Orientado a Objetos Requisitos Requisitos 2 n Segundo Larman: n São capacidades e condições às quais o sistema e em termos mais amplos, o projeto deve atender n Não são apenas

Leia mais

Chamada de Participação V Competição de Avaliação - IHC 2012

Chamada de Participação V Competição de Avaliação - IHC 2012 XI Simpósio Brasileiro de Fatores Humanos em Sistemas Computacionais - 2012 5 a 9 de Novembro de 2012 Cuiabá MT www.ufmt.br/ihc12 Chamada de Participação V Competição de Avaliação - IHC 2012 O Simpósio

Leia mais

ESTUDO DE VIABILIDADE. Santander, Victor - Unioeste Aula de Luiz Eduardo Guarino de Vasconcelos

ESTUDO DE VIABILIDADE. Santander, Victor - Unioeste Aula de Luiz Eduardo Guarino de Vasconcelos ESTUDO DE VIABILIDADE Santander, Victor - Unioeste Aula de Luiz Eduardo Guarino de Vasconcelos Objetivos O que é um estudo de viabilidade? O que estudar e concluir? Benefícios e custos Análise de Custo/Benefício

Leia mais

MASSACHUSETTS INSTITUTE OF TECHNOLOGY Sloan School of Management

MASSACHUSETTS INSTITUTE OF TECHNOLOGY Sloan School of Management MASSACHUSETTS INSTITUTE OF TECHNOLOGY Sloan School of Management 15.565 INTEGRAÇÃO DE SISTEMAS DE INFORMAÇÃO: FATORES TECNOLÓGICOS, ESTRATÉGICOS E ORGANIZACIONAIS Panorama Funcional CP0 -- INTRODUÇÃO AO

Leia mais

Glossário Apresenta a definição dos termos, siglas e abreviações utilizadas no contexto do projeto Citsmart.

Glossário Apresenta a definição dos termos, siglas e abreviações utilizadas no contexto do projeto Citsmart. Apresenta a definição dos termos, siglas e abreviações utilizadas no contexto do projeto Citsmart. Versão 1.6 15/08/2013 Visão Resumida Data Criação 15/08/2013 Versão Documento 1.6 Projeto Responsáveis

Leia mais

Capítulo 3. Avaliação de Desempenho. 3.1 Definição de Desempenho

Capítulo 3. Avaliação de Desempenho. 3.1 Definição de Desempenho 20 Capítulo 3 Avaliação de Desempenho Este capítulo aborda como medir, informar e documentar aspectos relativos ao desempenho de um computador. Além disso, descreve os principais fatores que influenciam

Leia mais

PLANEJAMENTO DA MANUFATURA

PLANEJAMENTO DA MANUFATURA 58 FUNDIÇÃO e SERVIÇOS NOV. 2012 PLANEJAMENTO DA MANUFATURA Otimizando o planejamento de fundidos em uma linha de montagem de motores (II) O texto dá continuidade à análise do uso da simulação na otimização

Leia mais

4 Segmentação. 4.1. Algoritmo proposto

4 Segmentação. 4.1. Algoritmo proposto 4 Segmentação Este capítulo apresenta primeiramente o algoritmo proposto para a segmentação do áudio em detalhes. Em seguida, são analisadas as inovações apresentadas. É importante mencionar que as mudanças

Leia mais

IW10. Rev.: 02. Especificações Técnicas

IW10. Rev.: 02. Especificações Técnicas IW10 Rev.: 02 Especificações Técnicas Sumário 1. INTRODUÇÃO... 1 2. COMPOSIÇÃO DO IW10... 2 2.1 Placa Principal... 2 2.2 Módulos de Sensores... 5 3. APLICAÇÕES... 6 3.1 Monitoramento Local... 7 3.2 Monitoramento

Leia mais

Pós-Graduação em Engenharia Elétrica Inteligência Artificial

Pós-Graduação em Engenharia Elétrica Inteligência Artificial Pós-Graduação em Engenharia Elétrica Inteligência Artificial João Marques Salomão Rodrigo Varejão Andreão Inteligência Artificial Definição (Fonte: AAAI ): "the scientific understanding of the mechanisms

Leia mais

Orientação a Objetos

Orientação a Objetos 1. Domínio e Aplicação Orientação a Objetos Um domínio é composto pelas entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou

Leia mais

TRABALHOS TÉCNICOS Coordenação de Documentação e Informação INOVAÇÃO E GERENCIAMENTO DE PROCESSOS: UMA ANÁLISE BASEADA NA GESTÃO DO CONHECIMENTO

TRABALHOS TÉCNICOS Coordenação de Documentação e Informação INOVAÇÃO E GERENCIAMENTO DE PROCESSOS: UMA ANÁLISE BASEADA NA GESTÃO DO CONHECIMENTO TRABALHOS TÉCNICOS Coordenação de Documentação e Informação INOVAÇÃO E GERENCIAMENTO DE PROCESSOS: UMA ANÁLISE BASEADA NA GESTÃO DO CONHECIMENTO INTRODUÇÃO Os processos empresariais são fluxos de valor

Leia mais

Artigo Lean Seis Sigma e Benchmarking

Artigo Lean Seis Sigma e Benchmarking Artigo Lean Seis Sigma e Benchmarking David Vicentin e José Goldfreind Benchmarking pode ser definido como o processo de medição e comparação de nossa empresa com as organizações mundiais best-in-class.

Leia mais

2ª avaliação - SIMULADO INSTRUÇÕES

2ª avaliação - SIMULADO INSTRUÇÕES Curso: Análise e Desenvolvimento de Sistemas Disciplina: Gerenciamento de Projetos 2ª avaliação - SIMULADO INSTRUÇÕES 1. Identifique todas as folhas da avaliação, inclusive a capa, com seu nome em letra

Leia mais

Importância da normalização para as Micro e Pequenas Empresas 1. Normas só são importantes para as grandes empresas...

Importância da normalização para as Micro e Pequenas Empresas 1. Normas só são importantes para as grandes empresas... APRESENTAÇÃO O incremento da competitividade é um fator decisivo para a maior inserção das Micro e Pequenas Empresas (MPE), em mercados externos cada vez mais globalizados. Internamente, as MPE estão inseridas

Leia mais

Introdução à Computação

Introdução à Computação Aspectos Importantes - Desenvolvimento de Software Motivação A economia de todos países dependem do uso de software. Cada vez mais, o controle dos processos tem sido feito por software. Atualmente, os

Leia mais

Solitaire Interglobal

Solitaire Interglobal Solitaire Interglobal POWERLINUX OU WINDOWS PARA IMPLANTAÇÃO SAP Escolher entre as plataformas concorrentes de sistema operacional Linux e Windows para SAP pode ser uma tarefa confusa para as organizações.

Leia mais

Análise do Ambiente estudo aprofundado

Análise do Ambiente estudo aprofundado Etapa 1 Etapa 2 Etapa 3 Etapa 4 Etapa 5 Disciplina Gestão Estratégica e Serviços 7º Período Administração 2013/2 Análise do Ambiente estudo aprofundado Agenda: ANÁLISE DO AMBIENTE Fundamentos Ambientes

Leia mais

Requisitos de Software

Requisitos de Software Requisitos de Software Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 6 Slide 1 Objetivos Apresentar os conceitos de requisitos de usuário e de sistema Descrever requisitos funcionais

Leia mais

GARANTIA DA QUALIDADE DE SOFTWARE

GARANTIA DA QUALIDADE DE SOFTWARE GARANTIA DA QUALIDADE DE SOFTWARE Fonte: http://www.testexpert.com.br/?q=node/669 1 GARANTIA DA QUALIDADE DE SOFTWARE Segundo a NBR ISO 9000:2005, qualidade é o grau no qual um conjunto de características

Leia mais

Seção 2/E Monitoramento, Avaliação e Aprendizagem

Seção 2/E Monitoramento, Avaliação e Aprendizagem Seção 2/E Monitoramento, Avaliação e Aprendizagem www.bettercotton.org Orientação Text to go here O documento Monitoramento, Avaliação e Aprendizagem da BCI proporciona uma estrutura para medir as mudanças

Leia mais

XI Encontro de Iniciação à Docência

XI Encontro de Iniciação à Docência 4CCENDFMT01 EXEMPLO DE APLICAÇÃO DE UMA METODOLOGIA PARA A SOLUÇÃO DE PROBLEMAS DE FÍSICA E MATEMÁTICA Erielson Nonato (1) e Pedro Luiz Christiano (3) Centro de Ciências Exatas e da Natureza/Departamento

Leia mais

Programa de Pós-Graduação em Comunicação e Cultura Contemporâneas. Grupo de Pesquisa em Interação, Tecnologias Digitais e Sociedade - GITS

Programa de Pós-Graduação em Comunicação e Cultura Contemporâneas. Grupo de Pesquisa em Interação, Tecnologias Digitais e Sociedade - GITS Universidade Federal da Bahia Programa de Pós-Graduação em Comunicação e Cultura Contemporâneas Grupo de Pesquisa em Interação, Tecnologias Digitais e Sociedade - GITS Reunião de 18 de junho de 2010 Resumo

Leia mais

DESENVOLVIMENTO DE UM SOFTWARE NA LINGUAGEM R PARA CÁLCULO DE TAMANHOS DE AMOSTRAS NA ÁREA DE SAÚDE

DESENVOLVIMENTO DE UM SOFTWARE NA LINGUAGEM R PARA CÁLCULO DE TAMANHOS DE AMOSTRAS NA ÁREA DE SAÚDE DESENVOLVIMENTO DE UM SOFTWARE NA LINGUAGEM R PARA CÁLCULO DE TAMANHOS DE AMOSTRAS NA ÁREA DE SAÚDE Mariane Alves Gomes da Silva Eliana Zandonade 1. INTRODUÇÃO Um aspecto fundamental de um levantamento

Leia mais

UML - Unified Modeling Language

UML - Unified Modeling Language UML - Unified Modeling Language Casos de Uso Marcio E. F. Maia Disciplina: Engenharia de Software Professora: Rossana M. C. Andrade Curso: Ciências da Computação Universidade Federal do Ceará 24 de abril

Leia mais

MASTER IN PROJECT MANAGEMENT

MASTER IN PROJECT MANAGEMENT MASTER IN PROJECT MANAGEMENT PROJETOS E COMUNICAÇÃO PROF. RICARDO SCHWACH MBA, PMP, COBIT, ITIL Atividade 1 Que modelos em gestão de projetos estão sendo adotados como referência nas organizações? Como

Leia mais

ESTENDENDO A UML PARA REPRESENTAR RESTRIÇÕES DE INTEGRIDADE

ESTENDENDO A UML PARA REPRESENTAR RESTRIÇÕES DE INTEGRIDADE ESTENDENDO A UML PARA REPRESENTAR RESTRIÇÕES DE INTEGRIDADE Fabiana Gomes Marinho Faculdade Lourenço Filho Resumo: Na UML, a modelagem conceitual dos dados é descrita pelo diagrama de classes, que através

Leia mais

Dadas a base e a altura de um triangulo, determinar sua área.

Dadas a base e a altura de um triangulo, determinar sua área. Disciplina Lógica de Programação Visual Ana Rita Dutra dos Santos Especialista em Novas Tecnologias aplicadas a Educação Mestranda em Informática aplicada a Educação ana.santos@qi.edu.br Conceitos Preliminares

Leia mais

3 Arquitetura do Sistema

3 Arquitetura do Sistema 3 Arquitetura do Sistema Este capítulo irá descrever a arquitetura geral do sistema, justificando as decisões de implementação tomadas. Na primeira seção iremos considerar um conjunto de nós interagindo

Leia mais

SIMULAÇÃO DE GESTÃO EMPRESARIAL

SIMULAÇÃO DE GESTÃO EMPRESARIAL SIMULAÇÃO DE GESTÃO EMPRESARIAL I INTRODUÇÃO O JOGO DE GESTÃO EMPRESARIAL é uma competição que simula a concorrência entre empresas dentro de um mercado. O jogo se baseia num modelo que abrange ao mesmo

Leia mais

Mídias sociais como apoio aos negócios B2C

Mídias sociais como apoio aos negócios B2C Mídias sociais como apoio aos negócios B2C A tecnologia e a informação caminham paralelas à globalização. No mercado atual é simples interagir, aproximar pessoas, expandir e aperfeiçoar os negócios dentro

Leia mais

PLANOS DE CONTINGÊNCIAS

PLANOS DE CONTINGÊNCIAS PLANOS DE CONTINGÊNCIAS ARAÚJO GOMES Capitão SC PMSC ARAÚJO GOMES defesacivilgomes@yahoo.com.br PLANO DE CONTINGÊNCIA O planejamento para emergências é complexo por suas características intrínsecas. Como

Leia mais

GASTAR MAIS COM A LOGÍSTICA PODE SIGNIFICAR, TAMBÉM, AUMENTO DE LUCRO

GASTAR MAIS COM A LOGÍSTICA PODE SIGNIFICAR, TAMBÉM, AUMENTO DE LUCRO GASTAR MAIS COM A LOGÍSTICA PODE SIGNIFICAR, TAMBÉM, AUMENTO DE LUCRO PAULO ROBERTO GUEDES (Maio de 2015) É comum o entendimento de que os gastos logísticos vêm aumentando em todo o mundo. Estatísticas

Leia mais

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio 32 3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio Este capítulo apresenta o framework orientado a aspectos para monitoramento e análise de processos de negócio

Leia mais

Inteligência Computacional Aplicada a Engenharia de Software

Inteligência Computacional Aplicada a Engenharia de Software Inteligência Computacional Aplicada a Engenharia de Software Estudo de caso III Prof. Ricardo de Sousa Britto rbritto@ufpi.edu.br Introdução Em alguns ambientes industriais, pode ser necessário priorizar

Leia mais

Preparação do Trabalho de Pesquisa

Preparação do Trabalho de Pesquisa Preparação do Trabalho de Pesquisa Ricardo de Almeida Falbo Metodologia de Pesquisa Departamento de Informática Universidade Federal do Espírito Santo Pesquisa Bibliográfica Etapas do Trabalho de Pesquisa

Leia mais

Entendendo como funciona o NAT

Entendendo como funciona o NAT Entendendo como funciona o NAT Vamos inicialmente entender exatamente qual a função do NAT e em que situações ele é indicado. O NAT surgiu como uma alternativa real para o problema de falta de endereços

Leia mais

Arquitecturas de Software Licenciatura em Engenharia Informática e de Computadores

Arquitecturas de Software Licenciatura em Engenharia Informática e de Computadores UNIVERSIDADE TÉCNICA DE LISBOA INSTITUTO SUPERIOR TÉCNICO Arquitecturas de Software Licenciatura em Engenharia Informática e de Computadores Primeiro Teste 21 de Outubro de 2006, 9:00H 10:30H Nome: Número:

Leia mais

Feature-Driven Development

Feature-Driven Development FDD Feature-Driven Development Descrição dos Processos Requisitos Concepção e Planejamento Mais forma que conteúdo Desenvolver um Modelo Abrangente Construir a Lista de Features Planejar por

Leia mais

APLICATIVO WEB PARA O SETOR DE EXTENSÃO IFC VIDEIRA

APLICATIVO WEB PARA O SETOR DE EXTENSÃO IFC VIDEIRA APLICATIVO WEB PARA O SETOR DE EXTENSÃO IFC VIDEIRA Autores: Claudiléia Gaio BANDT; Tiago HEINECK; Patrick KOCHAN; Leila Lisiane ROSSI; Angela Maria Crotti da ROSA Identificação autores: Aluna do Curso

Leia mais

A IMPORTÂNCIA DAS DISCIPLINAS DE MATEMÁTICA E FÍSICA NO ENEM: PERCEPÇÃO DOS ALUNOS DO CURSO PRÉ- UNIVERSITÁRIO DA UFPB LITORAL NORTE

A IMPORTÂNCIA DAS DISCIPLINAS DE MATEMÁTICA E FÍSICA NO ENEM: PERCEPÇÃO DOS ALUNOS DO CURSO PRÉ- UNIVERSITÁRIO DA UFPB LITORAL NORTE A IMPORTÂNCIA DAS DISCIPLINAS DE MATEMÁTICA E FÍSICA NO ENEM: PERCEPÇÃO DOS ALUNOS DO CURSO PRÉ- UNIVERSITÁRIO DA UFPB LITORAL NORTE ALMEIDA 1, Leonardo Rodrigues de SOUSA 2, Raniere Lima Menezes de PEREIRA

Leia mais

PARANÁ GOVERNO DO ESTADO

PARANÁ GOVERNO DO ESTADO A COMUNICAÇÃO NA INTERNET PROTOCOLO TCP/IP Para tentar facilitar o entendimento de como se dá a comunicação na Internet, vamos começar contando uma história para fazer uma analogia. Era uma vez, um estrangeiro

Leia mais

Profissionais de Alta Performance

Profissionais de Alta Performance Profissionais de Alta Performance As transformações pelas quais o mundo passa exigem novos posicionamentos em todas as áreas e em especial na educação. A transferência pura simples de dados ou informações

Leia mais