突破40年Dijkstra算法瓶頸,清華教授等顛覆教科書!STOC最佳論文

突破40年Dijkstra算法瓶頸,清華教授等顛覆教科書!STOC最佳論文

文章圖片

突破40年Dijkstra算法瓶頸,清華教授等顛覆教科書!STOC最佳論文

文章圖片

突破40年Dijkstra算法瓶頸,清華教授等顛覆教科書!STOC最佳論文

文章圖片

突破40年Dijkstra算法瓶頸,清華教授等顛覆教科書!STOC最佳論文

文章圖片

突破40年Dijkstra算法瓶頸,清華教授等顛覆教科書!STOC最佳論文

文章圖片

突破40年Dijkstra算法瓶頸,清華教授等顛覆教科書!STOC最佳論文

文章圖片

突破40年Dijkstra算法瓶頸,清華教授等顛覆教科書!STOC最佳論文

文章圖片

突破40年Dijkstra算法瓶頸,清華教授等顛覆教科書!STOC最佳論文

文章圖片

突破40年Dijkstra算法瓶頸,清華教授等顛覆教科書!STOC最佳論文

文章圖片

突破40年Dijkstra算法瓶頸,清華教授等顛覆教科書!STOC最佳論文
編輯:KingHZ
【新智元導讀】清華大學教授段然提出了一種最短路徑新方法 , 擊敗了教科書中經典的Dijkstra算法 。
計算機科學的重大成果!
清華大學教授刷新最短路徑算法認知 , 或將改寫計算機算法教科書 。
在計算機科學中 , 一個經典問題是尋找網絡中每個點的最短路徑 , 而Dijkstra算法是此問題的最經典解決方法 。
自1956年來 , 最短路徑問題吸引了眾多研究人員的關注 。
哥本哈根大學計算機科學家Mikkel Thorup米克爾·索魯普表示:
最短路徑是個絕妙的好問題 , 全世界人都能感同身受 。
直覺上 , 找到離起點最近的點的路徑應該最簡單 。
因此 , 如果想設計一個解決最短路徑問題的最快算法 , 合理的做法是先找到最近的點 , 然后是次近的點 , 依此類推 。 但這意味著你需要反復確定哪個點是最近的 , 也就是說 , 你得按距離給這些點排序 。
然而 , 這種方法有一個根本的限制:這種算法的速度無法快過排序所需的時間 。
四十年前 , 研究最短路徑算法的科學家們遇到了這個「排序瓶頸」 。
現在 , 來自清華大學等機構的研究團隊設計了一種新算法 , 突破了這一瓶頸 。 這種算法不依賴排序 , 而且比任何需要排序的算法運行得更快 。

論文鏈接:https://arxiv.org/abs/2504.17033
普林斯頓大學的計算機科學家Robert Tarjan說:「這些研究者大膽地認為他們能打破這個瓶頸 。 這是一個驚艷的成果 。 」
值得一提的是 , 這項研究摘得STOC最佳論文 , 實至名歸 。

左:Mikkel Thorup;右:Robert Tarjan

最短路徑
若想解決復雜難題 , 條理分明往往事半功倍 。 比如將問題拆解后優先處理最簡單的部分——但這種分類需要代價 , 你可能耗費過多時間在排序上 。
這一困境尤其體現在計算機科學中最經典的問題之一:如何在網絡中從特定起點出發 , 找到通往其他所有點的最短路徑 。 這就像日常搬家后必須解決的升級版問題:規劃從新家到公司、健身房和超市的最佳路線 。
為了從數學角度分析最短路徑問題 , 研究者們使用圖論的語言——圖是由點(或稱節點)組成的網絡 , 這些點通過線連接起來 。 每條連接線都標有一個數字 , 叫作權重 , 它可以代表這段線的長度或穿越它所需的時間 。
通常 , 任意兩個節點之間都有很多路徑 , 最短路徑就是那些權重加起來最小的路徑 。 給定一個圖和一個特定的「起點」 , 算法的目標就是找到到其他每個節點的最短路徑 。
在1956年 , 計算機科學先驅埃茲赫·迪杰斯特拉(Edsger Dijkstra)設計了日后最著名的最短路徑算法 。

它從起點開始 , 一步步向外擴展 。

Dijkstra算法如何找到最短路徑
Dijkstra算法從網絡中的一個特定點開始 , 找到到每個其他點的最短路徑 。 它按距離從近到遠的順序找到這些路徑 。
Dijkstra算法的基本步驟:
從A點開始:
你看到兩條路徑 。 B點距離1單位 , C點距離5單位 。 你現在知道到B的最短路徑 , 但可能有一條更短的間接路徑到C 。最短路徑:A → B = 1


跟隨最短路徑:
前往 B , 然后再觀察一次 , 記錄從 A 到每個點的總距離 。 D點比C點離 A 更近 。 最短路徑:A → B = 1;A → D = 2


繼續探索:
前往D點并再次觀察 , 現在你已經找到了到C的最短路徑 。 最短路徑 :A → B = 1;A → D = 2;A → C = 3 。

從起點開始 , 逐步探索網絡中到每個點的最短路徑——這種方法很有效 , 因為知道到附近節點的最短路徑 , 能幫助你找到到更遠節點的最短路徑 。
但最終結果是一個按距離排序的最短路徑列表 , 因此排序瓶頸設定了算法速度的根本限制 。
1984年 , Tarjan和另一位研究者改進了迪杰斯特拉的原始算法 , 使其達到了這個速度極限 。 任何進一步的改進都必須來自一個避免排序的算法 。

