中心性#

PageRank#

cugraph_error_code_t cugraph_pagerank(const cugraph_resource_handle_t *handle, cugraph_graph_t *graph, const cugraph_type_erased_device_array_view_t *precomputed_vertex_out_weight_vertices, const cugraph_type_erased_device_array_view_t *precomputed_vertex_out_weight_sums, const cugraph_type_erased_device_array_view_t *initial_guess_vertices, const cugraph_type_erased_device_array_view_t *initial_guess_values, double alpha, double epsilon, size_t max_iterations, bool_t do_expensive_check, cugraph_centrality_result_t **result, cugraph_error_t **error)#

计算 pagerank。

参数:
  • handle[in] 访问资源的句柄

  • graph[in] 指向图的指针

  • precomputed_vertex_out_weight_vertices[in] 可选地传入预计算的顶点出边权和(性能优化)。这定义了顶点。如果未传入值,则设置为 NULL。

  • precomputed_vertex_out_weight_sums[in] 可选地传入预计算的顶点出边权和(性能优化)。如果未传入值,则设置为 NULL。

  • initial_guess_vertices[in] 可选地传入 pagerank 值的初始猜测(性能优化)。这定义了顶点。如果未传入值,则设置为 NULL。如果为 NULL,则初始 PageRank 值设置为 1.0 除以图中的顶点数。

  • initial_guess_values[in] 可选地传入 pagerank 值的初始猜测(性能优化)。如果未传入值,则设置为 NULL。如果为 NULL,则初始 PageRank 值设置为 1.0 除以图中的顶点数。

  • alpha[in] PageRank 阻尼因子。

  • epsilon[in] 用于检查收敛性的误差容忍度。如果连续两次迭代的 PageRank 值差异总和小于图中顶点数乘以 epsilon,则假定收敛。

  • max_iterations[in] PageRank 的最大迭代次数。

  • do_expensive_check[in] 一个标志,用于对输入参数进行昂贵的检查(如果设置为 true)。

  • result[out] 指向 pagerank 结果的不透明指针

  • error[out] 指向存储任何错误详细信息的错误对象的指针。如果错误代码不是 CUGRAPH_SUCCESS,将填充此对象。

返回:

错误代码

cugraph_error_code_t cugraph_pagerank_allow_nonconvergence(const cugraph_resource_handle_t *handle, cugraph_graph_t *graph, const cugraph_type_erased_device_array_view_t *precomputed_vertex_out_weight_vertices, const cugraph_type_erased_device_array_view_t *precomputed_vertex_out_weight_sums, const cugraph_type_erased_device_array_view_t *initial_guess_vertices, const cugraph_type_erased_device_array_view_t *initial_guess_values, double alpha, double epsilon, size_t max_iterations, bool_t do_expensive_check, cugraph_centrality_result_t **result, cugraph_error_t **error)#

计算 pagerank。

已弃用

应放弃此版本的 pagerank,转而使用 cugraph_pagerank_allow_nonconvergence 版本。最终该版本将重命名为此版本。

参数:
  • handle[in] 访问资源的句柄

  • graph[in] 指向图的指针

  • precomputed_vertex_out_weight_vertices[in] 可选地传入预计算的顶点出边权和(性能优化)。这定义了顶点。如果未传入值,则设置为 NULL。

  • precomputed_vertex_out_weight_sums[in] 可选地传入预计算的顶点出边权和(性能优化)。如果未传入值,则设置为 NULL。

  • initial_guess_vertices[in] 可选地传入 pagerank 值的初始猜测(性能优化)。这定义了顶点。如果未传入值,则设置为 NULL。如果为 NULL,则初始 PageRank 值设置为 1.0 除以图中的顶点数。

  • initial_guess_values[in] 可选地传入 pagerank 值的初始猜测(性能优化)。如果未传入值,则设置为 NULL。如果为 NULL,则初始 PageRank 值设置为 1.0 除以图中的顶点数。

  • alpha[in] PageRank 阻尼因子。

  • epsilon[in] 用于检查收敛性的误差容忍度。如果连续两次迭代的 PageRank 值差异总和小于图中顶点数乘以 epsilon,则假定收敛。

  • max_iterations[in] PageRank 的最大迭代次数。

  • do_expensive_check[in] 一个标志,用于对输入参数进行昂贵的检查(如果设置为 true)。

  • result[out] 指向 pagerank 结果的不透明指针

  • error[out] 指向存储任何错误详细信息的错误对象的指针。如果错误代码不是 CUGRAPH_SUCCESS,将填充此对象。

