当输入为一元编码时,强NP难或完全问题的复杂性是否会改变?


12

是否强NP-硬或NP完全问题的难度(如如定义在这里)的变化时,其输入是一元的,而不是二进制编码?

如果对强NP难问题的输入进行一元编码,会有什么区别?我的意思是,例如,以弱NP完全背包问题为例,二进制编码时是NP完全问题,而一进制编码时可以通过动态编程在多项式时间内求解。可能对多项式时间层次结构的较高级别的硬度有某些影响?

强...硬的概念是否也适用于其他复杂度类别,例如多项式时间层次结构的更高类别?

我之前在stackoverflow.com上问过这个问题,但有人指出,这里更合适。


我也许应该在cstheory.stackexchange.com上更好地问这个问题?我只是不知道它的存在。这里的撒谎者并没有按照我希望的方向前进。
user2145167 2013年

他们为什么不呢?(据我所知)它们是正确的,所以也许您的问题不是您要提出的问题?此外,理论计算机科学是针对研究级 TCS问题的,这一问题当然不是。
拉斐尔

Answers:


4

NNlogNF(N)F(size)F(2size)


3

没有。

如果您更改输入的编码,那么您已经更改了问题的正式定义,这意味着它是一个不同的问题。原始问题的复杂性不会改变,原因与指向天空中的其他光线不会改变月球质量的原因相同。


2
PP1

2

简短的答案是,如果输入是一元编码的,则它更长。它成倍增长。现在,在输入的大小上以多项式时间工作的算法具有“足够的时间”来解决该问题,这仅仅是因为输入本身比原始问题成指数地更长。


1

回顾JeffE答案中指出的配方问题,答案是肯定的。

考虑背包问题。它确实具有伪多项式算法,该算法的运行时以输入中编码的数字的多项式为边界。因为在一元编码中值对应于长度,所以这是一元版本的多项式时间算法。

实际上,每个弱NP完全问题都属于此类。


附带的问题,但我从来没有理解过-您甚至如何在一元中“编码”某些内容?您不需要某种分隔符吗?
user541686 2014年

@Mehrdad是和否。是; 在这种意义上,通常不计算分隔符,请参见输入与磁带字母表;在这里,我们仅考虑输入字母的大小。没有; 原则上,一个数字足以编码元组和可数的数字集,因此您不需要分隔符号。显然,这对于在此类机器上“工作”不是有用的,但是忽略了分隔(和其他控制)符号是有道理的。
拉斐尔

嗯...我不确定我理解你的“否”部分;如果末尾没有分隔符,您怎么知道数字的结尾?在我看来,这有点像循环逻辑:如果我们忽略分隔符,那么问题就变成了“如果我们强迫输入占用指数空间,这会改变指数算法相对于输入大小的运行时间吗? ?根据定义,答案是肯定的。无需过多地更改编码,因为一旦考虑了分隔符,它就人为地添加了冗余位。
user541686 2014年

@Mehrdad好的,我只是在考虑将多个数字彼此分开。无论如何,您都需要分别使用结束标记。图灵机上的“空”符号;你无法摆脱的。其余的您可以编码为一个数字(很明显在运行时会有所损失)。
拉斐尔
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.