从两组中选择具有相同重量的物品

时间:2014-07-16 17:24:52

标签: algorithm

假设我有两组物品。每个项目都附有一个重量。我想找到A组项目的所有组合,这些组合具有与B组项目组合相同的权重(或接近等于一定的公差)。例如,项目A1 + A2权重与B1相同,但A2权重也可以是B2 + B3。我可以用什么方法来做这件事?

1 个答案:

答案 0 :(得分:1)

假设您有2n个项目,每个项目的权重为1。将n中的所有A个项目和B中的其余项目放在一起的每个解决方案都会产生最佳的负载差异0;但是有2^n个这样的解决方案。

这意味着一般来说,最佳解决方案的数量可以按项目数量呈指数增长。因此,除非做出其他限制,否则不可能找到一个算法(在运动多项式中以项目数量为限),除非有其他限制。

这里的动态编程算法可能没有那么有用,因为它们隐含地旨在修剪搜索树。