首页 文章

在实验中管理多个任何逻辑模拟

提问于
浏览
0

我们正在开发AnyLogic 7下的ABM,并且我们希望通过单个实验进行多次模拟 . 为每个模拟运行设置不同的参数,以便为一小组标准方案生成结果 .

我们有一个自动启动的实验,无需按“运行” . 随后按下Run会增加实验计数器并重新运行模型 .

我们想要的是一种自动运行或单次运行Run的方法,启动一个模拟循环 . 在该循环内,将是对传递参数链接的变量的编程调整 .

编辑 - 一个问题是一些参数是字符串 . 优化或参数变化实验不适合枚举一组要在一组模拟运行中使用的字符串 . 您可以在一个实验中为每个模拟运行的每个参数设置一个字符串 .

我们使用帮助示例“从没有演示文稿窗口运行模型”,将自动运行功能添加到初始实验设置代码块 . 需要等待Run 0完成,然后调度Run 1,2等的方法 .

指向具有此类功能的教程模型或实验的java块代码片段的指针非常受欢迎 .

2 回答

  • 2

    也许我不明白你的需要,但这听起来好像你想要使用“参数变化”实验 . 您可以指定哪些参数应该在哪些步骤中变化,并且运行实验会根据需要自动启动尽可能多的模拟运行,所有这些都没有动画 .

    希望有所帮助

  • 1

    就像你一样,我遇到了这个问题 .
    我的目标是使用模型的参数变化和非数值数据的变化,我知道要开始的运行次数 .
    然后我在Custom Variation的帮助下成功完成了这项任务 .

    • 首先,我构建一个类型为'multiple run'的实验,创建我的GUI(用户可以选择每次运行中使用的字符串值 .

    • 然后,我创建了一个新的java类,它继承了之前的'multiple run'实验,

    在这个类(称为MyMultipleRunClass)中出现了: - getMaximumIterations方法的重载从默认实验到默认anylogic回调提供正确的迭代次数,而idnex也用于从数组中检索我的参数值, - 静态方法的实现开始,

    public static void start() {
        prepareBeforeExperimentStart_xjal( MyMultipleRunClass.class);
        MyMultipleRunClass ex = new MyMultipleRunClass();
        ex.setCommandLuneArguments_xjal(null);
        ex.setup(null);
    }
    

    然后运行的实验是'空'customExperiment,它通过呈现的子类自动启动另一个多运行实验 . 也许它存在最短的路径,但从我的角度来看,任何逻辑都被正确使用(没有非暴露界面的技巧)并且它按预期工作 .

相关问题