下面概述了如何使用 AnyLogic 使用的现有模拟框架来实现这一点
您需要利用模拟设置来运行模型的多次运行并保存输出。我建议的设置如下:
在模拟实验页面(运行模型时看到的第一页)上有一个按钮,您将使用它来启动多个模型运行。在这里,您可以使用以下命令将引擎设置为不以实时模式运行
getEngine().setRealTimeMode(false);
您可能还想设置初始种子和一些其他模型参数,您可能还想更改这些参数,并可能在模型执行后保存它们。当您按照您想要的方式设置模型后,使用 run() 开始运行模型。
现在,在“Java 操作”部分下的“模拟实验”设置页面下,您需要指定模型运行完毕后必须执行的操作。在“模拟运行后”部分中,编写一些代码以将模型中的数据保存到 Excel 文件中。要从模型访问变量和对象,请使用 root,例如
saveSomeData(root.myDataset);
其中 saveSomeData 是“模拟”页面上的一个函数,用于将模型上找到的数据集(称为 myDataset)保存到 Excel 文件。如果您更改了种子和特定参数,最好将其保存到 Excel 文件以供将来参考。
保存模型的数据输出后,您可以指定新的种子,并且可能再次更改参数,然后再次调用 run() 以运行模型进行另一次迭代。当模型完成运行时,它将再次调用此处的“模拟运行后”代码,因此请设置停止条件,否则它将继续运行一个又一个迭代。您可以使用以下方式访问模型运行的次数
getEngine().getRunCount()
另外,你的模型需要有一些停止条件,否则一旦开始运行它就永远不会停止。您可以在“模型时间”部分下的“模拟实验”页面中指定这一点,或者使用以下方式在模型中以编程方式指定:
finishSimulation();