是否存在x使得K(xx)<K(x),其中K是Kolmogorov复杂度。


16

令表示字符串的Kolmogorov复杂度。是否存在这样的字符串,使得。(此处是与自身的串联)。这里提出一个类似但不同的问题,但该问题答案中给出的反例不适用于该问题。K(x)xK(xx)<K(x)xxx

Answers:


20

我不是Kolmogorov复杂度的专家,但是我认为可以为每个复杂度函数K构造如下x。由于1,11,1111,11111111,…,1 2 n,…是自然数n的编码,因此K(1 2 n)不能为o(log n)。然而,当n2m时,显然K(1 2 n)= K(1 2 2 m)= O(log m)= O(log log n)。因此,序列K(1),K(11),K(1111),K(11111111),…,K(1 2 n),…不能弱单调增加,这意味着存在一个字符串 x的形式为1 2 n使得K(xx)<K(x)。


1
@Tsuyoshi,是否存在不可压缩的字符串使得K x x < K x xK(xx)<K(x)
Mohammad Al-Turkistany

我认为和K(1 ^ {2 ^ n})=Ω(log n)相互矛盾。他的意思是:如果f n = o log n ),K 1 2 nO f n 。否则,证明似乎很好。K(122m)=O(logm)f(n)=o(logn)K(12n)O(f(n))
逊·雅各布森

1
这似乎有效。确实,我认为它为您提供了无限的此类字符串序列。但是,要么我误解了什么,要么维基百科(en.wikipedia.org/wiki/Chain_rule_for_Kolmogorov_complexity)中出现的关于Kolmogorov复杂性的链式规则声明是错误的。最初,我认为Wikipedia的定义可能不适用于此处,因为您必须能够知道X结束和Y从哪里开始,而这里似乎并不需要,但是当Y = X时,您可以将其添加到O(1)说“在中间分裂”。
亚伯·莫利纳

@Sune:符号Ω(⋅)有几个稍微不同的定义。我的答案中的“ K(1 ^ 2 ^ n)=Ω(log n)”表示“ limsup K(1 ^ 2 ^ n)/ log n> 0”,并且与“ K(1 ^ 2 ^ 2)不矛盾^ m)= O(log m)。我编辑了答案以澄清这一点。另请参阅我们应该教渐近增长率的哪个定义?
伊藤刚(Tsuyoshi Ito)

1
@turkistany以及所有:请注意,对于某些常数,K(xx)> K(x)-c总是正确的,我认为应该指出这一点。这也意味着如果我们想研究这个问题,我们需要一个非常精确的不可压缩定义。我想答案还是肯定的,但是我没有证据。
domotorp 2011年

2

是。实际上,Kolomogorov的复杂性确实取决于您的模型。图灵机,Java程序,C ++程序......如果模型中存在一种特质,可以在有限的一组输入上发生这种情况,那没有问题。

更好的问题是您可以摆脱多少这种行为,仍然可以使模型成为通用模型。


我认为一个更好的问题是:是否所有模型都存在这样的x?我不知道正式的“模型”是什么,但是Tsuyoshis答案似乎适用于所有合理的编程语言。
逊·雅各布森

您可以指定X X和一些较大的X,仍然有一种普遍模式。0xxx
卡夫

1

@Tsuyoshi:

我不太了解你的证明。

假定我们选择一个标准的图灵机作为“描述语言”,将定义为最小TM的状态数,该状态以空磁带开头并在打印字符串s后停止K(s) s

你有没有证明,我们可以建立一个说,“打印”的字符串小号小号= 1111 ... 1 = 1 2 ñ + 1在磁带上,并建有较少的状态不是牛逼中号小号说,“打印”的字符串s = 1 2 nTMssss=1111...1=12n+1TMss=12n

您的证明可以应用于TM的Kolmogorov复杂度吗?

好!我得到它 ...当Ť 中号小号小号可以是“动力”与一个新的“内环”(我们添加一些国家,但我们可以删除许多状态,在Ť 中号小号需要用于“计数“ n)...谢谢!n+1=2mTMssTMsn

(对不起,但我不知道如何发表此评论)


为了写评论由他人为您发了一个帖子是不是回答你的问题,你需要点声望值至少为50
刚伊藤
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.