返回:

错误代码

个性化 PageRank#

cugraph_error_code_t cugraph_personalized_pagerank(const cugraph_resource_handle_t *handle, cugraph_graph_t *graph, const cugraph_type_erased_device_array_view_t *precomputed_vertex_out_weight_vertices, const cugraph_type_erased_device_array_view_t *precomputed_vertex_out_weight_sums, const cugraph_type_erased_device_array_view_t *initial_guess_vertices, const cugraph_type_erased_device_array_view_t *initial_guess_values, const cugraph_type_erased_device_array_view_t *personalization_vertices, const cugraph_type_erased_device_array_view_t *personalization_values, double alpha, double epsilon, size_t max_iterations, bool_t do_expensive_check, cugraph_centrality_result_t **result, cugraph_error_t **error)#

计算个性化 pagerank。

已弃用

应放弃此版本的个性化 pagerank,转而使用 cugraph_personalized_pagerank_allow_nonconvergence 版本。最终该版本将重命名为此版本。

参数:
  • handle[in] 访问资源的句柄

  • graph[in] 指向图的指针

  • precomputed_vertex_out_weight_vertices[in] 可选地传入预计算的顶点出边权和(性能优化)。这定义了顶点。如果未传入值,则设置为 NULL。

  • precomputed_vertex_out_weight_sums[in] 可选地传入预计算的顶点出边权和(性能优化)。如果未传入值,则设置为 NULL。

  • initial_guess_vertices[in] 可选地传入 pagerank 值的初始猜测(性能优化)。这定义了顶点。如果未传入值,则设置为 NULL。如果为 NULL,则初始 PageRank 值设置为 1.0 除以图中的顶点数。

  • initial_guess_values[in] 可选地传入 pagerank 值的初始猜测(性能优化)。如果未传入值,则设置为 NULL。如果为 NULL,则初始 PageRank 值设置为 1.0 除以图中的顶点数。

  • personalization_vertices[in] 指向存储个性化顶点标识符数组的指针(计算个性化 PageRank)。

  • personalization_values[in] 指向存储个性化集中顶点的个性化值数组的指针。

  • alpha[in] PageRank 阻尼因子。

  • epsilon[in] 用于检查收敛性的误差容忍度。如果连续两次迭代的 PageRank 值差异总和小于图中顶点数乘以 epsilon,则假定收敛。

  • max_iterations[in] PageRank 的最大迭代次数。

  • do_expensive_check[in] 一个标志,用于对输入参数进行昂贵的检查(如果设置为 true)。

  • result[out] 指向 pagerank 结果的不透明指针

  • error[out] 指向存储任何错误详细信息的错误对象的指针。如果错误代码不是 CUGRAPH_SUCCESS,将填充此对象。

返回:

错误代码

cugraph_error_code_t cugraph_personalized_pagerank_allow_nonconvergence(const cugraph_resource_handle_t *handle, cugraph_graph_t *graph, const cugraph_type_erased_device_array_view_t *precomputed_vertex_out_weight_vertices, const cugraph_type_erased_device_array_view_t *precomputed_vertex_out_weight_sums, const cugraph_type_erased_device_array_view_t *initial_guess_vertices, const cugraph_type_erased_device_array_view_t *initial_guess_values, const cugraph_type_erased_device_array_view_t *personalization_vertices, const cugraph_type_erased_device_array_view_t *personalization_values, double alpha, double epsilon, size_t max_iterations, bool_t do_expensive_check, cugraph_centrality_result_t **result, cugraph_error_t **error)#

计算个性化 pagerank。

