mindspore.scipy.optimize.linear_sum_assignment ============================================== .. image:: https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/website-images/master/resource/_static/logo_source.svg :target: https://gitee.com/mindspore/mindspore/blob/master/docs/api/api_python/scipy/mindspore.scipy.optimize.linear_sum_assignment.rst :alt: 查看源文件 .. py:function:: mindspore.scipy.optimize.linear_sum_assignment(cost_matrix, maximize, dimension_limit=Tensor(sys.maxsize)) 解决线性和分配问题(指派问题)。 指派问题如下表示: .. math:: min\sum_{i}^{} \sum_{j}^{} C_{i,j} X_{i,j} 其中, :math:`C` 表示代价矩阵, :math:`X_{i,j} = 1` 表示列 :math:`j` 被指派给了行 :math:`i` 。 参数: - **cost_matrix** (Tensor) - 二维代价矩阵。其shape为 :math:`(M, N)` 。 - **maximize** (bool) - 为True则计算最大权值匹配,否则计算最小权值匹配。 - **dimension_limit** (Tensor,可选) - 用来限制 ``cost_matrix`` 第二维的实际大小。默认值: ``Tensor(sys.maxsize)`` ,表示没有限制。类型为零维int64类型Tensor。 返回: 由 `row_idx` 和 `col_idx` 组成的tuple。 - **row_idx** (Tensor) - 指派问题的行索引。如果指定了 `dimension_limit` ,用-1在结尾补齐。其shape为 :math:`(N, )` , 其中 :math:`N` 为 `cost_matrix` 维度较小值。 - **col_idx** (Tensor) - 指派问题的列索引。如果指定了 `dimension_limit` ,用-1在结尾补齐。其shape为 :math:`(N, )` , 其中 :math:`N` 为 `cost_matrix` 维度较小值。 异常: - **TypeError** - 如果 `cost_matrix` 数据类型不是float16、float32、float64、int8、int16、int32、int64、uint8、uint16、uint32、uint64、bool之一。 - **TypeError** - 如果 `maximize` 的类型不是bool。 - **TypeError** - 如果 `dimension_limit` 的数据类型不是int64。 - **ValueError** - 如果 `cost_matrix` 维度不为2。