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

博文

子句分段消去法求解的要点

已有 2412 次阅读 2015-10-17 18:58 |个人分类:3SAT解法|系统分类:科研笔记| 分段子句消去法, 3SAT解法

分段子句消去法求解的要点

姜咏江

3-SAT问题的子句分段消去法实际上是一种局部降阶的方法,其本质是将3-SAT转化为2-SAT或1-SAT求解。用数码表示的2-SAT只有4种子句,这种变量相同的子句组成了子句块。1左面两列是子句的数值表达方式,右面一列是文字表达方式。

1  2阶子句块

x

y

子句

0

0

x’+y’

1

0

x+y’

0

1

x’+y

1

1

x+y

4种子句同时出现在2-SAT中,自然找不到逻辑变量xy的满足这些子句值都是1的解。但如果这4个子句中仅出现3个,那么我们就可以确定这个子句块有惟一的一组变量值使3个子句的值都是1。如果子句块只出现1个或2个子句,那么这个子句块就有两组值使这1个或2个子句的值都是1

如果是3-SAT的子句块,则出现8个子句一定无块解。确定了一个变量值的3-SAT动态块实际上是一个2-SAT的子句块,因而可以按照2-SAT子句块求解。

对于确定了2个变量的动态块,相当于1-SAT子句块,这时只要这个变量值出现了不同,那么就肯定无解。

对于高阶的k-SAT,我们可以依据这种降阶的方法求解。先从有唯一解的子句块开始设定变量值,通过子句消去法得到降阶的动态块,再依据降阶法求解。

若子句关联段有多解,要将其解全部求出,然后与其它关联段解组合,这样才能够得到3-SAT 的全部满足解。

分段子句消去法:http://blog.sciencenet.cn/blog-340399-928224.html

 

2015-10-17

 




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

上一篇:100个逻辑变量能够写出多少个子句?
下一篇:3-SAT最多有几个满足解?
收藏 IP: 221.194.176.*| 热度|

0

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

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

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

GMT+8, 2024-12-22 19:45

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部