【发布时间】:2011-12-16 19:41:21
【问题描述】:
我一直在努力为以下问题找到一个方便的解决方案:
假设我们有一堵给定尺寸的墙和 4 种尺寸为 4 x 2、2 x 2、2 x 1、1 x 1 的瓷砖。在墙的周边内有某些矩形区域不能平铺(即孔)。还有一种特殊类型的图块,它具有可变尺寸 A x B 且 A
找到符合以下约束的墙平铺:
- 相同大小的瓷砖不能以相同的对齐方式放置在另一个下方(即,出现在下面一行上的瓷砖必须移动,以使相邻的相同瓷砖之间没有看起来像交叉的间隙大小)
- 使用了最少数量的图块
- 超出矩形边界的图块将被修剪到边缘;这样产生的不完整的瓷砖将被破碎成更小的瓷砖;这可能涉及使用特殊的瓷砖,该瓷砖应始终紧挨着矩形的边缘或孔的边缘,无论这种情况可能出现在哪里
这是我迄今为止尝试过的:
- 我已经研究了使用多米诺拼贴解决此问题的算法,但大多数人似乎并不关心拼贴过程不会产生看起来像瓷砖交汇处的十字架的间隙。此外,对我来说,问题似乎有点不同,因为有更多类型的瓷砖,而且似乎不必完全填充矩形(小空间可能保留在边缘附近,这些空间将使用特殊瓷砖填充)
- 我尝试使用带有状态节点修剪的分支定界技术生成所有可能的切片,以便只探索那些不破坏约束的切片的状态,但这绝对不可扩展。李>
- 我还研究了打包算法,但据我所知,这可能会导致一定的平铺,其中有可以保留在墙内的小空间。
在探索上述技术时,我可能忽略了一些东西,或者没有足够的洞察力。
说了这么多,你们对解决这个问题的方法有什么提示或建议吗?
This is an example of a tiling which respects constraints 1 and 3, but is not optimal
【问题讨论】: