本記事の内容
本記事は強連結成分について解説する記事です。
本記事を読むにあたり、有向グラフと強連結について知っている必要があるため、以下の記事も合わせてご覧ください。
前回、今回、次回で言いたいこと
前回、今回、次回で言いたいことは次の2つです。
定理0-1.
与えられたnn次の正方行列A=(aij)A=(aij)が可約であれば、添字の番号を並べ替えることにより、次の行列に変形することが出来る。 (A1∗∗⋯∗OA2∗⋯∗⋮⋱⋱⋱∗O⋯OAs−1∗OO⋯OAs) ただし、Aiは既約な正方行列である。これは次回証明します。
定理0-2.
有向グラフが強連結であることと、有向グラフの隣接行列が既約であることは同値である。この主張の十分性は前回証明しました。
必要性は次回証明します。
今回は、これらを示すために強連結成分について解説します。
(※ある種、次回の準備です。)
強連結成分を一言で。
強連結成分を一言で述べれば、
です。
実は、強連結成分とは何か?ということも大事ですが、それよりも
という事実が重要です。
ただし、この事実は「強連結でないグラフから強連結なグラフが作れる」と言っているわけではありません。
その前に、部分グラフ
と、説明する前に部分グラフについて解説します。
これは読んで字の如し、グラフの一部分のグラフ、という意味です。
これを数学的に書くと次です。
部分グラフ
グラフX=(V,E)に対して、V1⊂V、E1⊂Eとする。このとき、i(E1)⊂V1×V1かつ¯E1=E1であるとき、X1=(V1,E1)はグラフである。このグラフX1をXの部分グラフといい、X1⊂Xと書く。i(E1)⊂V1×V1のミソはグラフXにおいて存在するiと同じiに対して、E1⊂Eのiによる順像がV1×V1の部分集合であるということです。
つまり、頂点V1繋がり方が、元々のグラフXとの頂点Vと同じ繋がり方をしていることを指しています。
¯E1は無向グラフなので、この条件が必要です。

有向グラフの頂点の集合に「関係」を定めます。
先程「分解できる」という表現をしました。
「分解できる」は少し別の表現をすると「グループ分けすることができる」です。
ここで、「あ!あれだ!あれを使うんだ!」となってくださると嬉しいです。
答えは同値関係です。
同値関係の軽い復習
軽く同値関係を復習します。
同値関係
次の3条件を満たす集合X上の関係∼を同値関係(equivalence relation)という。- x∈Xのとき、x∼x(反射律),
- x,y∈Xのとき、x∼y⇒y∼x(対称律),
- x,y,z∈Xのとき、x∼y, y∼z⇒x∼z(推移律)
詳しくは、【論理と集合シリーズ】その7を御覧ください。
例えば、我々がよく使う=は同値関係です。
しかし、<やら>やら≥やら≤やらは同値関係ではありません。
同値関係の重要な性質の1つとして次があります。
定理1.
x∈Xと同値な要素全体をCxと書き、これをxの同値類(equivalence class)という。すなわち、 Cx={y∈X∣x∼y} である。 このとき、次が成り立つ。- x∈Cx,
- Cx∩Cy≠∅⇒Cx=Cy,
- Cx≠Cy⇒Cx∩Cy=∅,
- ⋃x∈XCx=X,
- x,y∈X, x≠y, ⇒ Cx∩Cy=∅

定理1.の証明は【論理と集合シリーズ】その7を御覧ください。
有向グラフの頂点の集合に同値関係を定めます。
「同値関係を定めます。」というのはあまり良い表現ではないかもしれません。
厳密には「有向グラフの頂点の集合に”うまく”関係を定めると、同値関係になる。」と表現すべきかもしれません。
さて、有向グラフの頂点の集合を{1,…,n}として、頂点の集合に次のような関係∼を定めます。
頂点の集合における関係
与えられた有向グラフの頂点の集合をV={1,…,n}とし、任意の頂点i,j∈Vに対して次の関係を定める。つまり、iから辺をたどってjにたどり着く路と、jから辺をたどってiたどり着く路の双方が存在するときに「頂点iと頂点jには”関係がある”と言い、このときをi∼jで表す。」というわけです。

