の複数の実行を実行するために、あなたはあなたがシミュレーションのセットアップを利用するために必要なAnyLogic
が使用する既存のシミュレーションフレームワークを使用してそれを行うことができる方法の方法論の概要ですモデルを作成し、出力を保存します。私の提案する設定は次のようになります:
複数のモデルの実行を開始するために使用するシミュレーション実験ページ(モデルの実行時に最初に表示されるページ)にボタンがあります。あなたも初期シードとあなたにも変更と、おそらくモデルの実行後に保存することができますいくつかの他のモデルパラメータを設定することをお勧めします
getEngine().setRealTimeMode(false);
を使用して、リアルタイムモードで実行しないように、ここでは、エンジンを設定しました。モデルを設定したら、run()を使用してモデルの実行を開始します。
「Javaアクション」セクションの「シミュレーション実験」設定ページの下で、モデルの実行が完了した後にモデルが何をしなければならないかを指定する必要があります。 'After simulation run'セクションで、モデルからExcelファイルにデータを保存するコードを記述します。モデルから変数およびオブジェクトにアクセスするには、rootを使用します。
saveSomeDataは、ExcelファイルにmyDatasetというモデルで見つかった私のデータセットを、保存するためのシミュレーションページの機能である
saveSomeData(root.myDataset);
。シードと特定のパラメータを変更した場合は、後で参照できるようにExcelファイルに保存することも有効です。
モデルからデータ出力を保存したら、新しいシードを指定し、おそらくパラメータを再度変更してから、run()をもう一度呼び出して、別の繰り返しのモデルを実行できます。モデルの実行が終了すると、ここで「シミュレーション実行後」コードが再び呼び出されるため、停止条件を設定します。それ以外の場合は、繰り返し実行されます。あなたは、モデルの数が)
getEngineを(使用して実行されますアクセスすることができます。getRunCount()
をまた、あなたのモデルは、それが停止することはありません実行を開始するそうでないと、一部の停止条件を持っている必要があります。あなたが周期的にモデルを実行するために
finishSimulation();
「シングルラン」シミュレーション実験から複数回モデルを実際に実行しますか?もしそうなら、なぜですか?入力の読み込み/複数回の初期化を避けるだけですか? (これを実現する他の方法もありますが、設定が非常に計算コストが高いかどうかは通常は気になります)。答えは、マルチラン実験を使用するのではなく、この特殊なケースを実行することを前提としていますこれは、この目的のために設計されている。 –