Stationary distribution π: πP = π. 충분히 오래 돌리면 수렴하는 분포 (ergodic 가정).
분류: irreducible (모든 상태 도달), aperiodic (주기 없음), recurrent vs transient. 둘 다 만족 → ergodic → unique π.
Continuous-time (CTMC): rate matrix Q, e^{Qt}로 t-step 분포. queueing/생존분석.
결정 기준
문제
도구
비고
정상 분포 계산
π = left eigenvector of P (eigval=1)
scipy.linalg.eig
큰 sparse P
power iteration
PageRank 방식
사후분포 샘플링
MCMC (Metropolis-Hastings, Gibbs)
PyMC, Stan, NumPyro
숨은 상태 추론
HMM (Forward-Backward, Viterbi)
hmmlearn
강화학습
MDP (action 추가)
gymnasium, stable-baselines3
시퀀스 생성(텍스트)
n-gram MC
단순 baseline, LLM에 밀림
💻 패턴
Transition matrix & 정상 분포
importnumpyasnpP=np.array([[0.7,0.2,0.1],[0.3,0.4,0.3],[0.2,0.3,0.5]])# Method 1: eigenvectorw,v=np.linalg.eig(P.T)pi=np.real(v[:,np.isclose(w,1)].flatten());pi/=pi.sum()# Method 2: power iteration (sparse-friendly)x=np.ones(3)/3for_inrange(1000):x=x@Pprint(pi,x)# 동일