使用贪婪方法,给定一个m×n布尔矩阵B,找到其元素均为零的最大平方子矩阵

时间:2018-11-04 08:59:03

标签: algorithm greedy

任何人都知道使用贪婪方法,请帮助我解决这个问题。我已经通过动态方法做到了。但是我主要关心的是使用贪婪方法。而且我们还必须找到0的最大平方子矩阵。 Anatomy of SQL Index 这是使用动态方法并查找具有1的元素的示例。 注意:使用贪婪

1 个答案:

答案 0 :(得分:0)

贪婪的方法是您做出局部最优选择的地方,认为这将导致最优解决方案。因此,基本上我们从在mXn矩阵的四个边距之一中搜索0开始,即在第一行,最后一行,第一列或最后一列中。一旦找到0,我们就开始搜索可能的最大平方。

示例-

0 0 1 1 0 0

1 0 0 0 0 0

1 1 1 0 0 0

1 1 1 0 0 0

1 0 0 0 0 0

在上面的示例中,第一个元素为0,因此检查5X5矩阵的存在,因为第三个元素为1,所以它失败了。现在有几种情况-

1]如果您将第一行留给进一步评估,您仍然可以将尺寸设为4X4的矩阵。

2]如果您离开第三列并仅考虑前两列,则以2X2矩阵为目标。

3]如果您离开第三列而只考虑最后三列,则瞄准3X3矩阵。

4]我们不会考虑同时删除行和列,因为它不会比前三个选项好。

考虑到贪婪,我们将选择第一种情况并重复该过程。