論文鏈接:https://dl.acm.org/doi/10.1145/28869.28874
在20世紀90年代末和21世紀初 , Thorup和其他研究者設計出了打破排序瓶頸的算法 。

從左至右:Bernhard Haeupler、Václav Rozhoň(上方)、Jakub Tětek(下方)、Robert Tarjan和Richard Hladík證明了Dijkstra算法的一個版本是對所有網絡布局的最佳解決方案
他們需要對權重做出某些假設 。 沒人知道如何將這些技術擴展到任意權重上 。 似乎他們已經走到了盡頭 。
研究停滯了很長一段時間 , 很多人相信沒有更好的辦法了 。
但清華的段然不是其中之一 。 他長期夢想構建一個能在所有圖上突破排序瓶頸的最短路徑算法 。 去年秋天 , 他終于成功了 。

超越排序
段然對排序瓶頸的關注可以追溯到近20年前 。

那時 , 他在密歇根大學讀研究生 。 他的導師是研究如何在特定情況下打破排序瓶頸的學者之一 。
但直到2021年 , 段然才找到一個更有前景的方法 。
關鍵在于關注算法每一步的下一步走向 。
迪杰斯特拉的算法會利用之前已探索的區域 , 決定下一步通過掃描這個區域的「邊界」——也就是所有與邊界相連的節點 。 起初這不會花太多時間 , 但隨著算法推進 , 速度會變慢 。
段然則設想將邊界上的相鄰節點分組 , 形成多個集群 。 每一步只考慮每個集群中的一個節點 。 由于需要篩選的節點減少了 , 每一步的搜索都能更快 。 算法可能不會總是選擇最近的節點 , 因此排序瓶頸不再適用 。 但要確保這種基于集群的方法確實能加速算法 , 而不是讓它更慢 , 是一個挑戰 。
在接下來的一年里 , 段然完善了這個基本想法 。
到2022年秋天 , 他樂觀地認為自己能克服技術難題 。
他拉來三位研究生幫忙細化細節 , 幾個月后 , 他們取得了部分成功——開發出了一種算法 , 打破了任意權重下的排序瓶頸 , 但僅適用于所謂無向圖 。

論文鏈接:https://arxiv.org/abs/2307.04139
在無向圖中 , 每條連接線都可以雙向通行 。 計算機科學家通常更關注包含單向路徑的更廣義的圖類 , 但這些「有向圖」往往更難處理 。
這次新論文的合著者、斯坦福大學計算機科學博士生毛嘯說:「(在有向圖中)可能存在一種情況 , A到B很容易 , 但B到A卻很困難 。 這會給你帶來很多麻煩 。 」


希望之路
2023年夏天 , 在加州的一場學術會議上 , 毛嘯聆聽了段然關于無向圖算法的演講 。 他主動與這位仰慕已久的學者攀談起來 。
那是他第一次在現實中見到段然 , 當時非常激動 。

隨機性如何優化算法
會議結束后 , 毛嘯開始利用業余時間思考這個問題 。 與此同時 , 段和他的團隊正在探索適用于有向圖的新方法 。 他們從最短路徑問題的另一經典算法——貝爾曼-福特算法中汲取靈感 。
貝爾曼-福特算法不生成排序列表 , 但初看卻像是個糟糕的選擇:它的速度遠遜于迪杰斯特拉算法 。
計算機科學家米克爾·索魯普補充道:「科研就是不斷嘗試有潛力的路徑 。 但借鑒貝爾曼-福特算法簡直像在反其道而行——這看起來蠢透了 。 」
段然的團隊通過分階段運行貝爾曼-福特算法避開了其低速缺陷 。 這種選擇性使用讓他們能預先偵察后續步驟中最有價值的節點 , 這些節點如同交通網絡中的核心樞紐 。

計算機科學家米克爾·索魯普解釋道:「要獲取多數目的地的最短路徑 , 你必須經過這些關鍵點」 。
2024年3月 , 毛嘯提出另一創新思路 。
原算法中某些關鍵步驟依賴隨機性 , 雖然隨機算法能高效解決許多問題 , 但學界仍更青睞確定性方案 。
毛嘯設計出無需隨機化的最短路徑求解方法 , 隨后加入團隊 。
通過數月的群聊和視頻會議 , 他們最終在秋季取得突破——段然教授意識到可借鑒其2018年解決另一類圖問題時突破排序障礙的技術 , 這正是補齊最后一塊拼圖的關鍵 。

層進式革新
最終算法將圖分層處理 , 像迪杰斯特拉算法那樣從源頭向外推進 。
但其精妙之處在于:通過貝爾曼-福特算法定位關鍵節點后優先探索 , 稍后回溯處理其他邊界節點 。 由于不嚴格按距離順序探索每層節點 , 排序障礙自然失效 。 若采用恰當的分層策略 , 其速度甚至略超優化版迪杰斯特拉算法 。

這個由多個精密模塊組成的算法雖復雜 , 卻意外地未使用任何高深數學工具 。

計算機科學家米克爾·索魯普感慨萬分:「這套方法本可能在五十年前就被發現 , 但直到現在才問世 。 這才更顯其非凡 。 」
段然團隊正著手優化算法以追求更快的速度 。 隨著排序障礙的攻克 , 新算法的運行效率已遠超現有理論極限 。
參考資料:
https://www.quantamagazine.org/new-method-is-the-fastest-way-to-find-the-best-routes-20250806/
https://www.cnblogs.com/gaochundong/p/bellman_ford_algorithm.html
【突破40年Dijkstra算法瓶頸,清華教授等顛覆教科書!STOC最佳論文】https://iiis.tsinghua.edu.cn/en/People/Faculty/DuanRan.htm

    推薦閱讀