python
from scipy.optimize import linear_sum_assignment
函数输入输出解析:
- 主要 Parameters:
- cost_matrix :[array] → \to → 代价矩阵
- 返回 Returns:
- row_ind, col_ind :[array] → \to → 行列 idx 序列
代码参考:
python3
import numpy as np
from scipy.optimize import linear_sum_assignment
## 构造输入:cost_matrix
cost_matrix = np.array([[4, 1, 3], [2, 0, 5], [3, 2, 2]])
## 获取输出:row_ind, col_ind
row_ind, col_ind = linear_sum_assignment(cost)
print(row_ind) # array([0, 1, 2]): 0 ~ 行列维度较小值
print(col_ind) # array([1, 0, 2]): 优化得到的匹配的列 idx
# 基于 row_ind, col_ind 可获取最优分配对应的代价
sum_of_cost = cost[row_ind, col_ind].sum()
print(sum_of_cost) # 5