仿真与软件工程

时间:2012-08-13 20:05:48

标签: simulation agent agent-based-modeling

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

感谢。

2 个答案:

答案 0 :(得分:0)

Marcin是对的,这个问题太宽泛了,除了它取决于correct answer之外还有this

主要原因是仿真软件首先仍然是“正义”软件,工程部分非常取决于您的要求(编程语言,软件的用途,时间预算,资源限制等)。 当然,可能涉及其他步骤(例如VV和A),某些任务需要额外注意,例如测试,但所有这些都取决于上下文。

此外,在你开始黑客攻击之前,你看过现有的工具 - 也许有一个你可以依赖的库或框架?如果是这样,那里有哪些方法?

除了一般介绍(如{{3}})之外,大多数书籍和论文也关注于模拟软件的特定子集(例如,C ++中的模拟软件,或基于代理的模拟,或并行和分布式模拟)。因此,如果没有更多背景,很难指向相关材料。

答案 1 :(得分:0)

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

由于并非所有实数都可以用计算机中使用的浮点格式准确表示,因此随着时间的推移,在很多操作的模拟中会出现小错误并影响最终结果。

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

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

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