2

次のような状況があります。離散ドメイン 0、1、...、L には M 個の独立したランダム ウォーカーがあります。これを N 個の同一ドメインに対して行います。これにより、が domain 上の walker の位置である行列Xが得られます。ランダムなステップを作成するには、ランダムな +1 と -1 を含む同じ形状の行列を matrix に追加します。次に、エッジを処理します。これはうまくいきます。X[i, j]ijX

ただし、このモデルを拡張して、相互に通過できない固体粒子を持たせたいと考えています。これは 2 つのケースで示されます。

  1. 1 つのパーティクルは位置iにあり、2 番目のパーティクルは位置 にありi+1ます。最初のパーティクルは右に移動し、2 番目のパーティクルは左に移動します。
  2. 1 つのパーティクルは位置iにあり、2 番目のパーティクルは位置 にありi+2ます。最初の粒子は右に移動し、2 番目の粒子は左に移動します。

すべての手順を個別に行う場合、各手順を手動でチェックして、それが合法的な手順であるかどうかを確認できます。ただし、これはO(M^2N)パフォーマンスが悪いです。X[i,j], X[k, j]できればベクトル化された方法で、どの行列要素のペアが互いに通過する2つの粒子になるかを検出するより効率的な方法はありますか? このようにして、シミュレーションにこれらのステップをスキップさせることができます。

4

1 に答える 1