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