最短経路の「並べ替えの壁」

Breaking the sorting barrier for shortest paths

頂点を近い順に並べるのをやめて、41年来の上界を更新した。

向きのあるグラフで1点から全頂点への最短距離を求める時間。2025年、段然らが頂点を並べきらずに、辺の少ないグラフでダイクストラ法の上界を初めて下回った。

年代
1956〜2025年
習う
大2・情報科学・グラフのアルゴリズム
レベル
大学(例題 5 問)
人物
エドガー・ダイクストラ、マイケル・フレドマン、ロバート・タージャン、ミッケル・ソーラップ、ベルンハルト・ハウプラー、段然
逸話

近い順に並ぶ答え

最短経路は、並べ替えより速く求められるのか。ダイクストラ法で最短経路を求めると、出発点から近い順にすべての地点を並べた列がおまけについてくる。その並べ替えの手間は避けられないと、長いあいだ考えられてきた。

2025年、答えが「はい」に変わった。

清華大学の段然(ドゥアン・ラン)准教授ら5人が、地点を並べきらないまま、すべての最短距離を求める方法を示したのである。地点を頂点、道を辺と呼ぶと、対象は辺に向きがあり、長さが負でない実数のグラフになる。許す計算は長さどうしを比べることと足すことだけで、乱数も使わない。頂点の数を、辺の数をとすると、時間はで済む。辺の少ないグラフでは、ダイクストラ法のを初めて下回った。論文は2025年4月にarXivで公開され、6月にプラハで開かれた理論計算機科学の国際会議STOC 2025で最優秀論文賞を受けた。

追い越されたダイクストラ法は、計算機のお披露目のために生まれた。1956年、アムステルダムの数学センターは新しい計算機ARMACを完成させ、お披露目の実演を開くことにした。そのプログラムを作ったのが、若いプログラマーのエドガー・ダイクストラである。のちの聞き取りで、ダイクストラは「計算機を知らない人に見せるなら、数学者でなくても分かる問題で、答えまで分からなければならない」と語っている。選んだのは、オランダの2つの町を結ぶいちばん短い道を探す問題だった。道路地図を少し簡単にして64の町を選び、町の番号が6ビットで足りるようにした。

1950年代の計算機室で、灰色の金属の筐体が並び、正装の来客が集まって見ている(画像生成 AI で描いたイメージ)
1956年、アムステルダムの数学センターで、新しい計算機ARMACのお披露目が開かれた(ダイクストラの回想による)画像生成AIで描いたイメージ
エドガー・ダイクストラの肖像(Edsger Wybe Dijkstra)
エドガー・ダイクストラ1930–2002最短経路の手順を考え、プログラムを数学として扱う道を開いた出典: Wikimedia Commons・Hamilton Richards・CC BY-SA 3.0

手順を考えた場所は、机の前ではない。ダイクストラは覚え書き「EWD1166」に、鉛筆も紙も使わず、晴れた日にアムステルダムのカフェのテラスで妻とコーヒーを飲みながら設計した、と書いている。ただ、すぐには発表しなかった。当時は、離散的なアルゴリズムが数学として認められておらず、ふさわしい学術誌も無かったからだという。

晴れた日のカフェのテラスで、コーヒーを前に考えごとをする若い男性の後ろ姿と、向かいに座る若い女性(画像生成 AI で描いたイメージ)
アムステルダムのカフェのテラスで、鉛筆も紙も使わずに最短経路の手順を考えた(本人の回想による)画像生成AIで描いたイメージ

発表は3年後の1959年である。創刊されたばかりの学術誌『Numerische Mathematik』を後押しするつもりで送った、3ページの論文だった。2つめの問題が最短経路で、出発点から各頂点への最短経路を「長さの短い順に」組み立てる、と書かれている。1つめの問題の書きぶりは意外だ。線の長さの合計が最も短くなるようにすべての頂点を結ぶ問題で、ダイクストラは自分の方法のほうが先行する方法より良いとした。先行する方法では、すべての辺をまず長さの順に並べ、辺のデータを一度に覚えておかねばならないからだ。

起源

41年動かなかった上界

ダイクストラ法を速くする鍵は、候補の頂点から最も近いものを取り出すデータ構造、ヒープにある。1984年、マイケル・フレドマンとロバート・タージャンは新しいヒープを発表し、ダイクストラ法の時間をに縮めた。それまでのからの改良で、学術誌の論文は1987年に出ている。名前はフィボナッチヒープといい、フィボナッチ数列にちなむ。

