Programação Orientada a Agentes Franklin Souza Ramalho

Slides:



Advertisements
Apresentações semelhantes
Linguagens de Programação para SMA Viviane Torres da Silva
Advertisements

Binding Amarração de endereços de Protocolos
Sistemas Distribuídos
Redes de computadores I
1 ZEUS Agentes Inteligentes e Sistemas Multi-agente Ferramentas de Contrução de Agentes IST- 2003/2004 Ana Paiva.
Realidade Virtual Uma máquina que simule o ser humano deve possuir dispositivos que a permitam ver, ouvir, cheirar, ter sensibilidade a dor, ao tato e.
Fundamentos e Conceitos
Banco de Dados Dedutivo
Web Services Erika Hmeljevski Estefania Borm Leonardo Malagoli
Linguagens de Comunicação de Agentes
Comunicação entre Agentes
Metodologias Orientadas a Agentes
Comunicação entre Agentes Inteligentes
Desenvolvimento Orientado a Agentes
Sistemas Distribuídos
Programação Concorrente
1 Comunicação Inter-Processos -> RMI -> RPC -> TCP -> UDP (Abstração de passagem de mensagem)
Comunicação Entre Objetos Distribuídos
Sincronização de Processos (5)
Sincronização de Processos (6) - Troca de Mensagens -
Objetos Distribuídos Padrão CORBA
Questões Resolvidas - A.C.-10/08/05
Aldo Carvalho e Marcos Lubas
INF 1771 – Inteligência Artificial
Middleware e Sistemas Distribuídos
Software de Rede Willamys Araújo.
SISTEMAS MULTIAGENTES
Enrique P. L. de Oliveira Tecnologia para Web Enrique P. L. de Oliveira
Plano de Aula Introdução Conceitos Básicos KQML FIPA ACL
Aula 1 Minicurso: Astah Ministrantes: André Martins; Camila Brondani;
Sistemas Distribuídos
Tópicos de Sistemas de Informação A
Web Services Uninorte Semana de Tecnologia da Informação
Métodos de Construção de Software: Orientação a Objetos
Marcela Bezerra da Silva Cin - UFPE
Plano de Aula Introdução Conceitos Básicos KQML FIPA ACL
Sistemas Distribuídos
Comunicação entre Agentes em Ambientes Distribuídos: O Modelo peer-to-peer Prof. Fred Freitas – Mestrado em Informática Universidade.
Professor: Márcio Amador
FIPA THE FOUNDATION FOR INTELLIGENT PHYSICAL AGENTS
Concorrência e thread Petrônio Júnior(pglj) Márcio Neves(mmn2)
SISTEMAS OPERACIONAIS I
Agentes Inteligentes e Sistemas Multi- agente (UD 8) Comunicação IST- 2004/2005.
Tecgraf PUC-Rio Setembro de 2013 Introdução ao Openbus.
Da Introdução à Prática
Comunicação.
Agentes Inteligentes e Sistemas Multi- agente Construção de Sociedades de Agentes IST- 2003/2004 Ana Paiva.
Métodos Formais.
Troca de Mensagens Programação concorrente
Padrões de Interação com o Usuário
1 Comunicação em SMA Introdução Conceitos Básicos KQML FIPA ACL Exemplo Ryan Albuquerque e Patricia Tedesco.
Comunicação em Sistemas Multiagentes
Integração de Ferramentas CASE
Copyright 1998, Departamento de Informática da UFPE. Todos os direitos reservados sob a legislação em vigor. Variáveis e métodos estáticos, Passagem de.
Web Semântica Thiago José Marques Moura. Roteiro Problemática; Descrição; Arquitetura Proposta; Conclusão sobre Web Semântica; Linguagens de Anotação.
UML e a Ferramenta Astah
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.
JR: Flexible Distributed Programming in an Extended Java Elmário Gomes Dutra Jr. Gustavo Romano.
WSDL Web Services Description Language. Tecnologias Relacionadas Web Services SOAP (Simple Object Access Protocol) HTTP (HyperText Markup Language) UDDI.
Agentes Inteligentes e Sistemas Multi- agente (UD 8) Comunicação IST- 2004/2005.
III – Aplicações – Serviços Virtuais – Web Services Escola Politécnica da USP MBA EPUSP em Gestão e Engenharia do Produto EP018 O Produto Internet e suas.
Sistemas Distribuídos Nadilma Nunes Aula Inicial – Apresentação da disciplina.
UML (Unified Modeling Language) Linguagem Unificada de Modelagem
Versão 1 - julho/2013 Tecgraf PUC-Rio Novembro de 2013 Introdução ao OpenBus.
Aula: Arquiteturas de redes: modelo de referência OSI 04/12/2010.
1 Especificação de Sistemas de Software e a UML. 2 Modelagem de sistema A modelagem de sistema auxilia o analista a entender a funcionalidade do sistema.
Bruna Cavallero Martins Universidade Católica de Pelotas.
Curso Superior em Redes de Computadores DHCP Prof. Sales Filho.
Escola de Ciência e Tecnologia Arquitetura TCP/IP Arquitetura TCP/IP Interface entre o Nível Lógico e Físico Protocolo IP Etienne César R. de Oliveira.
Síntese do Negócio ONTOWEB. Ontoweb – Nova Geração de Ferramenta de Busca Possui comportamento inteligente que auxilia o usuário a organizar e compartilhar.
Transcrição da apresentação:

