Nella maggior parte (tutte?) Le implementazioni del metodo multipolare veloce (FMM), gli ocre vengono utilizzati per scomporre il dominio rilevante. Teoricamente, gli ocre forniscono un semplice limite volumetrico, utile per dimostrare il tempo di esecuzione O (n) di un FMM. Al di là di questa logica teorica, ci sono vantaggi nell'usare un Octree rispetto ad altre strutture ad albero o trie?
Determinare l'elenco delle interazioni potrebbe essere più semplice con un octree perché una cellula riconoscerebbe i suoi vicini immediati. Tuttavia, l'elenco delle interazioni non è necessario utilizzando un traversal tree più dinamico come Dual Tree Traversal .
Un'alternativa sarebbe un kd-tree. Un possibile aspetto negativo teorico è che la costruzione richiede costose operazioni di ricerca mediana. Tuttavia, ci sono versioni di kd-tree che non richiedono un rilevamento mediano durante la costruzione, sebbene con un partizionamento dello spazio meno efficiente. Per quanto riguarda l'implementazione, un kd-tree è molto semplice.
Un'alternativa ancora più radicale potrebbe essere un R-tree .
Quindi, la mia domanda è: che dire di Octrees che li rende la scelta migliore per un FMM?