Algorithm 从一组有限的瓷砖中寻找一个最大平方(近似)

Algorithm 从一组有限的瓷砖中寻找一个最大平方(近似),algorithm,graph-theory,mathematical-optimization,Algorithm,Graph Theory,Mathematical Optimization,我有一套最后的瓷砖,每边都有四种颜色。 任务是从给定的一组(有限)瓷砖中找到一个最大可能的正方形。瓷砖可以旋转 我需要设计3种算法来为这项任务找到解决方案。一个完整的和两个近似值。 显然,这是我的算法课任务,所以我不是问完整的解决方案(因为这是不公平的),而是问一些方向。 Im已经设计了一种完整的算法(使用回溯-搜索大小为sqrt(n)的正方形-如果找不到,尝试查找较小的,等等),但我不知道如何创建近似算法我认为有人会有点愚蠢,只会在特定情况下找到一个好的答案,只是为了证明这不是一个好的方法,但

我有一套最后的瓷砖,每边都有四种颜色。
任务是从给定的一组(有限)瓷砖中找到一个最大可能的正方形。瓷砖可以旋转
我需要设计3种算法来为这项任务找到解决方案。一个完整的和两个近似值。
显然,这是我的算法课任务,所以我不是问完整的解决方案(因为这是不公平的),而是问一些方向。
Im已经设计了一种完整的算法(使用回溯-搜索大小为sqrt(n)的正方形-如果找不到,尝试查找较小的,等等),但我不知道如何创建近似算法
我认为有人会有点愚蠢,只会在特定情况下找到一个好的答案,只是为了证明这不是一个好的方法,但我仍然需要一个比回溯快得多、相当好的方法。
这个问题也是NP难问题吗?我的回溯算法是指数算法,但这并不意味着没有更好的

编辑:我有指数时间的完整算法,有人能给我一些提示,如何用多项式时间或比指数时间更好的方法来建立这个问题的近似解吗


EDIT2:我的想法是,这个问题可以转化为将一个图简化为正方形网格图()的问题。尽管如此,如果瓷砖可以以这样的方式排列以构建网格,还是有问题的,但这可能是一个很好的起点。例如,是否有贪心算法或其他近似算法用于将图简化为正方形网格图

假设回溯算法构造k×k平方以增加k的值。
您可以使用启发式扩展回溯算法。因此,与其随机选择下一块瓷砖,不如选择并附加一块瓷砖,使免费瓷砖的颜色与广场上的颜色“一致”。最大的问题是找到“一致性”启发法。一种可能的启发式方法是在免费瓷砖上找到最不常见的颜色并使用它。

我假设除了“每个边可以有四种颜色中的一种”,每个瓷砖的所有四条边都是彩色的,瓷砖上的一组颜色可以是任意顺序的,可以由一到四种颜色组成,外部瓷砖的外边缘是不受限制的,在组成的正方形中,相邻的瓷砖边缘具有匹配的颜色。例如,如果颜色为R、G、B、P,且平铺集S={RRRR、RPPP、RRBG、PGRB},则可以使用该集平铺2x2正方形。对吗?这是一个好主意,从1开始按k-by-k的平方还是从sqrt(n)开始(最大可能的平方)如果找不到,试着建造更小的。对于这两种情况,最糟糕的情况是指数复杂性。我使用了您想法的一部分,因此我将接受一个答案作为我工作的提示;)