実際の製造プロセスのマルチエージェント シミュレーション モデルを作成して、ディスパッチ ルールを評価したいと考えています。シミュレーションでは、実際の製造イベント ログと比較してディスパッチ ルールの時間効果を評価するために、イベント ログを生成する必要があります。
「現在のシミュレーション時間」を、この種のマルチエージェント、メッセージ パッシングの集中的なシミュレーションにどのように組み込むことができますか?
背景:
システム内のエージェントは比較的複雑な動作とルーティング要件を表し、ディスパッチ ルールでは頻繁に通信する必要があるため、(時間の進行を適切に処理する) 古典的な離散イベント シミュレーションはここでは適用できません。このプロセスやその他のプロセスの複雑さにより、集中型のスケジューリング アプローチも除外されます。
製造科学では、製造関連の問題を解決するためにマルチエージェント シミュレーションを使用した何千もの論文があります。ただし、これらのシミュレーションの内部の仕組みや実装の詳細を必要な詳細で説明している論文をまだ見つけていません。
残念ながら、プロセス時間の範囲が 0.1 秒から 24 時間の間であるため、システム内の離散時間ステッピングに最短のプロセス時間を使用することは実行不可能な場合があります。私のシミュレーションは後でプロジェクトの what-if 評価に使用される可能性があるため、シミュレーションをできるだけ速く実行する必要があります。夜間のシミュレーション実行のオプションはありません。
問題のサイズは、約 500 のリソースと 1000 から 10000 の製品エージェントであり、それらのほとんどは終了しており、それ以上のコミュニケーションやリソース占有に参加していません。
その結果、コミュニケーションの結果として、新しいイベントは、元の「次回」イベントが到着する前に、エージェントが何かを行うようにトリガーできます。たとえば、エージェントは現在、1 時間続くリソースでブロックされています。ただし、優先度の高い別のエージェントがすぐにそのリソースを必要とし、最初のエージェントにそのリソースを解放するように依頼します。
ある意味では、従来のメッセージ パッシング エージェント シミュレーションと離散イベント シミュレーションのハイブリッドを作成する方法が必要です。
私は、すべてのメッセージに関与するメディエーター エージェント (メッセージ ルーターと、メッセージとタイマー ティック イベントを送信するタイム エンフォーサー) を考えました。また、メディエーター エージェントは、さまざまなエージェントの次のイベント時間のリストを保持します。しかし、この概念はメディエーター エージェントに大きなプレッシャーを与えるため、問題を解決するためのより良い方法があるはずだと感じています。
アップデート
少し時間がかかりましたが、なんとかミニフレームワークを作成し、DES とエージェントの概念を 1 つにまとめることができたようです。新しいものではないと確信していますが、少なくともユニークです: http://code.google.com/p/tidra-framework/興味がある場合。