一类概率期望问题的杀器:势函数和鞅的停时定理

考虑随机事件序列${A_0, A_1, A_2, dots}$,随机变量$T$为其停时。我们希望求$mathbb{E}[T]$,但一般情况下是比较困难的。

可以考虑构造势函数$phi(A)$,满足

  1. $ mathbb{E}[\, phi(A_{t+1})-phi(A_t) mid A_t, A_{t-1}, dots, A_1, A_0 \,] = -1. $
  2. $ 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}). $$

考虑所有染色可能,即

  1. 以$frac {a_{t,i}} {m} cdot frac {a_{t,j}} {m-1}$的概率,将球$j(j eq i)$染成球$i$的颜色;
  2. 以$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). $$

原文地址:https://www.cnblogs.com/TinyWong/p/12887591.html