[英]Has graph represented by adjacency matrix at least one spanning tree?
我從兩天開始就在學習數學和算法,但我沒有更多的想法。 我有鄰接矩陣,我有 laplasjan 矩陣。 我想檢查這個圖是否一致或它是否有生成樹。
我正在使用基爾霍夫定理,它對我有用,但它太慢了(10x10 矩陣超過秒)。 我可以修改基爾霍夫定理來檢查我的矩陣生成樹(不是多少)嗎?
我正在嘗試學習新東西,所以我不想使用 DFS,我真的想使用鄰接矩陣。
這是一種找出圖是否至少有一個生成樹的算法。
find_root
,它遵循一連串“par”指針,直到它到達par[node] == node
for i in nodes: for j in nodes: if i!=j: if adjacent[i][j] then
: for i in nodes: for j in nodes: if i!=j: if adjacent[i][j] then
:
k = find_root(i)
par[k] = l
// 這將 i 的樹作為 j 樹中 j 的兄弟這樣,就構建了一棵或多棵樹。 這些樹可用於將節點聚集成連接的組。
對於基本算法,一個重要的加速是不僅設置par[k] = l
還設置par[i] = l
和par[j] = l
。 下次會更早找到根。 如果圖沒有方向性,則只需要處理adjacent[i][j]
或adjacent[j][i]
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.