この記事は、ほかの記事でグラフ理論を使うときの説明用の記事です。ほかの記事で必要な内容が出るたびに更新する予定です。
記号について
集合や写像についての基礎的な知識は前提とし用語や記号は断りなく使います。
集合に対して、での元からなる部分集合全体を表します。形式的に書けばとなります。
無向グラフ
グラフとは
単純グラフ
グラフとは図1のように頂点と辺からなる図形です。グラフを考える際には、頂点の位置や辺の長さ・形は意味を持たず、頂点と辺の接続関係だけに注目します。身近な例としては、路線図を考えるとわかりやすいでしょう。路線図はどの駅にどの路線が通っているかが重要で、その形が実際の線路の形そっくりになっている必要はありません。駅の位置関係も、実際とは異なっていても構いません。
グラフの例
グラフの形式的な定義は以下のようになります。
図1のグラフは頂点集合、辺集合のグラフです。
ハイパーグラフ
先に路線図の例を挙げました。駅を頂点、路線を辺とすると一つの辺に3つ以上の頂点が接続していることになります。このように、辺の要素数の制限をなくしたものをハイパーグラフといいます。
単純グラフはハイパーグラフの特別な場合と言えます。
多重グラフ
図2のような図形もまたグラフと呼ばれます。のような両端点ともひとつの頂点であるような辺をループといい、とのように両端点ともを共有する辺を多重辺といいます。多重辺やループを持つグラフを多重グラフといいます。逆に単純グラフとは多重辺やループを持たないグラフです。
多重グラフの例
多重グラフの形式定義は以下の通りです。
多重グラフ
頂点集合、辺集合、接続関数の組を多重グラフといいます。
図2では、、であり、接続関数は
となっています。
単純グラフはループや多重辺を持たない多重グラフだと考えることができます。単純グラフで考えるより多重グラフで考えたほうが自然で、証明などもしやすくなるような場合もあります。
(ところでハイパーグラフで多重グラフなグラフって聞かない気がします。定義すること自体は簡単ですが、何かそういうグラフが使われている例とかってあるんでしょうか。ご存じの方がいらっしゃいましたらコメントなどで教えてください。)
基本的な用語
グラフの頂点集合を、辺集合を、接続関数をと書きます。例えばグラフに対して、です。とは書きません。グラフと頂点集合・辺集合を厳密に区別せず、例えば、のように書いたりもします。
グラフの頂点数を位数といい、で表します。辺数はと書きます。位数が有限なグラフを有限グラフ、位数が無限のグラフを無限グラフといいます。
グラフを空グラフと呼びます。
接続・隣接
頂点と辺に対して、(多重グラフなら)となるとき、はに接続するといい、をの接続辺といいます。1つの辺に接続する2つの頂点はぞの辺の端点と呼び、辺はその端点を結ぶといいます。
辺を単純に(または)と書きます。多重グラフのときも、がの端点であることを表すためにと書きますが、もはやを一意に定めることはできません。この書き方はを省略したものとみることもできます。
グラフに辺が在るとき、とは隣接するといい、互いにほかの隣接点であると呼びます。また、2つの辺が共通の端点を持つとき隣接するといいます。
グラフにおいて、頂点のにおける隣接点全体の集合をまたは単にと表します。一般に、頂点からなる集合に対して、に属する頂点のの中にある隣接点全体の集合をの近傍といい、またはと表します。このように、誤解の恐れがないときは添え字のを省略することがあります。
とを頂点からなる集合とします。、となるような辺を-辺と呼びます。-辺全体の集合をと表します。やを単にやと書きます。このように単元集合のとき、波括弧を省略することがあります。頂点に接続する辺全体の集合をと書きます。
次数
頂点の次数とはに接続する辺の本数です。単純グラフなら、の隣接点の個数に等しくなります。次数0に頂点を孤立点といいます。次数の最小値を最小次数、最大値を最大次数と呼びます。
同型なグラフ
2つの単純グラフ、について、一対一対応が存在して、全てのに対してを満たすとき、とは同型であるといい、と書き、この写像を同型写像と呼びます。多重グラフのときは、同型写像がとの組となり、条件が、全ての、に対してが成り立つことになります。
同型なグラフ
部分グラフ
グラフ、について、、であり、頂点と辺の接続関係が保存されるとき、をの部分グラフと呼び、と書きます。
であり、がとなるような辺をすべて含むとき、はの誘導部分グラフであるといいます。このとき、はにおいてを生成するといい、と書きます。
道
頂点と辺を交互に並べた空でない有限列で各に対しとなるものを歩道と呼びます。また、を端点と呼び、特にを始点、を終点と呼びます。
歩道が相異なるに対しであるとき、これを小径と呼びます。さらに相異なるに対しであるとき、これを道と呼びます。
歩道(小径、道)の辺の本数をその長さと言います。始点と終点は本質的には違いがありませんが、これを決めておくことで歩道内の要素に順番が与えられるので便利なことがあります。小径は頂点の重複を許す道、歩道は辺の重複を許す道、というとらえ方もできます。
道の例
道はその頂点の集合と辺の集合からなる単純グラフととらえることもできます。道を表すために、その頂点だけを並べることも多いです。そのようなときはと書きます。
とします。道の一部を切り取ったものを以下のように表します。
が長さ1の道であるとき、は空グラフになります。これはもはや道ではありません。
さらに、いくつかの道をつないで新たな道を作るとき、たとえば三本の道の和が道になるならば、これを単にというように表します。
道と頂点の集合、についてかつとなるとき、を道と言います。-道全体の集合をで表します。以前と同様に波括弧を省略しなどと書いたりします。
連結
グラフについて、任意のに対しとなるとき、は連結であると言います。
直観的に言えばすべてつながっているグラフが連結なグラフです。
極大な連結部分グラフを連結成分と呼びます。
縮約
グラフのある辺を縮めて一つの頂点にすることを考えましょう。
図5のようにグラフの辺を選びます。この辺を新しい頂点に置き換えます。このとき、またはと隣接していた頂点はと隣接するようにし、どちらとも隣接していない頂点はとも隣接しないようにします。
縮約
こうして得られたグラフを、から、その辺を1つの頂点に縮約して得られたグラフといい、で表します。の頂点集合と辺集合は、形式的には以下のように表されます。
この縮約の操作を何度か繰り返し、から新たにグラフを作ることを考えるます。各に対し、に縮約されたの頂点全体の集合をとすると、各は連結であり、任意のに対し、に辺があることと、となることが同値です。集合をの分岐集合と言います。
多重グラフの場合はもう少し単純です。両端点が共通な辺が許されるため、頂点集合、辺集合は以下のようになります。
そして、以外のに対して、を新しい頂点集合に合わせて修正します。
多重グラフの縮約
有向グラフ
定義
有向多重グラフ
頂点集合、辺集合、接続関数の組を有向多重グラフと言います。
辺に向きを考えたものが有向グラフです。組は順序も考えるので、とは異なります。
有向グラフの例
道
頂点と辺を交互に並べた空でない有限列で各に対しとなるものを有向歩道と呼びます。また、を端点と呼び、特にを始点、を終点と呼びます。
歩道が相異なるに対しであるとき、これを有向小径と呼びます。さらに相異なるに対しであるとき、これを有向道と呼びます。
有向グラフの場合、辺の向きも重要になります。