打开主菜单
首页
随机
登录
设置
关于集智百科 - 复杂系统|人工智能|复杂科学|复杂网络|自组织
免责声明
集智百科 - 复杂系统|人工智能|复杂科学|复杂网络|自组织
搜索
更改
←上一编辑
下一编辑→
马尔科夫链的粗粒化
(查看源代码)
2025年6月4日 (三) 17:14的版本
添加1,478字节
、
2025年6月4日 (三) 17:14
→划分方法
第588行:
第588行:
=划分方法=
=划分方法=
−
==
贪婪算法
==
+
当我们想把 <math>N</math> 个状态的马尔科夫链划分成 <math>M</math> 组时,待选的划分数量可以由 第二类斯特林数(Stirling numbers of the second kind)表示,<math>S(N, M)
=
\frac{1}{M!} \sum_{k
=
0}^{M} (-1)^{M-k} \binom{M}{k} k^N</math>
+
+
待选的划分数量极大,比如<math>S(20,10)
=
1.107e32</math>,几乎不可能通过遍历所有待选划分来寻找最优划分,所以,我们需要使用一些方法。
+
+
+
+
=
=逐层贪婪算法==
+
+
在这个问题中,我们可以采取 自底向上合并(Bottom-Up)的层次聚类(Hierarchical Clustering)方法,即从最细粒度(每个状态单独成组,一共 <math>N</math> 组)开始,每一步合并两个最相似的组,直到达到目标分组数 <math>M</math> 。
+
+
具体步骤如下:
+
+
# 初始化:每个状态单独成组,<math>A_0={{1},{2},…,{N}}</math>
+
# 在每一层 <math>k</math> 内:
+
## 遍历所有组对 <math>G_p</math> 和 <math>G_q</math>:
+
### 合并为新组 <math>G_{new} = G_p \cup G_q</math>
+
### 获得新划分 <math>=A_k \setminus \{ G_p , G_q \} \cup G_{new}</math>
+
### 根据此划分获得新动力学 <math>P'</math>
+
### 计算 <math>P'</math> 对应的划分指标
+
## 更新划分 <math>A_{k}</math> 为该层最优的划分
+
# 当剩余分组数 <math>|A_k| = M</math> 时停止
+
+
该算法的复杂度为 <math>O \left (\sum_{k=M}^N k^2 \right )</math>,介乎在<math>O \left ( N^2 \right )</math>和<math>O \left ( N^3 \right )</math>之间。
+
==谱分解==
==谱分解==
第620行:
第643行:
我们看到这两个目标函数非常相似。因此,我们可以通过上述算法或 k-Means 聚类来获取最优的状态划分,进而判断马尔科夫矩阵的成块性。
我们看到这两个目标函数非常相似。因此,我们可以通过上述算法或 k-Means 聚类来获取最优的状态划分,进而判断马尔科夫矩阵的成块性。
−
−
−
=聚合方法=
=聚合方法=
Liangjh
812
个编辑