【初心者向け】グラフ理論とは?基礎知識から重要アルゴリズム、GoogleのPageRank応用まで徹底解説!

graph-theory

「グラフ理論」と聞くと、なんだか難しそうな数学の理論に思えるかもしれません。しかし実は、私たちが毎日使っているGoogle検索、電車の乗り換え案内、SNSの『おすすめの友達』機能、物流の配送ルート最適化など、現代社会のあらゆる便利なサービスの裏側でこの理論が活躍しています 1

この記事では、グラフ理論をこれから勉強したい初心者の方に向けて、基本的な専門用語から、歴史的なエピソード、代表的なアルゴリズム、そして実社会での応用例までをわかりやすく丁寧に解説します。この記事を読めば、グラフ理論の全体像がすっきりと理解でき、学習の第一歩を踏み出せるようになりますよ!

1. グラフ理論の基本:そもそも「グラフ」ってなに?

数学やコンピュータの世界でいう「グラフ」は、ビジネスで使う「棒グラフ」や「折れ線グラフ」とは全く異なります。

グラフ理論におけるグラフ(Graph)とは、いくつかのオブジェクトと、それらの間にある「つながり(関係性)」を抽象化した構造のことです 3

グラフは、以下の二つの要素で構成されます。

  1. 頂点(ノード / Vertex): 点のこと。人、駅、ウェブページなど、対象となるモノを表します 3
  2. 辺(エッジ / Edge): 線のこと。頂点同士を結び、友人関係、道路、ハイパーリンクなど、モノ同士の「つながり」を表します 3

数学的には、グラフ は頂点の集合 と辺の集合 の組み合わせとして、 と表されます 3。また、頂点の数を 、辺の数を と表現することが一般的です 3

graph-theory

※【図解:グラフ理論の基本イメージ】点(頂点)と線(辺)で表されるネットワークの構造

隣接と次数(じすう)って?

  • 隣接(adjacent): 二つの頂点が一本の辺で結ばれているとき、これらの頂点は「隣接している」と言います 3
  • 次数(degree): 一つの頂点に接続している辺の数のことです 3。例えば、ある頂点 の次数を と書きます。

ここで、グラフ理論の最も基本となる「握手補題(Handshaking Lemma)」という面白い定理をご紹介します 3

これは、「すべての頂点の次数を足し合わせると、必ず辺の数の2倍になる」という性質です 3。なぜなら、一本の辺は必ず二つの頂点をつないでいるため、次数を数えるときにダブルカウントされるからです 7。 この定理から、「どんなグラフでも、次数が奇数(奇数本の線が出ている)である頂点の数は、必ず偶数個になる」という不思議なルールが導き出されます 7

2. つながりのカタチで変わる!グラフの種類と分類

表したい現実世界の現象に合わせて、グラフには様々な種類(制約やルール)があります 7

various-graph

※【図解:無向グラフと有向グラフの違い】矢印のない双方向のつながりと、一方通行の矢印があるつながり

代表的なグラフの分類を、わかりやすく表にまとめました。

グラフの名称特徴とルール身近な例(モデル)
無向グラフ辺に方向(矢印)がなく、双方向の関係を表します。道路、SNSの相互フォロー、友人関係 5
有向グラフ辺に方向(矢印)があり、一方通行の関係を表します。ウェブのリンク、Twitterのフォロー 5
単純グラフ「自分自身に戻る線(自己ループ)」や「二点間の複数本の線(多重辺)」がないグラフです。一般的な社内組織図、シンプルな通信網 7
多重グラフ二つの頂点の間に、複数本の線があることを許します。複数のルートがある交通路線(バスと電車など) 7
重み付きグラフ各辺に数値(コスト、距離、時間、容量など)が割り当てられています。カーナビの距離計算、配送料金のシミュレーション 2
二部グラフ頂点のグループを二つに分けたとき、同じグループ内には辺が存在しないグラフです。「仕事」と「作業者」、「学生」と「履修科目」の割り当て 7
完全グラフすべての異なる頂点同士が、すべて辺で結ばれているグラフです。どの拠点とも直接通信できる、完全に冗長化されたネットワーク 7
DAG (有向非巡回グラフ)矢印をたどっていっても、絶対に元の場所に戻るループ(閉路)が作れない有向グラフです。仕事のタスク順序、プログラミングのビルド順序 7

3. グラフ理論のドラマチックな歴史

グラフ理論は、一見風変わりな数学パズルを解決することから始まり、やがて数学の新しい分野「位相幾何学(トポロジー)」を開拓することになりました 1

3.1 ケーニヒスベルクの7本の橋

