Comunicao em Sistemas Multiagentes Mtodos Protocolos Introduo n

  • Slides: 49
Download presentation
Comunicação em Sistemas Multiagentes Métodos Protocolos

Comunicação em Sistemas Multiagentes Métodos Protocolos

Introdução n Sistemas multiagentes n n O uso de agentes individuais pode não ser

Introdução n Sistemas multiagentes n n 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

Comunicação em Sistemas Multiagentes Diálogos Comunicação Quadro Negro Mensagens Protocolos

Comunicação em Sistemas Multiagentes Diálogos Comunicação Quadro Negro Mensagens Protocolos

Método do Quadro Negro Agente

Método do Quadro Negro Agente

Método do Quadro-Negro n O quadro-negro provê a todos os agentes dentro de um

Método do Quadro-Negro n 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.

Método do Quadro-Negro n Um agente inicia uma ação de comunicação escrevendo um item

Método do Quadro-Negro n 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.

Método do Quadro-Negro n Todo agente pode, em qualquer tempo acessar o quadro, para

Método do Quadro-Negro n 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.

Estrutura Estendida do Quadro Negro Moderador KSARs Conhecimento de Controle Agente Subproblemas Agente Dispatcher

Estrutura Estendida do Quadro Negro Moderador KSARs Conhecimento de Controle Agente Subproblemas Agente Dispatcher

Moderador n n n O conceito de quadro-negro original não tem qualquer instância para

Moderador n n n 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.

KSAR n n Qualquer agente pode usar o quadro para ler subproblemas em aberto.

KSAR n n 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.

Dispatcher n Um dispatcher tem a tarefa de informar aos agentes, registrados no quadro,

Dispatcher n 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.

Estrutura de Diálogo ask-about Agent A Agent B reply ask-about Agent C

Estrutura de Diálogo ask-about Agent A Agent B reply ask-about Agent C

Princípio da Transmissão de Mensagem Agent A (Sender) Message Agent B (Receiver)

Princípio da Transmissão de Mensagem Agent A (Sender) Message Agent B (Receiver)

Protocolos de Comunicação n n n KIF – Knowledge Interchange Format KQML - Knowledge

Protocolos de Comunicação n n n KIF – Knowledge Interchange Format KQML - Knowledge and Query Manipulation Language ACL – Agent Communication Language

KIF – Knowledge Interchange Format n n n Foi desenvolvida como parte do projeto

KIF – Knowledge Interchange Format n n n 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.

KIF n Características n n n Semântica declarativa Logicamente compreensiva Representação de conhecimento sobre

KIF n Características n n n 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

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

KIF n Vocabulário básico n n Números (reais e complexos) Caracteres ASCII Strings Conectivos lógicos n n n and or not

