我是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年。因此,基于已经定义的标准,我想知道在代理人生活中发生了哪些转变(未婚,从大学到大学结婚或从失业到就业等的就业)。
我需要关于杰森的模拟指导,如何处理?
感谢大家
答案 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。