Dans la plupart (toutes?) Des implémentations de la méthode multipolaire rapide (FMM), les octrees sont utilisés pour décomposer le domaine concerné. Théoriquement, les octrees fournissent une borne volumétrique simple, qui est utile pour prouver le temps d'exécution O (n) d'un FMM. Au-delà de cette justification théorique, y a-t-il des avantages à utiliser un octree par rapport à d'autres structures de données d'arbre ou de trie?
La détermination de la liste d'interaction pourrait être plus facile avec un octree car une cellule connaîtrait ses voisins immédiats. Cependant, la liste d'interaction n'est pas nécessaire en utilisant une traversée d'arbre plus dynamique comme la double traversée d' arbre .
Une alternative serait un arbre kd. Un inconvénient théorique possible est que la construction nécessite des opérations de recherche médianes coûteuses. Cependant, il existe des versions de kd-trees qui ne nécessitent pas de recherche médiane pendant la construction, mais avec un partitionnement d'espace moins efficace. Côté implémentation, un arbre kd est très simple.
Une alternative plus radicale pourrait être un R-tree .
Donc, ma question est la suivante: qu'en est-il d'Octrees qui en font le meilleur choix pour un FMM?