【问题标题】:Simulation and Software Engineering [closed]模拟和软件工程
【发布时间】:2012-08-10 02:32:21
【问题描述】:

我想开始一个模拟项目,这将是一个离散时间的模拟。目的是模拟涉及一些非自治物理模型的代理通信,因此不一定限于纯基于代理的模拟。在开始之前,我想问一下确实存在哪些特定于仿真的软件工程实践,例如测试实践(适合 TDD?仿真往往是高度不确定的),从软件工程的角度来看,哪些问题是常见的、经常发生的问题等等。我说的不是建模过程,而是使用现有模型实现系统的过程。非常欢迎相关书籍推荐。

谢谢。

【问题讨论】:

  • 把这个问题分解成一系列问题,更好地描述你的问题、你困惑的部分以及你自己的想法,他们会得到比这个问题更好的回答。
  • 这是一个一般性问题,询问哪些实践已经发展并证明在开发模拟软件方面表现良好。
  • 我理解你的问题。我告诉你,这不是很好,你可以通过一些方式提出一些更好的问题。

标签: simulation agent agent-based-modeling


【解决方案1】:

软件工程和(基于代理的)仿真软件开发中的一个常见问题是处理浮点数数。

由于并非所有实数都可以用计算机中使用的浮点格式精确表示,因此随着时间的推移,在经过多次运算的模拟中会产生小错误并影响最终结果。

此外,在不同硬件和软件平台上实现浮点运算的方式的微小差异可能会导致在不同系统上运行模拟时产生不同的结果。

请参阅这些链接,了解有关这对基于代理的模型的影响的一些广泛研究:

http://www.macaulay.ac.uk/fearlus/floating-point/
http://jasss.soc.surrey.ac.uk/8/1/5.html

【讨论】:

    【解决方案2】:

    Marcin 是对的,这个问题太宽泛了,除了 It Depends.

    之外没有correct answer

    主要原因是仿真软件首先仍然是“只是”软件,工程部分非常取决于您的要求(编程语言、软件用途、时间预算、资源限制等)。 当然,可能会涉及其他步骤(例如 VV&A),并且某些任务需要格外小心,例如测试,但这一切都取决于具体情况。

    另外,在你开始破解之前,你有没有看过现有的工具——也许有一个你可以依赖的库或框架?如果是这样,哪些方法在那里有效?

    除了一般性介绍(如this),大多数书籍和论文还专注于仿真软件的特定子集(例如 C++ 中的仿真软件,或基于代理的仿真,或并行和分布式仿真)。因此,如果没有更多上下文,甚至很难将您指向相关材料。

    【讨论】:

    • 感谢您的建议。我在这里找到了答案:tinyurl.com/8utw42g 这正是我想要的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-03
    相关资源
    最近更新 更多