您的位置:首页 > 其它

算法9:概率分析

2016-03-03 00:21 337 查看

雇用问题

目前公司的候选人的编号是1 到 n。创建虚拟应聘者,编号 0,他比其他应聘者都要差

HIRE-ASSISTANT(n)
1. best=0
2. for i=1 to n
3.     interview candidate i
4.     if candidate i is better than candidate best
5.        best=i
6.        hire candidate i


面试费用=cic_i; 雇佣费用=chc_h, 雇佣人数=m,总人数=n

总费用=O(cin+chm)O(c_in+c_hm)

最坏情况分析

O(chm)O(c_hm)

概率分析

确定输入的分布

均匀分布:等可能

计算期望运行时间

指示器随机变量

给定样本空间:S 和一个事件 A,那么事件A 对应的指示器随机变量I{A}:

I(A)=1 ……… 如果A发生

I(A)=0 ……… 如果A不发生

指示器分析雇佣问题

计算雇佣一个新的办公助理的期望次数

X是随机变量=我们雇佣一个新的办公助理的次数

E[X]=∑nx=1xPrE[X]=\sum_{x=1}^n xPr {X=x}…………….原始期望公式

定义:XiX_i 对应于第 i个应聘者是否雇佣的指示器随机变量

Xi=IX_i=I {应聘者i是否被雇佣}=1 ………….. i被雇佣

Xi=IX_i=I {应聘者i是否被雇佣}=0 ………….. i未被雇佣

X=X1+X2+......+XnX=X_1+X_2+......+X_n

E[Xi]=PrE[X_i]=Pr{应聘者i被雇佣的概率}

结论

应聘者i 比从 1 到 i-1, 则i 更有资格的概率是 1/i. E[Xi]=1/iE[X_i]=1/i

E[X]=E[∑ni=1Xi]=∑ni=1E[Xi]=∑ni=11/i=lnn+O(1)E[X]=E[\sum_{i=1}^n X_i]=\sum_{i=1}^n E[X_i]=\sum_{i=1}^n 1/i=ln n+O(1)

随机算法

//随机雇佣问题//随机的改变应聘者的顺序
RANDOMIZED-HIRE-ASSISTANT(n)
0. randomly permute the list of candidates
1. best=0
2. for i=1 to n
3.     interview candidate i
4.     if candidate i is better than candidate best
5.        best=i
6.        hire candidate i


概率分析和随机算法

概率分析:输入做假设,例如服从均匀分布

随机算法:随机化输入

随机排列组合

概率分析 和 指示器随机变量的进一步使用

生日悖论

屋子内必须要最少多少人,才可以使其中两个人生日相同的概率达到50%

设:k=屋内人数, n=365, bib_i是编号为 i的人的生日,设生日均匀的分布在365天内

则 PrPr{bi=rb_i=r}=1/n; 两个人 i 和 j的生日同时都落在一天的概率

Pr{bi=r且bj=rb_i=r 且 b_j =r}=Pr{bi=rb_i=r}Pr{bj=rb_j=r}=1/n2n^2

则落在同一日的概率是:

Pr{bi=bjb_i=b_j}= ∑nr=1\sum_{r=1}^nPr{bi=r且bj=rb_i=r 且b_j=r}= ∑nr=1(1/n2)=1/n\sum_{r=1}^n(1/n^2)=1/n

选定两人,则两人在同一天生日的概率是1/n

k个人中至少两人的生日相同的概率

至少两个人生日相同的概率等于1 减去 所有人生日都不同的概率。k个人生日都互不相同的事件是:

Bk=⋂ki=1AiB_k=\bigcap _{i=1}^k A_i……… Ai=对所有的j<i,i与j生日不同的事件A_i = 对所有的 j

Bk=Ak⋂Bk−1B_k=A_k \bigcap B_{k-1}

Pr{BkB_k}=Pr{Bk−1B_{k-1} } Pr{Ak|Bk−1A_k | B_{k-1}}

Pr{Ak|Bk−1A_k | B_{k-1}}=(n-k+1)/n ………. n天中有 n-(k-1)天没有用

Pr{BkB_k}=Pr{Bk−1B_{k-1} } Pr{Ak|Bk−1A_k | B_{k-1}}

=Pr{Bk−2B_{k-2}}Pr{Ak−1|Bk−2A_{k-1}|B_{k-2}}Pr{Ak|Bk−1A_k|B_{k-1}}

……

