证明从CNF到DNF的转换是NP-Hard


20

如何证明从CNF到DNF的转换是NP-Hard?

我不是在寻求答案,只是在提出一些有关如何证明它的建议。


5
要进行深入分析,请查看本文“关于将CNF转换为DNF”
Vor

@ A.Schulz:史蒂夫·库克(Steve Cook)论文中的原始定义使用库克归约法对其进行定义。看来这是讨论一般NP硬度en.wikipedia.org/wiki/NP-hard
Kaveh 2012年

CNF <-> DNF转换不是决定,必须将其转换为语言。它更多的是具有输入和输出的功能,它必须转换为决策问题,以询问其是否在NP等中。认为非决策问题已被证明会导致规模的指数膨胀(例如,在Vors ref中),因此NP决策问题的完整版本(如果有的话)可能会大大简化。同样因为Vors ref显示了CNF <-> DNF转换的实际复杂性是一个活跃的研究问题...请注意,压缩算法的效率有些相似...
vzn 2012年

2
@vzn这个问题询问它是否为NP-硬,而不是NP-完整。这意味着不需要NP的成员资格,因此不必成为决策问题。
David Richerby 2015年

Answers:


18

非正式地:

在DNF中,您可以选择任意子句为true,以使公式为true。这意味着等效于某个CNF的DNF基本上是对坐在CNF上布尔值的所有解的枚举。注意,解决方案可能是指数级的。由于为单个解决方案求解CNF的布尔坐姿是NP完全的,因此转换为DNF本质上意味着解决每个解决方案。因此它至少与布尔SAT一样硬,因此是NP硬的。

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.