1

我是 Netlogo 模拟主题的新手。我正在收集有关调用不同交通模拟器的信息。Netlogo 是否有可能通过控制代理或流量的库接收来自 Java 端的调用,或者有一些扩展能够通过一些外部逻辑来处理它?

例如,SUMO 模拟器是完全为交通模拟而设计的,使用 TraCI 连接很容易控制它。是否有可能仅使用 Java/Python/C++ 代码在 NetLogo 中编写类似的网格模拟,或者 NetLogo 模拟器需要在 NetLogo 界面中使用清晰的徽标语义代码?

我的比较是由我对使用命令行、库或 API 的特定解决方案性能的调查引起的。似乎 NetLogo 需要受 Logo 启发的代码,它使用 GUI 界面模拟流程。这个系统中的 GUI 似乎是一个相当大的减速...

由于它没有通信接口,而且似乎是一个基于 GUI 的单线程模拟器,我认为它主要用于基本模拟。

我对这个假设是否正确?它是不是一个不能在大型分布式系统中使用并且通常用于学生展示目的的标志启发解释器?

4

2 回答 2

2

NetLogo 可以与 Java、R、Mathematica 通信,不知道还有什么。但是 NetLogo 不适合构建 GUI 界面,它提供了仿真引擎。不仅仅是学生展示,但我可能不会在超过 50,000 个代理时使用它,因此不适用于大型分布式系统

于 2021-03-20T13:12:26.627 回答
2

您不需要使用 NetLogo GUI;您可以纯粹从命令行运行模拟,如此处所述:http: //ccl.northwestern.edu/netlogo/docs/behaviorspace.html#advanced-usage

研究人员这样做实际上很常见,通常是为了他们可以在集群上运行实验。已经发表了数百篇使用 NetLogo 作为模拟基础的研究论文。NetLogo 也是一种教学工具,但将其描述为仅用于“学生展示”的目的与事实相去甚远。

NetLogo 语言本身是单线程的,但 BehaviorSpace 支持并行执行多个模拟运行(在 GUI 或命令行中,无论哪种方式)。

我不知道您所说的“缺少通信接口”是什么意思;我认为你在那里被误导了。NetLogo 可以并且已经连接到许多其他工具和系统,并且可以通过 Java API 进行扩展。

但是你必须用Logo的方言NetLogo语言来编写你的模拟吗?是的你是。该语言可以通过扩展 API来增强,但如果你想完全避免使用 NetLogo 语言,那么 NetLogo 不是一个好的选择。

于 2021-03-24T19:38:30.917 回答