440 likes | 527 Views
Sistemas Multi-Agentes. Comunicação e Cooperação. Motivação. O uso de agentes individuais pode não ser adequado para todas as situações de problemas que ocorrem na prática. Um único agente pode causar sérias restrições.
E N D
Sistemas Multi-Agentes Comunicação e Cooperação
Motivação • O uso de agentes individuais pode não ser adequado para todas as situações de problemas que ocorrem na prática. • Um único agente pode causar sérias restrições. • Requer uma enorme quantidade de conhecimento para resolver situações complexas.
Motivação • Muitos problemas, por causa de sua natureza distribuída, requerem unidades que resolvam o problema distribuído. • Sistemas Multi-Agentes evitam as situações de problemas descritos. • Um determinado número de agentes autônomos e independentes são ativos dentro de um sistema multi-agentes.
Estratégias de Cooperação • São compostas de módulos. • Estratégias de Negociação. • Princípios de Matchmaking e Brokering.
Processo de Resolver Problemas Distribuídos OVERALL PROBLEM Problem division SUBPROBLEM 1 SUBPROBLEM 2 ....... SUBPROBLEM n Solution of the subproblems ....... SUBSOLUTION 1 SUBSOLUTION 2 SUBSOLUTION n Combining the subsolutions OVERALL PROBLEM
Métodos de Comunicação • Diferenciados em: - sistemas com quadro-negro, - sistemas baseados em mensagens - sistemas baseados em diálogos.
Método do Quadro-Negro Agente Agente Quadro Negro Agente Agente
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.
Quadro-Negro • Um agente inicia uma ação de comunicação escrevendo um ítem de informação no quadro. Esta informação é então disponível para todos os outros agentes no sistema.
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.
Estrutura Estendida de Quadro-Negro Moderador KSARs Conhecimento de Controle Subproblemas Agente Dispatcher Agente Agente
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.
Modelo BBI Agent Agent Agent Agent Domain Blackboard Control Blackboard Domain KSARs Control KSARs Enumerate-KSAR Choose-KSAR Execute-KSAR
Princípio de Transmissão de Mensagem Agent A (Sender) Agent B (Receiver) Message
Estrutura de Diálogo Ask-about Agent A Agent B reply reply Ask-about Agent C
Protocolos • KQML (Knowledge and Query Manipulation Language) representa o mais amplamente usado protlocolo para comunicação em sistemas multi-agentes. • KQML foi desenvolvida como parte do projeto American Knowledge Sharing Efforts (KSE) na University of Maryland [Finin 1993, Labrou/Finin 1997].
KQML • KQML define um formato de mensagem e um sistema de transmissão de mensagens para a comunicação e cooperação em sistemas multi-agentes. • KQML define um grupos 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. • Porque o padrão é aberto, várias linguagens podem ser usadas para trocar conhecimento e podem ser integradas em uma mensagem KQML.
KQML • KQML diferencia três níveis: - comunicação (protocolos para todos os parâmetros de comunicação técnica). - mensagens (define os tipos de ações de fala associados com uma mensagem). - conteúdo (especifica o conteúdo da mensagem, embora KQML seja limitado para especificar somente um frame geral no qual os conteúdos reais podem se incorporados em alguma linguagem arbitrária)
KQML • Toda mensagem de KQML tem a seguinte estrutura: (<Performative> : content <statement/speechat> : sender <name> : receiver <name> : language <text> : ontology <text> )
KQML • Performative são os tipos de ações de fala. • Para garantir o seu uso generalizado, KQML define uma ampla gama de tipos de ações de fala que podem ser usados para quase todas os propósitos de aplicações.
KQML • Os conteúdos de mensagens reais, tal como uma ação de fala específica, são inseridos no campo de conteúdo. • A linguagem usada não é definida, e por esta razão, essa linguagem é especificada no campo de linguagem. • O receptor pode usar o campo de linguagem para determinar a linguagem usada para codificar os conteúdos de mensagens e então ler o campo de conteúdo.
KQML • Obviamente, para este propósito, o receptor deve,ser capaz de entender e interpretar a linguagem usada. • O campo Ontology define o dicionário ou vocabulário especial usado para os conteúdos de mensagem.
KQML • Um exemplo de comando KQML (ask-one :content(PRICE IBM ?price) :receiver stok-server :language LPROLOG :ontology NYSE-TICKS )
KQML • O sender usa o tipo de ação de fala ask-one para informar o receptor de 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 share.
KQML • O fato que o preço requerido se relaciona a um share price resulta da ontologia usada, neste caso, os símbolos em New York Exchanger (NYSE) ticker. • Se, por exemplo, o receptor for um vendedor de computadores e a ontologia sobre sistemas de computação, o conteúdo da mensagem poderia ser interpretado diferentemente, por exemplo, como uma questão perguntando o preço de um sistema de computação IBM.
KQML • Nem todo diálogoem KQML deve ser modelado na forma de simples processos question/answer. • KQML introduz a função de um facilitador para também permitir o uso de estruturas de dados mais complexas.
KQML • A principal tarefa de um facilitador é trazer juntos aqueles agentes que estão buscando por informação e aqueles que estão provendo informação.
Uso de um Facilitador ASK(X) AGENT1 AGENT 2 AGENT 2 AGENT1 1. ADVERTISE (ASK(X)) TELL(X) 2. BROKER (ASK(X)) 4. TELL(X) 3. ASK(X) 5. TELL(X) FACILITATOR
KQML • Se um agente busca por informação específica, mas não sabe quais outros agentes podem provê a informação, ele pode usar a performativa broker para fazer uso de serviços de um facilitador. • O facilitador aceita a consulta e tenta encontrar um agente com o conhecimento apropriado.
KQML • Todo agente pode usar uma performativa advertise para registrar seu conhecimento com o facilitador.
Variantes de Comunicação em KQML 4. ask(X) AGENT 2 AGENT1 AGENT 2 AGENT1 5. tell(X) 3. tell(X) 2. tell(X) 3. reply(X) 1. Advertise (ask(X)) 1. subscribe (ASK(X)) FACILITATOR FACILITATOR 2. Recommend (ask(X))
Variantes em KQML • O lado esquerdo da figura mostra um processo similar ao do exemplo prévio, mas com a diferença que um recommend é usado no lugar de broker. • Neste caso, o facilitador supre somente o endereço de um agente adequado. A transferência do conhecimento toma lugar diretamente entre os dois agentes e não, como no exemplo anterior, mas por meio do facilitador.
Variantes em KQML • Um subscribe informa ao facilitador continuamente buscar respostas através de sua base de conhecimento para uma mudança específica. Se uma mudança ocorre, ela é passada ao agente questionador.
Integrando agentes • Existem dois possíveis conceitos para integrar agentes existentes em um sistema multi-agentes baseado em KQML: - todo agente poderia ser estendido com a capacidade para processar mensagens KQML. - ou um componente adicional poderia realizar esta tarefa para o agente.
Integrando agentes • Para tornar o sistema o mais flexível e aberto possível, é desejável considerar a segunda variante. • Uma possível arquitetura testada como parte de diversos sistemas:
Arquitetura de um SMA baseado em KQML KRIL KQML Router AGENT NETWORK KQML Messages KRIL Function calls KQML Messages
Arquitetura de um SMAbaseado em KQML • Todo agente tem dois módulos adicionais: - um roteador KQML - uma de interface entre o roteador KQML e o agente (KRIL)