【问题标题】:What is the maximum theoretically possible compression rate?理论上可能的最大压缩率是多少?
【发布时间】:2011-03-16 18:10:01
【问题描述】:

这是一个理论问题,所以这里的许多细节在实践中甚至理论上都无法计算。

假设我有一个要压缩的字符串s。结果应该是一个自解压二进制文件(可以是 x86 汇编程序,但也可以是其他一些假设的图灵完备的低级语言),输出 s

现在,我们可以轻松地遍历所有可能的此类二进制文件和程序,按大小排序。让B_s 成为这些输出s 的二进制文件的子列表(当然B_s 是不可计算的)。

由于每组正整数都必须有最小值,所以B_s中一定有一个最小的程序b_min_s

我们知道b_min_s 的大小对于哪些语言(即字符串集)?也许只是一个估计。 (我可以构建一些简单的例子,我什至可以计算 B_sb_min_s,但我对更有趣的语言感兴趣。)

【问题讨论】:

  • 我回想起过去的一些非常聪明的程序,例如多次覆盖自身的引导加载程序。很可能,为了实现自解压程序的最小总体大小,该程序可以以某种方式利用自己的文本——例如,作为常量的来源。

标签: compression


【解决方案1】:

这是Kolmogorov complexity,你是正确的,它是not computable。如果是这样,您可以创建一个长度为 n 的矛盾程序,该程序打印一个 Kolmogorov 复杂度为 m > n 的字符串。

显然,您可以为给定的输入绑定b_min_s。然而,据我所知,这样做的大部分努力都是存在证明。例如,正在进行压缩English Wikipedia 的比赛。

【讨论】:

  • 是的,正是这个奖项让我想到了这个问题。 :) 但是,此类比赛/尝试仅给出指示,因为它们显示特定示例字符串的下限。他们没有给出关于某些给定语言的平均/实际硬限制的任何答案(例如,以语法正确的英语作为内容的 XML)。
  • 这里有一些很好的压缩解释,我建议您进一步阅读:mattmahoney.net/dc/dce.html - 在 Hutter 页面上,有一个指向 cs.fit.edu/~mmahoney/compression/textdata.html 的链接,也很容易阅读。
【解决方案2】:

可能的最大(平均)压缩率为 1:1。
可能输入的数量等于输出的数量。
它必须能够将输出映射回输入。
为了能够存储输出,您需要与输入的最小容器大小相同的容器 - 提供 1:1 的压缩率。

【讨论】:

  • "可能的最大(平均)压缩率为 1:1。"这实际上意味着什么?
  • 这意味着假设您获取所有可能的 100 字节字符串并压缩每个字符串。压缩输出的平均长度至少为 100 字节,因此平均压缩率为 1:1 或更差。当然,现实世界的数据不是随机的,所以最好说他是在谈论最坏情况下的最佳压缩率。但它试图回答标题中的问题:最大可能的压缩率首先取决于数据。它并没有真正回答问题的主体......
【解决方案3】:

基本上,您需要足够的信息来重建原始信息。我想其他答案对您的理论讨论更有帮助,但请记住这一点。

【讨论】:

    【解决方案4】:

    Claude Shannon 在他 1951 年的论文 Prediction and Entropy of Printed English 中估计英语语言的信息密度在每个字符 0.6 到 1.3 位之间(PDF,1.6 MB。Bell Sys. Tech. J (3) 第 50-64 页)。

    【讨论】:

    • 嗯,我想知道 Kolmogorov 复杂度是否与香农信息密度兼容。根据我的直觉,香农信息只是一个比特流。例如。根据香农的定义,分形图像的像素流仍然具有一定的高信息密度。所以在这种考虑下,我想知道 0.6 是否真的是一个很好的估计。也许对于不包含任何冗余信息的英文文本。
    • Shannon Information 对一般统计情况进行了陈述,而 Kolmogorov 复杂度是单个对象的信息内容。所以在这个例子中,香农信息说明了英文文本中的平均字符,而 Kolmogorov 复杂度是特定文本正文的信息内容,例如您的字符串 s。
    • 但香农是“信息论”和熵的主要形成人物,最终这里的问题是熵。 "Shannon's entropy represents an absolute limit on the best possible lossless compression of any communication"
    猜你喜欢
    • 1970-01-01
    • 2013-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-31
    相关资源
    最近更新 更多