《principles of model checking》中的离散时间马尔科夫链

说明:此文为我自学《principles of model checking》第十章内容的笔记。

一、离散时间马尔可夫链的定义,目标问题和一些辅助定义。

二、将迁移系统转化为矩阵表达及一简例

三、列出方程X=AX+B

四、对于解该方程的一点个人想法

五、作者给出的解法

一、离散时间马尔可夫链的定义,目标问题和一些辅助定义。

一个离散时间马尔可夫链定义为一个五元组,其中

  1. S:一个可数非空集合,元素为状态。
  2. P:到[0,1]的迁移概率函数。对所有的状态s有
  3. :S->[0,1]是初始概率分布。
  4. AP是原子命题,L是标签函数。(这两个定义沿袭迁移系统的定义,具体可见维基百科的transition system页面,在这章中未产生作用)

  目标问题:求解各个状态到达给定的最终状态的概率。

  一些辅助定义:

  C U B(读作 C until B):表示通过C到达B(或者说到达B的路径上的每个点都在V集合内)

  C U (<=n)B:表示在n步及以内通过C到达B

  另外用S1,S?,S0将S划分成三部分:

  (我这里写的定义也原文略有不同,我把定义收紧了,方便叙述)

  以下是书上这部分原文:

二、将迁移系统转化为矩阵表达及一简例

想法非常直观,将每个状态编个号然后令aij为从i到j的转移概率即可

以下是《principles of model checking》中给的一个例子。

P第一行表示start,第二行表示try,第三行lost,第四行delivered。

矩阵乘以行向量的物理意义是:走一步。得到的结果是走一步之后的新概率分布。

注意:这样写的矩阵在进行乘操作时得写为 行向量 乘 矩阵。上面那个初始向量写为列向量是与P不匹配的。

三、列出方程X=AX+B

X=AX+B这一行方程,可以求出各个状态点到达最后的胜利区域的概率。

以下是原文供参考:

  可以发现我写的跟原文略有不同:原文中走一步后的情况分为两类:到达胜利区和未到达。将之后胜利概率为0的情况包括在未到达胜利区了。我在这里小小改动了一下主要是想着可以实现的时候缩小矩阵。

另外关于如何划分S1,S?,S0的问题:

首先胜利区域和失败区域应该是由人工指定的,并将其对应的Xs标记为1和0.从胜利区域出发逆向搜索(将图中所有边反向),取补集得到死路区。再从死路区出发搜索(这时候图里的边不反向)所有能到达的非胜利区即为问号区。

四、解方程的个人想法

作者对于如何解这个方程更多的从物理(或者说实际?)角度考虑,利用模型对应的意义给出了一个构造性解法。之后还给了一个特殊情况求逆法。

而我由于刚学完一年的线性代数,刚看到这个问题的时候主要是从纯数学的角度考虑。

X=AX+b移项后得到(I-A)X=B。这是一个线性代数基本问题,即解CX=D。先考虑是否有解,再考虑有多少解,最后考虑怎么求解或者解之间有什么关系。

设C的列向量为c1,c2,…,cn,判断CX=D是否有解等价于判断D是否可以由c1,c2,…,cn线性表出。或者说,D是否在c1,c2…,cn形成的线性子空间中。

运用矩阵工具这个问题被转化为判断C和C上D的增广矩阵是否等秩。

若rank(C)=rank(C,D),则有解,rank(C)<rank(C,D),则无解。不可能有rank(C)>rank(C,D)(一组基加上一个向量D生成的子空间不可能减秩)。

特殊地,如果矩阵C是满秩的,rank(C)与rank(C,D)必然相等。同时方程的解唯一(因为矩阵的逆唯一)。

在rank(C)=rank(C,D)的情况下,若C不满秩,方程有无穷解(因为有自由变量)。

于是我觉得解(I-A)X=B可以采用线性代数的方法:先计算(I-A)的秩,若满秩则用求逆算法得A的逆。将其与B相乘得到答案。不满秩再计算B的逆,判断是否有解,有解的话解出解空间找出最小可行解即可。

五、作者给出的解法

作者一共给出了两种解法,无限迭代法与一种特殊的求逆法。

无限迭代法非常有意思,简而言之是令X初始为0,用X=AX+B反复迭代直到X值不变。

以下证明这种无限迭代会产生一个单调上升并收敛的数列。并且,若X初始为0的时候得到的数列极限为最小不动点(方程X=AX+B的最小解).

  

然后作者证明了只要S0确实包括且仅包括了所有绝对不可能胜利的点,那么方程就将只有唯一解。

之后作者简略叙述了唯一解的另一种证明思路。

主要讲的是A的特征值的绝对值必然小于1,从而I+A+A^2+……+A^n+……收敛

证明它就是I-A的逆,从而方程有唯一解

但是我实在没懂”by roughly the same arguments as in proof of Theorem10.15(即前文中我贴出来的原文)”是怎么证出来不存在绝对值大于等于1的特征值的。

我试图自行证明,但在证明大于-1的时候遇到了一些问题。。。。我还是把这个未完成的证明放上来,望有人指正。

