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

博文

k-Sat归约到3sat求解只会得到部分解

已有 3682 次阅读 2015-12-25 09:37 |个人分类:3SAT解法|系统分类:科研笔记| 子句消去法, SAT归约

k-Sat归约到3sat求解只会得到部分解

姜咏江

k>3时,k-SAT归约到3-SAT的公式:

k-CNF=(x1+x2+y1) (y’1+x3+y2) (y’2+x3+y3)…(xk-1+xk+y’k-3)

01表格式表达的5-CNF如表1所示,最上面一行是变量取值。

1  5-CNF

0

1

1

0

*

x1

x2

x3

x4

x5

0

0

0

0

0

1

0

0

0

1

1

1

0

1

1

1

0

1

1

0

1

0

1

0

1

将表1 5-CNF归约到3-CNF如表2所示。

2  归约成3-CNF

 

 

 

 

 

 

 

x1

x2

x3

x4

x5

y1

y2

0

0

 

 

 

1

 

 

 

0

 

 

0

1

 

 

 

0

0

 

0

1

0

 

 

 

1

 

 

 

0

 

 

0

1

 

 

 

0

1

 

0

1

1

 

 

 

1

 

 

 

0

 

 

0

1

 

 

 

1

1

 

0

1

0

 

 

 

1

 

 

 

1

 

 

0

1

 

 

 

1

0

 

0

1

0

 

 

 

1

 

 

 

1

 

 

0

1

 

 

 

0

1

 

0

2 出现了重复子句,按照子句块排列,并消除重复子句表示,化简得到表3

将表33-CNF按照子句消去法进行求解。

1)有4同值变量y2=0,则可消去后面的4行。

2)若选取y1=1,则有x3不能够取值,造成3-CNF=1无解;所以取值y1=0,选取相应子句。

3)取y1=0值后,还剩3个子句,且有一个变量的值已经确定,故必选x1=1x2=0才能够将全部子句消去。

这样我们在3-CNF=1得到一组解x1 x2 x3 x4 x5=10***,“*”表示是01y1=0 y2=0不涉及5-CNF=1求解。

3  3-CNF化简

1

0

*

*

*

0

0

x1

x2

x3

x4

x5

y1

y2

0

0

 

 

 

1

 

1

0

 

 

 

1

 

1

1

 

 

 

1

 

 

 

0

 

 

0

1

 

 

1

 

 

0

1

 

 

 

0

0

 

0

 

 

 

1

1

 

0

 

 

 

1

0

 

0

 

 

 

0

1

 

0

对于这个3-CNF=1求解的每一步都是唯一解,所以不可能再有其它的解。

小结:由表意1可见x1 x2 x3 x4 x5=0110*也是这个5-SAT例题的解。自然会想到A归约到B后,通过B只能够求出A的部分解。

 

2015-12-25

 

 




https://blog.sciencenet.cn/blog-340399-945744.html

上一篇:我以往博客中的附图都没有了,能恢复吗?
下一篇:柳渝你还认为子句消去法证明的是P=P吗?
收藏 IP: 124.202.191.*| 热度|

0

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

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

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

GMT+8, 2024-5-19 17:12

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部