概率分析与随机算法.pptx

概率分析与随机算法.pptx

此“教育”领域文档为创作者个人分享资料,不作为权威性指导和指引,仅供参考
  1. 1、本文档共68页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
概率分析与随机算法;算法分析与输入分布;运行时间; 概率分析与随机算法;雇用问题;雇用问题;分析:最坏情况;概率分析;概率分析;概率分析;随机算法;随机算法;随机算法; 概率分析与随机算法;指示器随机变量;Simple example;复杂一点的例子;指示随机变量;雇用问题分析;;; 概率分析与随机算法;随机算法;雇用问题;雇用问题;随机排列数组;(1) Permute-by-sorting 设数组 A = 1, 2, … , n) 为每个元素 A[i] 分配一个随机数 P[i] 作为其优先权,然后依据这些优先权对数组 A 进行排序。 若初始数组A=1,2,3,4, 随机选取的优先权为P=36,3,97,19, 则排序后得到B=2,4,1,3;正确性证明思路: 固定一个排列A[1…n],Permute-By-Sorting算法输出A[1...n]意味着A[1…n]的优先权刚好按由小到大排列 排序后,数组第一个元素A[1]是优先权最小的元素,所有元素成为优先权最小元素的概率一致(=1/n) 数组第二个元素A[2]是剩下n-1个元素中优先权最小的,每个元素成为A[2]的概率为1/(n-1)。。。;正确性: 定义Ei为A[i]分配到第i小优先权的事件,则A[1…n]为排序后产生排列的概率为 由条件概率性质,上式等于 在A[1,..i-1]优先权确定后,A[i]优先权是剩下元素中最小的概率: 因此A[1…n]刚好按优先权排序的概率为;30;正确性: 给定一个包含 n 个元素的集合, 一个 k-排列是指一个包含其中k个元素的序列。 K-排列的个数为 n!/(n-k)! 定理 RANDOMIZE-IN-PLACE 产生一个均匀随机排列. 证明 利用循环不变式:在第 i 次迭代之前,对 (i-1)-排列, A[1 .. i-1]选取任意一个(i-1)-排列的概率为(n-i+1)!/n! ? ; 循环不变式: A[1 .. i-1]包含一个(i-1)-排列的概率为(n-i+1)!/n! ? 初始条件:对i=1,A[1…0]包含某个0-排列的概率为 n!/n!=1 ,其中A[1…0] 为空子列,0-排列则是不包含任何元素的序列 归纳步骤:假设第 i 次迭代前,设(i-1)-排列 A[1 .. i-1] 中,任一排列发生的概率为 (n-i+1)!/n! ,则需证明在第i 次迭代后,任一 i-排列 的概率为(n-i)!/n! 考虑一个特殊的i-排列R=x1, x2, … , xi,其中包含一个(i-1)-排列x1, x2, … , xi-1,算法在A[i]放置xi 令事件E1表示算法实际输出 (i-1)-排列R’为A[1 .. i-1] ,根据循环不变量, Pr{E1}=(n-i+1)!/n! 令事件E2表示第 i 次迭代后输出 A[i] 为xi ,则当且仅当E1 和 E2同时发生时我们得到 i-排列 R 为A[1 .. i],其概率为Pr{E2∩E1} = ? ; 循环不变式: A[1 .. i-1]包含一个(i-1)-排列的概率为(n-i+1)!/n! ? 初始条件:对i=1,A[1…0]包含某个0-排列的概率为 n!/n!=1 ,其中A[1…0] 为空子列,0-排列则是不包含任何元素的序列 归纳步骤:假设第 i 次迭代前,设(i-1)-排列 A[1 .. i-1] 中,任一排列发生的概率为 (n-i+1)!/n! ,则需证明在第i 次迭代后,任一 i-排列 的概率为(n-i)!/n! 根据条件概率:Pr{E2∩E1} = Pr{E2|E1} Pr{E1} . 给定E1的条件下,A[i]有n-i+1种取法,取到xi的概率为1/(n-i+1),即Pr{E2|E1} = 1/(n-i+1) 因此 ; 循环不变式: A[1 .. i-1]包含一个(i-1)-排列的概率为(n-i+1)!/n! ? 初始条件:对i=1,A[1…0]包含某个0-排列的概率为 n!/n!=1 ,其中A[1…0] 为空子列,0-排列则是不包含任何元素的序列 归纳步骤:假设第 i 次迭代前,设(i-1)-排列 A[1 .. i-1] 中,任一排列发生的概率为 (n-i+1)!/n! ,则需证明在第i 次迭代后,任一 i-排列 的概率为(n-i)!/n! 终止:终止时,i=n+1, A[1…n]是一个给定n-排列的概率为(n-(n+1)+1)!/n! = 1/n! 该算法又称为Fisher–Yates shuffle或者Knuth Shuffle 思考1:Inside-Out算法 思考2:如何从n个元素里随机选k个,使得任意k个元素出现的概率一样?(数据流,未知n) ; 概率分析与随机算法;在线雇用问题;在

文档评论(0)

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

没啥好说的额

1亿VIP精品文档

相关文档