ASKSAGE: Sage Q&A Forum - RSS feedhttps://ask.sagemath.org/questions/Q&A Forum for SageenCopyright Sage, 2010. Some rights reserved under creative commons license.Tue, 27 Sep 2022 22:25:43 +0200Random non-induced subgraphhttps://ask.sagemath.org/question/64210/random-non-induced-subgraph/Given a graph G then G.random_subgraph(.5) returns a random subgraph of G (each vertex is selected independently with probability .5).
However, this will return an induced subgraph.
Is there a command that returns a not necessarily induced subgraph?MagusTue, 27 Sep 2022 22:25:43 +0200https://ask.sagemath.org/question/64210/motifs and subgraphshttps://ask.sagemath.org/question/10157/motifs-and-subgraphs/I'm counting the number of motifs (3-nodes isophormic class of connected subgraphs) in a random directed network. There are 13 of this. One is, for example S1={1 -> 2, 2 -> 3} and another one S2={1 -> 2, 2 -> 3, 1 -> 3}. They are two distinct motifs, and I wouldn't count a S1 when I actually find S2. The problem is that S1 is in S2, hence subgraph_search() finds a S1 in each S2 and all related functions inherit the problem (wrong counting, wrong iterator...).
Any idea how to resolve this issue? Similar things would happen for 4-nodes motifs and so on...
The code I used goes like:
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)
gvdrMon, 27 May 2013 02:02:15 +0200https://ask.sagemath.org/question/10157/