目录
- 0.雇佣问题
- 1.概率分析的含义
- 2.随机算法
- 3.随机算法与概率分析的区别
- 4.雇佣问题的随机算法
4.1 雇佣问题的随机化方法
4.2 随机排列数组
4.2.1 第一个随机化方法:随机赋予优先级,按优先级重新排列
4.2.2 第二个随机化方法:原址排列给定数组 - 5.指示器变量与随机化分析
5.1 指示器随机变量(概率与期望之间转换的一个方法)
5.2 用指示器随机变量分析雇佣问题
5.3 生日悖论
5.4 球与箱子
5.5 特征序列
5.6 在线雇佣问题
0.雇佣问题

1.概率分析的含义
概率分析的一般思路是:首先对输入的分布情况进行某种假设,最常见的假设当然是均匀分布;然后以此假设为前提,对一个已知的算法进行此种分布下的复杂性和效率分析。
2.随机算法
通过使算法中某部分行为随机化
一个算法的行为不仅由输入决定,而且也由随机数生成器产生的数值决定,这个算法就是随机的。
在实践中,大多数编程环境提供了一个伪随机数生成器,它是一个确定性算法,返回值在统计上看起来是随机的。
3.随机算法与概率分析的区别
1)当算法本身做出随机选择时,称之为随机算法。将一个随机算法的运行时间称为期望运行时间。
2)进行概率分析,必须使用或者假设关于输入的分布,然后分析该算法,计算出一个平均情形下的运行时间。此时称为平均情况运行时间。
4.雇佣问题的随机算法
4.1 雇佣问题的随机化方法
让随机发生在算法上,而不是输入分布上。


4.2 随机排列数组
很多随机算法通过对给定的输入变换排列以使输入随机化。(还有其他使用随机化的方法)
4.2.1 第一个随机化方法:随机赋予优先级,按优先级重新排列
一个通常的方法是为数组的每个元素A[i]赋予一个随机的优先级P[i],然后依据优先级对数组A中的元素进行排序。

选取在1~n³之间的随机数,是为了让P中所有优先级尽可能唯一。(证明所有元素都唯一的概率至少是1-1/n,如何在两个或更多优先级相同的情况下,实现这个算法。)



4.2.2 第二个随机化方法:原址排列给定数组



5.指示器变量与随机化分析
5.1 指示器随机变量(概率与期望之间转换的一个方法)
给定一个样本空间S和一个事件A,那么事件A对应的指示器随机变量I{A}定义为:


指示器随机变量在分析重复随机试验时有用:


5.2 用指示器随机变量分析雇佣问题
设X是一个随机变量,其值等于雇佣一个新办公助理的次数:

但是这种计算会很麻烦。
如下为采用指示器随机比那里来计算:



5.3 生日悖论




采用指示器随机变量的一个分析:
对屋子里k个人中的每一对(i, j),对1 <= i < j <= k,定义指示器随机变量Xij如下:

两个人生日相同的概率是1/n,因此:


5.4 球与箱子

礼券收集者问题:
一个人如果想要集齐b种礼券中的每一种,大约需要blnb张随机得到的礼券才能成功。

5.5 特征序列
假设抛投一枚标准的硬币n次,最长连续正面的序列的期望长度有多长?答案是Θ(lgn)。
1)首先证明最长的连续证明的特征序列的长度期望是O(lgn)


2)证明下界:在n次硬币抛投中,最长的正面特征序列的长度期望为Ω(lgn)


采用指示器随机变量进行分析:


5.6 在线雇佣问题


对每个可能的k,希望确定能雇佣最好应聘者的概率。然后选择最佳的k值。
M(j) = max{score(i)}表示1~j中最高的分数
S表示成功选择最好应聘者的事件
Si表示最好的应聘者是第i个面试者时成功的事件

计算Pr{Si}:
为了当第i个应聘者是最好时发生。必须满足两个条件:
1)最好的应聘者必须在位置i上,用事件Bi表示。
2)算法不能选择从位置k+1~i-1中任何一个应聘者。因此,所有score(k+1)到score(i-1)都必须小于M(k)。用Oi表示从位置k+1到i-1中没有任何应聘者入选的事件。

事件Bi仅依赖于位置i的值是否大于所有其他位置的值
事件Oi仅依赖于位置1到i-1中值的相对次序。
从位置1到i-1的排序并不影响位置i的值是否大于上述所有的值,并且位置i的值也不会影响从位置1到i-1值的次序。因此Bi和Oi是独立的。

A.12如下:



网友评论