Developing Organised Multi-Agent Systems Using the Moise + : Programming Issues at the System and Agent Levels Alex Vieira Índice Introdução Moise + Modelo Organizacional S-Moise + J-Moise + Arquitetura e principais componentes Conclusão Introdução Autonomia dos agentes é uma característica muito importante no conceito de agente; Essa autonomia pode ser conduzida para um comportamento global indesejado; Uma solução possível é atribuir uma organização do sistema como é feito na sociedade. Modelo Organizacional O Modelo Organizacional pode ser concebido a partir de duas visões principais - Centrada no Agente; - Centrada no Sistema. Modelo Centrado no Agente A organização só existe dentro de agentes uma visão global da organização só é possível como um fenômeno observável (externo); Por exemplo, em uma colônia de formigas, a restrição do comportamento organizacional é definido dentro das próprias formigas; E assim podemos considerar esse tipo de organização como sendo baseado em um comportamento emergente coletivo. 1
Análise das Visões Em (a) os agentes são desprovidos de uma representação da organização; Em (b) há uma representação interna da organização, mas os agentes decidem o que fazer; Em (c) a organização existe mas os agentes não raciocinam sobre ela. Sendo aplicadas algumas metodologias AOSE (com papéis e responsabilidades); Em (d) há representação e raciocínio sobre a organização. Modelo de Organização do Moise + Modelos organizacionais são focados em uma dimensão única da organização. No modelo proposto, considera-se a existência de três dimensões principais (funcional,estrutural e normas). Dimensão Funcional Refere-se aos planos globais, políticas de alocação de tarefas para agentes, coordenação de execução dos planos e qualidade (consumo de tempo e recursos) de um plano; Os propósitos globais do sistema são melhor alcançados SMA possuem uma memória da organização na qual os melhores planos para atingir os objetivos são guardados Dimensão de Normas Foco na definição de alto nível (normas); Tais normas deverão ser obedecidas pelos agentes; Em outras palavras: o que os agentes devem fazer, sendo a relação entre estrutura e funcionamento. Dimensão Estrutural Aspecto mais estático da organização (papéis, relação entre eles, relação entre seus grupos); Neste modelo, o propósito global é realizado quando os agentes cumprem as obrigações e permissões que são atribuídas a seus papéis. 2
Dimensão Estrutural Níveis de construção de uma Especificação Estrutural Moise + (SS): 1. Nível Individual; 2. Nível Social; 3. Nível Coletivo Dimensão Funcional A Especificação Funcional (FS) é composta por um esquema de configuração que representa: 1. Como um SMA usualmente alcança os objetivos globais (organizacional); 2. Como esses objetivos são decompostos (por planos); 3. Como são distribuídos para os agentes (por missões). Observação Este esquema pode ser configurada por projetistas do SMA (determinam a perícia dos agentes ou os próprios agentes guardam as melhores soluções utilizadas) No esquema, cada objetivo não-folha gi Є G (objetivo global) é decomposto em sub-objetivos através de planos usando a seguinte notação: 3
Middleware Organizacional do S- Moise + Recurso para implementação de um middleware organizacional baseado em uma visão centrada no sistema (modelo Moise + ); É a interface entre nível de agente e nível de sistema (abordagem centrada na organização); Prover acesso ao nível de organização (criar grupos, esquemas,papéis...); Manutenção do estado e controle do cumprimento de regras oferecidos pela organização; Principais Componentes do S- MOISE + OrgBox API: interface que os agentes usam para acessar a camada organizacional. Trata-se de uma interface que permite fazer solicitações ao OrgManager; OrgManager: armazena o estado atual das OE (Entidade Organizacional) e os mantêm consistentes durante seu ciclo de vida não permite que um agente assuma papéis incompatíveis. Arquitetura do S-MOISE + Ir para Agents OrgBox Ações Organizacionais do S-MOISE + Principais Ações create_group (gt [, gi]) create_scheme (st, gis) set_goal_state(ag,si, g, s) adopt_role (ag, p, gr) remove_role (ag, p, gr) Descrição Cria um novo grupo, ou um subgrupo de gi se o gi for informado como argumento cria um novo esquema da especificação st, sendo gis uma configuração dos grupos responsáveis pelo novo esquema de execução o objetivo g do esquema si é definido como s pelo agente ag o agente ag adota o papel p em umgrupo gr o agente ag remove o papel p do grupo gr Exemplo Considere que após a criação do grupo (gr), como sendo a criação do time, foram criados também os sub-grupos (grd e gra), respectivamente, grupos de defesa e ataque. Considere também que já foram criados alguns esquemas como, por exemplo, o lado_ataque.temos: Tem-se um time bem formado? create_group(gr) create_group(grd, gr) create_group(gra, gr) create_scheme(side_attack, gr) Falta instanciar agentes para assumirem os papéis. 4
Portanto, é preciso que um agente (ag) que queira assumir um papel (p) envie uma ação adopt_role(ag, p, gr) para OrgManager; A ação de organização no S-Moise + referente a adoção do papel solicitado pelo agente é, então, assegurada (através das precondições) pois a restrição organizacional não foi violada. Precondições de restrição organizacional 1. O papel p pertence ao grupo de especificação de gr; 2. O número de p de jogadores é menor que o número máximo de jogadores definido na especificação de gr; 3. Todos os papéis pi e p que os jogadores assumirem no mesmo grupo são compatíveis entre si; 4. Todos os papéis pi e p que os jogadores assumirem em grupos diferentes são compatíveis. Agents OrgBox J-Moise + Agente Organizacional Linguagem utilizada: AgentSpeak e o interpretador Jason; Justificativa da escolha da linguagem: base na arquitetura BDI e facilidade de customização do interpretador; Sigla J-Moise + : Jason + Moise +. Ver arquitetura Características Arquitetura do J-Moise + Presença dos componentes OrgBox e OrgManager; Camada de comunicação estendida para Saci, Jade e qualquer outra infraestrutura; 5
Ações Organizacionais Sintaxe baseada na notação de planos da linguagem AgentSpeak; Um plano é ativado por algum evento e guardado por algum contexto; Sintaxe: +ball (X,Y) : i_am_near(x,y) <- action1; action2;... Conclusão O artigo propõe uma direção para uma programação organizacional declarativa para os níveis de agente (J-Moise + ) e de sistema (S-Moise + ); A utilização de um middleware assegura que agentes irão seguir as restrições impostas pela organização o que nem sempre ocorre com agentes baseados em BDI. 6