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

博文

3SAT解题步骤与规则

已有 2506 次阅读 2015-11-19 10:04 |个人分类:教学笔记|系统分类:科研笔记| 规则, 步骤, 分段子句消去法, 3SAT解法

3SAT解题步骤与规则

姜咏江

随着我对3SAT的分段子句消去法的深入,使求解3SAT的过程也在不断地瘦身,此次介绍的分段子句消去法步骤更加简单化,解法更加易学。

一、规则

运用分段子句消去法求解3SAT的满足解,要遵循如下两条规则:

1)处理好可能无解子句块。

3SAT数值表示法可能无解的子句块只有一种。那就是有4个同值变量的子句块。例如下表1x1x3x4的子句块有4个子句的x1值是0。此种情况必需设定x1=0,不然会进入无解状态。

1

x1

x2

x3

x4

x5

0

 

0

0

 

0

 

0

1

 

0

 

1

0

 

0

 

1

1

 

1

 

0

0

 

1

 

1

1

 

2)多值可选应避开无解的动态块。

2个变量需要共同确定值的二元关联子句块间选值不当,可能出现无解状态。例如下表2中关联的两个子句块都有多解,如果先选择了x11x50,那么将会出现无解的动态块。而改变选值就会得到有解的情况。

2

x1

x2

x3

x4

x5

0

0

0

 

 

0

1

0

 

 

1

0

1

 

 

 

1

1

 

1

 

0

0

 

0

 

0

1

 

1

 

1

1

 

0

不论(1)或(2)都出现了将要确定变量的值无法选择的情况,即不论选择0还是1都无法将子句全部消去。

以上求解3SAT的规则都可以从【1】的定理8直接得到。

二、步骤

对没有8个子句的子句块组成的数值表3SAT,进行如下步骤的操作可以求出满足解。

1)将所有子句块中一个变量有4个相同值的变量设定其值,消去相应子句;

2)确定剩余子句中有唯一解的动态子句块解,并消去相应子句;

有唯一解的动态子句块特征有二:一是两变量值已经确定,第三个子句相同变量值都一样;二是一个变量值已经确定,其余子句相同二变量只能组成32SAT子句(如果组成42SAT子句则无解)。

3)最后设定所有多解的剩余子句块的解,如果发现遗漏了规则(2)的情况,应优先处理。

如果前面都是唯一解的情况,遇到了规则(2)的无解情况,那么3SAT无解。

 

【1】http://blog.sciencenet.cn/blog-340399-928224.html  

2015-11-19

 

 




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

上一篇:3-SAT求解基本方法
下一篇:3SAT解题步骤与规则
收藏 IP: 125.39.34.*| 热度|

0

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

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

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

GMT+8, 2024-12-21 21:59

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部