SlideShare uma empresa Scribd logo
1 de 39
Baixar para ler offline
Introdução ao desenvolvimento de
agentes inteligentes com Jason
por
Nécio de Lima Veras
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).
Agenda
● Arquitetura BDI
● AgentSpeak(L)
● Jason
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)
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...
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.
Exemplo de raciocínio lógico
Existirão grupos de alternativas (estados
do mundo) que irão motivar o agente.
Chamamos isso de DESEJOS.
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.
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”.
A arquitetura BDI
Diagrama esquemático
da arquitetura BDI
Revisor de crenças:
Pode determinar um novo conjunto de crenças
Determina o conjunto de opções disponíveis
para os desejos do agente
Representa o processo de deliberação
Um agente BDI em pseudocódigo
Pode-se ainda associar prioridade para cada uma
das intenções, indicando grau de importância.
Agenda
● Arquitetura BDI
● AgentSpeak(L)
● Jason
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);
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).
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;
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;
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 telefone
não estiver ocupado, então o agente irá
executar o plano indicado pela ligação para
o local do evento seguindo por um protocolo
de compra “...” e finalizado pela escolha dos
acentos para o concerto do artista.
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ímbolo
predicativo, ou seja, p: é um plano
te: é 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:
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.
Ciclo de raciocínio de um programa
agente em AgentSpeak(L)
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;
Percepção: r1 coleta lixo
Caso ele esteja checando
slots então deve realizar
a seq. de ações:
parar de checar;
coletar o lixo
continuar 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)
Agenda
● AgentSpeak(L)
● Arquitetura BDI
● Jason
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).
Ciclo de raciocínio do Jason
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
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
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
Tipos dos termos reconhecidos
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
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).
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
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
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;
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
AgentSpeak + Jason
● Exemplo de um plano inicialmente definido:
+!prepare(Something) : number_of_people(N) &
stock(Something,S) & S > N <-
... .
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;
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
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).

Mais conteúdo relacionado

Mais procurados

[NDC 2021] 게임 PD가 되어 보니
[NDC 2021] 게임 PD가 되어 보니[NDC 2021] 게임 PD가 되어 보니
[NDC 2021] 게임 PD가 되어 보니Yongha Kim
 
Ndc2010 전형규 마비노기2 캐릭터 렌더링 기술
Ndc2010 전형규   마비노기2 캐릭터 렌더링 기술Ndc2010 전형규   마비노기2 캐릭터 렌더링 기술
Ndc2010 전형규 마비노기2 캐릭터 렌더링 기술henjeon
 
캐주얼 게임 배경에서 Vertex Color 활용법
캐주얼 게임 배경에서 Vertex Color 활용법캐주얼 게임 배경에서 Vertex Color 활용법
캐주얼 게임 배경에서 Vertex Color 활용법지영 신
 
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술Ki Hyunwoo
 
Unityアセット販売の真実
Unityアセット販売の真実Unityアセット販売の真実
Unityアセット販売の真実マスタッシュ
 
물리기반렌더링 알레고리드믹 한국어 번역
물리기반렌더링 알레고리드믹 한국어 번역물리기반렌더링 알레고리드믹 한국어 번역
물리기반렌더링 알레고리드믹 한국어 번역Dae Hyek KIM
 
Best Practices for Shader Graph
Best Practices for Shader GraphBest Practices for Shader Graph
Best Practices for Shader GraphUnity Technologies
 
Compute shader DX11
Compute shader DX11Compute shader DX11
Compute shader DX11민웅 이
 
Unityで始めるバーチャルプロダクション
Unityで始めるバーチャルプロダクションUnityで始めるバーチャルプロダクション
Unityで始めるバーチャルプロダクションUnity Technologies Japan K.K.
 
