随机性在计算机领域中的作用.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算连通度的随机性算法 connectivity(G) //G=(V, E) while(|V|≠2) choose an edge (x, y) at random in G; //在G中随机选择一条边(x, y) contract (x, y); //聚合边(x, y) return |E|; 分析 给定一个图G = (V, E),重复执行connectivity(G) kn2次之后,算法“出错”的概率小于(1/e)k (其中n为图G的顶点数,e为自然对数的底)。 Nick Harvey: “The Best Algorithms are Randomized Algorithms” @University of Waterloo, 2010. 总结 基于随机性的方法是计算机领域中常用的解决问题的方法。 我们列举了随机性在以下几个方面的应用:设计协议、数论、密码学、数据通信、图论。 解决办法 (1) A随机地生成一个数y∈Zn*,计算Y = y2(mod n)。A把Y告诉给B。 s t Y y y*xA 解决办法 (2) B随机地向A提问:“y等于多少?”或“y*xA等于多少?” s t Y y y*xA 解决办法 (3) A回答B的问题,B验证A的答案。 3.1 问题: “y等于多少?” ? 验证: y2 = Y (mod n)? 3.2 问题: “y*xA等于多少?” ? 验证: (y*xA)2= Y*XA (mod n)? s t Y y y*xA 分析 从B的角度,假设A只知道“y”或“y*xA” 。A能正确回答B的问题的概率为1/2。 s t Y y y*xA 解决办法分析 如果把前面的协议看成一次“随机实验”,该实验失败的概率为1/2。 如果A和B重复进行该实验k次,失败的概率为(1/2)k。当k足够大时, (1/2)k足够小,k次实验全部失败的概率可以忽略不计。 s t Y1 Y2 。。。 。。。 Yk 解决办法分析 A每次向B提供的信息或者是“y”或者是“y*xA”,B不足以从这些随机信息中得到关于xA的任何信息。 s t Y1 Y2 。。。 。。。 Yk 随机性所起的作用 我们注意到: (2) B随机地向A提问:“y等于多少?”或“y*xA等于多少?” 假如A预先知道B提的问题是: “y等于多少?” ,则A有办法欺骗B。 同样道理,假如A预先知道B提的问题是: “y*xA等于多少?” ,A同样有办法欺骗B。 5. 随机性方法在数据通信中的应用 问题 已知:A和B各有一个文本文件,并且A和B之间通过一条可靠(但昂贵)的通讯线路连接。 目标:A和B需要比较他们的文本文件是否相同。 要求:在A与B之间通讯的数据量尽量少。 方法:? 问题 This is my document … This is my document … 1001011101 … 1001011101 … A B ? 问题 已知:A和B各有一个二进制序列(二进制数),并且A和B之间通过一条可靠(但昂贵)的通讯线路连接。 目标:A和B需要比较他们的二进制序列(二进制数)是否相同。 要求:在A与B之间通讯的数据量尽量少。 方法:? 方法1 (确定性的方法) A和B事先约定好,A只向B传输二进制序列的某些位(比如,奇数位)。 B接收到A传来的数据后,依序跟自己序列的相应位(奇数位)位比较。 方法1的缺点 有时候,方法1能检测出A与B数据的不一致。 有时候,方法1不能检测出A与B数据的不一致。 A: 1011010 B: 1011110 A: 1011010 A: 1111010 方法1的缺点 条件:假设A与B的二进制序列长度为n,选取传输位的方法为确定性的方法且传输位的总位数小于n。 结论:则总存在某些情况,使得A与B之间数据的不一致性永远无法得到检测(检测出数据不一致性的概率为0)。 方法2 (随机性的方法) A随机地向B传输二进制序列的某些位。 B接收到A传来的数据后,依序跟自己序列的对应位比较。 方法2的缺点 对于A传送的每一个比特位,都需要附加相应的信息,来表示该比特位对应A数据的哪一位。 该方法能成功地检测A与B数据不一致的概率较低。 假设只传输100个比特位,成功验证两个长度为100000的比特序列是否一致的概率小于0.1%。 方法2的缺点 假设A与B的二进制序列长度为n,且其中只有一个比特位不一致。 如果A随机地向B传送k比特的数据,则用方法2能成功地检测出这种不一致性的概率为: / = k/n 。 方法3 思想:采用传输数据指纹(fingerprint)的方法。A向B传送A数据的指纹,B核对该指纹是否与自己数据的指纹一致。 一个数据的数

文档评论(0)

benzei244572 + 关注
实名认证
内容提供者

建筑工程师持证人

没啥好说的额

领域认证该用户于2024年10月16日上传了建筑工程师

1亿VIP精品文档

相关文档