线性#
- template<typename vertex_t, typename edge_t, typename weight_t>
weight_t hungarian(raft::handle_t const &handle, legacy::GraphCOOView<vertex_t, edge_t, weight_t> const &graph, vertex_t num_workers, vertex_t const *workers, vertex_t *assignments)#在加权二分图上计算匈牙利算法。
匈牙利算法计算“作业”到“工人”的分配。此函数接受一个加权图和一个标识“工人”的顶点列表。加权图中的权重标识了将特定作业分配给工人的成本。该算法计算最小成本分配,并返回成本以及标识分配的向量。
- 抛出:
cugraph::logic_error – 发生错误时。
- 模板参数:
vertex_t – 顶点标识符的类型。支持的值:int (有符号, 32位)
edge_t – 边标识符的类型。支持的值:int (有符号, 32位)
weight_t – 边权重的类型。支持的值:float 或 double。
- 参数:
handle – [in] 库句柄 (RAFT)。如果在句柄中设置了通信器,
graph – [in] cuGRAPH COO 图
num_workers – [in] 工人集合中的顶点数量
workers – [in] 指向工人顶点 ID 数组的设备指针
assignments – [out] 指向将写入分配结果的数组的设备指针。该数组应与 num_workers 等长,并标识分配给该工人的顶点 ID(作业)
- template<typename vertex_t, typename edge_t, typename weight_t>
weight_t hungarian(raft::handle_t const &handle, legacy::GraphCOOView<vertex_t, edge_t, weight_t> const &graph, vertex_t num_workers, vertex_t const *workers, vertex_t *assignments, weight_t epsilon)#在加权二分图上计算匈牙利算法。
匈牙利算法计算“作业”到“工人”的分配。此函数接受一个加权图和一个标识“工人”的顶点列表。加权图中的权重标识了将特定作业分配给工人的成本。该算法计算最小成本分配,并返回成本以及标识分配的向量。
- 抛出:
cugraph::logic_error – 发生错误时。
- 模板参数:
vertex_t – 顶点标识符的类型。支持的值:int (有符号, 32位)
edge_t – 边标识符的类型。支持的值:int (有符号, 32位)
weight_t – 边权重的类型。支持的值:float 或 double。
- 参数:
handle – [in] 库句柄 (RAFT)。如果在句柄中设置了通信器,
graph – [in] cuGRAPH COO 图
num_workers – [in] 工人集合中的顶点数量
workers – [in] 指向工人顶点 ID 数组的设备指针
assignments – [out] 指向将写入分配结果的数组的设备指针。该数组应与 num_workers 等长,并标识分配给该工人的顶点 ID(作业)
epsilon – [in] 定义将权重减少到零时的比较精度的参数。
- template<typename vertex_t, typename weight_t>
weight_t hungarian(raft::handle_t const &handle, weight_t const *costs, vertex_t num_rows, vertex_t num_columns, vertex_t *assignments)#在加权二分图上计算匈牙利算法。
匈牙利算法计算“作业”到“工人”的分配。此函数接受一个加权图和一个标识“工人”的顶点列表。加权图中的权重标识了将特定作业分配给工人的成本。该算法计算最小成本分配,并返回成本以及标识分配的向量。
- 抛出:
cugraph::logic_error – 发生错误时。
- 模板参数:
vertex_t – 顶点标识符的类型。支持的值:int (有符号, 32位)
weight_t – 边权重的类型。支持的值:float 或 double。
- 参数:
handle – [in] 库句柄 (RAFT)。如果在句柄中设置了通信器,
costs – [in] 指向成本数组的指针,按行主序存储
num_rows – [in] 密集矩阵中的行数
num_cols – [in] 密集矩阵中的列数
assignments – [out] 指向将写入分配结果的数组的设备指针。该数组应与 num_cols 等长,并标识分配给该工人的顶点 ID(作业)
- template<typename vertex_t, typename weight_t>
weight_t hungarian(raft::handle_t const &handle, weight_t const *costs, vertex_t num_rows, vertex_t num_columns, vertex_t *assignments, weight_t epsilon)#在加权二分图上计算匈牙利算法。
匈牙利算法计算“作业”到“工人”的分配。此函数接受一个加权图和一个标识“工人”的顶点列表。加权图中的权重标识了将特定作业分配给工人的成本。该算法计算最小成本分配,并返回成本以及标识分配的向量。
- 抛出:
cugraph::logic_error – 发生错误时。
- 模板参数:
vertex_t – 顶点标识符的类型。支持的值:int (有符号, 32位)
weight_t – 边权重的类型。支持的值:float 或 double。
- 参数:
handle – [in] 库句柄 (RAFT)。如果在句柄中设置了通信器,
costs – [in] 指向成本数组的指针,按行主序存储
num_rows – [in] 密集矩阵中的行数
num_cols – [in] 密集矩阵中的列数
assignments – [out] 指向将写入分配结果的数组的设备指针。该数组应与 num_cols 等长,并标识分配给该工人的顶点 ID(作业)
epsilon – [in] 定义将权重减少到零时的比较精度的参数。