Comunicação em Sistemas Multiagentes Métodos Protocolos.

49
Comunicação em Sistemas Multiagentes Métodos Protocolos

Transcript of Comunicação em Sistemas Multiagentes Métodos Protocolos.

Page 1: Comunicação em Sistemas Multiagentes Métodos Protocolos.

Comunicação em Sistemas Multiagentes

MétodosProtocolos

Page 2: Comunicação em Sistemas Multiagentes Métodos Protocolos.

Introdução Sistemas multiagentes

O uso de agentes individuais pode não ser adequado para todas as situações de problemas que ocorrem na prática.

Requer uma enorme quantidade de conhecimento para resolver situações complexas.

Muitos problemas, devido a sua natureza distribuída, requerem unidades que resolvam o problema de forma distribuída.

Cooperação e comunicação

Page 3: Comunicação em Sistemas Multiagentes Métodos Protocolos.

Comunicação em Sistemas Multiagentes

ComunicaçãoQuadroNegro

Diálogos

Mensagens

Protocolos

Page 4: Comunicação em Sistemas Multiagentes Métodos Protocolos.

Quadro Negro

Agente Agente

Agente Agente

Método do Quadro Negro

Page 5: Comunicação em Sistemas Multiagentes Métodos Protocolos.

Método do Quadro-Negro

O quadro-negro provê a todos os agentes dentro de um sistema multiagentes, uma área de trabalho comum, na qual eles podem trocar informação e conhecimento.

Page 6: Comunicação em Sistemas Multiagentes Métodos Protocolos.

Método do Quadro-Negro

Um agente inicia uma ação de comunicação escrevendo um item de informação no quadro. Esta informação é então disponível para todos os outros agentes no sistema.

Page 7: Comunicação em Sistemas Multiagentes Métodos Protocolos.

Método do Quadro-Negro

Todo agente pode, em qualquer tempo acessar o quadro, para ver se alguma informação tem chegado desde seu último acesso. Se sim, ele pode ler essa informação.

Page 8: Comunicação em Sistemas Multiagentes Métodos Protocolos.

Subproblemas

Moderador

Agente

Agente

Agente Dispatcher

KSARs

Conhecimento de Controle

Estrutura Estendida do Quadro Negro

Page 9: Comunicação em Sistemas Multiagentes Métodos Protocolos.

Moderador O conceito de quadro-negro original não tem

qualquer instância para verificar contribuições ou parar agentes de armazenar informação para subproblemas que não são parte de sua área de responsabilidade.

Assim, um moderador publica no quadro os próximos subproblemas a serem resolvidos e verifica quais agentes se aplicam para a solução das tarefas associadas.

O moderador realiza a atribuição de um subproblema a um agente.

Page 10: Comunicação em Sistemas Multiagentes Métodos Protocolos.

KSAR Qualquer agente pode usar o quadro

para ler subproblemas em aberto.

Se ele tem interesse em subproblemas específicos, ele usará uma base de dados por criar um Knowledge Source Ativation Record (KSAR) na base de dados.

Page 11: Comunicação em Sistemas Multiagentes Métodos Protocolos.

Dispatcher

Um dispatcher tem a tarefa de informar aos agentes, registrados no quadro, de mudanças feitas no quadro. Por exemplo, se novas mensagens surgem e novos subproblemas são oferecidos, o dispatcher pode contactar aqueles agentes que ele considera que podem ter interesse na nova informação.

Page 12: Comunicação em Sistemas Multiagentes Métodos Protocolos.

Estrutura de Diálogo

Agent A Agent B

Agent C

ask-about

reply

ask-aboutreply

Page 13: Comunicação em Sistemas Multiagentes Métodos Protocolos.

Princípio da Transmissão de Mensagem

Agent A(Sender)

Agent B(Receiver)

Message

Page 14: Comunicação em Sistemas Multiagentes Métodos Protocolos.

Protocolos de Comunicação KIF – Knowledge Interchange Format

KQML - Knowledge and Query Manipulation Language

ACL – Agent Communication Language

Page 15: Comunicação em Sistemas Multiagentes Métodos Protocolos.

KIF – Knowledge Interchange Format Foi desenvolvida como parte do projeto

