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
Implementar usando uma
estrutura de software para
agentes!
Descobrir quais
são os agentes
do sistema...
Agente x Multi-Agente
Cooperação
Coordenação
Negociação
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
Parameters
defining state of
basic unit
unconstrained
agent
beliefs,
commitments,
capabilities,
choices, ...
Process of
message passing message passing
computation
and response
and response
methods
methods
Types of message unconstrained
inform, request,
offer, promise,
decline, ...
Constraints on
none
honetry,
methods
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
Papel
permissões
responsabilidades
de sobrevivência
protocolos
de segurança
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


x.y
x*
x
x||y
Define o ciclo de vida de um papel
São essencialmente expressões
regulares
x seguido de y
x ocorre 0 ou mais vezes
x ocorre infinitamente
x e y se sobrepõem
x|y
x+
[x]
x ou y ocorre
x ocorre 1 ou mais vezes
x é opcional
Esquema do Papel
ROLE SCHEMA:
CoffeeFiller
DESCRIPTION: This role involves ensuring that coffee is kept filled, and
informing the workers when fresh coffee has been brewed.
Fill, InformWorkers, CheckStock, AwaitEmpty
PERMISSIONS: reads
coffeeMaker
//name of the coffee maker
coffeeStatus
//full or empty
changes coffeeStock
// stock level of coffee
PROTOCOLS:
RESPONSABILITIES
LIVENESS:
CofeeFiller=(Fill.InformWorkers.CheckStock.AwaitEmpty)
SAFETY:
coffeeStock  0
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
– Bat 
– Ex.: Ba3 Bb10 gosta(a,b) 7
Uma linguagem de
especificação de agentes

Obrigação
– OBLa,bt 

Decisão
– DECat  =def OBLa,at 

Capacidade
– CANat 
– ABLEa  = CANatime() 
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.
Programação em agentes

O papel de um programa orientado
a agentes é controlar a evolução
do estado mental dos agentes.
Estrutura de um interpretador de
agentes genérico
Inicialização
do estado mental
Clock
Atualizar
estado mental
Executar obrigações
no tempo atual
mensagem de entrada
Representação
do estado mental
e capacidade
mensagem de saída
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.
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.
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.
Download

Programação Orientada a Agentes