2016-12-07 49 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())' –