Programação Orientada a Agentes

50
Programação Orientada a Agentes Franklin Souza Ramalho Franklin Souza Ramalho ([email protected]) ([email protected])

description

Programação Orientada a Agentes. Franklin Souza Ramalho ([email protected]). Roteiro. AOP definição ambientes linguagens Comunicação entre Agentes Conceitos Básicos KSE Mundo do Wumpus Questões Referências. Características. - PowerPoint PPT Presentation

Transcript of Programação Orientada a Agentes

Page 1: Programação Orientada a Agentes

Programação Orientada a Agentes

Programação Orientada a Agentes

Franklin Souza Ramalho Franklin Souza Ramalho ([email protected])([email protected])

Page 2: Programação Orientada a Agentes

RoteiroRoteiro

AOPAOP definiçãodefinição ambientesambientes linguagenslinguagens

Comunicação entre AgentesComunicação entre Agentes Conceitos BásicosConceitos Básicos KSEKSE

Mundo do WumpusMundo do Wumpus QuestõesQuestões ReferênciasReferências

Page 3: Programação Orientada a Agentes

CaracterísticasCaracterísticas

Programas são formados por vários agentes Programas são formados por vários agentes que compartilham informações por meios que compartilham informações por meios de mensagensde mensagens

Características de Agentes:Características de Agentes: Autonomia e adaptabilidadeAutonomia e adaptabilidade Cooperação (Comunicação)Cooperação (Comunicação) Estados Mentais (Estados Mentais (Crenças, capacidades, escolhas)Crenças, capacidades, escolhas)

Page 4: Programação Orientada a Agentes

Comparação entreOOP e AOPComparação entreOOP e AOP

AOP pode ser visto como uma AOP pode ser visto como uma especialização do OOPespecialização do OOP

Comparações:Comparações: OOPOOP AOPAOP

Unidade BasicaUnidade Basica ObjetosObjetos AgentesAgentes

EstadosEstados ObjetosObjetos Estados MentaisEstados Mentais

ComputaçãoComputação MensagensMensagens Mensagens e outrosMensagens e outros

Tipos MensagensTipos Mensagens Não-EstruturadoNão-Estruturado Atos de FalaAtos de Fala

RestriçõesRestrições NenhumaNenhuma Honestidade, consistência,etcHonestidade, consistência,etc

Page 5: Programação Orientada a Agentes

Aplicações de AOPAplicações de AOP

Agentes na InternetAgentes na Internet Assistentes pessoaisAssistentes pessoais NegociadoresNegociadores JogosJogos Simulação de sistemasSimulação de sistemas

Page 6: Programação Orientada a Agentes

Ambientes de Programaçãode AgentesAmbientes de Programaçãode Agentes

Objetivos:Objetivos: Definição dos Estados MentaisDefinição dos Estados Mentais Primitivas de ComunicaçãoPrimitivas de Comunicação

Duas VisõesDuas Visões Fornecer linguagens especializadas para agentesFornecer linguagens especializadas para agentes Auxiliar linguagens pré-existentes para programação de Auxiliar linguagens pré-existentes para programação de

agentesagentes

Exemplos: Aglets, Agent0, etc.Exemplos: Aglets, Agent0, etc.

Page 7: Programação Orientada a Agentes

Linguagens de Programação de AgentesLinguagens de Programação de Agentes

Representam:Representam: Ações do AgenteAções do Agente Estados MentaisEstados Mentais TempoTempo

Oferecem primitivas de comunicação.Oferecem primitivas de comunicação.

Page 8: Programação Orientada a Agentes

Exemplo: AgentkExemplo: Agentk

Tipos de Expressões:Tipos de Expressões:xxtt

BBaa(x)(x)tt

OBLOBLa,ba,b(x)(x)tt

CANCANaa(x)(x)tt

Comunicações: Expressões KQMLComunicações: Expressões KQML

Page 9: Programação Orientada a Agentes

Comunicação entre AgentesComunicação entre Agentes