KIF n Quantificadores existenciais n n n Listas n n forall exists (listof t

KIF n Quantificadores existenciais n n n Listas n n forall exists (listof t 1. . . tk) Definições n n n (defobject s : = t) (deffunction f (v 1. . . vn) : = t) (defrelation r (v 1. . . vn) : = p)

KIF n Exemplos n (= (temperature m 1) (scalar 83 Celsius) n (defobject nil

KIF n Exemplos n (= (temperature m 1) (scalar 83 Celsius) n (defobject nil : = (listof)) n (deffunction 1+ (? x) : = (+ ? x 1)) n (defrelation bachelor (? x) : = (and (man ? x) (not (married ? x))))

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

KQML – Knowledge and Query Manipulation Language n n É 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.

KQML n n Define um formato de mensagem e um sistema de transmissão de

KQML n n 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.

KQML n n O conteúdo semântico de uma mensagem não é especificado em detalhe

KQML n n 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.

Formato da Mensagem KQML n Mensagem KQML divide-se em três níveis: n n n

Formato da Mensagem KQML n Mensagem KQML divide-se em três níveis: n n n 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.

Formato da Mensagem KQML n Toda mensagem KQML tem a seguinte estrutura: (<performative> :

Formato da Mensagem KQML n 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

Performativas KQML n n Performativas são os tipos de ações de fala. Para garantir

Performativas KQML n n 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.

Performativas KQML Performativa Significado achieve S deseja que R torne verdadeiras algumas declarações em

Performativas KQML Performativa Significado 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.

Performativas KQML Performativa Significado recommend-one S deseja o nome de um agente que pode

Performativas KQML Performativa 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.

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

Principais Parâmetros de KQML n n : 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.

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

Principais Parâmetros de KQML n n n : 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.

Exemplos de Mensagem KQML (ask-one : language LPROLOG : ontology NYSE-TICKS : sender client

Exemplos de Mensagem KQML (ask-one : language LPROLOG : ontology NYSE-TICKS : sender client : receiver stock-server : reply-with q 1 : content(PRICE IBM ? price) )

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

Exemplos de Mensagem KQML n n n 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).

Exemplos de Mensagem KQML (tell : language LPROLOG : ontology NYSE-TICKS : sender stock-server

Exemplos de Mensagem KQML (tell : language LPROLOG : ontology NYSE-TICKS : sender stock-server : receiver client : in-reply-to q 1 : content 10. 0 )

Exemplos de Mensagem KQML n O remetente (stock-server) usa a performativa tell para informar

Exemplos de Mensagem KQML n O remetente (stock-server) usa a performativa tell para informar ao destinatário (client) a resposta da questão q 1.

Facilitador em KQML n n Nem todo diálogo em KQML deve ser modelado na

Facilitador em KQML n n 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.

Facilitador em KQML n A principal tarefa de um facilitador é permitir a interação

Facilitador em KQML n 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.

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

Facilitador em KQML n n n 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.

Question/Answer x Facilitador Agent 1 ASK(X) Agent 2 TELL(X) 1. 2. ADVERTISE BROKER (ASK(X))

Question/Answer x Facilitador Agent 1 ASK(X) Agent 2 TELL(X) 1. 2. ADVERTISE BROKER (ASK(X)) 5. TELL(X) Agent 2 4. 3. TELL(X) ASK(X) Facilitador Question/Answer Uso de Facilitador

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

Facilitador em KQML n n 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.

Facilitador em KQML 4. ASK(X) Agent 1 Agent 2 Agent 1 1. 5. 1.

Facilitador em KQML 4. ASK(X) Agent 1 Agent 2 Agent 1 1. 5. 1. 2. ADVERTISE 3. ADVERTISE BROKER (ASK(X)) REPLY(X) (ASK(X)) TELL(X) Facilitador 2. 5. TELL(X) Agent 2 4. 3. TELL(X) ASK(X) Facilitador RECOMMEND (ASK(X)) Performativa Recommend Performativa Broker

Facilitador em KQML n Um agente pode usar a performativa subscribe para solicitar ao

Facilitador em KQML n 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. Agent 1 3. 2. TELL(X) Facilitador 1. SUBSCRIBE (ASK(X))

ACL – Agent Communication Language n n Foi desenvolvida por Foundation for Intelligent Physical

ACL – Agent Communication Language n n Foi desenvolvida por Foundation for Intelligent Physical Agents (FIPA). Similar a KQML, porém com semântica formal compreensível.

Parâmetros ACL Parâmetro performative sender receiver reply-to content language encoding Categoria Tipo de ação

Parâmetros ACL Parâmetro performative sender receiver reply-to content language encoding Categoria Tipo de ação comunicativa Participante na comunicação Conteúdo da mensagem Descrição de conteúdo

Parâmetros ACL Parâmetro ontology protocol conversation-id reply-with in-reply-to reply-by x- Categoria Descrição de conteúdo

Parâmetros ACL Parâmetro ontology protocol conversation-id reply-with in-reply-to reply-by x- Categoria Descrição de conteúdo Controle de conversação Controle de conversação Parâmetros adicionais

Parâmetros ACL n performative – denota o tipo de ação comunicativa da mensagem. n

Parâmetros ACL n performative – denota o tipo de ação comunicativa da mensagem. n sender – denota a identidade do remetente da mensagem. n receiver – denota a identidade do(s) destinatário(s). n reply-to – indica que as mensagens subseqüentes devem ser direcionadas para o agente informado por este parâmetro.

Parâmetros ACL n n content – denota o conteúdo da mensagem. language – denota

Parâmetros ACL n n 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.

Parâmetros ACL n protocol – denota o protocolo de interação empregado na mensagem. n

Parâmetros ACL n protocol – denota o protocolo de interação empregado na mensagem. n conversation-id – usado para identificar a seqüência de performativas da conversação. n reply-with – introduz uma expressão que será usada para identificar a mensagem. n in-reply-to – denota uma expressão que referencia outra mensagem para a qual esta é a resposta. n reply-by – denota hora e/ou data que o remetente aguardará uma resposta.

Performativas ACL Performativa Significado accept-proposal Agente aceita proposta feita por outro agente. agree Agente

Performativas ACL Performativa 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ê.

Performativas ACL Performativa Significado propagate Solicita ao destinatário que envie a mensagem para um

Performativas ACL Performativa 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.

Exemplo de Mensagem ACL (inform : sender agent 1 : receiver agent 2 :

Exemplo de Mensagem ACL (inform : sender agent 1 : receiver agent 2 : content (price good 2 150) : language sl : ontology hpl-auction )