这是一个精确的封面问题,结构也很好,通常取决于碎片.我不知道任何启发式算法,但有几个确切的选项应该很好.
与Exact Covers一样,您可以使用Dancing Links,一种有效实现算法X的方法.
不太常见的是,您可以使用零抑制决策图解决此问题.这取决于瓷砖.作为奖励,您可以代表所有可能的解决方案并对其进行计数或生成具有某些属性的解决方案,而无需明确存储整套(通常太大)的解决方案.
BDD也会起作用,使用更多的节点来完成相同的事情(因为解决方案非常稀疏,因为使用了很少的可能的平铺布局 - 像这样的ZDD但BDD像对称性更好于稀疏性).
或者您可以将其转换为SAT问题,然后您获得的信息更少(例如没有解决方案),但如果有简单的解决方案则更快.