Sistemas Multiagentes Uma Visão geral
Motivação IA Distribuída - por que? Justificativas e Vantagens de SMA Conceitos Básicos Comunicação em SMA KQML FIPA ACL Cenas dos próximos capítulos
Motivação : Ubiqüidade Ubiqüidade: Do latim “ubiquu”
O que está em todo lugar a toda hora Ubiqüidade Computacional
Os serviços computacionais poderão ser usados em toda parte e a qualquer hora
“Jetsons”, “Matrix”, “Minority Report”. Cenário
SeDi = Secretário Digital Júlia é Engenheira de Tráfego
Motivação : Agentes Reflexão
Cenário dinâmico Integração de diversas mídias e dispositivos
Como implementar? Sugestão: usar Agentes Inteligentes
Agentes Ideal para aplicações autônomas, móveis e inseridas em
uma sociedade Naturalmente capazes de:
Reagir de forma autônoma e reativa Raciocinar de forma pró-ativa Adaptar-se ao ambiente onde estão inseridos Iteragir com outras entidades
Um Cenário...O sistema de tráfego aéreo da Ruritania entrou
em pane, devido a condições atmosféricas adversas. Felizmente, os sistemas de tráfego aéreo computadorizados dos países vizinhos negociam entre si para controlar os vôos afetados. A situação potencialmente desastrosa se passa sem nenhum incidente mais grave.
[Wooldridge e Jennings 95]
E Mais Um...Imagine que você tem a tarefa de
encontrar um alvo móvel em uma determinada área (lembra de Minority Report?). Seus agentes então negociam entre si uma estratégia para percorrer todo o espaço no menor tempo possível.
De fato... Mundo onde informações e conhecimentos
crescem (e mudam) rápido demais! O crescimento da Internet trás desafios
constantes que incluem: Acesso a informações relevantes Identificação de oportunidades Ação no momento preciso Manipulação de grandes volumes de informação
Ubiqüidade, Gerenciamento e Ubiqüidade, Gerenciamento e InteligênciaInteligência
Motivação : Agentes Iteração
Solução compartilhada de problemas Requisito básico
Mecanismo de Comunicação Linguagem comum Infra-estrutura
Mas como implementar?
Conceitos Básicos
IA e Agentes IA cresceu muito nos anos 70 modelando a
inteligência individual. Advento das redes de computadores
modificou as necessidades! Inteligência como a integração dos
processos de raciocinar, decidir, aprender e planejar.
O Modelo de Agente aparece então como catalisador...
No Entanto... Vários problemas não podem ser tratados
centralizadamente... Controle de linha de metrô Monitoramento de Redes de Computador Diagnóstico Médico Compra e Venda
Como Resolvê-los?Como Resolvê-los?
A IA Distribuída Grupo de Entidades
que podem Interagir Organização Ação e Interação
Metáfora de inteligência é o Comportamento Comportamento Social.Social.
Várias noções de Distribuição... Resolução Distribuída de Problemas (RDP)
envolve: Um grupo de especialistas Habilidades Complementares Organização Fixa
Solução de Problemas Distribuídos envolve: Sistemas onde é difícil obter uma visão global.
Sistemas Multiagentes (SMA)... Agentes podem preexistir Organização varia em tempo de execução
Um Sistema Multiagente
Ambiente
Esfera de Influência
Organização
Agentes
Interação
Recurso
RDP X SMA RDP é um subconjunto de SMA
Agentes benevolentes, concebidos em conjunto
SMA é base para RDP Implementação descentralizada de
várias propriedades RDP e SMA são complementares
Relembrando... Algumas Características-chave de
agentes... AutonomiaAutonomia de Decisão AutonomiaAutonomia de Execução CompetênciaCompetência para Decidir AgendaAgenda Própria
Relembrando... II Outras características que podemos
encontrar são: Reatividade Adaptabilidade Mobilidade Personalidade Interatividade Ambiente de Atuação Comunicabilidade
Definindo SMA Um SMA é um sistema que possui os
seguintes elementos: Um ambiente, E Um conjunto de objetos O Um conjunto de Agentes, A (AO) Um conjunto de relações R, que liga objetos Um conjunto de operações Op Operadores que representam os resultados das
operações em Op e as reações do ambiente a eles.
Então... Por que mesmo distribuir?
Porque o problema é fisicamente distribuído.
Porque o problema é heterogêneo. Porque as redes nos obrigam a distribuir. Porque o problema só pode ser resolvido
pela integração de pontos de vista locais. Porque precisamos de adaptação a
mudanças estruturais...
É boa idéia quando... Precisamos manter a autonomia
das sub-partes; As interações são complexas Não é possível descrever o
Problema a priori.
As vantagens... Maior rapidez na solução dos
problemas Diminuição do overhead de
comunicação Maior flexibilidade Aumento da Segurança
Resumindo... Um Sistema Multiagentes ...
Consiste de uma coleção de componentes autônomos, com objetivos particulares
Que se interrelacionam De acordo com uma Organização Interagindo para resolver tarefas
Organização Conjunto de Compromisso Globais,
Crenças e intenções comuns aos agentes que querem atingir um objetivo comum.
Definem... Um conjunto de diretrizes... Uma política de interação.
Muitos exemplos! O CIn Sua Família
Coordenação Fundamental para o trabalho conjunto. Um SMA pressupõe coordenação entre seus
agentes! Porque... Há dependências entre as ações Nenhum indivíduo pode resolver o problema
sozinho Deve-se respeitar as restrições globais Deve-se garantir a harmonia na execução
conjunta de tarefas!
Coordenação... III Para coordenar com sucesso é preciso...
Uma estrutura... Flexibilidade nas interações
Comunicação! Negociação!
Conhecimento e raciocínio Para reconhecer interações potenciais entre
planos de ação!
Comunicação Habilita os agentes a intercambiar
informações. Percepção Ação
Modelada sobre a comunicação humana Atos de Fala Blackboard
Tem esforços de padronização!
Negociação Esforço para solução de conflitos e
cooperação Grupo de agentes “self-interested”
que consegue chegar a uma decisão conjunta.
Envolve.. Linguagem Protocolo – ex. Contract Net Processo de Decisão
Então... O fundamental é... Interagir!!!
Com quem? Quando? Qual o conteúdo? Como? Que processos e recursos? Por que? Como estabelecer a compreensão
mútua?
Design de SMA Quando partir para SMA?
Quando o ambiente é aberto; Quando os agentes são a metáfora
natural. Quando há distribuição de dados, controle
ou expertise. Quando estamos lidando com sistemas
legados.
Considerações em SMA Ação
Como coordenar ações? O indivíduo e sua relação com o mundo
Estados mentais Interação
Comunicação Negociação/Argumentação
Implementação
Comunicação...Relação dinâmica mediada por sinais, Relação dinâmica mediada por sinais,
que quando interpretados, afetam os que quando interpretados, afetam os agentes envolvidos.agentes envolvidos.
Possibilita... Possibilita... Cooperação e CoordenaçãoCooperação e Coordenação
Em outra palavras... Comunicação é: Uma forma de ação Utilizada pelo agente para tornar realidade um
estado do mundo
Tipos de comunicação Telepatia
Acesso direto à uma Knowledge Base (KB) Lendo a mente... Cada um com sua KB KB compartilhada
Problemas Podem usar o mesmo símbolo para denotar coisas
diferentes Podem usar símbolos diferentes para denotar a mesma
coisa Linguagem de Comunicação de Agentes (LCA)
Comum
Atos da Fala Categorização das expressões humanas qto
a Intenção do locutor Impacto do ato comunicativo no receptor
Existem aproximadamente 4600 atos de fala! Não é esse o objetivo de uma LCA
Ajuda a decidir as primitivas das LCAs Todo primitiva de uma LCA é um ato de fala
Para dar certo... Searle Condições normais de Entrada/Saída Condições Preparatórias
Receptor capaz de realizar ação Emissor acredita nisto Receptor não deve fazer isto de qq
maneira
Atos da Fala Linguagem Humana
Atos comunicativos são interpretados a partir da mensagem e do contexto
Nem sempre esta interpretação é óbvia Dificuldades
“Cale-se !” (Comando) “Por favor, você pode se calar ?” (Pedido) “Você vai se calar ou não ?” (Pergunta) “Eu gostaria que você se calasse.” (Informação)
Atos da Fala : Categorias Representativos
Expressam uma Proposta Ex: “Vamos jogar boliche
amanhã?” Diretivos
Expressam um Pedido ou Comando
Ex: “Cale-se!” Comissivos
Expressam Promessa ou Ameaça
Ex: “Eu prometo doar R$1.000,00.”
Expressivos Expressam Desculpas ou
Agradecimentos Ex: “Desculpe pelo
atraso?” Declarativos
Mudam o Estado do Mundo Ex: “Eu os declaro
marido e mulher!” Veredictos
Expressam um Julgamento Ex: “West é criminoso.”
Atos da Fala Ato Locucionário
Emissão da mensagem “Você poderia fazer um café?”
Efeito Ilocucionário O que o locutor entende por algo
“Ele me pediu para fazer café” Efeito Perlocucionário
O real efeito do ato comunicativo no receptor “Ele me fez fazer café”
Ideal Efeito perlocucionário previsível Para um dado Ato Locucionário,
Efeito Ilocucionário = Efeito Perlocucionário. Ou seja, prever a reação do receptor!
Linguagens de Comunicação Baseadas na Teoria dos Atos da Fala (Searle, Austin) Objetiva a troca de informações entre agentes
Transporte de mensagens na rede através de protocolos de baixo nível
SMTP, TCP/IP, IIOP ou HTTP Esse transporte é transparente para o usuário
Para o KSE, uma LCA é dividida em: Ontologia Linguagem interna (lógica)
Codificação do conteúdo Linguagem externa
Ato Locucionário (Performativa) Encapsulamento de infomações para o roteamento
Ontologias Definição
Vocabulário cujos termos são relacionados a um certo domínio e precisamente definidos.
Os relacionamentos entre esses termos também são especificadas usando técnicas de modelagem formal
Uma vez especificada… Pode-se construir uma KB relacionadas ao domínio
coberto pela ontologia Esta KB pode ser compartilhada com outros agentes
interessados em conhecimentos sobre este domínio
Linguagem Interna (LI) O que é?
Linguagem em que deve ser codificado o conhecimento que se deseja compartilhar com o destinatário da mensagem
Exemplos KIF ( Knowledge Interchange Format )
Versão prefixada (“LISP like”) da lógica clássica de primeira ordem
Não está totalmente implementada para uso comercial Produzida pelo KSE
Linguagem natural Prolog, SQL, LISP RDF (Resource Description Framework) XML
Ato Comunicativo
ConteúdoMensagemMensagem
Exemplo de uma Mensagem KIF (=(temperatura m1) (scalar 40
Celsius))
(defrelation solteiro (?x) :=(and (man ?x)
(not(casado ?x))))
Linguagem Externa ( LE ) O que é ?
Linguagem que encapsula: O ato comunicativo = ato locucionário = performativa Informações para o roteamento
Agente receptor Ontologia Linguagem interna Conteúdo …
Exemplos KQML FIPA ACL
KQML : Problemas Ambigüidade e Termos Vagos
O significado de performativas é pouco claro. Performativas com nomes inadequados
Algumas performativas têm nomes que não correspondem diretamente ao ato comunicativo a ela associado
Ex: “tell” Ausência de performativas
Alguns atos comunicativos não estão representados entre as performativas disponíveis - Comissivas
FIPA
Foundation for Intelligent Physical Agentswww.fipa.org
FIPA : Histórico FIPA é uma associação sem fins lucrativos
fundada em 1996 e localizada em Genebra na Suíça
Objetiva promover o sucesso das aplicações, serviços e equipamentos baseados em agentes
Provê especificações para maximizar a interoperabilidade entre aplicações, serviços e equipamentos baseados em agentes
FIPA FIPA x KQML
Ao contrário do KQML, as especificações FIPA têm uma grande preocupação com a modelagem semântica
Linguagem de Comunicação de Agentes FIPA ACL
Linguagens Internas FIPA Content Language Library (FIPA-CLL) FIPA-SL, FIPA-RDF, FIPA-CCL, FIPA-KIF, … Mas também é independente de LI
FIPA ACL Sintaxe
Praticamente igual ao KQML Conjunto de performativas menor
accept-proposal, agree, cancel, cfp, confirm, disconfirm, failure, inform, inform-if, inform-ref, not-understood, propose, query-if, query-ref, refuse, reject-proposal, request, request-when, request-whenever, subscribe
Semântica Definida precisamente Mensagens são mapeadas na FIPA-SL <i, inform(j, ) pre: Bi Bi (Bifj Uifj )
Efeito: Bj
Definindo Performativas... Inform – ato representativo, uma ação
Está sol lá fora. Estou com sono.
Visa.. Modificar as crenças de agentes Não pode ser realizado por acidente São uma tentativa
Request Ato Diretivo Tenta modificar as intenções do
destinatário Dois tipos diferentes
Request-to Request-that
FIPA ACL x KQML Igualdades
Independência de IL e de ontologias Sintaxe idêntica
Diferenças Visível principalmente na semântica Performativas são diferentes Os agentes de FIPA ACL são proibido de
manipular diretamente a KB de outros agentes
Diferenças (situação fictícia)
Em KQML Mensagem de A para B: achieve goal X Usa todo o vocabulário da LCA (performativa
“achieve”) Em FIPA ACL
Mensagem de A para B: inform ( achieve goal X ) A LCA não entende! A LI sim! Elimina a necessidade da performativa achieve na
LCA
ConteúdoConteúdo
FIPA ACL x KQML
Exemplo A1 envia a seguinte mensagem para A2 ...
( inform:sender A1:receiver A2:reply-with id1:language ... :ontology ...:content ((= available-service A1)
(set(provide Professor(X,Y))))”
Exemplo A2 pergunta então a A1 ...
( query-ref:sender A2:receiver A1:in-reply-toid1:reply-with id2:language Prolog:ontology CIn:content “Professor(X, ‘Agentes’)”)
Exemplo A1 responde ao agente A2 ...
( inform:sender A1:receiver A2:in-reply-to id2:reply-with id3:language Prolog:ontology CIn:content “X = Geber, X = Flávia,
X = Jacques...”)
Exemplo
A simple one...
Agente Somador Linguagens
Java KQML
Ferramentas SACI (Simple Agent Communication
Infrastructure)
SociedadeSociedade
Agente Somador
Agente Servidor Agente Cliente
Facilitador
(1) Advertise(1) Advertise(2) Get Possible Servers(2) Get Possible Servers(3) Forward(3) Forward
(5) Forward(5) Forward(4) Ask One(4) Ask One
(6) Tell(6) Tell
Plus Serverpublic static void main(String[] args) {
Agent a = new PlusServer();if (a.enterSoc("APlusServer")) { mbox.advertise("ask-one", "algebra", "matematica", "X+Y"); a.run(); // Fica lendo o Mailbox}
}
Plus Server public void run() {
while (running) {Message m = mbox.polling(); if (m.get("performative").equals("forward")) { m = new Message(m.get("content").toString());}if (m.get("performative").equals("ask-one")) {
Message r = new Message("(tell)"); r.put("receiver", m.get("sender")); r.put("in-reply-to", m.get("reply-with")); r.put("content",
calcula( (String)m.get("content") ) ); mbox.forward(r);
} else { System.out.println("ignorando a mensagem"); } }
}
Plus Client public static void main(String[] args) {
PlusClient a = new PlusClient();if (a.enterSoc("AClient")) {
a.run(args[0]);}
}
Plus Client public void run(String exp) { String ag = mbox.consultYP("ask-one", "algebra", "matematica", "X+Y"); Message m = new Message("(ask-one :content \""+ exp + "\")"); m.put("receiver", ag); m.put("reply-with", "rSoma"); mbox.forward(m); Message resposta = mbox.polling(); if (resposta.get("performative").equals("forward")) { resposta = new Message(resposta.get("content").toString()); } if ( ((String)resposta.get("in-reply-to")).equals("rSoma")) { System.out.println("\n\n>>>>>>>>> Resposta de “ + resposta.get("sender") + " foi “ + resposta.get("content")); } mbox.disconnect();}
Cenas dos Próximos Capítulos
Vimos... Motivação para SMA Cuidados em seu projeto Aplicações
Veremos Comunicação entre agentes Organizações Protocolos de Cooperação e Negociação