鞅、停時定理
鞅,用來描述一種 公平、連續 隨機過程。首先來看定義,這裏只考慮離散意義下的鞅。
稱隨機過程 \(X=\{X_n,n\ge 0\}\) 爲 鞅,若
- \(E(|X_n|)\le\infty\)
- \(E(X_{n+1}|X_0,\cdots,X_n)=E(X_n)\)
稱隨機過程 \(Y=\{Y_n,n\ge 0\}\) 是關於 \(X\) 的 鞅,若
- \(Y_n\) 僅僅與 \(X_0\cdots X_n\) 有關;
- \(E(Y_{n+1}|X_0\cdots X_n)=E(Y_n)\)
直觀來看,鞅就是一個隨機過程:在已知前面所有 \(s\) 時刻之前的觀測值,\(s\) 之後的期望與 \(s\) 時刻的期望相等。鞅描述了一種連續期望下的一種不動性。
隨機時刻:設取值爲 \(\N\cup\{\infty\}\) 的隨機變量 \(T\),及隨機過程 \(\{X_n,n\ge 0\}\),若 \(\forall n\ge 0\),事件 \(\{T=n\}\) 的示性函數 \(I_{\{T=n\}}\) 僅僅是關於 \(X_0,\cdots,X_n\) 的函數,則稱 \(T\) 是隨機過程 \(\{X_n,n\ge 0\}\) 的隨機時刻。
停時:隨機時刻 \(T\) 在不僅滿足定義,並且滿足 \(P(T<\infty)=1\),則稱 \(T\) 是隨機過程 \(\{X_n,n\ge 0\}\) 的停時。
停止過程:若 \(T\) 是對過程 \(\{X_n,n\ge 0\}\) 的一個隨機時刻,稱 \(X_{n\land T}\) 爲停止過程,其中 \(a\land b=\min\{a,b\}\)。
不難證明停止過程也是關於 \(\{X_n,n\ge 0\}\) 的 鞅。
停時定理:假設 \(M=\{M_n,n\ge 0\}\) 是關於 \(X=\{X_n,n\ge 0\}\) 的鞅,\(T\) 是停時,\(P(T<\infty)=1\),有 \(E(M_{n\land T})=E(M_0)\).
若滿足下列三個條件之一:
- \(|M_{n\land T}|\) 幾乎處處有界 \(\Leftrightarrow |M_{n\land T}|\le K\);(\(\rm bounded~in~space\))
- \(T\) 幾乎有限 \(\Leftrightarrow P(T\le K)=1\);(\(\rm bounded~in~time\))
- \(E(T)<\infty\),並且 \(E(|M_{n+1}-M_n|\mid X_0\cdots X_n)\le K\);(\(\rm bounded~in~increments\))
則有 \(E(M_T)=E(M_0)\) 成立。
猴子打字問題
給定字符集大小爲 \(m\),長度爲 \(n\) 的串 \(s\)。初始時,令字符串 \(t=\phi\),每次在 \(t\) 後面隨機加入一個字符。求 \(s\) 第一次成爲 \(t\) 後綴的期望時間。
常規做法:設 \(F(x)\) 表示不同長度下,\(s\) 第一次成爲 \(t\) 後綴的概率生成函數,\(G(x)\) 表示不同長度下,\(s\) 沒有成爲 \(t\) 後綴的概率生成函數。
在 \(G\) 後加任意一個字符,只會變成 \(F\) 和 \(G\) 的一種,得到
在 \(G\) 後面添加 \(s\),有可能提前成爲 \(F\),成爲 \(F\) 之前加入的部分一定爲 \(\rm border\)。設 \(c(x)=\sum_{i=1}^n[s[1,i]=s[n-i+1,n]](\frac xm)^{n-i}\),得到
聯立得到
期望爲 \(F'(1)\)。兩邊求導後代入 \(F(1)=1\) 和 \(x=1\),即可得到結果爲 \(\sum_{i=1}^n[s[1,i]=s[n-i+1,n]]m^i\)。
使用 停時定理 也可求解。
假設在每個時刻,有一個賭徒拿着 1 元錢入場,並押當前這一次隨機的字符爲 \(s_1\)。如果沒押中,輸光離場;押中了,資金變成 \(m\) 倍。下一次他押 \(s_2\),同樣按照剛剛的方法;下一次押 \(s_3\)、\(s_4\)、\(\cdots\),直到押中 \(s_n\) 爲止,此時他有 \(m^n\) 元錢,或者輸光離場。
不難發現每個賭徒在任何時候的 期望收益 爲 0,在第 \(t\) 個時刻後,設所有賭徒的 金額總和 期望爲 \(A_t\),則 \(\{A_t-t,t\ge 0\}\) 是鞅。
設 \(T=\min\{x:t[n-x+1,n]=s\}\),則 \(T\) 是一個停時,同時 \(0\le A_{t\land T}-t\land T\le \sum_{i=1}^nm^i-n\) 有界,由停時定理得到
而
故
\(E(A_T)\) 的意義爲:\(T\) 到來時(即結束時),所有賭徒的金額總和。顯然上式成立。
勢能函數
我們發現求解這類問題的關鍵,就是選取一個好的鞅,利用停時定理求解方程。這時,構造一個好的 勢能函數 將會大有功用。
給定隨機序列 \(A=\{A_n,n\ge 0\}\),\(T\) 爲停時,求 \(E(T)\)。
構造勢能函數 \(\Phi(A)\),滿足:
- \(E(\Phi(A_{n+1})-\Phi(A_n)|A_0,\cdots,A_n)=-1\);
- \(\Phi(A_T)\) 爲常數,且 \(\Phi(A_i)=\Phi(A_T)\) 當且僅當 \(i=T\);
構造序列 \(X_n=\Phi(A_n)+n\),則 \(X=\{X_n,n\ge 0\}\) 是關於 \(A\) 的鞅。
利用停時定理,得到:\(E(X_T)=E(X_0)\),即 \(E(\Phi(A_T)+T)=E(\Phi(A_0))\Rightarrow E(T)=E(\Phi(A_0))-\Phi(A_T)\)。
CF1025G Company Acquisitions
給定 \(n\) 個節點,每個節點要麼爲根,要麼父親爲根;
現在有一種操作:等概率選取兩個 不同的根 \(x\) 和 \(y\)(關心順序),將 \(y\) 的所有孩子變成根(有可能沒有),\(y\) 的父親設成 \(x\)。
該操作當且僅當只剩下一個根時結束。
詢問期望操作數,對 \(10^9+7\) 取模。\(n \le 500\)。
做法:設一棵有 \(x\) 個孩子的樹的勢能爲 \(f(x)\),當前局面勢能 \(\Phi(A)=\sum_{a_i\in A}f(a_i)\)。對於操作,假設兩棵樹的孩子分別爲 \(x\) 和 \(y\),操作完成以後,對於先後狀態的變化關係,根據 \(x\rightarrow y\) 和 \(y\rightarrow x\) 的概率各佔一半,利用上面的公式,我們可以列出
由於是勢能,我們不關心 \(f(0)\) 的值,不妨設 \(f(0)=0\),得到
由於對於任意 \(x,y\) 方程均成立,我們可以寫出
解得 \(f(x)=1-2^x\)
依據停時定理,最後求起末狀態的勢能差即可。
CF850F Rainbow Balls
袋子裏有 \(n\) 種顏色的球,第 \(i\) 種顏色有 \(a_i\) 個。
每次操作:等概率取出兩個球 \(x\) 和 \(y\)(有序),將 \(y\) 的顏色變成 \(x\) 的顏色。操作直到所有球顏色相同時停止。
期望多少次操作後停止。答案對 \(10^9+7\) 取模。
\(n\le 2500\),\(a_i\le 10^5\)。
常規做法:設 \(f_i\) 表示當下某種顏色的球有 \(i\) 個,該顏色能成爲成爲最終所有球的顏色時的期望次數。首先 \(f_i\) 是條件期望,由全期望公式,答案就是
\(p_{a_i}\) 表示某種顏色有 \(a_i\) 個,其能成爲最終顏色的概率。
第一步,我們要求解 \(p_i\)。假設 \(s=\sum_{i=1}^na_i\),不難列出
易知 \(\{p\}\) 成等差,代入 \(p_0=0\) 和 \(p_s=1\) 得到 \(p_i=\frac is\)。
現在列期望的方程。由條件期望得到
令 \(g_i=if_i-(i-1)f_{i-1}\),有 \(g_{i+1}=g_i-\frac{s(s-1)}{s-i}\) 成立,再令 \(h_i=g_{i+1}-g_{i}=-\frac{s(s-1)}{s-i}\),則 \(g_n=g_1+\sum_{i=1}^{n-1}h_i\),\(nf_n=\sum_{i=1}^ng_i=ng_1+\sum_{i=1}^{n-1}(n-i)h_i\),代入 \(f_s=0\) 得到
剩餘部分線性遞推即可。複雜度 \(\mathcal O(\max a_i\log P)\)。
勢能法:定義 \(f(x)\) 表示同種顏色有 \(x\) 個球的勢能,當前局面勢能 \(\Phi(A)=\sum_{a_i\in A}f(a_i)\)。對於操作:我們有 \(\frac{a_i(a_i-1)}{s(s-1)}\) 的概率選出來兩個相同顏色的球,有 \(\frac{a_ia_j}{s(s-1)}\) 的概率將 \(i\) 變成 \(j\)。
於是有
最後一步利用 \((i,j)\) 和 \((j,i)\) 對調部分項得到。
繼續
我們希望這個式子恆成立,於是直接令
似曾相識?!基本上跟上面一樣了。