残ったは、ヒープから最小のものを回取り出す手間で、取り出す順はそのまま距離の順になる。比べるだけで個を並べるには、最悪の場合回の比較が要る。段らの論文は、この下限から、最短経路にも同じ壁があると広く信じられてきた、と書く。

この壁は、計算のモデルとともにある。1999年、ミッケル・ソーラップは、向きのないグラフで辺の長さが正の整数なら、の時間で解けることを示した。ただし、これは整数にビット演算なども使えるワードRAMという計算のモデルでの結果だ。長さが実数で、比べて足すことしか許さないなら、話は別になる。

では、比べて足すだけで壁は越えられるのか。最初の穴は2023年にあいた。段らは、向きのないグラフに限って、乱数を使う方法でを達成した。同じ年の11月には、ベルンハルト・ハウプラーとタージャンら5人が、壁を反対側から裏付ける論文を公開した。頂点を距離の順に並べることまで求めるなら、辺の長さが最も不利に選ばれたとき、ダイクストラ法はどんな形のグラフでも最善だという。

裏を返せば、順番を求めなければ、壁は無いのかもしれない。2025年の論文は、その隙間を突いた。距離はすべて求めるが、頂点の並びは最後まで決めない。

段然21世紀に活躍有向グラフの最短経路で、ダイクストラ法の時間の上界を初めて下回った

清華大学交叉情報研究院の発表によると、新しい方法は、並べ替えをしないベルマンフォード法と、段らが2018年にボトルネック経路の問題で使った、部分的にだけ並べる再帰の方法を組み合わせている。

講演会場の後ろの席から見た聴衆の後ろ姿と、遠くの演壇に立つ小さな人影(画像生成 AI で描いたイメージ)
2025年6月、プラハで理論計算機科学の国際会議STOC 2025が開かれた画像生成AIで描いたイメージ
証明

確定した頂点は動かない

向きのあるグラフで、辺の長さを、出発点を、本当の最短距離をとする。アルゴリズムは見積もりを持ち、最初は、ほかの頂点はとおく。

  1. 見積もりを改める操作は、足し算1回と比較1回でできる。これを辺の緩和と呼ぶ。はいつも実際にある道の長さなので、本当の距離を下回らない。

  2. ダイクストラ法は、確定した頂点の集合の外で、が最小の頂点を確定する。の頂点ではすでにが成り立っているとする。からへの道は、どこかで初めての外へ出る。その辺をとする。を確定したときに辺を緩和したのでで、から先の辺は負でない。

破線の内側が確定した頂点の集合A。uへの別の道はyでAの外に出るが、D[y]はD[u]以上で、その先の長さは0以上なので、太い辺を通る道より短くならない。
  1. よってで、確定した頂点は二度と直さない。各頂点を1回ずつ取り出し、各辺を1回ずつ緩和すればよい。フィボナッチヒープなら、取り出しは、見積もりを下げる操作はならしてでできる。

  2. 取り出す順は、距離の順になる。出発点から本の辺が出ているだけの星形グラフなら、距離は辺の長さそのもので、比較は1回も要らない。ところが順番を出すには個の長さを並べ替えることになり、比べるだけの方法では次の回数が避けられない(次の章)。

  3. ベルマンフォード法は並べ替えをしない。辺の緩和を回くり返すと、辺が本以下の最短経路を持つ頂点は、どれも確定する。手間はで、が小さければ軽い。

  4. 段らは2つを組み合わせた。距離が未満の頂点がすべて確定したとき、見積もりが以上未満の頂点を境目とする。距離が未満でまだ確定していない頂点の最短経路は、どこかでの確定した頂点を通る。そこでからベルマンフォード法を回だけ進め、届いた頂点をとする。がを超えたら、境目は届いた頂点の分の1より少ないので、そのまま使う。超えなければ、の中で個以上の頂点を持つ最短経路の木の根だけを、ピボットとして残す。木は重ならないので、ピボットは少ない。

  1. 距離が未満の頂点は、歩のうちに確定したか、最短経路がどこかのピボットを通る。そこでピボットを、束ねて取り出せるデータ構造に入れ、見積もりの小さいほうから個ずつ束にして取り出し、1段下の同じ問題として解く。束の中の順番は決めず、束と残りを分ける値だけを求める。段の問題ではなので、段の数は次で足りる。

  2. 主な手間は3つある。1つめはピボットを探す緩和で、1段につき1頂点あたりかかる。2つめはピボットをこのデータ構造に入れる操作で、1回だが、頂点の分の1にしか起きない。3つめは辺から直接入れる操作で、辺ごとに1度、で済む。各頂点を長さ0の辺の輪に置き換え、どの頂点も入る辺と出る辺を2本以下にしておけば、頂点の数はに収まる。

  3. 、とおくと、3つの項はどれもの大きさになる。正しさの証明は段についての帰納法で、このデータ構造にはブロックの連結リストを使う。どちらも論文の第3章にあり、約11ページになる。

