Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 验证NP难优化问题解的复杂性?_Algorithm_Complexity Theory_Lower Bound_Np - Fatal编程技术网

Algorithm 验证NP难优化问题解的复杂性?

Algorithm 验证NP难优化问题解的复杂性?,algorithm,complexity-theory,lower-bound,np,Algorithm,Complexity Theory,Lower Bound,Np,有许多优化问题是众所周知的NP难问题,如旅行商问题,MAX-SAT,或寻找图的最小色数。考虑到这类问题,我对以下问题的复杂性感到好奇: 给定一个NP难优化问题和一个候选解S,S是问题的最优解吗 直觉上,这似乎是一个协NP困难的问题,因为很容易通过猜测更好的解决方案并将其作为证据来反驳优化问题的答案,但我不知道如何证明这一点。事实上,我真的不知道如何解释这个问题的复杂性 有人知道这个决策问题的复杂性有什么好的下限吗?知道这是否是co-NP-hard、PSPACE-hard等会很有趣。NP-hard

有许多优化问题是众所周知的NP难问题,如旅行商问题,MAX-SAT,或寻找图的最小色数。考虑到这类问题,我对以下问题的复杂性感到好奇:

给定一个NP难优化问题和一个候选解S,S是问题的最优解吗

直觉上,这似乎是一个协NP困难的问题,因为很容易通过猜测更好的解决方案并将其作为证据来反驳优化问题的答案,但我不知道如何证明这一点。事实上,我真的不知道如何解释这个问题的复杂性

有人知道这个决策问题的复杂性有什么好的下限吗?知道这是否是co-NP-hard、PSPACE-hard等会很有趣。

NP-hard问题“至少和NP中最难的问题一样难”

NP难问题示例:停止问题(程序A是否可以停止?):

假设您有一个候选解决方案:“不,程序a不能停止”。我们知道,你无法证实这一点,这是无法确定的


你甚至不能检查“是的,程序A停止”——因为这可能需要很长时间,所以它也是不可判定的。

术语“NP难优化问题”似乎过于宽泛,无法找到令人满意的答案

例如,我看不出什么排除了决策问题被认为是NP难优化问题——如果你考虑的是MAC-CNF-SAT问题,它的解决方案被计入楼层(k/n),其中k是满足子句的数目,n是实例中的子句总数。(这在多项式时间内显然是可计算的),那么在这个公式中产生1的任何估值都必须满足整个公式。因此,让我们假设我们正在最大化地板(k/N),并将其称为地板-CNF-SAT优化问题:)

这意味着您可以减少上述优化问题的重言式-否定输入并将任何解决方案添加为S。您甚至可以添加一个虚拟变量,以确保初始解决方案在FLOOR-CNF-SAT问题中得到0。否定在时间上是多项式的

然后,如果所提出问题的解算器认为S不是最优的,则必须有一个估值,根据我们精心编制的函数得出1,从而满足整个公式,从而提供一个不满足重言式原始输入的估值

通过稍微作弊(使用人工构建的优化问题),我们将“是最优”问题建立为协NP完全问题,因为重言式很容易被证明是协NP完全的

根据你自己的论证,“是最优的”决策问题是协NP困难的,因为作为证人,你只需要一个更好的解决方案-评分S,评分证人和比较

我真的感觉不太好,但我不能很容易地提高问题课。如果您要求存在得分任意高的实例,而不仅仅是{0,1},我可以使用N*floor(k/N)。对类的改进可以只考虑一个NP难的优化问题,如果对于每个k存在一个至少有k个解的实例,所有的得分都不同。p> 我想我仍然可以通过这种方式欺骗自己:

考虑将N个虚拟变量添加到重言式输入的缩减,如下所示:

d1 && d2 && d3 ... && dN && (S)
其中,S是否定输入。作为初始赋值,我选择d1,…,dN=false,但作为分数,我给出一个函数,如果前N个子句都为false,则返回2N-1,否则返回满足子句的数量。如果满足所有子句,这样的函数将只返回2N,但可以轻松地至少有N个不同的值


恐怕没有得分函数的一些复杂的正则条件,这是我们能得到的最好的,除非你把NP硬优化问题的定义看成是一个问题,在给定一个候选解S的情况下,我们可以在多项式时间内验证S是否是最优的,在这种情况下,“是最优的”显然是P,一点也不好玩:/

因为s是一个候选解决方案;假设没有其他S可以证明S是贪婪的或比任何其他S都不是最优的。必须是,S目前是问题的最佳解决方案。

停止问题不是NP难问题。这是不可判定的(一般而言)。但如何验证旅行推销员的路线是最小长度?它应该在多项式时间内是可验证的。我知道,停顿问题是不可判定的。我认为,这是包含——我的错误。如果我错了,请纠正我,但我的印象是停顿问题是NP难的,因为NP中的任何问题都可以在多项式时间内简化为它。要成为NP难,你不必是NP。我弄错了吗?要清楚的是,NP和NP-hard中的问题是NP-完全的。呃,停止问题是不可判定的和NP-难的。假设优化问题的决策变量是NP完全的,您已经给出了一个证明,证明最优解在coNP中。获得硬度结果的最直接途径是从coNP难题中进行多项式时间的多次缩减,但这种缩减很难找到解决方案进行验证。我参加了研究生级别的复杂性课程,认为这适用于cstheory。如果优化是一个正整数最小化问题(即,答案始终为正整数),则可以使用“等时”验证器进行二进制搜索,所以这似乎也是NP难的…@白痴:这一定是这样吗?请注意,这个问题需要一个实际的候选解,而不仅仅是它的“值”。@mhum:我说的是值就是解的情况(比如色数)。当然可以