参数:
  • handle[in] 访问资源的句柄

  • graph[in] 指向图的指针

  • precomputed_vertex_out_weight_vertices[in] 可选地传入预计算的顶点出边权和(性能优化)。这定义了顶点。如果未传入值,则设置为 NULL。

  • precomputed_vertex_out_weight_sums[in] 可选地传入预计算的顶点出边权和(性能优化)。如果未传入值,则设置为 NULL。

  • initial_guess_vertices[in] 可选地传入 pagerank 值的初始猜测(性能优化)。这定义了顶点。如果未传入值,则设置为 NULL。如果为 NULL,则初始 PageRank 值设置为 1.0 除以图中的顶点数。

  • initial_guess_values[in] 可选地传入 pagerank 值的初始猜测(性能优化)。如果未传入值,则设置为 NULL。如果为 NULL,则初始 PageRank 值设置为 1.0 除以图中的顶点数。

  • personalization_vertices[in] 指向存储个性化顶点标识符数组的指针(计算个性化 PageRank)。

  • personalization_values[in] 指向存储个性化集中顶点的个性化值数组的指针。

  • alpha[in] PageRank 阻尼因子。

  • epsilon[in] 用于检查收敛性的误差容忍度。如果连续两次迭代的 PageRank 值差异总和小于图中顶点数乘以 epsilon,则假定收敛。

  • max_iterations[in] PageRank 的最大迭代次数。

  • do_expensive_check[in] 一个标志,用于对输入参数进行昂贵的检查(如果设置为 true)。

  • result[out] 指向 pagerank 结果的不透明指针

  • error[out] 指向存储任何错误详细信息的错误对象的指针。如果错误代码不是 CUGRAPH_SUCCESS,将填充此对象。

返回:

错误代码

特征向量中心性#

cugraph_error_code_t cugraph_eigenvector_centrality(const cugraph_resource_handle_t *handle, cugraph_graph_t *graph, double epsilon, size_t max_iterations, bool_t do_expensive_check, cugraph_centrality_result_t **result, cugraph_error_t **error)#

计算特征向量中心性。

使用幂法计算。

参数:
  • handle[in] 访问资源的句柄

  • graph[in] 指向图的指针

  • epsilon[in] 用于检查收敛性的误差容忍度。收敛性是通过比较 L1 范数来衡量的,直到小于 epsilon。

  • max_iterations[in] 最大幂迭代次数,即使尚未收敛也不会超过此迭代次数。

  • do_expensive_check[in] 一个标志,用于对输入参数进行昂贵的检查(如果设置为 true)。

  • result[out] 指向特征向量中心性结果的不透明指针

  • error[out] 指向存储任何错误详细信息的错误对象的指针。如果错误代码不是 CUGRAPH_SUCCESS,将填充此对象。

返回:

错误代码

Katz Centrality#

cugraph_error_code_t cugraph_katz_centrality(const cugraph_resource_handle_t *handle, cugraph_graph_t *graph, const cugraph_type_erased_device_array_view_t *betas, double alpha, double beta, double epsilon, size_t max_iterations, bool_t do_expensive_check, cugraph_centrality_result_t **result, cugraph_error_t **error)#

计算 katz 中心性。

参数:
  • handle[in] 访问资源的句柄

  • graph[in] 指向图的指针

  • betas[in] 可选地传入一个设备数组,其中包含在每次迭代中添加到每个顶点新的 Katz Centrality 分数的值。如果设置为 NULL,则对所有顶点使用 beta

  • alpha[in] Katz 中心性衰减因子。此值应小于此图最大特征值的倒数。

  • beta[in] 在每次迭代中添加到每个顶点新的 Katz Centrality 分数的常量值。仅当 betas 为 NULL 时相关。

  • epsilon[in] 用于检查收敛性的误差容忍度。如果连续两次迭代的 Katz Centrality 值差异总和小于图中顶点数乘以 epsilon,则假定收敛。(L1-范数)

  • max_iterations[in] Katz Centrality 的最大迭代次数。

  • do_expensive_check[in] 一个标志,用于对输入参数进行昂贵的检查(如果设置为 true)。

  • result[out] 指向 katz 中心性结果的不透明指针

  • error[out] 指向存储任何错误详细信息的错误对象的指针。如果错误代码不是 CUGRAPH_SUCCESS,将填充此对象。

返回:

