Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 多对一指派问题是NP难问题吗?_Algorithm_Many To One - Fatal编程技术网

Algorithm 多对一指派问题是NP难问题吗?

Algorithm 多对一指派问题是NP难问题吗?,algorithm,many-to-one,Algorithm,Many To One,如果有人问过类似的问题,我深表歉意。我正在解决一个有N个任务和M个人的多对一分配问题。每个人可以获得多个任务,而每个任务只能分配给一个人。如果将任务i分配给人员j,我们可以获得利润Pij 我知道一对一的赋值可以通过匈牙利算法在多项式时间内得到最优解。我认为这个问题比一对一分配问题更难,也是广义分配问题(GAP)的一个特例,在GAP中,我们对一个人可以分配的任务数量没有限制。(当然,我们可以限制一个人的任务数量,但在这种情况下,每个任务的权重是相同的,因此这仍然是GAP的特例。) 我相信我们可以通

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

我知道一对一的赋值可以通过匈牙利算法在多项式时间内得到最优解。我认为这个问题比一对一分配问题更难,也是广义分配问题(GAP)的一个特例,在GAP中,我们对一个人可以分配的任务数量没有限制。(当然,我们可以限制一个人的任务数量,但在这种情况下,每个任务的权重是相同的,因此这仍然是GAP的特例。)


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

由于任务大小不同,广义指派问题很难解决。自然线性规划存在完整性缺口

这个问题并没有这样的差距,事实上可以表述为最小成本循环问题的一个例子,可以在强多项式时间内求解。假设任务利润为正(通过为任务的所有潜在利润添加一个常数,不会失去一般性),建立一个网络,每个任务有一个节点,每个人有一个节点,以及一个源/汇。从源/接收器到每个任务有一个容量弧,成本为0。从每个任务i到每个人j都有一个无限能力的弧,即成本−皮杰。从每个人到源/汇都有一个弧,其容量等于该人可以完成的任务数量,成本为0


要获得解决方案,请阅读带有flow的任务到人弧。

我在您的问题描述中没有看到任何东西会阻止您将每个任务简单地分配给利润最高的代理。