矩陣樹Matrix-Tree定理與行列式

簡單入門一下矩陣樹Matrix-Tree定理。(本篇目不涉及矩陣樹相關證實)html

一些定義與定理優化

  • 對於一個無向圖 G ,它的生成樹個數等於其基爾霍夫Kirchhoff矩陣任何一個N-1階主子式行列式絕對值。
  • 所謂的N-1階主子式就是對於一個任意的一個 r ,將矩陣的第 r 行和第 r 列同時刪去獲得的新矩陣。
  • 基爾霍夫Kirchhoff矩陣的一種求法:

    基爾霍夫Kirchhoff矩陣 K =度數矩陣 D - 鄰接矩陣 Aspa

基爾霍夫Kirchhoff矩陣的具體構造htm

  • 度數矩陣D:是一個 ${N}\times{N}$ 的矩陣,其中

    $D[i][j]=0\;{(i}\neq{j)}$,$D[i][i]=i號點的度數$blog

  • 鄰接矩陣A:是一個 ${N}\times{N}$ 的矩陣,其中

    ${A[i][i]=0}\;{,}\;{A[i][j]=A[j][i]=i,j之間的邊數}$get

  • 而後基爾霍夫Kirchhoff矩陣K=D-A
  • 舉個例子,對於以下的無向圖,三個矩陣分別爲

    image

行列式det(K)求法it

  • 已經得出了基爾霍夫Kirchhoff矩陣,那麼隨便去掉某一行一列並計算出新矩陣的行列式,其絕對值即爲生成樹個數。
  • ${det(K)=}\sum_{P}^{ }\;{(}{(-1)}^{\tau{(P)}}\times{K}_{1,p1}\times{K}_{2,p2}\times{K}_{3,p3}\times\cdots\times{K}_{N,pN}{)}$
  • 上面的式子中的 P 爲 1~N 的任意一個排列。$\tau{(P)}$表示排列 P 的逆序對數。而那個求和式的每一項能夠看作是在矩陣中選出N個數,使得他們的行列都不重合。
  • 求和式共有$N!$項,暴力求法的複雜度 ${O(N!)}\times{N}$
  • 這個複雜度太高了,看完了下面的行列式性質,而後引出優化求解方法。

行列式的性質入門

  • 性質.1  互換矩陣的兩行(列),行列式變號。

    這個須要簡單說明一下。方法

    考慮對於原矩陣 K,咱們能夠獲得其行列式的求和式:im

    ${det(K)=}\sum_{P}^{ }\;{(}{(-1)}^{\tau{(P)}}\times{K}_{1,p1}\times{K}_{2,p2}\times{K}_{3,p3}\times\cdots\times{K}_{N,pN}{)}$

    若交換某兩行的位置後獲得了 K' 矩陣,若寫出其行列式的求和式,不難發現,若是不看符號位的變化,只看每個乘積項,那麼這兩個的矩陣的行列式的求和式是徹底相同的。咱們把相同的乘積項移到對應的位置,如圖示:

    image

    可是很顯然,兩個矩陣的這一項對應的排列 P 和 P' 不一樣:

    P :1 2 4 3

    P':3 2 4 1

    那這個符號位的變化是什麼呢?

    從例子看得出來,τ(P) = 1 ,符號位爲 –1;τ(P')=4,符號位爲 1。

    那是否是都是這樣的呢?

    即原來是 -1,如今就是 1;即原來是 1,如今就是 -1?逆序對變化量爲奇數?

    答案是確定的,證實以下:

    image

    由此可知,逆序對數的變化量爲奇數,即兩個det()求和式的對應的每一項的符號位都相反,因此互換矩陣的兩行(列),行列式變號

    (有了這個性質,下面的就比較簡單了。)

  • 性質.2  若是矩陣有兩行(列)徹底相同,則行列式爲 0

    證實,由性質.1可知:由於交換這兩行,獲得的矩陣和原來相同,可是又要變號,則行列式的值只能爲 0。

  • 性質.3  若是矩陣的某一行(列)中的全部元素都乘以同一個數k,新行列式的值等於原行列式的值乘上數k。

    這個的證實就是把那個求和式的每一項都提出一個公因子k就行了。

  • 推論  若是矩陣的某一行(列)中的全部元素都有一個公因子k,則能夠把這個公因子k提到行列式求和式的外面。
  • 性質.3  若是矩陣有兩行(列)成比例(比例係數k),則行列式的值爲 0

    證實:也是把其中一行提出一個公因數k,那麼剩下的det( )求和式所表明的矩陣中存在一行或一列徹底相同,則值爲 0。

  • 性質.4  若是把矩陣的某一行(列)加上另外一行(列)的k倍,則行列式的值不變。

    證實:能夠從求和式子的每一項的那一行的那個元素下手,

    把det( )求和式拆成兩個 det( )求和式:

    det1( )與原矩陣的行列式求法相同

    det2( )所表明的矩陣中有兩行成比例,比例係數爲k,值爲0 。

    因此相比原來的行列式,值不變。

優化行列式的求法

  • 首先對於這樣一個矩陣:

    image

    注意到了麼,是一個上三角矩陣(左下半部分的元素值爲 0)。

    其行列式的值爲對角線的乘積,(同理下三角矩陣)

    由於只有 P = 1 2 3 4 時,乘積項中才沒有 0出現。

  • 同時注意到性質.4,因此採用高斯消元的方法,把矩陣消爲一個上三角矩陣後,而後求出對角線的積,即是該矩陣的行列式的值。
  • 複雜度 O(N3),快了不少。

 

相關文章
相關標籤/搜索