Unity3D 엔진을 활용한 게임환경 분석 및 3D 그래픽스 기술 /제작 사례
Unity3D 엔진을 활용한 게임환경 분석 및 3D 그래픽스 기술 /제작 사례Unity3D 엔진을 활용한 게임환경 분석 및 3D 그래픽스 기술 /제작 사례
Unity3D 엔진을 활용한 게임환경 분석 및 3D 그래픽스 기술 /제작 사례SangYun Yi
 
물리 기반 셰이더의 이해
물리 기반 셰이더의 이해물리 기반 셰이더의 이해
물리 기반 셰이더의 이해tartist
 
Editor Utility Widgetで色々便利にしてみた。
Editor Utility Widgetで色々便利にしてみた。Editor Utility Widgetで色々便利にしてみた。
Editor Utility Widgetで色々便利にしてみた。IndieusGames
 
NDC2012_마비노기 영웅전 카이 포스트모템_시선을 사로잡는 캐릭터 카이 그 시도와 성공의 구현 일지
NDC2012_마비노기 영웅전 카이 포스트모템_시선을 사로잡는 캐릭터 카이 그 시도와 성공의 구현 일지NDC2012_마비노기 영웅전 카이 포스트모템_시선을 사로잡는 캐릭터 카이 그 시도와 성공의 구현 일지
NDC2012_마비노기 영웅전 카이 포스트모템_시선을 사로잡는 캐릭터 카이 그 시도와 성공의 구현 일지영준 박
 
고대특강 게임 프로그래머의 소양
고대특강   게임 프로그래머의 소양고대특강   게임 프로그래머의 소양
고대특강 게임 프로그래머의 소양Jubok Kim
 
매쉬 베이크 마스터리
매쉬 베이크 마스터리매쉬 베이크 마스터리
매쉬 베이크 마스터리Jooyoung Yi
 
Unity ネイティブプラグインの作成について
Unity ネイティブプラグインの作成についてUnity ネイティブプラグインの作成について
Unity ネイティブプラグインの作成についてTatsuhiko Yamamura
 
최은영, 아티스트가 기획을 - 하이브리드의 길 Ver.1, NDC 2012
최은영, 아티스트가 기획을 - 하이브리드의 길 Ver.1, NDC 2012최은영, 아티스트가 기획을 - 하이브리드의 길 Ver.1, NDC 2012
최은영, 아티스트가 기획을 - 하이브리드의 길 Ver.1, NDC 2012devCAT Studio, NEXON
 

Mais procurados (20)

[NDC 2021] 게임 PD가 되어 보니
[NDC 2021] 게임 PD가 되어 보니[NDC 2021] 게임 PD가 되어 보니
[NDC 2021] 게임 PD가 되어 보니
 
Ndc2010 전형규 마비노기2 캐릭터 렌더링 기술
Ndc2010 전형규   마비노기2 캐릭터 렌더링 기술Ndc2010 전형규   마비노기2 캐릭터 렌더링 기술
Ndc2010 전형규 마비노기2 캐릭터 렌더링 기술
 
캐주얼 게임 배경에서 Vertex Color 활용법
캐주얼 게임 배경에서 Vertex Color 활용법캐주얼 게임 배경에서 Vertex Color 활용법
캐주얼 게임 배경에서 Vertex Color 활용법
 
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술
 
Unityアセット販売の真実
Unityアセット販売の真実Unityアセット販売の真実
Unityアセット販売の真実
 
물리기반렌더링 알레고리드믹 한국어 번역
물리기반렌더링 알레고리드믹 한국어 번역물리기반렌더링 알레고리드믹 한국어 번역
물리기반렌더링 알레고리드믹 한국어 번역
 
Best Practices for Shader Graph
Best Practices for Shader GraphBest Practices for Shader Graph
Best Practices for Shader Graph
 
Prototipos textuales
Prototipos textualesPrototipos textuales
Prototipos textuales
 
Compute shader DX11
Compute shader DX11Compute shader DX11
Compute shader DX11
 
Unityで始めるバーチャルプロダクション
Unityで始めるバーチャルプロダクションUnityで始めるバーチャルプロダクション
Unityで始めるバーチャルプロダクション
 
