匈牙利方法是为解决所谓“分配问题”,“指派问题”等数学问题的方法。这类问题的一般性叙述为:
有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。)