离散问题是NP问题而连续问题不是问题是规则吗?


27

在我的计算机科学教育中,我越来越注意到,大多数离散问题(至少是NP完全问题),而优化连续问题几乎总是很容易实现的,通常是通过梯度技术实现的。有例外吗?


14
当然有很多。二分和一般匹配以及最小割是三个经典的多项式时间可解离散问题。许多连续的非凸优化问题都是NP难题:找到凸集的直径,或计算3-d张量的射入范数。
Sasho Nikolov 2015年

6
下面是一个简单的连续优化问题是NP-难以解决:cstheory.stackexchange.com/questions/14630/...
尤卡Suomela

8
我不确定您会想到什么问题,但是通过梯度方法“解决”的许多连续问题并不是真正“解决”的:该方法只是找到某种局部最优值。
Suresh Venkat 2015年

1
到目前为止,所有的答复似乎都是反例,但是很高兴看到在某些情况下该规则确实成立。我想到的两个是线性规划与整数规划以及凸优化与亚模最大化。
usul 2015年

13
我认为整个离散与连续的事情都是红鲱鱼。一个问题必须具有非常特殊的结构才能有效解决。我认为真正的区别在于,在容易发生连续性问题的情况下,特殊结构趋向于凸性,而在容易解决离散问题的情况下,事物看起来更复杂:有时结构是亚模数或拟阵交点,但通常不是。这可能与我们还不太了解离散数学有关。
Sasho Nikolov 2015年

Answers:


41

我喜欢的一个示例问题是,给定不同的,确定是否:∫ π - π COS 一个1个 Ž COS 一个2 Ž ... COS Ñ Ž a1,a2,,anN

ππcos(a1z)cos(a2z)cos(anz)dz0

起初,这似乎是评估此积分的一个连续问题,但是如果存在集合的平衡分区,则很容易证明该积分不为零,因此该积分问题为实际上是NP完整的。{a1,,an}

当然,我鼓励尝试一些数值工具,以使自己相信,一旦足够大,大多数(如果不是全部)评估该积分的数值技巧注定会失败。n


4
既然我们在讨论这个话题,那么我可以找到的最早涉及此问题的参考文献是Moore和Mertens的“计算的本质”。他们没有提供任何参考,所以我假设他们是发明它的,或者它来自民间传说。如果有人知道此问题的根源,我将不胜感激。
乔·贝贝尔

大概不仅是大多数数值技术,而且对于所有足够大的?由于问题是NP完全的,因此使用精确的数值技术评估以多项式缩放的积分就足以显示P = NP。ñnn
EP

1
正确,始终在时间多项式中正确评估该积分的算法足以显示P = NP。另一方面,我无法100%排除某些我无法意识到的数值技术在此积分的特定实例上表现不佳的可能性,即使当很大时,就像SAT求解器通常能够做到的那样即使具有最坏情况的性能很差,也可以为某些具有数千个变量的公式找到令人满意的分配。因此,即使我怀疑这样的方法是否存在,我也会对我的答案进行一些套期。ñnn
乔·贝贝尔

3
显然,此问题的原始出处是:David Plaisted,一些多项式和整数可除性问题都是NP难的。SIAM Journal on Computing,7(4):458–464,1978年。该参考文献位于Moore和Mertens的后面,而不是文本本身。
乔·贝贝尔

26

存在许多形式为“测试此组合输入是否可以实现为几何结构”的连续问题,这些问题对于实数存在的理论(NP的连续模拟)是完整的。特别是,这意味着这些问题是NP难题,而不是多项式问题。示例包括测试给定图是否为单位距离图,是否可以在具有直线段边缘和最多给定交叉次数的平面上绘制给定图,或者是否可以拉伸给定伪线排列以形成线安排。

