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

标签 artificial-intelligence agent agent-based-modeling

我是 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/

相关文章:

从邀请文本中检测时间、日期和地点的算法

java - JVMTI 代理崩溃

java - 使用移动代理的自适应移动学习软件

Python Q 学习实现不起作用

simulation - Modelica 中基于代理的建模

real-time - 如何使用 NetLogo 从网站获取实时数据?

c++ - 具有 alpha-beta 修剪问题的 Minimax

c++ - 数独求解算法C++

java - 如何在 JAVA 中将 CNF (a ∨ ¬b ∨ c) ∧ (¬a ∨ d) 表示为列表或字符串

simulation - 如何为基于代理的模型实现基于规则的决策者?