Algorithm 如何确定在较大网格内产生最大正方形数的布局

Algorithm 如何确定在较大网格内产生最大正方形数的布局,algorithm,Algorithm,我试图确定使用什么算法来确定布局,以产生最大数量的2x2方形网格,可以容纳在更大的非均匀网格内。 下图显示了一个非均匀网格(黑线)的示例,其中最多安装了12个2x2方形网格(蓝色框)。是否有系统的方法来确定产生最大容量的布局?如下图所示,2x2方形网格不需要水平或垂直对齐。谢谢 我会尝试整数规划解算器(例如,) 我心目中的公式是相当标准的。假设我们有一个带有标记的正方形的网格,如 ab cdefgh ijklmn 对于2x2(a、c、d、e、f、g)左上角的每个正方形,我们有一个0-1变量

我试图确定使用什么算法来确定布局,以产生最大数量的2x2方形网格,可以容纳在更大的非均匀网格内。 下图显示了一个非均匀网格(黑线)的示例,其中最多安装了12个2x2方形网格(蓝色框)。是否有系统的方法来确定产生最大容量的布局?如下图所示,2x2方形网格不需要水平或垂直对齐。谢谢


我会尝试整数规划解算器(例如,)

我心目中的公式是相当标准的。假设我们有一个带有标记的正方形的网格,如

  ab
cdefgh
ijklmn
对于2x2(
a、c、d、e、f、g
)左上角的每个正方形,我们有一个0-1变量,如果选择该正方形,则该变量为1,否则为0。对于每个平方,我们有一个约束,即2x2与该平方重叠的变量之和最多为1

a ≤ 1            (a)
a ≤ 1            (b)
c ≤ 1            (c)
c + d ≤ 1        (d)
a + d + e ≤ 1    (e)
a + e + f ≤ 1    (f)
f + g ≤ 1        (g)
g ≤ 1            (h)
c ≤ 1            (i)
c + d ≤ 1        (j)
d + e ≤ 1        (k)
e + f ≤ 1        (l)
f + g ≤ 1        (m)
g ≤ 1            (n)
当然,我们想要最大化变量之和:

max a + c + d + e + f + g

明亮的谢谢!