基爾霍夫矩陣&矩陣樹定理學習筆記

背景:

好多東西沒學。
勇士被快船驚天大逆轉!!!
快船NBNB
緊接着下午打球水杯被搞爛了......

正題:

Part1Part1行列式:

對於一個nnn*n的矩陣AA
pp枚舉列的全排列,τ(p)τ(p)表示排列pp的逆序對的個數。
則其行列式爲detA=p(1)τ(p)i=1nai,pidet_A=\sum_p(-1)^{τ(p)}\prod_{i=1}^na_{i,p_i}
那麼這個東西有什麼性質呢?

[1][1]
交換行和列,則行列式結果的符號取反。

這很顯然,因爲逆序對的奇偶性剛剛好相反。

[2][2]
兩行或兩列一樣時,行列式結果爲00

這很顯然,因爲pp全部枚舉過了,且一定枚舉到相同的序列,而ii又會枚舉相等,所以成立。

[3][3]
某一行或某一列乘上了kk,最後的結果也會乘kk

這很顯然,你考慮每一行或每一列的貢獻,一個\prod有且僅會被枚舉11次乘kk的數,每一次乘kk,因此你將這個kk提取出\sum外面即可,那就是剛剛好乘kk

[4][4]
某一行是另一行的kk倍或某一列是另一列的kk倍,最後的結果爲00

其實就是[2],[3][2],[3]的結合體。你先提取出一個kk,那麼就會存在某兩行或某兩列相等,那麼結果就爲00了。

[5][5]
某一行加上另一行的kk倍或某一行列加上另一列的kk倍,最後結果的不變。當某一行加上另一行的k倍時,行列式不變。

證明:可以從求和式子的每一項的那一行的那個元素下手,
detdet求和式拆成兩個detdet求和式(就是把被加上kk倍的哪一行/列拆爲原來的和新加的):
det1det_1與原矩陣的行列式求法相同;
det2det_2所代表的矩陣中有兩行成比例,比例係數爲kk,值爲00 (性質[4][4])。
所以相比原來的行列式,值不變。

至此,行列式就結束了。

Part2Part2基爾霍夫矩陣&矩陣樹定理:

不知道是不是基爾霍夫電流頂定律的那個人發明的?
這裏的基爾霍夫矩陣可以用來求無向圖生成樹的個數。
對於一個無向圖GG,它的生成樹個數等於其基爾霍夫矩陣任何一個N1N-1階主子式的行列式的絕對值。
所謂的N1N-1階主子式就是對於一個任意的一個rr,將矩陣的第rr行和第rr列同時刪去得到的新矩陣。
基爾霍夫矩陣的一種求法(矩陣樹定理):K=DA基爾霍夫矩陣K=度數矩陣D-鄰接矩陣A

解釋一下:
度數矩陣(i,i)(i,i)表示ii這點的度,其餘點均爲0。
鄰接矩陣(i,j)(i,j)表示(i,j)(i,j)連的邊數;特別的,若i=ji=j,則爲00

Part3Part3快速求行列式:

首先對於這樣一個矩陣:
在這裏插入圖片描述
注意到是一個上三角矩陣(左下的值爲00,而右上有值)。
其行列式的值爲對角線的乘積(同理下三角矩陣)。
因爲只有pp的排列爲12341234 時,\prod{}後纔沒有00出現,纔對結果有貢獻。

又因爲性質[5][5],所以採用高斯消元的方法,把矩陣消爲一個上三角矩陣後,然後求出對角線的積,便是該矩陣的行列式的值。
複雜度Θ(n3)\Theta(n^3)

Part4Part4應用:

我們可以用上述方法求解基爾霍夫矩陣,就能解決一些問題:
[1][1]
求無向圖生成樹的個數。

[2][2]
內向樹:樹上的邊是由兒子指向父親;
外向樹:樹上的邊是由父親指向兒子。
若求內向生成樹的個數,則Di,iD_{i,i}表示入度即可;
若求外向生成樹的個數,則Di,iD_{i,i}表示出度即可。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章