【发布时间】:2013-06-24 21:07:07
【问题描述】:
考虑一个 n * n 二进制矩阵。该矩阵的每个单元格最多有 4 个邻居(如果存在)。如果它们是邻居并且它们的值不相等,我们称该矩阵的两个单元格不兼容。我们为每对不兼容的配对支付 $b。我们也可以通过支付 $a 来更改单元格的值。
问题是找到这个矩阵的最小成本。
我已经使用回溯并找到了O(2 ^ (n * n))的算法。有人可以帮我找到更有效的算法吗?
【问题讨论】:
-
您在寻找最佳解决方案吗?或者可以做启发式?似乎 Gentic 算法和/或爬山可以很快带来不错的结果\
-
@fordprefect 为了使问题有意义,a 需要小于 4b,因为 4b 是您可以通过更改单元格避免支付的最大成本。编辑:哎呀,忍者。哦,好吧,把这个留在这里。
-
@Jack Newton 你能提供任何二进制矩阵的图像吗?矩阵如何由 4 个邻居而不是 8 个组成?
-
我认为他指的是顶部、左侧、右侧和底部的邻居。
-
@EAGER_STUDENT 这只是来自将邻域定义为 4 连接而不是 8 连接。 IE。邻居是向上、向下和向侧面的单元格,而不是沿对角线的单元格。见this。 (它谈到了像素,但同样的概念也适用。)
标签: algorithm graph graph-coloring