还有其他持续的问题甚至更难解决:例如,在3d中的多面体障碍中找到最短的路径是PSPACE完全的(Canny&Reif,FOCS'87)。


1
“多面障碍之间的最短路径”只是连续不断的,不是吗?我们可以将配置空间看作是许多离散部分的结合,这些部分对应于“拥抱”给定障碍物的路径。那么在每个给定零件内(即,在任何给定的障碍物内)的局部优化是很简单的,但是决定哪条路径具有全局最佳距离是问题的难点。
史蒂文·斯塔德尼基

13

尽管这不能完全回答您的原始问题,但这是一种哲学对立的(推测性)示例:一个问题,即表示形式是离散的,但所有难度都来自问题的“连续性”方面。

A={a1,a2,,am}B={b1,b2,,bn}i=1maij=1nbj很难,人们普遍怀疑它可能是NP困难的,实际上可能不在NP范围内(如评论中所述,有充分的理由认为它不是NP完整的);迄今为止,唯一已知的限制是多项式层次结构中的较高级别。显然,此问题的表示形式是尽可能离散的(一组整数和关于它们的是/否问题),但是由于出现了难题,因为尽管计算任意指定精度的平方根是一个容易的问题,但可能需要计算它们以较高的精度(可能是超多项式)来解决不平等问题。这是一个“离散”的问题,它出现在数量惊人的优化环境中,并有助于加剧其自身的复杂性。


4
我也非常喜欢这个示例,尽管有充分的理由指出,有很多理由认为它不是NP完整的。参见(cstheory.stackexchange.com/a/4010/8985)–
乔·贝贝尔

@JoeBebel非常好-我已经稍微修改了语言以反映这一点。谢谢!
Steven Stadnicki 2015年

6

离散问题通常更难解决(例如LP vs. ILP),但问题不是问题本身,而是离散性……约束条件如何影响您搜索域的方式。例如,您可能认为优化多项式是可以有效完成的事情,但是 确定四次凸(4级多项式)是NP-hard的

这意味着即使您已经以某种方式拥有最佳状态,简单地证明自己处于最佳状态已经是NP难题了。


我认为离散性也是问题的一部分。假设您将拥有LP的ILP变量。例如,您可以旨在找到LP变体的解决方案,但是仍然需要搜索2^n有趣的邻居 ”。
Willem Van Onsem

@CommuSoft:并非如此……离散不是问题。检验最短路径问题,它是一个离散问题,但归结为积分线性规划的一种特殊情况,它可以P时间求解(不要与整数线性规划相混淆,显然很难NP)。
Mehrdad 2015年

这并不令人感到意外:因为整数线性规划是NP完全的,所以P中的每个问题(可以在poly time中解决)都可以在ILP问题中的poly time中转换。
Willem Van Onsem

@CommuSoft:您是否已完整阅读评论?我不是在谈论ILP。
Mehrdad 2015年

抱歉,请快速阅读。但这仍然是因为约束是完全单模的,所以只有通过结构良好的约束的“宽限期”,这些问题才能轻松解决。通常,离散化是问题中有问题的方面。
Willem Van Onsem 2015年

5

尽管对于某些普遍存在的问题,这确实是正确的,但我认为这两个假设(取决于您定义为优化问题的假设)都不正确。

首先给出一些定义:大多数优化问题都不是NP的一部分。例如背包问题:一个人不能利用不确定性来构造最有价值的袋子,这很简单,因为不同的不确定性分支没有共享内存。NP也被定义为“多项式可验证”(验证证书)[1, p. 34]。在这种情况下,证书例如是bag:一个位串,如果第i位被设置,则表示第i个项是bag的一部分。如果这样的包比给定的阈值更有价值,您确实可以检查多项式时间(这是决策变量)),但就我们所知,您不能(基于我们所知)基于一个袋子(多项式袋子)来确定该袋子是否是所有可能袋子中最有价值的袋子。那是NPEXP之间的重要区别:在EXP中,您可以枚举所有可能的袋子,并记账哪个袋子是最好的袋子。

优化问题的决策变量在某些情况下是NP的一部分,需要明确区分最大化风格决策风格。在决策方面,问题是:“ 给定优化问题和效用范围,是否存在效用大于或等于该范围的解决方案 ”(或为最小化问题而稍作修改)。

我还假设由NP你的意思的(假设的)部分NP不是的一部分P。如果P = NP,当然NP-complete仍然存在,但是它将等于P(仅在某些归约概念上与P吻合,例如@AndrásSalamon的多项式多次多归约法),这并不是那么令人印象深刻(并会减少您在问题中指出的“ 差距 ”。

我越来越注意到大多数离散问题都是NP完全的。

现在我们已经解决了这一问题:P中存在许多优化问题:最短路径问题最大流量问题(对于积分容量),最小生成树最大匹配。尽管这些问题对您来说看起来似乎“微不足道”,但它们仍然是优化问题,在许多情况下,构造(和正确性证明)并不那么容易。因此,该主张并不包含所有离散问题都是NP完全的。给定P不等于NP,那么这些问题就不可能是NP完全的

ΣiP

而优化连续问题几乎总是可以轻松实现的。

NP 编程是一个流行的连续问题,它是二次编程

x

xTQx2+cTx

Axb

实际上,长期以来,线性编程也一直被认为是NP难的,但是具有很好的启发式单纯形法)。然而,Karmarkar的算法P中

从优化问题处理非凸对象的那一刻起,通常很难(即使不是不可能)找到有效的算法。

参考书目

[1] 计算复杂性,现代方法Sanjeev Arora和Boaz Barak


2
定义段落确实有点混乱。背包是一个NP优化问题。如果优化版本是NP,则“未知”是不正确的:按照定义,它不是。同样,我不认为我们知道在不等于PIe 3-SAT的条件下NP完全的任何问题都将是NP完全的,即使P = NP(实际上,如果P = NP则P中的每个问题都是NP完全的)。
Sasho Nikolov 2015年

@AndrásSalamon:点了。我删除了那部分。确实有点草率。
Willem Van Onsem

@AndrásSalamon:显然是这样。因此它说:“ 给定P不等于NP,因此这些问题不可能是NP完全的。
Willem Van Onsem 2015年

@AndrásSalamon:如果好了P=NP,在每一个问题NP完全是由定义部分NP和延伸。因此P,现在P意味着存在一个多项式算法。关键是,我认为转换并不重要,因为对于P中的每种语言,都必须存在一个多项式算法。是否进行(最多多项式)变换都无关紧要。它仍然是多项式,因此在P中。换句话说,由于原始元素位于P中,因此您可以免费进行每个多时间转换(不会导致复杂度更高的类)。
Willem Van Onsem

2
背包问题作为优化问题当然不是NP完备的,因为它不是决策问题,因此在NP中也不是。无论如何,我都明白您的意思,但这是我认为应该在像CStheory @ SE这样的研究级论坛上理所当然的本科级别细节,就像我不希望看到任何解释一样关于概率收敛与几乎确定的Mathoverflow收敛有何不同。
Sasho Nikolov
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.