我是 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 Simulation 的指导,如何处理?
谢谢大家
最佳答案
在 Jason 中,您定义代理人相信什么以及代理人有什么目标。还有一个实现这些目标的计划概念。信念代表代理可用的信息。比如根据agent自己的信息,agent的年龄是30岁。
age(30)[Source(self)].
Status(single)[Source(self)].
或者例如代理认为它喜欢其他代理:
likes(anotherAgent).
目标表示代理想要实现的事态,例如,您的代理可能想写一本书或找一份工作:
!write(book).
!find(job).
除了这些目标之外,我们还可以定义测试目标来检查是否满足条件:
?married(A).
An AgentSpeak plan has the following general structure:
triggering_event : context <- body.
• where:
- the triggering event denotes the events that the plan is meant to handle;
- the context represent the circumstances in which the plan can be used;
- the body is the course of action to be used to handle the event if the context is believed true at the time a plan is being chosen to handle the event.
您应该制定计划,帮助将代理人的状态从单例转变为已婚或从失业转变为找到工作。例如,agent 可能需要首先检查它是否认识某人,或者如果已经认识,agent 应该检查它是否喜欢某人,或者您需要定义的任何其他规则作为 agent 选择合作伙伴的偏好。
有一个book这可以帮助您入门: 还有一个活跃的mailing list在杰森网站上可用。
关于artificial-intelligence - 如何在 Jason (Agentspeak) 中模拟动态行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31108176/