Unity3D 엔진을 활용한 게임환경 분석 및 3D 그래픽스 기술 /제작 사례
Unity3D 엔진을 활용한 게임환경 분석 및 3D 그래픽스 기술 /제작 사례Unity3D 엔진을 활용한 게임환경 분석 및 3D 그래픽스 기술 /제작 사례
Unity3D 엔진을 활용한 게임환경 분석 및 3D 그래픽스 기술 /제작 사례
 
물리 기반 셰이더의 이해
물리 기반 셰이더의 이해물리 기반 셰이더의 이해
물리 기반 셰이더의 이해
 
Editor Utility Widgetで色々便利にしてみた。
Editor Utility Widgetで色々便利にしてみた。Editor Utility Widgetで色々便利にしてみた。
Editor Utility Widgetで色々便利にしてみた。
 
NDC2012_마비노기 영웅전 카이 포스트모템_시선을 사로잡는 캐릭터 카이 그 시도와 성공의 구현 일지
NDC2012_마비노기 영웅전 카이 포스트모템_시선을 사로잡는 캐릭터 카이 그 시도와 성공의 구현 일지NDC2012_마비노기 영웅전 카이 포스트모템_시선을 사로잡는 캐릭터 카이 그 시도와 성공의 구현 일지
NDC2012_마비노기 영웅전 카이 포스트모템_시선을 사로잡는 캐릭터 카이 그 시도와 성공의 구현 일지
 
고대특강 게임 프로그래머의 소양
고대특강   게임 프로그래머의 소양고대특강   게임 프로그래머의 소양
고대특강 게임 프로그래머의 소양
 
매쉬 베이크 마스터리
매쉬 베이크 마스터리매쉬 베이크 마스터리
매쉬 베이크 마스터리
 
Unity ネイティブプラグインの作成について
Unity ネイティブプラグインの作成についてUnity ネイティブプラグインの作成について
Unity ネイティブプラグインの作成について
 
Aula Espelho | Design Editorial
Aula Espelho | Design EditorialAula Espelho | Design Editorial
Aula Espelho | Design Editorial
 
최은영, 아티스트가 기획을 - 하이브리드의 길 Ver.1, NDC 2012
최은영, 아티스트가 기획을 - 하이브리드의 길 Ver.1, NDC 2012최은영, 아티스트가 기획을 - 하이브리드의 길 Ver.1, NDC 2012
최은영, 아티스트가 기획을 - 하이브리드의 길 Ver.1, NDC 2012
 
Percepcao visual
Percepcao visualPercepcao visual
Percepcao visual
 

Semelhante a Introdução ao desenvolvimento de agentes inteligentes com Jason

Arquiteturas concretas de agentes inteligentes - bdi agents
Arquiteturas concretas de agentes inteligentes - bdi agentsArquiteturas concretas de agentes inteligentes - bdi agents
Arquiteturas concretas de agentes inteligentes - bdi agentsNécio de Lima Veras
 
Introdução à Engenharia de Software Orientada a Agentes com JaCaMo
Introdução à Engenharia de Software Orientada a Agentes com JaCaMoIntrodução à Engenharia de Software Orientada a Agentes com JaCaMo
Introdução à Engenharia de Software Orientada a Agentes com JaCaMoNécio de Lima Veras
 
Planejamento, Execução e Controle de Projetos: Aula 5
Planejamento, Execução e Controle de Projetos: Aula 5Planejamento, Execução e Controle de Projetos: Aula 5
Planejamento, Execução e Controle de Projetos: Aula 5Alessandro Almeida
 
Planejamento, Execução e Controle de Projetos (05/05/2015)
Planejamento, Execução e Controle de Projetos (05/05/2015)Planejamento, Execução e Controle de Projetos (05/05/2015)
Planejamento, Execução e Controle de Projetos (05/05/2015)Alessandro Almeida
 
