全1的最大非连续子矩阵

Biggest non-contiguous submatrix with all ones

我正在解决寻找具有最大尺寸的布尔矩阵的非连续子矩阵的问题,这样它的所有单元格都是一个。

例如,考虑以下矩阵:

M = [[1, 0, 1, 1],
     [0, 0, 1, 0],
     [1, 1, 1, 1]]

M的非连续子矩阵指定为一组行R和一组列C。子矩阵由R中某行中的所有单元格组成and 在 C 的某些列中(R 和 C 的交集)。请注意,非连续子矩阵是子矩阵的推广,因此任何(连续)子矩阵也是非连续子矩阵。

M的一个最大不连续子矩阵,其所有单元格都为1。此子矩阵定义为 R={1, 3, 4} 和 C={1, 3},它产生:

M[1, 2, 4][1, 3] = [[1, 1, 1],
                    [1, 1, 1]]

我很难找到有关此问题的现有文献。我正在寻找不一定需要最优的高效算法(这样我就可以将问题放宽到找到最大尺寸的子矩阵)。当然,这可以用整数线性规划建模,但我想考虑其他替代方案。

特别是,我想知道这个问题是否已经为人所知并被文献涵盖,我想知道我对非连续矩阵的定义是否有意义,以及它们是否已经存在不同的名称。

谢谢!

根据您对 Josef Wittmann 的评论的回复,您想要找到矩形覆盖数,我的建议是构建 Lovász–Saks 图并应用图着色算法。

Lovász–Saks 图矩阵中的每一个条目都有一个顶点,每对顶点之间有一条边,其 2x2 矩阵包含一个零。在你的例子中,

[[1, 0, 1, 1],
 [0, 0, 1, 0],
 [1, 1, 1, 1]]

我们可以用字母标记 1:

[[a, 0, b, c],
 [0, 0, d, 0],
 [e, f, g, h]]

然后获取边

a--d, a--f, b--f, c--d, c--f, d--e, d--f, d--h.

a b   a 0   0 b   b c   0 c   0 d   0 d   d 0
0 d   e f   f g   d 0   f h   e f   f g   g h

我认为最佳着色是

{a, b, c, e, g, h} -> 1
{d} -> 2
{f} -> 3.