CMP设计分享 http://blog.sciencenet.cn/u/accsys 没有逆向思维就没有科技原创。 不自信是科技创新的大敌。

博文

子句消去法与DPLL方法求SAT满足解比较

已有 2839 次阅读 2016-12-12 10:49 |个人分类:SAT问题|系统分类:科研笔记| 子句消去法, dpll算法

子句消去法与DPLL方法求SAT满足解比较

Davis, Logemann, Loveland (1962) had developed this algorithm. Some properties of this original algorithm are:

·   It is based on search.

·   It is the basis for almost all modern SAT solvers.

·   It DOES NOT use learning and chronological backtracking (introduced in 1996).

An example with visualization of a DPLL algorithm having chronological backtracking:

 

(a’+b+c)(a+c+d)(a+c+d’) (a+c’+d) (a+c’+d’) (b’+c+d’) (a’+b+c’) (a’+b’+c)     (1)

1                             a               

2                          0/            

3                         b                 

4                       0/       

5                     c      

6                   0/ 

7                    

 

a0b0c0F        通过a+c+dd=1, 通过a+c+d’d=0,产生矛盾;

1                             a               

2                          0/             

3                         b             

4                       0/    

5                     c      

6                   0/  1

7                     

 

回溯到c

a0b0c1F       通过a+c’+dd=1, 通过a+c’+d’d=0,产生矛盾;

1                             a               

2                          0/             

3                         b            

4                       0/  1     

5                     c      

6                   0/  1  

7                     

 

 

 

 

回溯到b,另外分支

1                             a               

2                          0/             

3                         b            

4                       0/  1     

5                     c      c

6                   0/  1  0/

7                     ■■

 

a0b1c0F       没有a+b’+b’+c’+的子句;

1                             a               

2                          0/              

3                         b           

4                       0/  1        

5                     c     c     

6                   0/  1 0/  1 

7                     ■■

 

a0b1c1F       还是a+c’+dd=1, 通过a+c’+d’d=0,产生矛盾;

1                             a               

2                          0/    1           

3                         b                 

4                       0/  1         

5                     c     c       

6                   0/  1 0/  1 

7                     ■■

 

回溯到a,另外分支

a1b0c1F       没有a’+c+推出d

1                             a               

2                          0/    1           

3                         b        b          

4                       0/  1    0/  1      

5                     c     c       c    

6                   0/  1 0/  1         1 

7                     ■■        

a1b1c1T       a’+b’+c推出c=1a’+c’+d推出d=1

最后结果是a=1,b=1,c=1,d=1

 

 

子句消去法

用k阶子句变量有2k-1个“0”或“1”就可确定变量值即可。

1   唯一解a=1

1

 

 

 

a

b

c

d

0

1

1

 

1

 

1

1

1

 

1

0

1

 

0

1

1

 

0

0

 

0

0

1

0

1

0

 

0

0

1

 

 

2  唯一解 b=1,c=1

1

1

1

 

a

b

c

d

0

1

1

 

 

0

0

1

0

1

0

 

0

0

1

 

 

3  得唯一解a=1 b=1 c=1 d=1

1

1

1

1

a

b

c

d

 

 

 

 

 

 



https://wap.sciencenet.cn/blog-340399-1020181.html

上一篇:包括批评我的那些关心子句消去法的人都是我珍贵的朋友
下一篇:论文参考文献自引就一定不好吗?
收藏 IP: 1.180.215.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (2 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-5-11 00:22

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部