A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Questões O que são ferramentas para construção de agentes? Que tipos de agentes e que tipos de ferramentas existem? Que tipo de sistemas (aplicações) posso.

Apresentações semelhantes


Apresentação em tema: "Questões O que são ferramentas para construção de agentes? Que tipos de agentes e que tipos de ferramentas existem? Que tipo de sistemas (aplicações) posso."— Transcrição da apresentação:

1 Agentes Inteligentes e Sistemas Multi-agente (UE11) Plataformas de Construção de Agentes

2 Questões O que são ferramentas para construção de agentes? Que tipos de agentes e que tipos de ferramentas existem? Que tipo de sistemas (aplicações) posso construir usando as referidas ferramentas?

3 Aplicações de Agentes (1/3)
1. Automação de processos 2. Aplicações Internet Comércio electrónico agentes podem percorrer a rede e negociar em nome de quem os enviou agentes servem de vendedores de bens em serviços de comércio electrónico Procura de informação distribuída ao invés de concentrar a procura num só site, distribui agentes pela rede para efectuarem a procura Assistente Pessoal assistentes podem efectuar tarefas na rede em nome de seus criadores Negociação Segura agentes podem mover-se para sites seguros com a finalidade de negociar

4 Aplicações de Agentes (2/3)
Telecomunicações e Redes Serviços de Telecomunicações via Rede agentes podem reconfigurar uma rede de telecomunicações de forma dinâmica, mantendo-a coesa Simulações de serviços agentes podem servir para a simulação de redes de serviços Aplicações de Workflow e Groupware agentes móveis podem cooperar em nome de co-participantes de um grupo de trabalho

5 Aplicações de Agentes (3/3)
Jogos Os agentes controlam os personagens em jogos de computador, sendo autónomos (e não scriptados) Cinema agentes podem controlar personagens de jogos (ex. Senhor dos Aneis) Aplicações de simulação de sociedades agentes permitem simular multidões, sociedades de animais (vida artificial), organizações, etc. Ensino Assistido por computador os agentes podem servir para criar personagens para apoiar os alunos em sistemas de ensino assistido, em particular à distância.

6 Plataformas de Agentes
Plataformas de agentes generalistas: Plataformas que suportam e ajudam a criação de agentes inteligentes, fornecendo uma estrutura que facilita a sua implementação. Plataformas genéricas para serem usadas em diversos tipos de aplicações. Plataformas de agentes específicas: Agentes móveis: Ferramentas que suportam e ajudam a criação de agentes móveis, fornecendo uma estrutura que facilita a sua implementação (Ex. Aglets). Agentes de interface: Plataformas que suportam a criação de agentes de interface (ex. Microsoft Agent). Agentes para jogos: Plataformas que permitem a criação de agentes em ambientes de jogos (ou mesmo para jogos especificos: ex. Bots do Unreal).

7 O que são Plataformas de Agentes?
Software para ajudar a criação de agentes e sua infraestrutura, usado para o desenvolvimento de aplicações baseadas em agentes.

8 Estrutura Abstracta de uma Plataforma: M. Luck
Agent Architecture interaction Environment Agent Agent interaction interaction Agent High level services (e.g. Agent communication language, middle agents, coordination) Low-level services (e.g. Discovery, message massing) Agent building software (e.g. Graphical environment) Management services (e.g. Visualization)

9 Ferramenta Abstracta O primeiro passo é a separação entre os agents e a sua ligação com o ambiente da comunicação e comunicação entre eles. Assim, para cada ferramenta é necessário saber como é que um agente é definido e construído, sendo que ele tem que perceber o ambiente e agir de forma a modificar esse mesmo ambiente. Alem disso há que considerar a forma como os agentes vão interagir entre eles, e que mecanismos a ferramentas propociona para essa comunicação se efectuar. Finalmente há que considerar todo o tipo de ferramentas auxiliares ajudam a construção dos agentes.

10 Standards: FIPA Estrutura da Especificação da Arquitectura Abstracta
Aplicações baseadas em Agentes Sistema de Comunicações do Agente Sistema de Gestão do Agente Sistema de Transporte de Mensagens do Agente Arquitectura Abstracta

