《鞅与一类关于停时的概率与期望问题》学习笔记
发现自己学的脑子都没了,重新系统的学(抄)一遍
$1 \ \ $ 鞅与鞅的停时定理
$1.1 \ $ 鞅
定义 $1.1.1.\ $ 随机过程
对于每一个参数 \(t \in T,\omega \in \Omega\) , \(X(t,\omega)\) 是一随机变量,称随机变量族 \(X_{T}=\{X(t,\omega),t \in T\}\) 为一随机过程. 其中 \(T \subset \mathbb{R}\) 是一实数集,称为指标集, \(\Omega\) 为样本空间,同时 \(X(t,\omega)\) 一般可以简记为 \(X_t\)
\(X(t,\omega)\) 这两个参数什么意思?建议参考这个回答
参数 \(t \in T\) 一般表示时间或空间,在本文中,只考虑参数为离散时间的随机过程,即可以取 \(T=\mathbb{N}\)
定义 $1.1.2. \ $ 非降 \(\sigma\)-代数族( \(\sigma\) 域流)
记作 \(\{\mathfrak{F}_t\}_{t \in T}\) ,表示随时间演化的信息流( flow of information up to time t ),随机变量随着时间的增加不断地产生更多的信息。信息随时间只增不减,且要定义在 \(\sigma\)-代数上保证可测性.
那么随着时间变化而增长的这一族 \(\sigma\)-代数称为——域流
换种通俗的说法,即需要满足 \(\mathfrak{F}_{t} \subset \mathfrak{F}_{t+1}\) ,且 \(\forall t \in T\) 需要满足 \(\mathfrak{F}_t\) 为 \(\sigma\)-代数(这里放个 \(\sigma\)-代数的介绍)
还有一个比较哲学的理解看这里
定义 $1.1.3. \ $ 鞅的定义
设随机过程 \(X=\{X_n, n \in \mathbb{N}\}\) 和 \(Y=\{Y_n,n \in \mathbb{N}\}\) ,如果
\(X\) 是 \(\{\mathfrak{F}_t\}_{t \in T}\) 的
\(\forall n \in \mathbb{N},\operatorname{E}[|X_n|] < \infty\)
\(\forall n \in \mathbb{N},\operatorname{E}[X_{n+1} | Y_0, \cdots , Y_n]=X_{n}\)
则称 \(X=\{X_n, n \in \mathbb{N}\}\) 是关于 \(Y=\{Y_n,n \in \mathbb{N}\}\) 的鞅
第三条直观的意义是什么?就是无论前 \(n\) 个时刻结果如何,第 \(n+1\) 个时刻的条件期望等于已经确定的第 \(n\) 个时刻的值,如果从鞅的起源,博弈论来看,就是每次赌本期望不变
想通过实例加深理解的话可以去看论文里的随机游走的例子
$1.2 \ \ $ 鞅的停时定理
定义 $1.2.1. \ $ 随机时刻
设取值为非负整数(包括 \(+ \infty\) )的随机变量 \(T\) ,及随机过程 \(\{X_n,n \in \mathbb{N}\}\) ,若 \(\forall n \in \mathbb{N}\) ,事件 \(\{T=n\}\) 的示性函数 \(I_{\{T=n\}}\) 仅是 \(X_0,X_1,\cdots,X_n\) 的函数,则称 \(T\) 是随机过程 \(\{X_n,n \in \mathbb{N}\}\) 的随机时刻
其实随机时刻就是随着时间推移,已知的信息越来越多,从而确定了一个时刻 \(T\) 来作出一些决策
定义 $1.2.2. \ $ 停时
若 \(T\) 是随机过程 \(\{X_n, n \in \mathbb{N} \}\) 的随机时刻,且 \(P(T < \infty)=1\) ,则称 \(T\) 是随机过程 \(\{X_n, n \in \mathbb{N} \}\) 的停时
注意停时和随机时刻的区别就是停时有界
定理 $1.2.3. \ $ 鞅的停时定理
设 \(X=\{X_n,n \ge 0\}\) 是鞅, \(T \in \mathbb{N}\) 是其停时,若有下列条件之一成立
存在 \(c \in \mathbb{N}\) 使得 \(\forall T \in \mathbb{N},|X_{n \and T}| \le c\) 几乎处处成立,其中 \(n \and T := \min (n,T)\)
\(T\) 几乎处处有界
\(\operatorname{E}[T]<\infty\) ,且存在 \(M < \infty\) 使 \(\operatorname{E}[|X_{n+1}-X_{n}| | \mathfrak{F}_n] < M\)
那么有
\[\operatorname{E}[X_{T}]=\operatorname{E}[X_0] \]
$2 \ \ $ 例题分析
在信息学竞赛中,通常题目所给定的离散随机过程都是 是 \(\{\mathfrak{F}_t\}_{t \in T}\) 的,所以构造一个鞅是可能的,同时因为大部分时候对于一个停时 \(T\) ,都有 \(\operatorname{E}[T]< \infty\) ,所以如果能构造出一个合适的鞅(即满足定理 \(1.2.3\) 的第三个条件),就可以通过定理 \(1.2.3\) 来计算一些从初态 \(X_0\) 到终态 \(X_{T}\) 过程中事件集合非常之巨大的问题
这种类型的题大部分有着非常相似的思路,接下来看几道例题大概就能理解其思路
例 $2.1 \ \ $ [CTSC2006]歌唱王国
$2.1.1 \ $ 问题描述
给定字符集 \(\Sigma\) 以及长度为 \(n\) 的串 \(X\) ,有一个初始为空的字符串 \(Y\) ,每个时刻在 \(Y\) 的末尾随机拼接 \(\Sigma\) 中的一个字符,求 \(X\) 第一次成为 \(Y\) 的后缀的期望时间
$2.1.2 \ $ 问题解析
设 \(T = \min\{m | Y[m-n+1,m]=X\}\) ,显然 \(T\) 是一个停时
设 \(t\) 个时刻后的状态后是 \(A_t\) ,我们想要构造一个势函数 \(\phi\) ,使得 \(\phi(A_t)+t\) 是个鞅,即 \(\operatorname{E}[\phi(A_{t+1})+(t+1)|A_t,\ldots,A_0]=\phi(A_t)+t\) ,也即 \(\operatorname{E}[\phi(A_{t+1})-\phi(A_t)|A_t,\ldots,A_0]=-1\)
同时只要对于所有可能的状态 \(S\) , \(\phi(S)\) 都有界(当然大部分构造的函数都有界),那么就满足定理 \(1.2.3\) 的第三个条件,就可以应用鞅的停时定理得到
故
所以我们只要能构造一个满足条件的 \(\phi\) 即可,大部分题 \(\operatorname{E}[\phi(A_{t+1})]\) 只跟 \(A_{t}\) 有关,这个时候一般我们将 \(A_t\) 分为几个小状态,令 \(\phi(A_t)=\sum f(a_{t,i})\) ,但是需要分开的状态转移到下一步后的概率独立,或者能够简单的表示
这里我们就可以设 \(\phi(A_t)=\sum_{i=0}^{n}\big[Y[t-i+1,t]=X[1,i]\big]f(i)\) ,我们需要构造 \(f\) 来满足上面的条件
先考虑列出 \(\operatorname{E}[\phi(A_{t+1})|A_{t})\) 的展开式,令 \(b_{t,i}=\big[Y[t-i+1,t]=X[1,i]\big]\) ,因为只要考虑 \(t<T\) 的时候,所以可以看作 \(b_{t,n}=0\)
又因为 \(\operatorname{E}[\phi(A_{t+1})-\phi(A_t)|A_t]=-1\) ,故
我们将等式右边的 \(1\) 分配到每个 \(i\) ,设分配了 \(w_i\) ,同时把右式变形一下,可以得到
先让对于 \(b_{t,i}=0\) 的 \(i\) ,其 \(w_i\) 都为 \(0\) ,同时考虑加强限制,若我们能满足对于所有的 \(b_{t,i}=1\) 的 \(i\) ,都有
原条件就一定能够满足,同时因为 \(f\) 是势函数,允许在满足所有条件的前提下平移,这里因为 \(f(0)\) 没什么限制,就可以令 \(f(0)=0\) ,这时 \(w_i\) 设什么其实都足以推出所有的 \(f(i)\) 了,令 \(w_i=[i=0]\) ,就有
因为 \(\operatorname{E}[\phi(A_{T})]=\phi(A_{T})\) ,所以就能得到
例 $2.2 \ \ $ Slime and Biscuits
$2.2.1 \ $ 问题描述
$2.2.2 \ $ 问题解析
还是和例 \(2.1\) 思路相似,我们考虑构造 \(\phi(A_t)\) 满足之前讲到的条件,令 \(a_{t,i}\) 表示 \(A_t\) 状态下,第 \(i\) 个人有的饼干数
注意到如果我们只关注一个人他的饼干数变化,概率是能够比较简洁的表示的,因为他没有的饼干在谁手上并没有影响,反正都是不在他手上,所以我们就可以设 \(\phi(A_t)=\sum_{i=1}^{n}f_i(a_{t,i})\)
令 \(m=\sum\limits_{i=1}^{n}a_i\) 即总饼干数,和例 \(2.1\) 的思路一样,有
同样,有
还是设 \(1\) 分配到每个 \(i\) 的为 \(w_{t,i}\) ,然后加强限制,得到对于所有 \(i\) 要满足
设 \(p_i\) 为最后第 \(i\) 个人拥有所有饼干的概率,因为无论是谁到了这个状态都会结束,所以有
而我们现在并不知道 \(p_i\) ,所以考虑令所有 \(f_{i}\) 相等,这样就可以使得 \(\operatorname{E}[\phi(A_T)]=f(m)\)
\(f_i\) 相等,即满足对于所有的 \(i,j(i \not = j)\) 使得 \(a_{t_1,i}=a_{t_2,j}(t_1,t_2<T)\) ,都有 \(w_{t_1,i}=w_{t_2,j}\) ,比如赋个 \(w_{t,i}=\frac{a_{t,i}}{m}\) ,然后有
若 \(a=m\) 则这就需要解方程(而且这种基本无解),但我们只关心 \(a<m\) ,就能有
直接设 \(f(0)=0\) ,递推即可求得一个合法的 \(f\) ,时间复杂度 \(O(n+m)\)
例 $2.3 \ \ $ Slime and Biscuits Strikes Back
$2.3.1 \ $ 问题描述
游戏与例 \(2.2\) 一样,但请你计算出每个人拿到所有饼干的概率
$2.3.2 \ $ 问题解析
和例 \(2.2\) 大体思想不变,注意到有
所以我们计算 \(p_i\) 时,让 \(f_j(c)=0,\quad (j \not = i,0 \le c \le m)\) ,直接让 \(w_{t,k}=[k=i]\) 即可,可以发现对于不同的 \(i\) , \(f_i\) 都是一样的,所以时间复杂度也是 \(O(n+m)\)
例 $2.4 \ \ $ Dye Color
$2.4.1 \ $ 问题描述
有 \(n\) 个球,每个球初始有一个颜色 \(c_i \in [1,n]\) ,每次等概率选一个子集,将其中的球重新染色,重新染色的定义如下
- 假设这个子集里的球为 \(a_1,a_2,\cdots,a_k\) ,等概率选出一个长度为 \(k\) 的序列 \(P\) 满足 \(p_i \in [1,n]\) 且两两不同,然后让 \(c_{a_i}=p_i\)
问球第一次全部染成同一种颜色的期望时间
$2.4.2 \ $ 问题解析
注意到我们只关心每种颜色的球的个数,具体怎么分布不是很重要,所以令 \(x_{t,i}\) 表示 \(A_t\) 状态下颜色 \(i\) 的球数
同时我们还是只关注终止时间而不关注到底哪个颜色获胜,所以直接设 \(\phi(A_t)=\sum\limits_{i=1}^{n}f(x_{t,i})\) ,然后令 \(p_{x,y}\) 表示原本一个颜色的球有 \(x\) 个,重新染色一次后有 \(y\) 个的概率,同样可以得到
设 \(w_{t,i}\) 为 \(1\) 的分配方式,因为所有颜色共用一个 \(f\) ,所以 \(w_{t,i}\) 还是要满足例 \(2.2\) 中的条件,比如就让 \(w_{t,i}=\frac{1}{n}\) ,然后还是缩紧限制,有
观察一下可以发现若 \(y>x+1\) ,则 \(p_{x,y}=0\) ,同时我们也不需要满足 \(x=n\) 时的限制,所以可以转为
令 \(f(0)=0\) ,若能求得 \(p_{x,y}\) 即可递推求得答案,而 \(p_{x,y}\) 的式子也可以列出来,有
时间复杂度 \(O(n^2)\)