13/04/2011
1
4ª Aula – Programação
Orientada a Agentes
Luciano Reis Coutinho, [email protected]
22Sistemas Multiagentes
4ª Aula – Programação Orientada a Agentes
Agentes Racionais+ maximizar função desempenho
r : ... perceber DECIDIR agir ...
Objetivamente, Medida de Desempenho é uma função
f: R D
Projetista Agente
Funções de Utilidade
Predicados de Tarefas
33Sistemas Multiagentes
4ª Aula – Programação Orientada a Agentes
Agentes Racionais+ maximizar função desempenho
Agentes Reativos Puros+ percepção ação
Agentes Cognitivos+ percepção estado ação
Agentes BDI+ percepção crenças,
desejos,intenções,planos ação
Agentes Lógicos+ percepção estado,
dedução ação
Agentes Deliberativos
44Sistemas Multiagentes
4ª Aula – Programação Orientada a Agentes
O que percebo ? Que ação tomar ?
Regras={Percepção Ação}
Agentes Reativos Puros
... Estado Ação ...
55Sistemas Multiagentes
4ª Aula – Programação Orientada a Agentes
... Estado Ação ...
Lógico Dedução Lógica
Prático Deliberação Planejamento
Raciocínio
O que percebo ?
Revisão
Que ação tomar ?
EstadoCognitivo
Agentes Cognitivos/Deliberativos
66Sistemas Multiagentes
4ª Aula – Programação Orientada a Agentes
Raciocínio Lógico (visão sintática)◦ Linguagem Formal : ℒ
◦ Regras de Dedução :
◦ Lógica Dedutiva : ℒ ,
◦ Inferência Lógica : ⊢ ( ℒ implica ℒ )
...
13/04/2011
2
77Sistemas Multiagentes
4ª Aula – Programação Orientada a Agentes
Agente Lógico-Dedutivo
Deduzir o que fazer
⊢ action : (ℒ) Ac
Am
bie
nte
Agente sensores
atuadores
O que percebo ?
EstadoCognitivo
Revisar o que sei ...
see : E Per
next : (ℒ) × Per (ℒ)
ℒ
88Sistemas Multiagentes
4ª Aula – Programação Orientada a Agentes
Raciocínio Prático:
DELIBERAÇÃO
(O QUE)
PLANEJAMENTO
(COMO)
ValoresCrençasDesejosEmoções...
Intenções
MetasPlanosAções...
99Sistemas Multiagentes
4ª Aula – Programação Orientada a Agentes
Agente BDI
options : (Bel) × (Int) (Des)Bel
Des
Int
Deliberar o que fazer
Intenções
Desejos
Planejar como fazer Plano
O que percebo ?
see : E Per
Executar
filter : (Bel) × (Des) × (Int) (Int)
brf : (Bel) × Per (Bel)
plan: (Bel) × (Int) × (Ac) Plan
Crenças
Revisar o que sei ...
1010Sistemas Multiagentes
4ª Aula – Programação Orientada a Agentes
Exemplos de Implementações◦ PRS (Procedural Reasoning System) Georgeff, M. and Ingrand, F. (1989) Decision-making in an
embedded reasoning system. In Proc. IJCAI’89, pp. 972-978.
◦ UM-PRS (C++), JAM! (Java), ...
◦ JASON (Interpretador AgentSpeak(L) escrito em Java) Bordini, R., Hübner, J. and Vieira, R. (2005). Jason and the
Golden Fleece of Agent-Oriented Programming. In Bordini et al. Multi-agent programming languages, platforms and application. Springer.
◦ JADEX (Framework BDI usado na plataforma JADE) Pokahr, A., Brauhach, L., and Lamersdorf, W. (2005) Jadex: A BDI
Reasoning Engine. In Bordini et al. Multi-agent programming languages, platforms and application. Springer.
1111Sistemas Multiagentes
4ª Aula – Programação Orientada a Agentes
Programação Orientada a Agentes◦ Plataformas e Interpretadores
◦ Comunicação e Ambientes
◦ Distribuição
Jason, Interpretador AgentSpeak(L)◦ Linguagem AgentSpeak(L)
◦ Semântica Operacional
◦ Ambiente Simulado
Leituras Recomendadas
1212Sistemas Multiagentes
4ª Aula – Programação Orientada a Agentes
Termo introduzido por Y. Shoham◦ SHOHAM, Y. (1993) Agent-oriented programming. Artificial
Intelligence 60: 51-92.
Linguagens Orientadas a Agentes◦ Agent0 (SHOHAM 1993)◦ AgentSpeak(L) (Rao 1996)◦ 3APL (Hindriks etal. 1999)◦ Brahms (Sierhuis 2001)◦ ...
◦ Bordini etal (2005) Multi-agent programming: languages, platforms and applications. Springer.
◦ Bordini etal (2009) Multi-agent programming: languages, tools and applications. Springer.
13/04/2011
3
1313Sistemas Multiagentes
4ª Aula – Programação Orientada a Agentes
Arquitetura
Programa
Interpretador
PLATAFORMA de AGENTES
Agente 1
Arquitetura
Programa
Interpretador
Agente 2
Arquitetura
Programa
Interpretador
Agente n...
Agente = Programa + Arquitetura
1414Sistemas Multiagentes
4ª Aula – Programação Orientada a Agentes
Arquitetura
Programa
Interpretador
PLATAFORMA de AGENTES
Agente 1
Arquitetura
Programa
Interpretador
Agente 2
Arquitetura
Programa
Interpretador
Agente n...
msg msgmsg
1515Sistemas Multiagentes
4ª Aula – Programação Orientada a Agentes
AMBIENTEReal ou Simulado
Arquitetura
Programa
Interpretador
PLATAFORMA de AGENTES
Agente 1
Arquitetura
Programa
Interpretador
Agente 2
Arquitetura
Programa
Interpretador
Agente n...
see
act
1616Sistemas Multiagentes
4ª Aula – Programação Orientada a Agentes
PLATAFORMA de AGENTES(instância #1)
Arquitetura
Programa
Interpretador
Agente 1
...
Arquitetura
Programa
Interpretador
Agente j
PLATAFORMA de AGENTES(instância #m)
Arquitetura
Programa
Interpretador
Agente m+1
...
Arquitetura
Programa
Interpretador
Agente m+i
1717Sistemas Multiagentes
4ª Aula – Programação Orientada a Agentes
Programação Orientada a Agentes◦ Plataformas e Interpretadores
◦ Comunicação e Ambientes
◦ Distribuição
Jason, Interpretador AgentSpeak(L)◦ Linguagem AgentSpeak(L)
◦ Semântica Operacional
◦ Ambiente Simulado
Leituras Recomendadas
1818Sistemas Multiagentes
4ª Aula – Programação Orientada a Agentes
13/04/2011
4
1919Sistemas Multiagentes
4ª Aula – Programação Orientada a Agentes
Introduzida por◦ Rao, A. (1996) AgentSpeak(L): BDI agentes speak
out in a logical computable language. Springer, LNAI 1038, pp. 42-55.
Linguagem “PROLOG-like” para agentes BDI
◦ “The language AgentSpeak(L) can be viewed as a simplified, textual language of PRS or dMARS.” (Rao 1996)
2020Sistemas Multiagentes
4ª Aula – Programação Orientada a Agentes
Conceitos Principais
◦ Beliefs: representam a informação disponível a um agente (sobre ambiente ou
sobre os outros agentes);
◦ Goals: representam “estados de coisas” que o agente deseja fazer acontecer ou
realizar
◦ Plans: São “receitas” para ação, representando o know-how dos agentes
◦ Events: Acontecimentos que envolvem mundanças nas crenças ou objetivos dos
agentes
◦ Intentions: Planos instanciados para atingir algum objetivo.
2121Sistemas Multiagentes
4ª Aula – Programação Orientada a Agentes
Sintaxe◦ São representadas por Literais de Primeira Ordem
com anotações.
functor(term1, ..., termn)[annot1, ..., annotm].
Exemplos
red(box1)[source(percept)].
friend(bob,alice)[source(bob)].
lier(alice)[source(self),source(bob)].
~lier(bob)[source(self)].
2222Sistemas Multiagentes
4ª Aula – Programação Orientada a Agentes
Mudanças na Base de Crenças
◦ Após percepçõesred(box1)[source(percept)].
◦ Intencionalmente (via operadores + e - )+lier(alice); // adds lier(alice)[source(self)]-lier(john); // removes lier(john)[source(self)]
◦ Após comunicação (via ação .send(...) )
.send(tom,tell,lier(alice)); // sent by bob// adds lier(alice)[source(bob)] in Tom’s BB
.send(tom,untell,lier(alice)); // sent by bob// removes lier(alice)[source(bob)] from Tom’s BB
2323Sistemas Multiagentes
4ª Aula – Programação Orientada a Agentes
Tipos◦ Achievement Goal (meta de fazer)◦ Test Goal (meta de conhecer)
Sintaxe ◦ Mesma forma das crenças, porém precedidos de
! achievement goal.
? test goal.
Exemplo!start .
2424Sistemas Multiagentes
4ª Aula – Programação Orientada a Agentes
Novos Objetivos
◦ Intencionalmente
// adds new achievement goal
!write(book);
...
// adds new test goal
?publisher(P);
...
13/04/2011
5
2525Sistemas Multiagentes
4ª Aula – Programação Orientada a Agentes
Novos Objetivos
◦ Via Comunicação
Quando um agente recebe uma mensagem achieve, o conteúdo torna-se um novo achievement goal anotado com o sender da mensagem
.send(tom,achieve,write(book)); // sent by Bob
// adds new goal write(book)[source(bob)] for Tom
...
.send(tom,unachieve,write(book)); // sent by Bob
// removes goal write(book)[source(bob)] for Tom
2626Sistemas Multiagentes
4ª Aula – Programação Orientada a Agentes
Novos Objetivos
◦ Via Comunicação
Quando um agente recebe uma mensagem askOneou askAll o conteúdo torna-se um novo test goal anotado com o sender da mensagem
.send(tom,askOne,published(P),Answer); // sent by Bob
// adds new goal ?publisher(P)[source(bob)] for Tom
// the response of Tom will unify with Answer
2727Sistemas Multiagentes
4ª Aula – Programação Orientada a Agentes
Eventos acontecem como consequência das mudanças nas crenças e objetivos dos agentes
Tipos de Eventos+ b (belief addition)
- b (belief deletion)
+!g (achievement-goal addition)
-!g (achievement-goal deletion)
+?g (test-goal addition)-?g (test-goal deletion)
Um agente reage a eventos executando planos
2828Sistemas Multiagentes
4ª Aula – Programação Orientada a Agentes
Sintaxe
triggering_event : context <- body.
onde:◦ O triggering event denota os eventos para os quais o
plano foi feito
◦ O context representa as circunstâncias nas quais o plano pode ser aplicado
◦ O body são as ações a serem realizadas para lidar com o evento
2929Sistemas Multiagentes
4ª Aula – Programação Orientada a Agentes
!get(beer). // initial goal: get a beer
+!get(beer) : true <- .send(robot, achieve, has(owner,beer)).
+has(owner,beer) : true <- !drink(beer).
-has(owner,beer) : true<- !get(beer).
// while I have beer, sip +!drink(beer) : has(owner,beer)
<- sip(beer);!drink(beer).
+!drink(beer) : not has(owner,beer)<- true.
3030Sistemas Multiagentes
4ª Aula – Programação Orientada a Agentes
+!has(owner,beer): available(beer,fridge) & not too_much(beer)<- !at(robot,fridge);
open(fridge);get(beer);close(fridge);!at(robot,owner);hand_in(beer);?has(owner,beer);// remember that another beer has been consumed.date(YY,MM,DD); .time(HH,NN,SS);+consumed(YY,MM,DD,HH,NN,SS,beer).
+!has(owner,beer): not available(beer,fridge)<- .send(supermarket, achieve, order(beer,5));
!at(robot,fridge). // go to fridge and wait there.
13/04/2011
6
3131Sistemas Multiagentes
4ª Aula – Programação Orientada a Agentes
Biblioteca de planos formada por
◦ Planos iniciais definidos pelo programador
◦ Planos adicionados dinamicamente
.add_plan
.remove_plan
◦ Planos recebidos através de mensagens
tellHow
untellHow
3232Sistemas Multiagentes
4ª Aula – Programação Orientada a Agentes
Ciclo básico de raciocínio do agente
◦ Perceber o ambiente e atualizar a base de crenças
◦ Processar novas mensagens
◦ Selecionar evento
◦ Selecionar planos relevantes
◦ Selecionar planos aplicáveis
◦ Criar/atualizar intenções
◦ Selecionar intenção para executar
3333Sistemas Multiagentes
4ª Aula – Programação Orientada a Agentes3434
Sistemas Multiagentes4ª Aula – Programação Orientada a Agentes
A classe Environment pode ser extendidapara implementar ambientes simulados …
3535Sistemas Multiagentes
4ª Aula – Programação Orientada a Agentes
import jason.environment.Environment;
public class RoomEnv extends Environment {
Literal ld = Literal.parseLiteral("locked(door)");
Literal nld = Literal.parseLiteral("~locked(door)");
boolean doorLocked = true;
@Override public void init(String[] args) {
addPercept(ld);
}
/** Implementation of the agent's basic actions */
@Override public boolean executeAction(String ag, Structure act) {
clearPercepts();
if (act.getFunctor().equals("lock"))
doorLocked = true;
if (act.getFunctor().equals("unlock"))
doorLocked = false;
// update percepts given state of the environment
if (doorLocked)
addPercept(ld);
else
addPercept(nld);
return true;
}
}
3636Sistemas Multiagentes
4ª Aula – Programação Orientada a Agentes
Programação Orientada a Agentes◦ Plataformas e Interpretadores
◦ Comunicação e Ambientes
◦ Distribuição
Jason, Interpretador AgentSpeak(L)◦ Linguagem AgentSpeak(L)
◦ Semântica Operacional
◦ Ambiente Simulado
Leituras Recomendadas
13/04/2011
7
3737Sistemas Multiagentes
4ª Aula – Programação Orientada a Agentes
Sobre Programação Orientada a Agentes◦ Artigo de SHOHAM, Y. (1993) Agent-oriented programming. Artificial
Intelligence 60: 51-92.
◦ Livro de Bordini etal (2005) Multi-agent programming: languages, platforms and applications. Springer.
◦ Livro de Bordini etal (2009) Multi-agent programming: languages, toolsand applications. Springer.
Sobre AgentSpeak(L)◦ Artigo de Rao, A. (1996) AgentSpeak(L): BDI agentes speak out in a logical
computable language. Springer, LNAI 1038, pp. 42-55.
Sobre Interpretador Jason◦ Capítulo 1 de Bordini etal (2005) Multi-agent programming: languages,
platforms and applications. Springer.
◦ Livro de Bordini, R. et al. (2007) Programming multi-agent systems in AgentSpeak using Jason. John Wiley & Sons Ltd.