Download - Agentes inteligentes com jason
![Page 1: Agentes inteligentes com jason](https://reader034.vdocuments.mx/reader034/viewer/2022042521/5565f757d8b42a2a4d8b4745/html5/thumbnails/1.jpg)
Introdução ao desenvolvimento de agentes inteligentes com Jason
por
Nécio de Lima Veras
![Page 2: Agentes inteligentes com jason](https://reader034.vdocuments.mx/reader034/viewer/2022042521/5565f757d8b42a2a4d8b4745/html5/thumbnails/2.jpg)
Objetivo
Estes slides objetivam fornecer uma introdução ao desenvolvimento de agentes inteligentes usando um interpretador baseado em Java (Jason) para uma versão estendida da linguagem AgentSpeak(L).
![Page 3: Agentes inteligentes com jason](https://reader034.vdocuments.mx/reader034/viewer/2022042521/5565f757d8b42a2a4d8b4745/html5/thumbnails/3.jpg)
Agenda
● Arquitetura BDI● AgentSpeak(L)● Jason
![Page 4: Agentes inteligentes com jason](https://reader034.vdocuments.mx/reader034/viewer/2022042521/5565f757d8b42a2a4d8b4745/html5/thumbnails/4.jpg)
Arquitetura de agente BDI
● É uma das mais importantes arquiteturas de agentes deliberativos;
● É baseada em um modelo cognitivo fundamentado em três atitudes mentais:– Beliefs – Desires– Intentions (B-D-I)
● Toda a fundamentação filosófica advém dos trabalhos:– Daniel C. Dennett. The Intentional Stance (1987)
– Michael E. Bratman. Intentions, Plans and Practical Reason (1987)
![Page 5: Agentes inteligentes com jason](https://reader034.vdocuments.mx/reader034/viewer/2022042521/5565f757d8b42a2a4d8b4745/html5/thumbnails/5.jpg)
Arquitetura de agente BDI
● A arquitetura está relacionada com o entendimento do raciocínio prático;
● O raciocínio prático envolve dois importantes processos:– Decidir qual objetivo queremos atingir
(deliberação); e
– Como iremos atingir esse objetivo (means-ends).
● Exemplo...
![Page 6: Agentes inteligentes com jason](https://reader034.vdocuments.mx/reader034/viewer/2022042521/5565f757d8b42a2a4d8b4745/html5/thumbnails/6.jpg)
Exemplo de raciocínio lógico
O que fazer depois de ter terminado um curso superior?
Quais opções tenho em função do conhecimento que possuo?
Esse conhecimento é a sua CRENÇA.
![Page 7: Agentes inteligentes com jason](https://reader034.vdocuments.mx/reader034/viewer/2022042521/5565f757d8b42a2a4d8b4745/html5/thumbnails/7.jpg)
Exemplo de raciocínio lógico
Existirão grupos de alternativas (estados do mundo) que irão motivar o agente.Chamamos isso de DESEJOS.
![Page 8: Agentes inteligentes com jason](https://reader034.vdocuments.mx/reader034/viewer/2022042521/5565f757d8b42a2a4d8b4745/html5/thumbnails/8.jpg)
Intenções
● Dados os grupos de opções (desejos) então deve-se optar por uma e se comprometer por ela, ou seja, será transformado em intenção.
– Elas alimentarão o raciocínio lógico futuro do agente.
– O agente deverá designar tempo e esforço para realizar a sua intenção.
● Exemplo de intenção: Ingressar na academia.
● Possíveis ações:
– Inscrever-se em programas de mestrado;
– Persistir!
– Detectadas falhas (não aceitação em várias universidades) então seria racional aumentar as horas de estudo;
– No entanto, persistir em muitas falhas é irracional.
● Assim, uma intenção está relacionada com crenças sobre o futuro.
![Page 9: Agentes inteligentes com jason](https://reader034.vdocuments.mx/reader034/viewer/2022042521/5565f757d8b42a2a4d8b4745/html5/thumbnails/9.jpg)
Intenções e o raciocínio prático
● Intenções guiam como o raciocínio será atingido (means-ends)
– “Tentar entrar em um programa de mestrado e, caso não consiga, tentar em outra universidade”;
● Intenções restringem deliberações futuras
– “Ações conflitantes com minha intenção não devem ser investidas, como por exemplo, ser rico e ser universitário”;
● Intenções persistem– “Não se pode desistir de uma intenção sem uma boa razão para isso.
Caso contrário, jamais uma intenção será atingida”;
● Intenções influenciam crenças sobre as quais os futuros raciocínios práticos serão baseados
– “Se a intenção é tornar-se um acadêmico, então deve-se acreditar que em breve isso será verdade. Se, simultaneamente, acredita-se que nunca será um acadêmico então o agente está sendo irracional”.
![Page 10: Agentes inteligentes com jason](https://reader034.vdocuments.mx/reader034/viewer/2022042521/5565f757d8b42a2a4d8b4745/html5/thumbnails/10.jpg)
A arquitetura BDI
Diagrama esquemáticoda arquitetura BDI
Revisor de crenças:Pode determinar um novo conjunto de crenças
Determina o conjunto de opções disponíveispara os desejos do agente
Representa o processo de deliberação
![Page 11: Agentes inteligentes com jason](https://reader034.vdocuments.mx/reader034/viewer/2022042521/5565f757d8b42a2a4d8b4745/html5/thumbnails/11.jpg)
Um agente BDI em pseudocódigo
Pode-se ainda associar prioridade para cada uma das intenções, indicando grau de importância.
![Page 12: Agentes inteligentes com jason](https://reader034.vdocuments.mx/reader034/viewer/2022042521/5565f757d8b42a2a4d8b4745/html5/thumbnails/12.jpg)
Agenda
● Arquitetura BDI● AgentSpeak(L)● Jason
![Page 13: Agentes inteligentes com jason](https://reader034.vdocuments.mx/reader034/viewer/2022042521/5565f757d8b42a2a4d8b4745/html5/thumbnails/13.jpg)
Noções gerais
● Proposta inicialmente por Anand S. Rao (1996) no trabalho AgentSpeak(L): BDI agents speak out in a logical computable language;
● Inspirada na arquitetura BDI (fiel à proposta filosófica);
● Sintaxe elegante;● Extensão natural do paradigma de
programação lógica (como o Prolog);
![Page 14: Agentes inteligentes com jason](https://reader034.vdocuments.mx/reader034/viewer/2022042521/5565f757d8b42a2a4d8b4745/html5/thumbnails/14.jpg)
Noções gerais
● Projetada para programação de agentes BDI na forma reactive planning systems;
● Esses sistemas...– ...estão permanentemente em execução;– ...reagem a eventos que aconteçam no ambiente;
– ...executam planos depositados em uma biblioteca;
● É constituída por:– Átomo de crença (predicado de primeira ordem);
– Literais de crença (átomos ou suas negações);
– Base de crença (coleção de átomos).
![Page 15: Agentes inteligentes com jason](https://reader034.vdocuments.mx/reader034/viewer/2022042521/5565f757d8b42a2a4d8b4745/html5/thumbnails/15.jpg)
Noções gerais
● Existem dois tipos de objetivos:– De realização (!)
– De teste (?)
● Ambos são predicados, porém com operadores prefixados;● Na prática, indicam a execução de subplanos;● Os eventos ativadores (triggers events) podem iniciar a
execução de um plano;● Um evento pode ser de dois tipos:
– Interno: gerado por um plano que precisa de um subobjetivo;
– Externo: gerado por atualizações de crenças vindas do ambiente;
● Os E.A. estão relacionados com adição ('+') ou remoção ('-') de atitudes mentais;
![Page 16: Agentes inteligentes com jason](https://reader034.vdocuments.mx/reader034/viewer/2022042521/5565f757d8b42a2a4d8b4745/html5/thumbnails/16.jpg)
Noções gerais
● Os planos são ações básicas que um agente executa no ambiente;
● Um plano é formado por:– Um evento ativador (denota o propósito do plano);
– Uma conjunção de literais (representa o contexto);
– Sequência de ações ou subobjetivos;
![Page 17: Agentes inteligentes com jason](https://reader034.vdocuments.mx/reader034/viewer/2022042521/5565f757d8b42a2a4d8b4745/html5/thumbnails/17.jpg)
Noções gerais
● Exemplo de plano:
Um concerto a ser realizado pelo artista A no local V corresponde a adição de uma crença concert(A,V) como conseqüência da percepção do ambiente. Caso o agente goste do artista A então ele irá reservar ingressos para essa combinação.
Ao adotar o objetivo de reservar , se o telefonenão estiver ocupado, então o agente iráexecutar o plano indicado pela ligação para o local do evento seguindo por um protocolode compra “...” e finalizado pela escolha dosacentos para o concerto do artista.
![Page 18: Agentes inteligentes com jason](https://reader034.vdocuments.mx/reader034/viewer/2022042521/5565f757d8b42a2a4d8b4745/html5/thumbnails/18.jpg)
Sintaxe abstrata
ag: é um agente especificado por um conjunto de crenças bs e um conjunto de planos ps
ct: é o contexto do plano h: é uma seqüência de ações, objetivos ou atualizações de crenças
at: são fórmulas atômicas da linguagem, que são predicados onde p é um símbolopredicativo, ou seja, p: é um planote: é o evento ativador
te: adição/remoção de crenças da base de crenças do agente (+at e -at) te: adição/remoção de objetivos (+g e -g);
u: corresponde a atualização da base de crenças
g: são os objetivos e podem ser de realização (!at) ou de teste (?at);
Onde:
![Page 19: Agentes inteligentes com jason](https://reader034.vdocuments.mx/reader034/viewer/2022042521/5565f757d8b42a2a4d8b4745/html5/thumbnails/19.jpg)
Um interpretador abstrato para AgentSpeak(L)
● Precisa...– ...ter acesso à base de crença e à biblioteca de
planos;
– ...gerenciar o conjunto de eventos e intenções;
● Seu funcionamento requer três funções de seleção para selecionar...– ...um evento;– ...um plano aplicável;
– ...uma intenção.
● Devem ser flexíveis ao projetista.
![Page 20: Agentes inteligentes com jason](https://reader034.vdocuments.mx/reader034/viewer/2022042521/5565f757d8b42a2a4d8b4745/html5/thumbnails/20.jpg)
Ciclo de raciocínio de um programa agente em AgentSpeak(L)
![Page 21: Agentes inteligentes com jason](https://reader034.vdocuments.mx/reader034/viewer/2022042521/5565f757d8b42a2a4d8b4745/html5/thumbnails/21.jpg)
Um pequeno exemplo de uso...
● Robôs Coletores de Lixo em Marte– SMA com dois robôs coletando lixo no planeta
Marte;
– O Robô 1 (r1) procura por lixos e, ao encontrar, leva até a posição do Robô 2 (r2);
– O Robô 2 está posicionado ao lado do incinerador e, ao receber o lixo, ele coloca no incinerador;
– Os lixos são colocados aleatoriamente no ambiente;
![Page 22: Agentes inteligentes com jason](https://reader034.vdocuments.mx/reader034/viewer/2022042521/5565f757d8b42a2a4d8b4745/html5/thumbnails/22.jpg)
Percepção: r1 coleta lixoCaso ele esteja checandoslots então deve realizar
a seq. de ações: parar de checar;
coletar o lixocontinuar a checar.
O agente pretende realizar o plano take e
como o contexto é vazio(true) ele é sempre
aplicável. O plano envolve realizar:
ensure_pick(S)go(L)
drop(S)
![Page 23: Agentes inteligentes com jason](https://reader034.vdocuments.mx/reader034/viewer/2022042521/5565f757d8b42a2a4d8b4745/html5/thumbnails/23.jpg)
Agenda
● AgentSpeak(L)● Arquitetura BDI● Jason
![Page 24: Agentes inteligentes com jason](https://reader034.vdocuments.mx/reader034/viewer/2022042521/5565f757d8b42a2a4d8b4745/html5/thumbnails/24.jpg)
Jason ….
● ...é um interpretador para uma versão estendida da linguagem AgentSpeak(L);
● ...implementa uma semântica operacional da linguagem;● ...provê uma plataforma para desenvolvimento de
sistemas multi-agentes;● ...possui muitos recursos de customização de agentes;● ...é livre!!! \o/ => http://jason.sourceforge.net/● ...é implementado em Java;● ...desenvolvido por Jomi F. Hübner (UFSC) e Rafael H.
Bordini (PUCRS).
![Page 25: Agentes inteligentes com jason](https://reader034.vdocuments.mx/reader034/viewer/2022042521/5565f757d8b42a2a4d8b4745/html5/thumbnails/25.jpg)
Ciclo de raciocínio do Jason
![Page 26: Agentes inteligentes com jason](https://reader034.vdocuments.mx/reader034/viewer/2022042521/5565f757d8b42a2a4d8b4745/html5/thumbnails/26.jpg)
Os DEZ passos do processo de raciocínio
1. Percepção do ambiente
2. Atualização da base de crença
3. Recepção de comunicação vindo de outros agentes
4. Seleção de mensagens “socialmente” aceitáveis
5. Seleção de um evento
![Page 27: Agentes inteligentes com jason](https://reader034.vdocuments.mx/reader034/viewer/2022042521/5565f757d8b42a2a4d8b4745/html5/thumbnails/27.jpg)
Os DEZ passos do processo de raciocínio
6. Recuperação de todos os planos relevantes
7. Determinação dos planos aplicáveis
8. Seleção de um dos planos aplicáveis
9. Seleção de uma intenção para execução futura
10. Execução de um passo da intenção
![Page 28: Agentes inteligentes com jason](https://reader034.vdocuments.mx/reader034/viewer/2022042521/5565f757d8b42a2a4d8b4745/html5/thumbnails/28.jpg)
AgentSpeak + Jason
● Crenças:
– Representada por literais de lógica de primeira ordem;
– Descreve o que o agente sabe sobre o ambiente;
– Expressa a crença do agente e não a verdade pura;
– Exemplo de uma base de crença do agente Tom:
red(box1) [source(percept)].tall (bob).friend(bob,alice) [source(bob)].lier(alice) [source(self),source(bob)].~lier(bob) [source(self)].
Anotações
![Page 29: Agentes inteligentes com jason](https://reader034.vdocuments.mx/reader034/viewer/2022042521/5565f757d8b42a2a4d8b4745/html5/thumbnails/29.jpg)
Tipos dos termos reconhecidos
![Page 30: Agentes inteligentes com jason](https://reader034.vdocuments.mx/reader034/viewer/2022042521/5565f757d8b42a2a4d8b4745/html5/thumbnails/30.jpg)
AgentSpeak + Jason
● Alterações na base de crença:– Por percepções [source(percept)] - automático;
– Pelas intenções [source(self)]● Exemplos:
+lier(alice); // adds lier(alice)[source(self)]
-lier(john); // removes lier(john)[source(self)]
– Por comunicações [source(bob)]● Exemplo:
.send(tom,tell,lier(alice)); // sent by bob
// adds lier(alice)[source(bob)] in Tom's BB
![Page 31: Agentes inteligentes com jason](https://reader034.vdocuments.mx/reader034/viewer/2022042521/5565f757d8b42a2a4d8b4745/html5/thumbnails/31.jpg)
AgentSpeak + Jason
● O operador not (negação como falha):– É true se o interpretador falhar para derivar o
argumento;
– Exemplo:
not likes(john, music).
● O operador ~ (negação forte):– É true se o agente tem uma crença explícita que
o argumento é falso;
– Exemplo:
~likes(john,music).
![Page 32: Agentes inteligentes com jason](https://reader034.vdocuments.mx/reader034/viewer/2022042521/5565f757d8b42a2a4d8b4745/html5/thumbnails/32.jpg)
AgentSpeak + Jason
● Objetivos (! = realização e ? = teste):● Exemplo: !write(book).● Novos objetivos são adicionados:
– Por intenções
!write(book);
?publisher(P);
– Por comunicações
.send(tom,achieve,write(book)); // sent by Bob
// adds new goal write(book)[source(bob)] for Tom
![Page 33: Agentes inteligentes com jason](https://reader034.vdocuments.mx/reader034/viewer/2022042521/5565f757d8b42a2a4d8b4745/html5/thumbnails/33.jpg)
AgentSpeak + Jason
– Por comunicações (outros exemplos)
.send(tom,unachieve,write(book)); // sent by Bob
// removes goal write(book)[source(bob)] for Tom
.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
![Page 34: Agentes inteligentes com jason](https://reader034.vdocuments.mx/reader034/viewer/2022042521/5565f757d8b42a2a4d8b4745/html5/thumbnails/34.jpg)
AgentSpeak + Jason
● Eventos:– Ocorrem como consequências das mudanças no
agente (crenças ou objetivos);– Tipos:
+b (belief addition)
-b (belief deletion)
+!g (achievement-goal addition)
-!g (achievement-goal deletion)
+?g (test-goal addition)
-?g (test-goal deletion)
– O agente reage a evento por meio da execução de planos;
![Page 35: Agentes inteligentes com jason](https://reader034.vdocuments.mx/reader034/viewer/2022042521/5565f757d8b42a2a4d8b4745/html5/thumbnails/35.jpg)
AgentSpeak + Jason
● Uma biblioteca de planos de um agente é formada por:– Planos iniciais definidos pelo programador;
– Planos adicionados dinamicamente;● .add_plan ● .remove_plan
– Planos recebidos de outros agentes;● tellHow messagens● UntellHow
● Um plano possui a seguinte estrutura:
triggering event : context <- body
![Page 36: Agentes inteligentes com jason](https://reader034.vdocuments.mx/reader034/viewer/2022042521/5565f757d8b42a2a4d8b4745/html5/thumbnails/36.jpg)
AgentSpeak + Jason
● Exemplo de um plano inicialmente definido:
+!prepare(Something) : number_of_people(N) & stock(Something,S) & S > N <-
... .
![Page 37: Agentes inteligentes com jason](https://reader034.vdocuments.mx/reader034/viewer/2022042521/5565f757d8b42a2a4d8b4745/html5/thumbnails/37.jpg)
Jason
● Ações internas do agente:– Jason traz um gama de comportamento pré-
programados inerentes aos agentes;
– São identificados por um “.” precedendo seu nome;
– Exemplos:● .send● .print● .member● .list
– É possível criar as próprias ações internas;
![Page 38: Agentes inteligentes com jason](https://reader034.vdocuments.mx/reader034/viewer/2022042521/5565f757d8b42a2a4d8b4745/html5/thumbnails/38.jpg)
Exemplos de Projetos
● Um bingo composto por dois programas agentes:– Um proprietário
– Um jogador
– O ambiente é a “Mesa de Bingo”
● Monica Guanabara:– “Uma agente” que realiza comunicações
sobre a compra de assentos por meio de uma rede social;
● Ambos estão no github:
www.github.com/necioveras
![Page 39: Agentes inteligentes com jason](https://reader034.vdocuments.mx/reader034/viewer/2022042521/5565f757d8b42a2a4d8b4745/html5/thumbnails/39.jpg)
Referências
● Wooldridge, M . An Introduction to MultiAgent Systems. British: Willey (2002).
● Bordini, R. H., Vieira, R. Linguagens de Programação Orientadas a Agentes: uma introdução baseada em AgentSpeak(L). Revista de informática teórica e aplicada: Porto Alegre. Vol.10, n.1 (2003), p.7-38.
● Bordini, R., Hübner, J., Wooldridge, M. Programming multi-agent systems in AgentSpeak using Jason: Willey (2007).