Gestão de Projetos (29/09/2014)
Gestão de Projetos (29/09/2014)Gestão de Projetos (29/09/2014)
Gestão de Projetos (29/09/2014)Alessandro Almeida
 
Gestão de Projetos (29/04/2015)
Gestão de Projetos (29/04/2015)Gestão de Projetos (29/04/2015)
Gestão de Projetos (29/04/2015)Alessandro Almeida
 
Gestão de Projetos e Empreendedorismo: SIN-NA7 (02/10/2013)
Gestão de Projetos e Empreendedorismo: SIN-NA7 (02/10/2013)Gestão de Projetos e Empreendedorismo: SIN-NA7 (02/10/2013)
Gestão de Projetos e Empreendedorismo: SIN-NA7 (02/10/2013)Alessandro Almeida
 
Introdução ao Framework Jason: Sistemas Multi-agentes na Prática
Introdução ao Framework Jason: Sistemas Multi-agentes na PráticaIntrodução ao Framework Jason: Sistemas Multi-agentes na Prática
Introdução ao Framework Jason: Sistemas Multi-agentes na PráticaCarlos Eduardo Pantoja
 
Gestão de Projetos e Empreendedorismo (02/04/2014)
Gestão de Projetos e Empreendedorismo (02/04/2014)Gestão de Projetos e Empreendedorismo (02/04/2014)
Gestão de Projetos e Empreendedorismo (02/04/2014)Alessandro Almeida
 
Gestão de Projetos (24/09/2014)
Gestão de Projetos (24/09/2014)Gestão de Projetos (24/09/2014)
Gestão de Projetos (24/09/2014)Alessandro Almeida
 
Gestão de Projetos (22/09/2014)
Gestão de Projetos (22/09/2014)Gestão de Projetos (22/09/2014)
Gestão de Projetos (22/09/2014)Alessandro Almeida
 
Gestão de Projetos (10/09/2014)
Gestão de Projetos (10/09/2014)Gestão de Projetos (10/09/2014)
Gestão de Projetos (10/09/2014)Alessandro Almeida
 
Gestão de Projetos (05/05/2015)
Gestão de Projetos (05/05/2015)Gestão de Projetos (05/05/2015)
Gestão de Projetos (05/05/2015)Alessandro Almeida
 
Gestão de Projetos e Empreendedorismo (15/05/2013)
Gestão de Projetos e Empreendedorismo (15/05/2013)Gestão de Projetos e Empreendedorismo (15/05/2013)
Gestão de Projetos e Empreendedorismo (15/05/2013)Alessandro Almeida
 
Gestão de Projetos e Empreendedorismo: TAD-NC4 (26/09/2013)
Gestão de Projetos e Empreendedorismo: TAD-NC4 (26/09/2013)Gestão de Projetos e Empreendedorismo: TAD-NC4 (26/09/2013)
Gestão de Projetos e Empreendedorismo: TAD-NC4 (26/09/2013)Alessandro Almeida
 
Planejamento, Execução e Controle de Projetos: Aula 3
Planejamento, Execução e Controle de Projetos: Aula 3Planejamento, Execução e Controle de Projetos: Aula 3
Planejamento, Execução e Controle de Projetos: Aula 3Alessandro Almeida
 
Gestão de Projetos (18/03/2015)
Gestão de Projetos (18/03/2015)Gestão de Projetos (18/03/2015)
Gestão de Projetos (18/03/2015)Alessandro Almeida
 
Gestão de Projetos (14/04/2015)
Gestão de Projetos (14/04/2015)Gestão de Projetos (14/04/2015)
Gestão de Projetos (14/04/2015)Alessandro Almeida
 

Semelhante a Introdução ao desenvolvimento de agentes inteligentes com Jason (20)

Arquiteturas concretas de agentes inteligentes - bdi agents
Arquiteturas concretas de agentes inteligentes - bdi agentsArquiteturas concretas de agentes inteligentes - bdi agents
Arquiteturas concretas de agentes inteligentes - bdi agents
 
