🎓 レベル:発展 | 重要度:A(必須) 📎 前提:マルコフ連鎖とは・遷移行列、ポアソン過程
要点(BLUF)
- 連続時間マルコフ連鎖では、各状態の滞在時間が指数分布(マルコフ性=無記憶性の必然)。滞在後に他状態へジャンプします。
- 過程は生成行列 (非対角=遷移率 、対角=、行和0)で完全に決まります。
- 遷移確率行列は 。これはコルモゴロフの前進方程式 ・後退方程式 の解です。
概念
離散時間では「1ステップごと」に遷移しました。連続時間では、状態 にいる間ランダムな時間だけ留まり、その後どこかへ飛びます。マルコフ性(無記憶性)を保つには、滞在時間が「どれだけ待ったかを覚えない」分布、すなわち指数分布でなければなりません。各状態からの脱出率と行き先の比率をまとめたのが生成行列です。
数式による定式化
状態 の脱出率 。滞在時間は 、脱出先は確率 で 。生成行列 は
遷移確率 を並べた は、微小時間で となることから
を満たし、その解は行列指数
直観
要するに は「確率が単位時間あたりどう流れ出すか」の瞬間の写し。 は「短い時間 では、確率 で 、確率 で留まる」という線形近似で、それを無限に積み重ねると になります。離散の (行列のべき乗)が、連続では (行列の指数)に化けた、と見ると対応がきれいです。
状態遷移図(生成率つき)
graph LR
A["状態0"] -->|"率 q01"| B["状態1"]
B -->|"率 q10"| A
B -->|"率 q12"| C["状態2"]
C -->|"率 q20"| A
矢印のラベルは確率ではなく率(単位時間あたりの期待回数)です。
具体例
3状態の生成行列から を計算し、Gillespie 法(指数滞在+ジャンプ)のシミュレーションと突き合わせます。
import numpy as np
from scipy.linalg import expm
Q = np.array([[-2.0, 1.0, 1.0],
[0.5, -1.5, 1.0],
[1.0, 1.0, -2.0]])
print("Q の行和:", Q.sum(axis=1)) # すべて0
t = 1.5
Pt = expm(Q*t)
print("P(t) 行和:", np.round(Pt.sum(axis=1), 6)) # すべて1
jumpP = [] # 各状態のジャンプ先分布(率に比例)
for i in range(3):
p = Q[i].copy(); p[i] = 0.0; jumpP.append(p/p.sum())
rng = np.random.default_rng(3)
n = 60000
end = np.zeros(n, dtype=int)
for k in range(n):
s, tau = 0, 0.0
while True:
tau += rng.exponential(-1.0/Q[s, s]) # 指数滞在
if tau > t:
break
s = rng.choice(3, p=jumpP[s]) # 率に比例してジャンプ
end[k] = s
emp = np.array([(end == j).mean() for j in range(3)])
print("理論 P(t) 第0行:", np.round(Pt[0], 3))
print("Gillespie 推定 :", np.round(emp, 3))
# Q の行和: [0. 0. 0.]
# P(t) 行和: [1. 1. 1.]
# 理論 P(t) 第0行: [0.28 0.391 0.33 ]
# Gillespie 推定 : [0.277 0.393 0.33 ]
行列指数 の第0行と、滞在+ジャンプを直接回したシミュレーションが一致します。 の行和0が確率保存( の行和1)を保証しています。
他過程との関係
- 純粋なジャンプ率を状態に依存させると出生死亡過程や待ち行列に、状態空間を連続にして無限小生成作用素にすると拡散過程(伊藤の公式の生成作用素)になります。
- 各状態からの脱出はポアソン過程(率 の指数時計)。CTMC は「状態ごとに違う時計を持つポアソン的ジャンプ」と読めます。
数式の直観的意味
は離散の と同じく、 の固有値・固有ベクトルで挙動が決まります。 の固有値は実部が非正で、固有値0が定常分布に対応(、定常分布と詳細釣り合い)。残りの固有値の実部の大きさが収束の速さ(緩和時間)を与えます。離散のスペクトルギャップが、連続では固有値の実部のギャップになります。
⚠️ よくある誤解
- 生成行列の非対角は確率ではなく率。 もありえます( が確率)。行和は0であって1ではありません。
- 滞在時間が指数なのは選択ではなく必然。マルコフ性(無記憶性)を連続時間で保つ唯一の滞在分布が指数分布です。一般分布にするとマルコフ性が壊れ、半マルコフ過程になります。
- は要素ごとの ではない。行列指数(級数和)です。要素ごとに を取ると確率になりません。
対応シミュレーション
本文の Gillespie 法は連続時間過程の標準的生成法です。stochastic-processes-study/simulations/ に汎用 CTMC サンプラを置きます。
関連
- 前提:マルコフ連鎖とは・遷移行列、ポアソン過程
- 次に読む:出生死亡過程
- 発展:定常分布と詳細釣り合い