Modelos Baseados em Agentes Prof. André Campos 01/12/2004 PlataformasMulti-Agente.

Slides:



Advertisements
Apresentações semelhantes
Linguagens de Programação para SMA Viviane Torres da Silva
Advertisements

UNIPAC – ARAGUARI CAMPUS – IX PROF. EVERTON HIPÓLITO DE FREITAS
Curso: Banco de Dados I Análise de Sistemas PUC Campinas
UML Modelando um sistema.
UML Visões – Parte 2.
(Unified Modeling Language)
Engenharia de Software
1 ZEUS Agentes Inteligentes e Sistemas Multi-agente Ferramentas de Contrução de Agentes IST- 2003/2004 Ana Paiva.
UML Material retirado da apostila do Professor Cesar Augusto Tacla
Linguagens de Modelagem
Linguagens de Modelagem (cont.) (IV)
PRDS - Programa de Residência em Desenvolvimento de Software Laboratório de Engenharia de Software (LES) da PUC-Rio Carlos Lucena
Agentes BDI (Belief Desire Intention)
Viviane Torres da Silva
Linguagens de Modelagem para SMA
Modelos Baseados em Agentes
Modelos Baseados em Agentes
Metodologias Orientadas a Agentes
Agentes Móveis Marcelo Bezerra dAmorim Sumário n Motivação n Introdução ao Paradigma de Agentes Móveis n Vantagens n Conceitos de Agentes Móveis n Tecnologias.
Alexandre Parra Site: Linguagem Java Alexandre Parra Site:
Introdução a diagrama de classes e UML
JADE Java Agent DEvelopment Framework
AORML Agent-Object-Relationship Modeling Language Inteligência Artificial 2007/02 Renata S.S. Guizzardi.
GERENCIAMENTO DE REDES
Aspectos Avançados em Engenharia de Software Aula 3 Fernanda Campos
Classes e objetos Modelagem
Introdução a Programação Orientada a Objetos
Introdução a Arquitetura Orientada a serviços
Engenharia de Software e Sistemas de Informação e Gestão
JAVA: Conceitos Iniciais
Desenvolvendo Sistemas Multiagentes com JADE
DIAGRAMA DE CASO DE USO Prof. Fabíola Gonçalves C. Ribeiro.
Arquiteturas de Referência
Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Computação e Estatística Servidor de Documentos XML Usando.
Web Services Uninorte Semana de Tecnologia da Informação
Introdução ao Framework Django
Métodos de Construção de Software: Orientação a Objetos
Metodologias para construção de SMA
3 – Agentes e 4 – Multiagentes
Professor: Márcio Amador
FIPA THE FOUNDATION FOR INTELLIGENT PHYSICAL AGENTS
Orientação a Objetos Parte I
Aula 1 - Fundamentos Java SE Instituto Metodista Izabela Hendrix Curso de Tecnologia em Análise e Desenvolvimento de Sistemas Prof. Gilmar Medeiros – Agosto/2009.
Tecgraf PUC-Rio Setembro de 2013 Introdução ao Openbus.
Banco de Dados Aplicado ao Desenvolvimento de Software
X.400 Liane Tarouco. Sistemas de mensagens Sistemas e serviços de tratamento de mensagens habilitam os usuários a trocar mensagens na base do armazena-e-envia.
Inteligência Artificial Web Semântica
OMNeT++.
Laboratório de Programação
RUP - Cap. 3 – Processo Dirigido por Caso de Uso
Infra-estrutura da tecnologia de informação
Padrões de Interação com o Usuário
PCS - Departamento de Engenharia de Computação e Sistemas Digitais Projeto de Formatura – Turmas 2010 Integrantes: Professor Orientador: Co-orientador:
Introdução JAVA Faculdade Mauricio de Nassau
MAKE: UM FRAMEWORK PARA GERAÇÃO DE DADOS PARA TESTES UNITÁRIOS EM JAVA Guilherme Braga Viana BahiaAluno: Orientador:Prof. Joaquim Pedro C. de Oliveira,
Linguagem de Modelagem Unificada
Introdução a Programação Orientada a Objetos
Desenvolvimento Global de Software
Análise e Projeto de Sistemas Unified Modeling Language Renata Araujo Ricardo Storino Núcleo de Computação Eletrônica Curso de Programação de Computadores.
CloudSim Um framework para modelagem e simulação de infraestrutura e serviços de Computação em Nuvem.
Análise e Projeto de Sistemas
André Drummond RA Danilo Benzatti RA
Projeto Supervisionado no Desenvolvimento de Aplicações Profissionais na Web Servidores.
UML (Unified Modeling Language) Linguagem Unificada de Modelagem
UML (Unified Modeling Language) Linguagem Unificada de Modelagem
Engenharia de Software com o RUP - Workflow de Requisitos
Versão 1 - julho/2013 Tecgraf PUC-Rio Novembro de 2013 Introdução ao OpenBus.
Django Por Bruno soares(bss3).
1 Especificação de Sistemas de Software e a UML. 2 Modelagem de sistema A modelagem de sistema auxilia o analista a entender a funcionalidade do sistema.
YOUR LOGO Tópicos Avançados em Internet Prof. Lincoln Ferreira Dantas Sistemas de Informação UNIESP – Presidente Epitácio.
Transcrição da apresentação:

Modelos Baseados em Agentes Prof. André Campos 01/12/2004 PlataformasMulti-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 ou ) 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íficas Ex: 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 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); }

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

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

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 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); }

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

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

Á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; }

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: Composer Compiler Virtual 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

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));

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