1
大学数学基礎解説
文献あり

グラフ理論の基本

1122
0

この記事は、ほかの記事でグラフ理論を使うときの説明用の記事です。ほかの記事で必要な内容が出るたびに更新する予定です。

記号について

集合や写像についての基礎的な知識は前提とし用語や記号は断りなく使います。

集合Sに対して、[S]nSn元からなる部分集合全体を表します。形式的に書けば[S]n={XS|X|=n}となります。

無向グラフ

グラフとは

単純グラフ

グラフとは図1のように頂点と辺からなる図形です。グラフを考える際には、頂点の位置や辺の長さ・形は意味を持たず、頂点と辺の接続関係だけに注目します。身近な例としては、路線図を考えるとわかりやすいでしょう。路線図はどの駅にどの路線が通っているかが重要で、その形が実際の線路の形そっくりになっている必要はありません。駅の位置関係も、実際とは異なっていても構いません。

グラフの例 グラフの例

グラフの形式的な定義は以下のようになります。

単純グラフ

頂点集合V、辺集合E[V]2の組G=(V,E)単純グラフといいます。

図1のグラフは頂点集合V={v1,v2,v3,v4,v5,v6,v7,v8}、辺集合E={{v1,v2},{v2,v3},{v3,v1},{v4,v5},{v4,v6},{v4,v7}}のグラフG=(V,E)です。

ハイパーグラフ

先に路線図の例を挙げました。駅を頂点、路線を辺とすると一つの辺に3つ以上の頂点が接続していることになります。このように、辺の要素数の制限をなくしたものをハイパーグラフといいます。

ハイパーグラフ

頂点集合V、辺集合EP(V)の組G=(V,E)ハイパーグラフといいます。

単純グラフはハイパーグラフの特別な場合と言えます。

多重グラフ

図2のような図形もまたグラフと呼ばれます。e2のような両端点ともひとつの頂点であるような辺をループといい、e5e6のように両端点ともを共有する辺を多重辺といいます。多重辺やループを持つグラフを多重グラフといいます。逆に単純グラフとは多重辺やループを持たないグラフです。

多重グラフの例 多重グラフの例

多重グラフの形式定義は以下の通りです。

多重グラフ

頂点集合V、辺集合E、接続関数ψ:E[V]1[V]2の組G=(V,E,ψ)を多重グラフといいます。

図2では、V={v1,v2,v3,v4,v5}E={e1,e2,e3,e4,e5,e6,e7,e8}であり、接続関数ψψ(e1)={v1,v2}ψ(e2)={v2}ψ(e3)={v2,v3}ψ(e4)={v2,v4}ψ(e5)={v3,v4}ψ(e6)={v3,v4}ψ(e7)={v3,v5}ψ(e8)={v4,v5}
となっています。

単純グラフはループや多重辺を持たない多重グラフだと考えることができます。単純グラフで考えるより多重グラフで考えたほうが自然で、証明などもしやすくなるような場合もあります。

(ところでハイパーグラフで多重グラフなグラフって聞かない気がします。定義すること自体は簡単ですが、何かそういうグラフが使われている例とかってあるんでしょうか。ご存じの方がいらっしゃいましたらコメントなどで教えてください。)

基本的な用語

グラフGの頂点集合をV(G)、辺集合をE(G)、接続関数をψ(G)と書きます。例えばグラフH=(W,F)に対してV(H)=WE(H)=Fです。W(H)とは書きません。グラフと頂点集合・辺集合を厳密に区別せず、例えばv1G{v2,v4}Gのように書いたりもします。

グラフGの頂点数を位数といい、|G|で表します。辺数は||G||と書きます。位数が有限なグラフを有限グラフ、位数が無限のグラフを無限グラフといいます。

グラフ{,}空グラフと呼びます。

接続・隣接

頂点vと辺eに対して、ve(多重グラフならvψ(e))となるとき、ve接続するといい、ev接続辺といいます。1つの辺に接続する2つの頂点はぞの辺の端点と呼び、辺はその端点を結ぶといいます。

{x,y}を単純にxy(またはyx)と書きます。多重グラフのときもxyeの端点であることを表すためにe=xyと書きますが、もはやeを一意に定めることはできません。この書き方はψ(e)={x,y}を省略したものとみることもできます。

グラフGに辺xyが在るとき、xy隣接するといい、互いにほかの隣接点であると呼びます。また、2つの辺efが共通の端点を持つとき隣接するといいます。

グラフG=(V,E)において、頂点vGにおける隣接点全体の集合をNG(v)または単にN(v)と表します。一般に、頂点からなる集合UVに対して、Uに属する頂点のVUの中にある隣接点全体の集合をUの近傍といい、NG(U)またはN(U)と表します。このように、誤解の恐れがないときは添え字のGを省略することがあります。

XYを頂点からなる集合とします。xXyYとなるような辺e=xyX-Y辺と呼びます。X-Y辺全体の集合をE(X,Y)と表します。E({x},Y)E(X,{y})を単にE(x,Y)E(X,y)と書きます。このように単元集合のとき、波括弧{}を省略することがあります。頂点vに接続する辺全体の集合をE(v)と書きます。

次数

頂点vの次数dG(v)とはvに接続する辺の本数|E(v)|です。単純グラフなら、vの隣接点の個数に等しくなります。次数0に頂点を孤立点といいます。次数の最小値δ(G):=min{d(v)vV}最小次数、最大値Δ(G):=max{d(v)vV}最大次数と呼びます。

同型なグラフ

