社区#

三角形计数#

cugraph_error_code_t cugraph_triangle_count(const cugraph_resource_handle_t *handle, cugraph_graph_t *graph, const cugraph_type_erased_device_array_view_t *start, bool_t do_expensive_check, cugraph_triangle_count_result_t **result, cugraph_error_t **error)#

三角形计数。

Parameters:
  • handle[in] 用于访问资源的句柄

  • graph[in] 指向图的指针。注意:如果存储需要转置,图可能会被修改

  • start[in] 我们想要计算三角形的顶点设备数组。如果为NULL,则处理图中的所有顶点。

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

  • result[out] 从 triangle_count 调用中输出的结果

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

Returns:

错误代码

Louvain#

cugraph_error_code_t cugraph_louvain(const cugraph_resource_handle_t *handle, cugraph_graph_t *graph, size_t max_level, double threshold, double resolution, bool_t do_expensive_check, cugraph_hierarchical_clustering_result_t **result, cugraph_error_t **error)#

计算Louvain。

Parameters:
  • handle[in] 用于访问资源的句柄

  • graph[in] 指向图的指针。注意:如果存储需要转置,图可能会被修改

  • max_level[in] 层次结构中的最大级别

  • threshold[in] 阈值参数,定义层次结构中每个级别的收敛性

  • resolution[in] 模块化公式中的分辨率参数(gamma)。这会影响社区的大小。较高的分辨率会导致更多的小社区,较低的分辨率会导致较少的大社区。

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

  • result[out] Louvain调用的输出结果

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

Returns:

错误代码

莱顿#

cugraph_error_code_t cugraph_leiden(const cugraph_resource_handle_t *handle, cugraph_rng_state_t *rng_state, cugraph_graph_t *graph, size_t max_level, double resolution, double theta, bool_t do_expensive_check, cugraph_hierarchical_clustering_result_t **result, cugraph_error_t **error)#

计算莱顿。

Parameters:
  • handle[in] 用于访问资源的句柄

  • graph[in] 指向图的指针。注意:如果存储需要转置,图可能会被修改

  • rng_state[inout] 随机数生成器的状态,每次调用时更新

  • max_level[in] 层次结构中的最大级别

  • resolution[in] 模块化公式中的分辨率参数(gamma)。这会影响社区的大小。较高的分辨率会导致更多的小社区,较低的分辨率会导致较少的大社区。

  • theta[in] (可选) 用于在Leiden细化阶段缩放模块化增益的参数值。它用于计算加入随机Leiden社区的概率。在Leiden算法中称为theta。

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

  • result[out] Leiden调用的输出

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

Returns:

错误代码

心电图#

cugraph_error_code_t cugraph_ecg(const cugraph_resource_handle_t *handle, cugraph_rng_state_t *rng_state, cugraph_graph_t *graph, double min_weight, size_t ensemble_size, size_t max_level, double threshold, double resolution, bool_t do_expensive_check, cugraph_hierarchical_clustering_result_t **result, cugraph_error_t **error)#

计算心电图聚类。

Parameters:
  • handle[in] 用于访问资源的句柄

  • rng_state[inout] 随机数生成器的状态,每次调用时更新

  • graph[in] 指向图的指针。注意:如果存储需要转置,图可能会被修改

  • min_weight[in] 最终图中的最小边权重

  • ensemble_size[in] 运行的Louvain迭代次数

  • max_level[in] 最终Louvain层次结构中的最大层级

  • threshold[in] 阈值参数,定义了在最终Louvain算法的每个层次上的收敛条件

  • resolution[in] 模块化公式中的分辨率参数(gamma)。这会影响社区的大小。较高的分辨率会导致更多的小社区,较低的分辨率会导致较少的大社区。

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

  • result[out] Louvain调用的输出结果

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

Returns:

错误代码

提取Egonet#

cugraph_error_code_t cugraph_extract_ego(const cugraph_resource_handle_t *handle, cugraph_graph_t *graph, const cugraph_type_erased_device_array_view_t *source_vertices, size_t radius, bool_t do_expensive_check, cugraph_induced_subgraph_result_t **result, cugraph_error_t **error)#

提取自我图。

Parameters:
  • handle[in] 用于访问资源的句柄

  • graph[in] 指向图的指针。注意:如果存储需要转置,图可能会被修改

  • source_vertices[in] 设备数组,包含我们想要提取egonets的顶点。

  • radius[in] 从每个源顶点出发的跳数

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

  • result[out] 包含提取子图的不透明对象

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

Returns:

错误代码

平衡切割#

cugraph_error_code_t cugraph_balanced_cut_clustering(const cugraph_resource_handle_t *handle, cugraph_graph_t *graph, size_t n_clusters, size_t n_eigenvectors, double evs_tolerance, int evs_max_iterations, double k_means_tolerance, int k_means_max_iterations, bool_t do_expensive_check, cugraph_clustering_result_t **result, cugraph_error_t **error)#

平衡切割聚类。

注意:目前这封装了传统的平衡切割聚类实现,并且仅在单GPU实现中可用。

