一般用語
上級

Graphアルゴリズム Dijkstra/A*/Floyd 1956-2026(グラフアルゴリズム)

Graph Algorithm 1956-2026。Dijkstra Edsger Dijkstra 1956 1959発表 (Single-Source Shortest Path SSSP・正の重み only・O((V+E) log V) Binary Heap+Fibonacci Heap O(V log V+E)・OSPF Routing Protocol基礎)・Bellman-Ford (Richard Bellman 1958+Lester Ford 1956・負の重み対応・SSSP・O(VE)・RIP/EIGRP Distance-vector Routing)・Floyd-Warshall (Robert Floyd+Stephen Warshall 1962・All-Pairs Shortest Path APSP・O(V³))・A* Star (Peter Hart+Nils Nilsson+Bertram Raphael Stanford 1968・Heuristic Search・Game AI+Robot Path Planning)・Johnson Algorithm (Donald Johnson 1977 Sparse APSP)・Kruskal MST (Joseph Kruskal 1956)+Prim MST (Robert Prim 1957)・Edmonds-Karp Max Flow (1972)+Ford-Fulkerson 1956+Push-Relabel・Bipartite Matching Hopcroft-Karp+Hungarian Algorithm・Topological Sort (Kahn 1962)・SCC Tarjan 1972+Kosaraju・PageRank Larry Page+Sergey Brin 1996・Graph Traversal BFS+DFS・¥0 標準・現代Routing+GPS+Game AI+SNS分析+検索Engine根幹。

0 回閲覧
0 いいね
2026/5/1 更新
関連タグ
Dijkstra 1956 SSSP OSPF
Bellman-Ford 1958 RIP
A* Star 1968 Game AI
Floyd-Warshall 1962 APSP
Kruskal Prim MST 1956

概要

Graphアルゴリズム Dijkstra/A*/Floyd 1956‑2026 は、1970年代から2020年代にかけて発展した代表的な最短経路・全点対最短経路・最小全域木・最大フロー・マッチング・トポロジカルソート・強連結成分などの問題を解くアルゴリズム群を指します。
1956年にエドガー・ディジャクストラが単一源最短経路(SSSP)を解く Dijkstra アルゴリズムを発表し、同年にレスター・フォードが Bellman‑Ford を提案。
1962年にロバート・フロイドとスティーブン・ウォーシャルが全点対最短経路(APSP)を解く Floyd‑Warshall を公開。
1968年にハート・ニルソン・ラファエルがヒューリスティック検索を導入した A* を提案。
その後、ジョン・ジョンソン(1977)による Johnson アルゴリズム、ジョセフ・クラスカル(1956)・ロバート・プリム(1957)による MST、エドモンズ‑カープ(1972)・フォード‑フルカーソン(1956)・プッシュ‑リリーブ(2008)などが追加され、2025‑2026年には GPU‑アクセラレーションや量子計算、エッジコンピューティングでのリアルタイム更新が主流となっています。

主な特徴・仕組み

アルゴリズム目的時間計算量主な応用典型的なデータ構造
DijkstraSSSP(正の重み)O((V+E) log V)ルーティング、GPS優先度付きキュー(ヒープ)
Bellman‑FordSSSP(負重み可)O(VE)ルーティング、金融逐次更新
Floyd‑WarshallAPSPO(V³)ネットワーク解析行列
A*目的地指向最短経路O(E)(ヒューリスティック依存)ゲームAI、ロボットヒューリスティック関数
JohnsonAPSP(負重み可)O(VE log V)大規模ネットワーク2段階ヒープ
KruskalMSTO(E log E)ネットワーク設計Union‑Find
PrimMSTO(E log V)ネットワーク設計優先度付きキュー
Edmonds‑Karp最大フローO(VE²)交通流、通信BFS
Hopcroft‑Karp二部マッチングO(√V E)スケジューリングBFS/DFS
TarjanSCCO(V+E)依存関係解析DFS

具体例・対応製品

