- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
算法分析与设计里的概率算法概率算法
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * §1.6.3 矩阵乘法验证 设X=(0, 1, 1) XA=(11, 13, 15) (第2行+第3行) (XA)B=(76, 166, 236). (AB的第2行+第3行) XC=(76,164,136). (AB的第2行+第3行) ∵AB和C的第3行不等,即AB≠C ∴算法返回false,正确! -考虑两种情况 若AB=C,无论X为何值,必有XAB=XC 若AB≠C,若AB与C的第i行不同,且Xi=0则出错!即判断AB=C,出错概率≤1/2;否则无论Xi为何值,不影响判定结果。 * * §1.6.3 矩阵乘法验证 偏真还是偏假? 若算法返回false,若存在向量X使XAB≠XC = AB≠C,必正确。 若算法返回true, 偏假的,1/2-correct. * * §1.6.3 矩阵乘法验证 改进 RepeatGoodProduct( A, B, C, n, k) { for i←1 to k do //重复k次 if GoodProduct(A, B, C, n) = false then return false;//偏假的,有一次假即可返回 return true; } //此方法是偏假的(1-2-k)-correct的 当k=10,0.99-正确。 k=20,出错概率1/百万。 * * §1.6.3 矩阵乘法验证 若给出出错概率ε,则: GP(A, B, C, n, ε) { k ← ; return RepeatGoodProduct (A, B, C, n, k); } 时间: ∵计算XAB和XC需要3n2次数字乘,若k=20,则共需60n2次数字乘。当n很大时(n60),它远远快与确定行算法。 * * §1.6.3 矩阵乘法验证 习题 PrintPrimes{ //打印1万以内的素数 print 2,3; n ←5; repeat if RepeatMillRab(n, ) then print n; n ←n+2; until n=10000; } 与确定性算法相比较,并给出100~10000以内错误的比例。 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * §1.6 Monte Carlo算法 该算法是一致的和27/32-correct的(约84%) pf: 相容性(一致性)易证。 ∵t、u、v正确的概率为75%=3/4=p(∵MC是一致的,∴ t、u、v均正确时t=u=v)却为概率为q=1/4. 1)若t、u、v均正确,则MC3返回的t正确,此时t=u=v. 此概率为:(3/4)3 2)若t、u、v恰有两个正确则MC3返回的 此概率为: 3)若t、u、v恰有一个正确,若v正确,则MC3返回正确答案,此概率为: * * §1.6 Monte Carlo算法 严格的说,当v正确,且错误的t和v不相等时,才有可能成功,因此MC3成功的概率为: 多运行2次(共3次) Theorem:设ε+δ0.5 设MC(x)是一个一致的(0.5+ε)-correct的蒙特卡洛算法 设 ,x是某一被解实例,若调用MC(x)至少 次,并返回
原创力文档


文档评论(0)