精确覆盖问题学习笔记(四)――算法优化 (三)

2014-11-24 00:56:22 · 作者: · 浏览: 14
0 0 1 0 1 1 0
E 0 1 1 0 0 1 1
F 0 1 0 0 0 0 1 至此,矩阵已完全恢复到cover(1)之前的状态。

四、优化算法的基本步骤

算法的函数为search

1、如果矩阵为空,即 master->Right==master,则函数返回true

2、选择含1数目最少的列,设其列标题为c

3、执行cover(c)

4、 遍历列c的每一个数据节点r ,对每个r都执行(a)到(d)中的操作

(a) 从r的右侧开始向右遍历r所在行的所有其他节点cell,设cell所在里的列头节点为n,执行操作cover(n)

(b) 递归调用函数search,结果存到变量flag中

(c) 如果上一步的结果为真,将行r加入到解集中,然后返回true

(d) 如果步骤(b)的结果为false,则向从r的左侧开始向左遍历r所在行的所有其他节点cell,设cell所在里的列头节点为n

,执行操作uncover(n)

5、执行uncover(c)

6、函数返回false

分享到: