有没有可能修改01背包算法以优化袋子中物品的最终总重量作为首选(并将价值作为次要选择),同时保持相同的算法复杂度?
我正在使用这个Java实现(在文章末尾)。
更具体地说,我想要修改以下代码段:
if (wt[item-1]<=weight){
V[item][weight]=Math.max (val[item-1]+V[item-1][weight-wt[item-1]], V[item-1][weight]);
}else{
V[item][weight]=V[item-1][weight];
}
以下是您需要翻译的内容:
带有其他条件,首先控制物品重量是否接近阈值,然后确定如果重量不变,是否价值更高。
您有想法如何在不改变复杂性的情况下完成此操作吗?
谢谢
编辑“首先控制物品重量是否接近阈值,然后添加该物品”是指达到背包的重量限制。换句话说,“尽可能多地携带重量而不破坏背包”