問題タブ [event-simulation]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
54 参照

r - R simmer: サーバーを選択するためのカスタム ロジック

simmerドローンによるワクチン配送のシミュレーションを構築しています。シミュレーション部分までの疑似コードは次のとおりです。

  1. ワクチンが必要な場所を表す、地理内の N 個の「需要地点」を生成します。データフレームにします。到着時間をデータフレーム列として追加します。優先度列を追加 - 早い者勝ち。
  2. kmeans クラスタリングを使用して、地理上の K 個のドローン ステーションの場所を見つける
  3. 各ドローン ステーションから各需要地点までの移動時間を表す N x K 行列を生成します

シミュレーションでは、ワクチンの配達は到着、ドローンはリソース (サーバー容量 1、無限のキュー容量) です。シミュレーションでこのリソース選択ロジックを使用したい:

  1. 到着したら、どのドローンが利用可能かを判断します。それらの中で、移動時間マトリックスによって決定される最短の移動時間を持つドローンを選択します。
  2. すべてのドローンが現在使用されている場合、新しい到着者は共通のキューに入れられます。ドローンが利用可能になるたびに、共通キューへの到着が優先され、キューでの最も古い到着が最優先されます。これは、最寄りのドローン ステーションからワクチンが配達されないことを意味する場合があります。
  3. seize_selected選択したドローンが到着したら、timeout移動時間、次にrelease_selectedそのドローン。

simmer パッケージ (または代替) でリソースをディスパッチするときにルーティング ロジックを使用するのロジックを適応させようとしていますが、期待どおりに機能しません。

どんな助けでも大歓迎です。ここで私にとって本当にトリッキーな部分は、到着を共通のキューに入れ、利用可能な最速のドローンを選択することです。
私の現在のシミュレーションコードは次のとおりです。