算法导论学习笔记-第5章 概率分析和随机算法
2010-07-19 20:28
267 查看
总结:这章由雇佣问题引出了概率
分析和随机算法。概率分析一般用于确定一些算法的运行时间。而随机化算法用来强行使算法的输入符合某种概率分布,随机化算法的行为不仅由输入决定,还要由
一个随机数生成器所生成的值来决定。
1、
可以利用指示器随机变量来进行概
率分析,获得事件发生的期望值。
引理:给定样本空间
S
和
S
中的事件
A
,令
XA
=I{A}
,则
E[XA
]=Pr{A}
2、
随机算法
概率分析是在输入上作了假设,而
在随机算法中,随机发生在算法上,而不是发生在输入分布上,也就是对于同一个输入,由于引入了随机算法,最后的排列也会发生变化。这样做是使得“即使你最
坏的敌人也无法产生最糟的输入数列,因为随机的排列使得输入次序不相关,只有在随机数生成器产生一个不幸运的置换时,随机算法才运行得不好”。
随机排列数组的方法
1
)为数组的每个元素
A[i]
赋一个随机的优先级
P[i]
,然后根据优先级对数组
A
中的元素进行排序。
这
里排序,将花费
O(nlgn)
的时间。
伪代码
引理:假设所有的优先级都是唯一
的,过程
PERMUTE-BY-SORTING
可
以产生输入的均匀随机排列。
2
)原地排列给定的
数列。在
O(n)
时间内完成。
伪代码
引理:过程
RANDOMIZE-IN-PLACE
可以计算出一个均匀随机排列。
分析和随机算法。概率分析一般用于确定一些算法的运行时间。而随机化算法用来强行使算法的输入符合某种概率分布,随机化算法的行为不仅由输入决定,还要由
一个随机数生成器所生成的值来决定。
1、
概率分析
可以利用指示器随机变量来进行概率分析,获得事件发生的期望值。
引理:给定样本空间
S
和
S
中的事件
A
,令
XA
=I{A}
,则
E[XA
]=Pr{A}
2、
随机算法
概率分析是在输入上作了假设,而
在随机算法中,随机发生在算法上,而不是发生在输入分布上,也就是对于同一个输入,由于引入了随机算法,最后的排列也会发生变化。这样做是使得“即使你最
坏的敌人也无法产生最糟的输入数列,因为随机的排列使得输入次序不相关,只有在随机数生成器产生一个不幸运的置换时,随机算法才运行得不好”。
随机排列数组的方法
1
)为数组的每个元素
A[i]
赋一个随机的优先级
P[i]
,然后根据优先级对数组
A
中的元素进行排序。
这
里排序,将花费
O(nlgn)
的时间。
伪代码
PERMUTE-BY-SORTING n <- length[A] for i <- 1 to n do P[i]=RANDOM(1,n^3) sort A, using P as sort keys return A
引理:假设所有的优先级都是唯一
的,过程
PERMUTE-BY-SORTING
可
以产生输入的均匀随机排列。
2
)原地排列给定的
数列。在
O(n)
时间内完成。
伪代码
RANDOMIZE-IN-PLACE(A) n <- length[A] for i <- 1 to n do swap A[i] <-> A[RANDOM(i,n)]
引理:过程
RANDOMIZE-IN-PLACE
可以计算出一个均匀随机排列。
相关文章推荐
- 《算法导论》第5章 概率分析和随机算法 个人笔记
- 算法导论第5章 概率分析和随机算法(5.1)
- 算法导论代码 第5章 概率分析和随机算法
- 算法导论第5章5.4概率分析和随机算法
- 算法导论 第5章 概率分析和随机算法
- 算法导论学习(一)——概率分析和随机算法【待续】
- 算法导论学习笔记-第五章-概率分析和随机算法
- 算法导论——第五章概率分析与随机算法笔记
- 第5章:概率分析与随机算法
- 算法导论第五章概率分析和随机算法最后思考题
- 算法导论-概率分析和随机算法习题解
- 算法导论之概率分析和随机算法文档
- 算法导论_第五章_概率分析和随机算法
- 概率分析和随机算法(2)——算法导论(6)
- 算法导论第五章:概率分析和随机算法
- 算法导论 学习笔记 第五章 概率分析和随机化算法
- 算法导论习题5--概率分析和随机算法
- 算法导论之概率分析和随机算法
- 算法导论概率分析和随机算法
- 算法导论——lec 05 概率分析和随机算法