generate_random_paths#
- generate_random_paths(G, sample_size, path_length=5, index_map=None, weight='weight', seed=None)[source]#
Randomly generate
sample_size
paths of lengthpath_length
.- Parameters:
- GNetworkX graph
A NetworkX graph
- sample_sizeinteger
The number of paths to generate. This is
R
in [1].- path_lengthinteger (default = 5)
The maximum size of the path to randomly generate. This is
T
in [1]. According to the paper,T >= 5
is recommended.- index_mapdictionary, optional
If provided, this will be populated with the inverted index of nodes mapped to the set of generated random path indices within
paths
.- weightstring or None, optional (default=”weight”)
The name of an edge attribute that holds the numerical value used as a weight. If None then each edge has weight 1.
- seedinteger, random_state, or None (default)
Indicator of random number generation state. See Randomness.
- Returns:
- pathsgenerator of lists
Generator of
sample_size
paths each with lengthpath_length
.
References
[1] (1,2)Zhang, J., Tang, J., Ma, C., Tong, H., Jing, Y., & Li, J. Panther: Fast top-k similarity search on large networks. In Proceedings of the ACM SIGKDD International Conference on Knowledge Discovery and Data Mining (Vol. 2015-August, pp. 1445–1454). Association for Computing Machinery. https://doi.org/10.1145/2783258.2783267.
Examples
Note that the return value is the list of paths:
>>> G = nx.star_graph(3) >>> random_path = nx.generate_random_paths(G, 2)
By passing a dictionary into
index_map
, it will build an inverted index mapping of nodes to the paths in which that node is present:>>> G = nx.star_graph(3) >>> index_map = {} >>> random_path = nx.generate_random_paths(G, 3, index_map=index_map) >>> paths_containing_node_0 = [ ... random_path[path_idx] for path_idx in index_map.get(0, []) ... ]