2つの単純グラフG=(V,E)G=(V,E)について、一対一対応f:VVが存在して、全てのx,yVに対してxyEf(x)f(y)inEを満たすとき、GG同型であるといい、GGと書き、この写像f同型写像と呼びます。多重グラフのときは、同型写像がf:VVg:EEの組(f,g)となり、条件が、全てのx,yVeEに対してψ(e)={x,y}ψ(g(e))={f(x),f(y)}が成り立つことになります。

同型なグラフ 同型なグラフ

部分グラフ

グラフG=(V,E)G=(V,E)について、VVEEであり、頂点と辺の接続関係が保存されるとき、GG部分グラフと呼び、GGと書きます。

GGであり、Gx,yVとなるような辺xyEをすべて含むとき、GG誘導部分グラフであるといいます。このとき、VGにおいてGを生成するといい、G=G[V]と書きます。

頂点と辺を交互に並べた空でない有限列W=v0e1v1e2ekvkで各ikに対しei=vi1viとなるものを歩道と呼びます。またv0vkを端点と呼び、特にv0を始点、vkを終点と呼びます。

歩道W=v0e1v1e2ekvkが相異なるi,ikに対しeieiであるとき、これを小径と呼びます。さらに相異なるj,jkに対しvjvjであるとき、これをと呼びます。

歩道(小径、道)の辺の本数をその長さと言います。始点と終点は本質的には違いがありませんが、これを決めておくことで歩道内の要素に順番が与えられるので便利なことがあります。小径は頂点の重複を許す道、歩道は辺の重複を許す道、というとらえ方もできます。

道の例 道の例

道はその頂点の集合V(P)と辺の集合E(P)からなる単純グラフP=(V(P),E(P))ととらえることもできます。道を表すために、その頂点だけを並べることも多いです。そのようなときはP=v0vkと書きます。

0ijkとします。道P=v0vkの一部を切り取ったものを以下のように表します。

viP=vivkPvj=v0vjviPvj=vivjP˚=v1vk1vi˚P=vi+1vkPvj˚=v0vj1

Pが長さ1の道であるとき、P˚は空グラフになります。これはもはや道ではありません。

さらに、いくつかの道をつないで新たな道を作るとき、たとえば三本の道の和PxxQyyRが道になるならば、これを単にPxQyRというように表します。

P=v0vkと頂点の集合ABについてV(P)A={v0}かつV(P)B={vk}となるとき、PAB道と言います。A-B道全体の集合をP(A,B)で表します。以前と同様に波括弧を省略しP(v0,B)などと書いたりします。

連結

グラフG=(V,E,ψ)について、任意のu,vVに対しP(u,v)となるとき、Gは連結であると言います。

直観的に言えばすべてつながっているグラフが連結なグラフです。

極大な連結部分グラフを連結成分と呼びます。

縮約

グラフのある辺を縮めて一つの頂点にすることを考えましょう。

図5のようにグラフG=(V,E)の辺e=xyEを選びます。この辺を新しい頂点veに置き換えます。このとき、xまたはyと隣接していた頂点はveと隣接するようにし、どちらとも隣接していない頂点はveとも隣接しないようにします。

縮約 縮約

こうして得られたグラフを、Gから、その辺e=xyを1つの頂点ve縮約して得られたグラフといい、G/eで表します。G/eの頂点集合と辺集合は、形式的には以下のように表されます。
V(G/e)=(V{x,y}){ve}E(G/e)={vwE{v,w}{x,y}=}{vewxwE{e}またはywE{e}}

この縮約の操作を何度か繰り返し、Gから新たにグラフXを作ることを考えるます。各xV(X)に対し、xに縮約されたGの頂点全体の集合をVxとすると、各Vxは連結であり、任意のx,yV(X)に対し、GVxVy辺があることと、xyE(X)となることが同値です。集合VxG分岐集合と言います。

多重グラフの場合はもう少し単純です。両端点が共通な辺が許されるため、頂点集合、辺集合は以下のようになります。
V(G/e)=(V{x,y}){ve}E(G/e)=E(G){e}
そして、e以外のeE{e}に対して、ψG/e(e)を新しい頂点集合に合わせて修正します。

多重グラフの縮約 多重グラフの縮約

有向グラフ

定義

有向単純グラフ

頂点集合V、辺集合EV2{(v,v)vV}の組G=(V,E)を有向単純グラフと言います。

有向多重グラフ

頂点集合V、辺集合E、接続関数ψ:EV2の組G=(V,E,ψ)を有向多重グラフと言います。

辺に向きを考えたものが有向グラフです。組は順序も考えるので、(u,v)(v,u)は異なります。

有向グラフの例 有向グラフの例

頂点と辺を交互に並べた空でない有限列W=v0e1v1e2ekvkで各ikに対しei=(vi1,vi)となるものを有向歩道と呼びます。またv0vkを端点と呼び、特にv0を始点、vkを終点と呼びます。

歩道W=v0e1v1e2ekvkが相異なるi,ikに対しeieiであるとき、これを有向小径と呼びます。さらに相異なるj,jkに対しvjvjであるとき、これを有向道と呼びます。

有向グラフの場合、辺の向きも重要になります。

参考文献

[1]
R.ディースティル, グラフ理論
投稿日:202347
更新日:202431
OptHub AI Competition

この記事を高評価した人

高評価したユーザはいません

この記事に送られたバッジ

バッジはありません。
バッチを贈って投稿者を応援しよう

バッチを贈ると投稿者に現金やAmazonのギフトカードが還元されます。

投稿者

三星聯
三星聯
37
7796
主にフィボナッチ数列とパスカルの三角形の関係について書いていくと思います。

コメント

他の人のコメント

コメントはありません。
読み込み中...
読み込み中
  1. 記号について
  2. 無向グラフ
  3. グラフとは
  4. 基本的な用語
  5. 縮約
  6. 有向グラフ
  7. 定義
  8. 参考文献