Programação Orientada a Agentes Franklin Souza Ramalho

Roteiro ä AOP ä definição ä ambientes ä linguagens ä Comunicação entre Agentes ä Conceitos Básicos ä KSE ä Mundo do Wumpus ä Questões ä Referências

Características ä Programas são formados por vários agentes que compartilham informações por meios de mensagens ä Características de Agentes: ä Autonomia e adaptabilidade ä Cooperação (Comunicação) ä Estados Mentais ( Crenças, capacidades, escolhas)

Comparação entre OOP e AOP ä AOP pode ser visto como uma especialização do OOP ä Comparações: OOPAOP OOPAOP Unidade BasicaObjetosAgentes EstadosObjetosEstados Mentais ComputaçãoMensagensMensagens e outros Tipos MensagensNão-EstruturadoAtos de Fala RestriçõesNenhumaHonestidade, consistência,etc

Aplicações de AOP ä Agentes na Internet ä Assistentes pessoais ä Negociadores ä Jogos ä Simulação de sistemas

Ambientes de Programação de Agentes ä Objetivos: ä Definição dos Estados Mentais ä Primitivas de Comunicação ä Duas Visões ä Fornecer linguagens especializadas para agentes ä Auxiliar linguagens pré-existentes para programação de agentes ä Exemplos: Aglets, Agent0, etc.

Linguagens de Programação de Agentes ä Representam: ä Ações do Agente ä Estados Mentais ä Tempo ä Oferecem primitivas de comunicação.

Exemplo: Agentk ä Tipos de Expressões: xtxtxtxt B a (x) t OBL a,b (x) t CAN a (x) t ä Comunicações: Expressões KQML

Comunicação entre Agentes

Comunicação äOäOäOäObjetivos: äTäTäTäTroca de informações äCäCäCäCoordenação

Atos de Fala ä Informar ä Consultar ä Responder ä Requisitar algo ä Comprometer-se ä Agradecer ä Compartilhar

Tipos de Agentes: Facilitadores ä Agentes simplificam a troca de informações ä Tarefas: ä Roteamento ä Registro de nomes ä Monitoramento, etc.

Facilitadores A B F Broker-one(ask(x))Advertise(ask(X)) Ask(X) Tell(X) Tell(X)

Tipos de Comunicação entre Agentes ä Comunicação Telepática ä Comunicaçào com uma Linguagem Formal

Comunicação Telepática ä Comunicação direta via interface TELL AND ASK. Ex : Ex : 1 O agente A pode comunicar a proposição P ao agente B com TELL (KB A, P). 2 O agente A pode consultar a base de conhecimento do agente B com um ASK (KB B, Q)

Comunicação Telepática Agente A Agente B Comunicação com Tell and Ask AçõesAçõesPercepçõesPercepções

Comunicação Telepática Desvantagens : Desvantagens : Dados dois agentes A e B que se comunicam : l A e B podem usar o mesmo simbolo com significados diferentes; l A e B podem usar simbolos diferentes para devotar a mesma coisa; l A e B precisam usar a mesma linguagem interna; l Sabotagem

Comunicação com Linguagem Formal ä Um agente A se comunica com um agente B através de uma linguagem externa.

Comunicação com Linguagem Formal Agente A Agente B Percepçôes Percepçôes Ações Ações Ling. Formal

Comunicação com Linguagem Formal Desvantagens Desvantagens l A linguagem de representação externa traz com ela problemas de geração e análise; l Falta de uma linguagem padrão; l Pode ocorrer uma interpretação errada por parte de agentes em relação à mensagem de outro agente. Vários consórcios :Vários consórcios : Knowledge Sharing Effort (KSE)Knowledge Sharing Effort (KSE)

Knowledge Sharing Effort (KSE) ä O KSE é organizado em três grupos de trabalho : l Interlingua Group - tradução. resultado : Linguagem KIF. l SRKB (Shared, Reuasable Knowledge Bases) Group - compartilhamento e reusabilidade. resultado : Construção de Ontologias Comuns. l External Interfaces Group - comunicação SBC - SBC ou SBC - SNBC. resultado : Linguagem KQML.

