【问题标题】:Anylogic deterministic parameter variationAnylogic确定性参数变化
【发布时间】:2022-01-03 10:57:34
【问题描述】:

新年的美好祝愿。我对参数变化有疑问。使用 python 脚本,我生成了多个要通过模拟进行评估的解决方案。主要变量称为个体,我希望针对特定范围执行模拟,例如 1-10,在该范围内我检索该范围内每个值的模拟结果。但是,当我将结果导出到 excel 时,存在一些随机化,即并非所有单个值都被导出,而是例如个人 0、10、5、4、1。我认为这是由于种子值。是否有一个种子值可用于模拟遵循正常顺序的范围内的每个单独值,例如 1、2、3 .... 10?或者是否有其他解决方案可以实现这一目标?

【问题讨论】:

    标签: parameters anylogic variations


    【解决方案1】:

    确保正确设置 ParamVar 实验。独立于任何随机种子、复制等...如果您的设置如下所示,ParamVar 将使用所有 10 个值运行模型:

    所以要么是您的设置错误,要么是您的输出错误。我建议你从一个没有任何 Python 解析的简单试验开始,看看正常设置是否有效。找到根本原因(不是复制设置)

    注意:如果您使用“固定种子”运行,模型将使用相同的种子运行 10 次,但 myParam 的值不同。

    还请注意:当您允许并行评估时,运行的序列可能会随机出现:您无法确定哪个先开始,哪个先结束。关闭并行评估,事情按顺序开始和完成:

    【讨论】:

      【解决方案2】:

      编辑:如果用户选择 min-max-step 选项,模型运行的次数足以覆盖所有值。

      是的,这是由于模拟中使用了随机种子。您需要确保进行了足够多的复制,以便覆盖所有值。如果您有一个在 1-10 范围内且增量为 1 的参数,那么运行 10 次复制并不能保证您将使用所有值。增加迭代次数以保证覆盖所有值。

      【讨论】:

      • 感谢您的快速回复和答复。
      • 嗨@Yashar,很确定这个答案不正确,tbh。如果您将 ParamVar 设置为以 1 为步长在 1-10 之间变化,它将 100% 独立于随机种子和复制
      • 是的,这个答案绝对不正确
      • 感谢@Benjamin 和@Felipe!更正我的答案。
      猜你喜欢
      • 2021-09-12
      • 2020-05-03
      • 2021-05-11
      • 1970-01-01
      • 2021-02-02
      • 2017-05-29
      • 2021-07-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多