0

全域木の個数に関するキルヒホフの法則

540
0

全域木とは連結グラフの部分グラフですべての頂点を共有するものをいう。グラフによってはきれいに求めることができる。それについていくつかの結果を述べたい。
 連結グラフGに対し、その全域木の個数を|G|と書くことにする。

定義いろいろ

抵抗器

連結グラフG2つ以上の頂点をもつとする。Gの異なる2p,qに対し、この2点を付随させて考えたものを抵抗器と呼びA=(G, p, q)みたいに書く。なぜ2点を取り出して考えるのかは後でわかる。

抵抗器A=(G, p, q)の値val(A)=(α, β)とは、Gの全域木の個数α=|G|と、Gの全域部分グラフでpを含む木とqを含む木の互いに頂点を共有しない合併になっているものの個数βの組とする。βはまた、Gにおいてpqを同一視して得られるグラフの全域木の個数に等しい。

抵抗器

抵抗器の例 抵抗器の例

抵抗器A=(G, p, q)についてpqを入れ替えたものをA=(G, q, p)と書く。当然のごとく、val(A)=val(A)である。

直列

抵抗器A1=(G1, p1, q1), A2=(G2, p2, q2)について、それらの直列というのは、q1p2を同一視してできる連結グラフをGと書くときのA=(G, p1, q2)のことをいう。A=A1A2のように書く。結合律:
(A1A2)A3=A1(A2A3)
が成り立つし、逆について、
(A1A2)=A2A1
も明らか。

直列

直列の例 直列の例

直列の値

A1=(G1, p1, q1), A2=(G2, p2, q2)について、それらの値を
val(A1)=(α1, β1),    val(A2)=(α2, β2)
とするとき、直列について、
val(A1A2)=(α1α2, α1β2+β1α2).

直列の値

直列の値 直列の値

並列

抵抗器A1=(G1, p1, q1), A2=(G2, p2, q2)について、それらの並列というのは、p1p2を同一視し、q1q2を同一視してできる連結グラフをGとするときのA=(G, p1=p2, q1=q2)のことをいう。A=A1A2のように書く。次は容易に知られる:
(A1A2)A3=A1(A2A3).
(A1A2)=A1A2.
A1A2=A2A1.

並列

並列の例 並列の例

並列の値

A1=(G1, p1, q1), A2=(G2, p2, q2)について、それらの値を
val(A1)=(α1, β1),    val(A2)=(α2, β2)
とするとき、並列について、
val(A1A2)=(α1β2+β1α2, β1β2).

並列の値

並列の値 並列の値

リンク

抵抗器Ai=(Gi, pi, qi) (i=1,2,,n)があるとき、q1p2,q2p3,,qn1pn,qnp1という風に輪を作るようにしてつないでできる連結グラフをG=link(A1, A2, , An)と書く。

リンクの値

抵抗器Ai=(Gi, pi, qi) (i=1,2,,n)があるとき、それらの値を
val(Ai)=(αi, βi)
として、リンクの全域木の個数は、
|link(A1, A2, , An)|=α1αn(β1α1++βnαn)
で与えられる。特に、リンクを作るときのAiたちの順序を入れ替えたり、構成する抵抗器の一部を逆で取り替えたりしても、出来上がるリンクの全域木の個数は変化しない。

リンクの値

以下のリンクでは4つの(4,3)を組み合わせているので、
4444(34×4)=768
が求める全域木の個数になる。
g7f6dftg g7f6dftg

次がある意味で主定理になる。

全域木の個数に関するキルヒホフの法則

抵抗器A=(G, p, q)を取る。Gのすべての辺を1Ωの抵抗とみなし、pを入力、qを出力として電流を流すことを考える。すなわち各辺を重み付きの矢印とし、pq以外のすべての点で流出量の総和が等しくなるよう、また任意のサイクルで矢印に沿った重みの和(逆方向の場合はマイナス)が0になるようにこれを用意するとき、p及びqでの流出量の絶対値I(電流の入力の値に当たる感じ)とpからqへ辺に沿って重みを足した和の値(逆方向の場合はマイナス)の絶対値V(こちらは電圧に当たる、すべての抵抗は1Ω)、及びAの値val(A)=(α, β)について、
VI=βα
が成立する。なお、VIの比は一意的に決まる。特に、
β=α×VI
であるから、α, I, Vからβを計算することができる。

