290 likes | 446 Views
Comunicação entre Agentes. Viviane Torres da Silva viviane.silva@ic.uff.br http://www.ic.uff.br/~viviane.silva/isma. Comunicação direta entre os agentes. A comunicação é a base para as interação entre os agentes Existem diversas formas de interagir com outros agentes:
E N D
Comunicação entre Agentes Viviane Torres da Silva viviane.silva@ic.uff.br http://www.ic.uff.br/~viviane.silva/isma
Comunicação direta entre os agentes • A comunicação é a base para as interação entre os agentes • Existem diversas formas de interagir com outros agentes: • Ações realizadas no ambiente • Quadro compartilhado • Envio direto de mensagem para outro agente • …
Comunicação mediante o ambiente • Os agentes executam ações que modificam o ambiente e os outros agentes podem “ver” as conseqüências • Não é uma comunicação direta mas indireta através de ambiente • Exemplos: robôs em um sistema distribuído • Objetivo: robôs têm que pegar pedras e enviar para uma nave • Os robôs são capazes de detectar pedras, pegar uma pedra e colocar a pedra na nave
Sistema de quadro compartilhado • Quadro: área de trabalho comum onde os agentes compartilham informação • Não existe uma comunicação direta mas através do quadro • Problema: os agentes de um sistema distribuído têm que ter acesso ao quadro que é um mecanismo centralizado
Comunicação direta entre os agentes • Os agentes se comunicam para • Pedir uma informação • Enviar uma informação • Pedir a execução de um determinado serviço • …. • Os agente tentam alcançar seus objetivos através da comunicação com os outros agentes • A maior parte das linguagens para agentes se inspirou na teoria dos atos de fala (speech act)
Atos de Fala • Tentam descrever como as linguagens são utilizadas pelas pessoas todos os dias para alcançar os seus objetivos • A origem da teoria dos atos da fala está publicada em: • How to Do Things with Words, de J. Austin 1962 • Quem fala não declara somente sentenças certas ou falsas • Quem fala realiza “atos da fala”: • Pedidos, sugestões, promessas, ameaças, etc. • Cada declaração é um ato da fala
Tipos de Atos da Fala (J. Searle 1969) • Atos assertivos: dão informação sobre o mundo • Ex: Estou de acordo Ex: 2 e 2 são 4 • Atos diretivos: para solicitar algo ao destinatário • Ex: Cale-se Ex: Quanto custa esta caneta? • Atos de promessas: comprometem aquele que fala a realizar certas ações no futuro • Ex: Farei o trabalho amanhã Ex: Te ajudarei a fazer • Atos expressivos: dão indicações do estado mental daquele que fala • Ex: Estou cansado Ex: Obrigada • Atos declarativos: a declaração é a realização de um ato • Ex: Teu salário é R$600,00 Ex: Este sapato está apertado
Componentes dos Atos de Fala • Locução: modo de produção de frases utilizando uma gramática • Ilocução: ato realizado pelo locutor sobre o destinatário mediante a declaração • pergunta(dia de hoje) responde(11/03) • <performative>(<conteúdo>) • Ex. de performativas: afirmação, pergunta, petição, promessa, ordem • Perlocução: efeitos que podem ter os atos ilocutórios no estado do destinatário (ações, crenças, objetivos,…) • Ex.: convencer, inspirar, persuadir, atemorizar
Exemplo • Mensagem: “abra a porta” • Locução: declaração física com contexto e referência • Quem fala, quem escuta, que porta, etc. • Ilocução: ato de levar intenções • O que fala quer que o que escuta abra a porta • Perlocução: ações que ocorrem como resultado da ilocução • O que escuta abre a porta
Componentes dos Atos de Fala • Diferentes performativas podem ser aplicadas ao mesmo conteúdo com diferentes objetivos • Conteúdo: abrir a porta • Performativa: petição • Por favor, abrir a porta. • Performativa: informação • Não é necessário abrir a porta. • Performativa: pergunta • Pode abrir a porta?
Êxitos do Atos de Fala • Um ato de fala pode ter êxito ou pode falhar • Motivos para a falha: • Enunciação: a mensagem pode não chegar ou pode chegar corrompida • Interpretação: o destinatário não entende a mensagem • Execução final: o destinatário não é capaz de executar a ação solicitada ou decide não executar a ação
Linguagens de Comunicação entre Agentes • Agent Communication Languages (ACLs) • A mais antiga é a KQML desenvolvida por ARPA • A mais conhecida atualmente é a ACL desenvolvida pela FIPA • KQML está dividida em duas partes: • A linguagem de manipulação do conhecimento (KQML) • A linguagem de descrição do conteúdo (KIF)
KIF • Objetivo: compartilhar bases de conhecimento mediante uma linguagem comum (interlingua) Utiliza operações lógicas para descrever coisas: • As propriedades de coisas em um domínio • Ex: Viviane é professora • Relacionamentos entre coisas em um domínio • Ex: Viviane é professora da disciplina ISMA • As propriedades de um domínio • Ex.: Todos os alunos são alunos de ao menos uma disciplina
KIF: Exemplos • “A temperatura da água é 30º Celsius” (= (temperatura água) (valor 30 Celsius)) • “Um indivíduo solteiro é um homem que não está casado” (defrelation solteiro (?x) :=> (and (homem ?x) (not (casado ?x)))) • “Um indivíduo que é uma pessoa também é um mamífero” (defrelation pessoa (?x) :=> (mamífero ?x))
Ontologia • Para se comunicar os agentes precisam estar de acordo com o significado de um conjunto de termos que será utilizado na linguagem • Ontologia: especificação formal de um conjunto de termos • É uma definição do “mundo”, em função de objetos, qualidades, distinções e relações • Uma ontologia define um conjunto de classes, funções e constantes para um domínio do discurso
KQML • É uma linguagem de comunicação e protocolo, orientada a mensagens, para a troca de informação • KQML é independente de • protocolos de transporte (TCP/IP, HTTP, ...) • sintaxes de contexto • ontologias do conteúdo • protocolos de comunicação / alto nível (contract net, subasta, ...) • KQML define um conjunto de performativas que podem ser utilizadas para expressar diferentes desejos
Parâmetro Valor KQML • A sintaxe da linguagem utiliza LISP • Uma pessoa pode compreender e é fácil de fazer parser (ask-if:sender A:receiver B:ontology std:language prolog:content (preço Livro ?preço) ) Performativa
Nível de mensagem Nível de comunicação Nível de conteúdo Nível de mensagem Composição de um mensagem KQML • A performativa • O que envia a mensagem • :sender <word> • O que recebe a mensagem • :receiver <word> • Descreve a performativa que deverá ser utilizada na resposta • :reply-with <expression> • :in-reply-to <expression> • Conteúdo • :content <expression> • Linguagem na qual o conteúdo está descrito • :language <word> • A ontologia que descreve os conceitos que estão na linguagem de conteúdo • :ontology <word> • Indica si o agente irá em algum momento negar o conteúdo da mensagem • :force <word>
Tipos de Performativas • Performativas básicas • evaluate, ask-if, ask-in, ask-one, ask-all, … • Performativas de resposta • reply, sorry, stream-all, … • Performativas genéricas de informação • tell, achieve, cancel, untell, unachieve, … • Performativas relacionadas a una ação • standby, ready, next, rest, discard, generator, … • Performativas de capacidade: • advertise, subscribe, monitor, import, export, … • Performativas de rede: • register, unregister, forward, broadcast, route, …
Exemplo (ask-one:sender José:receiver Servidor-Jogo:content (pontos Maria ?pontos):ontology jogo-X:reply-with resposta-pontos:language prolog) (tell:sender Servidor-Jogo:receiver José:content (pontos Maria 74 ):ontology jogo-X:in-reply-to resposta-pontos:language prolog)
FIPA (Foundation for Intelligent Physical Agents) • Objetivo: acelerar o desenvolvimento de tecnologias de agentes inteligentes mediante a produção de especificações acordadas internacionalmente • http:://www.fipa.org • ACL (Agent Communicaion Language) • Propôs uma linguagem com uma semântica mais rigorosa que a KQML
FIPA: Comunicação entre Agentes • Especificação da estrutura da mensagem • Especificação sobre o serviço de ontologias • Protocolos de interação • Descreve os requisitos de um protocolo • Tem uma biblioteca de protocolos • Atos da fala • Define um conjunto de performativas • Conteúdos da linguagem • Define os requisitos de uma linguagem de conteúdo • Tem uma biblioteca de linguagens de conteúdo
Não existe em KQML FIPA: Especificação da estrutura da mensagem
FIPA: Especificação da estrutura da mensagem • Reply-to: indica o agente que irá receber a mensagem, que é diferente do agente que enviou a mensagem • Enconding: forma de criptografia do conteúdo • Protocol: o protocolo de comunicação que está sendo utilizado na interação dos agente • Conversation-id: identificador da conversa onde está a mensagem • Reply-by: hora ou data máxima na qual a resposta deve ser enviada
FIPA: Atos de Fala • Define 20 performativas • Resumo • Como descrever o conteúdo da mensagem • Descrição da performativa (detalhes) • Modelo formal • Exemplo • Uma performativa pode • Enviar uma informação • Pedir uma informação • Negociar • Executar uma ação • Falar sobre um erro
Exemplo: Inform • Resumo: • Um agente informa outro agente sobre uma coisa que é verdade • Conteúdo: • a informação • Descrição: o agente que envia crê que... • a informação é verdadeira • o agente que irá receber a informação irá crer • o agente que irá receber a informação não conhece a informação • Exemplo: (inform :sender (agent-identifier :name i) :receiver (agent-identifier :name j) :content “tempo (hoje, chovendo)“ :language Prolog)
Exemplo: Request • Resumo: • o agente que envia a mensagem pede para o agente que a recebe que execute uma ação • Conteúdo: • a ação • Descrição: o agente que envia crê que... • o agente que recebe é capaz de executar a ação • o agente que recebe não tinha a intenção de executar a ação • Exemplo: (request :sender (agent-identifier :name i) :receiver (agent-identifier :name j) :content “abrir o arquivo db.txt“ :language vb)
FIPA: Protocolos de Comunicação • FIPA-Request-Protocol • FIPA Request Interaction • FIPA Query Interaction • FIPA Request When Interaction • FIPA Contract Net Interaction • FIPA Iterated Contract Net Interaction • FIPA English Auction Interaction • FIPA Dutch Auction Interaction • FIPA Brokering Interaction • FIPA Recruiting Interaction • FIPA Subscribe Interaction • FIPA Propose Interaction