modelos baseados em agentes prof. andré campos 01/12/2004 plataformasmulti-agente
TRANSCRIPT
Modelos Baseados em Agentes
Prof. André Campos
01/12/2004
PlataformasPlataformasMulti-AgenteMulti-Agente
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?
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)
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
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
Transporte (ACC)HTTP
Tipos de plataformas
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
Análise
Design
Implementação
Teste e validação
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!!!!
E Linguagens?
Paradigma de programação diferente da abordagem objeto
Poucas linguagens robustas Existem linguagens OA direcionadas a
aplicações específicasEx: Brahms Simulação Multi-Agent
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.
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)
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.
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
Exemplos de Classes e Objetosclass 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) andknownval(current.readyToTransmit = true))
do {processReplyAtm();replyAtm(at3,bka);conclude((current. accountCode = at3.currentAccountCode), bc:100,
fc:100);}
}
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 agentesEx: Grupo de alunos. Grupo de professores.Grupo está para Classe, assim como Objeto
está para Agente
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
agentesRepresenta um estado do mundo
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
Exemplo de Workframeworkframe 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);
}
}
Atividades
Realiza uma ação, que pode ser do tipo:Comunicação: communication , broadcast Locomoção: moveCriacional: create agent, objectComposta: compositeExternas: java
Quadro de pensamento
Define o raciocínio (dedução) dos agentesRegras 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
Áreas Geográficas
Modelo definido através de áreas e de caminhos entra áreasareaareadefpath 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;
}
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
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.
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
Personal Agent
Conjunto de ferramentas para auxiliar o desenvolvimento de simulações usando Brahms
Composto de:ComposerCompilerVirtual Machine (Motor de simulação)Agent Viewer
Composer IDE para desenvolvimento, auxilia a gerenciar o
desenvolvimento dos modelos
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>
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|CLS9precondition|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));
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