例を出した方が分かりやすい。

全域木の個数に関するキルヒホフの法則

キルヒホフ~ キルヒホフ~

これらを使って次のグラフの全域木の個数を求めてみる。
格子 格子
いわゆる格子である。これの実際の値は、サイクル行列定理を使えば即座に出せるが、抵抗器の考え方で地道に迫ることでその裏付けがしたい。

ステップ1

ステップ1 ステップ1
普通の正方形型グラフを用意する。全域木の個数は4. 図のようにp,qを設定すると値は(4, 4)となり、直列して(16, 32)を得る。

ステップ2

ステップ2 ステップ2
単純に辺をつけ足しても全域木の個数は変わらないので(自明)、左のグラフもまた全域木の個数は16である。これを回路にする。電流が4で電圧が14みたいになるので、繋げた場合の全域木の個数は、
16144=56.
こうしてまず右のグラフの全域木の個数56を得る。

ステップ3

こうしてできた連結グラフの2点を左の図のように取り、値でβの方を法則に従って出すと80になる。抵抗器の値が(56, 80)になるので、リンクを作ると右のグラフの全域木の個数が56802になる。これはそのままの方がいい。
g6t65fr56 g6t65fr56

ステップ4

やはり辺をつけ足しても全域木の個数は変わらないので(片方の点が孤立していればOK)、左のようにするとαがさっき求めた56802になる。で、抵抗計算・・図で青の所に1をおき、赤の所を文字でおき、法則を満たすように数を埋めていくと最後に1次方程式を解いて赤の所が1/4になる。だからこんな風になる。そしてβの計算も、
5680213440=564134.
r4t43t r4t43t

ステップ5(終了)

次の回路の抵抗を計算する。
fg54y546y fg54y546y
青い矢印を1と置いたうえで赤い矢印を文字でおくとそれが1/3と出るのでそれで分かる感じ。そこまで難しくない。αの方はさっき出した564134であるから、つないだものについては次のようになる:
56413422467=568224=100352.
ゆえに、求める全域木の個数は100352個である。

サイクル行列による求め方(検算)

I3次単位行列、O3次ゼロ行列とする。平面グラフのサイクル行列定理とは、各サイクルを添え字とし、対角成分にサイクルを構成する辺の数をプラスで、非対角成分にサイクル同士の共有辺の個数をマイナスでかいたものである。これの行列式が全域木の個数を与える。問題のグラフの場合、
d=|AIOIAIOIA|.     A=|410141014|
で与えられるdを計算すればいい。
d=|A32A|=|A||A2I||A+2I|=4(42)(4+2)(42)(422)44(4+2)(4+22)=43(422)2(428)=641428=100352.
同じ値になった。

おわりに

自分で見つけたので参考文献とかはないです。シュプリンガーさんのグラフ理論かなんかの本でそれっぽい紹介があったかもしれないです。全域木の個数が分かるだけだし適用も小さいものに限られる地味な定理なので注目度は低いと思います。キルヒホフの証明は有限版のラプラシアンとか定義してやったような気がするんですけど忘れました。
 直列と並列について。抵抗器の値からβ/αとして比を作ると、合成した場合の値が抵抗の値の直列並列での計算結果に一致しているのは興味深いです。
βα=β1α1+β2α2.  ()        αβ=α1β1+α2β2.  ()

投稿日:20201122
OptHub AI Competition

この記事を高評価した人

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

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

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

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

投稿者

黒狐
黒狐
34
5065
数学ちょっと好きです!

コメント

他の人のコメント

コメントはありません。
読み込み中...
読み込み中