2013-04-01 32 views
0

對不起,這個簡單的問題,但有什麼辦法來確定一個完全連接的圖?我閱讀了一些論文,指出圖的總連通性是圖分析的先決條件。我通過Matlab的一些圖形分析工具箱搜索確定連通性的函數,但似乎至少在這些工具箱中沒有提供。你能不能就此提出任何建議?非常感謝!如何確定圖形是完全連接的?

回答

1

我不是圖論的專家,但它看起來像graphconncomp將完成這項工作。

該函數查找圖中所有連接的組件,因此如果圖完全連接,它將返回S = 1組件,並且C將爲每個節點包含1。

例如

[S,C] = graphconncomp(G) 
if all(C==ones(size(C))) 
    disp "G is fully connected"; 
end 
+0

謝謝,斯圖爾特。我正在使用Matlab 7.1(R14),並且graphconncomp似乎不在此版本中。也許我應該切換到R2013。 – Tony

+0

如果您正在使用有向圖,並且您需要_connectedness_的屬性而不是_reachability_,請確保使用'graphconncomp(G,'Weak',true)'。 – collapsar

0

另一種選擇是使用FEX功能isconnected,看到here

這將決定您的圖形是否已連接,並且如果已連接則爲1,否則爲0。只能在無向圖上工作。

3

只是爲了使這個答案的線程完整。你可以做上面的步驟:

  • 假設你有你的圖形的矩陣G

  • 使相同大小爲G的對角矩陣d,把n個節點的程度在第n個對角線元素

  • 使拉普拉斯矩陣:L = d - g^

  • 計算L的特徵值(在Matlab EIG功能會做你)

  • engenvalues這是等於零的數量是圖中的

  • 如果您的組件數爲1的圖形完全連接組件的數量,否則它有分量的,你想


這種方法適用於執導無向圖

希望你覺得它有幫助