鞅与停时定理学习笔记

参考博客:势函数和鞅的停时定理 - p_b_p_b

定义

  • 随机过程:随机过程 \(X\) 为一随机变量族 \(\{X_0,X_1,X_2,\cdots\}\),其中 \(X_i\) 为随机变量(代表的是 \(i\) 次操作后的状态)。

  • 鞅:称随机过程 \(X\) 为鞅,如果:

    • \(\forall n \geq 0,E(|X_n|)<+\infty\)
    • \(\forall n \geq 0,E(X_{n+1}|X_0,\cdots,X_n)=X_n\)

    称随机过程 \(Y\) 为随机过程 \(X\) 的鞅,如果:

    • \(\forall n \geq 0,E(|Y_n|)<+\infty\)
    • \(\forall n \geq 0,E(Y_{n+1}|X_0,\cdots,X_n)=Y_n\)

第一个条件即期望有限(这点一般题目都能保证)。

第二个条件意味着已知 \(X_0,\cdots,X_n\)\(E(X_{n+1})=E(X_{n+2})=\cdots=X_n\)

此外,易知 \(E(X_n)=E(X_0)\)

  • 随机时刻:设随机变量 \(T \in N \vee \{+\infty\}\) 与随机过程 \(X\),若事件 \(T=n\) 的示性函数 \(I_{T=n}\) 为关于 \(X_0,\cdots,X_n\) 的函数(即仅由这些随机变量确定),则称 \(T\)\(X\) 的随机时刻。

  • 停时:若 \(T\)\(X\) 的随机时刻,且 \(P(T<+\infty)=1\),则称 \(T\)\(X\) 的停时。

  • 停止过程:若 \(T\)\(X\) 的随机时刻,则定义 \(X\) 的停止过程 \(\overline X\) 为:

\[\overline X_n= \begin{cases} X_n,n \leq T\\ X_T,n>T \end{cases} \]

  • 性质:若 \(X\) 为鞅,则 \(\overline X\) 为关于 \(X\) 的鞅。

    • 证明:若 \(n<T\),则 \(E(\overline X_{n+1}-\overline X_n | X_0,\cdots,X_n)=E(X_{n+1}-X_n | X_0,\cdots,X_n)=0\);否则,\(E(\overline X_{n+1}-\overline X_n | X_0,\cdots,X_n)=0\)
  • 鞅的停时定理:若随机过程 \(X\) 与 随机时刻 \(T\) 满足以下条件之一:

    • \(\overline X_n\) 一致有界(即每一个 \(\overline X_n\) 均有界)。
    • \(T\) 有界。
    • \(E(T)<+\infty\),且存在 \(M<\infty\) 使 \(E(|X_{n+1}-X_n| \mid X_0,\cdots,X_n)<M\)

    \(E(X_T)=E(X_0)\)

一般而言题目都能满足条件。

解题方法

目前遇到的题都比较套路。

  1. 设计状态(一般而言状态就是题目中的状态)。

  2. 尝试构造势函数 \(\phi(X)\),使得 \(E(\phi(X_{n+1})|X_0,\cdots,X_n)=\phi(X_n)+1\)。这样一来 \(\{\phi(X_n)-n\}\) 即为一个鞅,由停时定理得到 \(E(\phi(X_T))-E(T)=E(\phi(X_0))\),即可计算 \(E(T)=E(\phi(X_T))-E(\phi(X_0))\)

  3. \(E(\phi(X_{n+1})|X_0,\cdots,X_n)=\phi(X_n)+1\) 方程并构造势函数。(主要步骤)

问题 1 (CF1025G Company Acquisitions)

  • 现有 \(n\) 个人组成若干组,每组有且仅有一个组长。

  • 接下来的每一时刻,随机有序选取两个不同的组长 \(A,B\),让 \(A\) 加入 \(B\) 的组内并将 \(A\) 原来的组解散(每个人各自组建一个新的小组)。

  • 求第一次只剩下一个组的期望时间。

设大小为 \(n\) 的组的势函数为 \(f(n)\),一个局面的势函数 \(\phi(X_t)=\sum f(a_{t,i})\),其中 \(a_{t,i}\) 表示的是 \(X_t\) 中每个组的大小。

由于这道题组数会变,考虑每次只计算变化的。设无序选出的两个组长所在组的人数分别为 \(a,b\)

\[-f(a)-f(b)+\dfrac{1}{2}[f(b+1)+(a-1)f(1)]+\dfrac{1}{2}[f(a+1)+(b-1)f(1)]=1 \]

\[[(a-1)f(1)+\dfrac{1}{2}f(a+1)-f(a)]+[(b-1)f(1)+\dfrac{1}{2}f(b+1)-f(b)]=1 \]

\((n-1)f(1)+\dfrac{1}{2}f(n+1)-f(n)=\dfrac{1}{2}\),即 \(f(n)=2f(n-1)-2(n-1)f(1)+1\)

