计算和列出SAGE中的图案

时间:2013-05-27 05:13:55

标签: sage directed-graph subgraph

问题在http://ask.sagemath.org/question/2612/motifs-and-subgraphs

中得到了正确回答

我在随机有向网络中计算3个图案(3个节点等值连续子图)的数量。这有13个。一个是,例如S1 = {1 - > 2,2 - > 3}和另一个S2 = {1 - > 2,2 - > 3,1-> 3}:它们是两个截然不同的主题,当我找到S2时,我不会算上S1。问题是S1在S2中,因此subgraph_search()在每个S2中找到一个S1并且所有相关函数都继承了问题(错误的计数,错误的迭代器......)。

知道如何解决这个问题吗?类似的事情会发生在4节点的图案上等等......我可以在计算出它们之后从图中删除S2的出现,但那真的是一个非常糟糕的伎俩(如果我想计算4个图案那么危险)

我使用的代码如下:

import numpy
M1 = DiGraph(numpy.array([[0,1,0],[0,0,1],[0,0,0]])) #first motif
M5 = DiGraph(numpy.array([[0,1,1],[0,0,1],[0,0,0]])) #second motif
g = digraphs.RandomDirectedGNP(20,0.1) #a random network
l1 = []
for p in g.subgraph_search_iterator(M1): #search first motif
  l1.append(p) #make a list of its occurences
l5 = []
for p in g.subgraph_search_iterator(M5): #the same for the second motif
  l5.append(p)

1 个答案:

答案 0 :(得分:1)

诀窍是在http://ask.sagemath.org/question/2612/motifs-and-subgraphs中正确回答subgraph_search()函数中包含选项indu = true。