《principles of model checking》中的离散时间马尔科夫链的更多相关文章

  1. 机器学习中的隐马尔科夫模型(HMM)详解

    机器学习中的隐马尔科夫模型(HMM)详解 在之前介绍贝叶斯网络的博文中,我们已经讨论过概率图模型(PGM)的概念了.Russell等在文献[1]中指出:"在统计学中,图模型这个术语指包含贝叶 ...

  2. N元马尔科夫链的实现

    马尔可夫模型(Markov Model)是一种统计模型,广泛应用在语音识别,词性自动标注,音字转换,概率文法等各个自然语言处理等应用领域.经过长期发展,尤其是在语音识别中的成功应用,使它成为一种通用的 ...

  3. 马尔科夫链蒙特卡洛(Markov chain Monte Carlo)

    (学习这部分内容大约需要1.3小时) 摘要 马尔科夫链蒙特卡洛(Markov chain Monte Carlo, MCMC) 是一类近似采样算法. 它通过一条拥有稳态分布 \(p\) 的马尔科夫链对 ...

  4. 从随机过程到马尔科夫链蒙特卡洛方法(MCMC)

    从随机过程到马尔科夫链蒙特卡洛方法 1. Introduction 第一次接触到 Markov Chain Monte Carlo (MCMC) 是在 theano 的 deep learning t ...

  5. 蒙特卡洛马尔科夫链(MCMC)

    蒙特卡洛马尔科夫链(MCMC) 标签: 机器学习重要性采样MCMC蒙特卡洛 2016-12-30 20:34 3299人阅读 评论(0) 收藏 举报  分类: 数据挖掘与机器学习(41)  版权声明: ...

  6. MCMC(二)马尔科夫链

    MCMC(一)蒙特卡罗方法 MCMC(二)马尔科夫链 MCMC(三)M-H采样和Gibbs采样(待填坑) 在MCMC(一)蒙特卡罗方法中,我们讲到了如何用蒙特卡罗方法来随机模拟求解一些复杂的连续积分或 ...

  7. 13张动图助你彻底看懂马尔科夫链、PCA和条件概率!

    13张动图助你彻底看懂马尔科夫链.PCA和条件概率! https://mp.weixin.qq.com/s/ll2EX_Vyl6HA4qX07NyJbA [ 导读 ] 马尔科夫链.主成分分析以及条件概 ...

  8. 【HDOJ6229】Wandering Robots(马尔科夫链,set)

    题意:给定一个n*n的地图,上面有k个障碍点不能走,有一个机器人从(0,0)出发,每次等概率的不动或者往上下左右没有障碍的地方走动,问走无限步后停在图的右下部的概率 n<=1e4,k<=1 ...

  9. 【强化学习】MOVE37-Introduction(导论)/马尔科夫链/马尔科夫决策过程

    写在前面的话:从今日起,我会边跟着硅谷大牛Siraj的MOVE 37系列课程学习Reinforcement Learning(强化学习算法),边更新这个系列.课程包含视频和文字,课堂笔记会按视频为单位 ...

随机推荐

  1. 工程经验总结之吹水"管理大境界"

    1.个人认为项目管理最核心的能力是预见风险和快速解决风险的能力. 从实践来看,没有百分百的完美计划,任何计划都有出现偏差的可能,或者说计划总是不会按照最初的设定去完美执行的. 项目经理存在的主要价值就 ...

  2. 浅谈Nginx负载均衡原理与实现

    1.Nginx能做什么? Nginx可以两件事: -- HTTP请求  经过官方测试Nginx可以承受5万的并发量.可用来做静态资源的图片服务器 --负载均衡,如下解释什么是负载均衡. 2.负载均衡 ...

  3. a.变量及基本数据结构

    1. Scala 中有两种类型的变量:可变变量和不可变变量 ,可变变量使用关键字var定义,不可变变量用val定义 : 2.Scala 中变量定义的时候必须初始化赋值,可以使用占位符(_)来初始化,基 ...

  4. CloseHandle 函数--关闭一个句柄

    CloseHandle函数 来源:https://msdn.microsoft.com/en-us/library/windows/desktop/ms724211(v=vs.85).aspx 作用 ...

  5. 聊天类APP功能测试总结

    做聊天类的APP 测试已经有一段时间了,也许哪天就不做了,趁今天轻松点,记录下来. 聊天类的APP都差不多,不管是微信,还是米聊,还是QQ,如果抓住了共性,测试的点都差不太多. 我用编程的术语来比方功 ...

  6. select可选择、同时可自行输入

    HTML部分: <li class="bl-form-group"> <label>诊断医生</label> <div class=&qu ...

  7. 一个爬取Bing每日壁纸的python脚本

    1. 背景 Bing搜索每天的背景图片有些比较适合做桌面,但是有的提供下载有的不提供下载.每天去点击下载又不太方便,所以第一次学习了一下python爬虫怎么写,写的很简单. 2. 相关技术 2.1 P ...

  8. UVA - 1639 -Candy

    题目链接:https://vjudge.net/problem/UVA-1639 题目大意: 有两个糖果盒,每个盒子里面有n个糖果,每天随机选一个(概率分别为p,1-p),然后吃一颗糖.直到有一天,打 ...

  9. 冒泡排序和选择排序(Go语言实现)

    冒泡排序和选择排序是排序算法中比较简单和容易实现的算法.冒泡排序的思想为:每一次排序过程,通过相邻元素的交换,将当前没有排好序中的最大(小)移到数组的最右(左)端.而选择排序的思想也很直观:每一次排序 ...

  10. Linux(4)系统管理

    系统管理 cal :查看当前月份和日历, 加-y查看整年日历 date :显示或设置时间 设置时间格式(需要管理员权限) date [MMDDhhmm[[CC]YY][.ss]]+format CC为 ...