gpt4 book ai didi

matrix - 使用匈牙利算法解决分配问题的次优解

转载 作者:行者123 更新时间:2023-12-04 02:38:50 27 4
gpt4 key购买 nike

要找到分配问题的最佳解决方案,很容易使用匈牙利算法。例如:

A |  3  4  2
B | 8 9 1
C | 7 9 5

在这上面使用匈牙利算法时,你会变成:

A |  0  0  1
B | 5 5 0
C | 0 1 0

这意味着 A 被分配到“作业”2,B 被分配到作业 3,C 被分配到作业 1。但是,我想找到第二好的解决方案,这意味着我想要成本严格大于最优解决方案成本的最佳解决方案。根据我的说法,我只需要在最后一个矩阵中找到总和最小的分配,而不是与最优矩阵相同。我可以通过在树中搜索(修剪)来做到这一点,但我担心复杂性(O(n!))。有什么我不知道的有效方法吗?

我在考虑搜索,首先对行进行排序,然后首先贪婪地选择最低成本,假设大部分最低成本将弥补最小总和 + 修剪。但是假设匈牙利算法可以产生一个有很多零的矩阵,复杂度又是可怕的......

最佳答案

您所描述的是K 最佳分配问题的一个特例——事实上,Katta G. Murty 在以下 1968 年的论文“An Algorithm for Ranking all the Assignments in Order of Increasing Cost.”中提出了这个问题的解决方案运筹学 16(3):682-687.

看起来实际上有合理数量的实现,至少在 Java 和 Matlab 中,可在网络上获得(参见例如 here。)

关于matrix - 使用匈牙利算法解决分配问题的次优解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20314996/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com