Page 10: Programação Orientada a Agentes

ComunicaçãoComunicação

Objetivos:Objetivos: Troca de informaçõesTroca de informações CoordenaçãoCoordenação

Page 11: Programação Orientada a Agentes

Atos de FalaAtos de Fala

InformarInformar ConsultarConsultar ResponderResponder Requisitar algoRequisitar algo Comprometer-seComprometer-se AgradecerAgradecer CompartilharCompartilhar

Page 12: Programação Orientada a Agentes

Tipos de Agentes: FacilitadoresTipos de Agentes: Facilitadores

Agentes simplificam a troca de informaçõesAgentes simplificam a troca de informações Tarefas:Tarefas:

RoteamentoRoteamento Registro de nomesRegistro de nomes Monitoramento, etc.Monitoramento, etc.

Page 13: Programação Orientada a Agentes

FacilitadoresFacilitadores

AA BB

FFBroker-one(ask(x))Broker-one(ask(x)) Advertise(ask(X))Advertise(ask(X))

Ask(X)Ask(X)

Tell(X)Tell(X)

Tell(X)Tell(X)

Page 14: Programação Orientada a Agentes

Tipos de Comunicação entre AgentesTipos de Comunicação entre Agentes

Comunicação TelepáticaComunicação Telepática Comunicaçào com uma Linguagem FormalComunicaçào com uma Linguagem Formal

Page 15: Programação Orientada a Agentes

Comunicação TelepáticaComunicação Telepática

Comunicação direta via interface TELL AND ASK.Comunicação direta via interface TELL AND ASK.

Ex : Ex : 1 O agente O agente AA pode comunicar a proposição P ao pode comunicar a proposição P ao

agente agente BB com TELL (KB com TELL (KBAA, “P”)., “P”).

2 O agente A pode consultar a base de O agente A pode consultar a base de conhecimento do agente B com um ASK (KBconhecimento do agente B com um ASK (KBBB, “Q”), “Q”)

Page 16: Programação Orientada a Agentes

Comunicação TelepáticaComunicação Telepática

Agente AAgente A Agente BAgente B

Comunicação com Tell and AskComunicação com Tell and Ask

AçõesAções AçõesAçõesPercepçõesPercepções PercepçõesPercepções

Page 17: Programação Orientada a Agentes

Comunicação TelepáticaComunicação Telepática

Desvantagens :Desvantagens :

Dados dois agentes Dados dois agentes AA e e B B que se comunicam :que se comunicam : A e B podem usar o mesmo simbolo com significados A e B podem usar o mesmo simbolo com significados

diferentes;diferentes; A e B podem usar simbolos diferentes para devotar a A e B podem usar simbolos diferentes para devotar a

mesma coisa;mesma coisa; A e B precisam usar a mesma linguagem interna;A e B precisam usar a mesma linguagem interna; SabotagemSabotagem

Page 18: Programação Orientada a Agentes

Comunicação com Linguagem FormalComunicação com Linguagem Formal

Um agente Um agente AA se comunica com um agente se comunica com um agente BB através de através de uma uma linguagem externa.linguagem externa.

Page 19: Programação Orientada a Agentes

Comunicação com Linguagem FormalComunicação com Linguagem Formal

Agente AAgente A Agente BAgente B

PercepçôesPercepçôesPercepçôesPercepçôes

AçõesAçõesAçõesAções

Ling. FormalLing. Formal

Page 20: Programação Orientada a Agentes

Comunicação com Linguagem FormalComunicação com Linguagem Formal

DesvantagensDesvantagens A linguagem de representação externa traz com ela A linguagem de representação externa traz com ela

problemas de geração e análise;problemas de geração e análise; Falta de uma linguagem padrão;Falta de uma linguagem padrão; Pode ocorrer uma interpretação errada por parte de agentes em Pode ocorrer uma interpretação errada por parte de agentes em

relação à mensagem de outro agente.relação à mensagem de outro agente.

