Skip to content

The Minimum Equivalent DNF Problem and Shortest Implicants

Updated: at 15:06

摘要: 我们证明了最小等价DNF问题是-完全的,解决了Stockmeyer留下的猜想。我们还考虑了第二层多项式结构中相关优化问题的复杂性和近似性,即寻找布尔函数的最短蕴含项。我们证明,当输入作为DNF给出时,对高于 的复杂性类使用-limited非确定图灵机可以完成这个问题。当输入作为公式或电路给出时,这个问题是-完全的,并且在分别在因子-hard的。

1. Intro

逻辑综合领域等很多领域都在研究电路最小化问题,这个问题自从Stockmeyer的多项式层次相关的论文提出一直被猜测是-完全的,但是一直没有被证明。本文证明了MIN-DNF问题是-完全的,并且对于DNF形式给出的输入可以用一个复杂性不高于的非确定图灵机解决。

1.1. Previous Work

有很多讨论电路简化/DNF最小化的文章,但是基本没有证明它复杂性的相关工作。Hemaspaandra and Wechsung的工作证明了MIN-DNF是-hard的(?)或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

是合取项,是一个布尔函数,满足为永真式,则称的蕴含项。

2.1. Problems

Minimum equivalent DNF(): 给定一个析取范式和一个整数,是否存在一个等价于且长度不超过k的析取范式?

:析取范式有大小不超过的蕴含项。

:给定分离的变量集,以及一个公式,使得

2.2. Tools

观察:

引理一:是一个布尔函数,为”set of variables to weight”(会被后面的Boolean parity function处理的变量)。定义,其中是如下定义:如果,则个变量的布尔奇偶校验函数(把他们相异或)(原文:“an independent copy of the Boolean parity function on m variables”),否则,则下面两个声明成立:

证明: 第二个声明比较简单,因为如果,那么其中包含的变量在里也都包含。对于第一个证明,假设有的最小蕴含项,对于每个要么被强制指定为0或1,要么是自由的(在与一致的赋值中可能任意取0或取1)。如果是被强制指定的,则一定要包含,如果,那就要用m项表示,否则只要用一个。如果是自由的,则只需要包含或者一个,总长度就为

选择公式: 给定个不相交变量集合,选择公式定义为:

其中中的变量,是新变量。

表示中至少有一个变量和同时为真;表示从第二个开始,必须同真假,保证变量的选择依赖于前一个集合的选择;表示必须为假且中某个变量必须为真。

引理:是一个的选择公式,且令是一个只包含中变量的合取式。当且仅当对所有至少有一个的时候,的一个蕴含项。

证明:的蕴含项。假设中不包含任何的变量,则将中所有变量设为1,而所有设为0,根据上述选择公式可知中间项为假而为真,故不是的蕴含项,与前设矛盾。

3. Complexity of DNF Minimization

减少DNF长度的一个显然的方法是,去掉其中的一个变量,然后验证它是否是原DNF的一个蕴含项。如果有一个的神谕机用于验证,上述方法显然是多项式时间的。但是需要指出的是,结果DNF的长度实际上取决于去除变量的顺序。为了考虑能否取得一个最短的DNF,考虑下面的更特殊的问题:

: 给定析取范式,是否存在的蕴含项满足(1);(2)

Claim 1: 当且仅当有一个大小为的蕴含项满足是将替换成替换成

证明:,则存在的真值指派使得为永真式,即有一个大小为的蕴含项,每个变量都在中。根据上面替换,替换后的蕴含项为,替换后的命题为,显然的蕴含项。反向同理,定义了一个的真值指派使得永真,故.

Claim 2: 有一个长度最多为的蕴含项,当且仅当.

证明:有一个长度最长为的蕴含项,则至少包含每一个中的一项,原因如Claim 1所示。反向,设有一个长度不超过的蕴含项,如果中两个元素都不在中,则根据引理2,不是的蕴含项,所以不是的蕴含项,错误。

命题: -完全的。

证明: 由上述声明得知,一个输入为为真当且仅当 输入为的问题为真。而问题是-完全的,所以问题是-完全的。

命题: -完全的。

证明: 考虑的一个输入 因为,定义

其中。可以注意到上面的式子实际上就是把拆开为一个析取范式。

Claim3: 如果的一个蕴涵项,则

其中展开为DNF的项。令,则需要证明的MIN-DNF的输入就是

证明: 因为,则也是的蕴含项,且也是,且长度不超过。设一个的一个长度最大为的等价DNF,则要证明下面:

  1. 对于所有的包含使得
  2. 的总长度至少为
  3. 没有覆盖所有的赋值

因此,若,则。证明完成了一个方向。

另一个方向上,因为是新引入的,所以中的全部去除之后也要是的蕴含项,则上面的也被去除了,就变回了

后面去准备MICRO了,也没怎么看懂。。。


Previous Post
程序语言理论笔记
Next Post
I-ViT: Integer-only Quantization for Efficient Vision Transformer Inference