科学网

 找回密码
  注册

tag 标签: 子句标志消去法

相关帖子

版块 作者 回复/查看 最后发表

没有相关内容

相关日志

二进制数纠缠态与SAT问题全解
热度 2 accsys 2017-3-1 13:16
姜咏江 最近读了一篇网传中国科学院院士,南方科技大学创校校长关于“量子纠缠”等方面的报告文,院士主张“ 人类的主观意识是客观物质世界的基础 —— 客观世界很有可能并不存在! ”真是“科学透顶”! 我研究 P/NP 问题的 SAT 问题求解,一不小心竟然整出了二进制数域的“纠缠态”, 看来我也进了量子力学的空前大世界了。 纠缠态源自量子态,据说量子有 0 、 1 和纠缠态。纠缠态如何用数码来表示?因为是 0 ,又是 1 ,只要一观察就出现 0 或 1 状态,这叫“坍塌”。我将 n 位二进制数表示成 n 个“ * ”组成的字符串,用来代表 0 ~ 2n-1 那些 n 位二进制数,每一个 * 代表 0 或 1 ,具体是 0 还是 1 ,只有需要做子句标志消去法时,才能看到。你看是不是同量子一样纠缠了? 我在 2015 年搞过这个东西( http://blog.sciencenet.cn/blog-340399-908661.html ),只是当时尚不很明确,也没想到“纠缠”这个概念。现在明白了,这是二进制限位数的纠缠态! 我们知道, n 个逻辑变量构成的合取范式 CNF 为 1 的可能解,应当是一个 n 位二进制数。在没求出 CNF=1 的解时,这 0 ~ 2n-1 个二进制数都可能是解。把它们全表示出来,最简单就是我上面提到的 n 个 * ,亦即我现在说的纠缠态,我们不妨称之为“解纠缠”。解纠缠也可以在可以配合 0 和 1 数码表示数。 我的子句计数法,又叫子句标志消去法。什么叫子句标志?就是将子句用 0 和 1 表示,如果子句的数码位置和 n 位二进制数对应位置数码相同,那么就称这个 n 位二进制数是这个子句的标志,也可以叫属于这个子句的可能解。 现在我举例来说明怎么用这个“解纠缠”来表示的 n 位二进制数求 SAT 的解。 表 1 是一个逻辑电路的合取范式,可以用作电路检测( https://en.wikipedia.org/wiki/Tseytin_transformation )。这个 SAT 的可能解有 11 位,为 *********** ,这代表了 0000000000~1111111111 这些数,这就是纠缠态。 让解纠缠的某一位塌缩,是通过消去子句来“观察”的。塌缩会会产生解纠缠分裂。如何分裂? * 表示 0 或 1 的纠缠态,如果我们用 0 测试,它就塌缩成了 1 ,如果用 1 测试,它就塌缩成了 0 。如果是两个 ** ,它可以纠缠表示 00 , 01 , 10 , 11 ,用其中任何一个去测试,都会塌缩成剩余的 3 个。一般地,用 k 位二进制数测试 k 位解纠缠,就会塌缩出 2 k -1 个不包含测试二进制数的 k 位二进制数集合。如果一个数有 i 位对应 * , 0 ≤ i ≤ k ,那么这个解纠缠就会裂变成 2 i -1 个。因此,我又将所谓的塌缩叫 裂变 。 需要说明,在论文中我将子句标志消去法叫 ECPS(Elimination ofclause and Possible Solutions ) ,把“量子塌缩”求解的算法叫 SSFA (Split Solution Form Algorithm) 。 下面我们就来看看求 SAT 全解的例题吧。 将参考网页上的电路改变一下变量的表示,就得到了表 1 。 表 1 一个逻辑电路的合取范式 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 序 1 1 1 1 2 0 0 3 1 0 4 1 0 5 1 1 6 0 0 7 1 1 8 0 0 9 1 0 21 1 0 10 0 1 11 1 0 12 0 1 15 1 0 16 0 1 13 0 1 14 0 0 1 17 0 0 1 18 0 0 1 19 1 1 0 22 1 1 0 20 ( 0 )初始解纠缠 表 2 初始解纠缠 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 * * * * * * * * * * * 消去子句 x11=1 ,那么 *********** 就分裂成了 **********0 , 第 11 位“坍塌”了。 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 * * * * * * * * * * 0 消去子句 x1x4=11 ,第一和第四位置去掉 1 ,那么 **********0 就分裂成了 0**0******0 , 0**1******0 , 1**0******0 。这是第一和第四位“坍塌”了。 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 0 * * 0 * * * * * * 0 0 * * 1 * * * * * * 0 1 * * 0 * * * * * * 0 消去子句 x1x4=00 ,第一和第四位置是 0 ,那么与 0**0******0 一致,消去它,剩下了 0**1******0 , 1**0******0 。 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 0 * * 1 * * * * * * 0 1 * * 0 * * * * * * 0 消去子句 x1x7=10 ,那么与 1**0******0 一致,消去它,剩下了 0**1******0 , 1**0**1***0 。 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 0 * * 1 * * * * * * 0 1 * * 0 * * 1 * * * 0 消去子句 x2x5=10 ,第 2 和第 5 位,因为对应 2 个星,都裂变成 3 个解纠缠。 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 0 0 * 1 0 * * * * * 0 0 0 * 1 1 * * * * * 0 0 1 * 1 1 * * * * * 0 1 0 * 0 0 * 1 * * * 0 1 0 * 0 1 * 1 * * * 0 1 1 * 0 1 * 1 * * * 0 消去子句 x2x6=11 。 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 0 0 * 1 0 * * * * * 0 0 0 * 1 1 * * * * * 0 0 1 * 1 1 0 * * * * 0 1 0 * 0 0 * 1 * * * 0 1 0 * 0 1 * 1 * * * 0 1 1 * 0 1 0 1 * * * 0 消去子句 x2x6=00 。 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 0 0 * 1 0 1 * * * * 0 0 0 * 1 1 1 * * * * 0 0 1 * 1 1 0 * * * * 0 1 0 * 0 0 1 1 * * * 0 1 0 * 0 1 1 1 * * * 0 1 1 * 0 1 0 1 * * * 0 消去子句 x2x8=11 。 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 0 0 * 1 0 1 * * * * 0 0 0 * 1 1 1 * * * * 0 0 1 * 1 1 0 * 0 * * 0 1 0 * 0 0 1 1 * * * 0 1 0 * 0 1 1 1 * * * 0 1 1 * 0 1 0 1 0 * * 0 消去子句 x2x8=00 。 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 0 0 * 1 0 1 * 1 * * 0 0 0 * 1 1 1 * 1 * * 0 0 1 * 1 1 0 * 0 * * 0 1 0 * 0 0 1 1 1 * * 0 1 0 * 0 1 1 1 1 * * 0 1 1 * 0 1 0 1 0 * * 0 变量 x3x9 在解纠缠中都是星,暂往后放,找分裂较少子句。 消去子句 x4x5=10 。 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 0 0 * 1 1 1 * 1 * * 0 0 1 * 1 1 0 * 0 * * 0 1 0 * 0 0 1 1 1 * * 0 1 0 * 0 1 1 1 1 * * 0 1 1 * 0 1 0 1 0 * * 0 消去子句 x5x10=01 。 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 0 0 * 1 1 1 * 1 * * 0 0 1 * 1 1 0 * 0 * * 0 1 0 * 0 0 1 1 1 * 0 0 1 0 * 0 1 1 1 1 * * 0 1 1 * 0 1 0 1 0 * * 0 消去子句 x6x7=10 。 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 0 0 * 1 1 1 1 1 * * 0 0 1 * 1 1 0 * 0 * * 0 1 0 * 0 0 1 1 1 * 0 0 1 0 * 0 1 1 1 1 * * 0 1 1 * 0 1 0 1 0 * * 0 消去子句 x9x11=01 。 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 0 0 * 1 1 1 1 1 * * 0 0 1 * 1 1 0 * 0 * * 0 1 0 * 0 0 1 1 1 * 0 0 1 0 * 0 1 1 1 1 * * 0 1 1 * 0 1 0 1 0 * * 0 消去子句 x10x11=01 。 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 0 0 * 1 1 1 1 1 * * 0 0 1 * 1 1 0 * 0 * * 0 1 0 * 0 0 1 1 1 * 0 0 1 0 * 0 1 1 1 1 * * 0 1 1 * 0 1 0 1 0 * * 0 消去子句 x7x10=01 。 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 0 0 * 1 1 1 1 1 * * 0 0 1 * 1 1 0 0 0 * 0 0 0 1 * 1 1 0 1 0 * 0 0 0 1 * 1 1 0 1 0 * 1 0 1 0 * 0 0 1 1 1 * 0 0 1 0 * 0 1 1 1 1 * * 0 1 1 * 0 1 0 1 0 * * 0 消去子句 x8x9=10 。 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 0 0 * 1 1 1 1 1 1 * 0 0 1 * 1 1 0 0 0 * 0 0 0 1 * 1 1 0 1 0 * 0 0 0 1 * 1 1 0 1 0 * 1 0 1 0 * 0 0 1 1 1 1 0 0 1 0 * 0 1 1 1 1 1 * 0 1 1 * 0 1 0 1 0 * * 0 消去子句 x1x6 x7=001 。 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 0 0 * 1 1 1 1 1 1 * 0 0 1 * 1 1 0 0 0 * 0 0 1 0 * 0 0 1 1 1 1 0 0 1 0 * 0 1 1 1 1 1 * 0 1 1 * 0 1 0 1 0 * * 0 消去子句 x2x4 x5=001 。 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 0 0 * 1 1 1 1 1 1 * 0 0 1 * 1 1 0 0 0 * 0 0 1 0 * 0 0 1 1 1 1 0 0 1 1 * 0 1 0 1 0 * * 0 消去子句 x5x7x10=110 。 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 0 0 * 1 1 1 1 1 1 1 0 0 1 * 1 1 0 0 0 * 0 0 1 0 * 0 0 1 1 1 1 0 0 1 1 * 0 1 0 1 0 * 1 0 消去子句 x9x10x11=110 。 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 0 1 * 1 1 0 0 0 * 0 0 1 0 * 0 0 1 1 1 1 0 0 1 1 * 0 1 0 1 0 0 1 0 消去子句 x3x9=10 。 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 0 1 0 1 1 0 0 0 0 0 0 0 1 0 1 1 0 0 0 1 0 0 0 1 1 1 1 0 0 0 1 0 0 1 0 * 0 0 1 1 1 1 0 0 1 1 0 0 1 0 1 0 0 1 0 消去子句 x3x8x9=001 。 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 0 1 0 1 1 0 0 0 0 0 0 0 1 1 1 1 0 0 0 1 0 0 1 0 * 0 0 1 1 1 1 0 0 1 1 0 0 1 0 1 0 0 1 0 最后剩余可能解如表 3 所示。 表 3 剩余可能解 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 0 1 0 1 1 0 0 0 0 0 0 0 1 1 1 1 0 0 0 1 0 0 1 0 0 0 0 1 1 1 1 0 0 1 0 1 0 0 1 1 1 1 0 0 1 1 0 0 1 0 1 0 0 1 0 表 3. 每行的反码数就是这个 SAT 问题的全部解(见表 4 )。 表 4 SAT 全部解 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 1 0 1 0 0 1 1 1 1 1 1 1 0 0 0 0 1 1 1 0 1 1 0 1 1 1 1 0 0 0 0 1 1 0 1 0 1 1 0 0 0 0 1 1 0 0 1 1 0 1 0 1 1 0 1 我们知道, 11 个逻辑变量的 SAT 的全部可能解有 2 11 =2048 个,如果用穷举法,得验证 2048 次。这里我们仅用了 22 次就求出全部 SAT 解了。这种“量子纠缠态”的方法不值得推广吗? 我相信这将带来数学和计算机科学的空前变革。数据纠缠态的计算机编程将PK量子计算机。 最后说一句,科学家要实事求是地探讨问题,瞎想会进入唯心主义的泥坑。 2017/3/1
个人分类: SAT问题|3802 次阅读|5 个评论
这样的难题大家都可以看懂,需要送到国外认可吗?
热度 1 accsys 2016-10-31 09:17
姜咏江 用 n 个逻辑变量和其变量非形式中的不超过 k ( k 是一个常数)个,写出若干个或运算多项式(子句),问能不能设定这 n 个变量的一组值(是一个 n 位二进制数),使每一个多项式的逻辑值都是 1 (真)?这个问题就是被国外认定的世界难题 SAT 。 举个例子,有逻辑变量 x 1 , x 2 , … , x 5 ,它们的非形式是 x 1 ’, x 2 ’ , x 3 ’, x 4 ’, x 5 ’ ,随便写出的多项式有: x 1 ’+ x 2 ’+ x 3 ’+ x 4 ’+ x 5 ’ , x 1 ’+ x 2 ’+ x 3 + x 4 + x 5 ’ , x 1 + x 2 ’+ x 3 + x 4 ’+ x 5 ’ , x 1 + x 2 + x 3 ’+ x 4 ’+ x 5 ’ , 问是否能够将这几个多项式值都为 1 的那些二进制数找出来? 这些多项式中都有变量的非项,可以马上找出 00000 可以满足要求。 如果上面的由 5 个变量及其非形式组成的多项式可能“残缺不全”,并且有很多个,你还能够一下子找出满足条件的二进制数吗?这个问题用穷举法可以办到,这需要将二进制数从 00000 一直到 11111 这 32 个数一一带入每个多项式验证。 n 个变量的这种验证次数总是 2 n 。 显然,当 n 较小的时侯,验证的工作量不大,但若 n 变大,而 k 不变的时侯,工作量就会以惊人的速度增大,以至于有上百个变量,而多项式并不太多的时侯,用计算机来验证也难以短时间内完成。 有 n 个变量的 SAT 如果有解,一定是在二进制数 0 ~ 2 n -1 之中。能不能根据多项式将这 2 n 个数中不是解或是解的单独找出来?这样在 n 位二进制数已知的情况下,速度会加快。 为了简单,我们用 1 表示多项式中的变量 x ,用 0 表示 x ’。那么每个多项式就可以写成二进制数的形式。如此我们就引进了子句块的概念,并且能够证明互反子句(二进制数表示的子句互为反码)都不在子句块中,都是 SAT 解的组成部分,有一个在子句块中,它的反子句就不是 SAT 解的组成部分。所谓子句块是相同变量组成的子句全体。子句是不是 SAT 解的组成部分,是由数码的位置来确定的。例如, 1 1 0 是 11100 、 10100 、 ... 、 11110 的组成部分,但不是 01100 的组成部分,虽然 110 在 01100 当中,这是因为 1 1 0 在 01100 对应位置数码不同。 我们能不能用带位置二进制数码表示的子句,找出 SAT 的全部解?这就是本文要谈的中心内容。 计算机中的数都是二进制数码表示的,同一数码在不同位置是它们的根本区别。 如果一组数码和一个子句块变量位置相对应,且能够使子句块中每一个子句的值为1,那么这组数码一定是 n 个变量SAT解的组成部分;如果这组数码虽然与子句块的变量的位置对应,但不能使这个子句块的所有子句值为1,那么这组数码对应所在的 n 位二进制数,一定不是 n 个变量SAT的解。 我们把二进制表示的子句所在n位二进制数叫子句的标志。根据子句消去法,SAT的解一定在子句标志当中。如果我们将SAT子句的所有标志,通过子句将其它们从 n 位二进制数中消去,那么剩下的 n 位二进制数就一定是由SAT中子句的反子句或不在SAT中的互反子句构成的。 在子句消去法中有一个很重要的定理: 反子句不在和互反子句都不在子句块中的子句是该子句块的解 。 根据这一定理,将剩下的 n 位二进制数取反,得到的数一定都是SAT的解。 如果你对 SAT 有所了解,或者看过我的子句消去法,我想理解上面的叙述不会有问题。问题会在这一过程中的算法,是不是多项式时间复杂度? 假如 SAT 中最高阶子句有 k 个变量,那么 SAT 最多有2 k C n k +2 k-1 C n k-1 +...+2C n 1 这 k 次多项式计算结果个子句。我们可以先从低阶子句开始消去子句标志,那么最多也就是要进行 2 k C n k +2 k-1 C n k-1 +...+2C n 1 次(实际上,由于高阶子句包含低阶子句,这种操作要少得多)就可以完成子句标志消去的工作,剩下的 n 位数的反码就都是 SAT 的解!可见整个 子句标志消去法 的算法时间复杂度为 O( n k ) 。 需要说明,在计算机中 0 ~ 2 n -1 个二进制数是放在文件中,或地址编码本身,计算机中只有二进制数,因而寻找子句的标志可以用一个指令实现。由此可见,由子句消去其标志就是一个 O(1) 时间复杂度。 以上我谈的问题是计算机理论和方法中的问题,搞计算机理论的人都可以鉴定对与错,没有必要非要请“洋专家”评判。 请参阅: http://blog.sciencenet.cn/blog-340399-1009188.html http://blog.sciencenet.cn/blog-340399-1009397.html http://blog.sciencenet.cn/blog-340399-987007.html 2016-10-31
个人分类: SAT问题|2734 次阅读|1 个评论
3-SAT问题中如何选择算法操作对象?
accsys 2016-7-2 07:41
3-SAT问题中如何选择算法操作对象? 姜咏江 计算机科学中的 3-SAT 问题之所以成为 NP 问题,是因为算法的操作对象选择变量造成的。将操作对象选择为子句,就会设计出多项式时间复杂度算法,从而就找到了 NP-complete 问题转化成 P 类问题的基本方法。 一年前我创造的“子句消去计数法”称为“子句标志消去法”更为恰当,因为那些子句计数器就是起到一个标志的作用。 子句标志消去法就是将 3-SAT 问题的操作对象选择为子句,从而避开了以变量为操作对象的穷举法,成为了最直接的多项式时间复杂度的算法。 以附录中与田文洪老师讨论的问题为例,其中变量 x 和 y 都有 n 个,变量的总数为 2n 个。转化成 n-CNF 之后,如果以变量做为操作对象,那么算法的规模即为 2n 。由于每个变量可以取值 0 和 1 ,故每次操作对象的值都具有不确定性,这就造成算法的众多分支,形成了算法的树形结构。 子句标志消去法以此例中的子句为操作对象,由于每个子句的值是确定的,而将子句数 m 做为规模,其标志值就在 0 ~ 2 2n -1 这些 2n 位二进制数中间,则对于每个子句只要进行一次标志查找,就可以实现操作的结果,而无需对同一个子句进行反复操作。因而子句标志消去法这个算法时间复杂度就是 O(m) 。 读者不难理解,子句标志消去法对 3-SAT , k-SAT , n-SAT 同样适用。 2016-7-2 附录: 田文洪 2016-7-109:47 姜老师,需要说明一下您建议的方法如何避开CNF子项数量是2^n的?这个输入若是我第一个评论中的例子,例如把(x1∧y1)∨(x2∧y2)∨...∨(xn∧yn)变成CNF(conjunctivenormalform)的例子: (x1∨x2∨…∨xn)∧ (y1∨x2∨…∨xn)∧ (x1∨y2∨…∨xn)∧ (y1∨y2∨…∨xn)∧...∧ (x1∨x2∨…∨yn)∧ (y1∨x2∨…∨yn)∧ (x1∨y2∨…∨yn)∧ (y1∨y2∨…∨yn). 这是输入的话,您建议的方法是如何做的? 博主回复(2016-7-112:26) : 1. 将其它逻辑表达式转化成k-CNF的过程不应该算到求k-CNF=1的满足解算法。 2.k-CNF=1求解穷举法是以变量个数n做为规模来计算的。操作的对象是逻辑变量,对每一个逻辑变量设值都有不确定性,才会产生指数级的重复执行。 3.用子句标志消去法是以子句数m为规模来计算的。操作的对象是子句,且每个子句的表示值是确定的,施行消去的的过程没有不确定性,因而对每个子句来说这是一个连续确定的操作过程。 4.子句数m的变化范围也是正整数集,并且是由k-CNF中的子句数来确定的,子句的变量构成与变量数n有关,变量多,子句的构成会多一些,然而子句数量m却在一定范围内是自由的。取值4096以内整数的变量x和取值2^12以内的整数的变量m没什么区别。不能因为2^12是n=12时的2^n,就认为m与x完全不同。 5.此例的n只是k=n而已,实际上变量的数量,如x和y的数量对等,变量数至少是2n。但不论变量数有多少,由于子句不可重复,子句数m取值总是自然数有限序列,而子句标志不论变量个数有多大(其到达某值N)子句标志数也是一个有限正整数,最多也不会超过2^N个。
个人分类: 3SAT解法|3606 次阅读|0 个评论
k=n时k-SAT能快速求解吗?答田文洪老师
热度 1 accsys 2016-6-29 12:57
k=n 时 k-SAT 能快速求解吗? 答田文洪老师 田文洪 2016-6-2821:45 姜老师,一种情况就是如同SAT问题(可把3-SAT看作其特殊组合形式),当CNF输入项是2^k个不同项时,你所建议的方法的计算复杂度。此种情况可能是SA丅问题的最坏或最难情况,应该说明一下。 博主回复(2016-6-2821:59) : 田老师,子句标志消去法基础在于反子句的概念。SAT是1到k个变量的子句都可能存在,都有反子句。只要n位二进制数可以由无反子句的子句或不在SAT中的子句构成,那么这个数就一定是SAT的解。 上面是我与田老师的交流(见 http://blog.sciencenet.cn/blog-340399-987007.html )。我的回复不会使田老师满意吧?也许答非所问。遵照田老师的建议,我需要很好地解答这方面的问题,这样能够一起更好地讨论。 1.k=n子句就是标志 若k=n,那么k-SAT中每个子句就是它的标志。因而只要看n位二进制数有哪些数不在k-SAT当中,取其反码则为解。特别是当子句数为2 n 个时,可以直接判定无解。这种情况应该说最简单,而不是最复杂。虽然k=n时最多可有 2 n 个子句,但我们查找的是不在0~ 2 n -1中的数,这个过程的算法时间复杂度为O(x),x是一个变量。 2. 怎样理解 SAT 有n个变量的SAT,子句可以从1阶到n阶,因而各阶的子句总数会远远超过2 n ,但依子句消去法可知,低阶子句消去的同时,包含低阶子句的高阶子句也同时被削去了。由于低阶子句数总是高阶子句的组成部分,如果任何一低阶子句存在完全子句块,SAT都不会有解。不然从低向高阶施行子句标志消去的过程,剩下的子句标志都与剩下的n阶子句数有关。由1可知,其操作过程同k=n时的复杂度相同。 我们还是举例说明吧。 例如,在下面的SAT中有2阶和3阶子句。当我们操作低阶子句消去子句标志时,高阶子句如果包含低阶子句,那么高阶子句的子句标志也同时被消去了,这样剩下的子句标志一定都是被消去子句的反子句或SAT中没有的子句构成的。于是知剩下的这些n位数的反码,一定是SAT的解。 … x4 x3 x2 x1 x0   NO   x4 x3 x2 x1 x0 1 0 0   0 0 0 0 0 0 0 1   0 0 0 0 1   0 0 0       2   0 0 0 1 0   1 0 0       3   0 0 0 1 1   1 0 1       4   0 0 1 0 0   1 1 1       5   0 0 1 0 1   0   0 1     6   0 0 1 1 0   1   1 0     7   0 0 1 1 1   1 1     1   8   0 1 0 0 0   0 0     0   9   0 1 0 0 1     1 0 1     10   0 1 0 1 0     1 1 0     11   0 1 0 1 1     0 1 1     12   0 1 1 0 0     1 1 1     13   0 1 1 0 1     0 0 0     14   0 1 1 1 0       0 1 0   15   0 1 1 1 1       1 0 0   16   1 0 0 0 0       1 1 0   17   1 0 0 0 1       0 0 1   18   1 0 0 1 0               19   1 0 0 1 1               20   1 0 1 0 0   21   1 0 1 0 1 AS.8' 1 0 1 1 1   22   1 0 1 1 0 AS.24' 0 0 1 1 1   23   1 0 1 1 1               24   1 1 0 0 0               25   1 1 0 0 1               26   1 1 0 1 0               27   1 1 0 1 1               28   1 1 1 0 0               29   1 1 1 0 1               30   1 1 1 1 0               31   1 1 1 1 1 是否正确,还请多多指正。 姜咏江 2016-6-29
个人分类: k-SAT求解|3747 次阅读|2 个评论

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

GMT+8, 2024-5-13 01:58

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部