Parameters:
  • handle[in] 用于访问资源的句柄

  • graph[in] 指向图的指针。注意:如果存储需要转置,图可能会被修改

  • n_clusters[in] 期望的聚类数量

  • n_eigenvectors[in] 使用的特征向量数量

  • evs_tolerance[in] 用于特征值求解器的容差

  • evs_max_iterations[in] 特征值求解器的最大迭代次数

  • k_means_tolerance[in] k-means求解器使用的容差

  • k_means_max_iterations[in] k-means 求解器的最大迭代次数

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

  • result[out] 包含聚类结果的不透明对象

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

Returns:

错误代码

谱聚类 - 模块度最大化#

cugraph_error_code_t cugraph_spectral_modularity_maximization(const cugraph_resource_handle_t *handle, cugraph_graph_t *graph, size_t n_clusters, size_t n_eigenvectors, double evs_tolerance, int evs_max_iterations, double k_means_tolerance, int k_means_max_iterations, bool_t do_expensive_check, cugraph_clustering_result_t **result, cugraph_error_t **error)#

谱聚类。

注意:目前这封装了传统的谱聚类实现,并且仅在单GPU实现中可用。

Parameters:
  • handle[in] 用于访问资源的句柄

  • graph[in] 指向图的指针。注意:如果存储需要转置,图可能会被修改

  • n_clusters[in] 期望的聚类数量

  • n_eigenvectors[in] 使用的特征向量数量

  • evs_tolerance[in] 用于特征值求解器的容差

  • evs_max_iterations[in] 特征值求解器的最大迭代次数

  • k_means_tolerance[in] k-means求解器使用的容差

  • k_means_max_iterations[in] k-means求解器的最大迭代次数

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

  • result[out] 包含聚类结果的不透明对象

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

Returns:

错误代码

cugraph_error_code_t cugraph_analyze_clustering_modularity(const cugraph_resource_handle_t *handle, cugraph_graph_t *graph, size_t n_clusters, const cugraph_type_erased_device_array_view_t *vertices, const cugraph_type_erased_device_array_view_t *clusters, double *score, cugraph_error_t **error)#

计算指定聚类的模块性。

注意:目前这封装了传统的谱模块化实现,并且仅在单GPU实现中可用。

Parameters:
  • handle[in] 用于访问资源的句柄

  • graph[in] 指向图的指针。注意:如果存储需要转置,图可能会被修改

  • n_clusters[in] 期望的聚类数量

  • vertices[in] 聚类结果中的顶点ID

  • clusters[in] 聚类结果中的聚类ID

  • score[out] 此聚类的模块度分数

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

Returns:

错误代码

谱聚类 - 边缘切割#

cugraph_error_code_t cugraph_analyze_clustering_edge_cut(const cugraph_resource_handle_t *handle, cugraph_graph_t *graph, size_t n_clusters, const cugraph_type_erased_device_array_view_t *vertices, const cugraph_type_erased_device_array_view_t *clusters, double *score, cugraph_error_t **error)#

计算指定聚类的边割。

注意:目前这封装了旧的频谱边缘切割实现,并且仅在单GPU实现中可用。

Parameters:
  • handle[in] 用于访问资源的句柄

  • graph[in] 指向图的指针。注意:如果存储需要转置,图可能会被修改

  • n_clusters[in] 期望的聚类数量

  • vertices[in] 聚类结果中的顶点ID

  • clusters[in] 聚类结果中的聚类ID

  • score[out] 此聚类的边割分数

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

Returns:

错误代码

cugraph_error_code_t cugraph_analyze_clustering_ratio_cut(const cugraph_resource_handle_t *handle, cugraph_graph_t *graph, size_t n_clusters, const cugraph_type_erased_device_array_view_t *vertices, const cugraph_type_erased_device_array_view_t *clusters, double *score, cugraph_error_t **error)#

计算指定聚类的比率切割。

注意:目前这封装了旧的光谱比率切割实现,并且仅在单GPU实现中可用。

Parameters:
  • handle[in] 用于访问资源的句柄

  • graph[in] 指向图的指针。注意:如果存储需要转置,图可能会被修改

  • n_clusters[in] 期望的聚类数量

  • vertices[in] 聚类结果中的顶点ID

  • clusters[in] 聚类结果中的聚类ID

  • score[out] 此聚类的比率切割分数

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

Returns:

错误代码

社区支持功能#

cugraph_type_erased_device_array_view_t *cugraph_triangle_count_result_get_vertices(cugraph_triangle_count_result_t *result)#

获取三角形计数顶点。

cugraph_type_erased_device_array_view_t *cugraph_triangle_count_result_get_counts(cugraph_triangle_count_result_t *result)#

获取三角形计数。

void cugraph_triangle_count_result_free(cugraph_triangle_count_result_t *result)#

释放一个三角形计数结果。

Parameters:

result[in] 采样算法的结果

cugraph_type_erased_device_array_view_t *cugraph_hierarchical_clustering_result_get_vertices(cugraph_hierarchical_clustering_result_t *result)#

获取层次聚类顶点。

cugraph_type_erased_device_array_view_t *cugraph_hierarchical_clustering_result_get_clusters(cugraph_hierarchical_clustering_result_t *result)#

获取层次聚类集群。

double cugraph_hierarchical_clustering_result_get_modularity(cugraph_hierarchical_clustering_result_t *result)#

获取模块化。

void cugraph_hierarchical_clustering_result_free(cugraph_hierarchical_clustering_result_t *result)#

释放一个层次聚类结果。

Parameters:

result[in] 采样算法的结果