逼近Kolmogorov复杂度


22

我研究了有关Kolmogorov复杂性的内容,阅读了Vitanyi和Li的一些文章和书籍,并使用归一化压缩距离的概念来验证作者的脚步法(通过它们的相似性来确定每个作者如何写一些文本和组文档)。

在那种情况下,由于数据压缩器可以用作图灵机,因此使用数据压缩器来近似Kolmogorov复杂度。

除了数据压缩和编程语言(您将使用其中编写某种压缩器)之外,还可以使用其他什么方法来近似Kolmogorov复杂度?还有其他方法可以使用吗?


我不确定我是否理解您的问题:KC的定义涉及图灵机,图灵机由哪些程序构成示例(关于某些翻译)。在没有编程语言的情况下近似Kolmogorv复杂度意味着什么?
科迪2012年

1
使用任何压缩软件(例如GZip)压缩字符串。输出的大小是字符串的KC的上限。
M. Alaggan

@cody:确切地说,我在研究中使用了数据压缩器(zip,bzip,ppmd)来近似KC。确切地说,数据压缩器不是程序。所以,我正在寻找有关KC的建议,除了语言(=用C / prolog /编写程序)或数据压缩器(=使用zip,gzip, ppmc,ppmd ...):)
woliveirajr 2012年

1
我想在我看来,数据压缩程序的定义完全是这样的:一个程序,它通过一个程序(“解压缩器”)和另一个字符串(压缩的字符串)来近似一个字符串的KC。
科迪2012年

Answers:


9

我想一个可能的回答你的问题是这样的:以一个伪随机数发生器 。尝试选择对它有强大攻击力的生成器:针对的随机数生成器攻击(出于我们的目的)是一种算法,当给定输入字符串时,算法确定种子,使得。然后近似的KC :G A s A s G A s = s sGGAs A(s)G(A(s))=ss

input: s
Compute A(s);
if |A(s)| + |G| > |s| output: |s|
otherwise output: |A(s)| + |G|

凡是计算的程序的长度(对于线性生成器,通常很短)。G s |G|G(s)

请注意,实际上,随机数生成器攻击并非如此:它们可能会失败或产生不完整的结果。在这种情况下,您可以调整算法,使其返回当攻击的结果不令人满意时。压缩算法也有同样的说法。|s|

与压缩算法相反,此方法需要注意的是,压缩算法通常更适合于计算KC,因为它们被定制为可在任何字符串上使用,而仅当恰好在的映像中时,攻击才能起作用(可能性很小)。g ^sG


7

任何概率分布。如果您有一个可计算的概率分布来给出数据概率,则根据卡夫不等式,有一个可计算的压缩器将其压缩为log p x 位(如果您反对小数位,则向上舍入)。这意味着几乎可以使用任何生成式机器学习算法。p(x)logp(x)

这就是为什么Kolmogorov复杂性如此有趣的原因,不是因为它是终极的压缩算法(无论如何他们都在乎压缩),而是因为它是终极的学习算法。压缩和学习基本上是一回事:在数据中查找模式。基于此思想的统计框架称为最小描述长度,它是受到Kolmogorov复杂性的直接启发。

另请参见cstheory StackExchange上的此问题


5

语法编码压缩算法使用较少的版本,可以作为Kolmogorov复杂度的“粗略”估计。语法编码不像其他更常见的方法那样普遍用作压缩算法,这可能主要是因为它对基于文本的语料库的压缩(例如,来自Lempel-Ziv的压缩)没有太大的改进,但对其他类型的数据却表现良好。这个想法是使用语法规则“压缩”字符串。语法推导可能会导致DAG(相对于较不复杂的树),因此存在很大的表示复杂性。

另一个选择是找到代表一个字符串的最小/最小电路,但是众所周知这具有非常高的计算复杂度,并且只能在小的字符串上才能成功。

K(x)

K(x)

除了Lempel-Ziv“游程编码”类型的方法外,还有其他压缩算法方法,例如向量代数和SVD可以用作压缩算法。同样,傅里叶变换也经常用于压缩图像,例如JPG标准。


1
K(x)

好点,但是有损算法通常具有可调整的参数,该参数确定“有损”,并且可以说理论上可以通过足够的“项”或“频率”实现无损,并且它还取决于输入样本,因此无损参数值将取决于通过压缩算法的“镜头”看到它们的“相对阶数与随机性” ...
vzn13年

1
@cody和vzn:感谢您的回答,您为我的博士学位给了我一些有关无损x有损压缩的好主意:)
woliveirajr 2013年

JPEG使用DCT,而不使用DFT。
Evil
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.