消解算法

1、首先理解消解算法的思想,分为s0,s1,s2三个集合,每次循环之后将新出现的简单析取式加入s2中,之后将s2赋值给s1,将上一次的s1赋值给s0,再次进行消解,若中间过程出现完全消解,即得到0,直接得结果,不能得到可满足式,若之后的循环中s2中再无新元素加入,则可得到可满足式
2、重要思想,利用字母表离散化,分别赋值0,1,2,分别表示未出现,真值为正,真值为负,s数组记录每组简单析取式变元的情况,将变元转换为字母表进行表示判断

3、c数组的引入,分别表示记录每次消解之后的情况,判断是否已出现,将新出现的集合加入s2集合中
4、注意main函数中,有两个循环,第一个循环表示至少经历第一次循环之后的情况,第二个循环表示第一次的情况,s1数组内部进行消解,注意两种情况的区别,第一个循环中有一些不必要的判断,但只要保证与上一次s1集合中元素进行判断即可

5、将所有的集合都加入到s数组中,注意利用下标进行元素的控制,特别是s2数组
posted @ 2022-05-20 14:56  心甘晴愿  阅读(495)  评论(1)    收藏  举报