如何分析/优化模拟工具?
问题描述:
在过去和现在间歇地,我已经使用了模拟工具,如Easy Java Simulations和NetLogo。如何分析/优化模拟工具?
它们是可视化建模各种数学/复合概念的理想工具,因为“你所要做的”就是编写模拟循环 - 图形等将为你处理。
但是,我注意到的一件事是,使用这样的工具提高执行时间/建模速度非常困难,因为实现的内部隐藏在表面之下。
关于如何使用模拟器工具,一般来说都有很好的文档,但是在改善执行时间方面我还没有找到任何东西。
例如,假设你正在实施牛顿方法寻根。这是一个直接的算法,但是根据
- 运用图片附件,或
- 各种其他各种选项的选择
模拟会以不同的速度运行的类型。
有没有办法确定模拟数据的“最佳”显示?
我在使用这样的工具来教授关于建模/科学编程的课程时,正考虑这个问题。
答
如果一切都失败了,你可以用这两种方式的组合:
- 揣测环境:问问自己,你将如何实现其功能,然后推断其功能很可能将需要最少的计算工作。
- 试错法:只是通过测试它们来比较不同的方法。如果环境有一定的代码定时功能,例如(准确地)告诉你现在是什么时间的函数,那么这会有很大的帮助。
不要忘记效果,如内存缓存和优化。如果您尝试在特定环境中使用特定功能,它可能会与您以前的体验有所不同。
答
您可以尝试使用Repast Symphony代理仿真工具包。 这是一个成熟的,免费的,开源的编程环境,有很多有用的功能。 您可以将包含profiler plugin的Repast与Eclipse集成在一起。
的NetLogo有包括一个分析器扩展 – Matt 2010-11-11 05:23:17