KIF - Knowledge Interchange Format ä Linguagem padrão de representação interna para comunicação entre agentes. ä Versão pré-fixada do cálculo de primeira ordem, com extensões para aumentar a expressividade : ä noções aritméticas, ex : >,, < ä operadores lógicos, ex : and ä procedimentos ä Exemplos : ä (>(*(width chip1)(length chip1))(*(width chip2)(length chip2))) ä (interested joe (salary( ?x, ?y, ?z))

KQML - Knowledge, Query and Manipulation Language ä KQML é uma linguagem e um conjunto de protocolos que apoiam a comunicação entre agentes de software. ä Principais características da linguagem : l Mensagens KQML não enxergam o conteúdo das mensagens que elas transportam; l Comunicação baseada em Executivas; l Permite o uso de facilitadores; l É dividida em três camadas : camada de comunicação, camada de conteúdo e camada de mensagem.

KQML - parâmetros ä As principais palavras-chaves (parâmetros) das executivas KQML são as seguintes : executiva (:sender executiva (:sender :receiver :receiver :reply-with :reply-with :in-reply-to :in-reply-to :language :language :ontology :ontology :content )

KQML - Executivas (atos de fala) ä De acordo com seu significado as executivas podem ser enquadradas nas seguintes categorias : l Executivas de Conversação l Executivas de Intervenção l Executivas de Facilitação e Rede

KQML - Executivas de Conversação ä ask-if - S quer saber se o conteúdo de sua mensagem é verdadeiro para R; ä ask-all - S quer todas as instâncias de R, para as quais o conteúdo de S é verdadeiro; ä tell - S informa para R que seu conteúdo é verdadeiro, ou seja, que a sentença está em sua base de conhecimento; ä insert - S pede para R acrescentar o conteúdo da mensagem na base de conhecimento de R; ä advertise - S quer que R saiba que S pode e processará mensagens do tipo da que está em seu conteúdo.

KQML - Executivas de Conversação Exemplo : O agente A envia a seguinte mensagem para o agente B : (advertise :senderA :receiverB :reply-withid1 :languageKQML :ontologykqml-ontology :content(ask-if :senderB :receiverA :in-reply-toid1 :languageprolog :ontologyDI :contentProfessor(X,Y)))

KQML - Executivas de Conversação Exemplo (cont.) : O agente B pergunta então ao agente A : (ask-if :senderB :receiverA :in-reply-toid1 :reply-withid2 :languageprolog :ontologyDI :contentProfessor(Geber,Agentes))

KQML - Executivas de Conversação Exemplo (cont.) : O agente A responde ao agente Bcom a seguinte mensagem : Exemplo (cont.) : O agente A responde ao agente B com a seguinte mensagem : (tell :senderB :receiverA :in-reply-toid2 :reply-withid3 :languageprolog :ontologyDI :contentProfessor(Geber,Agentes))

KQML - Executivas de Intervenção ä error - S indica a R que recebeu uma mensagem não compreendida; ä sorry - S diz a R que compreende sua mensagem, mas não pode prover uma resposta; Exemplo : O agente Servidor-Estoque envia a seguinte mensagem para o agente Joe : (tell:receiverJoe :reply-withid2 :in-reply-toid1 :languageLProlog :ontologyEstoque-IBM :content(Computador IBM 14))

KQML - Executivas de Intervenção Exemplo (cont.): em resposta, o agente Joe envia a seguinte mensagem para o agente Servidor-Estoque : (error:senderJoe :receiverServidor-Estoque :in-reply-toid2 :reply-withid3)

KQML - Executivas de Rede ä register - S anuncia para R (facilitador) sua presença e nome simbólico associado com seu endereço físico; ä unregister - cancela um register feito anteriormente; ä transport-address - S anuncia um novo endereço físico na rede; ä forward - S quer que R repasse a mensagem para o agente :to; ä broadcast - S pede a R para enviar a mensagem para todos agentes que R conhece; ä broker-one - S pede a R para achar uma resposta para a executiva do seu conteúdo. ä recommend-one - S pede a R para sugerir um agente que possa processar seu conteúdo;

KQML - Executivas de Rede Exemplo : O facilitador recebe a seguinte mensagem : (broker-one:sender C :receiver facilitador :reply-with id3 :language KQML :ontology kqml-ontology :content (ask-all :senderC :reply-withid4 :reply-withid4 :languageProlog :languageProlog :ontologyCampeonato Brasileiro :ontologyCampeonato Brasileiro :content Campeao(Flamengo,Y))) :content Campeao(Flamengo,Y)))

