dgl.traversal.bfs_nodes_generator

dgl.traversal.bfs_nodes_generator(graph, source, reverse=False)[source]

Node frontiers generator using breadth-first search.

Parameters
  • graph (DGLHeteroGraph) – The graph object.

  • source (list, tensor of nodes) – Source nodes.

  • reverse (bool, default False) – If True, traverse following the in-edge direction.

Returns

Each node frontier is a list or tensor of node ids.

Return type

list of node frontiers

Examples

Given a graph (directed, edges from small node id to large):

      2 - 4
     / \
0 - 1 - 3 - 5
>>> g = dgl.graph(([0, 1, 1, 2, 2, 3], [1, 2, 3, 3, 4, 5]))
>>> list(dgl.bfs_nodes_generator(g, 0))
[tensor([0]), tensor([1]), tensor([2, 3]), tensor([4, 5])]