从彩色瓷砖中寻找构造最大方块的最优算法

时间:2011-10-13 11:06:52

标签: algorithm

我有N个方形瓷砖。瓷砖的每一面都是红色,绿色或蓝色。目标是从瓷砖形成最大可能的正方形,使得相邻边缘具有相同的颜色。

实施例1:让N,W,S,E分别代表北,西,南和东瓷砖侧,R,G,B代表颜色。我们有5个瓷砖

  N W S E
1 B R B R                                                           1 4
2 B G R B   i can form 2x2 square from it placing tiles like this   2 3 
3 B G G G
4 G R B R
5 G R B R

示例2:我们有6个瓷砖

  N W S E
1 B B B B                                                           
2 B B B B   
3 G G G G
4 G G G G
5 G G G G
6 R R R R

此处构建的最大可能方块是1x1。

我将开发解决此任务的应用程序。在最短的时间内找到最佳解决方案的好算法是什么?

1 个答案:

答案 0 :(得分:3)

显然,你可以通过在选择的瓦片上写下一组约束来找到解决方案,然后使用回溯搜索。如果有更好的通用解决方案,我会感到惊讶,因为看起来您可以将非常普遍的问题编码为平铺问题 - 请参阅http://en.wikipedia.org/wiki/Wang_tile