第441章香农的信息熵

作者:蔡泽禹 加入书签推荐本书

孤鹜齐飞的秋色里,他看到了这个游戏的另一种设计。

既然用 的均值定义所需要问题的个数依赖于把这“二十个问题”游戏玩很多次,那么考虑一下这个游戏的一个变种,就是把这很多次游戏攒起来一起玩:俺拿出一张很长很长的纸条,然后随机想 n 个相互独立的神秘数字,x1, x2,…, xn (每个数字的分布都是同一个定义在 s={1, 2,…, m}上的概率分布函数,)。俺把这些数字一个一个地写到纸条上。这里 n 很大很大,所以纸条很长很长。然后你再来问俺“是不是”台或一百台电脑来。你问俺的问题要是计算太复杂,俺也可以去搬电脑来算。总之,咱们不用管计算有多复杂,俺俩都有无限的计算能力。在这个攒着玩的“二十个问题”游戏中,怎样的问问题策略才最优呢?最优的策略所需要的平均问题数目又是多少呢?

暂且先不讨论这个问题的答案,咱们先审视一下这个新的游戏设计的应用意义吧。

想象一下,俺写在纸条上的序列其实是俺刚写好的长篇(俺写下的每一个数其实对应于新华字典里的一个字),又或者俺写在纸条上的序列其实对应于俺长期夜观星象的结果,记录了不为人知的宇宙奥秘(俺写的每个数字都是对观测到的宇宙状态的描述)。在你问俺问题的时候,俺的回答将是一个长长的由yes/no 组成的序列。如果把 yes 记作 1,no 记作 0,俺的回答其实就是一个0/1组成的序列。

一个可以取 0/1 两个值的变量,或者一个可以储存 0/1 两种不同状态的存储单元,就是人们常说的比特(bit)。所以俺的回答其实就是一个比特序列。你希望用最少的问题就等同于要求这个比特序列最短,或者说要求用最少的比特数表示俺纸条上的内容。这个问题其实就是通信中的数据压缩问题!

数据压缩,又叫“信源编码”,大约是干这样一件事。假设有个信息源,就是一个能不停往外蹦信息的东西,比如一直在想神秘数字的俺,夜观星象的俺,写的俺,等等等等。信息源产生的信息从数学上说就是一个随机变量序列(更有文化的说法叫随机过程)。这个随机变量序列可以有很多种形式,最简单形式就是其中的随机变量都相互独立而且服从相同的分布。对这个信息源进行数据压缩包括了两个环节,编码和解码。编码就是把从信息源蹦出来的随机序列表示成比特序列,而且越短越好;解码就是从比特序列中还原出信息源蹦出来的随机序列。数据压缩可以大幅度降低数据存储和通讯需要的资源,已经是现代通信技术的一个重要组成部分。

现在回到“二十个问题”游戏。如果这个游戏一个一个分开玩,其实就是在数据压缩的时候,对信息源里蹦出的每个随机变量单独做压缩。如果这个游戏攒 n 个一起玩,其实就是对随机序列中的 n 个随机变量同时进行压缩。显然,对每个随机变量单独进行压缩一定不会比对整个随机序列同时做压缩效率更高(这里的效率

上一章 返回目录 下一章