HeadlinesBriefing favicon HeadlinesBriefing.com

Algorithme C-HD plus rapide

Hacker News •
×

Les plus courts chemins sont un problème simple. Étant donné un graphe orienté avec des poids d'arêtes réels non négatifs, l'algorithme de Dijkstra s'exécute en temps O(m + n log n) en utilisant un tas de Fibonacci. Pour m ≥ n, d'autres algorithmes déterministes atteignent O(m log^{2/3} n) (percée de 2025) et O(m √log n + √(mn log n log log n)) (suivi de 2026).

Après environ 15 heures et 733 messages, mes agents ont proposé un nouvel algorithme, C-HD, vérifié dans Lean. Il gère bien la recherche locale, en utilisant des comparaisons de priorité et en comptant les sommets nouvellement rencontrés comme des feuilles inexplorées. Il maintient des invariants locaux avec une suppression minutieuse des arêtes et une recherche locale bornée, atteignant O(n + m + m log(2 + m/(n+1)) + m^{1/3} (n log(n+2))^{2/3}) dans la plage certifiée m ≤ n⌊⌊log₂ n⌋^{3/4}⌋.

C-HD réduit la recherche répétée et le travail sur les structures de données en exécutant des recherches locales bornées depuis la source et la frontière, en comptant les sommets nouvellement rencontrés et en utilisant des arbres de recherche et des pivots pour organiser le travail récursif. Il s'appuie sur des listes d'arêtes sortantes triées. Pour les entrées petites ou hors plage, un algorithme de Bellman–Ford séparé avec un temps d'exécution O((n+1)(m+1)) est sélectionné au début.

FAQ : Qu'est-ce qui rend l'algorithme C-HD plus rapide que Dijkstra dans certains cas ?

C-HD réduit la recherche répétée et le travail sur les structures de données en utilisant des recherches locales bornées, en comptant les sommets nouvellement rencontrés et en organisant le travail récursif avec des arbres de recherche et des pivots, atteignant une meilleure borne dans la plage de densité certifiée.

FAQ Q : Qu'est-ce qui rend l'algorithme C-HD plus rapide que Dijkstra dans certains cas ?

FAQ A : C-HD réduit la recherche répétée et le travail sur les structures de données en utilisant des recherches locales bornées, en comptant les sommets nouvellement rencontrés et en organisant le travail récursif avec des arbres de recherche et des pivots, atteignant une meilleure borne dans la plage de densité certifiée.