2015-11-25 68 views
1

我有一個鄰接矩陣,我似乎無法找到一個快速的方法來組合多個節點,以瞭解最終數量的「超級節點」。我認爲一個簡單的解決方案是基本上計算鄰接矩陣的上三角部分的總和,並減去節點總數減去前面的總和將給我答案,但看起來有點棘手。如何合併節點給定一個鄰接矩陣

假設:

我有1至6個6個節點: 節點1,2,3被連接到所有彼此。 節點4和6彼此連接, 節點5沒有連接任何東西。

在這一點上,似乎微不足道的6個初始節點,我將只剩下3個超級節點。現在使用我的方法之前的問題是,假設第一個超級節點如此連接: 1到2 2到3, 但不是1到3直接。 (即使它們合併)。 (upptriangle(Adj))= 3,但是對於第一種情況,我添加了一個「虛節點」(連接1-3)輸出:sum(upptriangle(Adj))= 4,並且這個連接類型不應影響最終結果。

是否存在我缺少的標準算法來解決此問題(並補償非完全連接的子圖的過度完整?),而不是迭代地遍歷每個節點以查看它是否已合併?

換句話說,是否有快速的節點合併計算,我只能從鄰接矩陣中獲得?

+0

當你說「連接」,你的意思是「他們之間有邊緣?」如在中,目標是確定有多少個不同的連接組件? – templatetypedef

+0

@templatetypedef基本上是。 – Arturo

+0

請參見[here](http://stackoverflow.com/questions/8124626/finding-connected-components-of-adjacency-matrix-graph)和[here](http://stackoverflow.com/questions/8124626/查找連接元件的鄰接矩陣圖) – Imran

回答