马尔科夫链(Markov chain)5分钟简单入门

2023-10-30

数学表达

详细的数学表达还是建议看这里
马克科夫链是一个随机系统,必须满足两个条件

  • 系统任意时刻可以用有限个可能状态之一来描述
  • 系统无后效性,即某阶段的状态一旦确定,则此后过程的演变不再受此前各种状态及决策的影响
    无后效性(附录有详细描述)

条件一 …… 概率向量(状态向量)

X(n)=(x(n)1x(n)2x(n)k)T X ( n ) = ( x 1 ( n ) x 2 ( n ) … x k ( n ) ) T

  • 概率向量的每个元素都是概率,并且元素之和为1。
  • k是系统的可能状态数。
  • x(n)i x i ( n ) 表示第n次观测时第i个状态的概率

这个概率向量 X(n) X ( n ) 也被称为Markov的状态向量
X0 X 0 被称为马尔科夫链的初始状态

条件二 …… 转移概率矩阵

P=p11p21pk1p12p22pk2p1kp2kpkk P = ( p 11 p 12 … p 1 k p 21 p 22 … p 2 k ⋮ ⋮ ⋮ p k 1 p k 2 … p k k )

  • pij(i,j=1,2,,k) p i j ( i , j = 1 , 2 , … , k ) 表示这次观测时状态为j,现在观测是状态为i的概率
  • P矩阵元素非负
  • 每一列的元素之和都为1

根据无后效性我们可以的到, X(n+1)=PX(n) X ( n + 1 ) = P X ( n ) , 进一步有
X(n)=PnX(0) X ( n ) = P n X ( 0 )

例子

有一个大的汽车租赁公司,有三家门店,你租的时候可以选择任何一个门店,还的时候也可以选择任何一家门店, 从不同门店借出和归还的概率如下表:

归还\借出 1 2 3
1 0.5 0.3 0.3
2 0.2 0.1 0.6
3 0.3 0.6 0.1

问题: 一辆车出2号门店借出,公司前三次应该从哪家店找最快捷

那么初始状态 X(0)=(0,1,0)T X ( 0 ) = ( 0 , 1 , 0 ) T ,转移矩阵

P=0.50.20.30.30.10.60.30.60.1 P = ( 0.5 0.3 0.3 0.2 0.1 0.6 0.3 0.6 0.1 )

那么为:
PX(0)=X(1)=(0.3,0.1,0.6)T P X ( 0 ) = X ( 1 ) = ( 0.3 , 0.1 , 0.6 ) T
X(2)=(0.35,0.43,0.21)T X ( 2 ) = ( 0.35 , 0.43 , 0.21 ) T
X(3)=(0.324,0.239,0.384)T X ( 3 ) = ( 0.324 , 0.239 , 0.384 ) T

所以第一次先从3号门店找,
第二次先从2号门店找
第三次先从3号门店找


这里感觉有些怪怪的,因为按理说第一次找在3号,第二次找在2号,那么第三次就一定去1号找,应该是我没理解X的内涵本质

附录

1. 马尔科夫假设的概率理解

t时刻的状态和t-1时刻和t时刻的动作决定。t时刻的观测仅仅同t时刻的状态相关
这里写图片描述

P(zt|x0:t,zz:t,u1:t)=P(zt|xt)P(xt|x1:t1,z1:t,u1:t)=P(xt|xt1,ut) P ( z t | x 0 : t , z z : t , u 1 : t ) = P ( z t | x t ) P ( x t | x 1 : t − 1 , z 1 : t , u 1 : t ) = P ( x t | x t − 1 , u t )

2. 参考

  1. 线性代数 高等教育出报社
  2. 微信公众号:红猴子
  3. introduction to Markov chain by Waiyin Wong
  4. (一):细说贝叶斯滤波:Bayes filters
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

