Language agnostic 解决NP完全问题的最佳运行时间?
解决特定NP完全问题的最快算法是什么?例如,一个简单的实现是O(n!),但使用动态编程可以在O(n^2*2^n)中完成。是否有任何可能“更容易”的NP完全问题具有更好的运行时间Language agnostic 解决NP完全问题的最佳运行时间?,language-agnostic,theory,complexity-theory,performance,np-complete,Language Agnostic,Theory,Complexity Theory,Performance,Np Complete,解决特定NP完全问题的最快算法是什么?例如,一个简单的实现是O(n!),但使用动态编程可以在O(n^2*2^n)中完成。是否有任何可能“更容易”的NP完全问题具有更好的运行时间 我对精确解感兴趣,而不是近似解。NP完全问题的一个特点是,NP中的任何问题都可以在最多多项式时间内机械地转化为任何NP完全问题 因此,无论给定NP完全问题的最佳解是什么,它都会自动成为任何其他NP问题的类似好解 考虑到动态规划可以在2^n时间和2^n空间内解决旅行商问题,所有其他NP问题也必须如此[好吧,加上应用转换的时
我对精确解感兴趣,而不是近似解。NP完全问题的一个特点是,NP中的任何问题都可以在最多多项式时间内机械地转化为任何NP完全问题 因此,无论给定NP完全问题的最佳解是什么,它都会自动成为任何其他NP问题的类似好解 考虑到动态规划可以在2^n时间和2^n空间内解决旅行商问题,所有其他NP问题也必须如此[好吧,加上应用转换的时间,我猜-因此可能是2^(n+1)] […]使用动态规划可以在O(n^2*2^n)中完成。是否有任何可能“更容易”的NP完全问题具有更好的运行时间 有点。通过创建一个人工问题,将相同的解决方案编码为多项式较大的输入,可以消除任何多项式因素。只要输入只是多项式大,所产生的问题仍然是NP完全问题。由于复杂性定义为将输入大小映射到运行时间的函数,因此如果输入大小增加,函数将进入较低的O类
因此,同样的算法在TSP上运行,输入填充了n^2个无用位,其复杂性为O(1*2^sqrt(n))。通常,如果不尝试所有组合,就无法找到一般旅行商问题的最佳解决方案(可能存在负距离等) 通过增加额外的限制和放宽获得最佳解决方案的要求,您可以大大加快速度
例如,如果问题中的距离服从“直接从A到B不比从A到C到B长”(即捷径永远不会长),那么你可以得到多项式可执行时间,并且你可以接受最大为最优值1.5倍的结果。请看I'll+1,我想看看其他人看到了什么。你的问题是“我们提出的最快的算法是什么?”然后是“注意,我对近似值不感兴趣,但对精确解感兴趣。”我们怎么知道你提出的最快的算法?你试过了吗?@RickNZ:“我们”指的是“一般人类”。我不是想让你们打败我的算法,我只是想知道存在的最快算法是什么。mathoverflow版本:我想它只需要O(n)个空格,我一下子记不起来了,所以我在维基百科上查了一下。可能是我误读了这篇文章。。。