Inteligência Artificial– 2015/1
Prof. Felipe Meneguzzi
Lista de Exercı́cios de Programação Orientada a Agentes
Entrega: 21 de Abril de 2015
Nome:
Programação Orientada a Agentes
1
1. Suponha que um agente tenha a seguinte biblioteca de planos (plan library):
@p1 +g (X , Y)
@p2 +g (X , Y)
@p3 +g (X , )
@p4 +g (X , Y ) [
@p5 +g (X , Y ) [
@p6 [ a l l u n i f s
: t r u e <− . . . .
: a (Y) & n o t b (X) <− . . . .
: a (Y) & Y > X <− . . . .
s o u r c e ( s e l f ) ] : t r u e <− . . . .
s o u r c e ( s e l f ) , s o u r c e ( ag1 ) ] : t r u e <− . . .
] +g ( 1 0 , Y) : a (Y) <− . . . .
.
e as seguintes crenças (beliefs):
a (10).
a (5).
b(20).
Se o evento h+g(10, 5)[source(ag1)]i é selecionado, quais planos são relevantes e quais são
aplicáveis?
Solution:
Relevantes: p1, p2, p3, p5, p6
Aplicáveis: p1, p2, p5, p6
2. Considerando que o estado da pilha de intenções de um agente é como mostrado abaixo:
+!g2 : true <− a3; a4.
+!g1 : true <− !g2.
+b : true <− !g1; a1.
(a) Qual será o estado da intenção depois que a ação a3 for executada? E depois da a4?
Solution:
Após a3:
+!g2 : true <− a4.
+!g1 : true <− !g2.
+b : true <− !g1; a1.
Após a4:
+!g1 : true <− !g2.
+b : true <− a1.
(b) Se a biblioteca de planos do agente incluir o seguinte plano:
−!g1 : t r u e <− a5 .
1 Questões
adaptadas do livro Programming Multi Agent Systems in AgentSpeak using Jason.
Lista de Exercı́cios de Programação Orientada a Agentes
Inteligência Artificial
Prof. Felipe Meneguzzi
qual será o estado da intenção acima se a ação a3 falhar?
Solution:
-!g1 : true <− a5
+b : true <− !g1; a1.
3. Assinale verdadeiro ou falso para cada uma das afirmações abaixo, justificando a resposta no caso
de a afirmação ser falsa.
(a) Em agentes, proatividade significa ser sensı́vel às mudanças no ambiente.
(a)
Falso
(b)
Verdadeiro
(b) Em Jason, ações pré-definidas iniciam com ’.’, como .send().
(c) No modelo BDI, as crenças (Beliefs) descrevem os estados em que os agentes acreditam ser
possı́veis de alcançar.
(c)
Falso
(d) Em um sistema de raciocı́nio procedural (Procedural Reasoning System), um plano possui
três componentes, um objetivo, um contexto e um corpo.
(d)
Verdadeiro
Solution:
(a) Proatividade significa ser capaz de apresentar um comportamento direcionado à objetivo.
(c) As crenças descrevem o que o agente acredita existir e ser verdade em um determinado
ambiente.
4. O robô usado no Listing 1 tem planos (identificados por h1-h3) ativados quando o agente tem
um objetivo que unifica has(owner, beer) independente do source do objetivo (i.e. pessoal ou
delegado ). Modifique estes planos para seres ativados apenas se a fonte do objetivo seja o agente
dono.
Solution: +!has(owner, beer)[source(owner)]
5. No código do robô( 1) temos dois planos para o objetivo !at. O que aconteceria se mudássemos a
ordem deles (m2 antes de m1)? O que aconteceria se o segundo plano não tivesse um contexto,
como no código abaixo?
@m1 +! a t ( r o b o t , P) : a t ( r o b o t , P) <− t r u e .
@m2 +! a t ( r o b o t , P) : t r u e
<− m o v e t o w a r d s (P ) ;
! at ( robot ,P ) .
O comportamento do robô seria o mesmo ao do código original? Neste caso, o que aconteceria se
trocássemos a ordem dos planos?
Lista de Exercı́cios de Programação Orientada a Agentes
Inteligência Artificial
Prof. Felipe Meneguzzi
Solution: Ao mudar a ordem, primeiro será testado se o plano m2 é aplicável, ao invés do
m1 (na posição original).
Na nova suposição, quando m1 não é aplicável, automaticamente m2 é aplicado. Ao invertêlos, m1 nunca será aplicado, uma vez que m2 sempre será.
Listing 1: Jason example
/∗ I n i t i a l b e l i e f s ∗/
a v a i l a b l e ( beer , f r i d g e ) .
l i m i t ( beer , 1 0 ) .
/∗ R u l e s ∗/
too much (B) :−
. d a t e (YY,MM,DD) &
. c o u n t ( consumed (YY,MM, DD, , , , B ) , QtdB ) &
l i m i t (B , L i m i t ) &
QtdB > L i m i t .
/∗ P l a n s ∗/
@h1
+! h a s ( owner , b e e r )
: a v a i l a b l e ( b e e r , f r i d g e ) & n o t too much ( b e e r )
<− ! a t ( r o b o t , f r i d g e ) ;
open ( f r i d g e ) ;
get ( beer ) ;
close ( fridge );
! a t ( r o b o t , owner ) ;
hand in ( beer ) ;
// remember t h a t a n o t h e r b e e r w i l l be consumed
. d a t e (YY,MM,DD) ; . t i m e (HH, NN, SS ) ;
+consumed (YY,MM, DD, HH, NN, SS , b e e r ) .
@h2
+! h a s ( owner , b e e r )
: not a v a i l a b l e ( beer , f r i d g e )
<− . s e n d ( s u p e r m a r k e t , a c h i e v e , o r d e r ( b e e r , 5 ) ) ;
! a t ( r o b o t , f r i d g e ) . // go t o f r i d g e and w a i t t h e r e .
@h3
+! h a s ( owner , b e e r )
: too much ( b e e r ) & l i m i t ( b e e r , L )
<− . c o n c a t ( ” The Department o f H e a l t h d o e s n o t a l l o w me ” ,
” t o g i v e you more t h a n ” , L ,
” b e e r s a day ! I am v e r y s o r r y a b o u t t h a t ! ” ,M) ;
. s e n d ( owner , t e l l , msg (M) ) .
@m1
+! a t ( r o b o t , P) : a t ( r o b o t , P) <− t r u e .
Lista de Exercı́cios de Programação Orientada a Agentes
Inteligência Artificial
Prof. Felipe Meneguzzi
@m2
+! a t ( r o b o t , P) : n o t a t ( r o b o t , P)
<− m o v e t o w a r d s (P ) ;
! at ( robot ,P ) .
@a1
+d e l i v e r e d ( b e e r , Qtd , O r d e r I d ) [ s o u r c e ( s u p e r m a r k e t ) ] : t r u e
<− +a v a i l a b l e ( b e e r , f r i d g e ) ;
! h a s ( owner , b e e r ) .
@a2
+s t o c k ( b e e r , 0 )
: a v a i l a b l e ( beer , f r i d g e )
<− − a v a i l a b l e ( b e e r , f r i d g e ) .
@a3
+s t o c k ( b e e r , N)
: N > 0 & not a v a i l a b l e ( beer , f r i d g e )
<− +a v a i l a b l e ( b e e r , f r i d g e ) .
Lista de Exercı́cios de Programação Orientada a Agentes
Download

Lista de Exerc´ıcios de Programaç˜ao Orientada a Agentes