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

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

Programação Orientada a Agentes

Apresentações semelhantes


Apresentação em tema: "Programação Orientada a Agentes"— Transcrição da apresentação:

1 Programação Orientada a Agentes
Ana Carla Santos Flávia Amaral Jin Jing Yi

2 Kasbah: virtual marketplace
Como implementar? Ciclos Fatores Humanos Ações bobas Experiência Positiva Fechar Negociação Novas Implementações Data Máxima Preço Desejável Preço Mínimo Função de decaimento de Preço

3 AOP Ferramentas, técnicas e metáforas para melhorar a forma com que as pessoas concebem e implementam uma variedade de software

4 Os Agentes do Sistema Descobrir quais são os agentes do sistema...
Implementar usando uma estrutura de software para agentes!

5 Agente x Multi-Agente Cooperação Coordenação Negociação

6 Engenharia de Software baseada em Agentes
Programas desenvolvidos por várias pessoas, em linguagens diferentes provendo interfaces diversas. Agentes de Software, componentes de software que se comunicam através de uma linguagem de comunicação de Agentes. Um Agente provê uma interface independente de seus dados e algoritmos

7 Engenharia de Software baseada em Agentes
Linguagem de Comunicação Universal Problemas das linguagens procedimentais Informações sobre o receptor não estão disponíveis para o transmissor Unidirecional Abordagem Declarativa Troca de sentenças Compacta e Expressiva

8 ACL Vocabulário Inner language - KIF Outer language - KQML Dicionário
Múltiplas Ontologias Inner language - KIF Representação de conhecimento Lógica de Predicado de Primeira Ordem Outer language - KQML Comunicação entre Agentes Contexto

9 Aplicações Controle de Processos Telecomunicações
Controle de Tráfego Aéreo Comércio Eletrônico Jogos Monitoramento de Pacientes

10 OOP vs.AOP

11 Sistemas baseados em Agentes
Aqueles que empregam, em alguma das fases de desenvolvimento ( análise, projeto ou implementação), a abstração de agentes.

12 Armadilhas no Desenvolvimento Orientado a Agentes
Pouco esforço dedicado ao entendimento de como desenvolver sistemas baseados em agentes Tecnologia imatura e ainda não testada suficientemente Desenvolvedores tendem a cair nas mesmas “armadilhas”

13 Armadilhas Achar que os agentes resolvem tudo
Não saber para que agentes Querer construir soluções gerais para problemas específicos Confundir protótipos com sistemas

14 Armadilhas Confundir “palavras badaladas” com conceitos
Esquecer que está desenvolvendo software Não pesquisar a tecnologia relacionada

15 Armadilhas Não explorar concorrência Ignorar os padrões ‘de fato’
Decidir criar sua própria arquitetura de agentes Pensar que sua arquitetura é genérica

16 Armadilhas Utilizar muita IA Não utilizar IA
Utilizar agentes para tudo Utilizar agentes demais Utilizar poucos agentes

17 Uma metodologia para Análise Orientada a Agentes
Sistema de segurança protocolos responsabilidades permissões de sobrevivência Papel

18 Modelagem dos Papéis Os papéis identificam as principais funções do sistema Na fase de projeto, cada papel será associado a um ou mais agentes Exemplo: Num escritório, alguns papéis seriam: Secretária CofeeFiller (Preenchedor de café)

19 Papéis (Roles) São caracterizados por três tipos de atributos:
Permissões informações ou conhecimento disponível ao agente Protocolos ações que o agente é capaz de executar Responsabilidades o que o agente deve fazer e manter como invariante

20 Exemplo: CoffeeFiller
Permissões leitura coffeeMaker (nome do coffee maker) coffeeStatus (full or empty) escrita coffeeStock (nível da garrafa de café)

21 Exemplo: CoffeeFiller
Protocolos Fill InformWorkers CheckStock AwaitEmpty

22 Exemplo: CoffeeFiller
Responsabilidades de sobrevivência (liveness) sempre que o café acabar, preencha sempre que preencher informe os empregados CofeeFiller=(Fill.InformWorkers.CheckStock.AwaitEmpty) de segurança (safety) coffeeStock  0