=Pr{B1B_1}Pr{A2|B1A_2|B_1}……Pr{Ak|Bk−1A_k|B_{k-1}}

= 1∗(n−1)n∗n−2n......n−k+1n1* \frac{(n-1)}{n}*\frac{n-2}{n} ...... \frac{n-k+1}{n}

=1∗(1−1n)∗(1−2n)......(1−k−1n)1*(1- \frac{1}{n})*(1- \frac{2}{n}) ...... (1- \frac{k-1}{n})

又因为: 1+x<=ex1+x <= e^x

可得:

Pr{BkB_k}<=e−1ne^{-\frac{1}{n}}e−2ne^{-\frac{2}{n}}……e−(k−1)ne^{-\frac{(k-1)}{n}}

=e−∑ki=1i/n=e−k(k−1)/2ne^{-\sum_{i=1}^k i/n}=e^{-k(k-1)/2n}<=1/2

n=365 ……. =>…….k>=23

指示器分析

每一对(i, j) 定义指示器变量

XijX_{ij}=II {i和j生日相同i和j 生日相同}=1 …….. 如果i和j相同

XijX_{ij}=II {i和j生日相同i和j 生日相同}=0 …….. 如果i和j不相同

两个人相同的概率是 1/n

E[Xij]E[X_ij]=Pr{i和j的生日相同i和j的生日相同}=1/n

设:X表示计数生日相同的两人对数目的随机变量: X=∑ki=1∑kj=i+1Xij\sum_{i=1}^k \sum_{j=i+1}^k X_{ij}

E[X]=E[∑ki=1∑kj=i+1Xij]E[X]=E[\sum_{i=1}^k \sum_{j=i+1}^k X_{ij}]=∑ki=1∑kj=i+1E[Xij]\sum_{i=1}^k \sum_{j=i+1}^k E[X_{ij}]= (k2)1n=k(k−1)2n(_2^k) \frac{1}{n}=\frac{k(k-1)}{2n}

当且仅当 k(k-1)>=2n 时,期望至少为1 ……. k=28

复杂度

O(n−−√\sqrt{n})

球与箱子

将相同的球投入到b个箱子,求落入任意一个箱子的概率是1/b1/b

几何分布

一系列伯努利试验,成功的概率pp, 失败的概率 q=1−pq=1-p, 获取一次成功需要进行多少次试验

因为:k-1次是失败所以

PrPr{X=kX=k}=qk−1pq^{k-1} p

E[X]=1/P …… Var [X]=q/p2p^2

二项分布

一系列伯努利试验,成功的概率pp, 失败的概率 q=1−pq=1-p,则n次试验会有多少次成功?

Pr{X=kX=k}=(nk)pkqn−k(_k^n)p^k q^{n-k}

E[x]=np …… Var[x]=npq

超几何分布

超几何分布:在含有M见次品的N件产品中取出n件,其中恰好有X见次品的概率

p(X=k)=C(M,k)∗C(N−M,n−k)C(N,n)\frac{C(M,k)*C(N-M,n-k)}{C(N,n)}

特征序列

抛硬币n次, 最长连续正面的序列的期望长度是:O(lgn)O(lg n)

设:事件Aik=长度至少为k的正面特征开始于第i次A_{ik}= 长度至少为 k的正面特征开始于第 i 次,给定AikA_{ik},所有kk 次都朝上的概率是

Pr{AikA_{ik}}=1/2k2^k

对于 k=2[lgn]k=2[lgn]

Pr{Ai,2[lgn]A_{i,2[lgn]}}=122[lgn]<=1/22lgn\frac{1}{2^{2[lgn]}}<=1/2^{2lgn}=1/n21/n^2

长度是2[lgn], 起始于位置 i 的一个正面特征的概率。起始位置至多有n−2[lgn]+1个n-2[lgn]+1 个

长度至少为 2[lgn]2[lgn] 的正面序列开始于任意位置的概率

Pr{⋃n−lgn+1i=1Ai,2[lgn]\bigcup_{i=1}^{n-lgn+1} A_{i,2[lgn]}}<=∑n−2[lgn]+1i=11/n2<∑ni=1/n2=1/n\sum_{i=1}^{n-2[lgn]+1} 1/n^2 < \sum_{i=1}^n /n^2=1/n

E[L]=∑nj=0jPr\sum_{j=0}^n j Pr{LjL_j} < O(lgn)

在线雇佣

省略
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: