2016-08-04 2 views
0

я хочу считать мотивы размером 4 в виде дерева графа:граф только подмножество мотивов размера к

library(igraph) 
g <- barabasi.game(100) 
census.motifs <- motifs(g, size=4)[c(4,8,13,30)] 

Есть 217 возможных графов с 4 вершинами, но только 4 из них могут появиться в направленное корневое дерево.

Есть ли способ сказать igraph, что он должен искать только эти 4? Или быстрый/умный способ сделать это?

+0

Можете ли вы принять этот ответ, если он решил вашу проблему? –

ответ

1

Четыре мотивы в виде направленного корневого дерева могут быть расценены как к-возрасты с использованием пакета ergm http://svitsrv25.epfl.ch/R-doc/library/ergm/html/ergm-terms.html

к-й стадия представляет собой набор узлов K все разделение один общий корня. Если n - количество узлов в вашем дереве, то для ваших 4 мотивов будет число 3-возраста (полностью подключено), (n-3) умножено на число 2-возрастов (два ребра, соединяющиеся с корнем и один другой узел), (n-2) выбирает 2 раза число 1-возраста (одно ребро, соединяющее корень и два других узла), а n выбирает 4 минус сумму предыдущих трех отсчетов. В R вы можете использовать,

library(intergraph) 
library(ergm) 
library(igraph) 
n <- 100 
g <- barabasi.game(n) 
kistars <- summary(asNetwork(g)~istar(1:3)) 
kistars[3] 
(n-3)*kistars[2] 
choose(n-2,2)*kistars[1] 
choose(n,4)*sum(kistars) 
Смежные вопросы