Fast Multipole Method(FMM)のほとんど(すべて?)の実装では、関連するドメインを分解するために八分木が使用されます。理論的には、octreeは単純な体積境界を提供します。これは、FMMのO(n)ランタイムを証明するのに役立ちます。この理論的根拠を超えて、他のツリーまたはトライデータ構造よりもOctreeを使用する利点はありますか?
セルは直接の隣接セルを知っているため、八分木を使用すると、相互作用リストの決定が容易になる場合があります。ただし、Dual Tree Traversalのような、より動的なツリートラバーサルを使用する相互作用リストは不要です。
代替手段はkdツリーです。考えられる理論的な欠点の1つは、建設には高価な中央値検出操作が必要になることです。ただし、スペースパーティショニングの効率は劣りますが、構築中に中央値を検出する必要のないバージョンのkdツリーがあります。実装面では、kdツリーは非常に単純です。
さらに急進的な代替案はRツリーです。
だから、私の質問は次のとおりです。FMMに最適な選択肢となるOctreesについてはどうですか?