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
分享到: