以编程方式启动 AnyLogic 实验

Starting AnyLogic experiment programmatically

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

所以像

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

如果参数变化实验没有满足您的需要,而您确实需要运行多重敏感性分析,试试这个:

  1. 新建一个Custom Experiment
  2. 删除属性中的所有内容window
  3. 使用YourExperimentClass.main(new String[] {})开始每个实验。

例如,假设您对 运行 进行了三个敏感性分析:

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

这些调用会为每个实验带来一个 window。由于实验不会自动开始,如果您不想多次点击 "run",则需要添加该逻辑!在每个实验的 Initial experiment setup 部分,输入 run();。这会自动为您启动模拟。

我还没有完全弄清楚如何使用这种方法自动关闭 windows:system.exit(0)experiment.close() shut all windows 由实验打开,因此您需要一种方法来判断是否所有实验都已完成 运行ning。一种选择是使用公共文件和 FileLock 来确保模拟不会遇到并发问题。请注意,如果所有灵敏度实验都需要写入公共文件,FileLock 可能会很方便。