Как идентифицировать полносвязные кластеры узлов с помощью igraph?

Я пытаюсь вычислить кластеры сети, используя igraph в R, где все узлы связаны. Сюжет, кажется, работает хорошо, но тогда я не могу вернуть правильные группировки из моих кластеров.

В этом примере на графике показаны 4 основных кластера, но в самом большом кластере подключены не все узлы:

Я хотел бы иметь возможность вернуть следующий список кластеров из этогоgraph объект:

[[1]]
[1] 8 9

[[2]]
[1]  7 10

[[3]]
[1]  4  6 11

[[4]]
[1] 2 3 5

[[5]]
[1]  1  3  5 12

Пример кода:

library(igraph)

topology <- structure(list(N1 = c(1, 3, 5, 12, 2, 3, 5, 1, 2, 3, 5, 12, 4, 
6, 11, 1, 2, 3, 5, 12, 4, 6, 11, 7, 10, 8, 9, 8, 9, 7, 10, 4, 
6, 11, 1, 3, 5, 12), N2 = c(1, 1, 1, 1, 2, 2, 2, 3, 3, 3, 3, 
3, 4, 4, 4, 5, 5, 5, 5, 5, 6, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 
11, 11, 11, 12, 12, 12, 12)), .Names = c("N1", "N2"), row.names = c(NA, 
-38L), class = "data.frame")

g2 <- graph.data.frame(topology, directed=FALSE)
g3 <- simplify(g2)
plot(g3)

cliques Функция дает мне часть пути там:

tmp <- cliques(g3)
tmp

но этот список также дает группировки, где соединяются не все узлы. Например, эта клика включает в себя узлы 1, 2, 3, 5, но 1 подключается только к 3, а 2 - только к 3 и 5, а 5 - только к 2:

topology[tmp[[31]],]
#  N1 N2
#6  3  2
#7  5  2
#8  1  3

Заранее благодарю за любую помощь.

Ответы на вопрос(1)

Ваш ответ на вопрос