210 likes | 316 Views
Agent-Oriented Programming. Luanda Philippi Remáculo luanda@inf.ufsc.br Sabrina Schürhaus sabrinas@inf.ufsc.br. 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;
E N D
Agent-Oriented Programming Luanda Philippi Remáculo luanda@inf.ufsc.br Sabrina Schürhaus sabrinas@inf.ufsc.br
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/