FE EXAM

有向グラフ(Directed Graph)

方向を持つ矢印(エッジ)でノード間の関係を表すグラフ

INTERACTIVE VISUALIZATION
出ていく先
入ってくる元
ノード数 (頂点)
5
エッジ数 (有向辺)
5
選択中のノード
プリセット有向グラフ
ノードを選んで隣接関係を見る

グラフ内のノード(円)をクリックしても選べます。もう一度押すと選択解除。

タスクの依存関係「Aが終わってからB」のような作業の前後関係。矢印は「先にやること → 次にやること」を表す
設計実装テストレビューリリース
隣接関係(リアルタイム)
ノード出次数入次数
設計10
実装21
テスト11
レビュー11
リリース02
解説

📌
有向グラフとは

ABエッジ(矢印)ノード(頂点)

有向グラフ(Directed Graph)とは、ノード(頂点=丸)と、それらを方向を持つ矢印でつなぐエッジ(辺)で物事の関係を表した図のことです。矢印が「A→B」なら「AからBへ向かう関係」を意味し、その逆「B→A」は別物として扱います。

身近な例で言うと、SNSのフォローが分かりやすいです。あなたが芸能人をフォローしても、芸能人があなたをフォローし返すとは限りません。この「片思い」のような一方通行の関係を、矢印一本で表せるのが有向グラフです。

上のツールでプリセットを切り替え、ノードをクリックしてみてください。そのノードから出ていく矢印(出次数)入ってくる矢印(入次数)が色分けされ、隣接関係がリアルタイムで一覧表示されます。

🔗
ノードとエッジの概念

XPQ入次数 1出次数 1

有向グラフを構成する2つの要素を整理します。
ノード(頂点 / vertex):関係の「主体」。人・タスク・Webページなど何でも表せる
エッジ(辺 / edge):ノード間の「つながり」。有向グラフでは向きを持つ矢印になる

各ノードには次数(degree)という指標があります。有向グラフでは2種類に分かれます。
出次数:そのノードから出ていく矢印の本数
入次数:そのノードへ入ってくる矢印の本数

たとえば「A→B」「C→B」という2本の矢印があれば、Bの入次数は2、出次数は0です。あるノードに入ってくる/出ていく辺の数を数えるときは、矢印の向きをていねいに追うことが大切です。

🛠️
用途(依存関係・経路等)

設計実装テスト「先にやること → 次にやること」

有向グラフは「向きのある関係」を表せるため、IT分野で非常に幅広く使われます。代表的な用途を挙げます。
作業の依存関係:「設計→実装→テスト」のように順番が決まった工程の管理(PERT図・トポロジカルソート)
経路・到達可能性:地図の一方通行や、Webページのリンク構造(Googleのページランクなど)
状態遷移:プログラムの状態が「待機→実行→終了」と移り変わる様子

身近な例では、料理のレシピも有向グラフです。「お湯を沸かす→麺を入れる→3分待つ→盛り付ける」のように、各工程には順番(向き)があり、前の工程が終わらないと次に進めません。この前後関係をグラフで表すと、どの作業を先にすべきか・並行できるかが一目で分かります。

重要なポイントとして、矢印をたどると元のノードに戻る閉路(サイクル)の有無があります。依存関係に閉路があると「AはBの後、BはAの後」と堂々巡りになり処理が進みません。プリセット「循環するルート」でこの構造を確認できます。

関連コンテンツ