ash_model.paths.randwalks.random_walks¶
- ash_model.paths.randwalks.random_walks(h, start_from=None, num_walks=100, walk_length=10, p=1.0, q=1.0, s=1, edge=False, start=None, end=None, threads=-1)[source]¶
Generate biased random walks on ASH hypergraph (node or edge graph).
- Parameters:
h (ASH) – ASH hypergraph object
start_from (int | str | List[int | str] | None) – Node or list of nodes to start walks from
num_walks (int) – Number of walks per start node
walk_length (int) – Length of each walk
p (float) – Return parameter (higher values make walk less likely to return to previous node)
q (float) – In-out parameter (higher values make walk more local, lower values encourage exploration)
s (int) – Minimum s-incidence threshold. For node walks: nodes must co-occur in at least s hyperedges to be connected. For edge walks: hyperedges must share at least s nodes to be connected.
edge (bool) – If True, walk on hyperedge line graph
start (int | None) – Lower temporal bound
end (int | None) – Upper temporal bound
threads (int) – Parallel threads for random walk computation
- Returns:
Array of walks (each walk is a list of original node/edge IDs)
- Return type:
Examples
# Node-based random walks with s=1 (any co-occurrence) walks = random_walks(h, num_walks=100, walk_length=10, s=1) # Node-based random walks with s=2 (nodes must co-occur in at least 2 hyperedges) walks = random_walks(h, num_walks=100, walk_length=10, s=2) # Hyperedge-based random walks with s=2 (hyperedges must share at least 2 nodes) walks = random_walks(h, num_walks=100, walk_length=10, s=2, edge=True)