1. 程式人生 > >矩陣樹定理

矩陣樹定理

逆元 tro 其他 常數 sdn tps tree blog 鄰接

引用:https://blog.csdn.net/Marco_L_T/article/details/72888138

1、無向圖

一個圖的鄰接矩陣G:對於無向圖的邊(u,v),G[u][v]++,G[v][u]++

一個圖的度數矩陣D:對於無向圖的邊(u,v),D[u][u]++,D[v][v]++;

而通過這兩個矩陣就可以構造出圖G的基爾霍夫矩陣:C=D-G.

Matrix Tree定理:將圖G的基爾霍夫矩陣去掉第i行和第i列(i可以取任意值,可以證明所得到的結果相同),得到(n-1)*(n-1)的矩陣,

對這個矩陣進行行列式的值求解,abs(det(A))即為圖G的生成樹個數。

求解矩陣行列式的時候,計算常數k時為了避免精度丟失,可以通過計算逆元進行求解(不需要取模時,mod一個大質數即可).

2、有向圖

樹形圖:以i點為根節點的樹形圖有(n-1)條邊,從i節點出發可以到達其他所有(n-1)個節點.

定義: 有向圖的鄰接矩陣G:對於有向圖的邊(u,v),G[u][v]++.

有向圖的度數矩陣D:對於有向圖的邊(u,v),D[v][v]++.

尤其需要註意的是:有向圖的度數矩陣指的是一個點的入度,而不是出度。

而有向圖的基爾霍夫矩陣的構造方式是一模一樣的:C=D-G.

有向圖Matrix Tree定理:

將有向圖G的基爾霍夫矩陣去掉第i行和第i列,得到(n-1)*(n-1)的矩陣,

對這個矩陣進行行列式的值求解,abs(det(A))就是以i為根的樹形圖的個數。

矩陣樹定理