Sistemas Multiagentes 2011lrc/2011.1/SMA/SMA-Aula-04,6SPP.pdf · 2011-04-27 · 13/04/2011 4...

7
13/04/2011 1 4ª Aula Programação Orientada a Agentes Luciano Reis Coutinho, Prof. [email protected] 2 2 Sistemas 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 3 3 Sistemas 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 4 4 Sistemas 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 ... 5 5 Sistemas 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 ? Estado Cognitivo Agentes Cognitivos/Deliberativos 6 6 Sistemas 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 ) ...

Transcript of Sistemas Multiagentes 2011lrc/2011.1/SMA/SMA-Aula-04,6SPP.pdf · 2011-04-27 · 13/04/2011 4...

Page 1: Sistemas Multiagentes 2011lrc/2011.1/SMA/SMA-Aula-04,6SPP.pdf · 2011-04-27 · 13/04/2011 4 Sistemas Multiagentes 19 4ª Aula –Programação Orientada a Agentes Introduzida por

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

...

Page 2: Sistemas Multiagentes 2011lrc/2011.1/SMA/SMA-Aula-04,6SPP.pdf · 2011-04-27 · 13/04/2011 4 Sistemas Multiagentes 19 4ª Aula –Programação Orientada a Agentes Introduzida por

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.

Page 3: Sistemas Multiagentes 2011lrc/2011.1/SMA/SMA-Aula-04,6SPP.pdf · 2011-04-27 · 13/04/2011 4 Sistemas Multiagentes 19 4ª Aula –Programação Orientada a Agentes Introduzida por

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

Page 4: Sistemas Multiagentes 2011lrc/2011.1/SMA/SMA-Aula-04,6SPP.pdf · 2011-04-27 · 13/04/2011 4 Sistemas Multiagentes 19 4ª Aula –Programação Orientada a Agentes Introduzida por

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

...

Page 5: Sistemas Multiagentes 2011lrc/2011.1/SMA/SMA-Aula-04,6SPP.pdf · 2011-04-27 · 13/04/2011 4 Sistemas Multiagentes 19 4ª Aula –Programação Orientada a Agentes Introduzida por

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.

Page 6: Sistemas Multiagentes 2011lrc/2011.1/SMA/SMA-Aula-04,6SPP.pdf · 2011-04-27 · 13/04/2011 4 Sistemas Multiagentes 19 4ª Aula –Programação Orientada a Agentes Introduzida por

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

Page 7: Sistemas Multiagentes 2011lrc/2011.1/SMA/SMA-Aula-04,6SPP.pdf · 2011-04-27 · 13/04/2011 4 Sistemas Multiagentes 19 4ª Aula –Programação Orientada a Agentes Introduzida por

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.