グラフ理論

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動先: 案内検索

グラフ理論(グラフりろん、テンプレート:Lang-en-short)は、数学の一分野。ノード節点頂点[1])の集合とエッジ[2])の集合で構成されるグラフの性質について研究する学問である。なお「エッジ」をリンク[3]という場合もある。コンピュータのデータ構造アルゴリズムなどに広く応用されている。

グラフとは

グラフを用いることで、様々な物の関連性を表すことができる。

ファイル:6n-graf.svg
6 つのノードと 7 つのエッジから成るグラフの一例

鉄道や路線バス等の路線図を例に考える際には、駅(ノード)がどのように路線(エッジ)で結ばれているかが問題となる。 従って線路が具体的にどのような曲線を描いているかは本質的な問題とならないことが多い。

つまり、路線図では駅間の距離や微妙な配置、路線の形状などがしばしば地理上の実際とは異なって描かれているということになる。 路線図の利用者にとっては、駅と駅の「つながり方」が主に重要な情報なのである。

このように、「つながり方」に着目して抽象化された「点とそれをむすぶ線」の概念がグラフであり、 グラフが持つ様々な性質を探求するのがグラフ理論である。

つながり方だけではなく「どちらからどちらにつながっているか」をも問題にする場合、エッジに矢印をつける。このようなグラフを有向グラフ[4]または、ダイグラフ[5]という。矢印のないグラフは、無向グラフ[6]という。

グラフの例

日常的な問題や工学的問題の多くをグラフとしてみなすことができる。以下はその例である。

路線図
前節の通り。
電気回路
回路図を書く場合、実際のリード線通りの形状に図を書いたりはしない。この場合も、「接点がどのようにつながれているか」だけが問題であって、「つながり方」を保ちつつできるだけ見やすい形に絵を描く。回路図は一種のグラフである。
WWWの構造
WWWにおけるウェブページの、ハイパーリンク・被リンク関係がなす構造は、有向グラフの一種である。

グラフ理論の起源

グラフ理論は、1736年、「ケーニヒスベルクの問題」に対してオイラーが解法を示したのが起源とされる。この問題は、一筆書きと深く関連している。(詳しくは、一筆書きの項を参照。)

厳密なグラフの定義

有向グラフ

集合 V , E と、E の元に、二つの V を元の対で対応させる写像

<math>f\colon E \to V \times V</math>

の三つ組

<math>G := (f, V, E)</math>

有向グラフという。V の元を G頂点[7]またはノード[8]E の元を G[9]または[10]と呼ぶ。

無向グラフ

P(V) を V冪集合とする。E の元に V部分集合を対応させる写像

<math>g\colon E \to P(V)</math>

があって、E の任意の元 e の像が g(e) = {v1, v2} のようにちょうど二つの元の集合になっているとする。このとき、三つ組

<math>G := (g, V, E)</math>

無向グラフという。V の元を G の頂点、E の元を G の辺と呼ぶ。g の値が常にk > 2個の元の集合となっているとき、k-ハイパーグラフという。

E を最初からある集合の部分集合と考えれば、写像を用いずにグラフを定義することもできる。有向グラフでは、EV×V の部分集合、無向グラフでは、E を P(V) の部分集合で、二つの元の集合のみからなるものとすればよい。

グラフ理論の用語

頂点と辺

グラフ <math>G</math> の頂点[11]集合は <math>V(G)</math>、辺[12]集合は <math>E(G)</math> で表す。

重みつきグラフ

グラフの辺に重みコスト)が付いているグラフを、重み付きグラフ[13]と呼ぶ。乗換案内図の場合、駅間の所要時間が「重み」にあたる。

接合と隣接

辺 <math>e</math> の両端の点を端点[14]といい、端点は 辺<math>e</math> に接合 (または、接続) しているという。また、辺と辺がある頂点を共有しているとき、その辺同士は隣接 している[15]という。

距離と直径

2頂点間の最短経路における辺数を距離[16]と呼ぶ。グラフの最大頂点間距離を直径[17]と呼ぶ。

ループと多重グラフ

ある辺の両端点が等しいとき、ループ[18]自己ループ)という。また、2 頂点間に複数の辺があるとき、多重辺という。ループも多重辺も含まないグラフのことを単純グラフ[19]といい、ループや多重辺を含むグラフのことを多重グラフという。

