HeadlinesBriefing favicon HeadlinesBriefing.com

Algoritmo C-HD más rápido

Hacker News •
×

Los caminos más cortos son un problema simple. Dado un grafo dirigido con pesos de aristas reales no negativos, el algoritmo de Dijkstra se ejecuta en tiempo O(m + n log n) usando un montículo de Fibonacci. Para m ≥ n, otros algoritmos deterministas alcanzan O(m log^{2/3} n) (avance de 2025) y O(m √log n + √(mn log n log log n)) (continuación de 2026).

Después de aproximadamente 15 horas y 733 mensajes, mis agentes propusieron un nuevo algoritmo, C-HD, verificado en Lean. Maneja bien la búsqueda local, utilizando comparaciones de prioridad y contando los vértices recién encontrados como hojas inexploradas. Mantiene invariantes locales con una cuidadosa eliminación de aristas y búsqueda local acotada, logrando O(n + m + m log(2 + m/(n+1)) + m^{1/3} (n log(n+2))^{2/3}) dentro del rango certificado m ≤ n⌊⌊log₂ n⌋^{3/4}⌋.

C-HD reduce la búsqueda repetida y el trabajo de estructuras de datos mediante la ejecución de búsquedas locales acotadas desde la fuente y la frontera, contando los vértices recién encontrados y utilizando árboles de búsqueda y pivotes para organizar el trabajo recursivo. Se basa en listas ordenadas de aristas salientes. Para entradas pequeñas o fuera de rango, se selecciona al inicio un algoritmo Bellman–Ford separado con tiempo de ejecución O((n+1)(m+1)).