使用线性聚合的多目标Bin打包

时间:2016-04-01 14:57:51

标签: java optimization weighted-average bin-packing

我想将项目加载到最佳数量的容器中。

每个项目由其数量和优先级定义,容器由其卷定义。

我想优先考虑优先级最高的项目。

在将项目从最高优先级排序到最低优先级之后,我编写了最佳拟合,第一个拟合以及分支和绑定算法来解决此问题。 但是,我想这不是一个有效的方法,所以我想到了使用多目标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
            }

任何人都可以向我解释如何做到这一点吗?或者有一个有用的文件吗? 谢谢

0 个答案:

没有答案