2016-12-07 7 views
1

AnyLogicで先読みシミュレーションを実行できますか? 具体:変数の2つの値を用いて時間T AnyLogic:先読みシミュレーション

  • まで

    1. シミュレーションは、並列にT + Tまでの両方の値のためにシミュレート。
    2. T + tでシステム状態を評価し、より良いパフォーマンスにつながる変数の値を選択します。
    3. 変数から選択した値を使用してTからシミュレーションを続けます。

    これは実装しようとしている基本機能です。変数値は意思決定ツリーから取得できますが、これは実装に影響を与えません。

    誰かがこのようなことをしていれば教えてください。

  • 答えて

    2

    はい、Javaコードによっては可能です。

    1. 親の実験を一時停止し、時刻Tにスナップショットを保存します。
    2. 親実験から2つの新しい実験を作成します。
    3. 2つの新しい実験でスナップショットを読み込みます。
    4. 両方の実験を時間T + tまで実行し続けます。
    5. 親の実験に通知を送信し、結果を比較し、最適な値を割り当ててシミュレーションを続行します。

    いくつかの点は、UIコントロールまたはコードによって手動で行うことも、コードによってのみ行うこともできます。

    +0

    スナップショットの一時停止、保存、読み込みのために呼び出されるメソッドが見つかりました。 runTillTime()メソッドと2つの実験間のコミュニケーションについて教えてください。 –

    +0

    「変数の2つの値を使用して、両方の値をT + tまでシミュレートする」ということは、モデルの設計について心配する必要があることを意味します。このミッドランへの変更は、変数を変更したときの効果を「連鎖」するためのAnyLogicパラメータ)。モデルの機能性によっては問題ありません。 –

    +0

    @SwapRenushe、時間T + tまで実行する: 'getEngine()。runFast(time()+ constant);'。実験コミュニケーション:別の実験で実験インスタンスを作成するため、親実験で新しい実験への参照を保存するだけです。最上位のエージェントとそのすべてのメンバを '((Main)getEngine()。getRoot())'のようなもので取得できます。 –

    関連する問題