【发布时间】:2026-02-18 20:20:03
【问题描述】:
我正在寻求帮助,以改进用于放置奇怪形状块的算法。我的问题域很奇怪,但我的块最好的类比是俄罗斯方块,除了它们可以有四个以上。这些块仍然只由直角组成,但它们可以是长而弯曲的,它们可以是分支的,等等。
我正在尝试在最小的空间中布置多个任意形状的大块(我知道,这是一个装箱问题),但我目前的解决方案看起来很难看。我基本上是放置一个,然后通过尝试将它们放置在我的网格的原点来强制其余的,然后慢慢地将它们推向不同的方向,直到它们不再碰撞。它并不慢,但它并没有尝试很好地组合部件,因此它们不会浪费整体空间。
我唯一能想到的尝试是按大小对积木进行排序,首先放置最大的,然后将最小的放在最后的任何孔中。但肯定有一些方法会适得其反。
这里有什么启发式或近似算法可以帮助我吗?
结果如下所示:
另外,也许我的 gravatar 表明这与洛克人有关......
【问题讨论】:
-
您的图像似乎暗示您想要块之间的空间。这是真的吗?
-
@Andrew 是的,我会的,但我有一种直觉,它不会影响算法。我可以假装这些块在所有方面都厚了 1 个单位。
标签: algorithm bin-packing