号码划分特殊情况的NP硬度


12

考虑以下问题,

  • 给定一组正数{ 一个1... 一个Ñ }其中ķ 3是一个常数,我们要分区的集成 大小的子集ķ,使得每个子集的总和的乘积被最大化。n=km{a1,,an}k3mk

除了我们对每个分区中的数字数量有限制外,该问题与众所周知的数分区非常相似。对于k = 2,可以提出以下简单多项式算法,mk=2

  • 假定数字进行排序,即, 。然后,对于分配一个 的子集,为> ,将其分配给所述子集Ñ - + 1a1<a2<...<animaiii>mni+1

不难看出该算法为何起作用。只需选择两个任意垃圾箱即可。数字上的任何交换都不会增加产品的数量。

但是对于较大的,我想知道问题是否可以在多项式时间内解决?如果有人能证明它是np硬度,我也将很感激。k

注意:我在处理无线网络中的调度问题时遇到了问题。我找到了一种很好的启发式算法来解决该问题。但是过了一会儿,我认为这个问题可能在理论上很有趣。


2
k=2

2
@Mohsen,谢谢。我建议您在问题中加入有关动机,背景以及您对k = 2情况的了解。这可能会使其他人更感兴趣。
卡夫

4
我的直觉是,当总和相等或最大成对差最小时,每个子集的和的乘积最大。在此假设下,我们很容易从NP完全的3分区中还原(对于k = 3)。
Mohammad Al-Turkistany

3
(我删除了几个小时前发布的两个评论,以便更准确地重写它们。)正如土耳其人所建议的那样,k分区问题可简化为该问题,因此对于每个常数k≥3,此问题都是NP-难的。唯一相关的属性是,当且仅当可以将数字划分为m个集合且每个集合的大小均等于k时,这些和的乘积的最大值才至少为(∑a_i / k)^ m。乘积并不总是使分区的最大成对差异最小化而最大化,但这无关紧要,只要我们考虑确切的问题即可。(更多)
伊藤刚

3
(续)如果您要求输入是集合而不是多集,则这种减少仍然有效,因为即使有集合,k分区问题仍然是NP完全的,但是要小心,因为NP完全性的标准证明只有在允许输入多次包含相同整数的情况下,三分区问题的结果才有效。请参阅具有不同数字的3分区问题的计算复杂性(警告:自我推广)。
伊藤刚(Tsuyoshi Ito)

Answers:


11

(这是我对此问题的评论的更详细的版本。)

作为turkistany在关于这个问题的意见建议,这个问题是NP难每隔一定ķ ≥3从减少ķ -partition问题。约简完全不会改变实例:仅需注意,当且仅当数可以被划分为m个集合,每个集合的大小为k,且总和为,该和的乘积的最大值至少为(∑ a i / km。都平等。

请注意,通常将k分区问题的输入定义为km,该km可能并不完全相同,这在其NP完备性的标准证明中是必不可少的(例如Garey和Johnson中的一个)。因此,上述简化仅证明了当前问题的轻微概括的NP硬度,其中允许输入为多集而不是集。但是,可以填补这一空白,因为即使要求输入中的数字都是唯一的,k分区问题仍然是NP完全的。有关k = 3 的情况,请参见[HWW08] (另请参见Serge Gaspers的答案(另一个问题),可以很容易地将其修改为较大的k值。

此外,即使输入中的数字以一元形式给出,此处说明的所有内容仍保持NP完整/ NP硬性。

[HWW08] Heather Hulett,Todd G. Will,Gerhard J. Woeginger。度序列的多图实现:最大化容易,最小化困难。 操作研究快报,36(5):594-596,2008年九月 http://dx.doi.org/10.1016/j.orl.2008.05.004

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.