【问题标题】:AnyLogic: Look ahead simulationAnyLogic:前瞻性模拟
【发布时间】:2017-04-22 05:55:15
【问题描述】:

是否可以在 AnyLogic 中执行前瞻模拟? 具体来说:

  1. 模拟到时间 T.
  2. 使用一个变量的 2 个值,并行模拟这两个值直到 T+t。
  3. 评估 T+t 时的系统状态,选择能带来更好性能的变量值。
  4. 使用选定的变量值从 T 继续模拟。

这是我试图实现的基本功能。变量值可以取自决策树,不会影响实现。

如果有人做过类似的事情,请告诉我。

【问题讨论】:

    标签: decision-tree anylogic event-simulation


    【解决方案1】:

    是的,可以使用一些 Java 代码。你可以:

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

    有些点可以通过 UI 控件或代码手动完成,有些——仅通过代码。

    【讨论】:

    • 我可以找到暂停、保存和加载快照的方法。能否请您指导我有关 runTillTime() 方法和两个实验之间的通信?
    • “使用一个变量的 2 个值,同时模拟两个值直到 T+t”也意味着您需要担心设计模型,以便对这个中期运行的更改是“干净的” (可能使用 AnyLogic 参数的更改功能来“链接”更改该变量的任何影响)。根据您的模型功能,这可能没问题。
    • @SwapRenushe,运行到时间 T+t:getEngine().runFast(time() + constant);。实验通信:由于您是从另一个实验创建实验实例,因此只需将对新实验的引用保存在父实验中即可。您可以通过以下方式获取其顶级代理及其所有成员:((Main)getEngine().getRoot())
    猜你喜欢
    • 1970-01-01
    • 2018-09-04
    • 2013-06-23
    • 2020-10-14
    • 2018-01-20
    • 2012-07-22
    • 1970-01-01
    • 2010-09-06
    • 2016-07-27
    相关资源
    最近更新 更多