這東西沒啥用!
可以去 https://pan.baidu.com/s/1I-d2y2AtjlyuLhfQSMSQaA (提取碼 4cps
)看。
也可以去 https://drive.google.com/file/d/1bNsgMB_o8Vw1NenXsGBq39HEB3HDo6-X/view?usp=sharing 以獲取更好的體驗。
update:md 源碼找回來了。
https://www.cnblogs.com/TinyWong/p/12887591.html orz
2 鞅與鞅的停時定理
2.1 鞅
定義 2.1.1(隨機過程):對於每一個參數 \(t \in T\) ,\(X(t, \omega)\) 是一隨機變量,稱隨機變量族 \(X_T = \{X(t, \omega), t \in T\}\) 為一隨機過程。其中\(T \subset \mathbb{R}\) 是一實數集,稱為指標集。其中,\(X(t, \omega)\) 一般可以簡記為 \(X_t\)。
參數 \(t \in T\) 一般表示時間或空間。在本文中,只考慮參數為離散時間的隨機過程, 即可以取 \(T = \mathbb{N}\) 。
定義 2.1.2:稱隨機過程 \(X=\{X_n, n \ge 0\}\) 是鞅,若:
- \(\forall n \ge 0,E(|X_n|)<\infty\)
- \(\forall n \ge 0,E(X_{n+1}\mid X_0,\cdots,X_n)=X_n\)
定義 2.1.3:稱隨機過程 \(Y=\{Y_n, n \ge 0\}\) 是關於隨機過程 \(X=\{X_n, n \ge 0\}\) 是鞅,若:
- \(\forall t\ge 0,E(|Y_t|)<\infty\)
- \(\forall t\ge 0,E(Y_{t+1}-Y_t\mid X_0,\cdots,X_t)=0\)
直觀來講,鞅是滿足下述條件的隨機過程:已知過去的某個時刻 \(s\) 及 \(s\) 之前的所有觀測值,對於以后的任意時刻 \(t\) ,\(t\) 的觀測值的條件期望等於 \(s\) 的觀測值。
例子 2.1.4(數軸上的隨機游走):令 \(X_0=0\) ,\({X_k, k\ge 1}\) 獨立同分布且 \(P(X_k = 1) = p \ge 0, P(X_k = -1) = q = 1 - p \ge 0\)。記\(Y_n = \sum_{k=0}^{n}X_k\) ,則 \(\{Y_n, n \ge 0\}\) 表示一個粒子以 0 為起始點的在數軸上的隨機游走過程, \(Y_n\) 為 \(n\) 時刻的坐標。
(1)若給定的 \(p = q = \frac{1}{2}\),那么 \(Y=\{Y_n, n \ge 0\}\) 是鞅,並且設 \(Z_n=Y_n^2-n\) 。 \(Z=\{Z_n, n \ge 0\}\) 是關於 \(\{Y_n, n \ge 0\}\) 的鞅。
證明:\(\forall n \ge 0\) ,
因此 \(Y=\{Y_n, n \ge 0\}\) 是鞅。
類似地也有
因此,\(Z=\{Z_n, n \ge 0\}\) 是關於 \(\{Y_n, n \ge 0\}\) 的鞅。
(2)若給定的 \(p \neq q\),那么設 \(W_n=(\frac{q}{p})^{Y_n}\) ,則 \(W=\{W_n, n \ge 0\}\) 是關於 \(\{Y_n, n \ge 0\}\) 的鞅。
證明:\(\forall n \ge 0\) ,
因此,\(W=\{W_n, n \ge 0\}\) 是關於 \(\{Y_n, n \ge 0\}\) 的鞅。
2.2 鞅的停時定理
定義 2.2.1(隨機時刻):設取值為非負整數(包括 \(+\infty\) )的隨機變量 \(T\) ,及隨機過程 \(\{X_n, n \ge 0\}\) ,若 \(\forall n \ge 0\) ,事件 \(\{T = n\}\) 的示性函數 \(I_{\{T=n\}}\) 僅是 \(X_0, X_1, \cdots, X_n\) 的函數,則稱 \(T\) 是隨機過程 \(\{X_n ,n \ge 0\}\) 的隨機時刻。
定義 2.2.2(停時):若 \(T\) 是隨機過程 \(\{X_n ,n \ge 0\}\) 的隨機時刻,並且有 \(P(T < \infty) = 1\) ,則稱 \(T\) 是隨機過程 \(\{X_n ,n \ge 0\}\) 的停時。
定義 2.2.3(停止過程):若 \(T\) 是對過程 \(\{X_n, n\ge 0\}\) 的一個隨機時刻,且令
則稱 \(\{\bar{X}_n\}\) 為停止過程。
命題 2.2.4:如果 \(T\) 是鞅 \(\{X_n, n \ge 0\}\) 的一個隨機時刻,則停止過程 \(\{\bar{X}_n, n\ge 0\}\) 也是關於 \(\{X_n, n \ge 0\}\) 的一個鞅。
證明:\(\forall n \ge 0\) ,若 \(n \lt T\) ,則有 \(\bar{X}_{n+1} - \bar{X}_n = X_{n+1} - X_n\) ;若 \(n \ge T\) ,則有 \(\bar{X}_{n+1} - \bar{X}_n = 0\) ,從而
由於 \(\{X_n, n \ge 0\}\) 是鞅,因此 \(E(X_{n+1} - X_n \mid X_0, X_1, \cdots, X_n) = 0\) ,從而無論 \(n\) 與 \(T\) 關系如何,都有
也即停止過程 \(\{\bar{X}_n, n\ge 0\}\) 關於 \(\{X_n, n \ge 0\}\) 是鞅。
定理 2.2.5 (鞅的停時定理):設 \(X = \{X_n, n \ge 0\}\) 是一個離散時間鞅,\(T \in \mathbb{N} \cup \{\infty\}\) 是停時,若有下列條件之一成立
(1) \(\bar{X}_n\) 一致有界;
(2)\(T\) 有界;
(3)\(E(T)<\infty\) ,且存在 \(M<\infty\) 使 \(E(|X_{n+1}-X_n|\mid X_0,\cdots,X_n)<M\) ;
那么,
定義 2.2.6(非降 \(\sigma\)-代數族):記隨機過程 \(X = \{X_n, n \ge 0\}\) ,令 \(\mathcal{F}_{n}:=\sigma(X_{k} \mid k \leq n)\) ,則稱 \(\mathcal{F} = \{\mathcal{F}_n, n\ge 0\}\) 是 \(X\) 導出的一個非降 \(\sigma\)-代數族。
定理 2.2.7(更一般的鞅的停時定理):設\(\mathcal{F} = \{\mathcal{F}_n, n\ge 0\}\) 是一個非降 \(\sigma\)-代數族,\(X = \{X_n, n\ge 0\}\) 和 \(T \in \mathbb{N} \cup \{\infty\}\) 分別是關於 \(\mathcal{F}\) 的鞅和停時,若有下列條件之一成立
(1) \(T\) 幾乎處處有界,即存在 \(c \in \mathbb{N}\) ,\(T \le c\) 幾乎處處成立;
(2)\(E(T)<\infty\) ,且存在 \(M<\infty\) 使 \(E(|X_{n+1}-X_n|\mid \mathcal{F}_n)<M\) ;
(3)存在 \(c \in \mathbb{N}\) 使得 \(\forall T \in \mathbb{N}, |X_{n \and T}| \le c\) 幾乎處處成立,其中 \(n \and T := min(n, T)\) ;
那么,
鞅的停時定理說明,即使隨機過程非常復雜,甚至可能趨向無窮,只要滿足某些條件,那么還是可以得到終態的某些性質。
例子 2.2.8(不均衡賭本與不公平賭博問題):設甲乙兩個人賭博,他們原有的賭本資金 \(a, b \in \mathbb{N}\) ,每次賭博輸家需要向贏家支付一單位資金,每次賭博之間相互獨立,一次賭博中,甲的取勝概率為 \(p\) ,乙的取勝概率為 \(q = 1 - p\) 。根據鞅的停時定理,可以得到甲和乙輸光自己所有賭本的概率以及平均賭博次數。
不難看出,這依然是一個隨機游走的模型,沿用例子2.1.4中的記號,粒子從 0 出發,並且每個單位時間在數軸上向右或向左分別以概率 \(p\) 和概率 \(q = 1 - p\) 移動一個單位的長度。記 \(T_u = \min\{n: Y_0 = 0, Y_n = u\}\) ,且 \(T = \min\{n: Y_0 = 0, Y_n = -a \ 或\ Y_n= b\}\),那么平均賭博次數就是甲和乙任何一方輸光自己所有賭本的平均時間,即為 \(E(T)\);記 \(_uT_v = \min\{n: Y_0 = 0, Y_l \neq u, 1 \le l \le n-1, Y_n = v\}\) ,則概率 \(V_{-a} = P(_{b}T_{-a} < \infty \mid Y_0 = 0)\) 表示粒子從 0 出發相對於 \(u\) 先到達 \(v\) 的概率,類似地 \(V_b = P({_-a}T_{-b} < \infty \mid Y_0 = 0)\) 。從而 \(V_a + V_b = 1\)。利用 \(Z=\{Z_n, n \ge 0\}\) 和 \(W=\{W_n, n \ge 0\}\) 分別在 \(p=q=\frac{1}{2}\) 和 \(p \neq q\) 的情況下是關於 \(\{Y_n, n \ge 0\}\) 的鞅,結合停時定理,就可以得到上述幾個值,具體證明此處不在贅述,有興趣的讀者可以參考[5]中給出的證明。
3 例題分析
3.1 猴子打字問題
3.1.1 問題描述
給定大小 \(|\Sigma|=26\) 的字符集以及長度為 \(n\) 的串 \(s\) 。令字符串 \(t\) 初始為空,每次在 \(t\) 后面隨機拼接 \(\Sigma\) 中的一個字符,求 \(s\) 第一次成為 \(t\) 的后綴的期望時間。
3.1.2 問題解析
通過經典的概率生成函數做法,可以求出答案為 \(\sum_{i=1}^{n} I_{s[1,i]=s[n-i+1,n]}|\Sigma|^i\) ,其中 \(s[l,r]\) 表示 \(s\) 的子串 \(s_ls_{l+1}\dots s_r\) 。這里用停時定理給出另外一種證明。
假設每個時刻有一個賭徒帶着 1 美元入場,並押這一次隨機加入的字符是 \(s_1\) 。如果沒有押中那么輸光離場,否則資金乘上 \(|\Sigma|\) ,並在下一次用全部資金押加入的字符為 \(s_2\) ,如果繼續押中了就繼續用全部資金押 \(s_3\) ,以此類推。當某個賭徒押中了 \(s_n\) ,則結束。
容易發現每個賭徒每一次的期望收益都是 0 ,在 \(t_m\) 公布后 \(t_{m+1}\) 公布前這一時刻,設所有賭徒的總財富為 \(A_m\) ,那么由於每個時刻會新出現一個持有一美元的賭徒,易知 \(\{A_m-m,m\ge 0\}\) 是一個鞅。
設 \(T=\min\{m:t[m-n+1,m]=s\}\) ,則 \(T\) 是一個停時,並且注意到 \(A_{m \and T} \le \sum_{i=1}^n |\Sigma|^i\) 有界,根據停時定理有,
所以 \(E[T]=\sum_{i=1}^{n} I_{s[1,i]=s[n-i+1,n]}|\Sigma|^i\) 。
3.2 Company Acquisitions
3.2.1 問題描述
有 \(m\) 個人組成若干個小組,每個小組由若干個組員和一個組長組成,初始分組情況給定。在只剩下一個小組之前反復執行以下操作:等概率隨機選取兩個不同的組長,然后讓其中一位組長加入另一個小組並成為組員,該組長原來的小組中所有的組員各自組成一個只有其自己的新小組並成為其組長,求只剩一個小組時所需要的平均操作次數。
3.2.2 問題解析
假設某一小組有 \(x\) 個組員(不包含組長),定義它的勢為 \(2^x-1\) 。注意到一次操作中,設選取出來的兩個組長為 \(A,B\) ,其原來各自的小組中組員數量分別為 \(a, b\) ,那么若一次操作雙方之后勢的期望變化量
\(\forall n\ge 0\) ,記 \(X_n\) 為經過 \(n\) 次操作之后所有小組的勢的和, \(Y_n=X_n-n\) ,那么 \(E[Y_n]<\infty\) ,易證 \(Y=\{Y_n,n\ge 0\}\) 是鞅。設停時 \(T=\min\{n: 經過\ n\ 次操作后只剩一個小組\}\) 。不難證明 \(X_n \le 2^m - 1\) ,因此 \(E[|Y_{n+1}-Y_n|]\) 有界。而 \(E[|Y_n|]=E[Y_n]<\infty\) ,且 \(E[T]<\infty\) ,由停時定理有,
而 \(E[X_T]=2^m-1\) , \(E[Y_0]=X_0\) 給定,由此馬上可以得到 \(E[T]\) 。
3.3 Slime and Biscuits
3.3.1 問題描述
有 \(n\) 個人,每個人初始有 \(a_i\) 個球。在每一秒,隨機選擇一個球並把它交給另一個人。當某個人獲得所有球時此人勝出,停止游戲。求游戲進行時長的期望。
3.3.2 問題解析
本題的一個關鍵性質是,如果只考慮一個人的球數的變化,那么不需要知道其他人的具體狀態就可以求出這個人經過一步之后的球數的概率分布,也就是說每個人的狀態之間相互是獨立的。另外一個特點是每一步對當前狀態的影響比較小,只會使兩個人的球數加減一。
3.3.2.1 官方題解
設 \(E_x\) 表示 \(x\) 勝出時總時長的條件期望,那么答案即為 \(\sum_{i=1}^n E_i\) 。
設 \(E'_x\) 表示,如果修改游戲規則,只有 \(x\) 勝出時才停止游戲,游戲時長的期望。
設 \(P_x\) 為 \(x\) 勝出的概率,顯然有 \(\sum_{i=1}^n P_i=1\) 。
設常數 \(C\) 表示所有球從一個人手中轉移到至另一個指定的人中的期望時間。
考慮 \(E'_x\) 比 \(E_x\) 多算了什么,發現恰好是所有球先集中到某個人的手上,再全部轉移過來,的期望時間。所以可以發現有以下恆等式
移項得到
將等式對 \(x=1,2,\cdots,n\) 求和,得到
所以問題轉化為求 \(E'_x\) 和 \(C\) 。
求 \(E'_x\) 和 \(C\) 時,由前述的關鍵性質,可以設 \(g_i\) 表示 \(x\) 現在有 \(i\) 個球,到第一次有 \(i+1\) 個球的期望時間。設 \(m=\sum_{i=1}^n a_i\) ,有方程
可以從這個方程解出 \(g_i\) 關於 \(g_{i-1}\) 的遞推式
有初始值 \(g_0=n-1\) 。
然后設 \(f_i=\sum_{k=i}^{m-1} g_k\) ,得到 \(E'_x=f_{a_x},C=f_0\) ,從而求出答案。
3.3.2.2 問題再解——基於鞅的停時定理
設經過 \(t\) 步之后的狀態是 \(A_t\) ,其中每個人的球數為 \(a_{t,i}\) 。設 \(m\) 為總球數。
考慮類似 3.1 節中的做法,構造勢函數 \(\phi\) ,使得 \(\mathbb{E}[\,\phi(A_{t+1})+(t+1)\mid A_{t}, \ldots, A_{0}\,]=\phi(A_t)+t\) ,然后運用停時定理求出 \(E(T)\) 。
在本例中,可以設 \(\phi(A_t)=\sum f(a_{t,i})\) ,其中 \(f\) 是一個需要構造的函數。
顯然 \(E[\phi(A_{t+1})]\) 只和 \(E[\phi(A_t)]\) 有關,所以 \(E\left[\phi\left(A_{t+1}\right) \mid A_{t}, \ldots, A_{0}\right]=E\left[\phi\left(A_{t+1}\right) \mid A_{t}\right]\) 。
為了求出 \(E\left[\phi\left(A_{t+1}\right) \mid A_{t}\right]\) ,可以枚舉每一種情況,得到
令 \(E[\,\phi(A_{t+1})-\phi(A_t)\mid A_t\,]=-1\) ,得到
注意這里把 \(1\) 拆成了 \(\sum {a_i\over m}\) ,可以使得每個 \(a_i\) 互不影響。當然,換成 \(\sum {1\over n}\) 或是其他和為 \(1\) 的值都是可以的。
於是構造 \(f(a)\) 滿足
移項得到
將 \(a=0\) 代入可以得到 \(f(0)=f(1)\) ,所以初值可以取 \(f(0)=f(1)=0\) ,或是其他任意一個數。然后遞推即可得到 \(f\) 的所有函數值。
\(a=m\) 時並不滿足這個式子,但由於出現 \(a=m\) 時隨機過程一定已經停止了,所以這個條件不需要被滿足。
現在設 \(X_t=\phi(A_t)+t\) ,就有 \(E[X_{t+1}-X_t \mid A_t]=0\) ,另一方面, 由於 \(X_t=\phi(A_t)+t\) , \(\phi(A_t)\) 有界且 \(t\) 非負,所以 \(0\le |X_t|\le X_t+2|\phi|_{\max}\) ,所以 \(E[|X_t|]<\infty\) ,從而根據定義知道 \(\{X_t, t \ge 0\}\) 關於 \(\{A_t, t \ge 0\}\) 是一個鞅。
另一方面,由於這個隨機過程可以看做在一張確定的圖上隨機游走,狀態數有限,且每個點都可以到達終點,由常返馬氏鏈的性質知道 \(\mathbb{E}[T]<\infty\) 。而 \(\mathbb{E}[|X_{n+1}-X_n|\mid A_0,\cdots,A_n]=1+\mathbb{E}[|\phi(A_{n+1})-\phi(A_n)|\mid A_0,\cdots,A_n]\) 有界,因此可以應用停時定理,得到
\(E[X_T]=\phi(A_T)+E[T]=E[X_0]=\phi(A_0)\) 。由於 \(\phi(A_0),\phi(A_T)\) 都是定值,所以有 \(E[T]=\phi(A_0)-\phi(A_T)\) ,即
在官方題解中,為什么定義 \(E'_x\) ,以及定義了 \(E'_x\) 之后有什么用,並不是非常清晰;而基於鞅的停時定理的做法,從問題中每個人狀態之間的相互獨立性出發,引導勢函數 \(\phi(A)=\sum_{i=1}^n f(a_i)\) 的構建,使整個解題思路有跡可循,這體現了鞅論可以幫助思考和解決與隨機過程相關的賽題。
3.4 Slime and Biscuits Strikes Back
3.4.1 問題描述
有 \(n\) 個人,每個人初始有 \(a_i\) 個球。在每一秒,隨機選擇一個球並把它交給另一個人。當某個人獲得所有球時此人勝出,停止游戲。對於每個人,求游戲停止時所有球在這個人手上的概率。
3.4.2 問題解析
事實上,3.3.2.1 節中的推導已經解決這一問題,沿用其記號,考慮在上文中的式子
由於 \(\sum_{i=1}^n E_i=E[T]\) 已知,而 \(E'_x,C\) 也都可以被求出來,所以可以解出 \(P_x\) ,復雜度 \(O(n+\sum a_i)\) 。
下面通過鞅論給出另一種思路更加直接的解答:
設 \(p_i\) 表示球最終聚集在第 \(i\) 個人手上的概率。類似例子2.2.8,考慮通過鞅和停時定理構造出關於 \(p_i\) 的 \(n\) 個方程,解出所有 \(p_i\) 。
仍然設經過 \(t\) 步之后的狀態是 \(A_t\) ,其中每個人的球數為 \(a_{t,i}\) , \(m = \sum a_i\) 為總球數。設 \(B_i\) 表示所有球都聚集到 \(i\) 手上的狀態。
3.4.2.1 構造一
繼續沿用之前構造勢函數的方法,但為了區分不同的位置,要給每個位置構造不同的勢函數,設 \(\phi(A_t)=\sum_i f_i(a_{t,i})\) ,並直接令 \(\{\phi(A_t),t\ge 0\}\) 為鞅。用例題三的方法,可以推導出
而應用鞅的停時定理,有方程
考慮給每個 \(i\) 隨機 \(f_i(0)\) ,即可得到一個方程,重復 \(n\) 次即可得到 \(n\) 個方程。
但是這個做法出現了一個重大的漏洞:這 \(n\) 個方程組成的矩陣不滿秩。由於遞推式中 \(f(a)\) 和 \(f(a-1)\) 的系數相加恰好是 1 ,我們其實解出了 \(f(a)=f(0),\forall 1\le a\le m\) ,因此無法解出這一方程組。事實上,由於在每個 \(f_i\) 中自由度為 1,因此合法的 \(f\) 只有常數序列。
3.4.2.2 構造二
考慮對所構造鞅的形式進行微調,設 \(\phi(A_t)=\sum_i f_i(a_{t,i})\) ,並令 \(\{\phi(A_t)+t,t\ge 0\}\) 為鞅,類似地,
而應用鞅的停時定理,有方程
同樣可以通過隨機 \(f_i(0)\) 獲得 \(n\) 個方程,遺憾的是,這與思路一並沒有本質上的區別。由於方程中的系數相加依然為 1,這一構造獲得的序列僅僅是在 \(f(0)=0\) 導出的序列的基礎上加上一個常數序列而已。
3.4.2.3 構造三
回顧 3.4.2.2節中 \(f\) 的構造,關注這一步:
注意到第二個等號的右邊並不是唯一合法的結果。除了把 \(1\) 拆成 \(\sum {a_{t,i}\over m}\) ,還可以拆成其他和為 \(1\) 的組合。
那么不妨隨機 \(\{w_i,1\le i\le n\}\) 使得 \(\sum_{i=1}^n w_i=1\) ,然后令
解得
不妨設 \(f(0)=0\) , \(F\) 為 \(w=1\) 時得到的 \(f\) ,那么有 \(f_i(a)=w_iF(a)\) 。 隨機 \(w_i\) 並重復 \(n\) 次這一過程,即可得到 \(n\) 個線性無關的方程(否則可以再次隨機 \(w_i\) 尋求新的方程),並解出 \(p_i\) 。這一方法的時間復雜度 \(O(n^3+m)\) 。
盡管隨機 \(w_i\) 的做法可以得到 \(n\) 個線性無關的方程使得 \(p_i\) 可解,但是得到的方程組可能十分復雜。考慮在第 \(k\) 個方程中令 \(w_i=I_{\{i=k\}}\) ,那么得到的方程組的系數矩陣中只有主對角線有值,顯然也是滿秩可解的,此時可以直接得到 \(p_i={F(a_i)-E\over F(m)}\) ,從而也在 \(O(n+m)\) 的復雜度內解決了該問題。
參考文獻
[1] 一類概率期望問題的殺器:勢函數和鞅的停時定理. https://www.cnblogs.com/TinyWong/p/12887591.html
[2] Optional Stopping Theorem. https://en.wikipedia.org/wiki/Optional_stopping_theorem
[3] Martingale. https://en.wikipedia.org/wiki/Martingale_(probability_theory)
[4] The martingale Stopping Theorem. https://math.dartmouth.edu/~pw/math100w13/lalonde.pdf
[5] 林元烈,應用隨機過程
[6] 何書元,隨機過程