Time complexity 为什么决定NP是指数时间

Time complexity 为什么决定NP是指数时间,time-complexity,exponential,deterministic,np,Time Complexity,Exponential,Deterministic,Np,教科书上说: 目前已知的确定NP语言的最佳确定性方法是使用指数时间。换句话说,我们可以证明 ... 为什么这是真的?我似乎找不到这方面的直觉 NP属于EXPTIME(尽管我们不确定它是否是一个合适的子集),因为直觉上,您可以在指数时间内跟踪多项式时间NTM的所有可能路径 更具体地,考虑NP中的任何语言L。它必须有一个多项式时间NTM;让我们称之为M,并说它在不确定时间O(nk)内运行。为了简单起见,我们假设NTM只使用二进制不确定性(即,在每个步骤中,它最多有两个选择)。这意味着不确定性的不

教科书上说:

目前已知的确定NP语言的最佳确定性方法是使用指数时间。换句话说,我们可以证明

...

为什么这是真的?我似乎找不到这方面的直觉

NP属于EXPTIME(尽管我们不确定它是否是一个合适的子集),因为直觉上,您可以在指数时间内跟踪多项式时间NTM的所有可能路径

更具体地,考虑NP中的任何语言L。它必须有一个多项式时间NTM;让我们称之为M,并说它在不确定时间O(nk)内运行。为了简单起见,我们假设NTM只使用二进制不确定性(即,在每个步骤中,它最多有两个选择)。这意味着不确定性的不同分支的最大可能数量由2O(nk)给出,并且每个分支都可以通过在该分支上模拟NTM的执行在多项式时间内进行模拟。这意味着总时间为poly(n)·2O(nk)=O(2O(nk)),因此该确定性算法以指数时间运行

现在,这并不意味着你必须花费确定的指数时间来解决NP问题。它只是说,如果你想使用确定性算法,你最多需要指数时间。整个P对NP的问题是关于你是否能做得更好


希望这有帮助

不知道你在寻找什么“直觉”,但是。。。当我想象一些经典的NP问题(例如TSP)时,很明显你总是可以“系统地尝试所有的组合”(这需要指数时间)…也许我只是个哑巴。是否有可能尝试每种组合都会花费无限的时间?对我来说,理解这一点的一个障碍是,NP中的每一个问题都必须如此,这一点我不确定。这种“尝试所有组合”的直观想法远不是真正的证据。但在“有限”和“无限”之间还有一大步。或者这样说:在NP中,解必须在多项式时间内可验证,因此我们无论如何只能讨论有限输入。但也许我们可以在这里给出一个真实(更深刻)的答案。