Introdução à Engenharia de Software Orientada a Agentes com JaCaMo
Introdução à Engenharia de Software Orientada a Agentes com JaCaMoIntrodução à Engenharia de Software Orientada a Agentes com JaCaMo
Introdução à Engenharia de Software Orientada a Agentes com JaCaMo
 
Planejamento, Execução e Controle de Projetos: Aula 5
Planejamento, Execução e Controle de Projetos: Aula 5Planejamento, Execução e Controle de Projetos: Aula 5
Planejamento, Execução e Controle de Projetos: Aula 5
 
Planejamento, Execução e Controle de Projetos (05/05/2015)
Planejamento, Execução e Controle de Projetos (05/05/2015)Planejamento, Execução e Controle de Projetos (05/05/2015)
Planejamento, Execução e Controle de Projetos (05/05/2015)
 
Gestão de Projetos (29/09/2014)
Gestão de Projetos (29/09/2014)Gestão de Projetos (29/09/2014)
Gestão de Projetos (29/09/2014)
 
Gestão de Projetos (29/04/2015)
Gestão de Projetos (29/04/2015)Gestão de Projetos (29/04/2015)
Gestão de Projetos (29/04/2015)
 
Gestão de Projetos e Empreendedorismo: SIN-NA7 (02/10/2013)
Gestão de Projetos e Empreendedorismo: SIN-NA7 (02/10/2013)Gestão de Projetos e Empreendedorismo: SIN-NA7 (02/10/2013)
Gestão de Projetos e Empreendedorismo: SIN-NA7 (02/10/2013)
 
Introdução ao Framework Jason: Sistemas Multi-agentes na Prática
Introdução ao Framework Jason: Sistemas Multi-agentes na PráticaIntrodução ao Framework Jason: Sistemas Multi-agentes na Prática
Introdução ao Framework Jason: Sistemas Multi-agentes na Prática
 
Notas sobre agentes inteligentes
Notas sobre agentes inteligentesNotas sobre agentes inteligentes
Notas sobre agentes inteligentes
 
Gestão de Projetos e Empreendedorismo (02/04/2014)
Gestão de Projetos e Empreendedorismo (02/04/2014)Gestão de Projetos e Empreendedorismo (02/04/2014)
Gestão de Projetos e Empreendedorismo (02/04/2014)
 
Gestão de Projetos (24/09/2014)
Gestão de Projetos (24/09/2014)Gestão de Projetos (24/09/2014)
Gestão de Projetos (24/09/2014)
 
Gestão de Projetos (22/09/2014)
Gestão de Projetos (22/09/2014)Gestão de Projetos (22/09/2014)
Gestão de Projetos (22/09/2014)
 
Gestão de Projetos (10/09/2014)
Gestão de Projetos (10/09/2014)Gestão de Projetos (10/09/2014)
Gestão de Projetos (10/09/2014)
 
Gestão de Projetos (05/05/2015)
Gestão de Projetos (05/05/2015)Gestão de Projetos (05/05/2015)
Gestão de Projetos (05/05/2015)
 
Gestão de Projetos e Empreendedorismo (15/05/2013)
Gestão de Projetos e Empreendedorismo (15/05/2013)Gestão de Projetos e Empreendedorismo (15/05/2013)
Gestão de Projetos e Empreendedorismo (15/05/2013)
 
Gestão de Projetos e Empreendedorismo: TAD-NC4 (26/09/2013)
Gestão de Projetos e Empreendedorismo: TAD-NC4 (26/09/2013)Gestão de Projetos e Empreendedorismo: TAD-NC4 (26/09/2013)
Gestão de Projetos e Empreendedorismo: TAD-NC4 (26/09/2013)
 
Planejamento, Execução e Controle de Projetos: Aula 3
Planejamento, Execução e Controle de Projetos: Aula 3Planejamento, Execução e Controle de Projetos: Aula 3
Planejamento, Execução e Controle de Projetos: Aula 3
 
