¿Qué es el algoritmo multipolar rápido?

Bueno, es básicamente un algoritmo que es mucho más rápido que otros para algunos problemas. O (N) significa que lleva un tiempo calcular que es proporcional al tamaño del problema N, mientras que los algoritmos O (N ^ 2) toman un tiempo proporcional al cuadrado de N. Entonces, si desea simular una galaxia (pequeña) de 1’000’000 estrellas, el FMM será 1 millón de veces más rápido que un simulador trivial de N cuerpos. (De hecho, existen algoritmos O (N.log N) para N -body que pueden ser más rápidos que FMM para pequeños problemas)

FMM puede usarse en otros problemas. El método multipolo rápido de Wikipedia menciona: “El FMM también se ha aplicado para tratar de manera eficiente la interacción de Coulomb en Hartree-Fock y los cálculos de la teoría funcional de la densidad en la química cuántica”. pero no tengo idea de la utilidad real en estas áreas.

Mi sensación es que FMM es un algoritmo relativamente nuevo que podría ser mucho más popular con la disponibilidad de bibliotecas listas para usar, como código 3D multipolar rápido independiente de Kernel paralelo o pyfmm – Implementación Python del método multipolar rápido – Google Project Hosting.

Apuesto a que sus primeras aplicaciones principales serán en juegos de computadora.