使用的版本:带有iNET 3.4.0的OMNeT ++ 5.0
使用OMNeT ++我正在运行一些具有大量重复的模拟。 在某些情况下,我不了解系统的行为,所以我想使用Qt观察程序。因此,我需要重复先前模拟重复的一些特殊情况。
即使我使用完全相同的配置文件和相应的种子集,我也没有得到所需的重复,所以我得到完全不同的结果。可能是什么原因?
分析生成的日志文件的标题,以下几行只有差异:
run General-107342-20170331-15:42:22-5528
attr datetime 20170331-15:42:22
attr processid 5528
所有其他参数完全匹配。我不明白为什么结果会有所不同。 processid是否与此类行为相关?
答案 0 :(得分:2)
解决问题的一些提示:
$ mysim -r 154 -u Cmdenv
$ mysim -r 154 -u Qtenv
$ mysim -r 154 -u Tkenv
检查结果。几个问题可能导致不同的结果:
if (isGUI()) {}
块内部。首先,我会尝试弄清楚这是与GUI与非GUI相关还是使用未定义的行为。如果Tkenv和Qtenv在Cmdenv不同的情况下给出相同的结果,则它是GUI-nonGUI问题。如果所有这些都不同,我会怀疑内存问题或未定义的行为。
如果其他一切都失败了,请在Cmdenv和Qtenv中运行模拟并打开事件记录。比较日志,看看两个trajctor开始发散和调试的位置,然后围绕这一点查看分歧的原因。