以编程方式启动AnyLogic实验

时间:2017-03-09 15:59:01

标签: anylogic

我需要进行大量的实验,并希望在夜间这样做,以尽可能少浪费时间。我有一些输出可以使用PrintWriter导出,但我需要能够以编程方式在另一个之后开始下一个实验。

类似

After experiment:
    Experiment63.start().run();    

1 个答案:

答案 0 :(得分:1)

如果参数变异实验不能满足您的需求且真的需要运行多种灵敏度分析,请尝试以下操作:

  1. 制作新的Custom Experiment
  2. 删除属性窗口中的所有内容
  3. 使用YourExperimentClass.main(new String[] {})开始每个实验。
  4. 例如,假设您要运行三个敏感度分析:

    SensitivityToHeatExperiment.main(new String[] {}); SensitivityToSpeedExperiment.main(new String[] {}); SensitivityToFrictionExperiment.main(new String[] {});

    这些调用为每个实验提供了一个窗口。由于实验不会自动启动,如果您不想多次单击“运行”,则需要添加该逻辑!在每个实验的Initial experiment setup部分中,添加run();。这会自动为您启动模拟。

    我还没有弄清楚如何使用这种方法自动关闭窗口:system.exit(0)experiment.close()关闭实验打开的所有窗口,所以你会需要一种方法来判断所有实验是否都已完成。一种选择是使用公共文件和FileLock来确保模拟不会遇到并发问题。请注意,如果所有敏感性实验都需要写入常见文件,FileLock可能会很方便。