如何在Jason(Agentspeak)中模拟动态行为

时间:2015-06-29 05:10:06

标签: artificial-intelligence agent agent-based-modeling

我是Jason(Agentspeak)的初学者,在Jason使用Multi-agent模拟从事社交模拟项目。我刚开始Jason,所以这个声明式语言的初学者。我想模拟随时间变化的人们行为。

// the code statement might be
Like an agent have characteristics
Age=30 years
Marital status = unmarried
education= college
employment= unemployed
etc etc

现在我想虚拟地模拟多个代理并模拟20年。因此,基于已经定义的标准,我想知道在代理人生活中发生了哪些转变(未婚,从大学到大学结婚或从失业到就业等的就业)。

我需要关于杰森的模拟指导,如何处理?

感谢大家

1 个答案:

答案 0 :(得分:2)

在Jason中,您可以定义代理人所信奉的内容以及代理商的目标。还有一个实现这些目标的计划概念。信念代表了代理商可用的信息。例如,根据代理商自己的信息,代理商的年龄为30岁。

age(30)[Source(self)].
Status(single)[Source(self)].

或者例如代理人认为它喜欢其他代理人:

likes(anotherAgent).

目标代表代理想要实现的事务状态,例如您的代理可能想要写书或找工作:

!write(book).
!find(job).

除了这些目标之外,我们还可以定义检查条件是否满足的测试目标:

?married(A). 
  
    

AgentSpeak计划具有以下一般结构:

         

triggering_event : context <- body.

         

•where:

         
        
  • 触发事件表示计划要处理的事件;
  •     
  • 上下文代表可以使用该计划的情况;
  •     
  • 如果在选择计划时上下文被认为是真实的,则身体是用于处理事件的行动方案     处理这个事件。
  •     
  

您应该定义计划,这些计划可以帮助将代理人的状态从单身变为已婚或失业以找工作。例如,代理可能需要首先检查它是否知道某人,或者如果已经知道,代理应该检查它是否喜欢某人,或者您需要定义的任何其他规则作为代理人选择合作伙伴的偏好。

有一个book可以帮助您入门: 杰森网站上还有一个活跃的mailing list