鉴于对这个问题的兴趣,我认为更明确地指出我们完全不应该对答案感到惊讶的原因,并为改进该问题提供一些指导可能会有所帮助。这收集并扩展了一些评论。如果这是“显而易见的”,我深表歉意!
考虑Kolmogorov复杂度的字符串集:
最多有这样的字符串,因为有对长度描述。但是请注意,对于一般,此集合是不确定的(否则,我们可以仅从迭代到并检查隶属度来计算)。此外,函数
快速增长。它是忙碌海狸函数的一种变体:图灵机描述长度为的最长输出是什么n
JK(n)={w:K(w)=n}.
2n2nnnK(w)n=1|w|JK(n)gK(n)=maxw∈JK(n)|w|
n?如果它的增长速度慢于某些可计算的函数,我们可以决定停顿问题:给定TM,构造将模拟并在每个步骤上打印。如果的描述长度为,则任一个:最多停止步;或不停止。
MM′M1M′nMgK(n)M
现在,对于安德鲁的问题,我们有,其中是原始语言。因此,避免包含很大的输入的唯一方法是,如果仅包含非常不可压缩的字符串。(请注意,否则,在这里我们可以完全忽略最坏情况分析与平均情况分析之间的区别,因为我们对最多字符串求平均,但是最大字符串的大小增长速度快于任何可计算函数。 )IK(n)=S∩JK(n)SIK(n)nS2nn
我觉得构造任何仅包含不可压缩字符串但可以确定的非平凡(即无限)可能是不可能的。但是我不知道。但是,希望这可以直观地说明为什么我们不希望大多数语言的增长速度快于可计算的函数。SfKn
要稍微退后一步,问题是将长度为输入的性能与可以压缩为长度输入的性能进行比较。但是我们有比Kolmogorov复杂性更容易处理(且功能不那么强大)的压缩概念。一种简单的方法是给出一个大小为的电路,该电路在输入时二进制数产生第位。请注意,此处输入大小的爆炸最多为指数(大小为的电路最多可能有输入)。nnnbbwn2n
因此,我们可以通过让来改写这个问题
并类似地定义。之所以希望如此,是因为大多数琴弦需要的电路几乎与琴弦本身一样大,并且没有任何琴弦比所需电路大得多。也许在这种情况下,我们可以找到和渐近相似的语言。
IC(n)={w∈S:the smallest circuit implicitly specifying w has size n}.
fCnfnfCn
一个与此密切相关的问题是的隐式语言的复杂性
IMPLICIT_SAT是NEXP完整的,通常NP完整问题的隐式版本是NEXP完整的。确定IMPLICIT_SAT至少和使用电路写出所有,然后在上运行SAT算法一样容易。因此,如果SAT的,那么这似乎几乎可以证明,平均情况下的IMPLICIT_SAT几乎与最坏情况下的SAT一样快。但是我不知道如何直接将您的概念与隐式语言进行比较,因为“最小电路”这一概念
IMPLICIT_SAT={circuits C:C implicitly specifies w,w∈SAT}.
wwfCn=Θ(fn)w”对于隐式语言不起作用。
希望这对您有帮助/有趣!
我不确定教科书中是否提及隐性问题,但是这里有一些讲义:http : //people.seas.harvard.edu/~salil/cs221/spring10/lec8.pdf