在行为搜索中加载基于变量的参数

Loading Variable-Based Parameters in Behavior Search

我正在使用 Behavior Search 为 20 个不同的医院单位校准我的 NetLogo 模型。我正在使用全局变量为我的模型中的几个滑块设置最小值和最大值,但我认为当我尝试从模型加载参数值时,这会导致行为搜索出错。但是,我不想每次使用行为搜索时都手动输入这些参数范围。

有没有办法解决这个错误?有没有办法将特定滑块的最小值和最大值设置为常量,而不是使用全局变量?

感谢您的帮助!

这里是 BehaviorSearch 开发人员——如果我没有正确理解你的问题,你的 NetLogo 模型有一个滑块,它有一个 min/max 约束,它没有设置为常量,而是设置为全局变量(在滑块设置中,从 NetLogo 界面访问)。

当我使用 BehaviorSearch GUI 选择这样的模型,然后单击 "Load parameter ranges from model interface" 按钮时,我得到该约束的值 0。 (我没有看到任何错误消息——只有值 0(如果你收到的是错误消息,那么我可能没有正确理解你的情况,也许你可以 post 确切地知道你的错误消息是什么看到了吗?)

如果您在特殊启动过程中将滑块 min/max 设置为全局值(请参阅:http://ccl.northwestern.edu/netlogo/docs/dict/startup.html),这将是 even,因为只有在 NetLogo GUI 中加载模型时才 运行 启动,而不是在无头 NetLogo 中加载模型时。

因此,很遗憾,我认为您问题的答案是:"no, there isn't a way to get BehaviorSearch to load the parameter ranges from global variables within the model"。

一些可能的解决方法:

  1. BehaviorSearch 是开源的——可以对其进行一些更改——即,也许在 BehaviorSearch GUI 加载参数范围时添加对 "startup" 的调用就足够了你.

  2. 如果您只进行几次搜索,我不明白为什么手动编辑参数范围会特别繁重。但是,如果您使用此模型生成大量不同的搜索,那么我可以看出这可能是个问题。 .bsearch 文件只是 XML 文本文件,因此您可以考虑在没有 BehaviorSearch GUI 的情况下生成它们,例如使用脚本语言。