KQML - Executivas de Rede ä ä Exemplo (cont.) : ä ä Então, o agente facilitador depois de procurar pelas mensagens advertiseque tem sido recebidas por ele, decide enviar a seguinte mensagem para o agente A : (ask-all :senderfacilitador :receiverA :in-reply-toid1 :reply-withid4 :languageProlog :ontologyCampeonato Brasileiro Campeao(Flamengo,Y))) :content Campeao(Flamengo,Y)))

KQML - Executivas de Rede ä Exemplo (cont.) : ä E o agente A responde com a seguinte mensagem : (tell :senderA :receiverfacilitador :in-reply-toid4 :reply-withid5 :languageProlog :ontologyCampeonato Brasileiro :contentCampeao(Flamengo, 1980),..., Campeao(Flamengo, 1992))

KQML - Executivas de Rede ä Exemplo (cont.) :E então, o agente facilitador envia para o agente C : (forward : (forward :fromA :senderfacilitador :receiverC :in-reply-toid3 :reply-withid6 :languageKQML :ontologykqml-ontology :content(tell:receiverC :languageProlog :ontologyC. Brasileiro :content Campeao(Flamengo, 1980),..., Campeao(Flamengo, 1992))

KQML - Aplicações Tem-se usado KQML em : ä Aplicações de banco de dados distribuídos e/ou heterogêneos (mediadores); ä Vários experimentos de integração de tecnologia no laboratório de Roma da ARPA; ä Integração de clientes com mediadores e servidores em ambientes distribuídos; ä Ligações Browsres WWW com Mediadores; ä Jogos;

KQML Desvantagens : Desvantagens : ä Não trata comprometimentos, compartilhamento. ä Tratamento de Erros; ä Seguraça. ä Outras linguagens : ä FIPA ä Tendências : ä ACL - KQML + KIF ä agent-k ä projetos de engenharia concorrente, projetos inteligentes e aplicações distribuídas. ä Compartilhamento de objetos.

O Mundo do Wumpus Com Comunicação (MWC) ä Objetivo : Implementar o Mundo do Wumpus com comunicação entre os agentes. ä O ambiente do jogo é formado por : ä Agente Mundo ä Agente Caçador ä Agente Wumpus ä Conjunto de Cavernas ä Agência *

Arquitetura do MWC Base de Conhecimento dos Agentes Caçadores Tell and Ask Caçadores

Arquitetura do MWC Base de Conhecimento do Agente Mundo Tell and Ask Agente Mundo

Arquitetura do MWC Tell and Ask Ações/Percepções Mundo Caçador3 Caçador1 Caçador2

Comunicação MWC ä Foram abordadas : ä Comunicação Telepática : ä entre caçadores. ä Comunicação com Linguagem Formal : ä Caçador / Mundo; ä Wumpus / Mundo;

Implementação ä Linguagens : ä Java; ä KQML; ä Ferramentas : ä JEPS; ä JATLite; Classe Raciocínio do Caçador; Classe Agency;

Consideraçõ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;

Considerações sobre o MWC ä Comunicação : ä Agency funciona como facilitador; ä Dinâmica do fluxo das mensagens; ä Verificação de Ontologias e Conteúdos; ä Ex1. Agente Mundo : if(msg.ontology == CaçadorMundoComunicação){ if(msg.contents == novocaçador){... Else if (msg.contents == GO){... Else if (msg.contents == GO){... Else if (msg.contents ==GetGold) {... else if(msg.ontology == WumpusMundoComunicação)...

Considerações sobre MWC ä Ex2. O Agente Caçador : ä if(msg.ontology ==PercepcaoCacador){ ä ProcessaPercepcoes(msg.contents) } ä else if (msg.ontology == TimeSlice){ ä DecideMove();... }

Consideraçõ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(){...If(cav.NaoTemBrisa()){ cav.ClearBuraco(this)... }}

Questões ä POA x POO ? ä Qual a diferença entre Agentes de Software e Agentes Inteligentes ? ä ACL resolve os problemas de comunicação entre agentes ?

Referências ä Finin, Tim and Labrou, Yannis. A Proposal for a new KQML Specification; ä Finin, Tim., Labrou, Yannis and Mayfield, James. KQML as na communication language. ä Finin, Tim and Fritzon, Rich. KQML - A language and Protocol for Knowledge and Information Exchange. ä Finin, Tim and Labrou, Yannis. Semantics and Conversations for na Agent Communication Language ä Patil, Ramesh S., Fikes Richard E., Patel-Schneider Peter F.., Don Mckay, Finnin, Tim., Gruber, Thomas and Neches Robert. The DARPA Knowledge Sharing Effort : Progress Report