错误代码

介数中心性#

cugraph_error_code_t cugraph_betweenness_centrality(const cugraph_resource_handle_t *handle, cugraph_graph_t *graph, const cugraph_type_erased_device_array_view_t *vertex_list, bool_t normalized, bool_t include_endpoints, bool_t do_expensive_check, cugraph_centrality_result_t **result, cugraph_error_t **error)#

计算介数中心性。

通过将 vertex_list 指定为 NULL,可以精确计算介数。这将通过从每个源顶点进行遍历来计算介数中心性。

通过指定应作为遍历种子的顶点列表,可以计算近似介数。请注意,函数 cugraph_select_random_vertices 可用于创建种子列表。

参数:
  • handle[in] 访问资源的句柄

  • graph[in] 指向图的指针

  • vertex_list[in] 可选地指定一个设备数组,其中包含要用作介数中心性近似种子的顶点列表。

  • normalized[in] 归一化

  • include_endpoints[in] 传统的介数中心性公式在考虑顶点是否在最短路径上时不包括端点。将其设置为 true 将把路径的端点视为路径的一部分。

  • do_expensive_check[in] 一个标志,用于对输入参数进行昂贵的检查(如果设置为 true)。

  • result[out] 指向介数中心性结果的不透明指针

  • error[out] 指向存储任何错误详细信息的错误对象的指针。如果错误代码不是 CUGRAPH_SUCCESS,将填充此对象。

返回:

错误代码

边介数中心性#

cugraph_error_code_t cugraph_edge_betweenness_centrality(const cugraph_resource_handle_t *handle, cugraph_graph_t *graph, const cugraph_type_erased_device_array_view_t *vertex_list, bool_t normalized, bool_t do_expensive_check, cugraph_edge_centrality_result_t **result, cugraph_error_t **error)#

计算边介数中心性。

通过将 vertex_list 指定为 NULL,可以精确计算边介数。这将通过从每个顶点进行遍历并计算边在最短路径上出现的频率来计算介数中心性。

通过指定应作为遍历种子的顶点列表,可以计算近似介数。请注意,函数 cugraph_select_random_vertices 可用于创建种子列表。

参数:
  • handle[in] 访问资源的句柄

  • graph[in] 指向图的指针

  • vertex_list[in] 可选地指定一个设备数组,其中包含要用作介数中心性近似种子的顶点列表。

  • normalized[in] 归一化

  • do_expensive_check[in] 一个标志,用于对输入参数进行昂贵的检查(如果设置为 true)。

  • result[out] 指向边介数中心性结果的不透明指针

  • error[out] 指向存储任何错误详细信息的错误对象的指针。如果错误代码不是 CUGRAPH_SUCCESS,将填充此对象。

返回:

错误代码

HITS Centrality#

cugraph_error_code_t cugraph_hits(const cugraph_resource_handle_t *handle, cugraph_graph_t *graph, double epsilon, size_t max_iterations, const cugraph_type_erased_device_array_view_t *initial_hubs_guess_vertices, const cugraph_type_erased_device_array_view_t *initial_hubs_guess_values, bool_t normalize, bool_t do_expensive_check, cugraph_hits_result_t **result, cugraph_error_t **error)#

计算 hits。

参数:
  • handle[in] 访问资源的句柄

  • graph[in] 指向图的指针

  • epsilon[in] 用于检查收敛性的误差容忍度。如果连续两次迭代的 Hits 值差异总和小于图中顶点数乘以 epsilon,则假定收敛。

  • max_iterations[in] Hits 的最大迭代次数。

  • initial_hubs_guess_vertices[in] 指向可选的类型擦除设备数组的指针,该数组包含初始 hubs 猜测的顶点 ID。如果设置为 NULL,则没有初始猜测。

  • initial_hubs_guess_values[in] 指向可选的类型擦除设备数组的指针,该数组包含初始 hubs 猜测的值。如果设置为 NULL,则没有初始猜测。请注意,必须同时指定 initial_hubs_guess_verticesinitial_hubs_guess_values(或者它们都必须是 NULL)。否则将被视为错误。

  • normalize[in] 一个标志,用于归一化结果(如果设置为 true)。

  • do_expensive_check[in] 一个标志,用于对输入参数进行昂贵的检查(如果设置为 true)。

  • result[out] 指向 hits 结果的不透明指针

  • error[out] 指向存储任何错误详细信息的错误对象的指针。如果错误代码不是 CUGRAPH_SUCCESS,将填充此对象。

