2017-09-05 5 views
4

Ich möchte die maximalen Subgraphen in einem gegebenen GraphenR - "max Subgraphen" im Graph

zum Beispiel identifizieren, für diese Graphen: enter image description here

und diesen Code:

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 

Max Cliquen mit min = 3 gibt mir leere Liste ...

das Ergebnis, das ich bekommen möchte (mit min = 3) ist:

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

+1

Kennen Sie die Definition von Clique? Es ist ein Untergraph, in dem für jedes Knotenpaar ein Bogen zwischen ihnen ist ... natürlich (1,2,3,4,5) und (6,7,8) sind keine Cliquen ... sie sind nur verbunden Komponenten ... – digEmAll

Antwort

3

Ich denke, was Sie suchen sind nicht Cliquen, aber angeschlossenen Komponenten.

In Ihrem Diagramm die Cliquen (komplette Subgraphen) sind der Größe 2 oder weniger, so dass die Funktion max_cliques werden Sie nichts zurück, wenn Sie die minimale Größe 3.

Auf der anderen Seite setzen, Sie können die Funktion clusters verwenden, um die größten verbundenen Komponenten Ihres Graphen zu finden.

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"