Alice 和 Bob 传输信息的方式:
起初,他们在晚上使用火焰,在白天使用百叶窗。
之后,他们使用一根金属丝,并以不同的方式拉动金属丝。
最终,他们给这条电线通电以发送电脉冲
为了支付设备费用,他们需要钱。因此,他们决定向其他人提供收费服务。 第一天,Alice 迎来了三位新客户,他们想向 Bob 树屋的朋友发送消息。
第一个客户想要发送 10 次抛硬币的列表
第二个客户想要发送 6 个字母的单词
第三个客户想要发送一手扑克牌
现在的问题是,她应该收取多少费用?消息的价格应该取决于爱丽丝传输消息所需的时间。但是她如何用一个通用单位来衡量不同类型消息的长度呢?
为了找出答案,让我们来玩一个游戏。
想象一下,你现在是 Bob ,你知道 Alice 想要向你发送这些消息,但你所能做的就是得到你安排的 Yes or No 问题的答案。Alice 将通过发送一系列的 0 或 1 来回答。
请记住,他们所有的传输方法都涉及差异的交换。因此,一个 1 可以被表示为一个明火,或者一个打开的百叶窗,或者一个电脉冲。无论它们如何表现出来,我们可以简单地称它们为二进制数字,因为一个二进制数字只能有两个值,0 或 1。所以,让我们说 0 代表否, 1 代表是。
你现在的挑战是始终询问**最少数量**的问题,以确定确切的消息。
对于发送者 Alice 而言,可以认为是在选择2个不同符号中的一个,`heads`
or `tails`
。那么,你需要问多少问题才能确定她选择了哪一个呢?答案是仅需一个问题,比如,`is it heads?`
,就足够了。
对于10次抛硬币,最少需要多少问题?$$10次抛硬币×每次抛硬币一个问题=10个问题$$也就是说,要传输这条信息最少需要10个二进制数字。
接下来,让我们考虑字母。对于每个符号,对于发送者 Alice 而言,可以认为是在选择26个不同符号中的1个。
让我们从最简单的消息开始,即一个字母。需要多少问题?`是A吗?是B吗?是C吗?是D吗...`
依此类推,但这不是最少数量的问题。
你能做的**最好的询问方式**是可以排除一半可能性的问题。例如,字母表的中间在M和N之间。(以字母 `F`
为例)因此,我们可以首先问,`它小于N吗?`
如果我们收到一个`1`
,是的,我们就排除了一半的可能性,剩下13个,由于我们无法将一个字母分成两半,我们将可能的符号分成六个和七个集合,并问,`它小于G吗?`
我们收到了一个`1`
,是的,现在我们剩下了六个可能的字母,我们可以将它们分成两半,并问,`它小于D吗?`
我们收到了一个`0`
,不是,剩下了三个可能的字母,现在我们可以选择一边并问,`是D吗?`
我们收到了一个`0`
,不是,最后我们只剩下了两个可能性。我们问,`是E吗?`
我们收到了一个不是,经过五个问题后,我们正确地识别了符号`F`
。
将该过程整理成表格如下:
步骤 | 我们的问题 | 收到的回复 | 所表示意思 | 所剩的可能 |
---|---|---|---|---|
1 | 它小于N吗? | 1 | 是 |
|
2 | 它小于G吗? | 1 | 是 |
|
3 | 它小于D吗? | 0 | 不是 |
|
4 | 是D吗? | 0 | 不是 |
|
5 | 是E吗? | 0 | 不是 |
|
请注意,我们永远**不需要问超过五个问题**,因此问题的数量至少为四个,最多为五个。
在一般情况下,问题的数量等于2的问题数量的幂,这等于可能消息的数量,我们之前定义的消息空间。
$$2# questions=message space$$
那么,如何计算给定26个消息空间的确切平均或期望问题数量呢?我们问了相反的问题。2的多少次方等于26。
$$2?=26$$ 为了回答这类问题,我们自然地需要使用对数函数,以2为底。 $$log2(26)=?$$ 因为26以2为底的对数,是给到26的2的指数,这大约是4.7。 $$log2(26)=4.7004...$$
因此,平均而言,每个字母最少需要大约4.7个问题,因为她想要传输一个六个字母的单词,Bob 可以期望至少询问28.2个问题,这意味着 Alice 最多需要发送29个二进制数字。
$$6×4.7=28.2$$
最后,让我们将这个公式应用于一个新消息,扑克牌的情况。
对于每个符号,发送者爱丽丝可以被认为是选择52个不同符号之一,而在这种情况下,问题的数量与我们需要分割牌堆并询问 Alice 它在哪一叠的次数相同,直到我们只剩下一张牌,通常是 6 次分割或问题,有时是 5 次。
但我们可以节省时间,只需使用我们的方程。
$$log2(52)=?$$
52的以2为底的对数约为5.7,因为2的5.7次方约为52。 $$25.7=52$$
$$log2(52)=5.7$$
因此,平均而言,每张牌最少需要5.7个问题。一手扑克牌包含五张牌。因此,传输一手扑克牌平均需要28.5个问题。 $$5×5.7=28.5$$
我们完成了。
我们现在有了我们的单位。
它基于定义消息或决策树高度所需的最少问题数量,由于 Alice 将这些信息作为二进制数字传输,我们可以简化这个称呼,将我们的单位称为比特,而不是二进制数字。
因此,10次抛硬币需要10比特,六个字母的单词需要28.2比特,扑克牌需要28.5比特。
然后,Alice 决定每比特收取一便士,并开始收取她的费用。
这个想法诞生于20世纪20年代。
这是通信工程师们思考的更抽象的问题之一。
拉尔夫·哈特利是一位多产的电子研究员,他在哈里·奈奎斯特的思想基础上进行了研究,两人在第一次世界大战后在贝尔实验室工作,1928年,哈特利发表了一篇重要论文,标题为《信息传输》,在其中,他使用符号$H$定义了信息,即$H=nlogs$,其中$H$是我们的信息,$N$是符号的数量,无论是音符、字母、数字等,$S$是每次选择时可用的不同符号的数量,这也可以写成$H=logsn$,哈特利写道,“我们所做的是将信息的实际度量作为可能符号序列的对数。”
因此,信息就是消息空间的对数;然而,请注意,在整个课程中,我们一直假设符号选择是随机的,这是一种方便的简化;然而,我们知道实际上大多数通信,比如语音,并不总是随机的。它是可预测性和惊喜的微妙混合。
我们在写字母时不会掷骰子,正是这种可预测性导致了传输长度的显著节省,因为当我们能够事先预测事物时,我们就不需要问那么多是或否的问题来定义它,但我们如何正式地建模这种微妙的差异呢?
这个问题引出了我们故事中的关键见解。你能想到它可能是什么吗?