DNF到CNF的转换:简单或困难


10

关于证明从CNF到DNF的转换是NP-Hard的线程(以及相关的Math线程):

从DNF到CNF的另一个方向如何?容易还是困难?

在本文的第2页,他们似乎暗示了两个方向,当他们说“ 我们对从CNF表示转换为DNF表示(反之亦然)时最大的尺寸爆炸感兴趣 ”时,两个方向都同样困难。

但是DNF-SAT在P中,而CNF-SAT在NP中。因此,在给定DNF表达式,应该有一个满足条件的 CNF表达式其长度是的长度的多项式。而且转换可以在多边形时间内完成。它是否正确?ϕ1个ϕ2ϕ1个ϕ1个ϕ2

编辑:更改等效equisatisfiable(即,附加的变量允许在)。ϕ2


您可以从任何公式转到CNF,而当原始公式处于多项式时间内时,CNF可以完全满足要求。这就是为什么CNF-SAT是NP完全的。任何SAT实例(一个NP完全问题)都可以在多项式时间内简化为CNF-SAT。我认为准确地翻译它,不仅保持可满足性有时总是会产生指数爆炸,但我不能肯定地说。
杰克2015年

参见en.wikipedia.org/wiki/Tseitin_transformation。本质上,如果允许引入辅助变量,则可以在多项时间内进行此转换(最多以线性方式增加公式的大小)。
jschnei 2015年

您需要确定是否要允许转换引入新变量,或者转换后的公式是否必须引用同一组变量(没有新变量)。这是一个微妙的问题,对答案产生了戏剧性的影响。那么,您想问什么?
DW

@Jake 因为 CNF-SAT是NP完全的,所以您可以从任何公式转换为可满足要求的CNF 。并不是“为什么” CNF-SAT是NP完全的:通常证明CNF-SAT是NP完全的证明并不涉及将任意公式转换为CNF。而是将图灵机转换为CNF公式。
David Richerby

对于DW和其他人-我想到的是可满足性。从这个意义上讲,似乎可满足性只是一种降低(在这种情况下,是另一种布尔公式)。
马丁·西摩

Answers:


14

如果您愿意引入其他变量,则可以使用Tseitin变换在多项式时间内将DNF转换为CNF形式。所得的CNF公式将与原始DNF公式可满足:只有当原始DNF公式可满足时,CNF公式才可满足。另请参阅https://en.wikipedia.org/wiki/Conjunctive_normal_form#Conversion_into_CNF

如果您不想允许引入其他变量,则从DNF转换为CNF格式是很困难的。特别地,测试DNF公式是否是重言式是很困难的。但是,可以在多项式时间内测试CNF公式是否为重言式(您只需单独检查每个子句是否为重言式,这很容易,因为每个子句都是文字的析取)。因此,如果您可以在不引入新变量的情况下在多项式时间内从DNF形式转换为CNF形式,那么您将获得用于测试DNF公式是否是重言式的多项式时间算法-鉴于我们的预期,这似乎不太可能P不等于co-NP。或者,换句话说,从DNF转换为CNF形式而不引入其他变量是共NP问题。

这之间的区别在于等价 VS equisatisfiability。等价要求两个公式具有相同的解集(因此不允许引入其他变量)。满足性只要求两个公式都可以满足或不满足(因此可以引入其他变量)。


@Mehrdad,请不要使用评论提出新问题。如果您有新问题要问,我们会在右上角有一个“问问题”。但是,只有一点提示...您可能想问一个新问题之前先阅读本页顶部的问题...,或者为此发表评论。我忍不住注意到您问了一个问题,在与您问题相同的页面上找到答案。
DW

@DW:糟糕,我实际上稍后看到了另一个帖子,对不起,在这里忘记删除我的评论。现在将其删除。
user541686 '16
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.