途中の計算

6通りの並べ方と、3分の2乗

  1. 3つの数の並べ方を数える

  2. 比較回で見分けられるのは多くて通り

  3. 両辺の対数をとる

  4. 回数は整数なので切り上げる

3つの数a、b、cを並べる比較の木。葉は3! = 6枚あり、どの葉に着くにも最悪3回の比較が要る。
  1. 個の並べ方に広げる

  2. 後ろ半分の項をで下から押さえる

  3. ダイクストラの64の町に当てはめる

  4. 1頂点あたりの手間をで書く

  5. 第1項と第2項をそろえてとおく

  6. で微分して0とおく

  7. 解いても求める

  8. に代入する

手順7の296回は、64の町を近い順に並べるとき、どんな比べ方をしても最悪の場合に避けられない回数である。手順12の係数3は定数を1とおいた目安で、論文が示したのは、増え方がで抑えられることだ。

応用

西ヨーロッパの1,800万頂点

道路地図は、辺の少ないグラフの代表である。経路探索の研究でよく使われる西ヨーロッパの道路網は、頂点が1,800万、向きのある辺が4,250万本で、1頂点あたり2.4本ほどしかない。大学とマイクロソフト研究所の研究者8人が2015年に公開した総説によると、でたらめに選んだ2点の間をダイクストラ法で1回問い合わせると、平均で約933万頂点を調べ、約2.2秒かかった。

実際の経路探索は、地図を前もって下ごしらえする別の道で速くなっている。同じ総説では、縮約階層法(コントラクション・ハイアラーキー)が5分の前処理のあと、1回の問い合わせで280頂点だけを調べ、0.11ミリ秒で答えた。ダイクストラ法の約2万倍の速さである。

では、新しい方法で地図アプリは速くなるのだろうか。この地図の大きさではが約24で、との比は2.9ほどにとどまる。O記法が隠す定数がこの差を食えば、速さは逆転しない。

編集部のサーバーで、記事のシミュレーションと同じ実装を格子状の地図で動かし、比べた回数を数えた。とは論文の式で決めたが、束を取り出すデータ構造は二分ヒープで代用したので、この実装はをそのままは満たさない。頂点が100万の地図で、二分ヒープのダイクストラ法は1頂点あたり24.8回、新しい方法は43.5回比べた。比は頂点が約1,000で2.43倍、1万で2.10倍、10万で1.89倍、100万で1.75倍と、ゆっくり縮んでいく。正直なところ、手元で追いつく大きさは見えてこなかった。論文の価値は、1984年から41年、向きのあるグラフで誰も下回れなかったを、理論の上で破ったところにある。

例題と解説

5つの頂点で手を動かす

高校では、数学Cの「数学的な表現の工夫」で離散グラフを学ぶ。学習指導要領の解説は、扱う話題の例に「最短経路の探索」を挙げている。O記法で手間を測るのは、大学の情報科学の講義からになる。

例題 1基本ダイクストラ法を手で動かす

向きのある辺と長さが、が4、が1、が2、が1、が5、が3、が6、が9のグラフがある。から各頂点への最短距離と、ダイクストラ法で確定する順を求めよ。

解説を見る

を確定し、、とする。最小のを確定すると、ととの見積もりが下がる。

次にを確定する。

を確定するとになり、最後にを確定する。確定する順はで、距離は0、1、3、4、7である。

例題 2基本負の辺があると

が2、が3、がのグラフで、ダイクストラ法を動かすとの距離はいくつと答えるか。本当の距離と比べ、証明のどの手順が成り立たなくなるかを述べよ。

解説を見る

最初に、となり、小さいを2で確定してしまう。本当の最短はである。

証明の手順2で使った「から先の辺は負でない」が成り立たない。の外のを通ると、道が途中で短くなる。

例題 3入試ベルマンフォード法の回数

