2016-12-07 103 views
1

是否可以在AnyLogic中执行预测模拟? 具体来说:AnyLogic:展望未来模拟

  1. 模拟直到时间T.
  2. 使用可变的2个值,模拟为两个值,直到并行T +吨。
  3. 在T + t处评估系统状态,选择导致更好性能的变量值。
  4. 继续使用变量的选定值从T进行模拟。

这是我试图实现的基本功能。变量值可以从决策树中获取,不应该影响实现。

请让我知道是否有人做过这样的事情。

回答

2

是的,它可能与一些Java代码。您可以:

  1. 暂停父实验,在时间T保存快照;
  2. 从父母实验中创建两个新实验;
  3. 在两个新实验中加载快照;
  4. 继续执行两个实验直至时间T + t;
  5. 发送通知到父实验,比较结果,分配最佳值并继续模拟。

一些要点可以用UI控件或代码手动完成,有些只能通过代码完成。

+0

我可以找到要暂停,保存和加载快照的方法。你能指导我关于runTillTime()方法和两次实验之间的交流吗? –

+0

“使用变量的两个值,并行模拟两个值,直到T + t”也意味着您需要担心设计模型,以便中间运行的更改是“干净的”(可能使用on-change功能的AnyLogic参数'链接'改变该变量的任何影响)。根据你的模型功能,这可能没有问题。 –

+0

@SwapRenushe,运行到时间T + t:'getEngine()。runFast(time()+ constant);'。实验交流:由于您是通过另一个实验创建实验实例的,只需在父实验中保存对新实验的参考。你可以通过如下方式获得顶级代理及其所有成员:'((Main)getEngine()。getRoot())' –