用最少的移动来装满垃圾箱难道难道不是NP?


33

n垃圾箱和m种球。在i个箱具有标签ai,j1jm,它的类型的滚珠的预期数量j

您从类型j的bj球开始。每个类型j的球的重量为w j,并希望将球放入箱中,使得箱i的重量为c i。保持先前条件成立的球的分布称为可行解。jjwjici

考虑一个可行的解决方案,其中xi,j bin i中的类型为jj个球,则成本为n i = 1m j = 1 | | | | |。a i jx i j | 。我们希望找到一种最低成本的可行解决方案。ii=1nj=1m|ai,jxi,j|

如果对{wj}没有限制,那么这个问题显然是NP问题。子集和问题简化为可行解的存在。

但是,如果我们加上一条,wj分歧wj+1为每个j,然后将子集和减少不再起作用,所以目前还不清楚是否造成问题仍然存在NP难题。检查是否存在可行解仅需O(nm)时间(附在问题末尾),但这不能为我们提供最低成本的可行解决方案。

该问题具有等效的整数程序公式。给定ai,j,ci,bj,wj1in,1jm

Minimize:i=1nj=1m|ai,jxi,j|subject to:j=1mxi,jwj=ci for all 1ini=1nxi,jbj for all 1jmxi,j0 for all 1in,1jm

我的问题是

wj对所有j都 除以wj+1时,上述整数程序是NP-hard 吗?j

确定O(nm)时间

wm+1=wm(maxjcj+1)dj=wj+1/wja%bab

  1. 如果存在一个这不是整除,回归“没有可行的解决方案。” (不变划分将总是在下面的循环被保持)ciw1ciwj
  2. 对于从到:j1m

    1. ki=1n(ci/wj)%dj。(需要的最小重量为的球)wj
    2. 如果,则返回“无可行解”。bj<k
    3. cici((ci/wj)%dj)所有。(删除重量为的最小所需球数)iwj
    4. bj+1(bjk)/dj。(将较小的球分组为较大的球)
  3. 返回“有可行的解决方案”。

特殊情况下的多项式时间解,其中,并且是 s的幂n=1wj2

已知如果且所有均为幂,则可以在多项式时间内求解该特殊情况。 n=1wj2

Minimize:j=1m|ajxj|subject to:j=1mwjxj=c0xjbj for all 1jm

解决方案由顾渝州提出,并在这里可以找到文章。

Answers:


0

一些背景。 上面的问题是有限制的背包问题。可以在伪多项式时间内(仍然是NP-Hard)解决带或不带限制的最有效的背包问题解决方案。有关某些变体,请参见 https://en.wikipedia.org/wiki/Knapsack_problem#Definition。此变体中的第一个限制是放置在背包(箱)中的物品(球)的值无关紧要。然后,问题仅限于将物品放入背包的时间。最初的问题要求将最有价值的物品放置在尽可能短的时间内。此版本的另一个限制是权重和所有其他参数均为​​整数。感兴趣的限制是权重w j + 1 jwj将除以所有。注意:分数背包问题可以在多项式时间内解决,但不能为原始问题提供最实用的解决方案。此问题使用均分的整数(无理性解)。也许看到背包问题有什么大不了的?wj+1j

主要问题可能应该是“当与对应的多项式限制时,这个问题是否仍然是NP-Hard ,因为问题在有界时不那么复杂(在P中)?我之所以说是因为问题可以被示出为P中时为界和NP-硬时不一定划分 i w j w j w j + 1 w j w j + 1 w j j w jwjiwjwjwj+1均匀地(权重只是随机的),所有限制将这个问题的复杂性限制在这两个条件下。这些条件(1.没有项目值限制的随机权重背包问题和2.没有项目值限制的可分权重背包问题)在降低复杂度方面相互抵消,因为权重的商本身可能是随机的(尤其是在无界时),因此需要进行指数时间计算(将在下面的示例中显示)。另外,由于除以,对于每个,的大小指数增长wjwj+1wjj。这是因为,代替使用随机加权的项(单位重量可能都限于100或50甚至10以下的单位重量的球),该限制导致时间复杂度取决于的位数,与试用部门,这是指数级的。wj

因此,是的,即使对所有都除以,上述整数程序仍然保持NP-hard的。w j + 1 jwjwj+1j 这很容易观察到。

例1:设,为2的幂。由于常数2,如您的示例所示,整个问题在二次时间内得到了解决。权重不是随机的,因此可以有效地解决计算问题。w pn=1wp

示例2:将定义为,其中是与对应的质数,这样。这是适用的,因为将除以所有。我们得到每个是直到的所有素数的乘积。单位权重的值增加,因为这样的:。既然有限制的(〜瓦特Ĵ * p p Ĵ p = 2 Ĵ = 1 p = 3 Ĵ = 2 p = 5 Ĵ = 3 p = 7 Ĵ = 4 P J w j w j + 1 j w j j 1 wj+1wjppjp=2,j=1:p=3,j=2,p=5,j=3,p=7,j=4,...,P,Jwjwj+1jwjjp j j l o g j 1,2,6,30,210,2310,30030,...pjjlog(j),通过质数定理),因为商都是质数,我们得到了NP-Intermediate的复杂度。

示例3:让定义为,其中是从2到无穷大的随机选择质数,对应于。这适用于此问题,因为将除以所有。我们得到前5个商(从2随机降到无穷),分别为。我们看到即使在第5球,重量也有11位数字。幸运的是,第五商是2,而不是或更大的质数。 瓦特Ĵ * - [R p - [R p Ĵ 瓦特Ĵ 瓦特Ĵ + 1 Ĵ 101 2657 7 3169 2 10 100wj+1wjRpRpjwjwj+1j101,2657,7,3169,210100

上面的示例三是当不被对应于的多项式限制(随机权重)时发生的情况。时间复杂度是指数,NP-Hard。从某些角度来看,只需将所有权重加起来,看看它们是否合适。但是,没有比通过尝试每个子集查看其权重大得多的方法来使权重可整,从而显着更快地解决它。经过几十个球之后,您仍进入了数万亿个子集或数万亿个数字的领域。wji


1
但是素数分解被认为不是NP难的。它被认为是NP级的。
rus9384 '17

2
我在这里看不到减少。实际减少了多少?接受素数分解的输入,然后使用整数程序的解以某种方式输出分解。
徐超

2
您是说“上面的整数程序是NP难的”吗?单个程序不能是NP-hard。
Yuval Filmus

1
实际上,素数分解在。因此,如果,则是。Ñ P Ñ P = C ^ ö Ñ PNPcoNPNPNP=coNP
rus9384

2
不幸的是,其他编辑并没有清除它。实际减少会有所帮助。
徐超
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.