部分グラフと親グラフ

二つのグラフ <math>G</math> と <math>G'</math> について、<math>G' </math> の頂点集合と辺集合が共に<math>G</math> の頂点集合と辺集合の部分集合になっているとき、<math>G'</math>は <math>G</math>の部分グラフ[20]であるという。逆に、<math>G</math> は<math>G'</math> の拡大グラフであるという。特に、頂点集合が等しい部分グラフのことを、全域部分グラフ[21]生成部分グラフ因子)という。また、<math>G</math> の頂点集合<math>V</math> の部分集合<math>S</math>を取り出して、両端点が<math>S</math>に属する全ての辺を辺集合とする G の部分グラフを、誘導部分グラフ[22]という。それから、グラフ <math>G</math> からある辺を取り除き、その辺の両端点を一つの頂点に縮約したとき、縮約グラフ[23]商グラフ)という。

次数と正則グラフ

頂点 <math>v~</math> に接続する枝の数を次数といい、<math>d(v)</math>で表す。 有向グラフにおいては、<math>v~</math> に入ってくる辺数のことを入次数、<math>v~</math> から出て行く辺数のことを出次数という。すべての頂点が同数の隣接点、つまり次数を持つグラフを正則グラフと呼ぶ、 <math> v </math>について、<math> d(v)=k ~</math>が成り立つとき、k -正則[24]という。k-正則なグラフのことをk-正則グラフという。グラフ <math>G~</math> 中の最小次数の頂点の次数を <math>\delta(G)</math>、最大次数の頂点の次数を <math>\Delta(G)~</math> で表す。また、次数 0 の頂点のことを孤立点という。

通路(ウォーク)と循環(サイクル)

隣接している頂点同士をたどった<math>v_1,~ e_1,~ v_2,~ e_2, ... ,~ e_{n-1},~ v_n</math> の系列を歩道[25]ウォーク)という。辺の重複を許さない場合、>[26]小径トレイル)という。頂点の重複を許さない場合、つまり、両端の2頂点の次数が1、それ以外のすべての頂点の次数が2であるグラフを、[27]パス)、開いた歩道をパスという場合は単純パスという。また、始点と終点が同じ路のことを閉路回路循環サーキットサイクル[28])、始点と終点が同じ道(つまり<math>e_1,~ e_2,~ ... ,~ e_n,~ e_1</math>という路で<math> e_i ~</math>が相異なるもの)のことを閉道サイクル)という。

完全グラフとクリーク

任意の 2 頂点間に枝があるグラフのことを完全グラフ完備グラフ[29])という。<math>n~</math> 頂点の完全グラフは、<math>K_n ~</math>で表す。また、完全グラフになる誘導部分グラフのことをクリークという。サイズ <math>n</math> のクリークを含むグラフは「n-クリークである」と言う。辺を持つグラフは必ず 2 頂点の完全グラフを含むので 2-クリークである。また n-クリークであって、直径が n 未満となるグラフを n-クランと言う。

その他のグラフ理論の用語

グラフ理論の問題・定理

応用

参考文献

脚注

テンプレート:Reflist

関連項目

  1. テンプレート:Lang-en-short
  2. テンプレート:Lang-en-short
  3. テンプレート:Lang-en-short
  4. テンプレート:Lang-en-short
  5. テンプレート:Lang-en-short
  6. テンプレート:Lang-en-short
  7. テンプレート:Lang-en-short
  8. テンプレート:Lang-en-short
  9. テンプレート:Lang-en-short
  10. テンプレート:Lang-en-short
  11. テンプレート:Lang-en-short
  12. テンプレート:Lang-en-short
  13. テンプレート:Lang-en-short
  14. テンプレート:Lang-en-short
  15. テンプレート:Lang-en-short
  16. テンプレート:Lang-en-short
  17. テンプレート:Lang-en-short
  18. テンプレート:Lang-en-short
  19. テンプレート:Lang-en-short
  20. テンプレート:Lang-en-short
  21. テンプレート:Lang-en-short
  22. テンプレート:Lang-en-short
  23. テンプレート:Lang-en-short
  24. テンプレート:Lang-en-short
  25. テンプレート:Lang-en-short
  26. テンプレート:Lang-en-short
  27. テンプレート:Lang-en-short
  28. テンプレート:Lang-en-short
  29. テンプレート:Lang-en-short