基于代理的仿真:为什么Netlogo的运行速度比基于Java的Repast快得多

时间:2019-07-12 18:25:19

标签: netlogo agent-based-modeling repast-simphony

每个人都说Jave是用于大型系统和工程项目的语言,其运行速度比大多数其他语言都要快得多。我只是将它与另一种基于Agent的建模语言-Netlogo进行了比较,发现Netlog在经典的狼羊模拟模型中比基于Jave的Repast快四倍。两种模型都使用相同的参数进行仿真,并实时运行5秒钟。 Netlogo可以模拟8000多个时间步,而Jave Repast只能执行2600多个时间步。为什么?

enter image description here

1 个答案:

答案 0 :(得分:6)

如果您将Netlogo与Repast Simphony Wolf-sheep捕食演示与默认设置进行比较,则这是不公平的比较,因为Repast模型的功能更多。 Repast模型正在执行基于文件的数据记录,图表渲染,2D显示渲染和3D显示渲染。 Repast和Netlogo显示器都有更新设置,这些设置确定它们相对于刻度计数的渲染速度,并且显示渲染速度高度依赖于GPU。

为了更好地比较性能,我们需要创建一个更准确的测试环境。我使用默认参数运行了Netlogo演示,并且未选中“查看更新”,因此显示不会更新,但是图表仍会更新。运行模型20,000次滴答大约需要14秒钟。我通过删除文件记录并关闭2D和3D显示并仅保留图表显示来修改Repast演示,并运行了20,000个滴答声的模型,这也需要大约14秒钟。因此,此演示的Repast和Netlogo的性能完全相同。

我们还应该考虑Repast和Netlogo中具有默认参数的演示模型都是具有有限复杂性的TOY模型。通常,在科学研究中使用的更为复杂的模型中,主体行为是如此复杂,以至于个人行为的计算时间比工具箱框架的代码时间长一个数量级,这使得这些类型的比较不能充分说明工具箱的能力