Comunicação em Sistemas Multiagentes Métodos Protocolos.
-
Upload
julia-avilla -
Category
Documents
-
view
220 -
download
1
Transcript of Comunicação em Sistemas Multiagentes Métodos Protocolos.
Comunicação em Sistemas Multiagentes
MétodosProtocolos
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
Comunicação em Sistemas Multiagentes
ComunicaçãoQuadroNegro
Diálogos
Mensagens
Protocolos
Quadro Negro
Agente Agente
Agente Agente
Método do Quadro Negro
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.
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.
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.
Subproblemas
Moderador
Agente
Agente
Agente Dispatcher
KSARs
Conhecimento de Controle
Estrutura Estendida do Quadro Negro
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.
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.
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.
Estrutura de Diálogo
Agent A Agent B
Agent C
ask-about
reply
ask-aboutreply
Princípio da Transmissão de Mensagem
Agent A(Sender)
Agent B(Receiver)
Message
Protocolos de Comunicação KIF – Knowledge Interchange Format
KQML - Knowledge and Query Manipulation Language
ACL – Agent Communication Language
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.
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
Vocabulário básico Números (reais e complexos) Caracteres ASCII Strings
Conectivos lógicos and or not
KIF
KIF Quantificadores existenciais
forall exists
Listas (listof t1 ... tk)
Definições (defobject s := t) (deffunction f (v1 ...vn) := t) (defrelation r (v1 ...vn) := p)
KIF Exemplos
(= (temperature m1) (scalar 83 Celsius)
(defobject nil := (listof)) (deffunction 1+ (?x) := (+ ?x 1)) (defrelation bachelor (?x) :=
(and (man ?x) (not (married ?x))))
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.
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.
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.
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.
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
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.
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.
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.
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.
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.
Exemplos de Mensagem KQML
(ask-one:language LPROLOG:ontology NYSE-TICKS:sender client :receiver stock-server:reply-with q1:content(PRICE IBM ?price)
)
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).
Exemplos de Mensagem KQML
(tell:language LPROLOG:ontology NYSE-TICKS :sender stock-server:receiver client:in-reply-to q1:content 10.0
)
Exemplos de Mensagem KQML O remetente (stock-server) usa a performativa
tell para informar ao destinatário (client) a resposta da questão q1.
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.
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.
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.
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
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.
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
)
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
ACL – Agent Communication Language Foi desenvolvida por Foundation
for Intelligent Physical Agents (FIPA).
Similar a KQML, porém com semântica formal compreensível.
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
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
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.
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.
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.
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ê.
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.
Exemplo de Mensagem ACL
(inform:sender agent1:receiver agent2:content (price good2 150):language sl:ontology hpl-auction)