1 グラフとラプラシアン行列
はじめに、扱う対象を定めます。辺が同じ2頂点を何本も結ぶ場合と、辺が1つの頂点から出て同じ頂点へ戻る場合を許します。
定義 1.1 (多重グラフ). 有限集合V={1,2,…,n}と有限集合E、およびEの各要素eに対してVの
1個または2個の要素からなる集合を対応させる規則の組G=(V,E)を多重グラフという。eに2個の頂点{i,j}が対応するとき、eはiとjを結ぶといい、1個の頂点{i}が対応するとき、eを頂点iのループという。同じ2頂点を結ぶ辺が2本以上あることを許し、それらを互いに異なる辺として区別する。
辺の集合を数えるので、平行な2本の辺は互いに異なる対象として扱います。この約束が、あとで全域木の個数に効きます。
定義 1.2 (ラプラシアン行列). 多重グラフG=(V,E)について、相異なるi,j∈Vに対しaijをiとjを結ぶ辺の本数とし、aii=0と定める。n次正方行列A=(aij)をGの隣接行列という。またdi=∑j=iaijとおき、D=diag(d1,…,dn)とする。
L(G)=D−AをGのラプラシアン行列という。
aii=0と定め、diをループを数えずに定めましたので、ループはL(G)にまったく寄与しません。L(G)は対称行列であり、各行の成分の和はdi−∑j=iaij=0です。この2つの性質だけを、以下の議論で使います。
定義 1.3 (全域木). 多重グラフG=(V,E)において、相異なる頂点v1,…,vk(k≥1)と相異なる辺e1,…,ekで、各iについてeiがviとvi+1を結ぶもの(ただしvk+1=v1と読む)を閉路という。k=1の場合はループ1本、k=2の場合は同じ2頂点を結ぶ相異なる2本の辺が閉路である。
Gの全域木とは、辺の部分集合F⊆Eであって、(V,F)が連結であり、かつ(V,F)が閉路をもたないものをいう。全域木の個数をτ(G)と書く。
全域木を辺の集合として数えますので、平行な辺は互いに異なる全域木を与えます。またループはそれ自体が閉路ですので、どの全域木にも属しません。次の例で、この2点を確かめます。
例 1.4 (多重辺とループ).V={1,2}とし、1と2を結ぶ辺をk本(k≥1)、頂点1のループを1本もつ多重グラフをGとします。ループはL(G)に寄与しませんので
L(G)=(k−k−kk)であり、4つの余因子はいずれもkです。一方、Gの全域木はk本の辺から1本を選んだものに限られ、τ(G)=kです。ループを加える前と後で、L(G)もτ(G)も変わりません。
2 余因子がどれも等しいこと
行列木定理は「どの余因子も」全域木の個数に等しいと述べます。まず、余因子がどれも等しいことを、L(G)の各行の成分の和が0であることだけから導きます。そのために、余因子を並べた行列ともとの行列の積を計算します。
補題 2.1 (余因子行列との積).n≥2とし、A=(aij)をn次正方行列とする。MijをAから第i行と第j列を除いて得られるn−1次行列の行列式とし、Cij=(−1)i+jMijを(i,j)余因子という。(i,j)成分がCjiであるn次正方行列をadjAと書くと
A⋅adjA=adjA⋅A=(detA)Iが成り立つ。
証明.A⋅adjAの(i,k)成分は∑jaijCkjである。
i=kのとき、これは第i行に沿った余因子展開そのものであり、値はdetAである。
i=kのとき、Aの第k行を第i行で置き換えて得られる行列をBとする。Bから第k行を除いた部分はAから第k行を除いた部分と一致するので、Bの(k,j)余因子はCkjに等しい。したがってBの第k行に沿った余因子展開は∑jaijCkjである。ところがBは第i行と第k行が等しいので、行列式の交代性よりdetB=0である。よって∑jaijCkj=0となる。
以上よりA⋅adjA=(detA)Iが成り立つ。列に沿った余因子展開について同じ議論を行えばadjA⋅A=(detA)Iを得る。▨
この補題をL(G)へ適用します。使うのは、各行の成分の和が0であることだけです。
命題 2.2 (ラプラシアン行列の余因子).n≥2とし、Gを頂点がn個の多重グラフ、L=L(G)とする。このとき、ある実数cが存在して、Lのすべての余因子Cijがcに等しい。
証明. 成分がすべて1である列ベクトルを1と書く。Lの各行の成分の和は0であるからL1=0である。1=0なのでLは正則でなく、したがってdetL=0である。補題 2.1より
L⋅adjL=adjL⋅L=Oが成り立つ。Lの階数によって場合を分ける。
rankL=n−1の場合。§D3.10 系 4.1よりKerLの次元は1であり、1∈KerLかつ1=0であるからKerL={t1:t∈R}である。等式L⋅adjL=OはadjLの各列がKerLに属することを述べているので、adjLの各列は1のスカラー倍であり、各列の成分はその列の中ですべて等しい。またadjL⋅L=Oより、adjLの各行ベクトルr⊤はr⊤L=0⊤を満たす。L⊤=LなのでLr=0、すなわちr∈KerL=span{1}であり、各行の成分もその行の中ですべて等しい。列の中で等しく、かつ行の中で等しいので、adjLの成分はすべて等しい。
rankL≤n−2の場合。Lから1行と1列を除いて得られるn−1次行列をL′とする。行を1本除いても列ベクトルの間に成り立つ一次関係は保たれるので列階数は増えず、列を1本除いても列の部分集合を取るだけなので列階数は増えない。よってrankL′≤rankL≤n−2<n−1であり、L′は正則でないからdetL′=0である。したがってすべての余因子が0であり、adjL=Oとなる。
いずれの場合もadjLの成分はすべて等しい。adjLの(i,j)成分はCjiであったから、Lのすべての余因子が等しい。▨
3 辺の削除と縮約
全域木の個数の側にも、余因子の側にも、同じ形の分解があります。「その辺を使うか使わないか」で場合を分けるという分解です。まず全域木の側で確かめます。
定義 3.1 (辺の削除と縮約).G=(V,E)を多重グラフ、e∈Eをループでない辺とし、eの端点をuとvとする。
G−eは、Eからeだけを取り除いて得られる多重グラフとする。
G/eは、uとvを1つの新しい頂点wに同一視し、Eからeを取り除いて得られる多重グラフとする。e以外の辺は、端点がuまたはvであったものをwを端点とする辺へ読み替える。とくに、e以外にuとvを結ぶ辺があれば、それはwのループになる。
補題 3.2 (削除と縮約による分解).Gを多重グラフ、eをループでない辺とすると
τ(G)=τ(G−e)+τ(G/e)が成り立つ。
証明.Gの全域木を、eを含まないものと含むものに分ける。
eを含まない全域木の全体は、G−eの全域木の全体と一致する。実際、eを含まない辺の部分集合Fについて、(V,F)が連結であるという条件も、閉路をもたないという条件も、Gで考えてもG−eで考えても同じ条件である。よって、この部分の個数はτ(G−e)である。
eを含む全域木Fに対し、φ(F)=F∖{e}をG/eの辺の集合とみなす。
φ(F)がG/eの全域木であることを示す。連結性については、G/eの2頂点を取り、それらのもとになるGの頂点を(V,F)の道で結び、その道をG/eへ読み替えればよい。道がeを通る場合、その部分は頂点wに潰れる。次にφ(F)が閉路Cをもったとして矛盾を導く。Cの辺はF∖{e}の辺である。Cがwを通らなければ、Cはそのまま(V,F)の閉路であり、Fが全域木であることに反する。Cがwを通る場合、Cの辺をGへ戻すと、uまたはvから出てuまたはvへ戻る道が得られる。両端が同じ頂点であれば(V,F)の閉路になり矛盾する。両端がuとvであれば、その道にeを加えたものが(V,F)の閉路になり、やはり矛盾する。
逆にG/eの全域木F′に対し、ψ(F′)=F′∪{e}をGの辺の集合とみなす。wを端点としていた辺は、Gにおける端点uまたはvへ戻す。(V,ψ(F′))は連結である。実際、F′がG/eを連結にしており、eがuとvを結ぶからである。閉路をもたないことを示す。閉路Cがあったとする。Cがeを含まない場合を2つに分ける。Cがuとvの一方しか通らないかどちらも通らなければ、CをG/eへ読み替えたものは頂点も辺も相異なるままであり、F′の閉路になって矛盾する。Cがuとvの両方を通れば、Cはuとvによって2本の道に分かれ、e∈/Cよりどちらの道も辺を1本以上もつ。一方の道をG/eへ読み替えると、wを出てwへ戻り、途中の頂点と辺がすべて相異なる閉路になるので、やはり矛盾する。Cがeを含む場合、eはループでないのでCは2本以上の辺をもち、Cからeを除くとuとvを結ぶ長さ1以上の道が残る。この道をG/eへ読み替えるとwを出てwへ戻る閉路になり、矛盾する。
φとψは互いに逆であるから、eを含む全域木の個数はτ(G/e)である。
2つの場合を合わせてτ(G)=τ(G−e)+τ(G/e)を得る。▨
4 行列木定理
定理 4.1 (行列木定理).0次の正方行列(行も列もない行列)の行列式は1と約束します。
Gを頂点がn≥1個の多重グラフとする。頂点rを1つ選び、L(G)から第r行と第r列を除いて得られるn−1次行列をLr(G)と書くと
detLr(G)=τ(G)が成り立つ。n≥2のとき、命題 2.2と合わせて、L(G)のどの余因子もτ(G)に等しい。
証明. ループでない辺の本数についての帰納法で示す。主張は、頂点の個数n≥1と根rの取り方を問わずに証明する。
ループでない辺が0本の場合。n=1ならばLr(G)は0次行列でありdetLr(G)=1である。一方、辺の集合として空集合が唯一の全域木であるからτ(G)=1となり、一致する。n≥2ならばL(G)=OなのでLr(G)は1次以上の零行列でありdetLr(G)=0である。また相異なる2頂点を結ぶ道が存在しないので連結な全域部分グラフは存在せず、τ(G)=0となり、一致する。
ループでない辺が1本以上ある場合。そのような辺eを1本取り、端点をuとvとする。このときn≥2である。命題 2.2よりdetLr(G)はrの取り方によらないので、r=vの場合を示せばよい。
L(G)とL(G−e)を比べると、eは(u,u)成分と(v,v)成分に+1を、(u,v)成分と(v,u)成分に−1を寄与する。第v行と第v列を除いたLvにおいては、eの寄与は(u,u)成分の+1だけである。すなわち、Lv(G)の第u列はLv(G−e)の第u列に、第u成分が1で他が0であるベクトルεを加えたものであり、他の列は両者で一致する。行列式の第u列についての線形性より
detLv(G)=detLv(G−e)+detNとなる。ここでNは、Lv(G)の第u列をεで置き換えた行列である。
detNを第u列に沿って余因子展開すると、εの0でない成分は第u成分だけであるから、detNはNから第u行と第u列を除いた行列の行列式に等しい。これはL(G)から第u行と第u列、第v行と第v列を除いた行列にほかならない。
この行列がLw(G/e)に等しいことを確かめる。i,j∈/{u,v}に対し、G/eにおいてiとjを結ぶ辺の本数はGにおけるそれと等しい。またi∈/{u,v}に対し、G/eにおけるiの次数も、Gにおけるそれと等しい。iに接続する辺は、他方の端点がwへ読み替えられるだけで本数が変わらず、iのループの本数も変わらないからである。よって両者の成分は一致する。
G−eはループでない辺がGより1本少なく、G/eではループでない辺のうちeが消え、eに平行であった辺がループへ変わるので、いずれも帰納法の仮定を適用することができる。したがって
detLv(G)=τ(G−e)+τ(G/e)となり、補題 3.2より右辺はτ(G)に等しい。▨
主張が「どの余因子も」と述べていることは、計算の自由度として使うことができます。次数の大きい頂点を根に選べば、残る行列の非零成分が減ります。
5 連結でないグラフでは 0 になる
全域木は連結であることを条件に含むので、もとのグラフが連結でなければ全域木は存在しません。このことは、余因子の値としてそのまま現れます。
系 5.1 (連結性との対応). 頂点がn≥1個の多重グラフGについて、τ(G)=0であることと、Gが連結でないことは同値である。したがってn≥2のとき、L(G)の余因子がすべて0であることと、Gが連結でないことは同値である。
証明.Gが連結でないとする。全域木Fが存在すれば(V,F)は連結であり、F⊆EよりG自身も連結になる。これは仮定に反するのでτ(G)=0である。
Gが連結であるとする。辺の本数についての帰納法でτ(G)≥1を示す。Gが閉路をもたなければ、E自身が全域木でありτ(G)≥1である。Gが閉路Cをもつならば、Cの辺eを1本取る。G−eは連結である。実際、eを通る道があれば、そのeの部分をCの残りの辺がなす道で置き換えることができるからである。辺の本数が減ったので帰納法の仮定よりτ(G−e)≥1であり、G−eの全域木はGの全域木でもあるからτ(G)≥1である。▨
6 完全グラフの全域木の個数
行列木定理の使い方を、頂点がn個で相異なる2頂点がすべて1本の辺で結ばれたグラフ、すなわち完全グラフKnで確かめます。
小さいグラフで、定理の主張を成分の計算として確かめておきます。
例 6.2 (余因子を2通りに取る).V={1,2,3,4}とし、辺が{1,2}、{1,3}、{2,3}、{3,4}の4本であるグラフGを考えます。次数はd1=2、d2=2、d3=3、d4=1ですので
L(G)=2−1−10−12−10−1−13−100−11です。r=4として第4行と第4列を除くと
det2−1−1−12−1−1−13=2(6−1)+1(−3−1)−1(1+2)=10−4−3=3です。r=1として第1行と第1列を除くと
det2−10−13−10−11=2(3−1)+1(−1−0)+0=4−1=3となり、同じ値です。数え上げでも確かめます。辺{3,4}は、これを除くと頂点4が孤立しますので、どの全域木にも属します。残りは三角形1,2,3から1本の辺を除いた3通りですのでτ(G)=3です。
8 自分で確かめる
次の三つを、資料を見ずに行ってください。
- 例 6.2のグラフから辺{3,4}を取り除いたグラフについて、ラプラシアン行列の余因子を1つ計算し、値が0になることを確かめてください。あわせて、その値になる理由を系 5.1の言葉で述べてください。
- 頂点が2個で、それらを結ぶ辺がk本であるグラフについて、補題 3.2の両辺を直接計算し、等式が成り立つことを確かめてください。縮約したグラフの頂点が1個になることと、0次行列の行列式を1と約束したことが、どこで効くかを述べてください。
- K4の全域木を辺の集合として書き出し、個数が16になることを確かめてください。K4の辺は6本ですので、3本の辺の選び方(36)=20通りのうち、閉路を含むものを除きます。
3では、除かれるのは三角形をなす4通りです。20−4=16が例 6.1の44−2と一致します。