18世紀、東プロイセンの都市ケーニヒスベルク(現在のロシア・カリーニングラード)には、川に囲まれた2つの島と、それらをつなぐ7本の橋がありました 13。 当時の人々は、「すべての橋をちょうど一度だけ渡って、元の場所に戻ってくるルートはあるか?」というパズルを楽しんでいましたが、誰もそのルートを見つけられませんでした 14

1735年、天才数学者レオンハルト・オイラーは、この問題に対して見事な解決策を提示しました 。 オイラーが素晴らしかったのは、橋の長さや陸地の正確な形といった「見た目の情報」をすべて無視し、陸地を「点(頂点)」、橋を「線(辺)」とするシンプルな形に置き換えて考えたことです 14

オイラーは、一筆書きで元の場所に戻るルート(オイラー閉路)が存在するためには、「すべての頂点の次数(つながっている橋の数)が偶数でなければならない」ことを証明しました 1。ケーニヒスベルクのすべての陸地は奇数本の橋(3本、5本)でつながっていたため、絶対に一筆書きはできないと結論づけたのです 14。 これが、グラフ理論の記念すべき最初の定理となりました 1

3.2 コンピュータが人間を超えた?「四色定理」

もう一つの有名な歴史が「四色定理(ししょくていり)」です 17。これは、「どんなに複雑な平面の地図でも、隣り合う国が同じ色にならないように塗り分けるには、4色あれば十分か?」という問いです 18

1852年に提唱されて以来、多くの数学者が挑みましたが、最終的に証明されたのは120年以上経った1976年のことでした 。 なんと、この証明は人間の手ではなく、コンピュータを使って約2,000通りものパターンをすべて力任せに検証するという、当時は前代未聞の手法で成し遂げられたのです 17。これは「人間が紙とペンで検証できない証明は数学と言えるのか?」という哲学的な大論争を巻き起こし、コンピュータ科学とグラフ理論が融合する歴史的な事件となりました 17

4. コンピュータの中にネットワークをどう保存する?

プログラムでグラフを扱う際、メモリの軽さと処理スピードのどちらを優先するかで、データの保存方法(表現形式)を使い分ける必要があります 10

matrix-explanation

※【図解:隣接行列と隣接リストのデータ構造比較】二次元配列による表現と、リンクリストによる表現の視覚的違い

主な表現方法は以下の2種類です 3

隣接行列(Adjacency Matrix)

頂点×頂点の掛け算でできる、縦横の二次元表(マトリックス)で表す方法です 3。つながっていれば「1」、つながっていなければ「0」を記録します 10

  • メリット: 二つの頂点がつながっているかどうかを、 という一瞬で確認できます 10
  • デメリット: 頂点の数が多いと、つながっていない部分(0の場所)が多くなり、メモリを大量に無駄消費してしまいます 10

隣接リスト(Adjacency List)

それぞれの頂点ごとに、「自分が誰とつながっているか」のリストを持たせる方法です 3

  • メリット: 存在する辺の情報だけを記録するため、メモリの消費が非常に少なく済みます 10。SNSやウェブリンクのような、全体としてはスカスカなグラフ(疎なグラフ)に最適です 10
  • デメリット: 特定の二点がつながっているかを調べるには、リストを端から走査する必要があり、少し時間がかかります 10

さらに高度な表現:CSR形式

現代のビッグデータ解析や、Pythonのデータ分析ライブラリ(ScipyやPyTorch Geometricなど)では、メモリ効率とアクセス速度を究極まで高めたCSR(Compressed Sparse Row:圧縮行格納)という形式が、標準的な業界標準として使われています 10

5. グラフを「探索」する:基本となる2大アプローチ

グラフ上の頂点を効率よく辿っていく処理を「探索」と呼びます。すべてのグラフアルゴリズムの基礎となる重要な技術です。

5.1 幅優先探索 (BFS)

出発点から「近いところから順番に、じわじわと周りへ広がるように」探索していく方法です。キュー(Queue)というデータ構造を使って実装します 21

  • 特徴: 重みのないグラフであれば、「最短の手数(ステップ数)」で目標のノードにたどり着くことが保証されます 21。SNSの「知り合いの知り合い」を探す機能などに使われています 21

5.2 深さ優先探索 (DFS)

出発点から「一本の道を、行き止まりになるまでひたすら奥へ突き進む」方法です。スタック(Stack)や再帰関数を使って実装します 21

  • 特徴: 迷路の奥深くに入り込んでいくようなイメージです。グラフ全体に「ループ(閉路)」があるかどうかを調べたり、タスクの依存関係を整理したりするのに非常に強力です 7