※注意※ 上記のように書くと、「∼と書いたらばiからjに向かう路と、jからiに向かう路が存在することを表している」と捉えられるかもしれませんがそうではありません。
あくまでここでは∼を上記のように定める、という話です。
さて、先程定めた関係∼は実は同値関係です。
命題2.
与えられた有向グラフの頂点の集合をV={1,…,n}とし、任意の頂点i,j∈Vに対して定めたこれは同値関係の良い復習になると思われますので、是非一度証明してみて下さい。
命題2.の証明
何を示せばよいかというと、以下の3つです。
- 反射律:i∈Vのとき、i∼iである。
- 対称律:i,j∈Vのとき、i∼j⇒j∼iである。
- 推移律:x,y,z∈Xのとき、i∼j, j∼k⇒i∼kである。
①反射律の証明
これは、そもそも関係∼の定め方で∀i∈Vに対してi∼iとしたので、成り立っています。
②対称律の証明
i,j∈Vがi∼jであるとします。
このとき、関係∼の定め方から、頂点iから頂点jに向かう路cと頂点jから頂点iへの路c′が存在するので、j∼iです。
③推移律の証明
任意のi,j,k∈Vに対して、i∼jかつj∼kであるとします。
すなわち、頂点iから頂点jに向かう路c1と頂点jから頂点kに向かう路c2が存在します。
すなわち、i=o(c1)かつj=t(c1)=o(c2)かつk=t(c2)という路c1,c2が存在します。
故に、路c1と路c2をつなげてできる辺の列c1⋅c2は、頂点iから頂点kに向かう路となっています。
より正確には、i=o(c1)かつj=t(c1)=o(c2)かつk=t(c2)という路c1,c2をそれぞれc1=(e1,…,en)、c2=(e′1,…,e′m)と書いたとき、
c1⋅c2=(e1,…,en, e′1,…,e′m)
はo(e1)=iかつt(e′m)=kとなっているため、c1⋅c2は頂点iを始点、頂点kを終点とする路です。
次に、i∼jかつj∼kだから、頂点jから頂点iに向かう路d1と頂点kから頂点jに向かう路d2が存在します。
これも先程と同様にしてd2⋅d1は始点をk、終点をiとする路です。
従って、推移律が成り立ちます。
命題2.の証明終わり
これで晴れて先程定めた頂点の集合V={1,…,n}上の関係∼は同値関係であることが示されました。
先程定めたこの関係∼は同値関係ですので、定理1.からVを分割すること出来ます。
頂点の集合V={1,…,n}の分割と強連結成分
Vの分割
さて、先程定めた関係∼は同値関係ですので、定理1.からVを次のように分割することが出来ます。
V=V1∪V2∪⋯∪Vs
だたし、各Vaは、その中の2頂点i,jに対してi∼jが成り立ち、しかもこの性質を持つ最大のものです。
要するに、各Vaは関係∼による同値類です。
各Vaは同値類ですから、任意の1≤p,q≤sを満たす自然数p,qに対して、Vp∩Vq=∅であることに注意です。
強連結成分
各Vaに対して、Vaの2頂点を結ぶ路上にある辺を全て集めて、Vaを頂点の集まりとする有向グラフを作ります。
このグラフをXoαで表すことにしましょう。
たとえは次のようなグラフです。

このようにして得られる有向グラフたちは強連結であり、元の有向グラフの強連結成分と呼ばれます。
ここで「お?ということは強連結成分は部分グラフなのね。」となってくれると嬉しいです。
つまり、以下です。
強連結成分
有向グラフXoの強連結な部分グラフXo1をXoの強連結成分という。要するに、強連結な部分は、どの頂点からもどの頂点への路が存在するので、強連結な部分は1頂点と捉えてしまおう、というお話です。
これはまさに、最初に述べた
を表しています。
各強連結成分を1つの頂点と考え、更に強連結成分に属さない辺でそれらを結ぶことで、新しい有向グラフが得られます。

