1

我有一个对象列表,bag其中包含Quantity,Volumeweight. 我想在用户输入上拆分或连接多个对象,这将是max weightand max volume,因此我们希望将列表bag进一步拆分为更多bag,以最佳方式由用户提供最大重量和最大体积,以便没有袋子的重量和体积离开了。到目前为止,我所取得的成就是,bag根据volumeorweight拆分,所以首先我根据weight并且完全优化,但是当我应用相同volume的算法来拆分拆分时并不是最好的。我应用的算法:

  1. 插入所有bag优先队列
  2. 取出每个数量重量最小的第一个元素并将其插入袋子中。
  3. 如果袋子已满,请创建一个新袋子,或者轮询下一个袋子并将其也插入。
  4. 如果一个包不能完全插入,则划分数量并插入可以插入的数量,其余的保留在优先队列中。

包类

public class bag {
    int quantity; 
    int weightPerQty;
    int volumePerQty;
  }
4

0 回答 0