Agent-Oriented Programming Luanda Philippi Remáculo [email protected] Sabrina Schürhaus...

21
Agent-Oriented Programming Luanda Philippi Remáculo [email protected] Sabrina Schürhaus [email protected]

Transcript of Agent-Oriented Programming Luanda Philippi Remáculo [email protected] Sabrina Schürhaus...

Agent-Oriented Programming

Luanda Philippi Remá[email protected]

Sabrina Schü[email protected]

Agent-Oriented Programming - AOP Shoham (1993); Agente = entidade que envia e processa

mensagens; Diferença entre agentes e objetos:

– Os campos de uma agente são restritos;– Nos agentes, cada mensagem é também

definida em termos de atividades mentais. Um agente pode ser considerado um

objeto, no entanto muitas idéias da teoria dos objetos são esquecidas na AOP.

Sistemas Multiagentes

Criação de entidades de software autônomas - Agentes;

Agentes: interagem através de um ambiente compartilhado por outros agentes de uma sociedade, e atuam sobre esse ambiente, alterando seu estado.

Sistemas Multiagentes

Forma natural que permite analogias diretas com o mundo real e com a forma como raciocinamos sobre ele;

Sistemas computacionais vistos como ambientes onde os agentes atuam;

Nesses ambientes os agentes podem formar grupos, em um nível mais alto de abstração formando comunidades ou sociedades de agentes.

Sistemas Multiagentes

Tipos:– Cognitivos:

• Poucos agentes;• Cada agente é um sistema sofisticado e

computacionalmente complexo.– Reativos:

• Grande número de agentes muito simples;• Seus comportamentos podem ser descritos como

autômatos finitos simples;• Agem sob um esquema estímulo-resposta.

Sistemas Multiagentes

Formalismos:– Teoria dos Jogos:

• Ferramentas para a decisão de qual estratégia em um jogo abstrato de dois ou mais jogadores é a melhor para os jogadores.

– Lógica Matemática:• Lógicas modais complexas para o projeto e

desenvolvimento de agentes.

Sistemas Multiagentes Disciplinas envolvidas no desenvolvimento de

SMA:– Psicologia;– Ciência cognitiva;– Sociologia;– Entomologia;– Economia;– Teoria das Organizações;– Teoria dramática;– Antropologia.

Sistemas Multiagentes

Agente:– Estados Mentais:

• Crenças;• Objetivos;• Intenções;• Compromissos.

Sistemas Multiagentes

Características:– Técnicas automáticas de decomposição de

tarefas e computação distribuída;– Impossível prever todos os casos quem

devem ser tratados;– O agente é dito como autônomo;– Os agentes possuem conhecimento

incompleto do seu ambiente e seguem o princípio da racionalidade limitada.

Sistemas Multiagentes

Aspectos para compreensão de agentes nos SMA cognitivos:– Percepção;– Ação;– Comunicação;– Representação;– Motivação;– Deliberação;– Raciocínio e aprendizagem.

Arquitetura BDI - Beliefs, Desires, Intentions. Crenças: agente sabe sobre o estado do

ambiente e dos agentes naquele ambiente; Desejos: estados do mundo que o agente

quer atingir; Intenções: seqüências de ações

específicas que um agente se compromete a executar para atingir determinados objetivos.

Linguagem AgentSpeak

Projetada para programação de agentes BDI na forma de sistemas de planejamento reativos;

É extensão natural e elegante de programação em lógica para arquitetura de agentes BDI.

Linguagem AgentSpeak(L)

Um agente AgentSpeak(L) corresponde a especificação de um conjunto de crenças (base inicial do agente) e de um conjunto de planos (biblioteca de planos)

AgentSpeak(L) distingue 2 tipos de objetivos: – Realização(!);– Teste(?).

Linguagem AgentSpeak(L)

Elementos da linguagem:– Eventos ativadores (‘+’) e (‘-’);– Planos (evento ativador + contexto);

+concert(A,V) : likes(A)– !book_tickets(A,V).

+!book_tickets(A,V) : ¬busy(phone)– call(V);

: : :; !choose_seats(A,V).

Estudo de Caso Robôs coletores de Lixo em Marte

2 robôs coletando lixo em Marte– r1: procura por lixos e quando encontra leva até r2;– r2 está ao lado de um incinerador.

Agent r2 +garbage(r2) : true

– <- burn(garb). Agent r1 Beliefs pos(r2,2,2). checking(slots).

Estudo de Caso Robôs coletores de Lixo em Marte

Plans +pos(r1,X1,Y1) : checking(slots) & not(garbage(r1)) (p1)

– <- next(slot). +garbage(r1) : checking(slots) (p2)

– <- !stop(check);– !take(garb,r2);– !continue(check).

+!stop(check) : true (p3)– <- ?pos(r1,X1,Y1);– +pos(back,X1,Y1);– -checking(slots).

Estudo de Caso Robôs coletores de Lixo em Marte

+!take(S,L) : true (p4)– <- !ensure_pick(S);– !go(L);– drop(S).

+!ensure_pick(S) : garbage(r1) (p5)– <- pick(garb);– !ensure_pick(S).

+!ensure_pick(S) : true <- true. (p6)

Estudo de Caso Robôs coletores de Lixo em Marte

+!continue(check) : true (p7)– <- !go(back);– -pos(back,X1,Y1);– +checking(slots);– next(slot).

+!go(L) : pos(L,Xl,Yl) & pos(r1,Xl,Yl) (p8)– <- true.

+!go(L) : true (p9)– <- ?pos(L,Xl,Yl);– moveTowards(Xl,Yl);– !go(L).

Linguagens de Programação a Agentes Agent-0; PLACA Extension; Agente-K Extension; Agent(): Arquitetura BDI + LISP; Concurrent METATEM; STAPLE; ConGolog; MINERVA; 3APL; Dribble; AgentTalk; JAVA

Considerações Finais

Recente;

Há muito o que desenvolver;

Paradigma de Orientação a Agentes;

Referências Bibliográficas

Bordini e Vieira, Linguagens de Programação Orientadas a Agentes: uma introdução baseada em AgenteSpeak(L); http://www.inf.ufrgs.br/~revista/docs/rita10/rita_v10_n1_p7a38.pdf

http://www.cs.berkeley.edu/~davidp/cs263/