随机算法_
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
设zi为A中第i小的元素
Xij=I{zi与zj进行比较}
8 /72
2017年春季 通信网络理论基础
随机化快排
Zij={zi,zi+1,…,zj} zi 与zj什么时候不比较
Zij中第一个作为主元的元 素为zk,k!=i&&k!=j时, zi zj不比较 k==i||k==j时,zi zj比较
Random-Paritition(A,p,r) i=RANDOM(p,r) exchange A[r] with A[i] X=A[r] i=p-1 For j=p to r-1 if A[j]<=x i=i+1 exchange A[i] with A[j] Exchange A[i+1] with A[r] Return i+1
原址排列
进行i次迭代,在第i 次迭代中选A[i]到 A[n]中选取一个与 A[i]交换
RANDOMIZE-IN-PLACE(A)
n = A.length for i =1 to n T=A[RANDOM(I,n)] swap A[i] with T O(n)
6 /72
2017年春季 通信网络理论基础
2017年春季 通信网络理论基础
随机排列数组
优先级排列 为数组的每个元素 A[i]赋一个优先级 P[i],然后依据优先 级对A进行排列
PERMUTE-BY-SORTING(A) n = A.length let P[1…n] be a new array for i = 1 to n P[i] = RANDOM(1,n^3) sort A,using P as sort keys O(nlogn)基于比较排序
通信网络理论基础
概率分析和随机算法
黄林
2015010909012
概率分析及随机算法
1
2 3
雇佣问题
概率分析及平均运行时间
随机算法 随机排列数组 随机化快排
4
5
2 /72
2017年春季 通信网络理论基础
雇佣问题
雇佣助理,面试n个人,公司要求面试后立即决定是否 雇佣,如果雇佣则要炒掉当前的助理.面试一个人需要 花费一小笔费用.而雇佣一个人需要炒掉目前的助理, 并花一大笔费用
E[ X ] E[ X i ] E[ X i ] 1/ i ln n O(1)
i 1 i 1 i 1
n
雇佣费用平均情况Θ(Hlnn)算法总费用平均情况Θ(Ln+Hlnn)
4 /72
2017年春季 通信网络理论基础
随机算法
随机算法 算法的行为由输入和随机数生成器决定 随机生成器RANDOM(a,b):返回一个 a,b之间的整数,且每个整数等概率出现
HIRE-ASSISTANT(n) best = 0 For i = 1 to n interview candidate i if candidate i is better than candidate best best = i hire candidate i
假设面试费用较低,为L,雇佣费用较高,为H.雇 佣m次,那么我们的总费用就是Θ (Ln+Hm).无 论如何,面试次数总是不变的.而不同情况下雇 佣次数是不同的.
随机化快排
最佳情况:T(n)=2T(n/2)+cn 最坏情况:T(n)=T(n-1)+cn
quicksort(A,p,r)
Θ(nlgn) Θ(n2)
Paritition(A,p,r) X=A[r] i=p-1 For j=p to r-1 if A[j]<=x i=i+1 exchange A[i] with A[j] Exchange A[i+1] with A[r] Return i+1
假设输入的所有排列等可 能出现往往有益,通过概率 分析,我们可以优化原本的 算法.现在我们不只是假设 分布,而是设定分布.既然雇 佣次数依赖输入,那么我们 就让随机发生在算法上,而 不是在输入分布上.成为随 机算法
5 /72
RANDOMIZED-HIRE-ASSISTANT(n) randomly permute the list of candidates best = 0 For i =1 to n interview candidate i if candidate i is better than candidate best best = i hire candidate i
9 /72
2017年春季 通信网络理论基础
鸣谢
Thank you
ห้องสมุดไป่ตู้
10 /72
2017年春季 通信网络理论基础
If p < r q = patition(A,p,r) quicksort(A,p,q-1) quicksort(A,q+1,r
很明显,运行时间和递归时的划分有很大的 联系,也可以说和主元的选择有很大的联系
7 /72
2017年春季 通信网络理论基础
随机化快排
一次划分为m长度后, 下层函数partition执行 m次循环,做了m次比较
3 /72
2017年春季 通信网络理论基础
概率分析及平均运行时间
平均运行时间 所有可能输入产生的运行时间取平均
在本例中,我们假设输入分布为平均分布 即应聘者以随机等可能顺序出现
概率分析:在分析中运用概率的理念 指示器随机变量
i被雇佣 i不被雇佣
X X1 X 2 X n
n n
假设任意一种顺序都是等可能的,前i个应聘者中最优秀的出现在位置i上, 即i比1~i-1都优秀的概率是P{ X i } (i 1)!/ i ! 1 / i
任意两两一对元素 最多可能比较一次
Random-Paritition(A,p,r) i=RANDOM(p,r) exchange A[r] with A[i] X=A[r] i=p-1 For j=p to r-1 if A[j]<=x i=i+1 exchange A[i] with A[j] Exchange A[i+1] with A[r] Return i+1