【问题标题】:Minimal number of covering boxes for binary matrix二进制矩阵的最小覆盖框数
【发布时间】:2011-03-16 10:24:21
【问题描述】:

我有一个二进制矩阵 n*m(0 和 1)。问题是用元素全为 1 的非重叠框覆盖所有 1。

例子:

1111
0110
0110

框可以用每个坐标(x,y,lx,ly)中的坐标和长度来表示。这个例子覆盖了2个框{ (0,0,1,4), (1,1,2,2) }

我正在寻找如何用最少的盒子找到封面。

谢谢

【问题讨论】:

  • 框是否允许重叠?
  • @Jeff:对于指定的问题,你不会通过重叠获得任何好处。
  • 您可能会发现这很有用:stackoverflow.com/questions/4701887/…
  • @Jeff:没有重叠。我编辑了文本。
  • @biziclop:这是同样的问题。谢谢。

标签: algorithm matrix compression cover


【解决方案1】:

我的问题领域是计算化学,我们在那里解决巨大的多变量问题。这里可以应用两种通用的全局优化算法,它们也已成功应用于包含数万个原子的系统:

a) 遗传算法
http://en.wikipedia.org/wiki/Genetic_algorithm

b) 模拟退火
http://www.gnu.org/software/gsl/
ftp://ftp.alumni.caltech.edu/pub/ingber
http://www.taygeta.com/annealing/simanneal.html
http://www2.cs.uni-paderborn.de/cs/ag-monien/SOFTWARE/PARSA/
http://www.codeproject.com/KB/recipes/SimulatedAnnealing.aspx

这两种算法都具有备受推崇的公共领域实现和广为人知的最优性。

【讨论】:

    【解决方案2】:

    这个问题称为直线多面体的划分。有一个很好的answer 对类似问题 biziclop 发表在评论中。

    算法的思想是将问题减少到二分图的最大匹配(顶点是可能的切割。)

    3D

    我最初的问题是 3D 中的同一主题。该版本显示为NP-complete :-/

    经过一些研究,我实现了基于 Anuj Jain 论文中描述的启发式的解决方案:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-01-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多