Dear all,

I am trying to generate a stochastic block model in the graph_tool.

Specifically, I am trying to construct a network with exactly 2 blocks such

that the probabilities inside the groups are higher than that of the

between the groups (assortative structure) but the probabilities inside the

groups are not identical for two groups (say 0.9 for the first group and

0.6 for the second group).

The extreme case of this would be to make the probability between the

groups equal to zero which should give me two isolated modules. My code

given below however fails to generate these two models. Can somebody kindly

explain me my mistake?

import numpy as np

import graph_tool.all as gt

N = 1000

ave_deg = 10

block = np.random.randint(1, 3, N)

def f():

ave_deg = 5

return np.random.poisson(ave_deg)

def corr(a, b):

if a == 1 and b == 1:

return 0.6

elif a == 2 and b == 2 :

return 0.9

else:

return 0.

G, bm = gt.random_graph(N, deg_sampler = f, directed = False, model =

"blockmodel-traditional", block_membership = block, vertex_corr = corr)

largest_comp = gt.Graph(gt.GraphView(G, vfilt =

gt.label_largest_component(G)), prune = True)

gt.graph_draw(G)

Thank you

Snehal

attachment.html (1.63 KB)