2017-09-05 13 views
4

欲識別的最大子圖在給定的圖表的R - 「最大子圖」 圖中

例如,對於這些曲線圖: enter image description here

和此代碼:

library("igraph")   
    from <- c(1,2,3,3,6,6,8,9) 
    to <- c(2,3,4,5,7,8,6,10) 
    edges = data.frame(from,to) 
    g<- graph_from_data_frame(edges,directed=FALSE) 
    plot(g) 

    clc <- max_cliques(g, min=3) 
    clc 

min = 3的最大派系給我空列表 ...

我想得到的結果(最小= 3)是:

(1,2,3,4,5) (6,7,8)

+1

你知道集團的定義嗎?這是一個子圖,對於每對節點,它們之間有一條弧線......當然,(1,2,3,4,5)和(6,7,8)不是派系......它們只是連接在一起組件... – digEmAll

回答

3

我想你在找什麼都沒有拉幫結派,但連接的組件。

在圖形中,拉幫結派(完整子圖)是大小爲2或更小的,因此,如果您設置的最小尺寸爲3

在另一方面的功能max_cliques不會返回你什麼,您可以使用函數clusters查找圖形中最大的連通組件。

cl <- clusters(g) 
me <- which(cl$csize >= 3) 
res <- split(names(cl$membership), cl$membership)[me] 
res 
$`1` 
[1] "1" "2" "3" "4" "5" 

$`2` 
[1] "6" "8" "7"