例題1のグラフで、すべての辺を、直前の回の値だけを使って同時に緩和する。この操作を2回したあとのと、すべての距離が確定するまでの回数を求めよ。

解説を見る

回目のあとの値は、辺が本以下の道の最短になる。1回目で、、2回目で次のようになる。

3回目で、、4回目でになる。5回目は何も変わらない。への最短経路の辺が4本なので、確定には4回かかる。

例題 4難関順番を出すための比較

(1)出発点から5本の辺が直接出る星形グラフで、5つの頂点を距離の順に出したい。長さを比べるだけの方法で、最悪の場合に必要な比較の回数の下限を求めよ。

(2)5つの頂点がと一列につながる場合はどうか。

解説を見る

(1)並べ方は通りで、比較回で見分けられるのは通りまでである。

よって7回以上要る。距離そのものは辺の長さなので、比較は要らない。

(2)長さが負でないので、距離はから順に増える。

順番は比べなくても決まり、比較は0回で済む。

例題 5大学指数を3分の2にする目安

1頂点あたりの手間をとする。

(1)のとき、を最小にすると、その最小値を求めよ。

(2)最小値がより小さくなるの範囲を求め、としての範囲に直せ。

解説を見る

(1)途中の計算の手順11から、である。

と比べると4分の3である。

(2)両辺をで割る。

、約1億3,400万である。定数を1とおいた目安でも、差が出るのはこの大きさからになる。

入試・大会での出題

定期券とゾンビ島

  • 2015年 日本情報オリンピック 予選 問題5:ゾンビに支配された町の近くでは宿泊費が高くなる島で、町1から町へ移るときの宿泊費の合計を最小にする問題。解説は、道路を向かう先の町の宿泊費を長さとする2本の有向辺に分け、ダイクストラ法などで解く。出典は情報オリンピック日本委員会。
  • 2018年 日本情報オリンピック 本選 問題4:運賃が最も安い経路の中から定期券の区間を選び、別の2駅を結ぶ運賃を最小にする問題。解説は、辺が定期券の経路に乗りうるかをで判定し、その距離をダイクストラ法で求める。出典は情報オリンピック日本委員会。
図示

列か、帯の束か

辺の少ないグラフで、1頂点あたりの手間をlog nのα乗と書いたときの指数α。1984年のフレドマンとタージャンは1、2025年の段らは2/3、2026年の段らは1/2。「+」はさらにlog log nの平方根がかかることを表す。斜線の2023年は向きのないグラフで、乱数を使う。
ダイクストラ法は頂点を距離の順に1列に並べる。新しい方法は、距離の帯ごとに頂点を束ね、帯の中をさらに細かい帯に分けるが、いちばん細かい帯の中の順番は決めない。

1列に並べる答えは通りあるが、帯の中の順番を問わなければ、見分けるべき答えはずっと少ない。決めずに残した順番が、比較の回数を減らす余地になる。

シミュレーション

比べた回数を時計にする

左はダイクストラ法、右は論文のアルゴリズム1〜3を小さなとで動かしたもので、束を取り出すデータ構造は二分ヒープで代用した。時計は比べた回数で、両方の盤が同じ回数ずつ進む。右側で破線の丸はその段の境目、四角はピボット、大きな点はいま確定した頂点を表す。81頂点・では右の比較が左の約3.3倍になり、ダイクストラ法が先に終わるが、O記法が比べるのは頂点が限りなく増えたときの増え方なので、論文の主張と食い違うわけではない。

広がる学問

経路表から距離空間まで

  • 情報科学 アルゴリズムの手間を、使ってよい操作を決めて数え、上界と下界ではさむときの代表例になる。最短経路は、並べ替えの下限がそのままは当てはまらない例として、どの問題に壁があるのかという問いを開いた。
  • 工学 インターネットのルーターが、届け先ごとの経路表を作るときに使う。OSPFの規格RFC 2328では、各ルーターが自分を根とする最短経路の木をダイクストラ法で計算する。規格の文には「根に最も近い候補への経路は最短であることが保証される」とあり、証明の手順2と同じ主張になっている。
  • 数学 地図の上の最短距離を、三角不等式を満たす距離として扱うときに使う。向きがなく長さが正なら、は距離空間の距離になる。一筆書きの定理と同じく、地図を点と線に置き換えるグラフ理論の問題で、最短距離はとを満たす。
いまの研究と事業

壁の向こうの研究

  • **2026年 段然ら4人(清華大学、スタンフォード大学、マックス・プランク情報学研究所)**同じ条件で、時間をに縮めた。辺の少ないグラフではで、手順9の指数2/3が1/2まで下がる。論文はICALP 2026に載った。出典はarXiv:2602.07868。
  • **2023〜2024年 ハウプラー、タージャンら5人(INSAIT、チューリッヒ工科大学、プリンストン大学ほか)**ダイクストラ法に使う新しいヒープを作った。最小の項目を取り出す手間が、ヒープ全体の大きさではなく、その項目が入ってから取り出されるまでに入った項目の数の対数で済む。手順4の下限をグラフの形ごとに詰めた結果で、FOCS 2024の最優秀論文に選ばれた。出典はarXiv:2311.11793。
  • **2024年 ジェレミー・ファインマン(ジョージタウン大学)**負の長さも含む実数の重みで、乱数を使いの時間を示し、1950年代からのベルマンフォード法のを初めて下回った。手順2の不等式が負の辺で崩れるため、ダイクストラ法は使えない。出典はarXiv:2311.02520。
  • **2023年IETF(シスコシステムズやジュニパーネットワークスの技術者ら)**RFC 9350で、ネットワークの「フレキシブルアルゴリズム」を定めた。ルーターは128〜255番のアルゴリズムごとに、辺の長さを遅延などの別の値に取り替え、条件に合わない辺を除いて、最短経路の木を計算する。長さを替えながら、手順2のダイクストラ法を何度も解く形である。出典はRFC 9350。

参考文献

  1. E. W. Dijkstra, "A note on two problems in connexion with graphs", Numerische Mathematik 1 (1959), 269-271; E. W. Dijkstra, "From my life" (EWD1166), E. W. Dijkstra Archive, The University of Texas at Austin; MacTutor History of Mathematics, "Edsger Wybe Dijkstra".
  2. M. L. Fredman, R. E. Tarjan, "Fibonacci heaps and their uses in improved network optimization algorithms", J. ACM 34(3) (1987), 596-615(FOCS 1984, 338-346); M. Thorup, "Undirected single-source shortest paths with positive integer weights in linear time", J. ACM 46(3) (1999), 362-394; R. Bellman, "On a routing problem", Quart. Appl. Math. 16 (1958), 87-90.
  3. R. Duan, J. Mao, X. Mao, X. Shu, L. Yin, "Breaking the Sorting Barrier for Directed Single-Source Shortest Paths", STOC 2025, 36-44(arXiv:2504.17033); R. Duan, J. Mao, X. Shu, L. Yin, "A Randomized Algorithm for Single-Source Shortest Path on Undirected Real-Weighted Graphs", FOCS 2023, 484-492(arXiv:2307.04139); R. Duan, X. Mao, X. Shu, L. Yin, "A Faster Directed Single-Source Shortest Path Algorithm", ICALP 2026, LIPIcs 374, 81:1-81:23(arXiv:2602.07868).
  4. B. Haeupler, R. Hladík, V. Rozhoň, R. E. Tarjan, J. Tětek, "Universal Optimality of Dijkstra via Beyond-Worst-Case Heaps", FOCS 2024(arXiv:2311.11793); J. T. Fineman, "Single-Source Shortest Paths with Negative Real Weights in Õ(mn^(8/9)) Time", STOC 2024(arXiv:2311.02520).
  5. H. Bast, D. Delling, A. Goldberg, M. Müller-Hannemann, T. Pajor, P. Sanders, D. Wagner, R. F. Werneck, "Route Planning in Transportation Networks", arXiv:1504.05140 (2015); J. Moy, "OSPF Version 2", RFC 2328 (1998); P. Psenakほか, "IGP Flexible Algorithm", RFC 9350 (2023).
  6. ACM SIGACT, "Best Paper Award"(STOC 2025の受賞論文); 清華大学交叉情報研究院, "Congratulations! Duan Ran's research team has won the Best Paper Award at the STOC 2025 conference"(2025年5月9日); FOCS 2024, Program, Session 9: Best Papers.
  7. 文部科学省『高等学校学習指導要領(平成30年告示)解説 数学編 理数編』(2018)、数学C「数学的な表現の工夫」; 情報オリンピック日本委員会「JOI 2015/2016予選 問題5」「JOI 2017/2018本選 問題4」と各解説.

姉妹サイト

株式会社Game が運営するメディアです。