分配问题
线性和分配问题示例
考虑为游泳混合泳接力队选拔学生的问题。现有一个表格,显示了五名学生使用每种泳姿的时间:
学生 | 仰泳 | 蛙泳 | 蝶泳 | 自由泳 |
---|---|---|---|---|
A | 43.5 | 47.1 | 48.4 | 38.2 |
B | 45.5 | 42.1 | 49.6 | 36.8 |
C | 43.4 | 39.1 | 42.1 | 43.2 |
D | 46.5 | 44.1 | 44.5 | 41.2 |
E | 46.3 | 47.8 | 50.4 | 37.2 |
我们需要为四种泳姿中的每一种选择一名学生,以使总接力时间最小。这是一个典型的线性和分配问题。我们可以使用Linear_sum_assignment函数来解决它。
线性和分配问题是最著名的组合优化问题之一。给定一个“成本矩阵” C C C,按要求选择:
- 每行选择一个元素
- 无需从任何列中选择多个元素
- 使得所选元素的总和最小化
换句话说,我们需要将每一行分配给一列,以使相应条目的总和最小化。
形式上,令 X X X为布尔矩阵,其中 X [ i , j ] = 1 X[i,j]=1 X[i,