グラフ理論(BFS・DFS・ダイクストラ)とは?BFS・DFSとダイクストラ法

公開: 更新: カテゴリ: テクノロジ系

30秒で結論

グラフ理論とは(全体像)

グラフ理論とは、点(頂点・ノード)と、それをつなぐ線(辺・エッジ)でできた「つながり」を扱う数学のことだ。

たとえば、駅(点)と路線(線)の地図、SNSの友だち関係、交通網などは、すべて「点と線のつながり」で表せる。グラフ理論は、こうしたものごとの関係を扱うのに役立つ。

このつながりの中を「探す」やり方が、これから見るBFS(幅優先探索)DFS(深さ優先探索)だ。そして、最も短い道を求めるのがダイクストラ法だ。


詳しく:BFS・DFSとダイクストラ法

ここが心臓部。3つのアルゴリズムを表で押さえよう。

グラフの主なアルゴリズム

名前やさしい意味
BFS(幅優先探索)近いところから、横に広げて順に探す
DFS(深さ優先探索)一本道を、できるだけ奥まで進んで探す
ダイクストラ法重み(距離)つきのグラフで、最短経路を求める

ここで一番のポイント。最も短い道(最短経路)を求めるのは、ダイクストラ法だ。DFSは「深さ優先」なだけで、最短経路を保証しない。「DFSで最短経路が分かる」と思い込むと誤りになる。最短経路を知りたいときは、ダイクストラ法を使う。

わかりやすく言い換えると

身近なたとえで整理しよう。駅と路線の地図で考えるとわかりやすい。

グラフ理論は、「駅(点)と路線(線)のつながりを扱う考え方」のイメージ。SNSのつながりも、同じように表せる。

BFSとDFSは、「近い駅から順に調べる(BFS)」と「一本の路線を終点まで進む(DFS)」の違い。要するに、横に広げるか、奥に進むか、だ。

ダイクストラ法は、「いちばん短いルートを探す方法」。つまり、最短経路を知りたいときに使う、ということだ。


試験のツボ

🔴 一番出る:BFSとDFSの違い

①BFS(幅優先)=近いところから横に広げて探す

②DFS(深さ優先)=一本道を奥まで進んで探す

🔴 次に出る:最短経路はダイクストラ法

①最短経路を求めるのはダイクストラ法

②DFSは深さ優先なだけで、最短は保証しない

🟡 押さえると安定:グラフの正体と応用

①点(頂点)と線(辺)でつながりを表す

②SNS・交通網・Web検索などに使われる


よくある間違い

「DFS(深さ優先探索)を使えば、最短経路が分かる」→ ✗  DFSは深さ優先なだけで、最短経路は保証しない。最短経路はダイクストラ法。

「BFSとDFSは、まったく同じ探し方だ」→ ✗  BFSは横に広げて、DFSは奥に進んで探す。探し方が違う。

「グラフ理論は、点だけ・線だけで成り立っている」→ ✗  グラフは、点(頂点)と線(辺)の両方でできている。


試験での出題パターン

実際の問題でたしかめてみよう。

オリジナル問題1(グラフ理論の正体)

📝 オリジナル問題 1 グラフ理論の正体

グラフ理論に関する次の記述のうち、最も適切なものはどれか。

  1. 社員の出退勤を記録して、毎月の給与を計算するためのしくみである
  2. 点(頂点)と線(辺)でできた、つながりを扱う数学のことである
  3. 取引先へ毎月の請求書を郵送する、決まった事務作業のことを指す
  4. 完成したシステムを宣伝して、より多く売るための広告活動である
データパン
データパン 解答・解説

解答は 2 だぱん。

グラフ理論は、点(頂点)と線(辺)でできたつながりを扱う数学なんだぱん。SNSや交通網など、関係を表すのに使うんだぱん。

選択肢1は給与計算、選択肢3は請求書の事務、選択肢4は広告で、どれも違うぱん。

選択肢判定理由
1給与計算のしくみではない
2点と線のつながりを扱う数学で正しい
3請求書の事務の話
4広告活動ではない

オリジナル問題2(BFSとDFS)

📝 オリジナル問題 2 BFSとDFSの違い

BFSとDFSの違いに関する次の記述のうち、最も適切なものはどれか。

  1. BFSは奥まで進んで探し、DFSは横に広げて探すとされているものだ
  2. BFSもDFSも、社員の給与を計算するための方法だとされている
  3. BFSもDFSも、取引先へ請求書を郵送するための方法だとされる
  4. BFSは横に広げて探し、DFSは一本道を奥まで進んで探すものである
データパン
データパン 解答・解説

解答は 4 だぱん。

BFSは横に広げて探し、DFSは一本道を奥まで進んで探すものなんだぱん。横に広げるか、奥に進むか、の違いだぱん。

選択肢1は説明が逆、選択肢2は給与計算、選択肢3は請求書の事務で誤りだぱん。

選択肢判定理由
1BFSとDFSの説明が逆
2給与計算の方法ではない
3請求書の事務の方法ではない
4BFSは横・DFSは奥で正しい

オリジナル問題3(最短経路)

📝 オリジナル問題 3 最短経路の求め方

グラフで最短経路を求める方法として、最も適切なものはどれか。

  1. DFS(深さ優先探索)を使えば、必ず最短経路が分かるとされる
  2. 社員の給与を計算する方法で、最短経路を求めるとされているものだ
  3. ダイクストラ法で求める。DFSは最短経路を保証しないものである
  4. 取引先へ請求書を郵送する方法で、最短経路を求めるとされている
データパン
データパン 解答・解説

解答は 3 だぱん。

最短経路は、ダイクストラ法で求める。DFSは最短経路を保証しないんだぱん。DFSは深さ優先なだけだから、まちがえないようにするといいぱん。

選択肢1の「DFSで最短」、選択肢2の給与、選択肢4の請求書は、いずれも違うぱん。

選択肢判定理由
1DFSは最短を保証しない
2給与計算の方法ではない
3ダイクストラ法で求めるで正しい
4請求書の方法ではない

まとめ

押さえどころ

次に学ぶ


執筆: SikakuQuest編集部

勉強は、クエストになった。

資格の勉強を、冒険に変えるRPG学習アプリ

App Storeで見る