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.
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
AOP
Ferramentas, técnicas e metáforas para melhorar a forma com que as pessoas concebem e implementam uma variedade de software
Os Agentes do Sistema
Sistema
Descobrir quaissão os agentes do sistema...
Implementar usando umaestrutura de software paraagentes!
CooperaçãoCoordenaçãoNegociação
Agente x Multi-Agente
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
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
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
Aplicações
Controle de Processos Telecomunicações Controle de Tráfego Aéreo Comércio Eletrônico Jogos Monitoramento de Pacientes
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
Sistemas baseados em Agentes
Aqueles que empregam, em alguma das fases de desenvolvimento ( análise, projeto ou implementação), a abstração de agentes.
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”
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
Armadilhas
Confundir “palavras badaladas” com conceitos
Esquecer que está desenvolvendo software
Não pesquisar a tecnologia relacionada
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
Armadilhas
Utilizar muita IA Não utilizar IA Utilizar agentes para tudo Utilizar agentes demais Utilizar poucos agentes
Uma metodologia para Análise Orientada a Agentes
Sistema
de segurança
protocolosresponsabilidadespermissões
de sobrevivência
Papel
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é)
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
Exemplo: CoffeeFiller
Permissões– leitura
coffeeMaker (nome do coffee maker) coffeeStatus (full or empty)
– escrita coffeeStock (nível da garrafa de café)
Exemplo: CoffeeFiller
Protocolos– Fill– InformWorkers– CheckStock– AwaitEmpty
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
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
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.
Processo de Análise
Identificar os papéis do sistema Para cada papel, identificar e
documentar os protocolos Elaborar o modelo de cada papel
Uma vez tudo bem claro, como implementar?
Linguagem de uso geral (OOP) + vários pacotes (JatLite, JEOPS, ...)
Linguagem específica para AOP
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.
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.
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
Uma linguagem de especificação de agentes
Obrigação– OBLa,b
t Decisão
– DECat =def OBLa,a
t Capacidade
– CANat
– ABLEa = CANa
time()
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.
O papel de um programa orientado a agentes é controlar a evolução do estado mental dos agentes.
Programação em agentes
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
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
Agent Builder
Agent Builder
Conclusões
Estudar o problema para definir que metodologia usar
Usar um bom ambiente de desenvolvimento
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.
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
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