描述复杂度:从科尔莫戈罗夫复杂度到数学理论的拓展
在计算复杂度的研究领域中,科尔莫戈罗夫复杂度是一个重要的概念。它为我们理解信息的描述和计算提供了独特的视角。然而,这个看似强大的工具却有着一些令人意外的特性。
科尔莫戈罗夫复杂度的不可计算性
科尔莫戈罗夫复杂度是指对于一个有限二进制字符串 (x),函数 (x \to C(x)) 表示描述该字符串所需的最短程序的长度。但遗憾的是,这个复杂度是不可计算的。这主要是因为停机问题的不可计算性。
停机问题是指对于给定的图灵机 (T) 和有限字符串 (x),判断图灵机 (T) 在以 (x) 为输入启动后是否最终会停止。即使使用通用图灵机 (U),停机问题仍然是不可判定的。
假设我们要计算长度为 (n) 的字符串 (x) 的科尔莫戈罗夫复杂度 (C(x))。我们知道 (C(x) \leq n + c)(其中 (c) 是一个可计算的常数),所以我们只需要在通用图灵机 (U) 上运行所有长度小于等于 (n + c) 的字符串。如果 (n) 较小,我们可能会幸运地找到一个字符串 (p),使得 (U(p) = x),并且在所有更短的字符串上 (U) 停止并输出不同于 (x) 的字符串,此时 (C(x)) 就是 (p) 的长度。但存在一些字符串 (q) 会使 (U) 不停机。如果 (C(x)) 大于 (q) 的长度,我们即使找到了最短的 (p) 使得 (U(p) = x),也无法确定 (p) 就是最短的,因为我们无法确定 (U) 在 (q) 上是否会停机。
除了计算上的不可行,在数学证明中也存在问题。有定理表明,对于一个由有限公理列表公理化的健全理论 (T),存在一个自然数 (k_T),使得对于任何具体的字符串 (
超级会员免费看
订阅专栏 解锁全文
12

被折叠的 条评论
为什么被折叠?



