N体シミュレーションの最適化、名前または既存の作業の検索


8

WebGLで視覚化したN体シミュレーションの開発中に、最適化を考案しましたが、名前があるかどうか疑問に思っています。これまでに行われたことがない可能性は低いと思います。

これは次のように機能します。最初のタイムステップで、すべてのペアの反復を作成します。その反復中、各パーティクルについて:

  1. すべての密接な相互作用をリストに保存します-この相互作用近いすべての粒子を表します。これらの相互作用は、それ以降、タイムステップごとに評価されます。このリストには通常、少数のエントリが含まれます。
  2. 他のすべてのパーティクルで反復し、パーティクルと一緒に保存する正味のフォースを計算します。したがって、この正味の力はタイムステップ間で記憶され、継続的に粒子に適用されます。

次に、シミュレーションが最初のタイムステップを過ぎてラウンドロビン方式で続行されると、各タイムステップは、少数の粒子の近接相互作用正味の遠方力のリストを更新します。そのため、特定の数のタイムステップ(たとえば1000)を超えると、すべてのパーティクルの密接な相互作用と正味の遠方の力が更新されます。更新しないものは、それらの密接な相互作用をチェックし、正味の遠方の力を適用します。この例では、各時間ステップの計算の複雑さのようなものであるの代わりにN 2N2/1000N2

これをある程度正確にするための秘訣は、「密接な相互作用」をよりよく識別することです。近接性が最適な指標ではない場合もあります。質量や相対速度なども考慮できます。「最も重要な相互作用」の方がいいかもしれません。または、「変更の可能性が最も高い、すぐに相互作用」。

この最適化により、すべてのペアの方法よりも相互作用する粒子が多くなりますが O()で表現する方法がわかりません。これは、タイムステップごとに完全なソリューションを作成するのではなく、古いものを(わずかに正しくない)再利用するためです。情報を収集し、時間の経過とともに計算量を分散させます。

免責事項:私のwebglシミュレーションにも影響を受けるだけの「vfx」パーティクルがあります、重力のて効果を往復しないため、表示されるほど高速ではありません

この最適化手法には名前がありますか?


SciComp.SEへようこそ。ところで、あなたの視覚化は素晴らしく見えます。あなたが説明しているものは、最適化手法としては見えませんが、nボディ問題の無力力ソルバーに似ています。多分、高速多重極法に関連している。
nicoguaro

回答:


6

説明する方法は、Barnes-Hutアルゴリズムと多少似ています。主な違いは、Barnes-Hutにはがあるのに対し、1レベルの密接な相互作用があることです。ログN

Barnes-Hutでは、すべての粒子が八分木に入れられ、すべてのノードの要素間で重力が計算されます。計算の複雑さはO N log N )に下がりますONログN

編集:

あなたが提案しているものには名前があることがわかります:Ahmad-Cohenスキーム。計算速度の向上はN/3.814


とてもかっこいい!ほぼ正しいように聞こえますが、高レベルの不正確さを受け入れれば、計算速度の向上は大幅に高くなると思いますが、私の場合のように、シミュレーションが科学的目的ではなく視覚効果のためである場合は問題ありません。
Magnus Wolffelt

ON
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.