设计二维装箱算法,支持任意物品重量和限制

问题描述

我正在尝试为一个复杂的排序问题开发一种算法,该问题最终似乎是一个两层的 2D 装箱问题,但由于数量太多,我在起草高级方法时遇到了麻烦涉及很多变数。这似乎是航运/物流行业会发展起来的 - 所以我欢迎任何见解。

目标 我有几个按优先顺序提供的矩形项目。这些物品必须被分类到矩形箱中,并且这些箱必须随后进行分类,以便它们能够放入最终固定大小的矩形区域。

目标是将尽可能多的项目(根据它们的优先级)分类到尽可能少的 bin 中 - 有效地提供最有效的布局。除了两层问题,更有趣的是项目和箱本身的附加属性

项目

  • 具有固定的 2D 尺寸。
  • 无法旋转。
  • 无法拼接。
  • 具有“质量”属性(总质量不得超过垃圾箱的质量容量)。
  • 拥有“成本”属性(总成本不得超过垃圾箱的成本限制)。
  • 项目可以指定它们是否与给定的 bin“类”兼容(反之亦然)。
  • 项目可以指定一个“组”索引。在可能的情况下,应将这些项目分组到相同的垃圾箱中,但这不是必需的。

垃圾

  • 具有可变的 2D 尺寸,介于固定的最小值和最大值之间。
  • 一个固定的“质量”限制。
  • 一个固定的“成本”限制。
  • 拥有自己的“成本”属性(越低越好,但最好还是少一些 bin)。

面积

  • 垃圾箱最终必须放入的固定大小区域。
  • 可能还有自己的“质量”和“成本”限制。
  • 可能是非矩形形状 - 但由多个矩形叠加而成的形状。

最终目标是对项目进行排序,以便将尽可能多的项目插入尽可能少的垃圾箱中,并且以尊重其优先级的方式进行。

这是一个游戏设计问题,所以有点自作自受,可能只需要简化。我提到这一点是因为随机性或非封闭形式的解决方案等因素不是一种选择,但是预期的项目和箱数相对较低,可能是 5-30 个项目,平均大约为 2-3 个箱。>

通过将问题视为具有附加维度的问题,有没有办法将其从两阶段 BPP 问题转换为仅一个阶段?此外,是否有一种通用方法可以将额外的、任意的权重和/或硬限制组合到正在排序的项目中?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)