Page 389 - 《软件学报》2024年第4期
P. 389

蒋璐宇 等: 针对   MUS  求解问题的加强剪枝策略                                                    1967


                  1.1   SAT 问题相关定义
                    SAT  问题是理论计算机科学中的重要问题, 同时也是               MUS、MCS   和  MSS  问题的基础. 下面给出      SAT  问题
                 中相关定义.
                    定义  1. 文字  (literal) [33]   . 给定一个布尔变量集合    X = {x 1 , x 2 ,..., x n } , 文字  l i  是变量  x i  或变量   x i  的否定  ¬x i  . 前
                 者称为正文字, 后者称为负文字.
                    定义  2. 子句  (clause) [33] . 子句  c i  是若干个文字的析取  c i = l i1 ∨l i2 ∨...∨l i j  .
                    定义  3. 合取范式   (CNF) [33]  . 一个  CNF  公式  F  是若干个子句的合取,   F = c 1 ∧ c 2 ∧...∧c m  .

                    定义  4. 命题可满足性问题      (SAT) [33]  . 对于给定的布尔变量集合, 若能找到一组对变量的真值指派, 使得给定
                 的命题公式的值为真, 则称该问题是可满足的; 反之, 若不存在这样的真值指派, 则称该问题是不可满足的.
                  1.2   不可满足问题中的概念及关系
                    MUS  是  SAT  问题的扩展, 在不可满足问题中, 每个约束描述为一个子句. 通过对不可满足问题中                      MUS、MSS
                 和  MCS  的计算, 可以从繁多的约束中分析出导致问题不可满足的原因. 下面给出                     MUS、MSS   和  MCS  的概念以
                 及三者之间的关系.
                    定义  5. 极小不可满足子集      (MUS)  [24]  . 称集合  U  是不可满足问题中子句集   F  的  MUS, 当且仅当  U ⊆ F  , 且  U

                 不可满足, 且   ∀c ∈ U,U\{c} 可满足.
                    定义  6. 极大可满足子集     (MSS) [24]  . 称集合  S  是不可满足问题中子句集   F  的  MSS, 当且仅当  S ⊆ F  , 且  S  可满
                 足, 且  ∀c ∈ F\S,S ∪{c} 不可满足.
                    定义  7. 极小修正集    (MCS)  [24] . 称集合  C  是不可满足问题中子句集   F  的  MCS, 当且仅当   C ⊆ F  , 且  F\C  可满
                 足, 且  ∀c ∈ C,F\(C\{c}) 不可满足.
                    根据定义    6  和定义  7  可以看出, 每一个   MSS  的补集都是一个     MCS, 反之亦然. 文献    [20] 中详细说明了    MUS
                 与  MCS  之间存在互为极小碰集的对偶关系. 下面给出极小碰集的概念:
                    定义  8. 碰集  (hitting set) [16] . 称集合  H  是集合簇  Q  的碰集, 当且仅当   H ⊆  ∪ Q ′ ∈Q Q  ,   ∀Q ϵQ,H ∩ Q , ∅ .
                                                                                  ′
                                                                                              ′
                                                                                      ′
                    定义  9. 极小碰集   (minimal hitting set) [16]  . 称集合  H M  是集合簇  Q  的极小碰集, 当且仅当集合  H M  是集合簇  Q
                 的碰集且集合     H M  的任意真子集都不是集合簇        Q  的碰集.
                    例  1: 给定一个布尔变量集合        X = {a,b}   和在其上的子句集  C = {l 1 : (a∨b), l 2 : (¬a), l 3 : (a∨¬b),l 4 : (b)}  , 则该
                 问题所对应的所有       MUS  为   {l 1 ,l 2 ,l 3 }  和   {l 2 ,l 3 ,l 4 }  , 所有  MSS  为  {l 1 ,l 3 ,l 4 }  、  {l 1 ,l 2 ,l 4 }  和   {l 2 ,l 3 } , 所有  MCS  为   {l 2 } 、
                       {l 1 ,l 4 } . 且根据  MCS  与  MSS  互为补集的关系、MCS  与  MUS  互为极小碰集的关系可知, 只要求出其中一
                 {l 3 }  和
                 者的全部集合, 其余两者就可以通过这些关系而求解出来.
                  1.3   哈斯图
                    在  MUS  枚举问题中, 求解的关键在于对子句集的幂集的探索. 而哈斯图结构能够很好地刻画出整个搜索空
                 间并能清晰反映出集合间的包含关系. 其形状上中间鼓, 两头尖, 中间层的顶点数量最多, 具有对称性. 一个含有                               4
                 个子句的不可满足问题对应的哈斯图如图               1  所示. 哈斯图在横向和纵向上都具有显著的特点.
                    (1) 横向: 哈斯图的最顶层节点代表子句集            C, 最底层节点代表空集. 同一水平层的节点所代表的集合具有相
                 同的基数, 自上而下基数逐层减一. 假设子句集              C  中共包含   n 个子句, 令最底层为第      1  层, 那么第  i 水平层  i (   从  1
                                         i
                 开始编号) 含有的节点个数为         C  .
                                         n
                    (2) 纵向: 哈斯图的纵向体现出节点所代表集合的包含关系. 对于哈斯图中的每个节点, 其下一层与之有边相
                 连的节点代表的是该集合的子集, 其上一层与之有边相连的节点代表的是该集合的超集, 相邻层节点间无边相连
                 则说明两个节点所代表的集合之间无包含关系. 由此可见, 从一个节点出发, 在向上的路径可到达的所有节点都是
                 该节点的超集, 在向下的路径可到达的所有节点都是该节点的子集.
                    公理  1. 一个可满足的子句集的任何一个子集也一定是可满足的, 一个不可满足的子句集的任何一个超集也
                 一定是不可满足的.
   384   385   386   387   388   389   390   391   392   393   394