Modelica 中基于代理的建模

Agent Based Modeling in Modelica

是否可以在Modelica中模拟多智能体系统?我说的是 Java 中编写的 MASON 系统。这有多容易或多困难? 据我了解,Modelica 不是一种典型的编程语言,那么它会特别有用还是 modelica 语言的基本设计会带来任何障碍?更重要的是,我们将如何对基于代理的建模中常见的 "messaging" 系统建模?

Modelica 可以模拟离散事件系统。存在一些库:ModelicaDEVS、ARENALib 等。

也许这个"Messaging"的语法还不完善,但也许语言会朝着这个方向进一步改进。

一个优势可能是可以创建具有实时能力的代码,因此代理可以 运行 在嵌入式系统中,即使是硬实时 - 只有一些其他工具支持这一点,如 Ptolemy II。

P.S。 (添加见第一条评论):

从一开始,Modelica 就旨在创建能够实时 运行 的代码。因此,您可以采用未更改的 modelica 代理模型将 IO 连接到传感器和执行器,并将其下载到实时硬件(例如 PowerPC)上。然后,您的代理群将完全满足您建模并真实存在的时间行为。您也可以在硬件中只有一个真正的代理(也许这个硬件很昂贵),并使用您未更改的模型在实时模拟器硬件上实时模拟与所有其他代理的交互。

这是为什么 Modelica 的语义不是动态的主要原因之一,例如Java。如果你想 运行 你的 MASON 代理在真正的硬件上你有麻烦了:你必须移动到例如。安全关键 Java,这意味着您的代码以及标准 Java 库的许多结构必须重写或根本不允许。如果没有这个,你将不得不忍受你的代理人可能会错过他的任务并烧毁房子......