摘要: 我们证明了最小等价DNF问题是∑ 2 P \sum_2^P ∑ 2 P -完全的,解决了Stockmeyer留下的猜想。我们还考虑了第二层多项式结构中相关优化问题的复杂性和近似性,即寻找布尔函数的最短蕴含项。我们证明,当输入作为DNF给出时,对高于 c o N P coNP co NP 的复杂性类使用O ( l o g 2 n ) O(log^2n) O ( l o g 2 n ) -limited非确定图灵机可以完成这个问题。当输入作为公式或电路给出时,这个问题是∑ 2 P \sum_2^P ∑ 2 P -完全的,并且在分别在因子n 1 / 2 − ϵ n^{1/2-\epsilon} n 1/2 − ϵ 和n 1 − ϵ n^{1-\epsilon} n 1 − ϵ 是∑ 2 P \sum_2^P ∑ 2 P -hard的。
1. Intro
逻辑综合领域等很多领域都在研究电路最小化问题,这个问题自从Stockmeyer的多项式层次相关的论文提出一直被猜测是∑ 2 P \sum_2^P ∑ 2 P -完全的,但是一直没有被证明。本文证明了MIN-DNF问题是∑ 2 P \sum_2^P ∑ 2 P -完全的,并且对于DNF形式给出的输入可以用一个复杂性不高于O ( l o g 2 n ) O(log^2n) O ( l o g 2 n ) 的非确定图灵机解决。
1.1. Previous Work
有很多讨论电路简化/DNF最小化的文章,但是基本没有证明它复杂性的相关工作。Hemaspaandra and Wechsung的工作证明了MIN-DNF是P 2 N P P^{NP}_2 P 2 NP -hard的(Δ 2 P \Delta_2^P Δ 2 P ?)或NP-hard的。
1.2. Practical Significance
In the more common case of NP-complete problems, a completeness result removes the likelihood of an efficient exact solution and justifies a concentration of effort on approximate or heuristic solutions.
虽然有上面的论断,但是用启发式或者近似的方法,也都要求解决“子问题”的时候要有精确性,如逻辑综合程序ESPRESSO。研究这些子问题的复杂度和高效性也是很重要的。
2. Preliminaries
设C C C 是合取项,f f f 是一个布尔函数,满足C → f C \rightarrow f C → f 为永真式,则称C C C 是f f f 的蕴含项。
2.1. Problems
Minimum equivalent DNF(MIN-DNF \text{MIN-DNF} MIN-DNF ): 给定一个析取范式ϕ \phi ϕ 和一个整数k k k ,是否存在一个等价于ϕ \phi ϕ 且长度不超过k的析取范式?
Short-IMP D N F \text{Short-IMP}^{DNF} Short-IMP D NF :析取范式ϕ \phi ϕ 有大小不超过k k k 的蕴含项。
QSAT 2 \text{QSAT}_2 QSAT 2 :给定分离的变量集X 1 , X 2 X_1, X_2 X 1 , X 2 ,以及一个3-DNF \text{3-DNF} 3-DNF 公式ϕ \phi ϕ ,使得X 1 ∪ X 2 , ∃ X 1 ∀ X 2 ϕ X_1 \cup X_2, \exists X_1\forall X_2 \phi X 1 ∪ X 2 , ∃ X 1 ∀ X 2 ϕ 。
观察:
如果C 1 C_1 C 1 是f f f 的一个蕴含项,C 2 C_2 C 2 是满足C 1 ⊆ C 2 C_1\subseteq C_2 C 1 ⊆ C 2 的一个合取范式,则C 2 C_2 C 2 也是f f f 的一个蕴含项
f = f 1 ∧ f 2 f = f_1 \land f_2 f = f 1 ∧ f 2 ,则f f f 的蕴含项也是f 1 , f 2 f_1, f_2 f 1 , f 2 的蕴含项
f = f 1 ∨ f 2 f=f_1\lor f_2 f = f 1 ∨ f 2 ,则f 1 f_1 f 1 的蕴含项也是f f f 的蕴含项
引理一: 设f ( x 1 , . . . , x n ) f(x_1, ..., x_n) f ( x 1 , ... , x n ) 是一个布尔函数,W ⊆ { x 1 , . . . , x n } W\subseteq \{x_1,...,x_n\} W ⊆ { x 1 , ... , x n } 为”set of variables to weight”(会被后面的Boolean parity function处理的变量)。定义f ′ ( h 1 , . . . , h n ) f'(h_1, ..., h_n) f ′ ( h 1 , ... , h n ) ,其中h i h_i h i 是如下定义:如果x i ∈ W x_i\in W x i ∈ W ,则h i h_i h i 是m m m 个变量的布尔奇偶校验函数(把他们相异或)(原文:“an independent copy of the Boolean parity function on m variables”),否则h i = x i h_i=x_i h i = x i ,则下面两个声明成立:
SI ( f ′ ) = m i n c { ∣ v a r s ( c ) \ W ∣ + m ∣ v a r s ( C ) ∩ W ∣ } \text{SI}(f')=min_c\{|vars(c)\backslash W|+m|vars(C)\cap W| \} SI ( f ′ ) = mi n c { ∣ v a rs ( c ) \ W ∣ + m ∣ v a rs ( C ) ∩ W ∣ } ,其中C C C 是f f f 的所有蕴含项,S I ( f ) SI(f) S I ( f ) 是指f f f 的最小蕴含项的长度
如果C C C 是f f f 的蕴含项且v a r s ( C ) ∩ W = ∅ vars(C)\cap W=\empty v a rs ( C ) ∩ W = ∅ ,则C C C 是f ′ f' f ′ 的蕴含项
证明: 第二个声明比较简单,因为如果v a r s ( C ) ∩ W = ∅ vars(C)\cap W=\empty v a rs ( C ) ∩ W = ∅ ,那么其中包含的变量在f ′ f' f ′ 里也都包含。对于第一个证明,假设有f ′ f' f ′ 的最小蕴含项C ′ C' C ′ ,对于每个i i i ,h i h_i h i 要么被C ′ C' C ′ 强制指定为0或1,要么是自由的(在与C ′ C' C ′ 一致的赋值中可能任意取0或取1)。如果是被强制指定的h i h_i h i ,则C ′ C' C ′ 一定要包含h i 或 ⌝ h i h_i或\urcorner h_i h i 或 ┐ h i ,如果x i ∉ W x_i\notin W x i ∈ / W ,那C ′ C' C ′ 就要用m项表示,否则只要用一个。如果是自由的h i h_i h i ,则只需要包含x i x_i x i 或者⌝ x i \urcorner x_i ┐ x i 一个,总长度就为
m i n C { ∣ v a r s ( C ) \ W ∣ + m ∣ v a r s ( C ) ∩ W ∣ } min_C\{|vars(C)\backslash W|+m|vars(C)\cap W| \} mi n C { ∣ v a rs ( C ) \ W ∣ + m ∣ v a rs ( C ) ∩ W ∣ }
选择公式: 给定n ≥ 2 n\geq2 n ≥ 2 个不相交变量集合S 1 , . . . , S n S_1, ..., S_n S 1 , ... , S n ,选择公式f f f 定义为:
f = ⋁ j = 1 ∣ S 1 ∣ ( s 1 j ∧ z 1 ) ∨ ( ⋁ i = 2 n − 1 ⋁ j = 1 ∣ S i ∣ ( z i − 1 ‾ ∧ s i j ∧ z i ) ) ∨ ⋁ j = 1 ∣ S n ∣ ( z n − 1 ‾ ∧ s n j ) f = \bigvee_{j=1}^{|S_1|} (s_{1j} \land z_1) \vee \left(\bigvee_{i=2}^{n-1} \bigvee_{j=1}^{|S_i|} (\overline{z_{i-1}} \land s_{ij} \land z_i)\right) \vee \bigvee_{j=1}^{|S_n|} (\overline{z_{n-1}} \land s_{nj}) f = j = 1 ⋁ ∣ S 1 ∣ ( s 1 j ∧ z 1 ) ∨ i = 2 ⋁ n − 1 j = 1 ⋁ ∣ S i ∣ ( z i − 1 ∧ s ij ∧ z i ) ∨ j = 1 ⋁ ∣ S n ∣ ( z n − 1 ∧ s nj )
其中s i j s_{ij} s ij 是S i S_i S i 中的变量,z z z 是新变量。
⋁ j = 1 ∣ S 1 ∣ ( s 1 j ∧ z 1 ) \bigvee_{j=1}^{|S_1|} (s_{1j} \land z_1) ⋁ j = 1 ∣ S 1 ∣ ( s 1 j ∧ z 1 ) 表示S 1 S_1 S 1 中至少有一个变量和z 1 z_1 z 1 同时为真;⋁ i = 2 n − 1 ⋁ j = 1 ∣ S i ∣ ( z i − 1 ‾ ∧ s i j ∧ z i ) \bigvee_{i=2}^{n-1} \bigvee_{j=1}^{|S_i|} (\overline{z_{i-1}} \land s_{ij} \land z_i) ⋁ i = 2 n − 1 ⋁ j = 1 ∣ S i ∣ ( z i − 1 ∧ s ij ∧ z i ) 表示从第二个开始,z i − 1 z_{i-1} z i − 1 和s i j z i s_{ij}z_i s ij z i 必须同真假,保证变量的选择依赖于前一个集合的选择;⋁ j = 1 ∣ S n ∣ ( z n − 1 ‾ ∧ s n j ) \bigvee_{j=1}^{|S_n|} (\overline{z_{n-1}} \land s_{nj}) ⋁ j = 1 ∣ S n ∣ ( z n − 1 ∧ s nj ) 表示z n − 1 z_{n-1} z n − 1 必须为假且S n S_n S n 中某个变量必须为真。
引理: 设f f f 是一个( S 1 , . . . , S n ) (S_1, ..., S_n) ( S 1 , ... , S n ) 的选择公式,且令C C C 是一个只包含⋃ i S i \bigcup_iS_i ⋃ i S i 中变量的合取式。当且仅当v a r s ( C ) ∩ S i vars(C)\cap S_i v a rs ( C ) ∩ S i 对所有i i i 至少有一个的时候,C C C 是f f f 的一个蕴含项。
证明: 设C C C 是f f f 的蕴含项。假设C C C 中不包含任何S i S_i S i 的变量,则将C C C 中所有变量设为1,而所有k > i k>i k > i 的z k z_k z k 设为0,根据上述选择公式可知中间项为假而C C C 为真,故C C C 不是f f f 的蕴含项,与前设矛盾。
3. Complexity of DNF Minimization
减少DNF长度的一个显然的方法是,去掉其中的一个变量,然后验证它是否是原DNF的一个蕴含项。如果有一个N P NP NP 的神谕机用于验证,上述方法显然是多项式时间的。但是需要指出的是,结果DNF的长度实际上取决于去除变量的顺序。为了考虑能否取得一个最短的DNF,考虑下面的更特殊的问题:
Short-IML CORE \text{Short-IML}^{\text{CORE}} Short-IML CORE : 给定析取范式ϕ = ⋁ i ∈ [ n ] t i \phi=\bigvee_{i\in [n]}t_i ϕ = ⋁ i ∈ [ n ] t i ,是否存在ϕ \phi ϕ 的蕴含项C C C 满足(1)∣ C ∣ ≤ k |C|\leq k ∣ C ∣ ≤ k ;(2)C ⊆ t n C\subseteq t_n C ⊆ t n ?
Claim 1: ∃ x ∀ y . ϕ ( x , y ) ∈ 2QBF \exists x\forall y.\phi(x,y)\in \text{2QBF} ∃ x ∀ y . ϕ ( x , y ) ∈ 2QBF , 当且仅当ϕ ′ \phi' ϕ ′ 有一个大小为m m m 的蕴含项C ′ C' C ′ 满足∀ i ∈ [ m ] . C ′ ∩ V i ≠ ∅ \forall i\in[m].C'\cap V_i\neq\empty ∀ i ∈ [ m ] . C ′ ∩ V i = ∅ 。ϕ ′ \phi' ϕ ′ 是将x 1 , . . . , x m x_1, ..., x_m x 1 , ... , x m 替换成w 1 , . . . , w m w_1,...,w_m w 1 , ... , w m ,x ˉ 1 , . . . , x ˉ m \bar x_1,...,\bar x_m x ˉ 1 , ... , x ˉ m 替换成v 1 , . . . , v n v_1,...,v_n v 1 , ... , v n ,V i = { w i , v i } V_i=\{w_i, v_i\} V i = { w i , v i } 。
证明: 若∃ x ∀ y . ϕ ( x , y ) ∈ 2QBF \exists x\forall y.\phi(x,y)\in \text{2QBF} ∃ x ∀ y . ϕ ( x , y ) ∈ 2QBF ,则存在x x x 的真值指派使得ϕ ( x , y ) \phi(x,y) ϕ ( x , y ) 为永真式,即有一个大小为m m m 的ϕ \phi ϕ 的蕴含项C C C ,每个变量都在{ x 1 , x ˉ 1 , . . . , x m , x ˉ m } \{x_1, \bar x_1,...,x_m,\bar x_m\} { x 1 , x ˉ 1 , ... , x m , x ˉ m } 中。根据上面替换,替换后的蕴含项为C ′ C' C ′ ,替换后的命题为ϕ ′ \phi' ϕ ′ ,显然C ′ C' C ′ 是ϕ ′ \phi' ϕ ′ 的蕴含项。反向同理,C ′ C' C ′ 定义了一个x x x 的真值指派使得ϕ ( x , y ) \phi(x,y) ϕ ( x , y ) 永真,故∃ x ∀ y . ϕ ( x , y ) ∈ 2 Q B F \exists x\forall y.\phi(x,y)\in 2QBF ∃ x ∀ y . ϕ ( x , y ) ∈ 2 QBF .
Claim 2: ϕ ′ ′ = ( f ∧ ϕ ′ ) ∨ S \phi''=(f\land \phi')\lor S ϕ ′′ = ( f ∧ ϕ ′ ) ∨ S 有一个长度最多为m m m 的蕴含项C ⊆ V C\subseteq V C ⊆ V ,当且仅当∃ x ∀ y . ϕ ( x , y ) ∈ 2QBF \exists x\forall y.\phi(x,y)\in \text{2QBF} ∃ x ∀ y . ϕ ( x , y ) ∈ 2QBF .
证明: 设ϕ ′ ′ \phi'' ϕ ′′ 有一个长度最长为m m m 的蕴含项C C C ,则C C C 至少包含每一个V i V_i V i 中的一项,原因如Claim 1所示。反向,设ϕ ′ ′ \phi'' ϕ ′′ 有一个长度不超过m m m 的蕴含项C ′ ′ ⊆ V C''\subseteq V C ′′ ⊆ V ,如果∃ i . V i \exists i.V_i ∃ i . V i 中两个元素都不在C ′ ′ C'' C ′′ 中,则根据引理2,C ′ ′ C'' C ′′ 不是ϕ \phi ϕ 的蕴含项,所以C ′ ′ C'' C ′′ 不是ϕ ′ ′ \phi'' ϕ ′′ 的蕴含项,错误。
命题: Short-IML CORE \text{Short-IML}^{\text{CORE}} Short-IML CORE 是∑ 2 P \sum_2^P ∑ 2 P -完全的。
证明: 由上述声明得知,一个输入为< ϕ ′ ′ , m > \left<\phi'', m\right> ⟨ ϕ ′′ , m ⟩ 的Short-IML CORE \text{Short-IML}^{\text{CORE}} Short-IML CORE 为真当且仅当 输入为< ϕ > \left<\phi\right> ⟨ ϕ ⟩ 的2QBF \text{2QBF} 2QBF 的问题为真。而iQBF \text{iQBF} iQBF 问题是∑ i P \sum_i^P ∑ i P -完全的,所以Short-IML CORE \text{Short-IML}^{\text{CORE}} Short-IML CORE 问题是∑ 2 P \sum_2^P ∑ 2 P -完全的。
命题: MIN-DNF \text{MIN-DNF} MIN-DNF 是∑ 2 P \sum_2^P ∑ 2 P -完全的。
证明: 考虑Short-IML CORE \text{Short-IML}^{\text{CORE}} Short-IML CORE 的一个输入< ϕ , k > \left<\phi,k\right> ⟨ ϕ , k ⟩ , 因为ϕ = ϕ ∧ ⌝ ϕ n ∨ ϕ n \phi=\phi\land\urcorner\phi_n\lor\phi_n ϕ = ϕ ∧ ┐ ϕ n ∨ ϕ n ,定义
ϕ ′ = ϕ n w 1 w 2 . . . w m ′ ∨ ⋁ i ∈ [ m ] ϕ i w 1 w 2 . . . w i − 1 w i + 1 . . . w m ′ \phi'=\phi_nw_1w_2...w_{m'}\lor \bigvee_{i\in[m]}\phi_iw_1w_2...w_{i-1}w_{i+1}...w_{m'} ϕ ′ = ϕ n w 1 w 2 ... w m ′ ∨ i ∈ [ m ] ⋁ ϕ i w 1 w 2 ... w i − 1 w i + 1 ... w m ′
其中m ′ = m a x { m , k + 1 } m'=max\{m,k+1\} m ′ = ma x { m , k + 1 } 。可以注意到上面的式子实际上就是把ϕ ∧ ⌝ ϕ n \phi\land\urcorner\phi_n ϕ ∧ ┐ ϕ n 拆开为一个析取范式。
Claim3: 如果C ∈ ϕ n C\in \phi_n C ∈ ϕ n 是ϕ \phi ϕ 的一个蕴涵项,则
ϕ ′ ′ = t n w 1 . . . w m ′ ∨ ⋁ i = i m s i ′ = C w 1 . . . w m ′ ∨ ⋁ i = 1 m s i ′ \phi''=t_nw_1...w_{m'}\lor\bigvee^m_{i=i}s_i'=Cw_1...w_{m'}\lor\bigvee^m_{i=1}s_i' ϕ ′′ = t n w 1 ... w m ′ ∨ i = i ⋁ m s i ′ = C w 1 ... w m ′ ∨ i = 1 ⋁ m s i ′
其中s i ′ = s i w 1 . . w m ′ s'_i=s_iw_1..w_{m'} s i ′ = s i w 1 .. w m ′ ,s i s_i s i 是ϕ ′ \phi' ϕ ′ 展开为DNF的项。令k ′ = k + m ′ + ∑ i = 1 m ∣ s i ′ ∣ k'=k+m'+\sum_{i=1}^m|s_i'| k ′ = k + m ′ + ∑ i = 1 m ∣ s i ′ ∣ ,则需要证明的MIN-DNF的输入就是< ϕ ′ ′ , k ′ > \left<\phi'',k'\right> ⟨ ϕ ′′ , k ′ ⟩ 。
证明: 因为ϕ = ϕ ′ ′ \phi=\phi'' ϕ = ϕ ′′ ,则C C C 也是ϕ ′ ′ \phi'' ϕ ′′ 的蕴含项,且C w 1 . . . w m ′ Cw_1...w_{m'} C w 1 ... w m ′ 也是,且长度不超过k ′ k' k ′ 。设一个σ = ⋁ i = 1 m s i ′ ′ \sigma=\bigvee_{i=1}^m s_i'' σ = ⋁ i = 1 m s i ′′ 是ϕ ′ ′ \phi'' ϕ ′′ 的一个长度最大为k k k 的等价DNF,则要证明下面:
对于所有的i i i ,σ \sigma σ 包含s i ′ ′ s_i'' s i ′′ 使得s i ′ ⊆ s i ′ ′ s_i'\subseteq s_i'' s i ′ ⊆ s i ′′
s i ′ ′ s_i'' s i ′′ 的总长度至少为∑ i = 1 m ∣ s i ′ ∣ \sum_{i=1}^m|s_i'| ∑ i = 1 m ∣ s i ′ ∣
s i ′ ′ s_i'' s i ′′ 没有覆盖所有t n w 1 . . . w m ′ t_nw_1...w_{m'} t n w 1 ... w m ′ 的赋值
因此,若< ϕ , k > ∈ Short-IML CORE \left<\phi,k\right> \in \text{Short-IML}^{\text{CORE}} ⟨ ϕ , k ⟩ ∈ Short-IML CORE ,则< ϕ ′ ′ , k > ∈ MIN-DNF \left<\phi'',k\right> \in \text{MIN-DNF} ⟨ ϕ ′′ , k ⟩ ∈ MIN-DNF 。证明完成了一个方向。
另一个方向上,因为ϕ ′ ′ \phi'' ϕ ′′ 的w w w 是新引入的,所以ϕ ′ ′ \phi'' ϕ ′′ 中的w w w 全部去除之后也要是ϕ \phi ϕ 的蕴含项,则上面的s i ′ s'_i s i ′ 也被去除了,就变回了k k k 。
后面去准备MICRO了,也没怎么看懂。。。