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:

ndarray

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)