• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Ambientes em Sistemas Multi-agentes
 

Ambientes em Sistemas Multi-agentes

on

  • 689 views

 

Statistics

Views

Total Views
689
Views on SlideShare
689
Embed Views
0

Actions

Likes
0
Downloads
10
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

CC Attribution License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Ambientes em Sistemas Multi-agentes Ambientes em Sistemas Multi-agentes Presentation Transcript

    • Notas de estudo sobre AmbientesporNécio de Lima Veras
    • Referência básica:Environment programming in multi-agentsystems: an artifcat-based perspective (2011).ByAlessando RicciMichele PiuntiMirko ViroliDados da publicação:Autonomous Agents and Multi-Agent SystemsVol. 23 num. 2 ano 2011DOI: 10.1007/s10458-010-9140-7
    • ObjetivoEstes slides objetivam documentar um estudosobre a concepção e programação de ambientespara sistemas multi-agentes, assim comotambém para obter uma fundamentação mínimanecessária para se conseguir um primeirocontato com o software CArtAgO.
    • Agenda● Introdução● Programando Ambiente em sistemas multi-agente● Ambientes baseados em artefatos e CArtAgO.● Aplicação para programação de sistemasmulti-agente● Trabalhos relacionados
    • Introdução● A noção de ambientes é um conceito primário em agentese SMA, sendo o lugar computacional ou físico que osagentes serão situados;– Este lugar irá prover e definir as noções de percepções, açõese interações dos agentes;● Os recursos fundamentais da abstração de agentesestão direta ou indiretamente ligados com o ambiente.Exemplo:– Reatividade;– Pró-atividade;– Noções de objetivos;– Aspectos de comportamento pró-ativo (tipicamente definido emtermos de estados do mundo).
    • Introdução● Há duas principais perspectivas para definiçãode ambientes em SMA:– As raízes clássicas da IA;– O contexto da Engenharia de Software Orientadaa Agentes (AOSE);● Na visão clássica temos:– A noção de ambiente define o mundo externo queé percebido e atuado através dos agentes demodo a cumprir com suas tarefas;
    • Introdução● No contexto da AOSE temos que:– Trabalhos recentes introduziram a ideia de ambiente comouma abstração de primeira classe para engenharia deSMA;– Isso quer dizer que existe um lugar adequado paraencapsular funcionalidades e serviços que suportamatividades de agentes;● Trabalhos sobre o assunto:– Weyns, D., & Parunak, H. V. D. (Eds.). (2007). Special issue onenvironments for multi-agent systems. Journal of Autonomous Agentsand Multi-Agent Systems, 14(1), 1–116– Weyns, D., Parunak, H. V. D., Michel, F., Holvoet, T., & Ferber, J. (2005).Environments for multiagent systems: State-of-the-art and researchchallenges. In D. Weyns, H. V. D. Parunak, F. Michel, T. Holvoet, & J. Ferber(Eds.), Environment for multi-agent systems, volume 3374 (pp. 1–47).Berlin/Heidelberg: Springer.
    • Introdução● Nesta visão (AOSE) o ambiente não é mais apenas o alvo das ações doagente, nem um container ou gerador de percepções para o agente, masagora ele é parte do SMA e pode ser desenhado para melhorar odesenvolvimento global do sistema;● O ambiente pode ser definido sob o ponto de vista da engenharia de umSMA como endógeno, fazendo parte do sistema para o qual foidesenhado;● A contrário, a visão clássica da IA, pode ser definida dualmente comoexógena;● As responsabilidades e funcionalidades dos ambientes endógenos sãoresumidas sob três diferentes níveis de suporte:– Básico;– Abstração;– Mediação/interação.
    • Introdução● Os três níveis de suporte:– Básico:● O ambiente é explorado para habilitar o acesso do agente ao contextode implantação. (ex.: determinados recursos externos dehardware/software que o SMA interage com sensores e atuadores);– Abstração:●Explorando uma camada de abstração do ambiente para uma ponte dogap (lacuna) conceitual entre a abstração do agente e o baixo nível dedetalhes do contexto de implantação, escondendo tais aspectos debaixo nível do programador de agentes;– Interação/mediação:● Onde o ambiente é explorado tanto para regular o acesso quanto paracompartilhar recursos e, ainda, mediar a interação entre os agentes.●Esses três níveis representam diferentes graus de funcionalidades que osagentes podem usar para atingir seus objetivos.
    • Introdução● No artigo é alavancada uma perspectiva partindo do desenhoaté a programação de SMA, elaborando o ambiente comoabstração de primeira classe para ser integrado comlinguagens de programação de agentes já existentes.● Eles descreveram um computação concreta e um modelo deprogramação baseado no metamodelo de Agentes eArtefatos (A & A) e implementaram usando a tecnologia doCArtAgO.● A abordagem permitiu desenhar e programar um ambienteem termos de conjuntos dinâmicos de entidadescomputacionais de primeira classe denominados de artefatoscolecionados em localidades conhecidas como workspaces.
    • Introdução● Artefatos representam recursos e ferramentas que osagentes podem instanciar dinamicamente, compartilhar eusar como suporte às suas atividades individuais ecoletivas.– De um lado, eles são abstrações de primeira classepara projetistas e programadores de SMA, quemdefine os tipos de artefatos, sua estrutura ecomportamento.– De outro lado, são entidades de primeira classe domundo de agentes, que percebe agentes, usa,compõe e manipula como tal.
    • Introdução● O Cartago provê suporte direto para todos os trêsníveis demonstrados;– No nível básico, artefatos podem ser usados paraenvolver e habilitar o acesso aos recursos do contextode implantação;– No nível de abstração, artefatos podem ser usados paradefinir uma nova camada de abstração e esconderum baixo nível de detalhes do contexto de implantação,possibilitando que recursos computacionais sejamtotalmente virtuais;– No nível de interação/mediação artefatos podem serprojetados para encapsular e decretar mecanismos decoordenação;
    • Agenda● Introdução● Programando Ambiente em sistemas multi-agente● Ambientes baseados em artefatos e CArtAgO.● Aplicação para programação de sistemasmulti-agente● Trabalhos relacionados
    • Programando Ambiente emsistemas multi-agente● A ideia básica da programação de ambiente podeser resumida como:prog. de SMA = prog. de agente + prog. de ambiente● Onde implicitamente será referenciado softwares deSMA e ambientes endógenos;● Nesta visão, o ambiente é uma parte programável dosistema, ortogonal em relação à parte do agente;– Ortogonalidade significa separação de interesses comduas possibilidades;
    • Ortogonalidade● Uso do XML Parse do apache Tomcat
    • Ortogonalidade● Uso de Logging do apache Tomcat
    • Programando Ambiente emsistemas multi-agente● De um lado os agentes são abstrações básicas paraprojetar e programar partes autônomas do sistema;– ex.: essas partes são projetadas para realizar algumobjetivo, tanto individual ou coletivo, encapsulando a lógicae o controle de suas ações;● Por outro lado, o ambiente pode ser usado paraprojetar e programar a parte computacional dosistema que é funcional para o trabalho dos agentes;– ex.: agentes podem dinamicamente acessar e usaralgumas tipos de funcionalidades para explorar,possibilitando adaptar-se para melhor atender suas atuaisnecessidades.
    • Um exemplo simples● Considere a implementação dentro de umprograma multi-agente de uma caixa pretacomo um mecanismo que habilitacomunicação desacoplada entre agentes;– Sem o mecanismo de separação de interesse, a“caixa preta” deverá ser implementada como umagente, criando então uma incompatibilidade entreprojeto e implementação, uma vez que ela não étipicamente projetada para atender pro-atividade ede forma autônoma algum objetivo, mas sim paraser usado por outros agentes para se comunicar ecoordenar.
    • Um exemplo simples– Adotando a programação de ambiente, a “caixapreta” é implementada como um recurso deambiente, acessada pelos agentes em termos deações e percepções.● O exemplo pode ser generalizado,considerando qualquer entidadecomputacional projetada corretamente paraajudar o trabalho e a interação de agente.
    • Modelos de programação paraprogramação de ambiente● Para programar ambientes necessitamos adotar algummodelo computacional de programação de uso geral, pormeio de um modelo capaz de definir:– Uma estrutura e comportamento computacional do ambiente;– Que tipo de programação e construção podem ser usados pordesenvolvedores de SMA para projetar e implementar ambientes;● Alguns modelos e princípios conhecidos:– Abstração;– Ortogonalidade;– Generalidade;– Modularidade;– Extensibilidade dinâmica;– Reusabilidade.
    • Modelos de programação paraprogramação de ambiente● Abstração;● Ortogonalidade;● Generalidade;● Modularidade;● Extensibilidadedinâmica;● Reusabilidade.O modelo adotado deve preservar o nível deabstração do agente, ou seja, o principaisconceitos utilizados para a estrutura e dinâmicado ambiente do programa deve ser consistentecom os conceitos de agente e sua semântica.Exemplos incluem a noção de ações, perceptos,Eventos e tarefas / objetivos.
    • Modelos de programação paraprogramação de ambiente● Abstração;● Ortogonalidade;● Generalidade;● Modularidade;● Extensibilidadedinâmica;● Reusabilidade.O modelo deve ser o mais ortogonal possívelem relação aos modelos, arquiteturas, linguagensde programação do agente, de modo anaturalmente suportar a engenharia desistemas heterogêneos.
    • Modelos de programação paraprogramação de ambiente● Abstração;● Ortogonalidade;● Generalidade;● Modularidade;● Extensibilidadedinâmica;● Reusabilidade.O modelo deve ser geral e expressivo o suficientepara permitir o desenvolvimento de diferentes tiposde ambiente de acordo com diferentesdomínios e problemas de aplicação, explorandoo mesmo conjunto básico de conceitos econstruções
    • Modelos de programação paraprogramação de ambiente● Abstração;● Ortogonalidade;● Generalidade;● Modularidade;● Extensibilidadedinâmica;● Reusabilidade.O modelo deve introduzir conceitos paramodularizar ambientes, evitando visõesmonolítica e centralizada.
    • Modelos de programação paraprogramação de ambiente● Abstração;● Ortogonalidade;● Generalidade;● Modularidade;● Extensibilidadedinâmica;● Reusabilidade.O modelo deve suportar a construção dinâmica,substituindo, extensão de partes do ambiente,em uma perspectiva de sistema aberto.
    • Modelos de programação paraprogramação de ambiente● Abstração;● Ortogonalidade;● Generalidade;● Modularidade;● Extensibilidadedinâmica;● Reusabilidade. O modelo deve promover a reutilização de partesdo ambiente em diferentes contextos ou domíniosde aplicação.
    • Modelos de programação paraprogramação de ambiente● Por fim é importante destacar que diferentes paradigmas deprogramação podem ser reutilizados para definir outros modelos deprogramação de ambiente apenas por fazer uma ponte entre alacuna de abstração em relação ao nível de abstração do agente;● Exemplo:– O conceito de objeto (POO) não pode ser reutilizado “como ele é” paraabstração de primeira classe de ambientes, pois as interações são feitasusando a invocação de métodos e não em percepções e ações;– Isso vale também para o Jade (OO baseado em Java);● Assim, classes são usadas para implementar agentes e não paracriar ambientes compartilhados pelos agentes em relação à suacoordenação e cooperação. Então:– as classes/objetos NÃO são entidades de primeira classe para o mundode agentes (elas são básicas para construção de agentes);– é necessária uma camada de abstração para definir a semântica deinteração agente-objeto.
    • Modelos de programação paraprogramação de ambiente● Tendo em conta esses requisitos gerais, osautores levantaram o seguinte modelocomputacional para programação deambiente:– Modelo de ação;– Modelo de percepção;– Modelo computacional de ambiente;– Modelo de dados do ambiente;– Modelo de distribuição do ambiente;
    • Modelo de ação● Este aspecto preocupa-se em como os agentes afetam oestado do ambiente;– Inclui a noção externa de ação e o tipo de semântica para definirsucesso ou fracasso de ação– Isso significa aceitação ou rejeição de ação pelo ambiente;– Toda via, no lado do agente, ele apenas saberá o resultado pormeio de suas percepções;– A perspectiva de programação de ambiente torna a semânticamais rica em relação aos efeitos de ações dos agentes;– Em ambientes endógenos o conjunto de ações pode serconsiderado parte de um contrato que o ambiente provê para osagentes (logicamente situados no ambiente);– O modelo de execução de ação adotado pelas atuais linguagensde programação de agentes são basicamente eventos (transaçõesatômicas);
    • Modelo de percepção● Este aspecto preocupa-se em como os agentes irãoperceber o ambiente em relação à definição dos estímulosgerados pelo ambiente e a percepção dos agentes;● Somados com as ações, estes podem ser consideradospartes do contrato com os agentes;● Essencialmente duas semânticas podem ser definidas:● Baseado em estado:– os estímulos são informações sobre o estado atual do ambiente;– são gerados quando o agente está engajado em suas percepçõesem um ciclo de execução;● Baseado em evento:– os estímulos são informações sobre as mudanças ocorridasambiente;– são expedidas aos agentes independente do estado de execução;
    • Modelo de percepção● Exemplos:– A função see da arquitetura abstrata de Wooldridge é baseadaem estado;– Em uma arquitetura BDI as percepções são usada paraatualizar o estado atual da base de crenças;– No Jason a atualização da base de crença gera eventos quepodem desencadear planos;● Vale ressaltar que no Jason essa semântica padrão podeser modificada injetando uma nova semântica;● A escolha do modelo tem forte impacto na execução do SMA;– Exemplo: uma adoção ao modelo baseado em estado em umambiente que muda várias vezes entre duas sequências doestágio de percepção pode fazer com que o agente nãoperceba determinada mudança no ambiente.
    • Modelo computacional de ambiente● Este aspecto preocupa-se em como programar asfuncionalidade do ambiente, ou seja, as estruturasinternas e o seu comportamento;● O aspecto mais importante refere-se ao modelo usadopara decompor o estado/comportamento do ambiente;– O mais simples é o modelo monolítico;● A estrutura e o comportamento são representados por um únicoobjeto com um único estado;● O objeto é ponto de entrada para definir o efeito de ações e osestímulos gerados;● O JASON nativamente usa essa abordagem usando uma classepara programar o ambiente;● Um outro aspecto relacionado diz respeito ao modelo deconcorrência para executar os processos do ambiente;
    • Modelo de dados do ambiente● Este aspecto preocupa-se com os tipos de dados trocadospelos agente com o ambiente;– É usado em particular para codificar parâmetros e feedbacksde ação, percepções e sua representação;– Ele conclui o contrato básico entre os agentes e o ambiente;– Aparecem os mesmos problemas de interoperabilidadequando desenvolvidos com diferentes linguagens ouframeworks;● Uma forma de resolver é utilizar tipos de dadosestruturados envolvendo percepções e ações, adotandoalguma representação (como a linguagem XML);– Para o caso dos sistemas abertos o modelo deve definirontologias adequadas para explicitar a semântica dos dadosenvolvidos na interação agente-ambiente;
    • Modelo de distribuição do ambiente● Este aspecto preocupa-se com a forma de como programarambientes que precisam ser distribuídos (ou oportunamente,distribuído) entre vários nós de uma rede;– Para isso ele introduz uma noção de localização para definir aparte não distribuída do ambiente e então define se/como oslugares estão conectados e eventualmente interagem;– Do lado do agente o modelo afeta o repertório de ações doagente, possivelmente incluindo também ações para entrar emum lugar ou mudar de um lugar para outro;
    • Agenda● Introdução● Programando Ambiente em sistemas multi-agente● Ambientes baseados em artefatos eCArtAgO.● Aplicação para programação de sistemasmulti-agente● Trabalhos relacionados
    • Ambientes baseados em artefatos● O ambiente é concebido como um conjuntodinâmico de entidades computacionais(artefatos);● O conjunto total de artefatos pode serorganizado em uma ou várias áreas detrabalho (workspaces) distribuídas emdiferentes nós ou não;● Um espaço de trabalho representa um lugar;
    • Ambientes baseados em artefatosUma visão geral dos principais conceitos que caracterizam ambientesbaseados em artefato
    • Ambientes baseados em artefatos● Programadores de SMA definem os tipos deartefatos de forma análoga à POO, pois édefinido estrutura e comportamento;– Cada workspace possui(dinamicamente) umconjunto de tipos deartefatos que podem serusados para criarinstâncias;– Para possuirfuncionalidades disponíveise exploráveis por agentes,um artefato fornece umconjunto de operações epropriedade observáveis;
    • Ambientes baseados em artefatos● Operações representam processos (possivelmente de longoprazo) executados dentro de um artefato e pode serdisparado por um agente ou outros artefatos;● O termo usado para interface indica o conjunto total deoperações disponíveis para agentes;● Propriedades observáveis representam variáveis de estado,cujo valor pode ser percebido pelos agentes;● A execução de uma operação pode gerar sinais (percebidospelos agentes);– Sinais são eventos observáveis não-persistentes que ocorremdentro de um artefato;● Além dos estados observáveis, um artefato pode ter estadosocultos (necessários para implementar algumafuncionalidade);
    • Ambientes baseados em artefatos● Do ponto de vista do agente, as operações de artefatosrepresentam ações externas fornecidas aos agentes peloambiente: este é um aspecto central do modelo;● Então o repertório de ações externas disponíveis paraum agente em um ambiente baseado em artefato édefinido pelo conjunto de artefatos que povoam oambiente;● Isso implica que o repertório é dinâmico, pois o conjuntode artefatos pode ser alterado pelos próprios agentes;● Em arquiteturas BDI (Jason) percepções relacionadascom as propriedades observáveis podem sermodeladas no próprio agente como crenças sobre oestado atual do ambiente;
    • Ambientes baseados em artefatos● Por fim, um artefato pode ser equipado com ummanual;– um documento legível por máquina a ser consultadospelos agentes, contendo a descrição dasfuncionalidades fornecidas pelo artefato e comoexplorar essas funcionalidades;– foi concebido especialmente para sistemas abertoscompostos por agentes inteligentes que decidemdinamicamente que artefatos irão usar de acordo comseus objetivos e também devem descobrirdinamicamente como usá-los;
    • Ambientes baseados em artefatos● Ações para trabalhar com artefatos– Um agente precisa juntar-se a um workspace paratrabalhar com ele (ou vários ao mesmo tempo);– Também deve sair o mais rápido possível quandoterminar o trabalho;● Dentro de um workspace o agente pode realizarações para trabalhar com artefatos categorizadosem três grupos:– Ações para criar / pesquisar / eliminar artefatos;– Ações para usar artefatos, executar operações eobservar propriedades e sinais;– Ações para vincular / desvincular artefatos;
    • Criando e descobrindo artefato● Os artefatos são destinadas a ser criados,descobertos e possivelmente descartados poragentes em tempo de execução– esta é uma forma básica em que o modelosuporta extensibilidade dinâmica (além damodularidade) do ambiente;● Os três tipos básicos são:– makeArtifact(ArName,ArTypeName,InitParams):ArId– disposeArtifact(ArId)– lookupArtifact(ArName):ArId
    • Usando e observando os artefatos● Envolve dois aspectos:– Ser capaz de executar operações listadas emusage interface do artefato;– Ser capaz de perceber informações observáveisdo artefato em termos de propriedades e eventosobserváveis;● Aspecto 1 (figura 3):– use(ArId,OpName(Params)):OpRes● Aspecto 2 (figura 4):– focus(ArId,{Filter}) (ou stopFocus(ArId))
    • Usando e observando os artefatos
    • Usando e observando os artefatos
    • Vinculando e desvinculandoartefatos● A vinculação entre artefatos permite que umartefato execute operações em detrimento aoutro artefato;● Para isso existem duas ações básicas:– linkArtifacts(LinkingArId,LinkedArId{,Port})– unlinkArtifacts(LinkingArId,LinkedArId)● Isso permite que agentes componhamdinamicamente artefatos complexos atravésde simples ligações entre eles, criando redesde artefatos;
    • CArtAgO(Common ARtifact infrastructure for AGent Open environments)● É um framework e infraestrutura para programação eexecução de ambientes baseados em artefatos implementado omodelo informalmente descrito anteriormente;● Enquanto framework ele fornece:– uma API em Java para programar artefatos e ambientes em tempode execução para executar ambientes baseados em artefatos– uma biblioteca com um conjunto de tipos de artefatos de uso geralpré-definidos;● Enquanto infraestrutura:– Provê uma API e um mecanismo subjacente para estenderlinguagens/framework de programação de agentes assim comopara que programa de agentes trabalhem dentro de ambientesCartago;
    • CArtAgO(Common ARtifact infrastructure for AGent Open environments)● Modelo de programação de artefato– Um artefato é programado diretamente em uma classeJava, estendendo classe cartago.Artifact usando umconjunto básico de anotações Java e métodos herdadospara definir os elementos estruturais de um artefato e seuscomportamentos;– Exemplo simples:● Counter:– Um contador simples que fornece uma únicapropriedade observável chamada de count– Uma propriedade observável chamada de inc
    • CArtAgO(Common ARtifact infrastructure for AGent Open environments)
    • Um outro exemplo ilustrando o uso de sinais
    • CArtAgO(Common ARtifact infrastructure for AGent Open environments)● Cartago é ortogonal para a tecnologia específica adotadapela programação de agentes trabalhando em ambientesbaseados em artefatos;● Foi concebido de modo a ser integrado com qualquerlinguagem de programação e plataforma de agentes,permitindo a criação sistemas heterogêneos;● Um exemplo ilustrativo de Cartago com Jason:– Existem dois agentes Jason que criam, cooperam e usam trêsartefatos do tipo Counter, MyArtifact e Clock.– Eles executam operações de artefatos e percebempropriedades e eventos observáveis;
    • CArtAgO(Common ARtifact infrastructure for AGent Open environments)
    • CArtAgO(Common ARtifact infrastructure for AGent Open environments)● Resultado da execução
    • Agenda● Introdução● Programando Ambiente em sistemas multi-agente● Ambientes baseados em artefatos e CArtAgO.● Aplicação para programação de sistemasmulti-agente● Trabalhos relacionados
    • Aplicação para programação desistemas multi-agente● Neste seção (4), os autores a desenvolveminicialmente mostrando a aplicabilidade de umaforma geral da abordagem sob um ponto de vistametodológico;– Em seguida eles consideram alguns contextosespecíficos e problemas onde artefatos e Cartago podemser explorados para promover uma prática deprogramação de SMA;– No contexto específico temos:● O problema do produtor/consumidor;● A sincronização de tarefas;● Mecanismo de comunicação social;● Programação de recursos (internos e externos);
    • Exemplo independente● Visando iniciar a programação de Ambientes e Agentesusando Cartago e Jason codificamos um exemplosimplório com os seguintes requisitos:– O ambiente será um “bingo” onde números serão sorteadosdepois de X cartelas “vendidas”;– Temos dois agentes: um proprietário (owner) e um jogador(player);● O owner cria o artefato “Bingo” e o monitora a fim de perceber se asX cartelas foram vendidas. Feito isso, ele realiza uma operação noambiente para iniciar o sorteio;● O jogador fica vagando até encontrar o artefato “bingo”. Aoencontrar realiza uma operação de “compra” para participar dosorteio. Após isso sua função é monitorar o ambiente esperando pornúmeros sorteados (informados por meio de sinais) e pelo final dosorteio.
    • // CArtAgO artifact code for projectprj_MAS_Bingopackage tablet;import java.util.Random;import cartago.Artifact;import cartago.INTERNAL_OPERATION;import cartago.OPERATION;public class Bingo extends Artifact {String internalStatus = "void";int MAXNumberSorted = 15;int MAXSold = 02;int sold = 0;void init() {defineObsProperty("numSorted", 0);signal("status", "selling");internalStatus = "selling";}@OPERATIONvoid sell(){sold++;if (sold >= MAXSold){signal("status", "ready");}}@OPERATIONvoid start(){signal("status", "started");internalStatus = "started";execInternalOp("sortAnumber");}@INTERNAL_OPERATIONvoid stop(){internalStatus = "stop";signal("status", "stoped");}@INTERNAL_OPERATIONvoid sortAnumber(){Random r = new Random();int counter = 0;while (!internalStatus.equals("stop")){counter++;int x = r.nextInt(100);getObsProperty("numSorted").updateValue(x);signal("status", "sorted");await_time(3000);if (counter >= MAXNumberSorted)execInternalOp("stop");}}}Ambiente
    • Agent Owner/* Initial beliefs and rules *//* Initial goals */!create./* Plans */+!create : true <-?setupBingo (ID).+?setupBingo (C) : true <-makeArtifact("b0", "tablet.Bingo", [], C);focus(C).-?setuBingo(C) : true <-wait(10);?setupBing(ID).//Perceptions//Signal status+status(S) : S == "ready" <-start.
    • Agente Player/* Initial beliefs and rules *//* Initial goals */!observer./* Plans */+!observer : true <-?myArtifact (ID);focus(ID);sell; //buyprintln("Comprei uma cartela ...no bingo:", ID).+?myArtifact(C) : true <-lookupArtifact("b0", C).-?myArtifact(art) : true <-.wait(1000);println("Esperando por um bingo.");!observer.//Perceptions of th signals+status(S) : S == "sorted" <-?numSorted(V);println("Opa, percebi um numero sorteado ... ", V).+status(S) : S == "started" <-println("Legal! Bingo inciado!").+status(S) : S == "stoped" <-println("Ahhhh .. já acabou.").//Percepctions of the Observable Properties+numSorted(V).
    • Agenda● Introdução● Programando Ambiente em sistemas multi-agente● Ambientes baseados em artefatos e CArtAgO.● Aplicação para programação de sistemasmulti-agente● Trabalhos relacionados
    • Alguns Trabalhos relacionados● Exploração de ambiente no contexto de SMA em geral:– Weyns, D., & Parunak, H. V. D. (Eds.). (2007). Special issue on environmentsfor multi-agent systems. Journal of Autonomous Agents and Multi-AgentSystems– Weyns, D., Parunak, H. V. D., Michel, F., Holvoet, T., & Ferber, J. (2005).Environments for multiagent systems: State-of-the-art and researchchallenges. In D. Weyns, H. V. D. Parunak, F. Michel, T. Holvoet, & J. Ferber(Eds.), Environment for multi-agent systems, volume 3374 (pp. 1–47).Berlin/Heidelberg: Springer.● Exploração do tipo de impacto a noção do ambiente como umaabstração para programação de primeira classe pode ter emsistemas multiagentes usando linguagens de agentes existentes:– Gutknecht, O., & Ferber, J. (2000). The MADKIT agent platform architecture. InAgents workshop on infrastructure for multi-agent systems (pp. 48–55).– Bromuri, S., & Stathis, K. (2008). Situating cognitive agents in GOLEM. In D.Weyns, S. Brueckner, & Y. Demazeau (Eds.), Engineering environment-mediated multi-agent systems, volume 5049 of LNCS (pp. 115–134).Berlin/Heidelberg: Springer.
    • Alguns Trabalhos relacionados● Definição de mecanismos baseados no ambiente para resolver problemasespecíficos como comunicação e cooperação:– Platon, E., Mamei, M., Sabouret, N., Honiden, S., & Parunak, H. V. (2007).Mechanisms for environments in multi-agent systems: Survey and opportunities.Autonomous Agents and Multi-Agent Systems, 14(1), 31–47.– Weyns, D., & Holvoet, T. (2007). A reference architecture for situated multiagentsystems. In Environments for multiagent systems III, volume 4389 of LNCS (pp. 1–40). Berlin/Heidelberg: Springer.● Relacionados à noção de artefatos e Cartago:– Omicini, A., Ricci, A., & Viroli, M. (2008). Artifacts in the A&A meta-model for multi-agent systems. Autonomous Agents and Multi-Agent Systems, 17(3), 432–456.– Ricci, A., Viroli, M., & Omicini, A. (2007). CArtAgO: A framework for prototypingartifact-based environments in MAS. In D. Weyns, H. V. D. Parunak, & F. Michel(Eds.), Environments for multiagent systems III, volume 4389 of LNAI (pp. 67–86).Berlin/Heidelberg: Springer.– Ricci, A., Viroli, M., & Omicini, A. (2007). The A&A programming model &technology for developing agent environments in MAS. In M. Dastani, A. El FallahSeghrouchni, A. Ricci, & M. Winikoff (Eds.), Programming multi-agent systems,volume 4908 of LNAI (pp. 91–109). Berlin/Heidelberg: Springer.
    • Referência● Ricci, Alessandro. Piunti, Michele. Viroli, Mirko. Environmentprogramming in multi-agent systems: an artifcat-based perspective.In proccedings of the Autonomous Agent Multi-Agent Systems, 2011.Berlin, Springer.