【运筹学】指派问题、匈牙利法总结 ( 指派问题 | 克尼格定理 | 匈牙利法 | 行列出现 0 元素 | 试指派 | 打 √ | 直线覆盖 ) ★★★

文章目录

  • 一、克尼格定理
  • 二、匈牙利法引入
  • 三、指派问题求解步骤
  • 四、匈牙利法示例 1
    • 1、第一步 : 使行列出现 0 0 0 元素示例
    • 2、第二步 : 试指派操作示例 ( 方法一 :克尼格定理 )
    • 3、打 √ ( 方法二 : 直线覆盖 )
    • 4、直线覆盖 ( 方法二 : 直线覆盖 )
  • 五、匈牙利法示例 2
    • 1、第一步 : 变换系数矩阵 ( 每行每列都出现 0 元素 )
    • 2、第二步 : 试指派 ( 找独立 0 元素 )
  • 六、匈牙利法示例 3
    • 1、使用匈牙利法求解下面的指派问题
    • 2、第一步 : 变换系数矩阵 ( 每行每列都出现 0 元素 )
    • 3、第二步 : 试指派 ( 找独立 0 元素 )
    • 4、第二步 : 试指派 ( 打 √ )
    • 5、第二步 : 试指派 ( 直线覆盖 )
    • 6、第二步 : 试指派 ( 第二轮 )

一、克尼格定理


匈牙利法 主要用于解决指派问题 , 其主要依据是 克尼格定理 ;

指派问题 参考 【运筹学】整数规划 ( 整数规划求解方法 | 指派问题 ) 博客 ;

克尼格定理 :

分配问题 效率矩阵 [ a i j ] [a_{ij}] [aij?] 中 ,

每一行元素 中加上或减去一个常数 u i u_i ui? ,

每一列元素 中加上或减去一个常数 v j v_j vj? ,

得到新的效率矩阵 [ b i j] [b_{ij}] [bij?] ,

两个效率矩阵 [ a i j] [a_{ij}] [aij?] [ b i j] [b_{ij}] [bij?] 分配问题的 最优解相同 ;

克尼格定理示例 : 指派问题 , 给 4 4 4 个人指派 4 4 4 个岗位 , 每个人在不同的岗位产生的利润不同 , 如何安排使得利润最高 ;

A A A B B B C C C D D D
85 85 85 92 92 92 73 73 73 90 90 90
95 95 95 87 87 87 78 78 78 95 95 95
82 82 82 83 83 83 79 79 79 90 90 90
86 86 86 90 90 90 80 80 80 88 88 88

给 甲 对应的行加上所有表格都加上 5 5 5 , 变为如下表格 ,

A A A B B B C C C D D D
90 90 90 97 97 97 78 78 78 95 95 95
95 95 95 87 87 87 78 78 78 95 95 95
82 82 82 83 83 83 79 79 79 90 90 90
86 86 86 90 90 90 80 80 80 88 88 88

甲 今天状态好 , 不管四个工作 , 哪个分配给 甲 , 其产生的利润都会增加 ;

最终计算出来的指派问题的最优解是不变的 ;

二、匈牙利法引入


给 甲乙丙丁 四人分配 A B C D ABCD ABCD 四项工作 , 每人做每项工作的耗时如下 , 如何指派问题使得耗时最小 ;

A A A B B B C C C D D D
6 6 6 7 7 7 11 11 来源:韩曙亮

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年2月8日
下一篇 2021年2月8日

相关推荐