我有一个问题,我需要使用先前保存的具有不同随机性种子的SimState运行多个模拟。我还没有设法使它起作用。

我尝试使用

set_param('mod/Random Number', 'Seed', '3324')


如果我不使用以前保存的SimState,这将起作用,但是当我使用SimState尝试此操作时,所有模拟仍然以相同的随机数结束(我猜是新设置的种子被忽略了,而是保存了种子尽管我尝试查看SimState数据结构,但仍无法使用SimState中的数据,但我真的无法弄清楚它是否包含过去的种子,以及它是否确实应该如何进行更改)。

我在这里最好的方法是什么?理想情况下,我将只调用一个函数(shuffle_seeds),所有随机块中的所有种子都将重置为新的东西。

注意:我的临时解决方案是使用自定义输入端口(在根级别),然后为每个时间步提供统一或正态分布的数字输入,但这不是一个很好的解决方案(并且很难将其用作值如果在任何其他块中使用了小于1的采样时间,则会进行插值)。

最佳答案

您是否已打开或关闭“内联参数”?如果已将其打开,则可以尝试使seed参数成为可调参数。 documentation中有关于可调参数的更多信息。如果禁用Inline Parameters,则我认为它会起作用,因为SimState不会在SimState中,尽管我对此并不乐观。

08-16 00:36