Negócio Fechado. E agora?
Negócio Fechado. E agora?Negócio Fechado. E agora?
Negócio Fechado. E agora?
 
Gestão de Projetos (18/03/2015)
Gestão de Projetos (18/03/2015)Gestão de Projetos (18/03/2015)
Gestão de Projetos (18/03/2015)
 
Gestão de Projetos (14/04/2015)
Gestão de Projetos (14/04/2015)Gestão de Projetos (14/04/2015)
Gestão de Projetos (14/04/2015)
 

Mais de Nécio de Lima Veras

Introdução à analise e complexidade de algoritmos
Introdução à analise e complexidade de algoritmosIntrodução à analise e complexidade de algoritmos
Introdução à analise e complexidade de algoritmosNécio de Lima Veras
 
Uma Abordagem Baseada em Agentes para Planejamento e Monitoramento de Serviço...
Uma Abordagem Baseada em Agentes para Planejamento e Monitoramento de Serviço...Uma Abordagem Baseada em Agentes para Planejamento e Monitoramento de Serviço...
Uma Abordagem Baseada em Agentes para Planejamento e Monitoramento de Serviço...Nécio de Lima Veras
 
Jason: Componentes personalizados
Jason: Componentes personalizados Jason: Componentes personalizados
Jason: Componentes personalizados Nécio de Lima Veras
 
Ambientes em Sistemas Multi-agentes
Ambientes em Sistemas Multi-agentesAmbientes em Sistemas Multi-agentes
Ambientes em Sistemas Multi-agentesNécio de Lima Veras
 
Especificações iniciais de agentes inteligentes
Especificações iniciais de agentes inteligentesEspecificações iniciais de agentes inteligentes
Especificações iniciais de agentes inteligentesNécio de Lima Veras
 
Processos iniciais do mapeamento OR
Processos iniciais do mapeamento ORProcessos iniciais do mapeamento OR
Processos iniciais do mapeamento ORNécio de Lima Veras
 
Introdução aos Sistemas operacionais
Introdução aos Sistemas operacionaisIntrodução aos Sistemas operacionais
Introdução aos Sistemas operacionaisNécio de Lima Veras
 
Organizando um Repositório de Objetos de Aprendizagem para dispositivos móvei...
Organizando um Repositório de Objetos de Aprendizagem para dispositivos móvei...Organizando um Repositório de Objetos de Aprendizagem para dispositivos móvei...
Organizando um Repositório de Objetos de Aprendizagem para dispositivos móvei...Nécio de Lima Veras
 

Mais de Nécio de Lima Veras (20)

Introdução ao JavaFX
Introdução ao JavaFXIntrodução ao JavaFX
Introdução ao JavaFX
 
Introdução à analise e complexidade de algoritmos
Introdução à analise e complexidade de algoritmosIntrodução à analise e complexidade de algoritmos
Introdução à analise e complexidade de algoritmos
 
Teste de software
Teste de softwareTeste de software
Teste de software
 
Versionamento com git
Versionamento com gitVersionamento com git
Versionamento com git
 
Uma Abordagem Baseada em Agentes para Planejamento e Monitoramento de Serviço...
Uma Abordagem Baseada em Agentes para Planejamento e Monitoramento de Serviço...Uma Abordagem Baseada em Agentes para Planejamento e Monitoramento de Serviço...
Uma Abordagem Baseada em Agentes para Planejamento e Monitoramento de Serviço...
 
Jason: Componentes personalizados
Jason: Componentes personalizados Jason: Componentes personalizados
Jason: Componentes personalizados
 
Ambientes em Sistemas Multi-agentes
Ambientes em Sistemas Multi-agentesAmbientes em Sistemas Multi-agentes
Ambientes em Sistemas Multi-agentes
 
Revisão de matemática
Revisão de matemáticaRevisão de matemática
Revisão de matemática
 
Especificações iniciais de agentes inteligentes
Especificações iniciais de agentes inteligentesEspecificações iniciais de agentes inteligentes
Especificações iniciais de agentes inteligentes
 
