Octreesが多極空間分解に使用されるのはなぜですか?


18

Fast Multipole Method(FMM)のほとんど(すべて?)の実装では、関連するドメインを分解するために八分木が使用されます。理論的には、octreeは単純な体積境界を提供します。これは、FMMのO(n)ランタイムを証明するのに役立ちます。この理論的根拠を超えて、他のツリーまたはトライデータ構造よりもOctreeを使用する利点はありますか?

セルは直接の隣接セルを知っているため、八分木を使用すると、相互作用リストの決定が容易になる場合があります。ただし、Dual Tree Traversalのような、より動的なツリートラバーサルを使用する相互作用リストは不要です。

代替手段はkdツリーです。考えられる理論的な欠点の1つは、建設には高価な中央値検出操作が必要になることです。ただし、スペースパーティショニングの効率は劣りますが、構築中に中央値を検出する必要のないバージョンのkdツリーがあります。実装面では、kdツリーは非常に単純です。

さらに急進的な代替案はRツリーです。

だから、私の質問は次のとおりです。FMMに最適な選択肢となるOctreesについてはどうですか?


4
相互作用リスト(どの観測者がどのソースの遠方界にいるのか)を決定することが特に簡単になると思います。
rchilton1980 14

相互作用リストの決定は、どのような形式の階層空間分解でも非常に簡単でなければなりません。
ベントンプソン14

1
オクトツリーは理論的には簡単に分析できるという点であなたに同意します。 -matrix(FMMの代数的一般化)などの他の高速加算アルゴリズムは、幾何学的二分法やクラスターベースの分割など、異なるツリーを使用します。H
user2457602 14

1
私はこれに関する専門家ではありませんが、おそらくオクトツリーがより多くの「対称性」を持っているという事実が役割を果たしていますか?八分木のパーティションは規則的に配置され、同じ正方形を持っています。これは、kdツリーなどと比較して多重極展開を行うのに役立ちます。
ジャニステウニッセン

オクトリーは、3次元のドメイン分解の自然な結果です。
gpavanb

回答:


3

上記のコメントは、octreeを使用する非常に良い理由を示しています(つまり、より一般的な直交二分法とは対照的に、各次元の計算キューブを再帰的に半分にします)。相互作用リストの計算の対称性と単純さは大きなプラスです。

おそらく、オクトツリーがテーブルにもたらす最も重要な機能は、FMMを引き受ける追加定理が、1つまたは複数の「バッファ」という非常に単純な分離基準で、ジオメトリに依存しない遠方ゾーン相互作用に対して体系的に満たされることですボックス。言い換えると、潜在的な場のFMM和表現は、非病理学的状況下で次数の増加とともに収束することが保証されています。

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