马尔科夫链(Markov chain)5分钟简单入门 的相关文章

  • AI翻译思路引导

    1 基于规则的机器方法 既存储字典和规则沟通 2 基于实例的机器方法 片段化存储的实例 进行组合 数据库一般分词 词汇信息 句法分析 3 基于统计的方法 单词 短语 翻译结果汇总
  • web前端面试总结

    前端面试总结 写React Vue项目时为什么要在列表组件中写Key 其作用是什么 key是给每个vnode的唯一ID 依靠key可以更准确 更快的拿到oldVnode中对应的vnode节点 更准确 因为带key就不是就地复用了 在same
  • QT+机制之信号与槽(自定义带参数的信号)

    关于QT信号与槽的问题其实每个初学QT的人都会遇到 当时我需要做一个带界面的demo 在信号和槽的问题上 我需要的想法是让槽可以有参数的进行操作 但是系统内置的clicked 信号是不含参数的 这对当时根本没接触过QT的我来说就很没头绪 无
  • 90-30-020-源码-任务调度-Kylin任务调度

    1 视界 1 概述 Kylin源码分析系列一 任务调度 注 Kylin源码分析系列基于Kylin的2 6 0版本的源码 其他版本可以类比 Kylin在Web上触发Cube的相关操作后并不是马上执行相关的操作 而是将构建的任务提交到任务调度服
  • 【Java基础知识 1】Java入门级概述,让阿里架构师告诉你为什么要分库分表

    1998年12月8日 第二代Java平台的企业版J2EE发布 1999年4月27日 HotSpot虚拟机发布 2005年6月 在Java One大会上 Sun公司发布了Java SE 6 此时 Java的各种版本已经更名 已取消其中的数字2
  • Dell服务器RAID常用管理命令总结

    介绍 MegaCli是一款管理维护硬件RAID软件 可以通过它来了解当前raid卡的所有信息 包括 raid卡的型号 raid的阵列类型 raid 上各磁盘状态 等等 通常 我们对硬盘当前的状态不太好确定 一般通过机房人员巡检来完成 有没有
  • IP地址的分配

    一 ip地址的作用 用IP地址来标识Internet的主机 IP协议可以根据路由选择协议提供的路由信息对IP数据报进行转发 直至抵达目的主机 IP地址和MAC地址的匹配 数据链路层使用MAC地址来发送数据帧 因此在实际发送IP报文时 还需要
  • centos 安装redis,详细步骤记录下来,直接按步骤即可安装,省大家时间

    一 安装gcc 因为redis是用C语言开发的 安装前要先安装gcc环境 yum install y gcc 二 点击下载redis安装包 三 解压 tar zxvf redis 5 0 3 tar gz cd切换到redis解压目录下 执
  • 智源x清华开源FastMoE,万亿AI模型基石

    北京智源人工智能研究院 以下简称 智源研究院 和清华大学联合发布首个支持PyTorch框架的高性能MoE系统 FastMoE 开源地址 https github com laekov fastmoe FastMoE系统具有易用性强 灵活性好
  • Shell用法

    shell转换大小写用法 把VAR的大写转换成小写 echo VAR tr A Z a z 把VAR的小写转换成大写 echo VAR tr a z A Z shell过滤掉冒号 cat file sed s g sed s g file
  • 每天一道算法练习题--Day16 && 第一章 --算法专题 --- ----------哈夫曼编码和游程编码

    Huffman encode 哈夫曼编码 Huffman 编码的基本思想就是用短的编码表示出现频率高的字符 用长的编码来表示出现频率低的字符 这使得编码之后的字符串的平均长度 长度的期望值降低 从而实现压缩的目的 因此 Huffman 编码
  • 传统金融行业 IT 的核心竞争力究竟在何处?

    传统金融行业 IT 的核心竞争力究竟在何处 原创 汪照辉 王作敬 talkwithtrend 昨天 原题 构建证券企业IT核心竞争力 像证券公司这样的传统金融行业 IT的核心竞争力在哪里 IT一直都是辅助部门 是花钱的部门 是支持部门 在以
  • okhttp3源码解析(5)-RealConnection、Http2Connection

    okhttp3源码解析 5 RealConnection Http2Connection 前言 上一篇文章我们讲了StreamAllocation和HttpCodec的内容 本来想一篇文章讲完连接与流的 但是篇幅有点长了 多分几篇吧 我这看
  • NVIDIA 不同显卡对应的GPU计算能力

    转自 https blog csdn net dlhlsc article details 85088280 Fermi CUDA 3 2 until CUDA 8 deprecated from CUDA 9 SM20 or SM 20
  • 如何在CentOS 6.5上安装EPEL 源

    EPEL 是什么 EPEL Extra Packages for Enterprise Linux 企业版Linux的额外软件包 是Fedora小组维护的一个软件仓库项目 为RHEL CentOS提供他们默认不提供的软件包 这个源兼容RHE
  • 用递归法将一个整数n转换成字符串。例如,输入483,应输出字符串“ 483“。n的位数不确定,可以是任意位数的整数。

    这个题 让把整数转化为字符串 且用递归的方法 首先肯定要打印出这个整数的最高位的 但是如果要直接打印出最高位 是需要求位数 然后除以10的某次幂 然后用整数除这个数 但是这里是递归的方法 int main void convert int

随机推荐