dgl.dfs_edges_generator

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

使用深度优先搜索 (DFS) 生成边前沿。

可以指定多个源节点来启动 DFS 遍历。需要确保每个源节点属于不同的连通分量,以便可以轻松合并前沿。否则,行为是未定义的。

参数:
  • graph (DGLGraph) – 图对象。

  • source (list, tensor of nodes) – 源节点。

  • reverse (bool, optional) – 如果为 True,则沿入边方向遍历。

返回值:

每个边前沿都是一个边 ID 的列表或张量。

返回值类型:

list 的边前沿

示例

给定一个图(有向,边从较小的节点 ID 指向较大的节点 ID)

      2 - 4
     / \
0 - 1 - 3 - 5

边添加顺序 [(0, 1), (1, 2), (1, 3), (2, 3), (2, 4), (3, 5)]

>>> g = dgl.graph(([0, 1, 1, 2, 2, 3], [1, 2, 3, 3, 4, 5]))
>>> list(dgl.dfs_edges_generator(g, 0))
[tensor([0]), tensor([1]), tensor([3]), tensor([5]), tensor([4])]