Kolmogorov-复杂度定义的等价
定义Kolmogorov复杂度的方法有很多,通常,所有这些定义在加法常数之前都是等效的。也就是说,如果和是kolmogorov复杂度函数(通过不同的语言或模型定义),则存在常数使得对于每个字符串,。我相信这是因为对于每个Kolmogorov复杂度函数以及对于每个它都认为,对于某些常数。K1K1K_1K2K2K_2cccxxx|K1(x)−K2(x)|<c|K1(x)−K2(x)|<c|K_1(x) - K_2(x)| < cKKKxxxK(x)≤|x|+cK(x)≤|x|+cK(x) \le |x| +cccc 我对以下基于图灵机的定义感兴趣KKK 状态数:将定义为最小数,以使具有个状态的TM 在空字符串上输出。K1(x)K1(x)K_1(x)qqqqqqxxx 程序长度:将定义为输出的最短“程序” 。即,修复一种将TM编码为二进制字符串的方法;对于机器其(二进制)编码表示为。 其中最小值在空输入上输出x的所有M上。K2(x)K2(x)K_2(x)xxxMMM⟨M⟩⟨M⟩\langle M \rangleK2(x)=min|⟨M⟩|K2(x)=min|⟨M⟩|K_2(x) = \min |\langle M \rangle|MMMxxx 是K1K1K_1和K2K2K_2等同?它们之间是什么关系,如果它们不相等,哪一个可以更好地理解Kolmogorov复杂性的概念。 令我特别困扰的是xK2K2K_2随K的增加率,它似乎不是超线性的(或者至少在常数C> 1的情况下是线性的,使得K_2 <C | x |而不是| x | + c)。考虑输出x的最简单的TM- 仅将x编码为其状态和转移函数的一部分的TM 。立即看到 K_1(x)\ le | x | +1。但是,同一台机器的编码要大得多,而我得到的琐碎边界是K_2(x)\ le | x | \ log | x | 。xxxC>1C>1C>1K2<C|x|K2<C|x|K_2 …