スポンサーリンク

「行列の既約性、有向グラフの強連結性②〜強連結成分〜」【幾何学の基礎シリーズ】グラフ理論編 その6

グラフ理論

本記事の内容

本記事は強連結成分について解説する記事です。

本記事を読むにあたり、有向グラフと強連結について知っている必要があるため、以下の記事も合わせてご覧ください。

前回、今回、次回で言いたいこと

前回、今回、次回で言いたいことは次の2つです。

定理0-1.

与えられたnn次の正方行列A=(aij)A=(aij)が可約であれば、添字の番号を並べ替えることにより、次の行列に変形することが出来る。 (A1OA2OOAs1OOOAs) ただし、Aiは既約な正方行列である。

これは次回証明します。

定理0-2.

有向グラフが強連結であることと、有向グラフの隣接行列が既約であることは同値である。

この主張の十分性は前回証明しました。
必要性は次回証明します。

今回は、これらを示すために強連結成分について解説します。
(※ある種、次回の準備です。)

強連結成分を一言で。

強連結成分を一言で述べれば、

有向グラフにおいて、強連結な部分(一部の有向グラフ)のこと。

です。
実は、強連結成分とは何か?ということも大事ですが、それよりも

強連結でないグラフは、強連結成分(strongly connected component)に「分解」できる。

という事実が重要です。
ただし、この事実は「強連結でないグラフから強連結なグラフが作れる」と言っているわけではありません

その前に、部分グラフ

と、説明する前に部分グラフについて解説します。
これは読んで字の如し、グラフの一部分のグラフ、という意味です。
これを数学的に書くと次です。

部分グラフ

グラフX=(V,E)に対して、V1VE1Eとする。このとき、i(E1)V1×V1かつ¯E1=E1であるとき、X1=(V1,E1)はグラフである。このグラフX1X部分グラフといい、X1Xと書く。

i(E1)V1×V1のミソはグラフXにおいて存在するi同じiに対して、E1Eiによる順像がV1×V1の部分集合であるということです。
つまり、頂点V1繋がり方が、元々のグラフXとの頂点V同じ繋がり方をしていることを指しています。
¯E1は無向グラフなので、この条件が必要です。

有向グラフの頂点の集合に「関係」を定めます。

先程「分解できる」という表現をしました。
「分解できる」は少し別の表現をすると「グループ分けすることができる」です。

ここで、「あ!あれだ!あれを使うんだ!」となってくださると嬉しいです。

答えは同値関係です。

同値関係の軽い復習

軽く同値関係を復習します。

同値関係

次の3条件を満たす集合X上の関係同値関係(equivalence relation)という。
  • xXのとき、xx(反射律),
  • x,yXのとき、xyyx(対称律),
  • x,y,zXのとき、xy, yzxz(推移律)

詳しくは、【論理と集合シリーズ】その7を御覧ください。

例えば、我々がよく使う=は同値関係です。
しかし、<やら>やらやらやらは同値関係ではありません。

同値関係の重要な性質の1つとして次があります。

定理1.

xXと同値な要素全体をCxと書き、これをx同値類(equivalence class)という。すなわち、 Cx={yXxy} である。 このとき、次が成り立つ。
  • xCx,
  • CxCyCx=Cy,
  • CxCyCxCy=,
  • xXCx=X,
  • x,yX, xy,  CxCy=

定理1.の証明は【論理と集合シリーズ】その7を御覧ください。

有向グラフの頂点の集合に同値関係を定めます。

「同値関係を定めます。」というのはあまり良い表現ではないかもしれません。
厳密には「有向グラフの頂点の集合に”うまく”関係を定めると、同値関係になる。」と表現すべきかもしれません。

さて、有向グラフの頂点の集合を{1,,n}として、頂点の集合に次のような関係を定めます。

頂点の集合における関係

与えられた有向グラフの頂点の集合をV={1,,n}とし、任意の頂点i,jVに対して次の関係を定める。
ij  iからjに向かう路と、jからiに向かう路が存在する。
ただし、全ての頂点iに対して、iiとする。

つまり、iから辺をたどってjにたどり着く路と、jから辺をたどってiたどり着く路の双方が存在するときに「頂点iと頂点jには”関係がある”と言い、このときをijで表す。」というわけです。

※注意※ 上記のように書くと、「と書いたらばiからjに向かう路と、jからiに向かう路が存在することを表している」と捉えられるかもしれませんがそうではありません。
あくまでここではを上記のように定める、という話です。

さて、先程定めた関係は実は同値関係です。

命題2.

与えられた有向グラフの頂点の集合をV={1,,n}とし、任意の頂点i,jVに対して定めた
ij  iからjに向かう路と、jからiに向かう路が存在する。
かつiVに対してiiという関係は同値関係である。

これは同値関係の良い復習になると思われますので、是非一度証明してみて下さい。

命題2.の証明

何を示せばよいかというと、以下の3つです。

  • 反射律:iVのとき、iiである。
  • 対称律:i,jVのとき、ijjiである。
  • 推移律:x,y,zXのとき、ij, jkikである。

①反射律の証明

これは、そもそも関係の定め方でiVに対してiiとしたので、成り立っています。

②対称律の証明

i,jVijであるとします。
このとき、関係の定め方から、頂点iから頂点jに向かう路cと頂点jから頂点iへの路cが存在するので、jiです。

③推移律の証明

任意のi,j,kVに対して、ijかつjkであるとします。
すなわち、頂点iから頂点jに向かう路c1と頂点jから頂点kに向かう路c2が存在します。
すなわち、i=o(c1)かつj=t(c1)=o(c2)かつk=t(c2)という路c1,c2が存在します。
故に、路c1と路c2をつなげてできる辺の列c1c2は、頂点iから頂点kに向かう路となっています。
より正確には、i=o(c1)かつj=t(c1)=o(c2)かつk=t(c2)という路c1,c2をそれぞれc1=(e1,,en)c2=(e1,,em)と書いたとき、
c1c2=(e1,,en, e1,,em)
o(e1)=iかつt(em)=kとなっているため、c1c2は頂点iを始点、頂点kを終点とする路です。

次に、ijかつjkだから、頂点jから頂点iに向かう路d1と頂点kから頂点jに向かう路d2が存在します。
これも先程と同様にしてd2d1は始点をk、終点をiとする路です。
従って、推移律が成り立ちます。

命題2.の証明終わり

これで晴れて先程定めた頂点の集合V={1,,n}上の関係は同値関係であることが示されました。

先程定めたこの関係は同値関係ですので、定理1.からVを分割すること出来ます。

頂点の集合V={1,,n}の分割と強連結成分

Vの分割

さて、先程定めた関係は同値関係ですので、定理1.からVを次のように分割することが出来ます。
V=V1V2Vs
だたし、各Vaは、その中の2頂点i,jに対してijが成り立ち、しかもこの性質を持つ最大のものです。
要するに、各Vaは関係による同値類です。
Vaは同値類ですから、任意の1p,qsを満たす自然数p,qに対して、VpVq=であることに注意です。

強連結成分

Vaに対して、Vaの2頂点を結ぶ路上にある辺を全て集めて、Vaを頂点の集まりとする有向グラフを作ります。
このグラフをXoαで表すことにしましょう。
たとえは次のようなグラフです。

このようにして得られる有向グラフたちは強連結であり、元の有向グラフの強連結成分と呼ばれます。
ここで「お?ということは強連結成分は部分グラフなのね。」となってくれると嬉しいです。

つまり、以下です。

強連結成分

有向グラフXoの強連結な部分グラフXo1Xo強連結成分という。

要するに、強連結な部分は、どの頂点からもどの頂点への路が存在するので、強連結な部分は1頂点と捉えてしまおう、というお話です。
これはまさに、最初に述べた

強連結でないグラフは、強連結成分(strongly connected component)に「分解」できる。

を表しています。

各強連結成分を1つの頂点と考え、更に強連結成分に属さない辺でそれらを結ぶことで、新しい有向グラフが得られます。

これをXonewで表しましょう。
この新しいグラフXonewは「始点と終点が一致する路(閉路)は存在しない」という性質を持っています。

命題3.

Xonewには閉路が存在しない。

命題3.の証明

背理法で証明します。
仮にXonewに閉路が存在するとします。
その上にはXonewの2頂点、例えばVaVbが存在します。
閉路を使えば、Vaに属する元のグラフXoの頂点からVbの頂点への路が存在します。
逆に、Vbに属する頂点からVbの頂点の路が存在します。

VaVbが強連結であることを使えば、Vaの頂点iVbの頂点jについてijが成り立つことになります。
これは矛盾です。

命題3.の証明終わり

V1,,Vsの順序

次に、V1,,Vsに次のような関係を導入します(ある種の大小関係のようなものです)。

V1,,Vsの順序

VaVb  Va=Vbか、またはVaを始点としVbを終点とする新しいグラフでの路が存在する。

