为什么证明一个问题是NP完全的为什么很重要?


Answers:


26

阿里,好问题。

假设您想证明某些问题P在计算上很困难。现在,您可以基于我们还没有任何有效算法的事实来推测P很难。但这是脆弱的证据,不是吗?可能是我们错过了查看P的好方法,这很容易解决。因此,为了推测P是很难的,我们希望积累更多的证据。减少提供了一个工具来做到这一点!如果我们可以将其他自然问题Q简化为P,则表明P至少与Q一样困难。但是Q可能是来自某些完全不同的数学领域的问题,人们可能为解决Q而努力了数十年。因此,我们可以看到我们未能找到有效的Q算法来证明P很难。如果我们有很多这样的Q'

这正是NP完整性理论所提供的。如果您证明自己的问题是NP完全问题,那么您已将其难度与数百个其他问题的难度联系在一起,每个问题都引起了各个社区的极大关注。因此,从道德上来讲,可以确信您的问题确实很困难。


因此,最初的目标是为P找到一种有效的算法,但是由于这似乎无法实现,因此假设P在计算上很困难,然后您的答案就可以解释其余的内容吗?
阿里2010年

我们想证明问题P在计算上是困难的,但是我们不想假设P很难证明P是困难的:)相反,如果您证明P是NP完全的(甚至NP-hard但让我们忽略这里的区别),您已经证明,如果数百个已经仔细研究的问题中有一个很困难,那么P也很困难。这是因为,如果有一个针对P的有效算法,那么针对数百个问题中的每一个问题也将具有有效的算法。
arnab 2010年

4
@Ali:我强烈建议您看一本介绍复杂性理论的教科书。该网站实际上不是此类问题的论坛,而是更多针对研究级问题的论坛。
arnab

5
@Ali:我绝对建议您阅读Garey和Johnson。书中的著名漫画是必看的!
伊藤刚(Tsuyoshi Ito)2010年

9

证明问题NP-Complete是一项研究成功,因为它使您不必为正在研究的一般问题寻找有效而准确的解决方案。事实证明,您的问题是一类问题的成员,如此困难,以至没有人能够找到针对任何问题的有效且精确的算法,而针对任何问题的此类解决方案将意味着对所有问题。

它通常是垫脚石,因为您的问题仍然存在-您只需放松要求即可。通常,人们尝试找出如何放松“有效”,“精确”或“一般”中的一项或多项。低效和精确通用是尝试在这些算法的指数中找到越来越好的常数。有效和一般无关是对近似算法的研究。有效而精确但并非通用的研究是对固定参数易处理性的研究,以及对可以找到有效算法的输入子类的搜索。


三种缓解问题的好方法!我猜随机算法属于“有效且不敏感且通用”类别。
张显之张张之之

真?并非所有随机算法都不精确。
杰夫斯

当然,您是对的,JeffE。另外,我知道您正在(或正在)教我的一名前学生学习算法!至于先贤的观点,我认为随机算法不太适合这种方案。当然,某些随机算法(想到的是遗传算法和神经网络)不精确但高效且通用,但是某些随机算法非常精确-考虑用于验证数字的算法为素数!这是一个随机算法,但是我非常有信心,没有人能从任何合理的实现中获得非质数。
Peter Boothe 2010年

5

NPcomplete

NPcomplete,您有一些证据可以证明您的推测,因此您应该开始考虑其他方法(例如,改变问题以使其变得更容易)。

NPcomplete

NPcomplete问题,这可能会导致你新的见解。

P=NP3SAT

NPcompleteCLIQUE

总结,表征问题使您可以使用常见技术。通过研究与之相关的课程,您可以抽象地思考,而不必担心这个特定问题的细节,而这在数学和科学领域都是很普遍的。使用类而不是单个成员可以使您使用已知的技术,此外,还可以将您的见解应用于更多的对象,而不仅仅是一个对象。


2
许多人在实践中解决了NP完全问题,即使他们很难估计NP。通常情况下,许多问题变得容易得多,尽管这很难显示。要证明在实践中效果很好的启发式算法,甚至更困难。我建议软件架构师在放弃和更改她的设计之前,先询问某人问题是否真的“很”困难。
Yuval Filmus 2010年

我并不是说设计需要改变。在我看来,使用启发式算法或近似算法(错误吗?)就像改变问题……因为您知道自己正在寻求不太精确的解决方案(可以接受吗?这取决于应用程序!)。
chazisop 2010年

3

每个问题与其他问题都有若干联系。另外,问题和复杂性类别之间存在关系。

因此,将一个问题分类为NPC通常可以使我们深入了解其他问题以及复杂性类别。

例如,考虑图同构(GI)问题。在以下论文中:

乌韦·舍宁 图同构处于低层次结构中第四届计算机科学理论方面年度学术会议论文集,1987,114-124;也:计算机与系统科学杂志,第一卷。37(1988),312–323。

事实证明,如果GI∈NPC,则多项式层次结构(PH)崩溃到其第二级。这将是结构复杂性理论的重大突破。


3

我看到以前的答案解释了为什么重要的是要知道问题是否是NP完全的,但是似乎没有一个问题可以直接解决这个问题:“p是NP完全的” 并不被认为是所有人的研究成功p。这取决于各种事情,例如是否p 有趣的是,证明是否具有新技术,p 是NP完全的”会产生有趣的结果,等等。


1
我听说有一段时间您证明某些问题是NP完全的,您将获得博士学位论文。真的吗?
张显之张张之之

@ Hsien-ChihChang张显之:我不能对此发表评论,但是那些结果肯定在几十年前更受欢迎。这些天来发表论文似乎越来越困难,您只能“证明”硬度结果(当然,“著名问题”除外),而从70年代到80年代,这并不是问题。在此期间,这类论文很多。
安东尼·拉巴雷
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.