【问题标题】:Finding optimal algorithm for constructing biggest square from colored tiles寻找从彩色瓷砖构造最大正方形的最佳算法
【发布时间】:2011-10-13 11:06:52
【问题描述】:

我有 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。

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

【问题讨论】:

  • 如果我错了请告诉我,但你的第一个例子不正确,因为 1E != 4W
  • 是的,你是对的,谢谢;现在是正确的。
  • 这是为了永恒2的问题吗? en.wikipedia.org/wiki/Eternity_II_puzzle
  • 不,但看起来很相似,但简化了。我宁愿不期望超过 64 个图块,只有 3 种颜色,而且限制更少,所以它不应该那么复杂。
  • @Zaphood,不,这是不正确的! 2E != 3W!

标签: algorithm


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多