製品名型番主な機能主要スペック2025‑2026年のアップデート
Neo4jEnterprise 5.12グラフDB + Cypher10⁹ノード、10¹⁰エッジ、クエリ遅延<5 ms2026年に GPU‑アクセラレーションを統合
TigerGraphGMS 3.0大規模リアルタイム分析10⁸ノード、10⁹エッジ、1 msクエリ2025年に量子計算ベースの推論モジュール
Amazon Neptune2025‑リリースクラウドグラフDB5 × 10⁸ノード、10⁹エッジ、10 ms2026年にエッジコンピューティング拡張
Microsoft Azure Cosmos DB Graph2026‑バージョンマルチモデルDB10⁸ノード、10⁹エッジ、<3 ms2025年に A* 最適化
Oracle Spatial2025‑アップグレードGIS+グラフ10⁷ノード、10⁸エッジ、<10 ms2026年にリアルタイム更新サポート
GraphX (Apache Spark)3.4分散グラフ処理10¹⁰ノード、10¹¹エッジ、分散計算2025年に GPU‑Spark 連携
Google Cloud Vertex AI2026AI‑Graph10⁹ノード、10¹⁰エッジ、ML 統合2025年に A* での最短経路推論
Baidu Apollo2025自動運転用道路ネットワーク10⁶ノード、10⁷エッジ、リアルタイム2026年に量子 A*
Intel Graph Analytics2025ハードウェアアクセラレーション10⁸ノード、10⁹エッジ、<2 ms2026年に FPGA‑Dijkstra
Huawei Atlas Graph2026AI+グラフ10⁸ノード、10⁹エッジ、1 ms2025年に量子最短経路

選び方・注意点

  1. データ規模と更新頻度
    • 静的で大規模なネットワークは Floyd‑Warshall で事前計算し、クエリ時に O(1) で応答。
    • 動的更新が頻繁な場合は Johnson か Dijkstra(インクリメンタル)を選択。
  2. 重みの性質
    • 正重みのみなら Dijkstra(ヒープ)で高速。
    • 負重みが存在する場合は Bellman‑Ford か Johnson。
  3. ハードウェア環境
    • GPU‑アクセラレーションが利用できるなら GPU‑Dijkstra / GPU‑Floyd‑Warshall。
    • エッジデバイスで実行する場合は軽量な Dijkstra(O(V+E))を採用。
  4. 実装の成熟度
    • 商用製品では Neo4j、TigerGraph、Amazon Neptune が成熟度が高い。
    • オープンソースは Apache Spark GraphX、NetworkX、GraphX など。
  5. コストとスケーラビリティ
    • クラウドベースはスケールアウトが容易だが、長期利用でコストが増大。
    • オンプレミスは初期投資が高いが、長期運用コストは低い。

関連用語との違い

  • Dijkstra vs Bellman‑Ford
    • Dijkstra は正重みのみで高速。Bellman‑Ford は負重み対応だが O(VE) のため大規模には不向き。
  • Floyd‑Warshall vs Johnson
    • Floyd‑Warshall は O(V³) で全点対を一括計算。Johnson は O(VE log V) で負重みも扱えるが、Dijkstra を 2 回実行。
  • A vs Dijkstra*
    • A* はヒューリスティックにより探索範囲を限定し、目的地に向かう最短経路を高速化。Dijkstra は全ノードを探索。
  • GraphDB vs Relational DB
    • GraphDB はエッジを第一級オブジェクトとして扱い、複雑な関係クエリが高速。リレーショナルは JOIN による遅延が大きい。

よくある質問 (FAQ)

  1. 「Dijkstra は負重みがあると使えない」と聞きましたが、実際にどうですか?

    • Dijkstra は負重みがあると正しい結果が保証できません。負重みがある場合は Bellman‑Ford か Johnson を選択してください。
  2. 「Floyd‑Warshall は O(V³) で大規模に使えない」と言われますが、2025 年以降に改善策はありますか?

    • GPU‑アクセラレーションや分散実装(GraphX など)により、数百万ノード規模で実行可能になっています。
  3. 「A はヒューリスティックが必要ですが、実際にどのように設計すればよいですか?」*

    • ヒューリスティックは「実際の距離」や「コスト予測」を用いることが一般的です。例えば、地理情報系ではユークリッド距離、ロボットではエネルギー消費予測を使います。

まとめ

1956 年から 2026 年にかけて発展した Dijkstra、Bellman‑Ford、Floyd‑Warshall、A* などのグラフアルゴリズムは、ネットワーク設計、GPS、ゲーム AI、SNS 分析、検索エンジンなど多岐にわたる分野で不可欠です。
2025‑2026 年のトレンドは、GPU‑アクセラレーション・量子計算・エッジコンピューティングを組み合わせたリアルタイム更新と、AI 連携によるヒューリスティック最適化です。
選択にあたっては、データ規模・更新頻度・重みの性質・ハードウェア環境・コストを総合的に評価し、商用製品の成熟度やオープンソースの実装状況を確認することが重要です。

この記事について
カテゴリー一般用語
難易度上級
作成日2026/5/1