解决分配问题的匈牙利算法

匈牙利方法是为解决所谓“分配问题”,“指派问题”等数学问题的方法。这类问题的一般性叙述为:

 

  有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。)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值