plano de aula - pucprfabricio/ftp/aulas/mestrado/as/...wpodem usar o mesmo símbolo para denotar...

25
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

Upload: others

Post on 04-May-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Plano de Aula - PUCPRfabricio/ftp/Aulas/Mestrado/AS/...wPodem usar o mesmo símbolo para denotar coisas diferentes wPodem usar símbolos diferentes para denotar a mesma coisa Linguagem

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

Page 2: Plano de Aula - PUCPRfabricio/ftp/Aulas/Mestrado/AS/...wPodem usar o mesmo símbolo para denotar coisas diferentes wPodem usar símbolos diferentes para denotar a mesma coisa Linguagem

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

Page 3: Plano de Aula - PUCPRfabricio/ftp/Aulas/Mestrado/AS/...wPodem usar o mesmo símbolo para denotar coisas diferentes wPodem usar símbolos diferentes para denotar a mesma coisa Linguagem

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?

Page 4: Plano de Aula - PUCPRfabricio/ftp/Aulas/Mestrado/AS/...wPodem usar o mesmo símbolo para denotar coisas diferentes wPodem usar símbolos diferentes para denotar a mesma coisa Linguagem

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

Page 5: Plano de Aula - PUCPRfabricio/ftp/Aulas/Mestrado/AS/...wPodem usar o mesmo símbolo para denotar coisas diferentes wPodem usar símbolos diferentes para denotar a mesma coisa Linguagem

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

Page 6: Plano de Aula - PUCPRfabricio/ftp/Aulas/Mestrado/AS/...wPodem usar o mesmo símbolo para denotar coisas diferentes wPodem usar símbolos diferentes para denotar a mesma coisa Linguagem

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

Page 7: Plano de Aula - PUCPRfabricio/ftp/Aulas/Mestrado/AS/...wPodem usar o mesmo símbolo para denotar coisas diferentes wPodem usar símbolos diferentes para denotar a mesma coisa Linguagem

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.”

Page 8: Plano de Aula - PUCPRfabricio/ftp/Aulas/Mestrado/AS/...wPodem usar o mesmo símbolo para denotar coisas diferentes wPodem usar símbolos diferentes para denotar a mesma coisa Linguagem

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

Page 9: Plano de Aula - PUCPRfabricio/ftp/Aulas/Mestrado/AS/...wPodem usar o mesmo símbolo para denotar coisas diferentes wPodem usar símbolos diferentes para denotar a mesma coisa Linguagem

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

Page 10: Plano de Aula - PUCPRfabricio/ftp/Aulas/Mestrado/AS/...wPodem usar o mesmo símbolo para denotar coisas diferentes wPodem usar símbolos diferentes para denotar a mesma coisa Linguagem

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

Page 11: Plano de Aula - PUCPRfabricio/ftp/Aulas/Mestrado/AS/...wPodem usar o mesmo símbolo para denotar coisas diferentes wPodem usar símbolos diferentes para denotar a mesma coisa Linguagem

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  ...

Page 12: Plano de Aula - PUCPRfabricio/ftp/Aulas/Mestrado/AS/...wPodem usar o mesmo símbolo para denotar coisas diferentes wPodem usar símbolos diferentes para denotar a mesma coisa Linguagem

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

Page 13: Plano de Aula - PUCPRfabricio/ftp/Aulas/Mestrado/AS/...wPodem usar o mesmo símbolo para denotar coisas diferentes wPodem usar símbolos diferentes para denotar a mesma coisa Linguagem

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)”))

Page 14: Plano de Aula - PUCPRfabricio/ftp/Aulas/Mestrado/AS/...wPodem usar o mesmo símbolo para denotar coisas diferentes wPodem usar símbolos diferentes para denotar a mesma coisa Linguagem

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,...]”

)

Page 15: Plano de Aula - PUCPRfabricio/ftp/Aulas/Mestrado/AS/...wPodem usar o mesmo símbolo para denotar coisas diferentes wPodem usar símbolos diferentes para denotar a mesma coisa Linguagem

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

Page 16: Plano de Aula - PUCPRfabricio/ftp/Aulas/Mestrado/AS/...wPodem usar o mesmo símbolo para denotar coisas diferentes wPodem usar símbolos diferentes para denotar a mesma coisa Linguagem

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

Page 17: Plano de Aula - PUCPRfabricio/ftp/Aulas/Mestrado/AS/...wPodem usar o mesmo símbolo para denotar coisas diferentes wPodem usar símbolos diferentes para denotar a mesma coisa Linguagem

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

Page 18: Plano de Aula - PUCPRfabricio/ftp/Aulas/Mestrado/AS/...wPodem usar o mesmo símbolo para denotar coisas diferentes wPodem usar símbolos diferentes para denotar a mesma coisa Linguagem

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

Page 19: Plano de Aula - PUCPRfabricio/ftp/Aulas/Mestrado/AS/...wPodem usar o mesmo símbolo para denotar coisas diferentes wPodem usar símbolos diferentes para denotar a mesma coisa Linguagem

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))))”

Page 20: Plano de Aula - PUCPRfabricio/ftp/Aulas/Mestrado/AS/...wPodem usar o mesmo símbolo para denotar coisas diferentes wPodem usar símbolos diferentes para denotar a mesma coisa Linguagem

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...”

)

Page 21: Plano de Aula - PUCPRfabricio/ftp/Aulas/Mestrado/AS/...wPodem usar o mesmo símbolo para denotar coisas diferentes wPodem usar símbolos diferentes para denotar a mesma coisa Linguagem

21

41

Exemplo

A simple one...

42

Compra de Livros

Linguagens n  Java n  FIPA-ACL

Ferramentas n  JADE (Java Agent DEvelopment

Framework)

Page 22: Plano de Aula - PUCPRfabricio/ftp/Aulas/Mestrado/AS/...wPodem usar o mesmo símbolo para denotar coisas diferentes wPodem usar símbolos diferentes para denotar a mesma coisa Linguagem

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); } }

}

Page 23: Plano de Aula - PUCPRfabricio/ftp/Aulas/Mestrado/AS/...wPodem usar o mesmo símbolo para denotar coisas diferentes wPodem usar símbolos diferentes para denotar a mesma coisa Linguagem

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;

Page 24: Plano de Aula - PUCPRfabricio/ftp/Aulas/Mestrado/AS/...wPodem usar o mesmo símbolo para denotar coisas diferentes wPodem usar símbolos diferentes para denotar a mesma coisa Linguagem

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;

Page 25: Plano de Aula - PUCPRfabricio/ftp/Aulas/Mestrado/AS/...wPodem usar o mesmo símbolo para denotar coisas diferentes wPodem usar símbolos diferentes para denotar a mesma coisa Linguagem

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;