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

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

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

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

Programação Orientada a Agentes

Ana Carla Santos

Flávia Amaral

Jin Jing Yi

Page 2: Programação Orientada a Agentes Ana Carla Santos Flávia Amaral Jin Jing Yi.

Kasbah: virtual marketplace

Como implementar?

• Data Máxima• Preço Desejável• Preço Mínimo• Função de decaimento de Preço

• Ciclos• Fatores Humanos• Ações bobas•Experiência Positiva• Fechar Negociação• Novas Implementações

Page 3: Programação Orientada a Agentes Ana Carla Santos Flávia Amaral Jin Jing Yi.

AOP

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

Page 4: Programação Orientada a Agentes Ana Carla Santos Flávia Amaral Jin Jing Yi.

Os Agentes do Sistema

Sistema

Descobrir quaissão os agentes do sistema...

Implementar usando umaestrutura de software paraagentes!

Page 5: Programação Orientada a Agentes Ana Carla Santos Flávia Amaral Jin Jing Yi.

CooperaçãoCoordenaçãoNegociação

Agente x Multi-Agente

Page 6: Programação Orientada a Agentes Ana Carla Santos Flávia Amaral Jin Jing Yi.

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

Page 7: Programação Orientada a Agentes Ana Carla Santos Flávia Amaral Jin Jing Yi.

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

Page 8: Programação Orientada a Agentes Ana Carla Santos Flávia Amaral Jin Jing Yi.

ACL

Vocabulário– 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

Page 9: Programação Orientada a Agentes Ana Carla Santos Flávia Amaral Jin Jing Yi.

Aplicações

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

Page 10: Programação Orientada a Agentes Ana Carla Santos Flávia Amaral Jin Jing Yi.

OOP vs.AOP

Basic unit object agent

Parametersdefining state ofbasic unit

unconstrained beliefs,commitments,capabilities,choices, ...

Process ofcomputation

message passingand responsemethods

message passingand responsemethods

Types of message unconstrained inform, request,offer, promise,decline, ...

Constraints onmethods

none honetry,consistency

Page 11: Programação Orientada a Agentes Ana Carla Santos Flávia Amaral Jin Jing Yi.

Sistemas baseados em Agentes

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

Page 12: Programação Orientada a Agentes Ana Carla Santos Flávia Amaral Jin Jing Yi.

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”

Page 13: Programação Orientada a Agentes Ana Carla Santos Flávia Amaral Jin Jing Yi.

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

Page 14: Programação Orientada a Agentes Ana Carla Santos Flávia Amaral Jin Jing Yi.

Armadilhas

Confundir “palavras badaladas” com conceitos

Esquecer que está desenvolvendo software

Não pesquisar a tecnologia relacionada

Page 15: Programação Orientada a Agentes Ana Carla Santos Flávia Amaral Jin Jing Yi.

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

Page 16: Programação Orientada a Agentes Ana Carla Santos Flávia Amaral Jin Jing Yi.

Armadilhas

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

Page 17: Programação Orientada a Agentes Ana Carla Santos Flávia Amaral Jin Jing Yi.

Uma metodologia para Análise Orientada a Agentes

Sistema

de segurança

protocolosresponsabilidadespermissões

de sobrevivência

Papel

Page 18: Programação Orientada a Agentes Ana Carla Santos Flávia Amaral Jin Jing Yi.

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

Page 19: Programação Orientada a Agentes Ana Carla Santos Flávia Amaral Jin Jing Yi.

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

Page 20: Programação Orientada a Agentes Ana Carla Santos Flávia Amaral Jin Jing Yi.

Exemplo: CoffeeFiller

Permissões– leitura

coffeeMaker (nome do coffee maker) coffeeStatus (full or empty)

– escrita coffeeStock (nível da garrafa de café)

Page 21: Programação Orientada a Agentes Ana Carla Santos Flávia Amaral Jin Jing Yi.

