1 / 28

Modelos Baseados em Agentes

Modelos Baseados em Agentes. Plataformas Multi-Agente. Prof. André Campos 01/12/2004. Problema. O interesse em SMA tem crescido, porém Linguagens orientadas a agentes são ainda raras ou em estágio de maturação

yama
Download Presentation

Modelos Baseados em Agentes

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Modelos Baseados em Agentes Plataformas Multi-Agente Prof. André Campos 01/12/2004

  2. Problema • O interesse em SMA tem crescido, porém • Linguagens orientadas a agentes são ainda raras ou em estágio de maturação • O desenvolvimento de SMA se apóia em linguagens e paradigmas de programação existentes (em geral O-O) • A implementação de SMA em O-O pode vir a ser complexa (distribuição, protocolos de comunicação etc) • Conseqüência = surgimento de várias ferramentas dando o suporte ao desenvolvimento SMA • Existem centenas (ver, por exemplo www.agentlink.org ou www.multiagent.org ) • Problema = qual utilizar?

  3. Necessidades das ferramentas • Suporte à implementação de agentes • Interação com o ambiente (sensores etc) • Comunicação (padrões, yellowpages, ACL etc) • Protocolos de negociação, cooperação etc • Suporte ao design do SMA • Análise (descrição do problema etc) • Design (arquiteturas com protocolos de interação etc) • Desenvolvimento (plataformas, frameworks etc) • Deployment (configuração, manutenção etc) • Suporte ao usuário final • Segurança (confiabilidade, integridade etc)

  4. Quadro de especificações • Aplicações • Arquitetura abstrata • Gerenciamento dos agentes • Comunicação dos agentes • Protocolos de interação • Atos de comunicação • Linguagens de conteúdo • Transporte de mensagem • Representação ACL (Agent Comunication Language) • Representação dos envelopes • Protocolos de transporte

  5. Plataformas FIPA • Para que uma plataforma seja considerada FIPA-compliant  no mínimo: AMS e ACL • Gerenciamento de agentes (AMS) • Autenticação, Recursos, “páginas brancas” (naming) • Comunicação (ACL) • Diretório de agentes (páginas amarelas) • Canal de comunicação (ACC) • transporte de mensagens • Serviços opcionais • Ontologia, Interação H-M etc AMS PA HTTP Transporte (ACC)

  6. Tipos de plataformas Análise • Suporte às diferentes fases de elaboração de um SMA • Design • Em geral baseadas em componentes • Middlewares • Design + Implementação • Facilita a definição dos agentes • Frameworks • Design + Implementação + Testes • Análise + Design + Imp. + Testes Design Implementação Teste e validação

  7. Exemplos de plataformas • JADE (Java Agent Development Framework) • MadKit (Multi-Agent Development Kit) • Zeus • Outros • ADE, ADK, Agent Factory, AgentBuilder, AgentTool, Aglets, Bee-gent, BOND, DECAF, DIET, DIVA, EVO, Hive, IMPACT, Jack, JAFMAS, JIAC, JINI, Knowbot, LIME, MAGE, MAML, RETSINA, SOAR , TuCSoN, VOYAGER,... • ... e muito mais!!!!

  8. E Linguagens? • Paradigma de programação diferente da abordagem objeto • Poucas linguagens robustas • Existem linguagens OA direcionadas a aplicações específicas • Ex: Brahms  Simulação Multi-Agent

  9. Brahms • Business Redesign Agent-Based Holistic Modeling System • Ambiente (pacote de aplicativos e maquina virtual) criado com a intenção de simular práticas de trabalho. • Linguagem própria baseada em regras, com semelhanças com BDI. • Permite a modelagem de agentes baseados em humanos bastante complexos (crenças, raciocínio dedutivo, quadros de atividade). • Modelo do(s) ambiente(s) físico(s) em que se encontram os agentes. • Extensos dados estatísticos e programa especial para a visualização destes.

  10. Linguagem Brahms • Implementação e modelagem no mesmo paradigma de programação (agentes) • Conceitos • Classes (classes) e objetos (objects) • Grupos (groups) e agentes (agents) • Atividades (activities) e ações (actions) • Crenças (beliefs) e Fatos (facts) • Quadros de trabalho (workframe) • Quadros de pensamento (thoughtframe) • Geografia (geography)

  11. Relação entre os conceitos • Grupos (groups) contêm agentes (agents) situados (geography), que possuem crenças (beliefs), que os leva a se engajar em atividades (activities) especificada em quadro de trabalho (workframe), que consistem em precondições de crenças que leva a ações (actions), novas crenças (beliefs) e fatos do mundo (facts), através de quadros de pensamento (thoughtframe), que consistem em precondições e conseqüências.

  12. Classes e objetos • As classes representam objetos do mundo que são usados como recursos pelos agentes, servem para guardar informações para os agentes. • Os objetos são vistos como instâncias das classes. • Mesma idéia de classes e objetos em OO • Estrutura da linguagem diferente

  13. Exemplos de Classes e Objetos class Bank { display: "Bank"; attributes: public string name; public int receivedAccountPin; public int receivedAccountCode; initial_facts: (current.receivedAccountPin != 0); (current.receivedAccountCode != 0); (current.correctPin != false); activities: primitive_activity registerInfo() { max_duration: 5; } workframe wf_replyAtm { repeat: true; variables: forone(Atm) at3; foreach(Account) bka; when(knownval(at3 ownedbyBank current) and knownval(current.readyToTransmit = true)) do { processReplyAtm(); replyAtm(at3,bka); conclude((current. accountCode = at3.currentAccountCode), bc:100, fc:100); } }

  14. Grupos e agentes • Agentes são entidades que possuem crenças, fazem inferências sobre suas crenças e realizam atividades • Grupos representam classes de agentes • Ex: Grupo de alunos. Grupo de professores. • Grupo está para Classe, assim como Objeto está para Agente

  15. Crenças e fatos • Uma crença é uma verdade para um agente (e apenas para ele). • Representa um objeto de conhecimento do agente • Um fato é uma verdade para todos os agentes • Representa um estado do mundo

  16. Workframes • Workframes descrevem como e em que situações um agente ou objeto deve executar uma atividade • Pode ser composto de várias atividades e ter como conseqüência a alteração das crenças do agente ou dos fatos do mundo

  17. Exemplo de Workframe workframe wf_weekend{ repeat: true; variables: forone(ProjectClass) project; forone(Clock1) clk; detectables: detectable endOfProject{ when(whenever) detect((project.concluded = true), dc:100) then abort; } when(knownval(current workIn project) and knownval(clk.week > current.week)) do{ conclude((project.time = project.time + current.speed ), bc:100, fc:100); conclude((current.speed = current.perceivedTime), bc:100, fc:100); conclude((current.perceivedTime = 0), bc:100, fc:100); conclude((current.week = clk.week), bc:100, fc:100); } }

  18. Atividades • Realiza uma ação, que pode ser do tipo: • Comunicação: communication , broadcast • Locomoção: move • Criacional: create agent, object • Composta: composite • Externas: java

  19. Quadro de pensamento • Define o raciocínio (dedução) dos agentes • Regras de produção de conhecimento (beliefs) • Similar ao Workframe. A diferença reside no fato que ThoughtFrames não produzem nos fatos no mundo, apenas modificam as crenças dos agentes ou criam novas

  20. Áreas Geográficas • Modelo definido através de áreas e de caminhos entra áreas • area • areadef • path areadef Restaurant extends Building { } area Telegraph_Av_2134 instanceof Restaurant partof Berkeley { } path StH_to_from_BB { area1: SouthHall; area2: Telegraph_Av_2134; distance: 360; }

  21. Modelos em Brahms • Modelo de agentes • Modelo de objetos • Modelo de atividades • Modelo de comunicação • Modelo de relações • Modelo de conhecimento • Modelo geográfico

  22. Exemplo de cenário • Modelo da rotina de um dia típico de um aluno da UFRN • Os alunos passam a maior parte do dia estudando, parando apenas quando está com fome. Quando isso ocorre, eles vão à cantina mais próxima. Se um aluno não tem grana suficiente, ele passa primeiro num caixa eletrônico de um banco.No caixa, o aluno insere seu cartão e tem 3 tentativas para digitar sua senha correta. Em cada tentativa, o caixa se comunica com o banco para validá-la.Os alunos precisam ter dinheiro na conta para poder retirar.

  23. Grupos/Agentes e Classes/Objetos • Grupo Aluno: João e Maria • Classe Banco: BB e CEF • Classe Caixa: Caixa do BB, Caixa do CEF • Classe Cantina: Campeão, Cant. Setor I,... • Classe Local de estudo: LCC, Biblioteca, Setor III • Classe Relógio: Relógio

  24. Personal Agent • Conjunto de ferramentas para auxiliar o desenvolvimento de simulações usando Brahms • Composto de: • Composer • Compiler • Virtual Machine (Motor de simulação) • Agent Viewer

  25. Composer • IDE para desenvolvimento, auxilia a gerenciar o desenvolvimento dos modelos

  26. Compiler • Converte os modelos descritos na linguagem Brahms em XML <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE MODEL SYSTEM "DTD\model.dtd"> <!-- Generated at Sat Dec 13 12:01:40 BRST 2003 --> <MODEL name="NewModel"> <AGENTREF ref="brahms.base.ANY-AGENT" /> <OBJECTREF ref="brahms.base.Clock" /> <OBJECTREF ref="brahms.base.Date" /> <AREAREF ref="brahms.base.NoLocation" /> </MODEL>

  27. Virtual Machine(Motor de simulação) • A simulação é executada na Brahms Virtual Machine que consiste de um motor de simulação • A VM une todos os elementos do modelo e gera uma simulação • resultado da simulação é um arquivo de texto simples com todos os eventos que ocorreram durante a simulação workframe|WFR30|wf_moveToLocationForCash|VAR89,VAR91,VAR88, wf-variable|VAR52|forone(projects.atm.BankCard) bkc4|FOR-ONE|true|CLS9 precondition|PRE159|knownval(current.waitAtmAsksAmount = true) precondition|PRE160|knownval(current hasBankCard bkc4) precondition|PRE161|knownval(at4 contains bkc4) consequence|CON118|conclude((current.waitAtmAsksAmount = false)); consequence|CON119|conclude((at4.RepliedVerification = false));

  28. Agent Viewer • interface gráfica que interpreta a simulação gerando um gráfico com os dados da simulação organizados em uma linha de tempo

More Related