Para muchos problemas, el algoritmo con la mejor complejidad asintótica tiene un factor constante muy grande que está oculto por la notación O grande. Esto ocurre en la multiplicación de matrices, la multiplicación de enteros (específicamente, el reciente algoritmo de multiplicación de enteros O (n log n) de Harvey y van der Hoeven), las redes de clasificación de baja profundidad y la búsqueda de gráficos menores, para hacer algunos. Tales algoritmos a veces se llaman algoritmos galácticos.
Tenga en cuenta que para otros algoritmos, como la clasificación general y la suma de enteros, los algoritmos se conocen con una complejidad asintótica óptima y pequeños factores constantes.
¿Qué investigación se ha hecho para separar los algoritmos anteriores de los últimos algoritmos, desde una perspectiva teórica?
Soy consciente de que las constantes ocultas a menudo se omiten para ocultar la distinción entre diferentes modelos de cálculo. Sin embargo, estoy seguro de que, bajo una amplia variedad de modelos diferentes, estos algoritmos galácticos serán más lentos que los algoritmos asintóticamente peores para entradas de un tamaño de mil millones, por ejemplo. La distinción no es sutil, en algunos casos. ¿Se ha hecho riguroso?
Por ejemplo, uno podría inventar un modelo de cómputo muy simple, como una máquina von Neumann con un ISA muy simple, y luego implementar los algoritmos y vincular sus tiempos de ejecución con constantes explícitas. ¿Se ha hecho esto para una variedad de algoritmos?