【问题标题】:Constrained maximization of the sum of square submatrices子矩阵平方和的约束最大化
【发布时间】:2014-12-29 10:18:15
【问题描述】:

我有一张图像的强度图,我想选择平均值较大的子区域。为此,我想找到使子区域覆盖的强度图像素总和最大化的子区域。为防止返回的子区域数量过多,对返回的每个附加子区域应用惩罚。另外,两个子区域重叠也可以,但重叠目标值只是子区域并集的值。

更正式地说,假设您有一个矩阵 A,其中包含维度为 m x n 的非负值。您想用尺寸为 s x s 的方形子矩阵覆盖矩阵,这样 A 的值的总和被正方形面积的并集最大化。对于您添加到解决方案的每个平方,从解决方案的目标值中减去一个恒定的惩罚 p

例如,考虑以下矩阵:

0 0 0 0 0 0
0 1 2 2 1 0
0 1 2 2 2 0
0 0 0 0 0 0
0 3 0 0 0 0

参数为 p = -4 和 s = 2。最优解是两个正方形 S1 = [1, 2; 1, 2] 和 S2 = [2, 1; 2, 2] 分别具有坐标 (2:3,2:3) 和 (2:3,4:5)(在 Matlab 表示法中)。请注意,在此示例中,递增地添加具有最大值的正方形直到无法添加正方形(不降低目标值)的贪心方法失败了。

解决它的一种蛮力方法是使用恰好 k 个正方形检查所有可能的组合。从 k =1 开始,您将计算恰好 k 个正方形的最佳组合,增加 k 并重复,直到目标值停止增加。这显然非常昂贵。

您可以使用积分图像在 O(mn) 时间内预先计算 (m-s+1)*(n-s+1) 个可能平方的值的总和。

有没有有效的解决方案?

【问题讨论】:

  • 如果A的条目如你所说的非负,那么如果A也是正方形,则最优解是单个正方形A本身。 (您提到“大平均值”,但似乎没有将其纳入您的目标函数。)
  • 为了澄清,正方形是固定大小 s x s(s 是问题的给定参数)的子矩阵,其中 s
  • 抱歉,我完全错过了你所说的“尺寸为 s x s”的部分。现在很清楚了。

标签: algorithm optimization matrix


【解决方案1】:

问题是 NP-Hard。这可以通过减少平面最小顶点覆盖来证明。特殊情况 s=3、p=2 和 A 只有值 0 或 1 的证明与 other SO question 的证明相同。

至于蛮力解决方案,如果不是尝试所有增加k 的组合,而是逐步添加方块,它可能会更有效。当部分解决方案的目标值加上尚未覆盖的值之和不大于最佳目标值时,通过删除最近添加的正方形回滚到最后一个有效组合并尝试其他正方形。避免添加将零添加到目标值的正方形。还要避免添加次优正方形:如果在示例中来自 OP 部分解决方案包含正方形 [1, 2; 1, 2],不加平方[2, 2; 2, 2] 因为 [2, 1; 2, 2] 总是至少一样好,甚至更好。并以这样一种方式重新排列方块,以便您快速获得足够好的解决方案,这样可以更快地终止所有进一步的尝试。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-09-27
    • 1970-01-01
    • 1970-01-01
    • 2014-08-14
    • 1970-01-01
    • 1970-01-01
    • 2015-03-07
    • 2013-07-21
    相关资源
    最近更新 更多