科学的一个基本问题是物体的表征, 例如序列、图像、网络和蛋白质。 复杂性测量使科学家能够以系统的方式进行一些表征, 以更好地理解甚至操纵这些物体。 然而,大多数度量并不独立于 描述对象的不同方式。 例如,网络可以 通过其邻接矩阵或其度数序列来描述。 只有基于计算机程序概念的 通用复杂性度量 才能描述对象, 而与描述网络的方式无关。 这些由数学家提出的普遍而有力的衡量标准是存在的, 但它们很难用数字来估计。 编码理论方法 基于 Kolmogorov 和 Chaitin 的工作, 是我们为了表征 基于这些通用算法测量的 对象的复杂性。 这个想法是, 如果一个对象可以由简短程序生成, 那么它比由长的程序生成的对象 更有可能是偶然生成的。 例如,考虑数学常数 pi。 如果你想生成 pi 的前 1000 位数字, 通过随机输入来做到这一点的机会非常低 - 但产生的不是数字而是 产生任意位数 pi 的公式的机会要高得多 - 因为 pi 有许多简短的公式来生成它的数字。 然后我们要做的就是运行大量的小型计算机程序, 为了计算输出产生的次数。 由此,我们能够估计一个物体 被生产的可能性有多大, 通过计算机程序构建发行版。 这种分布有助于我们描述物体的特征 并设计出以前无法想象的应用程序。 块分解方法是一种扩展编码定理方法能力的方法, 以近似较大对象 (例如序列、图像和网络)的 算法复杂度。 该方法基于 Solomonoff (所罗门诺夫)和Levin(莱文)的算法概率理论, 将对象的产生频率及其内在属性联系起来。 块分解方法的作用是将一个对象 分解成更小的块,然后 我们巧妙地将它们用公式粘在一起。 这些作品中的每一个都是由一个 小型计算机程序产生的,因此我们知道小型计算机程序的 序列产生了较长的作品。 因为分解并不总是产生相同类型的碎片, 有很多方法可以将各个部分粘在一起 - 例如重叠各个部分, 将原始对象嵌入拓扑环面中, 或者为具有相似统计属性的对象分配 相似的算法复杂性。 块分解方法最有趣的特性之一 是它在长范围内全局计算香农熵, 但它提供了短范围内节奏复杂性的局部估计。 这种复杂性的混合测量方法可以 帮助科学家以更完整的方式表征物体, 从而增强理解和新发现。