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/
Top Related