Mímisbrunnr知恵の泉

← 確率過程 一覧

🎓 レベル:発展 | 重要度:A(必須) 📎 前提:マルチンゲールの定義と例

要点(BLUF)

概念

「うまく止めれば公平な賭けに勝てるのでは?」という問いへの答えが任意停止定理です。停止のルールが未来を予知しない限り(停止時刻である限り)、そして暴走しない限り、止めた時点の期待値は出発点と同じ。これは「公平な賭けに必勝法はない」ことの数学的保証であり、同時に、止めた瞬間の値の期待を計算する強力な道具になります。

数式による定式化

TT停止時刻とは、各 nn{Tn}Fn\{T\le n\}\in\mathcal{F}_n任意停止定理は、{Xn}\{X_n\} がマルチンゲールで TT が停止時刻のとき、次のいずれかの条件下で E[XT]=E[X0]\mathbb{E}[X_T]=\mathbb{E}[X_0]

(i) T が有界,(ii) T< a.s. かつ XnT が一様可積分,(iii) E[T]< かつ増分が有界\text{(i)}\ T \text{ が有界},\quad \text{(ii)}\ T<\infty\ \text{a.s. かつ } X_{n\wedge T} \text{ が一様可積分},\quad \text{(iii)}\ \mathbb{E}[T]<\infty\ \text{かつ増分が有界}

ギャンブラーの破産:対称単純ランダムウォーク SnS_nS0=aS_0=a)、T=min{n:Sn{0,N}}T=\min\{n: S_n\in\{0,N\}\}SnS_n はマルチンゲールなので OST より E[ST]=a\mathbb{E}[S_T]=a

0(1pN)+NpN=a  pN=P(N に到達)=aN0\cdot(1-p_N) + N\cdot p_N = a \ \Rightarrow\ p_N = P(N\text{ に到達}) = \frac{a}{N}

平均時間は補正二乗 Sn2nS_n^2-n がマルチンゲールであることから E[ST2T]=a2\mathbb{E}[S_T^2-T]=a^2E[ST2]=N2pN=Na\mathbb{E}[S_T^2]=N^2 p_N=Na なので

E[T]=E[ST2]a2=Naa2=a(Na)\mathbb{E}[T] = \mathbb{E}[S_T^2] - a^2 = Na - a^2 = a(N-a)

直観

要するに「未来を知らずに止める限り、公平はくつがえせない」。OST は2つのマルチンゲール(SnS_nSn2nS_n^2-n)の期待値保存を、止めた瞬間に適用するだけで、到達確率も平均時間も芋づる式に出します。微分方程式(境界値問題)を解く代わりに、「公平性は止めても消えない」という一文で答えが落ちてくるのが、マルチンゲール法の美しさです。

具体例

対称ランダムウォークを 00 または N=10N=10 に到達するまで走らせ(出発 a=3a=3)、NN への到達確率が a/Na/N、平均時間が a(Na)a(N-a) に一致することを確認します。

import numpy as np
rng = np.random.default_rng(3)
a, N = 3, 10
n = 200000
s = np.full(n, a); t = np.zeros(n, dtype=int)
active = np.ones(n, dtype=bool)
while active.any():
    step = np.where(rng.random(n) < 0.5, 1, -1)
    s[active] += step[active]
    t[active] += 1
    active = (s > 0) & (s < N)
print(f"P(N に到達)={np.mean(s == N):.3f} (理論 a/N={a/N:.3f})")
print(f"E[継続時間]={t.mean():.2f} (理論 a(N-a)={a*(N-a)})")
# P(N に到達)=0.300 (理論 a/N=0.300)
# E[継続時間]=21.01 (理論 a(N-a)=21)

到達確率 0.300、平均時間 21.0 — どちらも OST から導いた理論値に一致します。シミュレーションは答え合わせで、答えそのものは「期待値の保存」から出ています。

他過程との関係

数式の直観的意味

OST の条件(有界性・一様可積分性)は「止め方で無限のエネルギーを引き出せない」ことを保証します。条件を外すと反例が作れます:マルチンゲール SnS_n を「Sn=1S_n=1 になったら止める」(T=min{n:Sn=1}T=\min\{n:S_n=1\})と、SnS_n は確率1で 11 に到達するので E[ST]=10=E[S0]\mathbb{E}[S_T]=1\ne0=\mathbb{E}[S_0]。これは E[T]=\mathbb{E}[T]=\infty で条件(iii)が破れる例で、「無限に粘れば勝てる(が、平均無限の時間がかかる)」という、いわゆるマーチンゲール必勝法の正体です。

⚠️ よくある誤解

対応シミュレーション

本文コードの a,Na,N や上昇確率(非対称ウォーク)を変えると、非対称の場合は指数マルチンゲール ((q/p)Sn)((q/p)^{S_n}) を使った到達確率公式に切り替わります(stochastic-processes-study/simulations/)。

関連