解决分配问题的匈牙利算法
2013-04-07 15:29
267 查看
匈牙利方法是为解决所谓“分配问题”,“指派问题”等数学问题的方法。这类问题的一般性叙述为:
有n个问题要分配给n个人去完成。第i个人完成第j项任务的成本为Cij。问:如何分配任务,能使总成本最小?
引入变量Xij,Xij的取值表示:
Xij=1,指派第个人去完成第j项任务;
Xij=0,不指派第个人去完成第j项任务。
假如五个人完成五项任务,“成本矩阵”为:
12 7 9 7 9
8 9 6 6 6
7 17 12 14 9
15 14 6 6 10
4 10 7 10 9
解题过程:
每行减去其最小成本(即每行最小数):
(注意黑体)
5 0 2 0 2
2 3 0 0 0
0 10 5 7 2
9 8 0 0 4
0 6 3 6 5
最后一行与第三行的0重在第一列。把第三行,第五行减去这两行最小数2,第一列加上2。得:
7 0 2 0 2
4 3 0 0 0
0 8 3 5 0
11 8 0 0 4
0 4 1 4 3
即:X12=1,X23=1,X35=1,X44=1,X51=1。(其余Xij=0。)
有n个问题要分配给n个人去完成。第i个人完成第j项任务的成本为Cij。问:如何分配任务,能使总成本最小?
应用举例
引入变量Xij,Xij的取值表示:Xij=1,指派第个人去完成第j项任务;
Xij=0,不指派第个人去完成第j项任务。
假如五个人完成五项任务,“成本矩阵”为:
12 7 9 7 9
8 9 6 6 6
7 17 12 14 9
15 14 6 6 10
4 10 7 10 9
解题过程:
每行减去其最小成本(即每行最小数):
(注意黑体)
5 0 2 0 2
2 3 0 0 0
0 10 5 7 2
9 8 0 0 4
0 6 3 6 5
最后一行与第三行的0重在第一列。把第三行,第五行减去这两行最小数2,第一列加上2。得:
7 0 2 0 2
4 3 0 0 0
0 8 3 5 0
11 8 0 0 4
0 4 1 4 3
即:X12=1,X23=1,X35=1,X44=1,X51=1。(其余Xij=0。)
相关文章推荐
- 解决分配问题的匈牙利算法
- Hungarian method (匈牙利算法)----解决指派问题(转)
- 利用匈牙利算法&Hopcroft-Karp算法解决二分图中的最大二分匹配问题 例poj 1469 COURSES
- 匈牙利算法---解决最大匹配问题
- 【算法题】任务分配问题---匈牙利算法
- 任务分配问题-匈牙利算法
- 匈牙利算法解决指派问题清晰流程
- 任务分配问题---匈牙利算法
- 匈牙利算法—解决二分图最大匹配问题
- 匈牙利算法---解决最大匹配问题
- 分配问题与匈牙利算法
- 匈牙利算法解决指派问题
- 转载: 任务分配问题---匈牙利算法
- 利用匈牙利算法&Hopcroft-Karp算法解决二分图中的最大二分匹配问题
- 匈牙利算法求解任务分配问题
- java编写匈牙利算法解决最优指派问题
- HD-2063 匈牙利算法解决二分图问题
- 任务分配问题(匈牙利算法)
- 贪心算法解决数列作为顶点度数构造无向图问题
- 分析邹健大哥的算法,终于问题解决了!!!(关于统计两日期间工作日)