はじめに
「ノード」「エッジ」という言葉を見ても、何を表しているのか分かりにくいことがあります。特に、一般的な棒グラフや折れ線グラフと、グラフ理論でいう「グラフ」は意味が異なるため、最初に混同しやすいポイントです。
グラフ理論では、対象をノード(頂点)、対象どうしの関係をエッジ(辺)として表します。さらに、関係の向きを区別するかどうかによって、有向グラフと無向グラフに分かれます。
この記事では、ノードとエッジの役割を中心に、有向グラフと無向グラフの違いまでを具体例で整理します。読み終えると、点と線で表されたグラフを見たときに「何がノードで、何がエッジなのか」「向きの有無は何を意味するのか」を説明できるようになります。
この記事で分かること
- グラフ理論でいうグラフの意味
- ノード(頂点)とエッジ(辺)の役割
- 有向グラフと無向グラフの違い
- 身近な関係をグラフとして考える基本
グラフ理論の「グラフ」とは
グラフ理論でいうグラフは、棒グラフや折れ線グラフのように数値の大小や推移を表す図ではありません。複数の対象と、その対象どうしの関係を表すための数学的な構造です。
基本となる要素は、ノードとエッジの2つです。たとえば、人どうしのつながりを考えるなら「人」をノード、「人と人の関係」をエッジとして表せます。道路網なら「交差点」をノード、「交差点を結ぶ道路」をエッジと考えられます。
同じ対象でも、何を関係として定義するかによってグラフは変わります。SNSの利用者をノードにしても、エッジを「フォロー関係」とするか「メッセージを送った関係」とするかで、表しているネットワークは別物になります。グラフを読むときは、点や線の形を見るだけでなく、それぞれが何を意味するかを確認することが重要です。
ノードとエッジとは
ノード(Node)は対象を表す点
ノードは、グラフの中で対象を表す要素です。数学では頂点(vertex)とも呼ばれます。人、場所、Webページ、駅、コンピューターなど、分析したい対象をノードとして表せます。
たとえば3人の関係を調べる場合、Aさん、Bさん、Cさんをそれぞれ1つのノードとして置きます。ノードは「何を分析対象にするか」を決める役割を持っています。
エッジ(Edge)はノードどうしの関係を表す線
エッジは、ノードどうしにどのような関係があるかを表す要素です。数学では辺とも呼ばれます。AさんとBさんにつながりがあるなら、その2つのノードをエッジで結びます。
重要なのは、エッジが単なる線ではなく「どの関係を表す線なのか」を決めていることです。人間関係なら友人関係やフォロー関係、交通網なら道路、Webならページ間のリンクなどがエッジになります。
必要に応じて、エッジに距離、時間、回数、コストなどの値を持たせることもあります。これは重み付きグラフと呼ばれますが、基本を理解するときは、まず「ノードが対象、エッジが関係」という対応を押さえることが大切です。
有向グラフと無向グラフの違い
ノードとエッジが同じでも、エッジの向きを区別するかどうかでグラフの意味は変わります。
| 種類 | エッジの考え方 | 例 | 読み方 |
|---|---|---|---|
| 有向グラフ | 向きを区別する | フォロー関係、Webページのリンク、一方通行 | A→BとB→Aを別の関係として扱う |
| 無向グラフ | 向きを区別しない | 共同作業の関係、相互の接続関係 | AとBがつながっていること自体を表す |
有向グラフでは、AからBへのエッジがあっても、BからAへのエッジがあるとは限りません。たとえば、AさんがBさんをフォローしていても、BさんがAさんをフォローしているとは限らないため、方向を区別して表します。
一方、無向グラフでは関係の向きを区別しません。たとえば「AさんとBさんが同じプロジェクトで共同作業した」という関係を表すなら、AからBとBからAを分けず、2人の間につながりがあるものとして扱えます。
無向グラフを「必ず双方向に何かが流れるグラフ」と考える必要はありません。重要なのは、モデル上で関係の向きを区別する必要があるかどうかです。
具体例でノードとエッジを考える
グラフを理解するときは、最初に「何をノードにするか」「何をエッジにするか」「方向を区別するか」の3点を決めると整理しやすくなります。
SNSのフォロー関係では、利用者がノード、フォローがエッジです。誰が誰をフォローしているかが重要なので、有向グラフとして表すのが自然です。
道路網では、交差点をノード、道路をエッジとして表せます。一方通行まで表現したい場合は有向グラフにし、単に交差点どうしが道路でつながっているかだけを見る場合は、向きを区別しないモデルにすることもできます。
Webページの関係では、各ページをノード、ページから別ページへのリンクをエッジとして表せます。リンク元とリンク先があるため、基本的には有向グラフとして考えます。
このように、同じ現実の対象でも、どの関係をモデル化するかによって有向・無向の選び方は変わります。何を分析したいかに応じて、関係の意味と向きの扱いを決めることが重要です。
グラフを見るときの3つの確認ポイント
グラフを読むときは、次の3点を順番に確認すると意味を取り違えにくくなります。
- ノードは何を表しているか
- エッジはどのような関係を表しているか
- エッジの向きを区別しているか
たとえば同じ「人」をノードにしたグラフでも、エッジが友人関係なのか、メール送信なのか、共同作業なのかによって分析できる内容は変わります。ノードの名前だけではなく、エッジの意味まで確認することがグラフ理解の基本です。
まとめ
グラフ理論では、対象をノード(頂点)、対象どうしの関係をエッジ(辺)として表します。グラフを見るときは、「何がノードか」「何がエッジか」を最初に確認することが基本です。
さらに、エッジの向きを区別する場合は有向グラフ、向きを区別しない場合は無向グラフとして扱います。有向・無向の違いは見た目だけではなく、表したい関係をどのようにモデル化するかの違いです。
ノード、エッジ、方向の有無という3点を押さえれば、SNS、道路網、Webページなど、さまざまなネットワークを同じ考え方で整理できます。