11 Estrutura da Especificação da Arquitectura Abstracta
Arquitectura Abstracta: é a responsável por todas as entidades abstractas necessárias para o desenvolvimento de sistemas baseados em agentes. Faz a distinção entre as entidades que são facilmente representadas de uma forma abstracta (como por exemplo o FIPA ACL) dos elementos que não são genéricos a todos os sistemas de agentes (como a mobilidade do agente ou o sistema de gestão do mesmo) Na prática, a Arquitectura Abstracta da FIPA é a parcela comum a todas as plataformas de agentes que a implementam e que são compatíveis com as suas especificações, como é o caso do FIPA-OS, JADE e ZEUS Sistema de Transporte de Mensagens do Agente: é o responsável pela entrega e pela representação de mensagens no seio de ambientes e redes heterogéneas com diferentes protocolos de transporte

12 Especificação da Arquitectura Abstracta
Plataforma de Agentes Agente A Message Transport Service (MTS) Mensagem ACL sobre MTS Message Transport Protocol (MTP) Message Transport Service (MTS) Agente B Plataforma de Agentes

13 Especificação da Arquitectura Abstracta
Sistema de Gestão do Agente: providencia a framework dentro da qual os agentes FIPA existem e operam. Estabelece o modelo lógico de referência para a criação, registo, localização, comunicação, migração e eliminação de agentes

14 Especificação da Arquitectura Abstracta
Aplicação de Agentes Aplicação Plataforma de Agentes Sistema de Gestão de Agentes (White Pages) Directory Facilitator (DF) (Yellow Pages) Agente Message Transport Service (MTS) Message Transport Service (MTS) Plataforma de Agentes

15 Especificação da Arquitectura Abstracta
Sistema de Comunicações do Agente: a comunicação entre agentes FIPA é baseada num modelo que assenta basicamente na grande qualidade semântica das mensagens, ou seja, toda a comunicação encontra-se pré-definida e enriquecida semânticamente para que seja bem entendida por todos os agentes A base da comunicação entre agentes FIPA é conseguida atrabés do uso de actos comunicativos ou performativas, como request, inform ou refuse, independentes do conteúdo global da mensagem em si

16 Jade (vai ser dada na aula prática) Zeus FIPA-OS
Plataformas Generalistas: que seguem o modelo da FIPA Jade (vai ser dada na aula prática) Zeus FIPA-OS

17 Zeus Desenvolvido pela British Telecommunications Labs Plataforma para construção de aplicações com agentes colaborativos (Open Source) Ambiente para o desenvolvimento de collaborative agents: Agentes que colaboram entre si para atingirem um determinado objectivo

18 Zeus: Objectivos Manipulação directa: Programação visual “Pick & Choose” Tecnologia standard: JAVA, TCP/IP, FIPA ACL...

19 Agentes Colaborativos
Questões chave: Descoberta da informação descobrir a existência, localização, capacidades e papéis de outros agentes Comunicação usar uma linguagem comum Ontologias usar um vocabulário comum para conceitos iguais Coordenação entre agentes Integração com sistemas existentes

20 Componentes do Tool-Kit

21 Agent Component Library
Os agentes desenvolvidos em Zeus deverão ser deliberativos, assim raciocinando explicitamente sobre os objectivos e acções a executar. Para tal, a Zeus fornece um conjunto de componentes para serem usados na construção de agentes: Agentes de suporte Mecanismo de comunicação Motor de coordenação Planeador genérico Interface com sistemas externos

22 Resolvem o problema da descoberta de informação:
Agentes de Suporte Resolvem o problema da descoberta de informação: Servidor de nomes + Facilitador Constituem a infraestrutura da sociedade de agentes ZEUS oferece uma biblioteca de relações organizacionais pré-definidas: superior subordinado co-trabalhador ...

23 Mecanismo de Comunição
Resolve o problema da linguagem comum: Mensagens FIPA-ACL Comunicação ponto-a-ponto sobre sockets TCP/IP