これをXonewで表しましょう。
この新しいグラフXonewは「始点と終点が一致する路(閉路)は存在しない」という性質を持っています。
命題3.
Xonewには閉路が存在しない。命題3.の証明
背理法で証明します。
仮にXonewに閉路が存在するとします。
その上にはXonewの2頂点、例えばVa、Vbが存在します。
閉路を使えば、Vaに属する元のグラフXoの頂点からVbの頂点への路が存在します。
逆に、Vbに属する頂点からVbの頂点の路が存在します。
VaとVbが強連結であることを使えば、Vaの頂点iとVbの頂点jについてi∼jが成り立つことになります。
これは矛盾です。
命題3.の証明終わり
V1,…,Vsの順序
次に、V1,…,Vsに次のような関係≤を導入します(ある種の大小関係のようなものです)。
V1,…,Vsの順序
この関係は次の性質を満たしています。
- Va≤Va
関係≤の定め方から、Va=Vaのため、成り立ちます。 - Va≤Vb, Vb≤Va ⇒ Va=Vb
Va≤Vb, Vb≤Vaだとしましょう。
このときVaを始点としてVbを終点とする新しいグラフでの路c1が存在し、かつVbを始点としてVaを終点とする新しいグラフでの路c2が存在します。
つまりVaの任意の頂点からVbの任意の頂点への路が存在し、同時にVbの任意の頂点からVaの任意の頂点への路が存在するため、Va∪Vbを頂点の集合とする元のグラフの一部は強連結です。
すなわち、今、VaとVbの要素を頂点とする元のグラフはそれぞれ強連結なためVa∪Vbは強連結成分の頂点の集合です。
故に、Va⊂VbかつVb⊂VaなのでVa=Vbです。 - Va≤Vb, Vb≤Vc ⇒ Va≤Vc
Va≤Vb, Vb≤Vcとします。
Va=Vbであれば、Va=Vb≤Vcとなるので成り立ちます。
Vb=Vcの場合も同様です。
次に、Va、Vb、Vcのどれもが互いに等しくない場合を考えます。
このとき、Vaを始点としVbを終点とする新しいグラフでの路c1が存在し、かつVbを始点としVcを終点とする新しいグラフでの路c2が存在します。
故に、c1とc2をつなげて出来るc3=c1⋅c2はVaの要素を始点、Vcの要素を終点とする路です。
従って、Va≤Vcです。
性質2.は「始点と終点が一致する路(閉路)は存在しない」ということを表現しています。
Va≤Vbで、かつVa≠Vbであるとき、Va<Vbと書くことにしましょう。
先程定めた関係≤は数の大小関係と似ていますが、数の場合と違って、全てのVa, Vbに大小関係があるとはかぎりません。
余談(順序集合)
一般の集合において、その要素たちの関係≤が次の性質を満たすとき、≤を順序関係といい、順序関係の与えられた集合を順序集合と言います。- x≤x,
- x≤y, y≤x ⇒ x=y,
- x≤y, y≤z ⇒ x≤z.
Vaたちの番号付けとVaの中の頂点の番号付け
頂点に番号を付けます。
Vaたちの番号付け
Vaたちに次の規則で番号を付けます。
- Vb<VaとなるVbが存在しないようなVaを選び(複数あるかもしれません)、これを極小元といい、これに番号1を付ける。
複数ある場合は一方を任意に選び番号1を付ける。 - Vaを取り除いたものの中で、極小元を選び、それに番号2を付ける。
- この操作を繰り返す。

この番号付けと、先程定めた{Va}の順序関係≤は次のように関連しています。
数の大小関係としてi≤jが成り立つ(逆は一般に成り立たない)。
そこで、Vaの番号がiであるときに、改めてVaをViと書くことにしましょう。
先程述べた通り、数としてi<jであるとき、VjからViへの路は存在しません。
実際、もしVjからViへの路が存在したとすると、番号の付け方から、j≤iとなってしまうから矛盾です。
Vaの中の頂点の番号付け
さらに、各Viの頂点の数をniとして表し、Viの頂点にも次の規則で番号付けします。
- V1の頂点には、1,2,…,n1の番号
- V2の頂点には、n1+1,n1+2,…,n1+n2の番号
⋮ - 以下同様にして、Vsの頂点にはn1+⋯+ns−1+1, n1+⋯+ns−1+2,…, n1+⋯+ns−1+ns=nの番号
を付けます。
こうして、元々の有向グラフXoの頂点に新しい番号が付けられました。
そこで、新しい番号kを持つ頂点の要素の番号がikだったとして、置換σを
σ=(12⋯ni1i2⋯in)
で定めます。
ちなみに、置換というのは以下でした。
置換
n∈Nとする。n個の文字1,2,…,nからなる集合を Mn={1,2,…,n} とする。写像σ:Mn→Mnが全単射であるとき、σをMnの置換という。置換σによる対応が 1↦i1, 2↦i2,…,n↦in であるとする、すなわち、 σ(1)=i1, σ(2)=i2,…, σ(n)=in とする。このときσを σ=(12⋯ni1i2⋯in) と書く。
詳しくは、【線型代数学の基礎シリーズ】行列式編 その1を御覧ください。
皆様のコメントを下さい!
今回も数学者ジョークを1つ紹介します。
Aさん「数学者は何故国立公園が好きなの?」
数学者「天然の丸太(natural log=自然対数)があるからだよ。」
logは”丸太”という意味もあるので、こういうジョークが出来たようです。
皆様は他に数学者のジョークをご存知ですか?
是非コメントで教えて下さい!
結
今回は強連結成分について解説しました。
今回の記事は強連結成分について述べたもの、特に目新しいものはなかったと思います。
ある種、次回の準備です。
さて、強連結成分というのは、強連結でないグラフを強連結な部分とそうでない部分にわけ、強連結な部分(部分グラフ)を強連結成分と呼びます。
コメントをする