一类概率期望问题的杀器:势函数和鞅的停时定理
Posted tinywong
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一类概率期望问题的杀器:势函数和鞅的停时定理相关的知识,希望对你有一定的参考价值。
考虑随机事件序列${A_0, A_1, A_2, dots}$,随机变量$T$为其停时。我们希望求$mathbb{E}[T]$,但一般情况下是比较困难的。
可以考虑构造势函数$phi(A)$,满足
- $ mathbb{E}[, phi(A_{t+1})-phi(A_t) mid A_t, A_{t-1}, dots, A_1, A_0 ,] = -1. $
- $ phi(A_T) $为常数。
令$X_t = phi(A_t)+t$,则
$$ mathbb{E}[, X_{t+1}-X_t mid X_t, X_{t-1}, dots, X_1, X_0 ,] = 0, $$
即${X_0, X_1, X_2, dots}$是鞅。若$T$也是${X_0, X_1, X_2, dots}$的停时,则根据停时定理,我们有
$$ mathbb{E}[X_T] = mathbb{E}[X_0], $$
即
$$ mathbb{E}[T] = phi(A_0)-phi(A_T). $$
这即是我们本文主要讨论的方法。
例题1
CodeForces 1349D. Slime and Biscuits
有$n$个人在玩传球游戏,一开始第$i$个人有$a_i$个球。每一次传球,等概率随机选中一个球,设其当前拥有者为$i$,$i$将这个球等概率随机传给另一个人$j(j eq i)$。当某一个人拥有所有球时,停止游戏。问游戏停止时的期望传球次数。
解:
记球的总数为
$$ m = sum_{i=1}^n a_i. $$
我们用$A_t = (a_{t,1}, a_{t,2}, dots, a_{t,n})$来描述$t$次传球后的游戏状态。初始状态为$A_0 = (a_{0,1}, a_{0,2}, dots, a_{0,n})$。
考虑构造势函数
$$ phi(A_t) = sum_{i=1}^n f(a_{t,i}). $$
注意到传球游戏是一个Markov过程,即$A_{t+1}$只取决于$A_t$,则
$$ mathbb{E}[,phi(A_{t+1})mid A_t, dots, A_0 ,] = mathbb{E}[,phi(A_{t+1})mid A_t ,]. $$
上式中的期望可考虑枚举所有传球可能,即以$frac {a_{t,i}} {m} cdot frac 1 {n-1}$的概率,$i$会将球传给$j(j eq i)$,从而
$$ egin{aligned} mathbb{E}[,phi(A_{t+1})mid A_t ,] & = sum_{i} sum_{j
eq i} frac {a_{t,i}} {m(n-1)} left[ f(a_{t,i}-1)+f(a_{t,j}+1)+sum_{k
otin {i,j}} f(a_{t,k})
ight] \
& = sum_i left[ frac {a_{t,i}} m f(a_{t,i}-1) + frac {m-a_{t,i}} {m(n-1)} f(a_{t,i}+1) + frac {(m-a_{t,i})(n-2)} {m(n-1)} f(a_{t,i})
ight]. end{aligned} $$
令$mathbb{E}[,phi(A_{t+1})-phi(A_t)mid A_t ,] = -1$可得
$$ sum_i f(a_{t,i}) = sum_i left[ frac {a_{t,i}} m f(a_{t,i}-1) + frac {m-a_{t,i}} {m(n-1)} f(a_{t,i}+1) + frac {(m-a_{t,i})(n-2)} {m(n-1)} f(a_{t,i}) + frac {a_{t,i}} m ight]. $$
于是,我们可取
$$ f(a) = frac a m f(a-1) + frac {m-a} {m(n-1)} f(a+1) + frac{(m-a)(n-2)}{m(n-1)} f(a) + frac a m. $$
一些边界问题的处理如下:令$a = 0$带入上式可得$f(0) = f(1)$,故可取$f(0) = f(1) = 1$,递推式为
$$ f(a+1) = left[ frac {m(n-1)} {m-a} - (n-2) ight] f(a) - frac {a(n-1)} {m-a} left( f(a-1)+1 ight). $$
另一方面,我们注意到$phi(A_T) = f(m)+(n-1)f(0)$为常数,故可应用停时定理,得
$$ mathbb{E}[T] = sum_{i} f(a_{0,i}) - left(f(m)+(n-1)f(0) ight). $$
例题2
CodeForces 850F. Rainbow Balls
有$n$种不同颜色的球,其中第$i$种颜色的球有$a_i$个。每次从所有球中等概率随机选出一个球A,再从所有球中等概率随机选出另一个球B,将球B染成球A的颜色;直到所有球的颜色都相同为止。问染色次数的期望。
解:
记球的总数为
$$ m = sum_{i=1}^n a_i. $$
我们用$A_t = (a_{t,1}, a_{t,2}, dots, a_{t,n})$来描述$t$次染色后的状态。
考虑构造势函数
$$ phi(A_t) = sum_{i=1}^n f(a_{t,i}). $$
考虑所有染色可能,即
- 以$frac {a_{t,i}} {m} cdot frac {a_{t,j}} {m-1}$的概率,将球$j(j eq i)$染成球$i$的颜色;
- 以$sum_i frac {a_{t,i}(a_{t,i}-1)} {m(m-1)}$的概率,不发生任何变化。
从而
$$ egin{aligned} mathbb{E}left[,phi(A_{t+1})mid A_t, ight] & = sum_{i} sum_{j eq i} frac {a_{t,i}a_{t,j}} {m(m-1)} left[ f(a_{t,i}+1) + f(a_{t,j}-1) + sum_{k otin {i,j}} f(a_{t,k}) ight] + sum_i frac {a_{t,i}(a_{t,i}-1)} {m(m-1)} sum_k f(a_{t,k}) \ & = sum_i left[ frac {a_{t,i}(m-a_{t,i})} {m(m-1)} left( f(a_{t,i}+1) + f(a_{t,i}-1) ight) + left(1-frac {2a_{t,i}(m-a_{t,i})} {m(m-1)} ight) f(a_{i,t}) ight]. end{aligned} $$
令$mathbb{E}[,phi(A_{t+1})-phi(A_t)mid A_t ,] = -1$可得
$$ sum_{i} f(a_{t,i}) = sum_i left[ frac {a_{t,i}(m-a_{t,i})} {m(m-1)} left( f(a_{t,i}+1) + f(a_{t,i}-1) ight) + left(1-frac {2a_{t,i}(m-a_{t,i})} {m(m-1)} ight) f(a_{i,t}) + frac {a_{t,i}} {m} ight], $$
即
$$ sum_i left[ frac {a_{t,i}(m-a_{t,i})} {m(m-1)} left( f(a_{t,i}+1) + f(a_{t,i}-1) - 2f(a_{t,i}) ight) + frac {a_{t,i}} {m} ight] = 0. $$
于是,我们可取
$$ frac {a(m-a)} {m(m-1)} left( f(a+1) + f(a-1) - 2f(a) ight) + frac {a} {m} = 0, $$
即
$$ f(a+1)+f(a-1)-2f(a) = -frac{m-1}{m-a}. $$
令$g(a) = f(a)-f(a-1)$,上式化为
$$ g(a+1) - g(a) = -frac{m-1}{m-a}. $$
于是
$$ g(x) = g(0)-sum_{a=0}^{x-1} frac{m-1}{m-a}. $$
$$ f(x) = f(0)+sum_{a=1}^x g(a) = f(0) + sum_{a=1}^x left[ g(0)-sum_{b=0}^{a-1} frac{m-1}{m-b} ight] = f(0)+xg(0)-(m-1)x+(m-1)(m-x)sum_{b=0}^{x-1} frac {1} {m-b}. $$
为方便起见,我们取$f(0) = 0, g(0) = m-1$,则
$$ f(x) = (m-1)(m-x)sum_{b=0}^{x-1}frac {1} {m-b}. $$
特别地,$f(m) = 0$。
另一方面,$phi(A_T) = f(m) + (n-1)f(0) = 0$ 为常数,故可应用停时定理得
$$ mathbb{E}[T] = phi(A_0)-phi(A_T) = sum_{i} f(a_{0, i}). $$
例题3
CodeForces 1025G. Company Acquisitions
有$n$个人,一开始每个人都未被领导。每次修改领导情况:等概率随机选择一个未被领导的人$x$,再等概率随机选择另一个未被领导的人$y$,令$x$被$y$领导,并且所有原来被$x$领导的人的状态变为未被领导。直到只剩下一个人未被领导(即其他所有人都被这个人领导)为止。问修改领导情况的期望次数。
解:我们把被同一个人领导的所有人加上领导者一起称为一个【小组】。我们用$A = { a_{t,1}, a_{t,2}, dots, a_{t, m_t} }$来描述$t$次修改领导后的状态,其中$m_t$表示$t$次修改领导后小组的个数,于是我们有
$$ sum_{i=1}^{m_t} a_{t, i} = n. $$
考虑构造势函数
$$ phi(A_t) = sum_{i=1}^{m_t} f(a_{t, i}). $$
考虑每次修改领导的所有可能,即以$frac 1 {m_t(m_t-1)}$的概率,第$i$个小组的领导进入第$j(j eq i)$组,并且第$i$个小组的组员(非领导人员)被拆散成$(a_{t,i}-1)$个只有1个人的小组。从而
$$ egin{aligned} mathbb{E}left[,phi(A_{t+1})mid A_t, ight] & = sum_{i} sum_{j eq i} frac 1 {m_t(m_t-1)} left[ (a_{t,i}-1) f(1) + f(a_{t, j}+1) + sum_{k otin {i,j}} f(a_{t,k}) ight] \ & = sum_i left[ frac 1 {m_t} f(a_{t,i}+1) + left(1 - frac 2 {m_t} ight) f(a_{t,i}) ight] + frac{n-m_t}{m_t} f(1). end{aligned} $$
令$mathbb{E}[,phi(A_{t+1})-phi(A_t)mid A_t ,] = -1$可得
$$ sum_i f(a_{t,i}) = sum_i left[ frac 1 {m_t} f(a_{t,i}+1) + left(1 - frac 2 {m_t} ight) f(a_{t,i}) + frac{n-m_t}{m_t^2} f(1) + frac 1 {m_t} ight]. $$
我们可取
$$ f(a) = frac 1 m f(a+1) + left(1 - frac 2 m ight) f(a) + frac {n-m} {m^2} f(1) + frac 1 m $$
对任意$m$恒成立。整理后可得
$$ f(a+1)-2f(a) + frac{n-m}{m} f(1) + 1 = 0. $$
令$f(1) = 0$,且满足递推式$f(a+1) = 2f(a)-1$即满足上式,解为
$$ f(a) = 1-2^{a-1}. $$
另一方面,$phi(A_T) = f(n) = 1-2^{n-1}$ 为常数,故可应用停时定理得
$$ mathbb{E}[T] = phi(A_0) - phi(A_T) = sum_{i} left( 1-2^{a_{0, i}-1} ight) - left( 1-2^{n-1} ight). $$
以上是关于一类概率期望问题的杀器:势函数和鞅的停时定理的主要内容,如果未能解决你的问题,请参考以下文章