24 Motor de Coordenação1 Resolve o problema da coordenação entre agentes: recebe objectivos invoca o planeador localiza os agentes produtores dos recursos necessários solicita os seus serviços atribui tarefas

25 Motor de Coordenação2 ZEUS oferece uma biblioteca de estratégias de coordenação pré-definidas: Master-slave Contract net Vickery auction Dutch auction English auction ...

26 Interface com Sistemas Externos
A Zeus foi criada para interligar com aplicações existentes... Resolve o problema da integração com sistemas existentes Motor de Coordenação pode utilizar API’s externas (BD’s, ...) ZeusExternal interface class + modelo interno por eventos integrar código externo com o agente verificar os eventos que ocorrem reagir a determinados eventos

27 Agente ZEUS Genérico

28 Sofware de auxílio à construção de Agentes
The Agent Building Tools : Providencia uma ambiente de desenvolvimento integrado através do qual os agentes são gerados e especificados Providencia um conjunto de editores que guiam os programadores através dos vários estádios da metodologia de desenvolvimento de agentes do Zeus: Ontology Editor para definir os conceitos Agent Definition Editor para descrever os agentes logicamente Task Description Editor para descrever os atributos das tarefas Organisation Editor para definir as relações entre os agentes Co-ordination Editor para seleccionar o conjunto de protocolos de coordenação com os quais os agentes devem ser equipados

29 Ontology Editor para definir os conceitos
Editor de Ontologias

30 Editor de Definição do Agente
Agent Definition Panel para descrever os agentes logicamente Editor de Definição do Agente

31 Editor de Descrição de Tarefas
Editor de Tarefas para descrever os atributos das tarefas Editor de Descrição de Tarefas

32 Organisation Editor para definir as relações entre os agentes
Editor de Organização

33 Co-ordination Editor para seleccionar o conjunto de protocolos de coordenação com os quais os agentes devem ser equipados Editor de Coordenação

34 Ferramentas de Visualização
The Visualisation Tools : Ambiente de runtime que permite efectuar a observação e o debug das aplicações Recolhe informação sobre a actividade dos agentes, interpreta-a e mostra os resultados em tempo real Solução para o difícil e crescente problema da análise e debug de sistemas multi-agent, onde os dados, informação de controlo e processos activos encontram-se distribuídos

35 Visualizador de Sociedades

36 Relatórios

37 Estatística

38 Visualizador de Agentes

39 Metodologia de Desenho

40 Comentários Finais (ZEUS)
Plataforma ZEUS permite: Configurar um conjunto de agentes com funcionalidades e comportamentos distintos Organizar os agentes utilizando relações organizacionais oferecidas pela plataforma Equipar cada agente com mecanismos de comunicação e coordenação Definir para cada agente código específico Gerar automaticamente os executáveis

41 FIPA-OS A plataforma FIPA-OS foi a primeira implementação Open Source da FIPA Iniciada em Agosto de 1999 Tipos de agentes básicos suportados: Reactivo: reage a mensagens ACL provenientes de outros agentes no ambiente Proactivo: o agente consegue decidir quando deve iniciar a interacção com outros agentes (só para objectivos simples, como registar-se num servidor de registo!) Social: reactivo e proactivo Autónomo: cada agente possui várias threads de controlo

42 FIPA-OS

43 FIPA-OS : aspectos genéricos
Qualquer plataforma FIPA contém: Directory Facilitator (DF): Tipo de agentes que fornecem o serviço de “páginas amerelas” a outros agentes (localização de serviços e serviços de registo) Agent Management System (AMS): gere o ciclo de vida de um agente na plataforma, enquanto providencia serviços de “páginas brancas” a outros agentes (localização de agentes, nomes e serviços de controlo de acessos) Message Transport Service (MTS): MTP (Message Transport Protocol) numa determinada plataforma (varios protocolos) ACC (Agent Communication Channel) para comunicar entre plataformas

44 Componentes específicos do FIPA-OS
FIPA-OS- os agentes Componentes específicos do FIPA-OS

