假设我有两组物品。每个项目都附有一个重量。我想找到A组项目的所有组合,这些组合具有与B组项目组合相同的权重(或接近等于一定的公差)。例如,项目A1 + A2权重与B1相同,但A2权重也可以是B2 + B3。我可以用什么方法来做这件事?
答案 0 :(得分:1)
假设您有2n
个项目,每个项目的权重为1
。将n
中的所有A
个项目和B
中的其余项目放在一起的每个解决方案都会产生最佳的负载差异0
;但是有2^n
个这样的解决方案。
这意味着一般来说,最佳解决方案的数量可以按项目数量呈指数增长。因此,除非做出其他限制,否则不可能找到一个算法(在运动多项式中以项目数量为限),除非有其他限制。
这里的动态编程算法可能没有那么有用,因为它们隐含地旨在修剪搜索树。