Anotações do mapeamento OR
Anotações do mapeamento ORAnotações do mapeamento OR
Anotações do mapeamento OR
 
Hibernate-consultas
Hibernate-consultasHibernate-consultas
Hibernate-consultas
 
Mapeamento de herança OR
Mapeamento de herança ORMapeamento de herança OR
Mapeamento de herança OR
 
Relacionamentos do mapeamento OR
Relacionamentos do mapeamento ORRelacionamentos do mapeamento OR
Relacionamentos do mapeamento OR
 
Processos iniciais do mapeamento OR
Processos iniciais do mapeamento ORProcessos iniciais do mapeamento OR
Processos iniciais do mapeamento OR
 
Java swing
Java swingJava swing
Java swing
 
Introdução à linguagem UML
Introdução à linguagem UMLIntrodução à linguagem UML
Introdução à linguagem UML
 
Introdução aos Sistemas operacionais
Introdução aos Sistemas operacionaisIntrodução aos Sistemas operacionais
Introdução aos Sistemas operacionais
 
Organizando um Repositório de Objetos de Aprendizagem para dispositivos móvei...
Organizando um Repositório de Objetos de Aprendizagem para dispositivos móvei...Organizando um Repositório de Objetos de Aprendizagem para dispositivos móvei...
Organizando um Repositório de Objetos de Aprendizagem para dispositivos móvei...
 
Classes abstratas e interfaces
Classes abstratas e interfacesClasses abstratas e interfaces
Classes abstratas e interfaces
 
Desenvolvimento ágil de software
Desenvolvimento ágil de softwareDesenvolvimento ágil de software
Desenvolvimento ágil de software
 

Introdução ao desenvolvimento de agentes inteligentes com Jason

  • 1. Introdução ao desenvolvimento de agentes inteligentes com Jason por Nécio de Lima Veras
  • 2. 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).
  • 3. Agenda ● Arquitetura BDI ● AgentSpeak(L) ● Jason
  • 4. 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)
  • 5. 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...
  • 6. 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.
  • 7. Exemplo de raciocínio lógico Existirão grupos de alternativas (estados do mundo) que irão motivar o agente. Chamamos isso de DESEJOS.
  • 8. 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.
  • 9. 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”.
  • 10. A arquitetura BDI Diagrama esquemático da arquitetura BDI Revisor de crenças: Pode determinar um novo conjunto de crenças Determina o conjunto de opções disponíveis para os desejos do agente Representa o processo de deliberação
  • 11. Um agente BDI em pseudocódigo Pode-se ainda associar prioridade para cada uma das intenções, indicando grau de importância.
  • 12. Agenda ● Arquitetura BDI ● AgentSpeak(L) ● Jason
  • 13. 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);
  • 14. 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).
  • 15. 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;
  • 16. 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;
  • 17. 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 telefone não estiver ocupado, então o agente irá executar o plano indicado pela ligação para o local do evento seguindo por um protocolo de compra “...” e finalizado pela escolha dos acentos para o concerto do artista.
  • 18. 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ímbolo predicativo, ou seja, p: é um plano te: é 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:
  • 19. 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.
  • 20. Ciclo de raciocínio de um programa agente em AgentSpeak(L)
  • 21. 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;
  • 22. Percepção: r1 coleta lixo Caso ele esteja checando slots então deve realizar a seq. de ações: parar de checar; coletar o lixo continuar 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)
  • 24. 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).
  • 26. 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
  • 27. 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
  • 28. 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
  • 29. Tipos dos termos reconhecidos
  • 30. 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
  • 31. 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).
  • 32. 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
  • 33. 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
  • 34. 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;
  • 35. 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
  • 36. AgentSpeak + Jason ● Exemplo de um plano inicialmente definido: +!prepare(Something) : number_of_people(N) & stock(Something,S) & S > N <- ... .
  • 37. 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;
  • 38. 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
  • 39. 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).