Anylogic 确定性参数变化
Anylogic deterministic parameter variation
新年祝福。我对参数变化有疑问。使用 python 脚本,我生成了多个要通过模拟进行评估的解决方案。主要变量称为 individual,我希望针对特定范围(例如 1-10)执行模拟,我会在其中检索该范围内每个值的模拟结果。但是,当我将结果导出到 excel 时,存在一些随机化,即并非所有个体值都被导出,但例如个体 0、10、5、4、1。我认为这是由于种子值。是否有一个种子值可用于按照正常顺序模拟范围内的每个单独值,例如 1,2,3 .... 10?或者有其他解决方案吗?
编辑:如果用户选择 min-max-step 选项,模型会 运行 足够的次数来覆盖所有值。
是的,这是由于模拟中使用了随机种子。您需要确保进行足够的复制,以便覆盖所有值。如果您的参数在 1-10 范围内且增量为 1,那么 运行ning 10 次复制不能保证您将使用所有值。增加迭代次数,保证覆盖所有值。
确保您正确设置了 ParamVar 实验。独立于任何随机种子、复制等...如果您的设置如下所示,ParamVar 将 运行 具有所有 10 个值的模型:
所以要么是你的设置有问题,要么是你的输出有问题。我建议您从没有任何 Python 解析的简单试用开始,看看正常设置是否有效。找到根本原因(不是复制设置)
注意:如果您 运行 使用“固定种子”,模型将 运行 10 次使用相同的种子但 myParam
的值不同。
另请注意:当您允许并行计算时,运行 的 序列 可能会随机出现:您无法确定哪个先开始,哪个先结束。关闭并行评估,事情按顺序开始和完成:
新年祝福。我对参数变化有疑问。使用 python 脚本,我生成了多个要通过模拟进行评估的解决方案。主要变量称为 individual,我希望针对特定范围(例如 1-10)执行模拟,我会在其中检索该范围内每个值的模拟结果。但是,当我将结果导出到 excel 时,存在一些随机化,即并非所有个体值都被导出,但例如个体 0、10、5、4、1。我认为这是由于种子值。是否有一个种子值可用于按照正常顺序模拟范围内的每个单独值,例如 1,2,3 .... 10?或者有其他解决方案吗?
编辑:如果用户选择 min-max-step 选项,模型会 运行 足够的次数来覆盖所有值。
是的,这是由于模拟中使用了随机种子。您需要确保进行足够的复制,以便覆盖所有值。如果您的参数在 1-10 范围内且增量为 1,那么 运行ning 10 次复制不能保证您将使用所有值。增加迭代次数,保证覆盖所有值。
确保您正确设置了 ParamVar 实验。独立于任何随机种子、复制等...如果您的设置如下所示,ParamVar 将 运行 具有所有 10 个值的模型:
所以要么是你的设置有问题,要么是你的输出有问题。我建议您从没有任何 Python 解析的简单试用开始,看看正常设置是否有效。找到根本原因(不是复制设置)
注意:如果您 运行 使用“固定种子”,模型将 运行 10 次使用相同的种子但 myParam
的值不同。
另请注意:当您允许并行计算时,运行 的 序列 可能会随机出现:您无法确定哪个先开始,哪个先结束。关闭并行评估,事情按顺序开始和完成: