方向を持たない線(エッジ)でノード間の関係を表すグラフ
無向グラフ(Undirected Graph)とは、ノード(頂点)どうしを向きを持たない線(エッジ)でつないだ図のことです。「A—B」という線は「AとBはつながっている」という相互の関係を表し、AからもBからも対等にたどれます。
身近な例で言うと、友達関係がぴったりです。「AさんとBさんは友達」という関係は、どちらから見ても友達であり、一方通行ではありません。鉄道の路線図や、握手した相手の関係なども無向グラフで表せます。
上のツールでプリセットを切り替え、ノードをクリックしてみてください。つながっている隣のノード(隣接ノード)が強調され、各ノードの次数や連結成分がリアルタイムで分かります。
無向グラフを理解するうえで重要な3つの用語を整理します。
・次数(degree):そのノードにつながっている線の本数。友達が3人いれば次数は3
・連結成分:互いに線をたどって行き来できるノードのかたまり。バラバラのグループが2つなら連結成分は2つ
・サイクル(閉路):同じ線を通らずに出発点へ戻れる経路。ループがある状態
次数の便利な性質として、すべてのノードの次数を合計すると、必ず辺の本数の2倍になります(握手補題)。1本の線は両端の2ノードに次数を1ずつ与えるためです。たとえば辺が6本なら、次数の合計は 6 × 2 = 12 になります。
サイクルがなく、すべてのノードがひとつながり(連結成分が1つ)の無向グラフを木(ツリー)と呼びます。木では「辺の本数 = ノード数 − 1」が必ず成り立ちます。プリセット「木(サイクルなし)」で確認してみてください。
無向グラフと有向グラフの違いは「エッジに向きがあるかどうか」のたった一点です。問題文の関係が「相互」か「一方通行」かを見抜くのがポイントです。
| 無向グラフ | 有向グラフ | |
|---|---|---|
| エッジ | 線(向きなし) | 矢印(向きあり) |
| たどり方 | 両方向に行ける | 矢印の向きにだけ |
| 次数 | 1種類(次数) | 入次数・出次数の2種類 |
| 典型例 | 友達関係、路線図 | フォロー、作業の依存関係 |
見分けるコツは「逆向きにもたどれるか?」と自問することです。電車の路線(往復できる)は無向、Web上の一方向リンク(戻れない)は有向です。「相互フォロー」なら無向、「片方だけフォロー」なら有向、というように相互か一方通行かで読み分けます。