Exemplo: CoffeeFiller

Protocolos– Fill– InformWorkers– CheckStock– AwaitEmpty

Page 22: Programação Orientada a Agentes Ana Carla Santos Flávia Amaral Jin Jing Yi.

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

Page 23: Programação Orientada a Agentes Ana Carla Santos Flávia Amaral Jin Jing Yi.

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 ocorrex* x ocorre 0 ou mais vezes x+ x ocorre 1 ou mais vezesx x ocorre infinitamente [x] x é opcionalx||y x e y se sobrepõem

Page 24: Programação Orientada a Agentes Ana Carla Santos Flávia Amaral Jin Jing Yi.

Esquema do Papel

ROLE SCHEMA: CoffeeFiller

PROTOCOLS: Fill, InformWorkers, CheckStock, AwaitEmptyPERMISSIONS: 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.

Page 25: Programação Orientada a Agentes Ana Carla Santos Flávia Amaral Jin Jing Yi.

Processo de Análise

Identificar os papéis do sistema Para cada papel, identificar e

documentar os protocolos Elaborar o modelo de cada papel

Page 26: Programação Orientada a Agentes Ana Carla Santos Flávia Amaral Jin Jing Yi.

Uma vez tudo bem claro, como implementar?

Linguagem de uso geral (OOP) + vários pacotes (JatLite, JEOPS, ...)

Linguagem específica para AOP

Page 27: Programação Orientada a Agentes Ana Carla Santos Flávia Amaral Jin Jing Yi.

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.

Page 28: Programação Orientada a Agentes Ana Carla Santos Flávia Amaral Jin Jing Yi.

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.

Page 29: Programação Orientada a Agentes Ana Carla Santos Flávia Amaral Jin Jing Yi.

Uma linguagem de especificação de agentes

Tempo– segurar(robob, copo) t

Ação– levantar_braço(robob) t

Crença– Ba

t

– Ex.: Ba3 Bb

10 gosta(a,b) 7

Page 30: Programação Orientada a Agentes Ana Carla Santos Flávia Amaral Jin Jing Yi.

Uma linguagem de especificação de agentes

Obrigação– OBLa,b

t Decisão

– DECat =def OBLa,a

t Capacidade

– CANat

– ABLEa = CANa

time()

Page 31: Programação Orientada a Agentes Ana Carla Santos Flávia Amaral Jin Jing Yi.

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.

Page 32: Programação Orientada a Agentes Ana Carla Santos Flávia Amaral Jin Jing Yi.

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

Programação em agentes

Page 33: Programação Orientada a Agentes Ana Carla Santos Flávia Amaral Jin Jing Yi.

Estrutura de um interpretador de agentes genérico

Atualizarestado mental

Representaçãodo estado mental

e capacidade

Executar obrigaçõesno tempo atual

Clock

Inicializaçãodo estado mental

mensagem de saída

mensagem de entrada

Page 34: Programação Orientada a Agentes Ana Carla Santos Flávia Amaral Jin Jing Yi.

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

Page 35: Programação Orientada a Agentes Ana Carla Santos Flávia Amaral Jin Jing Yi.

Agent Builder

Page 36: Programação Orientada a Agentes Ana Carla Santos Flávia Amaral Jin Jing Yi.

Agent Builder

Page 37: Programação Orientada a Agentes Ana Carla Santos Flávia Amaral Jin Jing Yi.

Conclusões

Estudar o problema para definir que metodologia usar

Usar um bom ambiente de desenvolvimento

Page 38: Programação Orientada a Agentes Ana Carla Santos Flávia Amaral Jin Jing Yi.

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.

Page 39: Programação Orientada a Agentes Ana Carla Santos Flávia Amaral Jin Jing Yi.

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.

Referências

Page 40: Programação Orientada a Agentes Ana Carla Santos Flávia Amaral Jin Jing Yi.

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.

Referências