この関係は次の性質を満たしています。

  1. VaVa
    関係の定め方から、Va=Vaのため、成り立ちます。
  2. VaVb, VbVa  Va=Vb
    VaVb, VbVaだとしましょう。
    このときVaを始点としてVbを終点とする新しいグラフでの路c1が存在し、かつVbを始点としてVaを終点とする新しいグラフでの路c2が存在します。
    つまりVaの任意の頂点からVbの任意の頂点への路が存在し、同時にVbの任意の頂点からVaの任意の頂点への路が存在するため、VaVbを頂点の集合とする元のグラフの一部は強連結です。
    すなわち、今、VaVbの要素を頂点とする元のグラフはそれぞれ強連結なためVaVbは強連結成分の頂点の集合です。
    故に、VaVbかつVbVaなのでVa=Vbです。
  3. VaVb, VbVc  VaVc
    VaVb, VbVcとします。
    Va=Vbであれば、Va=VbVcとなるので成り立ちます。
    Vb=Vcの場合も同様です。
    次に、VaVbVcのどれもが互いに等しくない場合を考えます。
    このとき、Vaを始点としVbを終点とする新しいグラフでの路c1が存在し、かつVbを始点としVcを終点とする新しいグラフでの路c2が存在します。
    故に、c1c2をつなげて出来るc3=c1c2Vaの要素を始点、Vcの要素を終点とする路です。
    従って、VaVcです。

性質2.は「始点と終点が一致する路(閉路)は存在しない」ということを表現しています。

VaVbで、かつVaVbであるとき、Va<Vbと書くことにしましょう。
先程定めた関係は数の大小関係と似ていますが、数の場合と違って、全てのVa, Vbに大小関係があるとはかぎりません。

余談(順序集合) 一般の集合において、その要素たちの関係が次の性質を満たすとき、順序関係といい、順序関係の与えられた集合を順序集合と言います。
  1. xx,
  2. xy, yx  x=y,
  3. xy, yz  xz.

Vaたちの番号付けとVaの中の頂点の番号付け

頂点に番号を付けます。

Vaたちの番号付け

Vaたちに次の規則で番号を付けます。

  • Vb<VaとなるVbが存在しないようなVaを選び(複数あるかもしれません)、これを極小元といい、これに番号1を付ける。
    複数ある場合は一方を任意に選び番号1を付ける。
  • Vaを取り除いたものの中で、極小元を選び、それに番号2を付ける。
  • この操作を繰り返す。

この番号付けと、先程定めた{Va}の順序関係は次のように関連しています。

Vaの番号がiVbの番号がjであるとき、VaVbならば、
数の大小関係としてijが成り立つ(逆は一般に成り立たない)。

そこで、Vaの番号がiであるときに、改めてVaViと書くことにしましょう。
先程述べた通り、数としてi<jであるとき、VjからViへの路は存在しません。
実際、もしVjからViへの路が存在したとすると、番号の付け方から、jiとなってしまうから矛盾です。

Vaの中の頂点の番号付け

さらに、各Viの頂点の数をniとして表し、Viの頂点にも次の規則で番号付けします。

  • V1の頂点には、1,2,,n1の番号
  • V2の頂点には、n1+1,n1+2,,n1+n2の番号
  • 以下同様にして、Vsの頂点にはn1++ns1+1, n1++ns1+2,, n1++ns1+ns=nの番号

を付けます。

こうして、元々の有向グラフXoの頂点に新しい番号が付けられました。
そこで、新しい番号kを持つ頂点の要素の番号がikだったとして、置換σ
σ=(12ni1i2in)
で定めます。

ちなみに、置換というのは以下でした。

置換

nNとする。n個の文字1,2,,nからなる集合を Mn={1,2,,n} とする。写像σ:MnMnが全単射であるとき、σMn置換という。
 置換σによる対応が 1i1, 2i2,,nin であるとする、すなわち、 σ(1)=i1, σ(2)=i2,, σ(n)=in とする。このときσσ=(12ni1i2in) と書く。

詳しくは、【線型代数学の基礎シリーズ】行列式編 その1を御覧ください。

皆様のコメントを下さい!

今回も数学者ジョークを1つ紹介します。

Aさん「数学者は何故国立公園が好きなの?」
数学者「天然の丸太(natural log=自然対数)があるからだよ。」

logは”丸太”という意味もあるので、こういうジョークが出来たようです。

皆様は他に数学者のジョークをご存知ですか?
是非コメントで教えて下さい!

今回は強連結成分について解説しました。
今回の記事は強連結成分について述べたもの、特に目新しいものはなかったと思います。
ある種、次回の準備です。

さて、強連結成分というのは、強連結でないグラフを強連結な部分とそうでない部分にわけ、強連結な部分(部分グラフ)を強連結成分と呼びます。

コメントをする

タイトルとURLをコピーしました