Dear Tiago,

I have a directed graph of about half a million nodes and approximately a
million edges following scale free behaviour and a power law degree
distribution. To test some of my hypothesis, I would like to generate random
smaller graphs (about 50 up to 200 nodes) representative of the big one.

When I used a sample function that samples straight away from the real
distribution of the big network, I have following problems:

- I generate unconnected nodes with both 0 in AND out degree. 
- I generate small sub parts of a few nodes that are not connected to the
main graph. 
- If only sampling from nodes with at least 1 degree, the generated graph is
coherent, but not representative anymore as I need a big portion of nodes
with either only one in or one out degree.

Here is the part of my script I used for that, where samples are drawn from
dictionaries of the degrees:

def sample_in():
    a=np.random.randint(num)
    k_in = in_degrees[a]
    return k_in
    
def sample_out():
    if sample_in()==0: 
        b=np.random.randint(num_out)
        k_out=out_zero_zeros.values()[b]
        return k_out
    else:  
        b=np.random.randint(num)
        k_out=out_degrees[b]
        return k_out

N=200
g=gt.random_graph(N, lambda:(sample_in(), sample_out()),
model="constrained-configuration", directed=True)


I also tried sampling from a list of tuples as you have mentioned before in
the forum, but I didn't receive any results, as the tuples randomly drawn
from my list might not be combinable. 

degs=[(7,1),(4,3),(5,6),(2,4),(6,8),(2,0),(3,5),(0,3),(2,7),(2,1)]
g = gt.random_graph(4, lambda i: degs[i], directed=True)


- Is there any option I could active that would help me in those cases I
described above?
- Is there a better way how to create representative small networks?


Any help on that issue will be much appreciated.

Best wishes,
Jana





--
Sent from: 
http://main-discussion-list-for-the-graph-tool-project.982480.n3.nabble.com/
_______________________________________________
graph-tool mailing list
[email protected]
https://lists.skewed.de/mailman/listinfo/graph-tool

Reply via email to