•Vários consórcios :Vários consórcios :•Knowledge Sharing Effort (KSE)Knowledge Sharing Effort (KSE)

Page 21: Programação Orientada a Agentes

Knowledge Sharing Effort (KSE)Knowledge Sharing Effort (KSE)

O KSE é organizado em três grupos de trabalho :O KSE é organizado em três grupos de trabalho : Interlingua GroupInterlingua Group - tradução - tradução. .

resultado : resultado : Linguagem KIF.Linguagem KIF. SRKB (Shared, Reuasable Knowledge Bases) GroupSRKB (Shared, Reuasable Knowledge Bases) Group - -

compartilhamento e reusabilidade.compartilhamento e reusabilidade.resultado : resultado : Construção de Ontologias ComunsConstrução de Ontologias Comuns..

External Interfaces GroupExternal Interfaces Group - - comunicação SBC - SBC ou comunicação SBC - SBC ou SBC - SNBC.SBC - SNBC.

resultado : resultado : Linguagem KQMLLinguagem KQML..

Page 22: Programação Orientada a Agentes

KIF - Knowledge Interchange FormatKIF - Knowledge Interchange Format

Linguagem padrão de representação interna para comunicação Linguagem padrão de representação interna para comunicação entre agentes.entre agentes.

Versão pré-fixada do cálculo de primeira ordem, com extensões Versão pré-fixada do cálculo de primeira ordem, com extensões para aumentar a expressividade :para aumentar a expressividade : noções aritméticas, ex : >, <noções aritméticas, ex : >, < operadores lógicos, ex : andoperadores lógicos, ex : and procedimentosprocedimentos

