我想将项目加载到最佳数量的容器中。
每个项目由其数量和优先级定义,容器由其卷定义。
我想优先考虑优先级最高的项目。
在将项目从最高优先级排序到最低优先级之后,我编写了最佳拟合,第一个拟合以及分支和绑定算法来解决此问题。 但是,我想这不是一个有效的方法,所以我想到了使用多目标bin装箱问题的线性聚合方法。
我选择对两个目标函数使用一个λ= 0.5(这与它们的重要性有关)。因此,这使问题成为单目标问题,目标函数= 0.5 * f1 + 0.5 * f2。
那么,我想知道的是如何将其应用于我的代码?
这就是我写的(我真的不确定我是不对的)
if (currentSize + ((0.5*item.getVolume())+(0.5*item.getPriority())) <= volume) {
packedItems.add(item);
currentSize += item.getVolume();
return true; //item fits
} else {
return false; // item didn't fit
}
任何人都可以向我解释如何做到这一点吗?或者有一个有用的文件吗? 谢谢