cugraph.bfs#
- cugraph.bfs(G, start=None, depth_limit=None, i_start=None, directed=None, return_predecessors=True)[source]#
找到图的广度优先遍历的距离和前驱节点。与SSSP不同,BFS支持无权图。
- Parameters:
- Gcugraph.Graph, networkx.Graph, CuPy or SciPy sparse matrix
图或矩阵对象,应包含连接信息。如果存在边权重,应为单精度或双精度浮点值。
自版本24.12起已弃用:接受
networkx.Graph已被弃用,并将在未来版本中移除。对于networkx.Graph,请直接使用带有nx-cugraph后端的networkx。参见:https://rapids.ai/nx-cugraph/- startInteger or list, optional (default=None)
图的顶点ID,遍历从此开始,或者如果是一个列表,遍历从图的每个组件中的顶点开始。图的每个连接组件只允许一个顶点。
- depth_limitInteger or None, optional (default=None)
限制搜索的深度
- i_startInteger, optional (default=None)
与start相同,为了API兼容性而添加。只能设置start或i_start,不能同时设置两者。
- directedbool, optional (default=None)
- NOTE
仅适用于非图形类型(例如稀疏矩阵)的G值。如果与图形对象一起使用,则会引发TypeError。
如果为True,则将输入矩阵转换为有向的cugraph.Graph, 否则将使用无向的cugraph.Graph对象。
- return_predecessorsbool, optional (default=True)
是否返回每个顶点的前驱节点(否则返回-1)
- Returns:
- Return value type is based on the input type. If G is a cugraph.Graph,
- returns:
- cudf.DataFrame
df['vertex'] 顶点ID
df['distance'] 每个顶点到起始顶点的路径距离
df['predecessor'] 对于列中的每个第i个位置,表示在'vertex'列中位置i的顶点之前紧邻的顶点ID
- If G is a networkx.Graph, returns:
pandas.DataFrame 的内容与上述描述的 cudf.DataFrame 相同。
- If G is a CuPy or SciPy matrix, returns:
一个由CuPy ndarrays(如果输入是CuPy矩阵)或Numpy ndarrays(如果输入是SciPy矩阵)组成的2元组,表示:
- distance: cupy or numpy ndarray
源点和顶点之间的最短距离的ndarray。
- predecessor: cupy or numpy ndarray
从源点到顶点的路径上前驱节点的ndarray,可用于重建最短路径。
…或者如果 return_sp_counter 为 True,则返回一个包含上述两个数组的 3 元组,再加上:
- sp_counter: cupy or numpy ndarray
指向每个顶点的最短路径数量的ndarray。
示例
>>> from cugraph.datasets import karate >>> G = karate.get_graph(download=True) >>> df = cugraph.bfs(G, 0)