本記事の内容
本記事は有限グラフ、正則グラフ、路について解説する記事です。
本記事を読むにあたり、「グラフとは何か?」について知っている必要があるため、以下の記事も合わせてご覧ください。
グラフの軽い復習
「グラフって何?」ということを軽く復習します。
直感的には、グラフとは
でした。
これを集合と写像の言葉を使って数学的に表すと
グラフ
集合V,Eに対して、VとEの対X=(V,E)が以下を満たすときXはグラフであるという。- V∩E=∅
- 次の性質を満たす写像i:E→V×V、ι:E→Eが存在する。
- ι2(=ι∘ι)=idE(ただし、idEはEの恒等写像)
- 任意のe∈Eに対して以下が成り立つ。 ι(e)≠e,i(ι(e))=τ(i(e)) ただし、τ:V×V→V×Vはτ(x,y)=(y,x)により定まる写像である。
でした。
そしてグラフ理論というのは
ということが出来る、という話でした。
詳しくは【幾何学の基礎シリーズ】グラフ理論編 その1を御覧ください。
有限グラフ
この章では有限グラフというものを解説します。
前回の復習
まずは、前回の復習から始めます。
X=(V,E)をグラフとします。
このとき、Exにより、点x∈Vを始点とする有向辺eの全体の集合を表すことにしました。
つまり、
Ex={e∈E|o(e)=x}
でした。
このとき、以下が成り立つのでした。
命題1.
X=(V,E)をグラフとする。このときx≠yならば、Ex∩Ey=∅である。すなわち、頂点が異なれば、その頂点を始点とする有向辺も異なる。命題1.の証明は【幾何学の基礎シリーズ】グラフ理論編 その1を御覧ください。
命題1.により、グラフX=(V,E)に対して
E=∐x∈VEx
(ただし、∐は交わらない和集合)が成り立ったのでした。
有限グラフって何ですか?
シンプルです。
有限グラフを一言で述べると
です。
これを数学的に表現すると以下です。
有限グラフ
グラフX=(V,E)に対して、V、Eが共に有限集合のとき、X=(V,E)を有限グラフという。有限グラフでないようなグラフを無限グラフということもあります。

有限グラフの辺の数のちょっとした性質
一般に、有限集合Aに対して、|A|により、Aの要素の個数を表すことにします。
このとき、命題1.により、
|E|=∑x∈V|Ex|⋯①
が成り立ちます。
さらに、①は
∑e∈E1=∑x∈V∑e∈Ex1⋯②
と書き換えることが出来ます。
というのも、
- ②の左辺
e∈Eであるようなeに対して、1を足し合わせるということなので、②の左辺はe∈Eというeの個数を表しています。
故に
|E|=∑e∈E1
となるわけです。 - ②の右辺
左辺と同様にして、e∈Exであるようなeに対して、1を足し合わせるということなので、∑e∈Ex1はe∈Exというeの個数を表しています。
故に
∑x∈V|Ex|=∑x∈V∑e∈Ex1
となるわけです。
要するに、何が言いたいかと言うと、
ということです。
!注意!
ただし、ここで注意があります。
前回、「各辺はちょうど2つの向きを持つ」ということを述べました。
この意味について言及します。
これはどういうことかというと、有向グラフは、各辺の2つの向きのうち、どちらか一方のみを選んでいるということで、無向グラフはどちらか一方を選ぶということはせず、各辺に2つの向きがあるということです。
つまり、
- 有向グラフ:各辺の向きが1つ。
- 無向グラフ:各辺の向きが2つ。
ということです。
故に、平たく言うと、無向グラフX=(V,E)において、E′⊂EというE′をとることで有向グラフX′=(V,E′)が得られるということになります。
従って、この場合|E|=2|E′|が成り立ちます。
正則グラフ
この章では次数と正則グラフについて解説します。
次数
次数については、前回の記事でサラッと解説しましたが、ここで厳密に数学的は話をしようと思います。
とはいえ、なんてことありません。
次数というのは前回述べたとおりで、
です。
これを数学的に述べると以下です。
次数
X=(V,E)をグラフとする。頂点x∈Vに対して、|Ex|を頂点xの次数(degree)といい、degxで表す。
ちなみに、JR東京駅は
- 東北新幹線(分岐する山形新幹線、秋田新幹線、直通する北海道新幹線、上越新幹線、北陸新幹線を含む)
- 東海道新幹線(直通する山陽新幹線を含む)
- 東海道線/宇都宮線(+上野東京ライン)・高崎線/常磐線
- 京浜東北線
- 山手線
- 中央線(快速)
- 横須賀線・総武線(快速)
の6種類の線路があるようです。
京葉線は常磐線と武蔵野線と線路を共有しているそうです。
(そもそも京葉線のホームがめちゃくちゃ遠いので省いても良いんじゃないかと勝手に思っています。)
故に、JR東京駅の次数は6と言えるでしょう。
k-正則グラフ
任意のx∈Vに対してdegx≤kであるとき、すなわち全ての頂点につながる辺の個数がk個以下であるとき、|Ex|≤kが成り立つので、①により、
|E|=∑x∈V|Ex|≤∑x∈Vk=k⋅|V|
すなわち、
|E|≤k⋅|V|
が成り立ちます。
また、全ての頂点の次数がk′以上であるとき、同様にして
|E|≥k′⋅|V|
が成り立ちます。
特に、|Ex|がxに依存しない定数kであるとき、すなわち、どの頂点の次数も定数kである場合(どの頂点からも同じ数の辺が繋がっている場合)は、|E|=k⋅|V|が成り立ちます。
このようなグラフをk-正則グラフといいます。
これをまとめると、以下です。
k-正則グラフ
X=(V,E)をグラフとする。任意のx∈Vに対して|Ex|=k (ただしkはxに依存しない定数)であるとき、Xをk-正則グラフ(k-regular graph)という。
路(path)
本記事の最後に路(path)について解説します。
まずは路のイメージから
次のような状況を考えてみましょう。
丸の内のオフィスに勤務しているオノ君は、午後半休を取り、高尾山に登る予定を立てました。
午後になり、勤務しているオフィスの最寄り駅であるJR東京駅から京王高尾山口駅に電車で向かいます。
このとき、駅から出ることなく東京駅から高尾山口駅まで行くことが出来ます。
(※もしかしたらJRから京王に乗り換えるときに一度改札を出る必要があるかもしれませんが、それには目をつぶって下さい。)

