生成树计数Matrix-Tree定理-数学
生活随笔
收集整理的這篇文章主要介紹了
生成树计数Matrix-Tree定理-数学
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
https://www.cnblogs.com/zj75211/p/8039443.html
度數矩陣減去鄰接矩陣 再求去掉一行一列的行列式
生成樹計數問題:
對于一個有n個點的無向圖,由圖中n-1條邊構成一個邊集,這n-1條邊恰好連接圖中全部的點并構成一棵樹,稱為生成樹,求這樣的邊集的個數。
從上面的描述中,我們知道兩個不同的生成樹之間是允許有重復的邊的,比如:
他就有三個生成樹:
Matrix-Tree定理:
預備概念:
- 度矩陣 :一個n個頂點的無向圖G,定義它的度數矩陣D,D是一個n*n的矩陣。對于頂點u,設度數為deg[u],如果i=j,那么D[i][j]=deg[i],否則D[i][j]=0
- 鄰接矩陣:一個n個頂點的無向圖G,定義它的鄰接矩陣A,A是一個n*n的矩陣。如果i和j之間有邊,那么A[i][j]=1,否則等于0
- 關聯矩陣:一個n個頂點m條邊的無向圖G,定義它的關聯矩陣B,B是一個n*m的矩陣。對于第i條邊e[i]=(u,v),那么B[u][i]和B[v][i]中一個是1,一個是-1,第i列其他值為0,那么我們有:
所以對于,如果i=j,它是頂點i的度數,否則,如果i和j之間有邊,那么它等于-1,否則它等于0 - Kirchhoff矩陣:對于一個n個頂點m條邊的無向圖G,定義它的Kirchhoff矩陣C,C是一個n*n的矩陣,,顯然,C = D - A。
Matrix-Tree定理:
對于一個無向圖G,它的生成樹個數等于其Kirchhoff矩陣任何一個n-1階主子式的行列式的絕對值。
所謂n-1階主子式就是對行列式中任何一個元素,去掉它本身以及與他同行同列的元素后,剩下的元素構成的行列式。
舉個例子,對于如下的無向圖,三個矩陣分別為:
圖的生成樹的個數一般就用這個定理做就可以,行列式的求取方法一般就是按行(列)展開,或者高斯消元(化為上三角型),套模板就可以,模板見我另一篇博客,鏈接:
https://blog.csdn.net/Izayoi_w/article/details/81514248
至于這個定理的證明。。。我線代剛及格,就不證了吧。。。。
總結
以上是生活随笔為你收集整理的生成树计数Matrix-Tree定理-数学的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一阶逻辑与二阶逻辑的区别一元谓词多元谓词
- 下一篇: SQLALchemy之Python连接M