問題タブ [simpy]
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.
python - ループの問題、ルーティング テーブルの作成
単純なネットワーク シミュレーター用のルーティング テーブルを作成したいと考えています。ルーティング テーブルを自動的に作成する必要があります。このテーブルを次のように表示します。
したがって、ルーター エンジンは、destinationInterface 宛てのメッセージを取得すると、それを nextHop に送信します。私がやろうとしているのはこれです:
しかし、これはうまくいきません。そして、# を前に置いた行については本当に混乱しています。このコードは、# がある場合とない場合で動作が異なるためです。
python - プロセス計算時間の Python+SimPy ホールド
サービス時間がいくつかの関数の計算の複雑さに依存するシミュレーションを作成したいと考えています。
関数の処理により、リクエストの到着が停止することはありません。テストのために、数秒間 CPU を使用する関数の例を使用します。
サービスをシミュレートするためにそれを呼び出す方法はありますが、新しいサービス要求の到着を妨げません。この関数を呼び出すと、指定された時間ではなく、関数の実行直後に新しいサービス リクエストが到着します。
したがって、私の例では、前のパケットが残った後にのみ新しいパケットが到着します。
を使用しようとしましたが、(クラスmultiprocessing
の) 命名衝突が発生しました。Process
私は SimPy、並列プログラミング、および Python の初心者です。
python - Simpy での共有リソースのサブセットの処理
工場をシミュレートするために、Python で Simpy 離散イベント シミュレーションを使用しています。このresource
クラスを使用すると、一度に限られた固定数のプロセスで使用できるリソースをシミュレートできます (たとえば、燃料ポンプの数が限られているガソリンスタンドなど)。大まかに: プロセスは、これらのリソースがユーザーになるように要求し、完了したら解放する必要があります (たとえば、車両はガソリンスタンドに到着し、利用可能な場合は燃料ポンプを使用し、完了したら出発します)。 .
リソースには、プロセスが要求できる限られた固定数のスロットがあります。すべてのスロットが使用されると、リクエスターはキューに入れられます。プロセスがスロットを解放すると、次のプロセスがキューからポップされ、1 つのスロットが取得されます。
私の場合、いくつかの共有マシンを使用する必要があるプロセスのリストがあります。各プロセスは、使用が許可されているマシンの固定サブセットに関連付けられています。このサブセットがすべてのプロセスで同じである場合、問題は組み込みメソッドで簡単に実装できますが、この問題のバリエーションに問題があります。
利用可能な各マシンを(利用可能なマシンの合計に等しい容量を持つresource
1 つのシングルではなく)1 つの容量を持つ個々のマシンとして作成し、この方法を使用して、許可された対応するサブセットの最初の利用可能なマシンに各プロセスを割り当てようとしましたマシン。残念ながら、うまくいきません。resource
any_of
これを実装する簡単または自然な方法はありますか? 前もって感謝します!
python - f出発点の問題を解決する
非線形方程式を解くために fsolve を使用しています。私の問題は、出発点に応じて解決策が変わり、見つけたものが最も合理的であるかどうかわからないことです。これがコードです
より妥当な値が得られると思われるため、x0 = 1 に修正しました。しかし、メソッドが収束せず、結果の値が大きすぎると思うことがあります。
最善の解決策を見つけるにはどうすればよいですか?
どうもありがとう!
python - simpy で制御を渡すために、なぜ「env.timeout(0) を生成する」必要があるのですか?
私はロボティクスのシミュレーションのために simpy をいじっています.ping と pong と呼ばれる 2 つのラケットを使った簡単なピンポン ゲームを書くことから始めました. yield env.timeout(0)
1 人のプレーヤーが反対側のプレーヤーに自分のターンをキャッチする機会を提供できるようにするために を追加した場合にのみ、正常に機能します。このヌープ(?)をスキップすると、常に最初のプレーヤーがボールをつかみます。これが私のコードです:
私の質問は、なぜ必要なのenv.timeout(0)
ですか?また、2 つのプロセス間で制御を引き渡す他の (より良い?) 戦略があるのではないかと思います。私も遊んでいましprocess.interrupt()
たが、やり過ぎのように思えます。
python - SimPy プロセス内で関数を呼び出す
Python と SimPy を使用してプロセス通信用のプログラムを作成しようとしています。すべてのコードを単一の関数に入れて呼び出した場合
すべてが完璧に動作します。ただし、次のように function_one() 内で別の関数を呼び出すと
function_two は決して実行されません。このように呼び出すと function_two が実行されます
ただし、function_one の残りの部分はその後実行され、function_two の実行を待機しません。すべてのコードを 1 つの関数にまとめたくないのは明らかなので、助けていただければ幸いです。
python - 簡単なリソース
誰かが簡単なシミュレーションを開始できますか? 私は simpy が初めてで、コーディングが非常に難しいと感じています。シナリオは次のとおりです。
ジョブは、さまざまなワークフローで工場で実行されます。ワークフローは、使用するマシンを定義します。マシンは同じではありません。オペレーターは、複数のマシンを実行する必要があります。
どんな助けでも大歓迎です。
python - 簡単な 3: Resources.Resource.request()/.release() WITHOUT 'with...as:'
現在取り組んでいるプロジェクトに SimPy シミュレーションを追加しようとしていますが、バージョン 3 のリリース/リクエストについて混乱しています。
問題なく「with」ブロックを使用してリソースを実装できましたが、私の状況では、「with」ブロックを使用せずにリソースを要求/解放したいと考えています。
ただし、SimPy 3 を使用してこの例を見つけることができません。リソースに関するドキュメント/ソースを読みましたが、まだ正しく理解できません。誰かが適切な方法を説明できますか:
ありがとう、お手数をおかけして申し訳ありません。
PS: Resources.resource を使用するつもりです