6. 実社会を支える!絶対に知っておきたい超重要アルゴリズム

実務やプログラミングコンテスト(競プロ)で頻出する、実用性の極めて高いアルゴリズムたちを紹介します。

6.1 最短経路問題(目的地までの一番早いルートを探す)

重み付きグラフ(距離やコストがあるグラフ)で、出発地から目的地までの「最もコストが低いルート」を求める問題です 2

  • ダイクストラ法: すべての辺の重みがプラス(非負)のときに使えます 26。非常に高速で動作するため、Googleマップや乗り換え案内サービスのルート検索のベースになっています 27
  • ベルマン・フォード法: 辺の重みにマイナス(負のコスト)が含まれていても正しく計算できます 26。また、マイナスのループ(通れば通るほどコストが無限に減ってしまう異常な状態)を検知できるため、金融取引の「為替の裁定取引(アービトラージ)の機会検知」などにも応用されます 26

6.2 最小全域木(コスト最小のインフラ網を作る)

すべての頂点をカバーしつつ、全体をループがない状態(木構造)でつなぎ、さらにその合計コストを最小にするネットワークを「最小全域木(MST)」と呼びます 24。 これを解く代表的な方法が、クラスカル法(辺のコストが低い順にどんどんつないでいく方法)と、プリム法(一つの点からスタートして、徐々に木を大きくしていく方法)です 24。電気を効率よく各家庭に届ける送電網や、光ファイバーケーブルの敷設設計に使われています 24

6.3 ネットワークフローと最大流最小カット

「水やパケットを、パイプの容量制限を守りながら、一度にどれだけ多く送れるか?」という問題です 29。 この理論の最高峰が「最大流最小カット定理」です 29。これは、「スタートからゴールへ送れる水の最大量は、ネットワークを途中で分断したときの、一番細いボトルネック(最小カット)の容量に等しい」という美しい定理です 29。道路の渋滞緩和や、インターネットの通信パケットの最適化に直結しています 31

7. 現代社会での最強の応用例:GoogleのPageRank

グラフ理論が私たちのインターネット体験を大きく変えた最大の例が、Googleの初期の検索技術を支えた「PageRank(ページランク)」アルゴリズムです 32

PageRankの基本的なアイデア

  1. インターネット上のウェブページを「頂点」、リンクを「有向の辺(矢印)」とする巨大な有向グラフを作ります 32
  2. 「多くの良質なページからリンクされているページは、きっと価値が高いはずだ」という前提のもと、ページの重要度を多数決のように計算します 32
  3. ネット上をランダムにクリックして進むユーザー(ランダムサーファーモデル)をシミュレーションし、最終的にそのユーザーがどのページにどれくらいの確率で滞在しているかをスコア化します 32

ダンピングファクター(減衰係数)の役割

ユーザーはリンクをたどり続けますが、途中で飽きて全く関係のない別のページに直接ジャンプすることもあります 32。この「リンクをたどり続ける確率」をダンピングファクター (一般的には約 0.85)と呼びます 32。 これがあるおかげで、リンクがぐるぐる回るだけの罠(スパイダートラップ)や、リンクが外に出ていかない行き止まり(デッドエンド)にユーザーが閉じ込められるのを防ぎ、ウェブ全体の重要度を数学的に正しく計算できるようになります 33

8. グラフ理論を勉強するためのおすすめロードマップ&書籍

グラフ理論をこれから本格的に、あるいは実装ベースで学びたい方のために、定評のある厳選された教材をご紹介します。

8.1 初めて学ぶ人におすすめの入門書

  • 『グラフ理論入門:基本とアルゴリズム』宮崎修一 著(森北出版) 36
  • プログラミングやアルゴリズムの観点から非常に丁寧に書かれており、図解も豊富なため、エンジニアの最初の1冊として最もおすすめです 24
  • 『よくわかる! グラフ理論入門』小林みどり 著(共立出版) 36
  • 数学的な厳密さを保ちつつも、専門書特有の堅苦しさがなく、文系・理系問わずゼロからしっかり基本概念を身につけられます 24
  • 『例題で学ぶグラフ理論』安藤清・土屋守正・松井泰子 著(森北出版) 10
  • 具体的な「例題」を解きながら学習を進められるため、座学だけでなく「実際に手を動かして理解を深めたい」という方にぴったりです 24

8.2 プログラミングで実践する

本を読んだら、実際にコードを書いてみるのが一番の近道です。 Pythonには、「NetworkX」というグラフの構築や分析、ビジュアル描画が数行のコードで行える超便利なライブラリがあります 4。 自分で作ったグラフにダイクストラ法やPageRankを適用し、画面上で可視化してみることで、理論が一気にリアルなものとして感じられるようになりますよ 4

9. まとめ:グラフ理論を学ぶことは、世界を見る新しい「目」を得ること

グラフ理論の素晴らしさは、「一見複雑に絡み合った現実世界の関係性を、点と線という極限までシンプルな形にそぎ落として考える抽象化の力」にあります 1

これからAIの分野でも、SNSのユーザー同士のつながりや分子構造、化合物などをディープラーニングで処理する「グラフニューラルネットワーク(GNN)」という最先端の技術がますます発展していきます 10

一見カオスに見えるデータの中から、秩序や最も効率の良いルートを見つけ出すグラフ理論。ぜひ、お気に入りの本を1冊手にとって、そのワクワクするような美しさと実用性の世界に足を踏み入れてみてください!

引用文献

  1. Seven Bridges of Königsberg – Wikipedia, 5月 7, 2026にアクセス、 https://en.wikipedia.org/wiki/Seven_Bridges_of_K%C3%B6nigsberg
  2. GRAPH THEORY AND ITS APPLICATIONS IN NETWORK ANALYSIS – IJRAR, 5月 7, 2026にアクセス、 https://ijrar.org/papers/IJRAR19D6203.pdf
  3. Lecture : Graphs – Definition and Representation Contents, 5月 7, 2026にアクセス、 https://web.lums.edu.pk/~imdad/pdfs/CS510_Notes/CS510-Notes-05-A-Graphs-Definition-Representations.pdf
  4. Modern Graph Theory Algorithms with Python | Coursera, 5月 7, 2026にアクセス、 https://www.coursera.org/learn/packt-modern-graph-theory-algorithms-with-python
  5. グラフの用語 #競技プログラミング – Qiita, 5月 7, 2026にアクセス、 https://qiita.com/meme02/items/f4f49e7cfaa31497dae3
  6. 1 グラフ理論基礎, 5月 7, 2026にアクセス、 https://www.kushiro-ct.ac.jp/jjackpot/lab_student/files/graph/1_introduction.pdf
  7. グラフ理論用語集 : monman53, 5月 7, 2026にアクセス、 https://monman53.github.io/science/computer/graph.html
  8. Königsberg bridge problem | Mathematics, Graph Theory & Network Theory | Britannica, 5月 7, 2026にアクセス、 https://www.britannica.com/science/Konigsberg-bridge-problem
  9. グラフ理論のすべて:基礎から応用まで分かりやすく解説 | Data …, 5月 7, 2026にアクセス、 https://blog.since2020.jp/glossary/graph-_theory/
  10. Graph Representations: Adjacency Matrix, List & More | TensorTonic, 5月 7, 2026にアクセス、 https://www.tensortonic.com/ml-math/graph-theory/graph-representations
  11. Hall’s Marriage Theorem | Brilliant Math & Science Wiki, 5月 7, 2026にアクセス、 https://brilliant.org/wiki/hall-marriage-theorem/
  12. network flows and the max-flow min-cut theorem, 5月 7, 2026にアクセス、 https://www.math.uchicago.edu/~may/VIGRE/VIGRE2009/REUPapers/Staples-Moore.pdf
  13. Am I right about the differences between Floyd-Warshall, Dijkstra’s and Bellman-Ford algorithms? – Stack Overflow, 5月 7, 2026にアクセス、 https://stackoverflow.com/questions/11704643/am-i-right-about-the-differences-between-floyd-warshall-dijkstras-and-bellman
  14. How Königsberg’s 7 Bridges Problem Inspired the Inception of Graph Theory | by Sunny Labh | Cantor’s Paradise, 5月 7, 2026にアクセス、 https://www.cantorsparadise.com/how-k%C3%B6nigsbergs-7-bridges-problem-inspired-the-inception-of-graph-theory-6283cad7bf10
  15. What was the origin of the Seven Bridges of Königsberg problem before Euler?, 5月 7, 2026にアクセス、 https://hsm.stackexchange.com/questions/5848/what-was-the-origin-of-the-seven-bridges-of-k%C3%B6nigsberg-problem-before-euler
  16. The Bridges of Königsberg – Graphs and Networks – Mathigon, 5月 7, 2026にアクセス、 https://mathigon.org/course/graph-theory/bridges
  17. Four color theorem – Wikipedia, 5月 7, 2026にアクセス、 https://en.wikipedia.org/wiki/Four_color_theorem
  18. The Four Color Theorem – Robin Thomas, 5月 7, 2026にアクセス、 https://thomas.math.gatech.edu/FC/fourcolor.html
  19. Four Color Theorem – Illinois Distributed Museum, 5月 7, 2026にアクセス、 https://distributedmuseum.illinois.edu/exhibit/four-color-theorem/
  20. 📘 Graph Representation Made Easy: Understanding Adjacency Matrix and List | by Sai Pranav Moluguri | Medium, 5月 7, 2026にアクセス、 https://medium.com/@saipranavmoluguri2001/graph-representation-made-easy-understanding-adjacency-matrix-and-list-8ad50970b7ca
  21. Applications of Graph Theory in Social Networks | by Sujal Jain …, 5月 7, 2026にアクセス、 https://medium.com/@sujal.jain1510/applications-of-graph-theory-in-social-networks-df79318cfc2b
  22. Understanding Hopcroft-Karp Algorithm for Maximum Matching | by Punem Nithin | Medium, 5月 7, 2026にアクセス、 https://medium.com/@punem_nithin/understanding-hopcroft-karp-algorithm-for-maximum-matching-9f6d5b4b0719
  23. Hopcroft–Karp algorithm – Wikipedia, 5月 7, 2026にアクセス、 https://en.wikipedia.org/wiki/Hopcroft%E2%80%93Karp_algorithm
  24. Minimum Spanning Tree Tutorials & Notes | Algorithms – HackerEarth, 5月 7, 2026にアクセス、 https://www.hackerearth.com/practice/algorithms/graphs/minimum-spanning-tree/tutorial/
  25. Introduction to Graph Theory – Coursera, 5月 7, 2026にアクセス、 https://www.coursera.org/learn/graphs
  26. Am I right about the differences between Floyd-Warshall, Dijkstra and Bellman-Ford algorithms? – Computer Science Stack Exchange, 5月 7, 2026にアクセス、 https://cs.stackexchange.com/questions/2942/am-i-right-about-the-differences-between-floyd-warshall-dijkstra-and-bellman-fo
  27. Shortest Path Algorithms: Dijkstra’s, Bellman-Ford & Floyd-Warshall Explained! – YouTube, 5月 7, 2026にアクセス、 https://www.youtube.com/watch?v=yMduzwC_0f4
  28. Comparing Graph Algorithms: MST & Shortest Paths | PDF | Computational Complexity Theory | Combinatorics – Scribd, 5月 7, 2026にアクセス、 https://www.scribd.com/document/859750516/basic-differences-among-Kruskal-s-Prim-s-Dijkstra-s-Floyd-Warshall-and-Bellman-Ford
  29. Max-flow min-cut theorem – Wikipedia, 5月 7, 2026にアクセス、 https://en.wikipedia.org/wiki/Max-flow_min-cut_theorem
  30. Maximum Flows & Minimum Cuts, 5月 7, 2026にアクセス、 https://jeffe.cs.illinois.edu/teaching/algorithms/book/10-maxflow.pdf
  31. Max-flow min-cut theorem. A company’s various departments need to… | by Ac Studio | Medium, 5月 7, 2026にアクセス、 https://medium.com/@acamvproducingstudio/max-flow-min-cut-theorem-6f2f559e7dbb
  32. PageRank – Wikipedia, 5月 7, 2026にアクセス、 https://en.wikipedia.org/wiki/PageRank
  33. PageRank Algorithm – Computing for All, 5月 7, 2026にアクセス、 https://computing4all.com/courses/introductory-data-science/lessons/page-rank-algorithm/
  34. The Hidden Math Behind PageRank Algorithm: Google’s Search Engine Blueprint, 5月 7, 2026にアクセス、 https://www.bestmathstutor.co.uk/post/the-hidden-math-behind-pagerank-algorithm-google-s-search-engine-blueprint
  35. pagerank – Memgraph, 5月 7, 2026にアクセス、 https://memgraph.com/docs/advanced-algorithms/available-algorithms/pagerank
  36. グラフ理論おすすめ書籍リスト – Zenn, 5月 7, 2026にアクセス、 https://zenn.dev/tutetuti/articles/df942712f4ab48
  37. 【大学】離散数学のおすすめ教科書を紹介します, 5月 7, 2026にアクセス、 https://kuntaras.com/discrete-mathematics/
  38. グラフ理論の本 おすすめ6選 わかりやすい♪ | ブクスタ!, 5月 7, 2026にアクセス、 https://bksta.com/summary/qP2ib3nTwap1YWh
  39. Best Graph Theory Courses & Certificates [2026] | Coursera, 5月 7, 2026にアクセス、 https://www.coursera.org/courses?query=graph%20theory
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次