返回:

错误代码

中心性辅助函数#

cugraph_type_erased_device_array_view_t *cugraph_centrality_result_get_vertices(cugraph_centrality_result_t *result)#

从中心性结果中获取顶点 ID。

参数:

result[in] 中心性算法的结果

返回:

类型擦除的顶点 ID 数组

cugraph_type_erased_device_array_view_t *cugraph_centrality_result_get_values(cugraph_centrality_result_t *result)#

从中心性算法结果中获取中心性值。

参数:

result[in] 中心性算法的结果

返回:

中心性值的类型擦除数组视图

size_t cugraph_centrality_result_get_num_iterations(cugraph_centrality_result_t *result)#

从算法元数据中获取执行的迭代次数。

参数:

result[in] 中心性算法的结果

返回:

迭代次数

bool_t cugraph_centrality_result_converged(cugraph_centrality_result_t *result)#

如果中心性算法收敛,则返回 true。

参数:

result[in] 中心性算法的结果

返回:

如果中心性算法收敛,则返回 true;否则返回 false。

void cugraph_centrality_result_free(cugraph_centrality_result_t *result)#

释放中心性结果。

参数:

result[in] 中心性算法的结果

cugraph_type_erased_device_array_view_t *cugraph_edge_centrality_result_get_src_vertices(cugraph_edge_centrality_result_t *result)#

从边中心性结果中获取源顶点 ID。

参数:

result[in] 边中心性算法的结果

返回:

类型擦除的源顶点 ID 数组

cugraph_type_erased_device_array_view_t *cugraph_edge_centrality_result_get_dst_vertices(cugraph_edge_centrality_result_t *result)#

从边中心性结果中获取目标顶点 ID。

参数:

result[in] 边中心性算法的结果

返回:

类型擦除的目标顶点 ID 数组

cugraph_type_erased_device_array_view_t *cugraph_edge_centrality_result_get_edge_ids(cugraph_edge_centrality_result_t *result)#

从边中心性结果中获取边 ID。

参数:

result[in] 边中心性算法的结果

返回:

类型擦除的边 ID 数组

cugraph_type_erased_device_array_view_t *cugraph_edge_centrality_result_get_values(cugraph_edge_centrality_result_t *result)#

从边中心性算法结果中获取中心性值。

参数:

result[in] 边中心性算法的结果

返回:

中心性值的类型擦除数组视图

void cugraph_edge_centrality_result_free(cugraph_edge_centrality_result_t *result)#

释放中心性结果。

参数:

result[in] 中心性算法的结果

cugraph_type_erased_device_array_view_t *cugraph_hits_result_get_vertices(cugraph_hits_result_t *result)#

从 hits 结果中获取顶点 ID。

参数:

result[in] hits 结果

返回:

类型擦除的顶点 ID 数组

cugraph_type_erased_device_array_view_t *cugraph_hits_result_get_hubs(cugraph_hits_result_t *result)#

从 hits 结果中获取 hubs 值。

参数:

result[in] hits 结果

返回:

类型擦除的 hubs 值数组

cugraph_type_erased_device_array_view_t *cugraph_hits_result_get_authorities(cugraph_hits_result_t *result)#

从 hits 结果中获取 authorities 值。

参数:

result[in] hits 结果

返回:

类型擦除的 authorities 值数组

double cugraph_hits_result_get_hub_score_differences(cugraph_hits_result_t *result)#

获取最后两次迭代之间的分数差异。

参数:

result[in] hits 结果

返回:

分数差异

size_t cugraph_hits_result_get_number_of_iterations(cugraph_hits_result_t *result)#

获取实际迭代次数。

参数:

result[in] hits 结果

返回:

实际迭代次数

void cugraph_hits_result_free(cugraph_hits_result_t *result)#

释放 hits 结果。

参数:

result[in] hits 结果