用信息论构造出称球问题的解

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

种天气会出现,今天是不确定的,今天只是知道明天各种天气的发生 概率,并且知道所有各种天气出现的概率总和为 1。我们来看看事件 集合中发生某事件的信息大小和该事件发生的概率之间的关系。 某事 件发生的概率越小,该事件发生后给我们的“震撼”越大。比如“明 天发生、不发生地震”这一事件集合中,明天不发生地震的概率远大 于发生地震的概率,所以真的明天发生了地震,那我们所获得的信息 量就比没有发生地震要大的多。此外,信息具有可加性,“今天地震 了又下雨” 给我们的信息应该是今天发生了地震和今天下雨两个事件 的信息的和, 而两个事件同时发生的概率又是这两个事件各自发生概 率的乘积,基于此,香农将某一“发生概率为 P”的事件的出现带来 的信息量定义为 1/P 的对数,即 log r 1/P。基数 r 的不同,使得信息 量可以有不同的单位,基数 r=2,单位就是比特。比如抛一枚硬币结 果是“国徽向上”的信息量是 log 21 (1 2) =1 比特。 好,我们仅用这一点信息理论,就可以解决上面提出来的那个称 球问题了。我们的想法是,如果确定 12 个球当中的坏球需要的信息 量是 A,而从每次天平的称量结果可以至少获得的信息量是 B,那不 小于 A/B 的整数就应该是所需的最小的称量次数了。在称以前,十二 只球的任何一个都可能是坏球,而且概率一样,都是 1/12,所以称 量最终确定了是哪一只后,我们得到了表征“坏球是 12 个球中的哪 一个”的 log 21 (1 12) = log 212 比特信息。另外,表明“好”球、“坏” 球是以球的轻重为标准的,所以,如我们从前面策略树上看到的,最 终的结果不仅是我们找到了坏球,而且知道了坏球比好球是轻了,还
是重了, 即不管我们是否需要, 我们还获得了表征坏球是 “轻” 是 “重” 的 log 22 =1 比特信息。这样,根据信息的可加性,最终找到那只坏球 以后,我们共计得到 1+ log 212 = log 224 比特的信息量。 我们再来看一次称量所能给出的信息量。由于是无法码天平,称 量能给我们的信息仅仅是天平的右重、左重、平衡三种状态。如果我 们设计的称法能够让三种结果等概率出现,都为 1/3,则我们就能够 保证一次称量不管出现什么结果,我们都可以获得 log 23 比特的信息 量。如果三个结果的概率不相等,由于三个结果的概率和为 1,无疑, 天平出现“发生概率”高的那种结果的话,我们就得不到 log 23 比特 的信息量。这样,对 12 个球,只要我们的称量办法能够让三种结果 等概率出现,并且,称量次数 M 能够使得 M log 23 ≥ log 224 ,即 M≥
log 27 比特信息。
2
为了下面分析的需要,我们将题目变化得稍微复杂一些,并且将 球的总数设为 N:我们需要从 N 个球中找到一个坏球,我们不知道那 个坏球是轻还是重了,但我们知道,如果坏球出现在 N 个球的前面 X 个球中,那一定是重了,如果出现在剩下的(N-X)个球中,那一定是 轻了(把题目改成这样,纯粹是后面分析的需要),即我们只要知道 了坏球是哪个,那坏球是轻是重就知道了,所以,找到坏球所需的信 息量还是 log 2N 比特,用{ log 2N / log 23 }次称量一定可以称出来。
11,1)| | |
|--右--(10 重)
|--左--(9 ;10)|--平--(11 轻) |--左--(9 重)
|--左--(1,2,7; |--平--(5 ; 6)|--平--( 4 重) 3,8,9 )| | | |--右--( 2 重) |--左--( 6 轻)
|--左--(1 ; 2)|--平--( 8 轻) |--左--( 1 重)
下面开始, 叙述更加繁琐, 如果大家对推导、 证明过程没有兴趣, 可以只阅读每节最后归纳的结论。 为了叙述的方便,我们将表述“坏球出现在 N 个球的前面 X 个球 中,那一定是重了,如果出现在剩下的(N-X)个球中,那一定是轻了” 想象成一次称量(X;N-X)的结果(我们在球数少的一侧加上标准重 量的球),我们称这次想象的称量为第一次称量,即我们的第一次称 量得到了坏球是轻是重的“分布”,这样,我们要研究的就是后续的 第二次、第三次……的称量操作方法。 第二次称量的称法是这样的:我们尽可能将 X 个球均分成 3 组, 这样各组之间的球数差不会超过 1 个。如果这 3 组中包含了坏球,那 坏球一定是重了,故我们记为重组 1、重组 2、重组 3。同样,余下 的 N-X 个球,也这样分成 3 组,分别记为轻组 1、轻组 2、轻组 3, 如果这 3 组中包含了坏球,那坏球一定是轻了。我们分别取重组、轻 组各 1 组,合成新的三部分,由于原来轻重各自组的球数差不会超过 1 个,这样适当的取组安排可以使得三部分的球数差也不会超过 1。 我们的目的是将要进行称量的球最为均匀地分成三部分(如果 N 是 3 的正整数幂,那三部分的球数都相等)。比如,如果:重组 1 球数≥ 重组 2 球数≥重组 3 球数,轻组 1 球数≥轻组 2 球数≥轻组 3 球数, 我们组合的三部分就可以是(重组 1、轻组 3)、 (重组 2、轻组 2)、 (重组 3、轻组 1)。我们对这三部分的球进行三种操作:1、“留” (指这部分球留在前一次 “想象” 称量时所在天平的盘中) 。 2、“换” (指这部分球前一次“想象”称量在左盘的,现在要换到右盘;原来
|--右--(1,2,7; |--平--(5 ; 6)|--平--( 4 轻) | | | | | 3,8,9 )| | | |--右--( 3 轻) |--左--( 5 重)
|--左--(3 ; 9)|--平--( 7 重) |--左--( × )
| | | | | | (1-4;5-8)|--平--(9-10; | | | | | | | | | | | |--右--( × ) |--右--(3 ; 9)|--平--( 7 轻) | | | |--右--( 5 轻) |--左--( 3 重) |--右--(9 轻) |--右--(9 ;10)|--平--(11 重) | | | |--右--(12 重) |--平--(1 ;12)|--平--(13 轻, 13 重)* |--左--(12 轻) |--左--(10 轻)
这个结果是反复尝试得到的,虽然直觉上三次应该是最低了,但 我们终究不能百分之百的确定,我们还是会问,两次能搞定吗?或者 我们想,十三个球里面找一个坏球,三次可以吗?十四个呢?……, 或者问,十个球里面找一个坏球要几次呢?二十个、四十个呢?N 个 呢?……还有, 称三次最多可以从几个球里找到唯一的那个坏球?四 次呢?五次、六次呢?M 次呢?解这样的题目有规律可循吗? 一般的,我们要解决以下问题:给定任一自然数 N, ⑴找出 N 个球称球问题所需的最小称量次数; ⑵给出最小次数称球的具体方法。 这道题的解决无非是要获得“十二个球中哪一个球是坏球的”的 信息,是要确定一个事件集合里最终哪一个事件发生的过程。下面, 我们用信息论的几个基本原理,试着分析一下。 (随便找一本介绍有 关香农信息论的书,都会有下面的内容,对信息论有所了解的,可以 跳过下面一段) 香农在他创立的信息论中,将信息定义为对“事物不确定性的消 除”,消除了多少不确定性,用信息量来衡量。一个事件集合中究竟 发生哪一件事情就是不确定的,每个事件的发生都有一定的概率,比 如明天天气可以由“晴、多云、阴、雨”几个事件组合而成,最终哪
用信息论构造出称球问题的解
赵明达
提要:本文用信息论推导出称球问题的解,并构造了的递推操作的称量办法,彻底解决 了任意个球的称球问题。 关键词:称量 信息量 概率 递推
经典的称球题目是这样的: “十二个外表相同的球中有一个坏球, 它的重量和其它十一个好球不同,现在有一台没有砝码的天平,问需 要称几次就能确保找出那个坏球”
(一)十二个球称几次
做过这道题目的人知道,答案是 3 次。不是太难,我们用图论中 的策略树将称法记录如下:
称 3 次,从 12 个球里找到坏球,并知道坏球的轻重:
|--右--( 1 轻) |--右--(1 ; 2)|--平--( 8 重) | | | |--右--( 6 重) |--左--( 2 轻)
已知 12 个球中有一个坏球比正常的球重(或轻,分析的过程一 样),用无法码天平要几次可以称出来。与前面的题目不一样的是我 们已经得到了表征坏球轻重的 log 22 =1 比特信息。这时,找到坏球就 只需要 log 212 的信息,当然,我们还是要 log 212 / log 23 =2.26 次,也 就是 3 次,但是 log 227 / log 23 =3,我们应该可以用 3 次称量从 27 只 球当中找出一个已知较轻还是较重的坏球了。我们的想法是对的。称 法很简单,假设坏球较重,将 27 个球编号 1-27,取 1-9,10-18 号球, 分别放天平的两侧,哪侧重则坏球便在哪侧的 9 个球中,比如天平平 衡,则坏球在 19-27 号的 9 个球中。不管第一次称量结果怎样,再将 包含坏球的那 9 个球等分成 3 个的三组,继续上面的称法,就得到包 含坏球的一组 3 个球,取其中的两个再称一次,结果就出来了。可以 看出由于每次都可以将包含坏球的那一组球等分成三部分, 我们每次 称量天平出现右重、左重、平衡三种状态的概率一样,那么每次天平 称量结果给出的信息都是 log 23 比特,所以三次就正好获得所需的
2 2 3
a 的最小整数,则有 M={ log 22 N
log 3 = log 2 N }。如果 M 恰好等于
2 3
log 2 N ,则 N= 3
3
M
2 。由于 N 必须为整数,故 N 最大只能为 (3M 1) 2 。
所以,理论上,我们可以算出,用无砝码天平称 2 次、3 次、4 次、5 次……,M 次,最多可以从 4 个球、13 个球、40 个球, 121 个球……, (3M 1) / 2 个球当中, 找出一个不知是轻了还是重了的坏球。 (结论 1)
说明: 1、*号所在的一行对应十三个球的情形,留待后面分析 13 个球的时候使用,现在可 以不管。 2、 树的每一处分叉就是一次称量,它有三个分支,分别标注了“右”、“平”和 “左”,表示称量的结果为“右重”、“平衡”和“左重”。
3、 (1,2,3,4; 5,6,7,8) 或者(1-4; 5-8)表示“将 1-4 号放在左边,5-8 号放在右 边”这样的一次“称量”。无疑,天平两端球数不等时的称量没有意义。 4、(1 重)和(2 轻)表示 “1 号是坏球,且较重,其他球都正常”和“2 号是坏球, 且较轻,其他球都正常”的最终结果;可以看出,在到达最终结果前经过了几个分叉,便是 称量的次数。
log 3 ,如何去称的问题实际上是如何实现天平称量的三个结果等概
2
率(或者尽可能相近的概率)出现,这样即便天平给出的是最不利的 结果(出现概率最大的称量结果),这次称量还能获得的足够多的信 息量。保证天平三种状态相近概率出现,实际上就是全部的球如何分 组称量的问题,即就是多少球放在天平的左盘,多少球放在右盘,多 少球放在下面待称。 现在, 我们仍然从信息量入手来分析, 作为准备, 我们需要从一个更为简单的问题开始。
(二)寻求称量方法的预备问题
我们注意到,这个结果不是构造性的,也就是说,上面的结果只 是给出了保证称出坏球的最低次数,但是它没有告诉我们如何去称。 我们要知道的不仅仅是“需要称三次”,还要知道“如何称这三次”。 总球数多了以后,反复尝试的办法就失效了。 从上面的分析可以看出,天平只有每种状态 (右重、 左重、平衡) 出现的概率都为 1/3 的情况下, 一次称量所给出的信息才能保证最低 也是 log 23 比特,而如果称量的三种结果的概率不一样,出现“发生 概率高”的那种天平称量结果的话,我们获得的信息量一定达不到
log 24 / log 3 =2.89,也就是 3 次,理论上,我们就能称出坏球。
2 2
所以,3 次就可以从找到 12 球里面的找到 1 个坏球,并且,因 为(1+ log 213 )/ log 23 = log 226 / log 23 =2.97<3,我们可以试着从 13 个 球里面找一个坏球,看一看 3 次能不能称出来;而 (1+ log 214 )/ log 23 = log 228 / log 23 =3.03>3,我们可以肯定 3 次是不 可能确保从 14 个球当中找到一个坏球并知道其轻重的。如果是 N 个 球,需要这样称 M 次,而我们所设计的称量办法可以让每次Hale Waihona Puke Baidu平称量 的三种结果等概率出现,那只要 M log 23 ≥1+ log 2N ,即 M≥ 我们用{a}表示大于等于 log 2 N log 3 = log 2 N ,就一定能找到坏球。
相关文档
最新文档