plano de aula - pucprfabricio/ftp/aulas/mestrado/as/...wpodem usar o mesmo símbolo para denotar...
TRANSCRIPT
1
1
Plano de Aula
Introdução Conceitos Básicos KQML FIPA ACL Exemplo – Agente Comprando Livros
2
Motivação : Agentes
Reflexão n Cenário dinâmico n Integração de diversas mídias e dispositivos
Como implementar? n Sugestão: usar Agentes Inteligentes
Agentes n Ideal para aplicações autônomas, móveis e inseridas em
uma sociedade n Naturalmente capazes de:
w Reagir de forma autônoma e reativa w Raciocinar de forma pró-ativa w Adaptar-se ao ambiente onde estão inseridos w Interagir com outras entidades
2
3
Recordar é Viver...
IAD lembra... n Comportamento Social n Organização n Interação
w Coordenação w Cooperação w Ação
4
Recordar é Viver... II
n RDP n Agentes projetados
para o problema. n Benevolência n Organização em
Tempo de Projeto n Controle Global n Pouca Flexibilidade
n SMA n Agentes
preexistentes n Raciocínio sobre
ações, cooperação n Maior Flexibilidade n Organização Variável n Interações Genéricas
3
5
Assim...
SMA... n Realiza a decomposição das tarefas n Tem conflitos...ou junta esforços n É variável...
Como isso acontece?? Interação é a chave...
6
Motivação : Agentes
Interação n Solução compartilhada de problemas n Requisito básico
w Mecanismo de Comunicação n Linguagem comum n Infra-estrutura
Mas como implementar?
4
7
Conceitos Básicos
8
Comunicação...
Relação dinâmica mediada por sinais, que quando interpretados, afetam os agentes envolvidos.
Possibilita... Cooperação e Coordenação
Em outra palavras... Comunicação é: n Uma forma de ação n Utilizada pelo agente para tornar realidade um estado
do mundo
5
9
Tipos de comunicação
Telepatia n Acesso direto à uma Knowledge Base (KB)
w Lendo a mente... w Cada um com sua KB w KB compartilhada
n Problemas w Podem usar o mesmo símbolo para denotar coisas diferentes w Podem usar símbolos diferentes para denotar a mesma coisa
Linguagem de Comunicação de Agentes (ACL) n Comum
10
Atos de Fala
Categorização das expressões humanas qto a n Intenção do locutor n Impacto do ato comunicativo no receptor
Existem aproximadamente 4600 atos de fala! n Não é esse o objetivo de uma ACL
Ajuda a decidir as primitivas das ACLs n Toda primitiva de uma ACL é um ato de fala
6
11
Para dar certo...
Segundo Austin n É preciso saber o significado da
performativa n O procedimento deve ser executado
corretamente n Deve haver sinceridade.
12
Para dar certo... Searle
Condições normais de Entrada/Saída Condições Preparatórias n Receptor capaz de realizar ação n Emissor acredita nisto n Receptor não deve fazer isto de qq maneira
7
13
Atos da Fala
Linguagem Humana n Atos comunicativos são interpretados a partir da
mensagem e do contexto n Nem sempre esta interpretação é óbvia
Dificuldades n “Cale-se !” (Comando) n “Por favor, você pode se calar ?” (Pedido) n “Você vai se calar ou não ?” (Pergunta) n “Eu gostaria que você se calasse.” (Informação)
14
Atos da Fala : Categorias
Representativos n Expressam uma Proposta n Ex: “Vamos jogar boliche
amanhã?” Diretivos n Expressam um Pedido ou
Comando n Ex: “Cale-se!”
Comissivos n Expressam Promessa ou
Ameaça n Ex: “Eu prometo doar
R$1.000,00.”
Expressivos n Expressam Desculpas ou
Agradecimentos n Ex: “Desculpe pelo atraso”
Declarativos n Mudam o Estado do Mundo n Ex: “Eu os declaro marido
e mulher!” Vereditos n Expressam um Julgamento n Ex: “West é criminoso.”
8
15
Várias Dimensões dos Atos da Fala
Ato Locucionário n Emissão da mensagem
w “Você poderia fazer um café?” Efeito Ilocucionário n O que o locutor entende por algo
w “Ele me pediu para fazer café” Efeito Perlocucionário n O real efeito do ato comunicativo no receptor
w “Ele me fez fazer café”
Ideal n Efeito perlocucionário previsível n Para um dado Ato Locucionário,
w Efeito Ilocucionário = Efeito Perlocucionário. n Ou seja, prever a reação do receptor!
16
Linguagens de Comunicação
Baseadas na Teoria dos Atos da Fala (Searle, Austin) Objetiva a troca de informações entre agentes n Transporte de mensagens na rede através de protocolos de baixo nível
w SMTP, TCP/IP, IIOP ou HTTP n Esse transporte é transparente para o usuário
Para o KSE (ARPA Knowledge Sharing Effort), uma ACL é dividida em: n Ontologia n Linguagem de Conteúdo (lógica)
w Codificação do conteúdo n Linguagem externa
w Ato Locucionário (Performativa) w Encapsulamento de infomações para o roteamento
9
17
Ontologias
Definição n Vocabulário cujos termos são relacionados a um certo
domínio e precisamente definidos. n Os relacionamentos entre esses termos também são
especificadas usando técnicas de modelagem formal Uma vez especificada… n Pode-se construir uma KB relacionada ao domínio
coberto pela ontologia n Esta KB pode ser compartilhada com outros agentes
interessados em conhecimentos sobre este domínio
18
Linguagem de Conteúdo (LC)
O que é? n Linguagem em que deve ser codificado o conhecimento que
se deseja compartilhar com o destinatário da mensagem Exemplos n KIF ( Knowledge Interchange Format )
w Versão prefixada (“LISP like”) da lógica clássica de primeira ordem
w Não está totalmente implementada para uso comercial w Produzida pelo KSE
n Linguagem natural n Prolog, SQL, LISP n RDF (Resource Description Framework) n XML
Ato Comunicativo
Conteúdo Mensagem
10
19
Exemplo de uma Mensagem KIF
(=(temperatura m1) (scalar 40 Celsius))
(defrelation solteiro (?x) := (and (man ?x) (not(casado ?x))))
20
Linguagem Externa ( LE )
O que é ? n Linguagem que encapsula:
w O ato comunicativo = ato locucionário = performativa w Informações para o roteamento
n Agente receptor n Ontologia n Linguagem de Conteúdo n Conteúdo n …
Exemplos n KQML n FIPA ACL
11
21
KQML
Knowledge Query and Manipulation Language
22
KQML
Objetivo n Interoperabilidade entre agentes de software em
aplicações distribuídas e/ou heterogêneas Pioneira ( KSE – 1994 ) Aplicações n eCommerce (negociação) n Jogos n BDs distribuídos e/ou heterogêneos n Integração de tecnologias n ...
12
23
KQML : Características
Principais características da linguagem: n Independente de Linguagem de Conteúdo n Independente de Ontologia n Independente de Protocolos de Transporte de
Rede n Comunicação baseada nos atos da fala
w Performativas
n Sugere o uso de Agentes Facilitadores n Camadas:
w Comunicação, Conteúdo e Mensagem
24
KQML : Sintaxe
( performativa :sender <word> :receiver <word> :reply-with <word> :in-reply-to <word> :language <word> :ontology <word> :content <expression> )
Camada de Mensagem
Camada de Conteúdo
Camada de Comunicação
13
25
KQML : Performativas
Performativas Típicas n tell : informa que o conteúdo da mensagem está na KB do
locutor n ask-if : o locutor quer saber se o conteúdo de sua mensagem é
verdadeiro para o receptor n advertise : o locutor quer que o receptor saiba que ele pode
processar mensagens no modelo do seu conteúdo n insert : o locutor “pede” ao receptor que adicione o conteúdo
da mensagem à sua KB Outras Performativas n achieve, ask-about, ask-all, ask-one, break, broadcast, broker-all,
broker-one, deny, delete, delete-all, delete-one, discard, eos, error, evaluate, forward, generator, monitor, …
26
Exemplo
A1 envia a seguinte mensagem para A2 ... ( advertise :sender A1 :receiver A2 :reply-with id1 :language KQML :ontology kqml-ontology :content ( ask-if :sender A2 :receiver A1 :in-reply-to id1 :language Prolog :ontology CIn :content “Professor(X,Y)”))
14
27
Exemplo
A2 pergunta então a A1 ... ( ask-if :sender A2 :receiver A1 :in-reply-to id1 :reply-with id2 :language Prolog :ontology CIn :content “Professor(X, ‘Agentes’)” )
28
Exemplo
A1 responde ao agente A2 ... ( tell :sender A1 :receiver A2 :in-reply-to id2 :reply-with id3 :language Prolog :ontology CIn :content “[Lesser, Sycara, Jennings,...]”
)
15
29
KQML : Problemas
Ambigüidade e Termos Vagos n O significado de performativas é pouco claro.
Performativas com nomes inadequados n Algumas performativas têm nomes que não
correspondem diretamente ao ato comunicativo a ela associado
n Ex: “tell” Ausência de performativas n Alguns atos comunicativos não estão representados
entre as performativas disponíveis - Comissivas
30
FIPA
Foundations for Intelligent Physical Agents www.fipa.org
16
31
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
32
FIPA
FIPA x KQML n 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 n FIPA ACL
Linguagens de Conteúdo n FIPA Content Language Library (FIPA-CLL) n FIPA-SL, FIPA-RDF, FIPA-CCL, FIPA-KIF, … n Mas também é independente de LC
17
33
FIPA ACL
Sintaxe n Praticamente igual ao KQML n Conjunto de performativas menor
w 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 n Definida precisamente n Mensagens são mapeadas na FIPA-SL n <i, inform(j, ϕ) pre: Bi ϕ ∧ ¬Bi (Bifj ϕ ∨ Uifj ϕ)
w Efeito: Bj ϕ
34
Definindo Performativas...
Inform – ato representativo, uma ação n Está sol lá fora. n Estou com sono.
Visa.. n Modificar as crenças de agentes n Não pode ser realizado por acidente
18
35
Request
Ato Diretivo Tenta modificar as intenções do destinatário Três tipos diferentes n Request n Request-when n Request-whenever
36
FIPA ACL x KQML
Semelhanças n Independência de Linguagem de Conteúdo e de
ontologias n Sintaxe idêntica
Diferenças n Visível principalmente na semântica n Performativas são diferentes n Os agentes de FIPA ACL são proibidos de
manipular diretamente a KB de outros agentes
19
37
Neutralizando Diferenças (situação fictícia) n Em KQML
w Mensagem de A para B: achieve goal X w Usa todo o vocabulário da ACL (performativa “achieve”)
n Em FIPA ACL w Mensagem de A para B: inform ( achieve goal X ) w A ACL não entende! A LC sim! w Elimina a necessidade da performativa achieve na ACL
Conteúdo
FIPA ACL x KQML
38
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))))”
20
39
Exemplo
A2 pergunta então a A1 ... ( query-ref :sender A2 :receiver A1 :in-reply-to id1 :reply-with id2 :language Prolog :ontology CIn :content “Professor(X, ‘Agentes’)” )
40
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...”
)
21
41
Exemplo
A simple one...
42
Compra de Livros
Linguagens n Java n FIPA-ACL
Ferramentas n JADE (Java Agent DEvelopment
Framework)
22
43
Compra de Livros
Agente Fornecedor Agente Comprador
Directory Facilitator Agent (Páginas Amarelas)
(1) Register (2) Search
(3) Lista de agentes
(3) CFP
(5) Accept Proposal
(4) Propose ou Refuse
(6) Inform
44
Comportamento Agente Fornecedor
private class OfferRequestsServer extends CyclicBehaviour { public void action() { ACLMessage msg = myAgent.receive(); if (msg != null) { // Message received. Process it String title = msg.getContent(); ACLMessage reply = msg.createReply(); Integer price = (Integer) catalogue.get(title); if (price != null) { // The requested book is available for sale. Reply with the price reply.setPerformative(ACLMessage.PROPOSE); reply.setContent(String.valueOf(price.intValue())); } else { // The requested book is NOT available for sale. reply.setPerformative(ACLMessage.REFUSE);
reply.setContent(“not-available”); } myAgent.send(reply); } }
}
23
45
Comportamento do Agente Comprador
private class RequestPerformer extends Behaviour {
private AID bestSeller; // The agent who provides the best offer
private int bestPrice; // The best offered price
private int repliesCnt = 0; // The counter of replies from seller agents
private MessageTemplate mt; // The template to receive replies
private int step = 0;
public void action() {
switch (step) {
(...)
}
}
46
Comportamento do Agente Comprador (cont.)
case 0: // Send the cfp to all sellers ACLMessage cfp = new ACLMessage(ACLMessage.CFP); for (int i = 0; i < sellerAgents.length; ++i) { cfp.addReceiver(sellerAgents[i]); } cfp.setContent(targetBookTitle); cfp.setConversationId(“book-trade”); cfp.setReplyWith(“cfp”+System.currentTimeMillis()); // Unique value myAgent.send(cfp); // Prepare the template to get proposals mt = MessageTemplate.and(MessageTemplate.MatchConversationId(“book-trade”), MessageTemplate.MatchInReplyTo(cfp.getReplyWith())); step = 1; break;
24
47
Comportamento do Agente Comprador (cont.)
case 1: // Receive all proposals/refusals from seller agents ACLMessage reply = myAgent.receive(mt); if (reply != null) { // Reply received if (reply.getPerformative() == ACLMessage.PROPOSE) { // This is an offer int price = Integer.parseInt(reply.getContent()); if (bestSeller == null || price < bestPrice) { // This is the best offer at present bestPrice = price; bestSeller = reply.getSender(); } } repliesCnt++; if (repliesCnt >= sellerAgents.length) // We received all replies step = 2; } else block(); break;
48
Comportamento do Agente Comprador (cont.)
case 2:
// Send the purchase order to the seller that provided the best offer
ACLMessage order = new ACLMessage(ACLMessage.ACCEPT_PROPOSAL);
order.addReceiver(bestSeller);
order.setContent(targetBookTitle);
order.setConversationId(“book-trade”);
order.setReplyWith(“order”+System.currentTimeMillis());
myAgent.send(order);
// Prepare the template to get the purchase order reply
mt = MessageTemplate.and(MessageTemplate.MatchConversationId(“book-trade”),
MessageTemplate.MatchInReplyTo(order.getReplyWith()));
step = 3;
break;
25
49
Comportamento do Agente Comprador (cont.)
case 3: // Receive the purchase order reply reply = myAgent.receive(mt); if (reply != null) { // Purchase order reply received if (reply.getPerformative() == ACLMessage.INFORM) { // Purchase successful. We can terminate System.out.println(targetBookTitle+“ successfully purchased.”); System.out.println(“Price = ”+bestPrice); myAgent.doDelete(); } step = 4; } else block(); break;