【问题标题】:Is a many to one assignment problem NP-hard?多对一分配问题是NP难的吗?
【发布时间】:2021-06-08 11:09:30
【问题描述】:

如果有人问过类似的问题,我深表歉意。我正在解决与 N 个任务和 M 个人员的多对一分配问题。每个人可以获得多个任务,而每个任务只能分配给一个人。如果将任务 i 分配给人 j,我们可以获得利润 Pij

我知道匈牙利算法可以在多项式时间内以最佳方式解决一对一的分配问题。我认为这个问题比一对一的分配问题更难,也是广义分配问题(GAP)的一个特例,我们对一个人可以分配的任务数量没有限制。 (当然,我们可以对一个人的任务数量进行限制,但是这种情况下每个任务的权重是相同的,所以还是GAP的一个特例。)

我相信我们可以通过应用启发式方法来获得次优解决方案,无论是否限制分配给一个人的任务数量,但是有没有任何算法可以在多项式时间内解决这个问题?这个问题是 NP-hard 问题吗?

【问题讨论】:

  • 我在您的问题描述中没有看到任何会阻止您简单地将每个任务分配给提供最大利润的代理的任何内容。

标签: algorithm many-to-one


【解决方案1】:

由于任务规模不同,广义分配问题很困难。自然线性规划存在完整性差距。

这个问题没有这样的差距,实际上可以表述为最小成本流通问题的一个例子,可以在强多项式时间内解决。假设任务利润为正(不失一般性,通过向任务的所有潜在利润添加一个常数),建立一个网络,每个任务都有一个节点,每个人都有一个节点,还有一个源/汇。从源/汇到每个任务都有一条容量弧线,成本为 0。从每个任务 i 到每个人 j 有一条无限容量弧线,成本为 -Pij。从每个人到源/汇都有一条弧线,容量等于该人可以完成的任务数量,成本为 0。

要获得解决方案,请将任务朗读给人员弧线。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-04-20
    • 2011-04-18
    • 2011-07-18
    • 2011-10-22
    • 2014-12-08
    • 2016-09-29
    • 2011-11-14
    相关资源
    最近更新 更多