匈牙利算法解决指派问题清晰流程

匈牙利算法解决指派问题清晰流程

百度词条上,指派问题(Assignment problem)是这么定义的:在满足特定指派要求条件下,使指派方案总体效果最佳。如:有若干项工作需要分配给若干人(或部门)来完成;有若干项合同需要选择若干个投标者来承包:有若干班级需要安排在若干教室里上课等。


一、做减法(归约):

行归约:每行元素减去该行最小元素。

列归约:每行元素减去该行最小元素。

归约顺序无所谓,目的就是把所有的数尽可能化的很小,但最小的数不能为负数。

 匈牙利算法解决指派问题清晰流程_第1张图片

二、圈零划零

找到含零元素最少的行,对零元素打圈,划去打圈零元素所在行和列存在的零元素,重复这个步骤,直到矩阵中所有的零元素都被处理完。

匈牙利算法解决指派问题清晰流程_第2张图片

三、打勾划线

匈牙利算法解决指派问题清晰流程_第3张图片

匈牙利算法解决指派问题清晰流程_第4张图片

四、调整量的加减

匈牙利算法解决指派问题清晰流程_第5张图片

五、圈零画零,检查圈零元素数量

匈牙利算法解决指派问题清晰流程_第6张图片

如果仍然不是最优解,再重复上述步骤。


六、练习题

①     

如您有兴趣可以打开链接查看,相信也会和我一开始看一样,会有一些启发。

 数据来自于http://www.cnblogs.com/chenyg32/

匈牙利算法解决指派问题清晰流程_第7张图片

答案:

匈牙利算法解决指派问题清晰流程_第8张图片

以上内容如果在某些方面,欢迎各位与我交流,我一定及时纠正。

你可能感兴趣的:(匈牙利算法解决指派问题清晰流程)