柯氏复杂性

维基百科,自由的百科全书
跳转至: 导航搜索

计算机科学中,一个对象比如一段文字的柯氏复杂性柯尔莫哥洛夫复杂性, 描述复杂性, Kolmogorov-Chaitin complexity, stochastic complexity, 算法熵)是衡量描述这个对象所需要的信息量的一个尺度。 以下面的两个长度为64的字符串为例。

0101010101010101010101010101010101010101010101010101010101010101
1100100001100001110111101110110011111010010000100101011110010110

第一个字符串可以用中文简短地描述为“重复32个‘01’”。第二个字符串没有明显的简短描述。

一个字符串s的柯氏复杂性(C(s)或者K(s),区别如后)是这个字符串的最短描述的长度。换言之,一个字符串s的柯氏复杂性是能够输出且仅输出这个字符串的最短计算机/图灵机程序的长度。 这样的定义导致在使用不同的描述语言或者不同的图灵机的时候柯氏复杂性不一样。所以在讨论柯氏复杂性的时候,通常都事先固定一个通用图灵机U作为参照。可以证明在使用U做参照的时候,对任意的图灵机M,都存在一个仅决定于UM的常数c_M使得对所有的字符串s相对于U的柯氏复杂性C_U(或者K_U)和相对于M的柯氏复杂性C_M(或者K_M)都满足

C_U(s)\leq C_M(s)+c_M

根据这点,通常确定了一个参照图灵机后就用CK表示柯氏复杂性(省略U)。

参考资料[编辑]