图解比较李航书上的viterbi算法和dijistra算法
李航P184中有句话非常奇怪,是这样的:
“根据动态规划原理,最优路径具有这样的特性:如果最优路径在时刻t通过节点it∗i_t^*it∗,那么这一路径从节点it∗i_t^*it∗到终点iT∗i_T^*iT∗的部分路径,对于从it∗i_t^*it∗到iT∗i_T^*iT∗的所有可能的部分路径来说,必须是最优的.因为假如不是这样,那么从it∗i_t^*it∗到iT∗i_T^*iT∗就有另一条更好的部分路径存在,如果把它和从i1∗i_1^*i1∗到iT∗i_T^*iT∗的部分路径连接起来,就会形成一条比原来的路径更优的路径”
什么意思呢?一张图来解释
上面书上的这段话什么意思呢?
也就是说图中我们假设S-A2-B2-C3是最优路径,
那么蓝色这条线段是B2到iT∗i_T^*iT∗之间的最优路径.
#############################################3
一些疑问:
图(1)
因为dijistra和viterbi十分相似,所以,我们会有这样的疑问,如果viterbi碰到了上面这个图咋办?
会不会存在选择了0.6*0.7这样的结果呢?
两方面来分析,
首先上面这个图是学过dijistra的同学马上能想到的,但是在viterbi中,注意,不存在这样的图.
只有下面两种图是可能的:
注意,如果是dijistra算法,最后在图形上一定是"汇总"的,但是
viterbi算法最后的节点数一定是和每一层节点数是一样的,一般不存在最右侧终点状态呈现"汇总",除非是下面这种特殊情况:
此时终点状态才会有"汇聚"的效果.
那么好了,如果是下面这样的结构,对于计算的影响是怎样的呢?
第一级积累的概率是0.6,会不会导致第二级别"偏爱"0.6的这条路线呢?
答案是不会的.因为:
“黑色线上面的转移概率”·“抽小球的概率”·
“粉色线上面的转移概率”·“抽小球的概率”
最大时,才会被记录为
李航书上的δ2(i)\delta_2(i)δ2(i),
也就是t=2时选择的第i个盒子(这里是"两个盒子摸红、白小球"案例)
图解比较李航书上的viterbi算法和dijistra算法相关推荐
- 使用Apriori算法和FP-growth算法进行关联分析
目录 1. 关联分析 2. Apriori原理 3. 使用Apriori算法来发现频繁集 4. 使用FP-growth算法来高效发现频繁项集 5. 示例:从新闻网站点击流中挖掘新闻报道 扩展阅读 系列 ...
- lru调度算法例题_FIFO调度算法和LRU算法
微信公众号关注我,更多计算机知识告诉你! 一.理论 FIFO:先进先出调度算法 LRU:最近最久未使用调度算法 两者都是缓存调度算法,经常用作内存的页面置换算法. 打一个比方,帮助你理解.你有很多的书 ...
- 数据结构与算法—最小生成树(Prim算法和Kruskal算法算法详解)
前言 在数据结构与算法的图论中,(生成)最小生成树算法是一种常用并且和生活贴切比较近的一种算法.但是可能很多人对概念不是很清楚.我们看下百度百科对于最小生成树定义: 一个有 n 个结点的连通图的生成树 ...
- 【数据结构】最小生成树问题(Prim算法和Kruskal算法)
相关概念 连通图与它的生成树 连通图的生成树是包含图中全部顶点的一个极小连通子图.若图的顶点数为n,则它的生成树含有n-1条边.一个连通图可能拥有多个生成树. 最小生成树(Minimum-Spanni ...
- Kruskal算法和Prim算法
Kruskal算法和Prim算法 在无向图中,连通且不含圈的图称为树.给定一个无向图G=(V,E),连通G中所有点,且边集使E的子集的树称为G的生成树,其中权值最小的生成树称为最小生成树(MST).构 ...
- 操作系统之存储管理——FIFO算法和LRU算法
操作系统之进程调度--优先权法和轮转法(附上样例讲解) 操作系统之银行家算法-详解流程及案例数据 操作系统之多线程编程-读者优先/写者优先详解 操作系统之存储管理--FIFO算法和LRU算法 操作系统 ...
- Prim算法和Kruskal算法
Prim算法和Kruskal算法都能从连通图找出最小生成树.区别在于Prim算法是以某个顶点出发挨个找,而Kruskal是先排序边,每次选出最短距离的边再找. 一.Prim(普里姆算法)算法: ...
- 基于Huffman算法和LZ77算法的文件压缩的改进方向
基于Huffman算法和LZ77算法的文件压缩(八) 到这里已经简单实现基于Huffman算法和LZ77算法的文件压缩, GitHub源码:点我 根据基于Huffman算法和LZ77算法的文件压缩(七 ...
- 用Spark学习FP Tree算法和PrefixSpan算法
在FP Tree算法原理总结和PrefixSpan算法原理总结中,我们对FP Tree和PrefixSpan这两种关联算法的原理做了总结,这里就从实践的角度介绍如何使用这两个算法.由于scikit-l ...
最新文章
- linux之history命令
- 5.3.3 TCP可靠传输
- Dart 调用C语言混合编程
- Hadoop集群(第6期)_WordCount运行详解
- Java 编译期与运行期,别傻傻分不清楚!
- EOS资源模型(1)资源说明
- 封装、继承、多态的理解
- 【MySQL】数据库死锁查询及处理
- Spring Boot JPA中使用@Entity和@Table
- running Extension project directly on ABAP server without Launchpad
- python 虚拟环境原理_Python 虚拟环境
- 设计模式 生成器_生成器设计模式的应用
- Spring JMS 整合 ActiveMQ
- 动态磁盘转换成基本磁盘
- 计算机网络的分类3:按网络的工作方式分类,分为集中式网络、分布式网络
- superset 可视化平台搭建
- 墨刀原型设计工具学习体会——临摹网易云音乐App
- Android开源框架:Retrofit
- 无限乱斗连接服务器失败,LOL新版无限乱斗模式服务器挤爆怎么办 客户端哪些功能被限制...
- AD7606调试过程与源码
热门文章
- “会”和 好”纯粹是两个概念
- 关于Java在Linux or Android平台调用.so库
- Oracle----date
- for(;;)和 while(1) 有什么区别吗?for()和while()的使用情景。
- 用户 'sa' 登录失败。原因: 未与信任 SQL Server 连接相关联
- C Primer Plus(第六版):C语言概述
- oracle 物理读突然增加的原因_请教一个诡异的物理读比逻辑读还多的问题!!!!
- Windows 目录结构,服务以及端口, DOS常用命令学习
- mysql及mybatis知识点_MyBatis知识点详解
- 每天定时查询CSDN博客访问量,并通过echarts进行展示