Algorithm 查找“;“最低分行”;仓库问题的树解法

Algorithm 查找“;“最低分行”;仓库问题的树解法,algorithm,Algorithm,我有一个存放货物的仓库。每件物品占用一定数量的仓库空间,成本为美元 现在,因为仓库已经满了,我期待着新的交货,我必须腾出一些空间——不少于新的交货将占用的空间,但我也必须尽量减少我的损失。换句话说,我必须通过扔掉一些物品来清空至少X立方米的仓库空间,确保这些物品的价值是可能的最小值 例如: 如果X=10m3,那么我宁愿扔掉占用20m3且价值1000美元的物品,而不是正好占用10m3但价值2000美元的物品。 当然,在实际计算中,需要扔掉不止一个项目,可能是5个、10个甚至20个 我想的是将上述问

我有一个存放货物的仓库。每件物品占用一定数量的仓库空间,成本为美元

现在,因为仓库已经满了,我期待着新的交货,我必须腾出一些空间——不少于新的交货将占用的空间,但我也必须尽量减少我的损失。换句话说,我必须通过扔掉一些物品来清空至少X立方米的仓库空间,确保这些物品的价值是可能的最小值

例如: 如果X=10m3,那么我宁愿扔掉占用20m3且价值1000美元的物品,而不是正好占用10m3但价值2000美元的物品。 当然,在实际计算中,需要扔掉不止一个项目,可能是5个、10个甚至20个

我想的是将上述问题表示为一棵树,其中节点表示清空空间的体积,边表示
损失值
,然后搜索值大于或等于X的节点,然后沿着从树根到该节点的边选择损失值最低的节点

我不确定这是否是一个好的方法,因为例如,仓库完整树中的100个项目在第一个深度级别上有100个节点,在第二个级别上有100*99=9900个节点,等等,所以这很快就开始变得可行

对于这类问题,有没有更好的方法,或者甚至是一些经过验证的算法(我不知道)?

这就是所谓的

稍微改变一下你的问题,使之符合背包的要求:列出你在仓库里的所有物品+你想添加的所有物品。寻找最好的机会

好吧,在这种情况下,这意味着你不会试图在你的仓库里清理垃圾,我不认为这太愚蠢

啊,如果你没有遵循链接,它是NP完全的,所以如果你想要最好的解决方案,你会受到伤害:)