Knowledge Sharing Efforts (KSE), com o intuito de ser uma linguagem comum para expressar propriedades de um domínio.

Utilizada para expressar conteúdo de uma mensagem.

Baseia-se em lógica de primeira ordem.

Page 16: Comunicação em Sistemas Multiagentes Métodos Protocolos.

KIF Características

Semântica declarativa Logicamente compreensiva Representação de conhecimento

sobre conhecimento Concepção do mundo através de

objetos e relacionamentos Sintaxe semelhante a LISP

Page 17: Comunicação em Sistemas Multiagentes Métodos Protocolos.

Vocabulário básico Números (reais e complexos) Caracteres ASCII Strings

Conectivos lógicos and or not

KIF

Page 18: Comunicação em Sistemas Multiagentes Métodos Protocolos.

KIF Quantificadores existenciais

forall exists

Listas (listof t1 ... tk)

Definições (defobject s := t) (deffunction f (v1 ...vn) := t) (defrelation r (v1 ...vn) := p)

Page 19: Comunicação em Sistemas Multiagentes Métodos Protocolos.

KIF Exemplos

(= (temperature m1) (scalar 83 Celsius)

(defobject nil := (listof)) (deffunction 1+ (?x) := (+ ?x 1)) (defrelation bachelor (?x) :=

(and (man ?x) (not (married ?x))))

Page 20: Comunicação em Sistemas Multiagentes Métodos Protocolos.

KQML – Knowledge and Query Manipulation Language É uma linguagem e uma

especificação de protocolos que dá suporte a comunicação entre agentes.

Foi desenvolvida como parte do projeto Knowledge Sharing Efforts (KSE) na University of Maryland.

Page 21: Comunicação em Sistemas Multiagentes Métodos Protocolos.

KQML Define um formato de mensagem e

um sistema de transmissão de mensagens para a comunicação e cooperação em sistemas multiagentes.

Define um conjunto de protocolos para identificação, estabelecimento de conexão e troca de mensagens.

Page 22: Comunicação em Sistemas Multiagentes Métodos Protocolos.

KQML O conteúdo semântico de uma

mensagem não é especificado em detalhe em KQML.

Como o padrão é aberto, várias linguagens podem ser usadas para trocar conhecimento e podem ser integradas em uma mensagem KQML.

Page 23: Comunicação em Sistemas Multiagentes Métodos Protocolos.

Formato da Mensagem KQML Mensagem KQML divide-se em três

níveis: Camada de Mensagem: contém informações

sobre o conteúdo da mensagem como por exemplo: ontologia, linguagem.

Camada de Comunicação: contém os parâmetros de baixo nível da comunicação como por exemplo: remetente, destinatário, identificador único da mensagem.

Camada de Conteúdo: especifica o conteúdo da mensagem.

Page 24: Comunicação em Sistemas Multiagentes Métodos Protocolos.

Formato da Mensagem KQML Toda mensagem KQML tem a

seguinte estrutura:(<performative>

: language <text>: ontology <text>: sender <name>: receiver <name>: content <statement>

)

Camada de Mensagem

Camada de Comunicação

Camada de Conteúdo

Page 25: Comunicação em Sistemas Multiagentes Métodos Protocolos.

Performativas KQML Performativas são os tipos de

ações de fala. Para garantir o seu uso

generalizado, KQML define um conjunto de performativas que pode ser usado para quase todas os propósitos de aplicações.

Page 26: Comunicação em Sistemas Multiagentes Métodos Protocolos.

Performativas KQMLPerformati

vaSignificado

achieve S deseja que R torne verdadeiras algumas declarações em seu ambiente.

advertise S afirma ser capaz de processar um tipo de ação de fala particular.

ask-one S deseja uma das respostas de R para a questão C.

broker-one S deseja que R encontre auxilio para sua ação de fala.

eos Fim de uma resposta stream para uma questão anterior.

evaluate S quer que R avalie C.

Page 27: Comunicação em Sistemas Multiagentes Métodos Protocolos.

Performativas KQMLPerformativa Significado

recommend-one S deseja o nome de um agente que pode responder a uma ação de fala.

reply Responde a uma pergunta.

stream-about Múltiplas versões de resposta.

subscribe S deseja receber continuamente atualizações de respostas de R para uma ação de fala.

tell S afirma para R que C está em sua base de conhecimento.

untell S afirma para R que C não está em sua base de conhecimento.

Page 28: Comunicação em Sistemas Multiagentes Métodos Protocolos.

Principais Parâmetros de KQML :language – especifica a linguagem na

qual o conteúdo é expresso. :ontology – define a terminologia usada

na mensagem. :sender – identifica o remetente da

mensagem. :receiver – identifica o destinatário da

mensagem.

Page 29: Comunicação em Sistemas Multiagentes Métodos Protocolos.

Principais Parâmetros de KQML :reply-with – indica que o remetente

espera uma resposta e especifica um identificador para a resposta.

:in-reply-to – referência ao parâmetro de :reply-with.

:content – conteúdo da mensagem.

Page 30: Comunicação em Sistemas Multiagentes Métodos Protocolos.

Exemplos de Mensagem KQML

(ask-one:language LPROLOG:ontology NYSE-TICKS:sender client :receiver stock-server:reply-with q1:content(PRICE IBM ?price)

)

Page 31: Comunicação em Sistemas Multiagentes Métodos Protocolos.

Exemplos de Mensagem KQML O remetente (client) usa a performativa ask-one

para informar ao destinatário (stock-server) o seu desejo de receber uma resposta para a questão realizada.

O conteúdo real da mensagem neste exemplo é formulado na linguagem LPROLOG e a questão é o preço de um IBM stock.

Sabe-se que a questão refere-se a um IBM stock devido à ontologia NYSE-TICKS (New York Exchanger Ticker).

Page 32: Comunicação em Sistemas Multiagentes Métodos Protocolos.

Exemplos de Mensagem KQML

(tell:language LPROLOG:ontology NYSE-TICKS :sender stock-server:receiver client:in-reply-to q1:content 10.0

)

Page 33: Comunicação em Sistemas Multiagentes Métodos Protocolos.

Exemplos de Mensagem KQML O remetente (stock-server) usa a performativa

tell para informar ao destinatário (client) a resposta da questão q1.

Page 34: Comunicação em Sistemas Multiagentes Métodos Protocolos.

Facilitador em KQML Nem todo diálogo em KQML deve

ser modelado na forma de simples processos question/answer.

KQML introduz a função de um facilitador para permitir o uso de estruturas de dados mais complexas.

Page 35: Comunicação em Sistemas Multiagentes Métodos Protocolos.

Facilitador em KQML A principal tarefa de um facilitador

é permitir a interação entre agentes que estão buscando por informação e aqueles que estão provendo informação.

Page 36: Comunicação em Sistemas Multiagentes Métodos Protocolos.

Facilitador em KQML Se um agente busca uma informação, mas

não sabe quais agentes podem provê-la, ele pode usar a performativa broker para usar os serviços de um facilitador.

O facilitador aceita a consulta e tenta encontrar um agente com o conhecimento apropriado.

Todo agente pode usar a performativa advertise para informar seu conhecimento ao facilitador.

Page 37: Comunicação em Sistemas Multiagentes Métodos Protocolos.

Agent1 Agent2

Facilitador

Agent1 Agent2

TELL(X)

2.BROKER(ASK(X))

5.TELL(X)

1.ADVERTIS

E(ASK(X))

4.TELL(X)

3.ASK(X

)

Question/Answer x Facilitador

ASK(X)

Question/Answer Uso de Facilitador

Page 38: Comunicação em Sistemas Multiagentes Métodos Protocolos.

Facilitador em KQML Se um agente busca uma informação,

mas não sabe quais agentes podem provê-la, ele pode usar também a performativa recommend.

Neste caso, o facilitador apenas informa o endereço de um agente adequado. A transferência do conhecimento ocorre diretamente entre os agentes.

Page 39: Comunicação em Sistemas Multiagentes Métodos Protocolos.

4.ASK(X)

5.TELL(X)

Facilitador em KQML

Agent1 Agent2

Facilitador

1.ADVERTIS

E (ASK(X))

3.REPLY(X)

2.RECOMMEND

(ASK(X))

Performativa Recommend Performativa Broker

Facilitador

Agent1 Agent2

2.BROKER(ASK(X))

5.TELL(X)

1.ADVERTIS

E(ASK(X))

4.TELL(X)

3.ASK(X

)

Page 40: Comunicação em Sistemas Multiagentes Métodos Protocolos.

Facilitador em KQML Um agente pode usar

a performativa subscribe para solicitar ao facilitador respostas atualizadas. Se uma mudança na base de conhecimento ocorre, ela é informada ao agente questionador.

1.SUBSCRIBE

(ASK(X))

2.TELL(X

)

3.TELL(X)

Agent1 Agent1

Facilitador

Page 41: Comunicação em Sistemas Multiagentes Métodos Protocolos.

ACL – Agent Communication Language Foi desenvolvida por Foundation

for Intelligent Physical Agents (FIPA).

Similar a KQML, porém com semântica formal compreensível.

Page 42: Comunicação em Sistemas Multiagentes Métodos Protocolos.

Parâmetros ACLParâmetro Categoria

performative Tipo de ação comunicativa

sender Participante na comunicação

receiver Participante na comunicação

reply-to Participante na comunicação

content Conteúdo da mensagemlanguage Descrição de conteúdoencoding Descrição de conteúdo

Page 43: Comunicação em Sistemas Multiagentes Métodos Protocolos.

Parâmetros ACLParâmetro Categoria

ontology Descrição de conteúdoprotocol Controle de conversaçãoconversation-id Controle de conversaçãoreply-with Controle de conversaçãoin-reply-to Controle de conversaçãoreply-by Controle de conversaçãox- Parâmetros adicionais

Page 44: Comunicação em Sistemas Multiagentes Métodos Protocolos.

Parâmetros ACL performative – denota o tipo de ação

comunicativa da mensagem. sender – denota a identidade do

remetente da mensagem. receiver – denota a identidade do(s)

destinatário(s). reply-to – indica que as mensagens

subseqüentes devem ser direcionadas para o agente informado por este parâmetro.

Page 45: Comunicação em Sistemas Multiagentes Métodos Protocolos.

Parâmetros ACL content – denota o conteúdo da

mensagem. language – denota a linguagem na qual o

conteúdo da mensagem é expresso. encoding – denota a codificação do

conteúdo. ontology – denota a(s) ontologia(s)

usada(s) para dar significado ao conteúdo.

Page 46: Comunicação em Sistemas Multiagentes Métodos Protocolos.

Parâmetros ACL protocol – denota o protocolo de interação

empregado na mensagem. conversation-id – usado para identificar a

seqüência de performativas da conversação. reply-with – introduz uma expressão que será

usada para identificar a mensagem. in-reply-to – denota uma expressão que

referencia outra mensagem para a qual esta é a resposta.

reply-by – denota hora e/ou data que o remetente aguardará uma resposta.

Page 47: Comunicação em Sistemas Multiagentes Métodos Protocolos.

Performativas ACLPerformativa Significado

accept-proposal Agente aceita proposta feita por outro agente.

agree Agente aceita realizar a ação requisitada.

confirm Agente confirma o conteúdo da mensagem.

failure Agente indica a outro que a tentativa para realizar a ação solicitada falhou.

inform Agente informa algo a outro.

not-understood Agente indica a outro que percebeu a realização de uma ação, mas não entendeu o porquê.

Page 48: Comunicação em Sistemas Multiagentes Métodos Protocolos.

Performativas ACLPerformativa Significado

propagate Solicita ao destinatário que envie a mensagem para um conjunto de agentes.

propose Permite a um agente fazer uma proposta a outro.

query-if Permite a um agente perguntar se determinada declaração é verdadeira ou falsa.

refuse É usado por um agente para informar a outro que não poderá realizar a ação solicitada.

request Permite a um agente solicitar a outro a realização de uma ação.

subscribe Remetente solicita ao destinatário ser notificado sempre que houver mudanças em uma determinada declaração.

Page 49: Comunicação em Sistemas Multiagentes Métodos Protocolos.

Exemplo de Mensagem ACL

(inform:sender agent1:receiver agent2:content (price good2 150):language sl:ontology hpl-auction)