【问题标题】:How to make a simulation of a dynamic behavior in Jason (Agentspeak)如何在 Jason (Agentspeak) 中模拟动态行为
【发布时间】:2015-09-15 11:21:45
【问题描述】:
我是 Jason(Agentspeak) 的初学者,在 Jason 中使用多智能体模拟进行社会模拟项目。我刚开始 Jason,所以是这种声明性类型语言的初学者。我想模拟随时间变化的人们的行为。
// the code statement might be
Like an agent have characteristics
Age=30 years
Marital status = unmarried
education= college
employment= unemployed
etc etc
现在我想虚拟模拟多个代理并模拟 20 年。因此,根据已经定义的标准,我想知道代理生活中发生了哪些转变(未婚或从大学到大学的教育或从失业到就业等)。
我需要有关 Jason 模拟的指导,如何处理?
谢谢大家
【问题讨论】:
标签:
artificial-intelligence
agent
agent-based-modeling
【解决方案1】:
在 Jason 中,您定义了代理人的信念和代理人的目标。还有一个实现这些目标的计划概念。信念代表代理人可获得的信息。例如,根据代理人自己的信息,代理人的年龄为 30 岁。
age(30)[Source(self)].
Status(single)[Source(self)].
或者例如代理认为它喜欢其他代理:
likes(anotherAgent).
目标代表代理想要达到的状态,例如您的代理可能想要写一本书或找一份工作:
!write(book).
!find(job).
除了这些目标之外,我们还可以定义测试目标来检查是否满足条件:
?married(A).
AgentSpeak 计划具有以下一般结构:
triggering_event : context <- body.
• 其中:
- 触发事件表示计划要处理的事件;
- 上下文表示可以使用该计划的情况;
- 如果在选择计划时上下文被认为是正确的,则主体是用于处理事件的操作过程
来处理事件。
您应该制定计划,帮助将代理人的身份从单身转变为已婚,或从失业转变为找到工作。例如,代理可能需要首先检查它是否认识某人,或者如果已经知道,代理应该检查它是否喜欢某人,或者您需要定义为代理选择合作伙伴偏好的任何其他规则。
有一个book 可以帮助您入门:
Jason 网站上还有一个活跃的mailing list。