このように、出発点と目的地の間の全てに辺が存在するとき、そのすべての辺の列を路と言います。
数学的な路の説明
以上のことを数学手に表現すると、以下です。
路(path)
グラフX=(V,E)において、有向辺の列c=(e1,…,en)が o(ei+1)=t(ei)(i=1,…,n−1) を満たすとき、cを長さ(length)がnの路(path)という。cの長さを、|c|により表し、o(e1)をcの始点、t(en)を終点といい、それぞれo(c)、t(c)で表す。
路は1つではありません。
「路は1つではありません。」というとえらく前向きでカッコいいセリフになりますね。
でも、グラフ理論的には事実です。
厳密に言うと、「路は1つとは限らない。」ですが。
どういうことかを説明します。
先の例を思い出してみましょう。
先の例は要するに、電車で東京駅から高尾山口駅まで行く、ということです。
先に列挙した例は中央線で高尾まで行き、その後高尾で京王高尾線特急・高尾山口行に乗り換える、という路です。
この路の他に、東京駅からJR特急おうめ3号で立川まで行き、立川でJR中央線・高尾行に乗り換え、高尾駅で京王高尾線・高尾山口行に乗り換えて高尾山口駅に行くという路もあります。


このように、必ずしも路は1つではありません。
勿論、路が1つしか無い場合もあります。

つないだ路
グラフX=(V,E)に対して、2つの路c1=(e1,…,em)、c2=(e′1,…,e′n)に対して、t(c1)=o(c2)のとき、すなわち、1つ目の路の終点が2つ目の路の始点と一致していれば、路c1と路c2をつないで得られる路(e1,…,em, e′1,…,e′n)が得られます。
これをc1⋅c2で表します。
逆路
路c=(e1,…,en)に対して、すべての辺の向きを逆向きにしたˉc=(ˉen,…,ˉe1)もまた路です。
要するに復路ということで、帰り道のことです。
逆路
グラフX=(V,E)の頂点x,y∈Vにo(c)=x、t(c)=yとなる路c=(e1,…,en)が存在したとする。このとき、ˉc=(ˉen,…,ˉe1)を路cの逆路という。
皆様のコメントを下さい!
皆様も一度は”徹夜せざるを得ない”という状況になったことがあるのではないでしょうか。
勿論、「”徹夜せざるを得ない状況”はつくらない」ということが最も良いのですが、一度は徹夜の経験があるのではないでしょうか。
皆様はどうやって眠気を覚ましていますか?是非コメントで教えて下さい!
(こんなこと聞いて良いんだろうか…)
結
今回は、有限グラフ、正則グラフ、路について解説しました。
それぞれ
- 有限グラフ:頂点と辺の数が有限なグラフ。
- 正則グラフ:全ての頂点につながる辺の個数が一定なグラフ。
- 路:出発点から目的地までつないだ辺の列。
です。
次回は連結、グラフ距離、ループ辺、多重辺、組み合わせグラフについて解説します。
乞うご期待!
質問、コメントなどお待ちしております!
どんな些細なことでも構いませんし、「定理〇〇の△△が分からない!」などいただければ全てお答えします!
お問い合わせの内容にもよりますが、ご質問はおおよそ3日以内にお答えします。
もし直ちに回答が欲しければその旨もコメントでお知らせください。直ちに対応いたします。
この記事の内容をより詳しく知りたい方は以下のリンクの本を参照してください!
コメントをする
路の数学的表現に疑問があります。
o(e_i)=t(e_i+1) (i=1,…,n)
とありますが、e_1の始点とe_2の終点は一致しないかと思います。逆ではないでしょうか?さらに、e_n+1が未定義なのでi=nまでと注釈なく表記するには問題があるかと思います。
加えて、逆路の表現においてc=(e_1,…,e_n),c*=(e_1*,…,e_n*)とありますが、括弧内の要素の順序は関係ないのでしょうか?c*=(e_n*,…,e_1*)とするのが自然なように感じました。( ̄の代わりに*をつけることで逆路,逆向き有向辺を表しました)
名無し様
コメントありがとうごさいます!
また、ご指摘ありがとうごさいます。
名無し様のご指摘の通り、
o(e_i)=t(e_i+1) (i=1,…,n-1)
ではなく、
o(e_{i+1})=t(e_i) (i=1,…,n-1)
でした。訂正いたしました。
また、逆路の表現についても、ご指摘の通り
c=(e_1,…,e_n),c*=(e_1*,…,e_n*)
ではなく、
c=(e_1,…,e_n),c*=(e_n*,…,e_1*)
(逆向きの有効辺の記号は名無し様の記号に準じています)でした。
訂正いたしました。
ご指摘ありがとうございました。