Exemplos :Exemplos : (>(*(width chip1)(length chip1))(*(width chip2)(length chip2)))(>(*(width chip1)(length chip1))(*(width chip2)(length chip2))) (interested joe ‘(salary( ?x, ?y, ?z))(interested joe ‘(salary( ?x, ?y, ?z))

Page 23: Programação Orientada a Agentes

KQML - Knowledge, Query and Manipulation LanguageKQML - Knowledge, Query and Manipulation Language

KQMLKQML é uma é uma linguagemlinguagem e um e um conjunto de protocolosconjunto de protocolos que apoiam a comunicação entre agentes de software.que apoiam a comunicação entre agentes de software.

Principais características da linguagem :Principais características da linguagem : Mensagens KQML não enxergam o conteúdo das Mensagens KQML não enxergam o conteúdo das

mensagens que elas transportam;mensagens que elas transportam; Comunicação baseada em Executivas;Comunicação baseada em Executivas; Permite o uso de facilitadores;Permite o uso de facilitadores; É dividida em três camadas : É dividida em três camadas : camada de comunicaçãocamada de comunicação, ,

camada de conteúdocamada de conteúdo e e camada de mensagemcamada de mensagem..

Page 24: Programação Orientada a Agentes

KQML - parâmetrosKQML - parâmetros

As principais palavras-chaves (parâmetros) das executivas As principais palavras-chaves (parâmetros) das executivas KQML são as seguintes :KQML são as seguintes :

executiva (executiva ( :sender:sender <word><word>

:receiver:receiver <word><word>

:reply-with:reply-with <word><word>

:in-reply-to:in-reply-to <word><word>

:language:language <word><word>

:ontology:ontology <word><word>

:content:content <expression> )<expression> )

Page 25: Programação Orientada a Agentes

KQML - Executivas (atos de fala)KQML - Executivas (atos de fala)

De acordo com seu significado as executivas podem ser De acordo com seu significado as executivas podem ser enquadradas nas seguintes categorias :enquadradas nas seguintes categorias : Executivas de ConversaçãoExecutivas de Conversação Executivas de Intervenção Executivas de Intervenção Executivas de Facilitação e RedeExecutivas de Facilitação e Rede

Page 26: Programação Orientada a Agentes

KQML - Executivas de ConversaçãoKQML - Executivas de Conversação

ask-ifask-if - - SS quer saber se o conteúdo de sua mensagem é quer saber se o conteúdo de sua mensagem é verdadeiro para verdadeiro para RR;;

ask-allask-all - - SS quer todas as instâncias de quer todas as instâncias de RR, para as quais o , para as quais o conteúdo de conteúdo de SS é verdadeiro; é verdadeiro;

telltell - - SS informa para informa para RR que seu conteúdo é verdadeiro, ou que seu conteúdo é verdadeiro, ou seja, que a sentença está em sua base de conhecimento;seja, que a sentença está em sua base de conhecimento;

insertinsert - - SS pede para pede para RR acrescentar o conteúdo da acrescentar o conteúdo da mensagem na base de conhecimento de mensagem na base de conhecimento de RR;;

advertiseadvertise - - SS quer que quer que RR saiba que saiba que SS pode e processará pode e processará mensagens do tipo da que está em seu conteúdo.mensagens do tipo da que está em seu conteúdo.

Page 27: Programação Orientada a Agentes

KQML - Executivas de ConversaçãoKQML - Executivas de Conversação

Exemplo Exemplo :: O agenteO agente AA envia a seguinte mensagem para o agente envia a seguinte mensagem para o agente BB : :

((advertiseadvertise

:sender:sender AA

:receiver:receiver BB

:reply-with:reply-with id1id1

:language:language KQMLKQML

:ontology:ontology kqml-ontologykqml-ontology

:content:content ((ask-ifask-if

:sender:sender BB

:receiver:receiver AA

:in-reply-to:in-reply-to id1id1

:language:language prologprolog

:ontology:ontology DIDI

:content:content “Professor(X,Y)”))“Professor(X,Y)”))

Page 28: Programação Orientada a Agentes

KQML - Executivas de ConversaçãoKQML - Executivas de Conversação

Exemplo Exemplo (cont.)(cont.) : : O agenteO agente BB pergunta então ao agente pergunta então ao agente AA : :

((ask-ifask-if

:sender:sender BB

:receiver:receiver AA

:in-reply-to:in-reply-to id1id1

:reply-with:reply-with id2id2

:language:language prologprolog

:ontology:ontology DIDI

:content:content “Professor(Geber,Agentes)”)“Professor(Geber,Agentes)”)

Page 29: Programação Orientada a Agentes

KQML - Executivas de ConversaçãoKQML - Executivas de Conversação

Exemplo Exemplo (cont.) (cont.) :: O agente O agente AA responde ao agente responde ao agente BB com a com a seguinte mensagem :seguinte mensagem :

((telltell

:sender:sender BB

:receiver:receiver AA

:in-reply-to:in-reply-to id2id2

:reply-with:reply-with id3id3

:language:language prologprolog

:ontology:ontology DIDI

:content:content “Professor(Geber,Agentes)”)“Professor(Geber,Agentes)”)

Page 30: Programação Orientada a Agentes

KQML - Executivas de IntervençãoKQML - Executivas de Intervenção

errorerror - - SS indica a indica a RR que recebeu uma mensagem não que recebeu uma mensagem não compreendida;compreendida;

sorrysorry - - SS diz a diz a RR que compreende sua mensagem, mas não pode que compreende sua mensagem, mas não pode prover uma resposta;prover uma resposta;

ExemploExemplo : : O agente O agente Servidor-EstoqueServidor-Estoque envia a seguinte mensagem para o envia a seguinte mensagem para o agente agente JoeJoe : :

((telltell :receiver:receiver JoeJoe

:reply-with:reply-with id2id2

:in-reply-to:in-reply-to id1id1

:language:language LPrologLProlog

:ontology:ontology Estoque-IBMEstoque-IBM

:content:content “(Computador IBM 14)”)“(Computador IBM 14)”)

Page 31: Programação Orientada a Agentes

KQML - Executivas de IntervençãoKQML - Executivas de Intervenção

ExemploExemplo (cont.): em resposta, o agente (cont.): em resposta, o agente JoeJoe envia a envia a seguinte seguinte mensagem para o agente mensagem para o agente Servidor-EstoqueServidor-Estoque : :

((errorerror :sender:sender JoeJoe

:receiver:receiver Servidor-EstoqueServidor-Estoque

:in-reply-to:in-reply-to id2id2

:reply-with:reply-with id3)id3)

Page 32: Programação Orientada a Agentes

KQML - Executivas de RedeKQML - Executivas de Rede

register register - - SS anuncia para anuncia para RR (facilitador) sua presença e nome (facilitador) sua presença e nome simbólico associado com seu endereço físico;simbólico associado com seu endereço físico;

unregisterunregister - cancela um register feito anteriormente; - cancela um register feito anteriormente; transport-addresstransport-address - - SS anuncia um novo endereço físico na rede; anuncia um novo endereço físico na rede; forwardforward - - SS quer que quer que RR repasse a mensagem para o agente “:to”; repasse a mensagem para o agente “:to”; broadcastbroadcast - - SS pede a pede a RR para enviar a mensagem para todos para enviar a mensagem para todos

agentes que agentes que RR conhece; conhece; broker-onebroker-one - - SS pede a pede a RR para achar uma resposta para a para achar uma resposta para a

executiva do seu conteúdo. executiva do seu conteúdo. recommend-onerecommend-one - - SS pede a pede a RR para sugerir um agente que possa para sugerir um agente que possa

processar seu conteúdo;processar seu conteúdo;

Page 33: Programação Orientada a Agentes

KQML - Executivas de RedeKQML - Executivas de Rede

ExemploExemplo : O : O facilitadorfacilitador recebe a seguinte mensagem : recebe a seguinte mensagem :

((broker-onebroker-one :sender:sender C C

:receiver facilitador:receiver facilitador

:reply-with id3:reply-with id3

:language KQML:language KQML

:ontology kqml-ontology:ontology kqml-ontology

:content:content ( (ask-all ask-all :sender:sender CC

:reply-with:reply-with id4id4

:language:language PrologProlog

:ontology:ontology Campeonato Campeonato BrasileiroBrasileiro

:content :content “Campeao(Flamengo,Y)”)) “Campeao(Flamengo,Y)”))

Page 34: Programação Orientada a Agentes

KQML - Executivas de RedeKQML - Executivas de Rede

Exemplo (cont.) : Então, o agente facilitador depois de procurar pelas mensagens

“advertise”que tem sido recebidas por ele, decide enviar a seguinte mensagem para o agente A :

(ask-all :sender facilitador

:receiver A

:in-reply-to id1

:reply-with id4

:language Prolog

:ontology Campeonato Brasileiro

:content “Campeao(Flamengo,Y)”))“Campeao(Flamengo,Y)”))