\(f(1)=0\),即有 \(f(n)=2f(n-1)+1=2^{n-1}-1\)

答案即为 \(E(T)=E(\phi(X_T))-E(\phi(X_0))\),时间复杂度 \(O(n \log mod)\)

问题 2 (CF1349D Slime and Biscuits)

  • 现有 \(n\) 个人, 第 \(i\) 个人有 \(a_i\) 个饼干。

  • 每一时刻,随机选择一个饼干, 将其随机分配给除了它现在所有者的其他 \(n-1\) 个人之一。

  • 求第一次出现一个人拥有所有饼干的期望时间。

\(m=\sum a_i\)

\[\begin{aligned} \phi(X_{t+1}) & =\sum\limits_{i=1}^n \sum\limits_{j \neq i} \dfrac{a_{t,i}}{m} \dfrac{1}{n-1} [f(a_{t,i}-1)+f(a_{t,j}+1)+\sum\limits_{k \neq i,j} f(a_{t,k})]\\ & =\sum\limits_{i=1}^n [\dfrac{a_{t,i}}{m} f(a_{t,i}-1)+ \dfrac{m-a_{t,i}}{m} \dfrac{1}{n-1} f(a_{t,j}+1)+\dfrac{m-a_{t,i}}{m}\dfrac{n-2}{n-1} f(a_{t,i})] \end{aligned} \]

\(\phi(X_{t+1})=\phi(X_t)+1\),即 \(\phi(X_t)=\phi(X_{t+1})-1\)。这里把 \(1\) 拆成 \(n \times \dfrac{1}{n}\),拆成 \(\sum \dfrac{a_i}{m}\) 也可以(之后会这么拆)。

\[\sum\limits_{i=1}^n f(a_{t,i})=\sum\limits_{i=1}^n [\dfrac{a_{t,i}}{m} f(a_{t,i}-1)+ \dfrac{m-a_{t,i}}{m} \dfrac{1}{n-1} f(a_{t,j}+1)+\dfrac{m-a_{t,i}}{m}\dfrac{n-2}{n-1} f(a_{t,i})]-1 \]

\[a_{t,i}=\dfrac{a_{t,i}}{m} f(a_{t,i}-1)+ \dfrac{m-a_{t,i}}{m} \dfrac{1}{n-1} f(a_{t,j}+1)+\dfrac{m-a_{t,i}}{m}\dfrac{n-2}{n-1} f(a_{t,i})-\dfrac{1}{n} \]

移项得:

\[f(a+1)=(n-1)\dfrac{m}{m-x}(f(x)-f(x-1))-(n-2)f(x)+\dfrac{m}{m-x}\dfrac{n-1}{n} \]

线性递推即可,时间复杂度 \(O(m)\)

问题 3 (CF850F Rainbow Balls)

  • 现有 \(n\) 种颜色, 第 \(i\) 种颜色有 \(a_i\) 个球。

  • 每一时刻,随机有序选择两个不同的球(可能同色),将第二个球染成第一个球的颜色 。

  • 求第一次所有球颜色相同的期望时间。

看起来与问题 2 大同小异

\(m=\sum a_i\)

\[\begin{aligned} \phi(X_{t+1}) & =\sum\limits_{i=1}^n \sum\limits_{j \neq i} \dfrac{a_{t,i}}{m} \dfrac{a_{t,j}}{m-1} [f(a_{t,i}+1)+f(a_{t,j}-1)+\sum\limits_{k \neq i,j} f(a_{t,k})]+\dfrac{a_{t,i}}{m} \dfrac{a_{t,i}-1}{m-1} \sum\limits_k f(a_{t,k}) \\ & =\sum\limits_{i=1}^n \dfrac{a_{t,i}}{m} \dfrac{m-a_{t,i}}{m-1} [f(a_{t,i}+1)+f(a_{t,i}-1)]+\dfrac{\sum\limits_{p \neq q \wedge p,q \neq i} a_p a_q+\sum\limits_p a_p^2}{m(m-1)}f(a_i)\\ & =\sum\limits_{i=1}^n \dfrac{a_{t,i}}{m} \dfrac{m-a_{t,i}}{m-1} [f(a_{t,i}+1)+f(a_{t,i}-1)]+[1-2\dfrac{a_{t,i}(m-a_{t,i})}{m(m-1)}]f(a_i)\\ \end{aligned} \]

写出方程得到:

\[f(a)=\dfrac{a(m-a)}{m(m-1)}[f(a+1)+f(a-1)]+[1-2\dfrac{a(m-a)}{m(m-1)}]f(a)-\dfrac{a}{m} \]

\[0=\dfrac{a(m-a)}{m(m-1)}[f(a+1)+f(a-1)]-2\dfrac{a(m-a)}{m(m-1)}f(a)-\dfrac{a}{m} \]

\[2f(a)=f(a+1)+f(a-1)-\dfrac{m-1}{m-a} \]

