跳到主要内容

数学结果的证明

Kraft-McMillan 不等式​

定理 给定唯一可译码 f:M→Lf:M\to L,LL 对应的符号集 SS 的大小为 rr,并且语言 LL 所包含的 nn 个符号串 l1,⋯ ,lnl_1,\cdots,l_n 的长度分别为 w1,⋯ ,wnw_1,\cdots,w_n,那么

∑i=1nr−wi≤1\sum_{i=1}^nr^{-w_i}\le 1

证明 我们记等式左方数值为 KK。现在给定任意正整数 mm,我们计算

Km=∑i1=1n∑i2=1n⋯∑im=1nr−wi1−wi2−⋯−winK^m=\sum_{i_1=1}^n\sum_{i_2=1}^n\cdots\sum_{i_m=1}^n r^{-w_{i_1}-w_{i_2}-\cdots -w_{i_n}}

将上式按 wi1+⋯+winw_{i_1}+\cdots+w_{i_n} 的大小重新整理,可以得到

Km=∑l=1mlmax⁡qlr−lK^m=\sum_{l=1}^{ml_{\max}}q_lr^{-l}

其中,lmax⁡l_{\max} 为语言 LL 中最长串的长度,qlq_l 为 wi1+⋯+win=lw_{i_1}+\cdots+w_{i_n}=l 的项数。由于该码是唯一可译码,这样的项必然不能超过 rlr^l 个(如不然,将会出现两种不同的组合方式得到同一个串的情况),因此有

Km≤∑l=1mlmax⁡rlr−l=mlmax⁡K^m\le\sum_{l=1}^{ml_{\max}}r^lr^{-l}=ml_{\max}

接下来我们使用反证法:不妨设 K>1K>1,记 K=1+δK=1+\delta。当 mm 充分大以至于 m>1+2lmax⁡/δ2m>1+2l_{\max}/\delta^2 时,则有

Km≥12m(m−1)δ2>mlmax⁡K^m\ge\frac12m(m-1)\delta^2>ml_{\max}

矛盾。因此必须 K≤1K\le1。