Page 35: Programação Orientada a Agentes

KQML - Executivas de RedeKQML - Executivas de Rede

ExemploExemplo (cont.) : (cont.) : E o agente E o agente AA responde com a seguinte mensagem : responde com a seguinte mensagem :

((telltell :sender:sender AA

:receiver:receiver facilitadorfacilitador

:in-reply-to:in-reply-to id4id4

:reply-with:reply-with id5id5

:language:language PrologProlog

:ontology:ontology Campeonato BrasileiroCampeonato Brasileiro

:content:content “Campeao(Flamengo, 1980), ... , “Campeao(Flamengo, 1980), ... , Campeao(Flamengo, Campeao(Flamengo,

1992)”)1992)”)

Page 36: Programação Orientada a Agentes

KQML - Executivas de RedeKQML - Executivas de Rede

ExemploExemplo (cont.) :E então, o agente (cont.) :E então, o agente facilitadorfacilitador envia para o agente C : envia para o agente C :

((forwardforward ::from A

:sender facilitador

:receiver C

:in-reply-to id3

:reply-with id6

:language KQML

:ontology kqml-ontology

:content (tell :receiver C

:language Prolog

:ontology C. Brasileiro

:content “Campeao(Flamengo, 1980), ... ,

Campeao(Flamengo, 1992)”)

Page 37: Programação Orientada a Agentes

KQML - AplicaçõesKQML - Aplicações

Tem-se usado KQML em :Tem-se usado KQML em :

Aplicações de banco de dados distribuídos e/ou Aplicações de banco de dados distribuídos e/ou heterogêneos (mediadores);heterogêneos (mediadores);

Vários experimentos de integração de tecnologia no Vários experimentos de integração de tecnologia no laboratório de Roma da ARPA;laboratório de Roma da ARPA;

Integração de clientes com mediadores e servidores em Integração de clientes com mediadores e servidores em ambientes distribuídos;ambientes distribuídos;

Ligações Browsres WWW com Mediadores;Ligações Browsres WWW com Mediadores; Jogos;Jogos;

Page 38: Programação Orientada a Agentes

KQMLKQML

Desvantagens :Desvantagens : Não trata comprometimentos, compartilhamento.Não trata comprometimentos, compartilhamento. Tratamento de Erros;Tratamento de Erros; Seguraça.Seguraça.

Outras linguagens :Outras linguagens : FIPAFIPA

Tendências :Tendências : ACL - KQML + KIFACL - KQML + KIF agent-kagent-k projetos de engenharia concorrente, projetos inteligentes e aplicações projetos de engenharia concorrente, projetos inteligentes e aplicações

distribuídas.distribuídas. Compartilhamento de objetos.Compartilhamento de objetos.

Page 39: Programação Orientada a Agentes

O Mundo do Wumpus Com Comunicação (MWC)O Mundo do Wumpus Com Comunicação (MWC)

Objetivo Objetivo : Implementar o Mundo do Wumpus com : Implementar o Mundo do Wumpus com comunicação entre os agentes.comunicação entre os agentes.

O ambiente do jogo é formado por :O ambiente do jogo é formado por : Agente MundoAgente Mundo Agente CaçadorAgente Caçador Agente WumpusAgente Wumpus Conjunto de CavernasConjunto de Cavernas Agência *Agência *

Page 40: Programação Orientada a Agentes

Arquitetura do MWCArquitetura do MWC

Base de Conhecimento dos Agentes Caçadores

Tell and Ask Tell and Ask Tell and Ask

Caçadores

Page 41: Programação Orientada a Agentes

Arquitetura do MWCArquitetura do MWC

Base de Conhecimento do Agente Mundo

Tell and Ask

Agente Mundo

Page 42: Programação Orientada a Agentes

Arquitetura do MWCArquitetura do MWC

Tell and Ask

Tell and Ask Tell and Ask

Ações/Percepções

Ações/Percepções

Ações/Percepções

Mundo

Caçador3

Caçador1

Caçador2

Page 43: Programação Orientada a Agentes

Comunicação MWCComunicação MWC

Foram abordadas :Foram abordadas : Comunicação TelepáticaComunicação Telepática : :

entre caçadores.entre caçadores. Comunicação com Linguagem FormalComunicação com Linguagem Formal : :

Caçador / Mundo;Caçador / Mundo; Wumpus / Mundo;Wumpus / Mundo;

Page 44: Programação Orientada a Agentes

ImplementaçãoImplementação

Linguagens :Linguagens : Java;Java; KQML;KQML;

Ferramentas :Ferramentas : JEPS; JEPS; JATLite;JATLite;

•Classe Raciocínio do Caçador;•Classe Agency;

Page 45: Programação Orientada a Agentes

Considerações sobre o MWCConsiderações sobre o MWC

Classes : Agentes(nome, Msgqueue, agency ...); Caçador( flechas, start_x, start_y, x,y, dir, caminho,motor ,...); Wumpus,(pos, ...); Mundo (cavernas, wudth, height, jogadores, wumpus, ouro, ...); Agency,(agentes); Caverna (x, y, buraco, brisa, fedor, norte, sul, ...); CCaverna,(WumpusEsta, TemBuraco, Visited, Seguro, N, S, ..); RaciocínioCaçador (x, y, workingCaves, ...); Timer (agency).

Agents são Threads Mundo, Caçador e Wumpus são agentes;

Page 46: Programação Orientada a Agentes

Considerações sobre o MWCConsiderações sobre o MWC

Comunicação :Comunicação : Agency funciona como facilitador;Agency funciona como facilitador; Dinâmica do fluxo das mensagens;Dinâmica do fluxo das mensagens; Verificação de Ontologias e Conteúdos;Verificação de Ontologias e Conteúdos; Ex1. Agente Mundo :Ex1. Agente Mundo :

if(msg.ontology == CaçadorMundoComunicação){if(msg.ontology == CaçadorMundoComunicação){

if(msg.contents == novocaçador){...if(msg.contents == novocaçador){...

Else if (msg.contents == GO){...Else if (msg.contents == GO){...

Else if (msg.contents ==GetGold) {Else if (msg.contents ==GetGold) { ......

else if(msg.ontology == WumpusMundoComunicação) ...else if(msg.ontology == WumpusMundoComunicação) ...

Page 47: Programação Orientada a Agentes

Considerações sobre MWCConsiderações sobre MWC

Ex2 . O Agente Caçador :Ex2 . O Agente Caçador : if(msg.ontology ==PercepcaoCacador){if(msg.ontology ==PercepcaoCacador){

ProcessaPercepcoes(msg.contents)ProcessaPercepcoes(msg.contents)

}} else if (msg.ontology == TimeSlice){else if (msg.ontology == TimeSlice){

DecideMove(); ...DecideMove(); ...

}}

Page 48: Programação Orientada a Agentes

Considerações sobre o MWCConsiderações sobre o MWC

Raciocínio do Caçador : Exemplo :

ProcessaPercepcoes(msg.contents);

motor.infere(x,y,briza,fedor);

...

Void infere(int x, ..., boolean fedor){

SetProperties(x,y,briza,fedor);

Think(); ...

Void Think(){Void Think(){

... ...

If(cav.NaoTemBrisa()){If(cav.NaoTemBrisa()){

cav.ClearBuraco(this) ...cav.ClearBuraco(this) ...

}}

}}

Page 49: Programação Orientada a Agentes

QuestõesQuestões

POA x POO ?POA x POO ? Qual a diferença entre Agentes de Software Qual a diferença entre Agentes de Software

e Agentes Inteligentes ?e Agentes Inteligentes ? ACL resolve os problemas de comunicação ACL resolve os problemas de comunicação

entre agentes ?entre agentes ?

Page 50: Programação Orientada a Agentes

Referências Referências

Finin, Tim and Labrou, Yannis. A Proposal for a new Finin, Tim and Labrou, Yannis. A Proposal for a new KQML Specification; KQML Specification;

Finin, Tim., Labrou, Yannis and Mayfield, James. Finin, Tim., Labrou, Yannis and Mayfield, James. KQML as na communication language. KQML as na communication language.

Finin, Tim and Fritzon, Rich. KQML - A language and Finin, Tim and Fritzon, Rich. KQML - A language and Protocol for Knowledge and Information Exchange. Protocol for Knowledge and Information Exchange.

Finin, Tim and Labrou, Yannis. Semantics and Finin, Tim and Labrou, Yannis. Semantics and Conversations for na Agent Communication LanguageConversations for na Agent Communication Language

Patil, Ramesh S., Fikes Richard E., Patel-Schneider Peter F. ., Patil, Ramesh S., Fikes Richard E., Patel-Schneider Peter F. ., Don Mckay, Finnin, Tim., Gruber, Thomas and Neches Don Mckay, Finnin, Tim., Gruber, Thomas and Neches Robert. The DARPA Knowledge Sharing Effort : Progress Robert. The DARPA Knowledge Sharing Effort : Progress ReportReport