在Modelica中模拟多智能体系统是否可行?我指的是像Java中编写的MASON这样的系统。这会有多容易或困难? 据我了解,Modelica不是一种典型的编程语言,所以它是否特别有帮助或者Modelica语言的基本设计是否会造成任何阻碍呢?更重要的是,我们将如何建模代理模型中常见的“消息传递”系统?
在Modelica中模拟多智能体系统是否可行?我指的是像Java中编写的MASON这样的系统。这会有多容易或困难? 据我了解,Modelica不是一种典型的编程语言,所以它是否特别有帮助或者Modelica语言的基本设计是否会造成任何阻碍呢?更重要的是,我们将如何建模代理模型中常见的“消息传递”系统?
Modelica可以模拟离散事件系统。已经存在一些库:ModelicaDEVS、ARENALib等。
也许这种“消息传递”的语法还不完美,但也许语言将进一步朝这个方向改进。
一个优点可能是可以创建实时可用的代码,因此代理可以在嵌入式系统中运行,即使是硬实时情况下也可以 - 只有其他一些工具支持这样做,例如Ptolemy II。
P.S.(附加见第一条评论):
从一开始,Modelica就被设计为创建能够在实时环境下运行的代码。因此,您可以采用未更改的代理Modelica模型,将IO连接到传感器和执行器,并将其下载到实时硬件(例如PowerPC)。您的代理群将按照您建模的时间行为准确地执行并存在于现实中。此外,您可以只在硬件上拥有一个真正的代理(也许这个硬件很昂贵),并在实时模拟器硬件上使用您的未更改模型来模拟与所有其他代理的交互。
这是Modelica语义不那么动态的主要原因之一,例如Java。如果您想在真实硬件上运行MASON代理,则会遇到麻烦:您必须转向Safety Critical Java,这意味着您的代码和标准Java库的许多构造必须重新编写或根本不允许。如果没有这个,您将不得不接受代理可能会错过任务并烧毁房子的可能性...