45 FIPA-OS Agent Shell: para além dos componentes mandatórios presentes no Modelo de Referência da FIPA, a distribuição da FIPA-OS inclui um template vazio de um agente denominado Agent Shell. Através deste template podemos produzir os nossos agentes para inter-operarem na FIPA-OS Agent Management Service (AMS) (genérico): É um agente que faz o papel de Serviço e é usado para controlar os ciclos de vida dos outros agentes. O agente registado informa o AMS sobre alterações significativas no seu ciclo de vida e deixa o AMS controlar esse mesmo ciclo. No caso de um agente rebelde que não se deixe controlar pelo AMS, este invoca directamente operações do agente pela sua API

46 FIPA-OS Task Manager: Cada tarefa de cada agente é uma tarefa distinta (ambiente multi-tarefa) As mensagens são redireccionadas automaticamente para o estado correcto É possível interagir dentro da mesma tarefa

47 FIPA-OS Parse Factory: sempre que um agente recebe uma mensagem, o Parse Factory descobre em que linguagem a mensagem vem escrita e carrega dinamicamente o parser respectivo para que a conversão se faça sem sobressaltos A vantagem mais notória é a transparência com que se pode encarar as mensagens, dando total atenção à componente semântica destas Uma vez que o parsing é feito automaticamente, para o agente é como se estivesse a comunicar na mesma linguagem! Não há necessidade de codificação sintática! Só o conteúdo semântico interessa ao agente

48 FIPA-OS Conversation Manager: Trata de todo o tráfego de conversas (não trata mensagens individuais) Simplifica a implementação das conversas, senão teríamos de associar sempre a identificação das conversas à mensagem antes do agente enviar a mesma

49 FIPA-OS Comunicações: Remote Method Invocation (RMI) usado em comunicação no interior da mesma plataforma (intra-plataforma) IIOP com Voyager e SunIDL para comunicação para plataformas diferentes! (inter-plataforma)

50 FIPA-OS: Exemplo Agência A Plataforma móvel Agência B

51 JADE Java Agent DEvelopment Framework Desenvolvido pelo CSELT da Universidade de Parma – Itália e actualmente distribuído pela TILab (Telecom Italia Labs) Framework para o desenvolvimento de aplicações baseadas em agentes de acordo com as especificações FIPA para sistemas multi-agent Pode ser visto como um middle-ware de agentes que implementa uma plataforma de agentes e um framework de desenvolvimento Está conforme a FIPA 97/2000

52 Agentes em JADE Não define nenhuma arquitectura de agentes para os agentes (de forma diferente da Zeus) A propriedade de autonomia é interpretada como a implementação dos agentes como objectos activos (que têm a sua própria thread de execução). Os agentes comunicam assíncronamente através de mensagens.

53 Transporte de mensagens
JADE: comunicação Toda a comunicação entre agentes é efectuada através da troca de mensagens Mensagens são representadas através da linguagem FIPA ACL Lida com todos os aspectos que não fazem parte do agente em si e que são independentes das aplicações, tais como: Transporte de mensagens Codificação e parsing Ciclo de Vida dos agentes

54 Mais informação nas aulas práticas!!!!
JADE Mais informação nas aulas práticas!!!!

55 JACK JACK Intelligent Agents™, is an environment for building, running and integrating commercial-grade multi-agent systems using a component-based approach. JACK is based upon the company's Research and Development work on software agent technologies. Its framework supplies a high performance, lightweight implementation of the BDI architecture,and can be easily extended to support different agent models or specific application requirements.

56

57 JACK Features JACK Intelligent Agents is a new concept — an environment for building, running and integrating commercial Java-based multi-agent software using a component-based approach. It incorporates significant advances in Agent Research and Software Engineering and provides the core architecture and infrastructure for developing and running software agents in distributed applications.

58 Overview of JACK Architecture
Components Of JACK

59 JACK Agent language The most important part of JACK is the JACK Agent language. JACK Agent Language is a programming language that extends Java with agent-oriented concepts such as Agents, Capabilities, Events, Plans, Agent Knowledge Bases (Databases), Resource and Concurrency Management. This language has three main extensions to pure JAVA language, and the current version supports the BDI model and SimpleTeam, an extension to support team-based reasoning.

