箱式包装的复杂性与箱重的确定功能

时间:2013-07-23 19:47:45

标签: theory computation-theory number-theory

我正在努力解决以下问题:

给定n个整数,将它们放入m个bin中,以便最小化所有bin中的总和。诀窍是,一旦将数字放入垃圾箱,垃圾箱的总重量/成本/总和将以非标准方式计算:

weight_of_bin = Sigma - k * X其中Sigma是bin中整数的总和 k是bin中的整数数 X是位于bin中的整数具有共同点的素数的除数。

换句话说,通过将具有许多主要除数的数字组合在一起,并通过在不同的区间中放置不同数量的数字,我们可以在总和中实现一些“节省”。

我使用bin-packing配方,因为我怀疑问题是NPhard但我找不到证据。我不是一个数论理论家,并且对于箱子的重量取决于箱子中物品的事实感到困惑。

此类问题是否有硬度结果?

P.S。我只知道数字是整数。对问题中涉及的最大整数没有明确的限制。

感谢您提供的任何指示。

1 个答案:

答案 0 :(得分:0)

这不是一个完整的答案,但希望它能给你一些思考的东西。

首先,通过澄清:你对整数的主要除数有什么了解?找到问题输入中整数的所有主要除数很难实现。因素分解不是NP完全的,但它也不知道在P中。如果你还不知道输入的分解,那可能足以使这个问题变得“难”。

一般来说,我认为这个问题至少和装箱一样困难。显示这一点的一个简单参数是,给定的整数都不可能具有任何公共的除数(例如,如果给出一组不同的素数)。在这种情况下,由于箱的重量仅为标准重量,因此问题减少到标准箱装箱。如果你能保证可能有多少常见的除数,你可能会做得更好,但可能不是一般的。

有一种bin打包的变体,称为VM packing(基于根据内存要求打包虚拟机的想法),允许对象共享空间(例如共享虚拟内存页)。你的目标函数,你根据“共享”素数除数减去一个术语,这让我想起了这一点。即使在VM包装的情况下,问题也是NP难的。如果共享具有良好的层次结构,则存在良好的近似算法,但它们仍然只是近似值。