Académique Documents
Professionnel Documents
Culture Documents
O que é (JaCaMo) ?
● http://jacamo.sourceforge.net/
Framework JaCaMo
O que é (JaCaMo) ?
● http://jacamo.sourceforge.net/
Framework JaCaMo
Instalação do Framework.
Framework JaCaMo
Instalação do Framework.
Framework JaCaMo
Instalação do Framework.
http://jacamo.sourceforge.net/eclipseplugin/juno
Framework JaCaMo
Estrutura do projeto
Código da especificação da
organização
Estrutura do projeto
Jason
Moise
Código da especificação da
organização CArtAgO
Ambiente interno:
representado pelos
artefatos que podem
representar interface para CArtAgO
o ambiente externo
Ambiente externo:
representado por hardware
e software externo ao
sistema
Linguagem de
programação: JAVA
Programação orientada à agentes
Jason
Os agentes fazem uso dos
artefatos para atuar ou
perceber o ambiente
Caracterizados por:
- pró-atividade
- habilidade social
- autonomia
Linguagem de
programação: Agent
Speak.
Programação orientada à agentes
Agentes cooperam e
Moise
constituem organizações.
Os agentes assumem
papéis e são encarregados
de executar missões.
Arquivos de especificação:
XML
Programação orientada aos agentes BDI (Jason).
"HelloWorld" em Jason
Programação orientada aos agentes BDI (Jason).
Desejo inicial:
Alcançar o objetivo "start".
Base de planos:
Crenças iniciais:
No exemplo nenhuma.
Representam o estado
informacional acerca dele
mesmo, de outros agentes ou
do ambiente.
Programação orientada aos agentes BDI (Jason).
Crenças em Jason podem ser escrita a partir da composição de literais da lógica de primeira
ordem.
Exemplo:
Literais em letras
raining. // Está chovendo. minúsculas são
sempre constantes
name(renato). // O nome é Renato.
O Agente acredita
inicialmente nestes
fatos!
Programação orientada aos agentes BDI (Jason).
● Adicionadas ( + )
● Removidas ( - )
● Atualizadas ( - + )
Exemplo:
Importante:
As diferentes ações no
corpo de um plano são
separadas por ;
Programação orientada aos agentes BDI (Jason).
Ok mas e as crenças ?
Programação orientada aos agentes BDI (Jason).
Mind Inspector!
Programação orientada aos agentes BDI (Jason).
Agentes do Crenças
sistema. atuais
Programação orientada aos agentes BDI (Jason).
Planos em AgentSpeak:
+ : significa que um novo objetivo foi "lançado" ( o agente deseja atingir um objetivo).
- : significa que o objetivo não pôde ser alcançado (falha durante a execução de um
plano, ou nenhum contexto válido).
! : plano para obtenção de um objetivo (realização de uma ação)
? : plano para consulta ou unificação de valores em variáveis.
Programação orientada aos agentes BDI (Jason).
Planos em AgentSpeak:
Planos em AgentSpeak:
Planos em AgentSpeak:
Corpo do plano: representa as ações que o agente fará durante a execução deste plano.
Importante: planos pode apresentar objetivos de subplanos em seu corpo!
Programação orientada aos agentes BDI (Jason).
Importante:
Importante:
Importante:
Intenção
atual
Próximo
ciclo
Reasoning
Cycle
Programação orientada aos agentes BDI (Jason).
Nova intenção
a ser empilhada
Programação orientada aos agentes BDI (Jason).
Contextos ou consultas mais elaboradas podem ser realizadas usando operadores lógicos e
relacionais
Lógicos Relacionais
E(&) igual ( == )
OU ( | ) diferente ( \== )
menor ( < )
Planos relacionados a
"checkTemperature"
Programação orientada aos agentes BDI (Jason).
Planos podem não ser executados se caso o contexto não é válido. Nestes casos, sugere-
se um tratamento utilizando o evento remoção ( - ).
Exemplo:
Se o plano associado a
"goByCar" falhar, o agente
encerra sua execução sem que
nenhuma ação seja executada.
Programação orientada aos agentes BDI (Jason).
Criando um novo
agente.
Arquivo de configuração
com o novo agente.
Programação orientada aos agentes BDI (Jason).
.broadcast(performativa, valor).
Performativas:
O agente receptor pode, ou não, tratar este evento relacionado à comunicação com outro
agente. No exemplo a seguir será apresentado como ocorre o tratamento de um evento de
comunicação.
1) James ao inicial a execução de seu primeiro plano envia a crença "hi" para o sample_agent.
O agente receptor pode, ou não, tratar este evento relacionado à comunicação com outro
agente. No exemplo a seguir será apresentado como ocorre o tratamento de um evento de
comunicação.
O agente receptor pode, ou não, tratar este evento relacionado à comunicação com outro
agente. No exemplo a seguir será apresentado como ocorre o tratamento de um evento de
comunicação.
Neste exemplo será demonstrado como ocorre a comunicação pela performativa "achieve".
1) James ao iniciar a execução de seu primeiro plano envia a crença "hi" para o sample_agent.
Aguarda um tempo e solicita a execução do plano "checkTemperature"
Neste exemplo será demonstrado como ocorre a comunicação pela performativa "tellHow".
1) sample_agent irá "ensinar" um novo plano para james e em seguida solicitará sua
execução a partir da performativa "achieve"
Neste exemplo será demonstrado como ocorre a comunicação pela performativa "tellHow".
1) sample_agent irá "ensinar" um novo plano para james e em seguida solicitará sua
execução a partir da performativa "achieve"
Neste último exemplo de comunicação será demonstrado como ocorre a comunicação pela
performativa "askOne".
1) James ao iniciar a execução de seu primeiro plano envia a crença "hi" para o sample_agent.
Aguarda um tempo e solicita a execução do plano "checkTemperature" e por fim, deseja saber o
valor da temperatura. Nesta performativa o agente recebe como resposta uma nova crença.
São operações extras que os agentes podem realizar fora as ações comuns já pré-definidas
na Linguagem AgentSpeak.
http://jason.sourceforge.net/api/jason/stdlib/package-summary.html
Programação orientada aos agentes BDI (Jason).
Listas:
Além disso, existe um comando muito importante que apresenta como retorno uma lista de
todos os valores das crenças consultadas. Seu nome é .findAll.
Programação orientada aos agentes BDI (Jason).
BORDINI, R., HUBNER, J. F., VIEIRA, R. Jason and the Golden Fleece of Agent-Oriented
Programming. Springer US, 2005.
RAO, A. S. AgentSpeak(L): BDI agents speak out in a logical computable language. Proceedings
of the Seventh Workshop on Modelling Autonomous Agents in a Multi-Agent World (MAAMAW’
96), 22–25 January, Springer-Verlag, 1996.
Até então, foram apresentados agentes que executam seus planos exclusivamente sobre
suas crenças iniciais.
Seria interessante que o agente pudesse obter o valor da temperatura atual do dia ou que
pudesse via sensores determinar em que posição estou da terra.
Propriedades internas
aos artefatos mapeadas
para a base de crença
dos agentes.
Programação orientada ao ambiente (CArtAgO).
Permite a programação
entre artefatos
distribuídos
possibilitando a
passagem de valores
ou execução de
operação entre
diferentes artefatos
Programação orientada ao ambiente (CArtAgO).
Abstração
Programação orientada ao ambiente (CArtAgO).
A definição das
propriedades observáveis
é feita pelo método
destacado.
Programação orientada ao ambiente (CArtAgO).
Um artefato pode
apresentar zero ou mais
propriedades observáveis
Programação orientada ao ambiente (CArtAgO).
O artefato foi criado, mas nada aparentemente mudou o comportamento dos agentes, isso é
normal ?
Sim, pois o artefato é uma entidade funcional e não é pró-ativa! O que significa que somente os
agentes podem determinar a execução de suas operações, pelo menos por enquanto...
Programação orientada ao ambiente (CArtAgO).
Depois de executada
operação "focus" mapeia a
propriedade observável para
a base de crenças do agente
Programação orientada ao ambiente (CArtAgO).
Após a execução de
"inc"
Programação orientada ao ambiente (CArtAgO).
Recepção de sinais
Programação orientada ao ambiente (CArtAgO).
Recepção de sinais
Programação orientada ao ambiente (CArtAgO).
Observável "count" mapeada
Utilizando o seu artefato. foi incrementada
Após a execução de
"inc"
O sinal não é
mapeado na
base de crenças
do agente!
Programação orientada ao ambiente (CArtAgO).
● O artefato deve inicialmente ser criado por um dos agentes dos sistemas.
● Os demais agentes terão acesso às operações, sinais e propriedades observáveis.
● Uma vez criado os demais agentes devem localizar o artefato no espaço de trabalho.
Programação orientada ao ambiente (CArtAgO).
O agente hubble deseja utilizar o artefato "counter". Primeiro ele procurará o artefato.
O agente procura o
artefato. Se encontrar
irá visualizá-lo, Senão
irá procurar novamente.
Programação orientada ao ambiente (CArtAgO).
O agente hubble deseja utilizar o artefato "counter". Primeiro ele procurará o artefato.
Identificador Identificador
CArtAgO
RICCI A., PIUNTI, M., ACAY L. D., BORDINI R., HUBNER J., and DASTANI M. Integrating artifact-based environments
with heterogeneous agent-programming platforms. In Proceedings of 7th International Conference on Agents and Multi
Agents Systems (AAMAS08), 2008.
RICCI, A.; PIUNTI, M.; VIROLI, M. Environment Programming in Multi-Agent Systems – An Artifact-Based Perspective,
2010.
Documentação e API
● http://cartago.sourceforge.net/?page_id=6
● CArtAgO by Examples.
Exemplo de implementação.
Definição do problema:
Exemplo de implementação.
Ambiente :
- Representação em Java.
- Propriedades observáveis.
- Sinais.
- Operações.
Agentes:
- Crenças
- Desejos
- Intenções.
Exemplo de implementação.
Agentes:
- Crenças
- Desejos
- Intenções.
Exemplo de implementação.
Ambiente :
- Representação em Java.
- Propriedades observáveis.
- Sinais. Posição atual do robô é uma propriedade
- Operações. interessante que será mapeada diretamente na base
de crenças do agente.
Agentes:
- Crenças
- Desejos
- Intenções.
Exemplo de implementação.
Ambiente :
- Representação em Java.
- Propriedades observáveis.
- Sinais.
Notificação de quando um lixo é encontrado na sala
- Operações.
onde o robô se encontra.
Ambiente :
- Representação em Java.
- Propriedades observáveis.
- Sinais.
- Operações. As ações que o robô executará (ir para direita, ir para
esquerda e aspirar).
Agentes:
- Crenças
- Desejos
- Intenções.
Exemplo de implementação.
Programando o ambiente.
Jacamo.
Exemplo de implementação.
Programando o ambiente.
Programando o ambiente.
Programando o ambiente.
Programando o ambiente.
4) Programando as operações e
sinais do artefato
Exemplo de implementação.
Ambiente :
- Representação em Java.
- Propriedades observáveis.
- Sinais.
- Operações.
Agentes:
Ambiente :
- Representação em Java.
- Propriedades observáveis.
- Sinais.
- Operações.
Agentes:
- Crenças
- Desejos Procurar lixo.
Limpar o lixo.
- Intenções.
Exemplo de implementação.
Ambiente :
- Representação em Java.
- Propriedades observáveis.
- Sinais.
- Operações. Se o robô estiver na sala 0, ir para a sala 1
Programando o agente
Programando o agente
Limpa a pilha de
intenções evitando
retorno recursivo.
Exemplo de implementação.
Programando o agente
Observável do artefato
Exemplo de implementação.
Programando o agente
Operações do artefato
Exemplo de implementação.
Programando o agente
Sinal do artefato
Exemplo de implementação.
Ok, mas até então o ambiente é determinístico e estático, isso significa que o seu estado
não se altera ao longo do tempo.
Adicionaremos um fator aleatório para permitir com que as salas apresentem lixo ao longo
do tempo.
No novo modelo, a cada 4 segundos existe 70% de probabilidade de uma sala tornar-se
suja. Dessa forma, estaremos criando um ambiente dinâmico e estocástico para o nosso
agente.
Exemplo de implementação.
Reprogramando o
ambiente.
Reprogramando o
ambiente.
Reprogramando o ambiente.