23 Expressões de Sobrevivêmcia
Define o ciclo de vida de um papel São essencialmente expressões regulares x.y x seguido de y x|y x ou y ocorre x* x ocorre 0 ou mais vezes x+ x ocorre 1 ou mais vezes x x ocorre infinitamente [x] x é opcional x||y x e y se sobrepõem

24 Esquema do Papel ROLE SCHEMA: CoffeeFiller PROTOCOLS: Fill, InformWorkers, CheckStock, AwaitEmpty PERMISSIONS: reads coffeeMaker //name of the coffee maker coffeeStatus //full or empty changes coffeeStock // stock level of coffee RESPONSABILITIES LIVENESS: CofeeFiller=(Fill.InformWorkers.CheckStock.AwaitEmpty) SAFETY: coffeeStock  0 DESCRIPTION: This role involves ensuring that coffee is kept filled, and informing the workers when fresh coffee has been brewed.

25 Processo de Análise Identificar os papéis do sistema
Para cada papel, identificar e documentar os protocolos Elaborar o modelo de cada papel

26 Uma vez tudo bem claro, como implementar?
Linguagem de uso geral (OOP) + vários pacotes (JatLite, JEOPS, ...) Linguagem específica para AOP

27 Componentes de estado mental de um agente
Decisão (ou escolha) - O que determina a ação de um agente. Crença - O que restringe a decisão de um agente, embora não determina. Capacidade - O que determina a decisão de um agente.

28 Exemplo Um robô tem como missão ir de A até B:
capacidade: mover-se em todas as direções e perceber o ambiente através de sensores. decisão: mover-se na direção do B enquanto o caminho estiver livre. Encontra uma passagem estreita: crença: não é capaz de passar. decisão: procurar outro caminho.

29 Uma linguagem de especificação de agentes
Tempo segurar(robob, copo) t Ação levantar_braço(robob) t Crença Bat  Ex.: Ba3 Bb10 gosta(a,b) 7

30 Uma linguagem de especificação de agentes
Obrigação OBLa,bt  Decisão DECat  =def OBLa,at  Capacidade CANat  ABLEa  = CANatime() 

31 Restrições das componentes mentais
Consistência interna - todas crenças e obrigações devem ser consistentes entre si. Boa fé - o agente deve executar ações que ele crê que é capaz. Introspecção - o agente deve estar ciente das suas obrigações. Persistência do estado mental - o agente deve permanecer no estado mental até que uma proposição contrária aconteça.

32 Programação em agentes
O papel de um programa orientado a agentes é controlar a evolução do estado mental dos agentes.

33 Estrutura de um interpretador de agentes genérico
Atualizar estado mental Representação do estado mental e capacidade Executar obrigações no tempo atual Clock Inicialização mensagem de saída mensagem de entrada

34 Agent-0: primeira linguagem orientada a agentes
Sintaxe Comandos de fatos Comandos de ação privada Comandos de ação comunicativa Comandos de ação condicional Variáveis Regras de compromisso

35 Agent Builder

36 Agent Builder

37 Conclusões Estudar o problema para definir que metodologia usar
Usar um bom ambiente de desenvolvimento

38 Referências Shoham, Yoav. Agent-oriented programming, in Reading in Agents. Stanford University, 1992. Chavez, Antony and Maes, Pattie. Kasbah: an agent marketplace for buying and selling goods. MIT Media Lab, 1996. Wooldridge, Michael and Jennings, Nicholas R.. Pitfalls of agent-oriented development. University of Lodon, 1998.

39 Referências Wooldridge, Michael; Jennings, Nicholas R. and Kinny, David. A methodology for agent-oriented analysis and design. University of Lodon and University of Melbourne, 1999. Jennings, Nicholas R.; Sycara, Katia and Wooldridge, Michael. A roadmap of agent reseach and development. University of Lodon and Carnegie-Mellon University, 1995.

40 Referências Chavez, Antony; Dreilinger, Daniel; Guttman, Robert and Maes, Pattie. A real-time experiment in creating na agent maketplace. MIT Media Lab, 1997. Davies, Winton H. E and Edwards, Peter. Agent-K: an integration of AOP and KQML. University of Aberdeen, 1995. Genesereth, Michael and Ketchpel, Steven P.. Software Agents. Stanford University, 1993.


Carregar ppt "Programação Orientada a Agentes"

Apresentações semelhantes


Anúncios Google