60 JACK Agent language’s 3 main extensions to Java(1)
1. A set of syntactical additions to its host language:  a small number of keywords for the identification of the main components of an agent (such as agent, plan and event);  a set of statements for the declaration of attributes and other characteristics of the components (for instance, the information contained in beliefs or carried by events). All attributes are strongly typed;  a set of statements for the definition of static relationships(for instance, which plans can be adopted to react to a certain event);  a set of statements for the manipulation of an agent's state(for instance, additions of new goals or sub-goals to be achieved, changes of beliefs, interaction with other agents).

61 JACK Agent language’s 3 main extensions to Java(2)
A compiler that converts the syntactic additions described above into pure Java classes and statements that can be loaded with, and be called by, other Java code. The compiler also partially transforms the code of plans in order to obtain the correct semantics of the BDI architecture. A set of classes (called the kernel) provides the required run-time support to the generated code. This includes: automatic management of concurrency among tasks being pursued in parallel (Intentions in the BDI terminology); default behaviour of the agent in reaction to events, failure of actions and tasks, and so on; and native lightweight, high performance communications infrastructure for multi-agent applications.

62 Most important concepts in JACK Agent Language(1)
agent AgentType extends Agent {implements interface} { #{private,agent,global} data Type Name (arglist); #handles event EventType; #uses plan PlanType; #posts event EventType reference; #has capability CapabilityType reference; //data members (Java data structures) : //Constructor method AgentType(arglist) super("agent name"); } //Java methods that implement agent functionality The Agent class: embodies the functionality associated with a JACK intelligent agent

63 Most important concepts in JACK Agent Language(2)
event EventType extends Event { // Any members required as part of the event structure. // Any declarations required to give the agent access to data or // beliefsets within the enclosing agent or capability. #uses data DataType data_name; // Any #posted when declarations required so that the event // will be posted automatically when certain belief states arise. #posted when { condition } // Declarations specifying how the event is posted within an agent. // You can have as many posting methods as you require. #posted as postingMethodName(parameter list) // method body } The Event class: the originators of all activity within JACK Normal Event BDI Event

64 Most important concepts in JACK Agent Language(3)
plan PlanType extends Plan { #handles event EventType eventref; #posts event EventType eventref2; #sends event MessageEventType eventref3; #uses interface InterfaceName ref; #reasoning method pass(){ // Post-processing and clean up steps when the plan has // succeeded } #reasoning method fail(){ // Post-processing and clean up steps when the plan has failed static boolean relevant (EventType eventref){ context(){ body(){ The Plan class: describes a sequence of actions that an agent can take when an event occurs

65 Most important concepts in JACK Agent Language(4)
The Capability class: represent functional aspects of an agent that can be plugged in as required capability CapabilityType extends Capability [implements Interface] { // JACK Agent Language declarations specifying the functionality // associated with the capability. #handles external {event} EventType; #posts event EventType {reference}; #posts external event EventType {reference}; #private data Type name({args}); #exports data Type name({args}); #imports data Type name(); #uses plan PlanType; #has capability CapabilityType reference; // other data members and method definitions }

66 Most important concepts in JACK Agent Language(5)
The BeliefSet class: the maintenance of agent beliefs,which are central to the notion of BDI beliefset RelationName extends ClosedWorld { #key field FieldType FieldName; #value field FieldType FieldName; #posts event EventType ref; #indexed query queryName( parameter list); #function query ReturnType queryName(parameter list) { method body} public void addfact(Tuple t,BeliefState is){}// called when a belief is added public void newfact(Tuple t,BeliefState is,BeliefState was){}// called when a new belief is added public void delfact(Tuple t,BeliefState was){}// called when a belief is removed public void endfact(Tuple t,BeliefState was,BeliefState is){}// called when a belief is removed public void modfact(Tuple t,BeliefState is,Tuple knocked,Tuple negated){}// called when a belief is modified public void moddb(){}// catch-all }

67 A simple example public capability PaintRequesting extends Capability { #handles external event PaintRequest ; #uses plan SendPaintCommand; #sends event Paint; } public agent Part extends Agent { #posts event PaintRequest ev; #has capability PaintRequesting paintreqesting_cap; public void submitPaintRequest(String robot, String colour) { postEventAndWait(ev.request(robot,colour)); } public plan SendPaintCommand extends Plan { #handles event PaintRequest preqev; #sends event Paint ev; body() { Paint q = ev.paint(preqev.colour); @send(preqev.robot,q); @wait_for(q.replied()); Finished response = (Finished) q.getReply(); } public event Finished extends BDIMessageEvent { #posted as finished(String c){ } public event PaintRequest extends BDIGoalEvent { }

68 public agent Robot extends Agent {
#has capability Painting painting_cap; #posts event Paint pp; } public capability Painting extends Capability { #handles external event Paint ; #sends event Finished; #uses plan PaintSpecifiedNewColour; #uses plan PaintAnyColour; } public event Paint extends BDIMessageEvent { #set behavior Recover repost; #posted as paint(String c) { } public plan PaintSpecifiedNewColour extends Plan { #handles event Paint ev; #sends event Finished fev; #uses interface Robot self; static boolean relevant(Paint pp){…} body() { self.setColour(ev.colour); @sleep(5); @reply(ev,fev.finished(self.paintColour)); } public plan PaintAnyColour extends Plan { #handles event Paint ev; #sends event Finished fev; #uses interface Robot self; body() { }

69 Part Agent Robot Agent public class Program {
public static void main( String args[] ) { Robot robot1 = new Robot("robot23"); Part part1 = new Part("part1"); Part part2 = new Part("part2"); Part part3 = new Part("part3"); Part part4 = new Part("part4"); System.out.println("test with red"); part1.submitPaintRequest("robot23","red"); System.out.println("test with no specified colour (null)"); part2.submitPaintRequest("robot23",null); System.out.println("test with white"); part3.submitPaintRequest("robot23","white"); System.out.println("test with white again"); part4.submitPaintRequest("robot23","white"); } Part Agent (1)Send Event: PaintRequest (2)Use Plan: SendPaintCommand (5)Reply Event: Finished (3)Send Event: Paint Robot Agent (4)Select Plan: PaintSpecifiedNewColour

70

71 Using JACK has handle Agent Capability Event send post use Event Plan
Based on JACK platform? Adopt the concepts in JACK Agent language? has handle Agent Capability Event send post use Event Plan use Plan data BeliefSet member

72 Resumo: JACK Suporta a construção de agentes através de uma linguagem: “JACK Agent Language” A JACK Agent Language adopta conceitos de uma arquitectura BDI A classe base “Agent” é central na liguagem JACK, e através dela definem-se as crenças, os planos os eventos internos e externos importantes para o agente, bem como as suas capacidades. Os agentes seleccionam as acções que querem fazer usando um gestor de tarefas (interno e que é dado pela plataforma). As crenças dos agentes representam o que o agente acredita acerca do mundo.

73 The benefits of JACK(1) Based on JAVA runtime environment, supporting strong typing, version control, and high performance Modular approach for AI researcher: most components of the framework can be tuned and tailored. For engineers: -rapid application development -mental attitudes of BDI architecture -distributed system development -integration with legacy system

74 Conclusões Notas finais:
Embora futuramente os agentes poderão ser bastante úteis para os utilizadores humanos, realizando tarefas em nome desses utilizadores (e.g. compras online, pesquisa de informação, pagamento de contas, etc.)... ainda não há uma plataforma de facto que seja a melhor e mais usada no mercado. As plataformas existentes são ainda bastante limitadas. Por outro lado... os agentes não são os “salvadores da pátria”. Apenas são apropriados na implementação de um certo tipo de aplicações (agent-based applications). Noutros domínios outras tecnologias serão mais apropriadas


Carregar ppt "Questões O que são ferramentas para construção de agentes? Que tipos de agentes e que tipos de ferramentas existem? Que tipo de sistemas (aplicações) posso."

Apresentações semelhantes


Anúncios Google