model-markov-chain
关于
This skill builds and analyzes discrete or continuous Markov chains from transition data. It enables developers to construct transition matrices, classify states, compute stationary distributions, and calculate mean first passage times. Use it for modeling memoryless systems, finding steady-state probabilities, or as a foundation for HMMs and reinforcement learning MDPs.
快速安装
Claude Code
推荐npx skills add pjt222/agent-almanac -a claude-code/plugin add https://github.com/pjt222/agent-almanacgit clone https://github.com/pjt222/agent-almanac.git ~/.claude/skills/model-markov-chain在 Claude Code 中复制并粘贴此命令以安装该技能
技能文档
建馬可夫鏈
由原始轉移資料或領域規格建、分類並析離散時或連續時之馬可夫鏈,產穩態分佈、平均首達時與基於模擬之驗證。涵 DTMC 與 CTMC 端到端之工作流。
適用時機
- 須建未來態僅依當前態之系統(無記憶性)
- 已觀有限態集間之轉移計數或率
- 欲計過程之長期穩態機率
- 須定預期首達時或吸收機率
- 為結構分析將態分類為瞬態、常返或吸收
- 欲比同系統之替代馬可夫模型
- 為更高階模型(隱馬可夫、強化學習 MDP)建基礎
輸入
必要
| Input | Type | Description |
|---|---|---|
state_space | list/vector | Exhaustive enumeration of all states in the chain |
transition_data | matrix, data frame, or edge list | Raw transition counts, a probability matrix, or a rate matrix (for CTMC) |
chain_type | string | Either "discrete" (DTMC) or "continuous" (CTMC) |
選擇性
| Input | Type | Default | Description |
|---|---|---|---|
initial_distribution | vector | uniform | Starting state probabilities |
time_horizon | integer/float | 100 | Number of steps (DTMC) or time units (CTMC) for simulation |
tolerance | float | 1e-10 | Convergence tolerance for iterative computations |
absorbing_states | list | auto-detect | States explicitly marked as absorbing |
labels | list | state indices | Human-readable names for each state |
method | string | "eigen" | Solver method: "eigen", "power", or "linear_system" |
步驟
步驟一:定態空間與轉移
1.1. 列舉所有不同態。確認列表詳盡且互斥。
1.2. 若由原始觀測,將轉移計數彙為 n x n 計數矩陣 C,C[i,j] 為自態 i 至態 j 之觀測轉移數。
1.3. 對連續時鏈,連同轉移目的記各態之逗留時。
1.4. 確無態自列舉中遺漏,方法為核每觀測之起與止皆出現於態空間。
1.5. 記資料源、觀測期及任何施加之過濾。此來源記錄為復現分析與解異常之要。
預期: 大小為 n 之明定態空間,及計數矩陣或 (起、止、率/數) 之元組列表,涵所有觀測轉移。態空間宜小至可施矩陣運算(密集法通常 n < 10000)。
失敗時: 若有態遺漏,重審源資料並擴列舉。若態空間過大不能用矩陣法,可將罕態併為「其他」聚態,或改用模擬。若計數矩陣極稀疏,驗觀測期是否夠長以捕典型轉移。
步驟二:建轉移矩陣或生成元
2.1. 離散時(DTMC):將計數矩陣按行歸一以得轉移機率矩陣 P:
P[i,j] = C[i,j] / sum(C[i,])- 驗每行之和為一(容差內)。
2.2. 連續時(CTMC):建率(生成元)矩陣 Q:
- 非對角:
Q[i,j] = rate of transition from i to j - 對角:
Q[i,i] = -sum(Q[i,j] for j != i) - 驗每行之和為零(容差內)。
2.3. 對零計數行(從未為起之態)擇平滑策略:拉普拉斯平滑、吸收約定,或標記以待審。
2.4. 將矩陣存於合下游運算之格式(小鏈用密集,大鏈用稀疏)。
預期: 有效之隨機矩陣 P(行和為一),或生成元矩陣 Q(行和為零),P 之非對角無負,Q 之對角無正。
失敗時: 若行和偏出容差,查資料破損或浮點問題。重歸一或重審源資料。
步驟三:分類各態
3.1. 由轉移矩陣(僅機率為正之邊)所引之有向圖求其強連通分量以計通信類。
3.2. 對每通信類定:
- 常返若該類無出邊至他類。
- 瞬態若有出邊。
- 吸收若該類僅含一態且
P[i,i] = 1。
3.3. 對每常返類,由可自類中任態到達之所有迴圈長之最大公因數計週期。
- 週期為一示非週期。
3.4. 定鏈為不可約(單一通信類)或可約(多類)。
3.5. 摘要:列每類、其類型(瞬態/常返)、其週期,以及是否有吸收態。
預期: 完整分類:每態歸入一通信類含標記(瞬態、正常返、零常返、吸收)與週期。
失敗時: 若圖分析不一致,驗轉移矩陣無負並行和正確。對極大鏈用迭代圖算法而非完整矩陣冪。
步驟四:計穩態分佈
4.1. 不可約非週期鏈:解 pi * P = pi 受 sum(pi) = 1 之制。
- 重述為
pi * (P - I) = 0連同歸一限制。 - 用特徵值分解:
pi為P對應特徵值一之左特徵向量,歸一使和為一。
4.2. 不可約週期鏈:穩態分佈仍存,然鏈自任意初態不收斂於之。同 4.1 計之。
4.3. 可約鏈:對每常返類獨計穩態分佈。整體穩態分佈為依瞬態起算之吸收機率之凸組合。
4.4. CTMC:解 pi * Q = 0 連同 sum(pi) = 1。
4.5. 驗:將計得之 pi 乘 P(或 Q),確結果於容差內等於 pi。
4.6. 對可約鏈,計每瞬態至每常返類之吸收機率。此等機率連同類內穩態分佈,給依始態而定之長期行為。
4.7. 記譜隙(最大特徵值與第二大特徵值幅度之差)。此量主導向穩態之收斂率,於步驟六定模擬步數時有用。
預期: 長為 n 之機率向量 pi,皆非負,和為一,於容差內滿足平衡方程。對非週期不可約鏈,譜隙宜為正。
失敗時: 若特徵解算器不收斂,試迭代冪法(pi_k+1 = pi_k * P 直至收斂)。若多特徵值等一,則鏈可約——按 4.3 處之。若譜隙極小,鏈混合慢,驗證須甚長之模擬。
步驟五:計平均首達時
5.1. 定平均首達時 m[i,j] 為自態 i 始達態 j 之預期步數。
5.2. 對不可約鏈,解線性方程組:
m[i,j] = 1 + sum(P[i,k] * m[k,j] for k != j)for alli != jm[j,j] = 1 / pi[j](平均常返時)
5.3. 對吸收鏈,計吸收機率與至吸收之預期時:
- 將
P分為瞬態(Q_t)與吸收塊。 - 基本矩陣:
N = (I - Q_t)^{-1} - 至吸收之預期步數:
N * 1(一向量) - 吸收機率:
N * R,R為瞬態至吸收之塊。
5.4. 對 CTMC,以生成元矩陣將步數代以預期逗留時。
5.5. 將結果以矩陣或表呈為關鍵態對之兩兩首達時。
預期: 平均首達時之矩陣,對角等於平均常返時(1/pi[j]),通信態對之非對角為有限。
失敗時: 若線性系奇異,鏈有不能達目標之瞬態。報不可達對為無窮。驗步驟三之鏈結構。
步驟六:以模擬驗證
6.1. 模擬 K 條獨立樣本路徑,每條 T 步,自初分佈始。
6.2. 棄燒入期後,由所有路徑之態占有頻率經驗估穩態分佈。
6.3. 較模擬頻與解析穩態分佈。計總變差距離或卡方統計。
6.4. 對每目標態跨重複記首達時,經驗估平均首達時。
6.5. 報吻合度:
- 解析與模擬穩態機率間之最大絕對偏差。
- 模擬首達時對解析值之 95% 信賴區間。
6.6. 若差超容差,重審轉移矩陣建構與分類步驟。
預期: 模擬之穩態分佈於解析解之 0.01 總變差內(足長之執行下)。模擬之平均首達時於解析值之百分之十內。
失敗時: 增模擬長 T 或重複數 K。若差仍存,解析解或有數值誤——以更高精度重算。
驗證
- 轉移矩陣
P之所有項非負且每行和為一(CTMC 之Q行和為零) - 穩態分佈
pi為有效機率向量並滿足pi * P = pi - 對每常返態
j,平均常返時等於1/pi[j] - 模擬之態頻收斂於解析穩態分佈
- 態分類一致:無常返態有離其通信類之邊
P之所有特徵值之幅度至多為一,每常返類恰有一特徵值等於一- 對吸收鏈:每瞬態跨所有吸收類之吸收機率和為一
- 基本矩陣
N = (I - Q_t)^{-1}之所有項皆正(預期訪數為正) - 細緻平衡成立若且唯若鏈可逆:
pi[i] * P[i,j] = pi[j] * P[j,i]對所有i,j
常見陷阱
- 態空間不詳盡:遺態生次隨機矩陣(行和小於一)。析前必驗行和。
- 混 DTMC 與 CTMC:率矩陣須有非正之對角且行和為零。將 DTMC 公式施於率矩陣生謬。
- 忽週期性:週期鏈有有效之穩態分佈,然不於通常意下收斂於之。混合時分析必計週期。
- 大鏈之數值不穩:大密集矩陣之特徵值分解貴而失精度。鏈逾數百態用稀疏解算器或迭代法。
- 零機率轉移:轉移矩陣中之結構零可使鏈可約。計單一穩態分佈前先驗不可約性。
- 模擬不夠長:短模擬與差混合生偏估。必計有效樣本大小並查軌跡圖。
- 未驗即設可逆:諸解析捷徑(如細緻平衡)僅於可逆鏈。用依可逆性之結果前先驗
pi[i] * P[i,j] = pi[j] * P[j,i]。 - 冪法之浮點累積:多次迭代
pi * P累積捨入誤。冪迭代中定期將pi重歸一至和為一。
相關技能
- Fit Hidden Markov Model -- 將馬可夫鏈擴至含觀測釋放之潛態模型
- Simulate Stochastic Process -- 通用模擬框架,可施於馬可夫鏈樣本路徑與蒙地卡羅驗證
GitHub 仓库
相关推荐技能
content-collections
元Content Collections 是一个 TypeScript 优先的构建工具,可将本地 Markdown/MDX 文件转换为类型安全的数据集合。它专为构建博客、文档站和内容密集型 Vite+React 应用而设计,提供基于 Zod 的自动模式验证。该工具涵盖从 Vite 插件配置、MDX 编译到生产环境部署的完整工作流。
polymarket
元这个Claude Skill为开发者提供完整的Polymarket预测市场开发支持,涵盖API调用、交易执行和市场数据分析。关键特性包括实时WebSocket数据流,可监控实时交易、订单和市场动态。开发者可用它构建预测市场应用、实施交易策略并集成实时市场预测功能。
creating-opencode-plugins
元该Skill帮助开发者创建OpenCode插件,用于接入命令、文件、LSP等25+种事件。它提供了插件结构、事件API规范和JavaScript/TypeScript实现模式,适合需要拦截操作、扩展功能或自定义事件处理的场景。开发者可通过它快速构建响应式模块来增强OpenCode AI助手的能力。
sglang
元SGLang是一个专为LLM设计的高性能推理框架,特别适用于需要结构化输出的场景。它通过RadixAttention前缀缓存技术,在处理JSON、正则表达式、工具调用等具有重复前缀的复杂工作流时,能实现极速生成。如果你正在构建智能体或多轮对话系统,并追求远超vLLM的推理性能,SGLang是理想选择。