可以如问题 2 直接递推,时间复杂度 \(O(m)\)

遗憾的是这道题 \(m\) 可能很大,需要快速算出 \(f(m)\)

发现递推形式非常整齐,考虑令 \(g(a)=f(a)-f(a-1)\)

\[[f(a+1)-f(a)]-[f(a)-f(a-1)]=\dfrac{m-1}{m-a} \]

\[g(a+1)-g(a)=\dfrac{m-1}{m-a} \]

\[g(a)=g(0)+\sum\limits_{i=0}^{a-1} \dfrac{m-1}{m-i} \]

\[\begin{aligned} f(a) & =f(0)+\sum\limits_{i=1}^a g(i)\\ & =f(0)+\sum\limits_{i=1}^a (g(0)+\sum\limits_{j=0}^{i-1} \dfrac{m-1}{m-j})\\ & =f(0)+ag(0)+\sum\limits_{j=0}^{a-1} \dfrac{m-1}{m-j} (a-j)\\ \end{aligned} \]

\(f(0)=g(0)=0\),则:

\[f(a)=a\sum\limits_{j=0}^{a-1} \dfrac{m-1}{m-j} - \sum\limits_{j=0}^{a-1} j\dfrac{m-1}{m-j} \]

\[f(m)=\sum\limits_{j=0}^{m-1} \dfrac{m-1}{m-j} (m-j)=m(m-1) \]

时间复杂度 \(O(\max\{a_i\})\)

问题 4 (CF1479E School Clubs)

  • 现有 \(m\) 个学生组成 \(n\) 组。

  • 接下来的每一时刻,随机选取一个学生,他各有一半的概率进行以下操作之一:

    • 脱离该组并成立一个新的组。
    • 脱离该组并以正比于人数的概率随机加入某一小组(可能回到原来的组)。
  • 求第一次只剩下一个组的期望时间。

好像就是问题 1 和 问题 3 的合体

\[\begin{aligned} \phi(X_{t+1}) & =\dfrac{1}{2} \sum\limits_{i=1}^{n_t} \dfrac{a_{t,i}}{m} [f(1)+f(a_{t,i}-1)+\sum\limits_{k \neq i} f(a_{t,k})]+ \sum\limits_{j \neq i} \dfrac{a_{t,i}}{m} \dfrac{a_{t,j}}{m} [f(a_{t,i}+1)+f(a_{t,j}-1)+\sum\limits_{k \neq i,j} f(a_{t,k})]+\dfrac{a_{t,i}^2}{m^2} \sum\limits_k f(a_{t,k}) \\ & =\dfrac{1}{2}f(1)+\dfrac{1}{2} \sum\limits_{i=1}^{n_t} \dfrac{a_{t,i}}{m} f(a_{t,i}-1)+\dfrac{m-a_{t,i}}{m} f(a_{t,i})+\dfrac{a_{t,i}}{m}\dfrac{m-a_{t,i}}{m}[f(a_{t,i}-1)+f(a_{t,i}+1)]+[1-2\dfrac{a_{t,i}}{m}\dfrac{m-a_{t,i}}{m}]f(a_i)\\ \end{aligned} \]

同样化简得到:

\[0=(\dfrac{a}{m}+\dfrac{a}{m}\dfrac{m-a}{m}) f(a-1)+\dfrac{a}{m}\dfrac{m-a}{m}f(a+1)-(2\dfrac{a}{m}\dfrac{m-a}{m}-\dfrac{m-a}{m} +1)f(a)+(f(1)-2)\dfrac{a}{m} \]

\(f(1)=2\)

\[f(a+1)=(2-\dfrac{m}{a}+\dfrac{m}{a}\dfrac{m}{m-a})f(a)-(1+\dfrac{m}{m-a})f(a-1)=\dfrac{(3n-2a)f(a)-(2n-a)f(a-1)}{n-a} \]

官方题解用的是 \(O(m(\sqrt n+\log n))\) 的多项式做法。我们不想写多项式,怎么办呢 不过事实上线性也能过。

由于数据范围过大,甚至连 \(O(m)\) 的数组都不能开。但是可以考虑用阶乘除阶乘的办法算逆元。

\(g(a)=m(m-1)(m-2)\cdots(m-a+1)f(a)\),带入得:

\[\dfrac{1}{m(m-1)\cdots(m-a+1)}g(a+1)=(3n-2a)\dfrac{1}{m(m-1)\cdots(m-a+1)}g(a)-(2m-a)\dfrac{1}{m(m-1)\cdots(m-a+2)}g(a-1) \]

\[g(a+1)=(3m-2a)g(a)-(2m-a)(m-a+1)g(a-1) \]

动态记录 \(g(a)\)\(g(a-1)\)\(m(m-1) \cdots (m-a+1)\) 即可做到 \(O(m+n \log mod)\)

posted @ 2021-12-07 22:10  苹果蓝17  阅读(457)  评论(0编辑  收藏  举报