Comunicação em Sistemas Multiagentes Métodos Protocolos.
-
Upload
julia-avilla -
Category
Documents
-
view
221 -
download
1
Transcript of Comunicação em Sistemas Multiagentes Métodos Protocolos.
![Page 1: Comunicação em Sistemas Multiagentes Métodos Protocolos.](https://reader036.fdocument.pub/reader036/viewer/2022062411/5706383f1a28abb8238f106a/html5/thumbnails/1.jpg)
Comunicação em Sistemas Multiagentes
MétodosProtocolos
![Page 2: Comunicação em Sistemas Multiagentes Métodos Protocolos.](https://reader036.fdocument.pub/reader036/viewer/2022062411/5706383f1a28abb8238f106a/html5/thumbnails/2.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022062411/5706383f1a28abb8238f106a/html5/thumbnails/3.jpg)
Comunicação em Sistemas Multiagentes
ComunicaçãoQuadroNegro
Diálogos
Mensagens
Protocolos
![Page 4: Comunicação em Sistemas Multiagentes Métodos Protocolos.](https://reader036.fdocument.pub/reader036/viewer/2022062411/5706383f1a28abb8238f106a/html5/thumbnails/4.jpg)
Quadro Negro
Agente Agente
Agente Agente
Método do Quadro Negro
![Page 5: Comunicação em Sistemas Multiagentes Métodos Protocolos.](https://reader036.fdocument.pub/reader036/viewer/2022062411/5706383f1a28abb8238f106a/html5/thumbnails/5.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022062411/5706383f1a28abb8238f106a/html5/thumbnails/6.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022062411/5706383f1a28abb8238f106a/html5/thumbnails/7.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022062411/5706383f1a28abb8238f106a/html5/thumbnails/8.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022062411/5706383f1a28abb8238f106a/html5/thumbnails/9.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022062411/5706383f1a28abb8238f106a/html5/thumbnails/10.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022062411/5706383f1a28abb8238f106a/html5/thumbnails/11.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022062411/5706383f1a28abb8238f106a/html5/thumbnails/12.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022062411/5706383f1a28abb8238f106a/html5/thumbnails/13.jpg)
Princípio da Transmissão de Mensagem
Agent A(Sender)
Agent B(Receiver)
Message
![Page 14: Comunicação em Sistemas Multiagentes Métodos Protocolos.](https://reader036.fdocument.pub/reader036/viewer/2022062411/5706383f1a28abb8238f106a/html5/thumbnails/14.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022062411/5706383f1a28abb8238f106a/html5/thumbnails/15.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022062411/5706383f1a28abb8238f106a/html5/thumbnails/16.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022062411/5706383f1a28abb8238f106a/html5/thumbnails/17.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022062411/5706383f1a28abb8238f106a/html5/thumbnails/18.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022062411/5706383f1a28abb8238f106a/html5/thumbnails/19.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022062411/5706383f1a28abb8238f106a/html5/thumbnails/20.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022062411/5706383f1a28abb8238f106a/html5/thumbnails/21.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022062411/5706383f1a28abb8238f106a/html5/thumbnails/22.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022062411/5706383f1a28abb8238f106a/html5/thumbnails/23.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022062411/5706383f1a28abb8238f106a/html5/thumbnails/24.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022062411/5706383f1a28abb8238f106a/html5/thumbnails/25.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022062411/5706383f1a28abb8238f106a/html5/thumbnails/26.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022062411/5706383f1a28abb8238f106a/html5/thumbnails/27.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022062411/5706383f1a28abb8238f106a/html5/thumbnails/28.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022062411/5706383f1a28abb8238f106a/html5/thumbnails/29.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022062411/5706383f1a28abb8238f106a/html5/thumbnails/30.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022062411/5706383f1a28abb8238f106a/html5/thumbnails/31.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022062411/5706383f1a28abb8238f106a/html5/thumbnails/32.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022062411/5706383f1a28abb8238f106a/html5/thumbnails/33.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022062411/5706383f1a28abb8238f106a/html5/thumbnails/34.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022062411/5706383f1a28abb8238f106a/html5/thumbnails/35.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022062411/5706383f1a28abb8238f106a/html5/thumbnails/36.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022062411/5706383f1a28abb8238f106a/html5/thumbnails/37.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022062411/5706383f1a28abb8238f106a/html5/thumbnails/38.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022062411/5706383f1a28abb8238f106a/html5/thumbnails/39.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022062411/5706383f1a28abb8238f106a/html5/thumbnails/40.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022062411/5706383f1a28abb8238f106a/html5/thumbnails/41.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022062411/5706383f1a28abb8238f106a/html5/thumbnails/42.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022062411/5706383f1a28abb8238f106a/html5/thumbnails/43.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022062411/5706383f1a28abb8238f106a/html5/thumbnails/44.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022062411/5706383f1a28abb8238f106a/html5/thumbnails/45.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022062411/5706383f1a28abb8238f106a/html5/thumbnails/46.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022062411/5706383f1a28abb8238f106a/html5/thumbnails/47.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022062411/5706383f1a28abb8238f106a/html5/thumbnails/48.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022062411/5706383f1a28abb8238f106a/html5/thumbnails/49.jpg)
Exemplo de Mensagem ACL
(inform:sender agent1:receiver agent2:content (price good2 150):language sl:ontology hpl-auction)