RT

Def:
δ(s,u): 表示从s到u的真实的最短路径
V是所有点的集合
S是已经添加的点的集合
性质1: 已经添加到S点中的点满足δ(s,x) = dist[x]

显然,对于源点s,满足该性质.对于源点s直接相连的点,亦满足。接下来就证明其他点加入到点集S时满足以下定理。(这里感觉不太严谨QAQ)

算法正确性证明:只需证明定理的正确性
定理: 在Dij算法中,顶点u被添加到S中时,dist[u] = δ(s,u)

证明: 采用反证法,实质是证明该命题的逆否命题成立.
假设对于点u被添加到S中时,dist[u] > δ(s,u).
那么存在一条路径满足路径长度 = δ(s,u),也就是最优解,假设它为路径P<s…x,y…u>
此处,x属于S,而y属于V - S.

由性质1可得: dist[x] = δ(s,x)
下面夹杂证明dist[y] = δ(s,y)
只需要证明 dist[y] >= δ(s,y) 且 dist[y] <= δ(s,y)
①显然,dist[y] >= δ(s,y),因为δ(s,y)是最优解.
②因为算法规定对于S中的点要进行边松弛操作,而x和y直接相连,所以y会被松弛。
满足dist[y] <= dist[x] + w(x,y) (1)
由于P是最优解,那么它上边的路径也是最优解(即最短路).
(上课的时候赵老师已经证明了,路径A是路径B的子路径,假设A不是最优,存在A‘ < A,A’ + left < A + left = B,说明B不是最优解,与已知矛盾。)
所以满足 δ(s,y) = δ(s,x) + w(x,y) (2)
由性质1, dist[x] = δ(s,x) (3)
由(1)(2)(3),得 dist[y] <= δ(s,x) + w(x,y) = δ(s,y)
所以dist[y] <= δ(s,y)
所以dist[y] = δ(s,y)

最短路径P<s…x,y…u> 中,y出现在u之前。因此:
dist[u] > δ(s,u) >= δ(s,y) = dist[y] (4)
u != y
(5)

由(4)、(5),根据贪心选择性质,Dij将选择y点加入S而不是u点.

所以,如果dist[u] != δ(s,u), u就不会加入到S中.
逆否命题的正确性得以证明,所以原命题的正确性得到保证.
所以定理得证,Dij算法的正确性得以证明.

算法设计与分析 Dij证明相关推荐

  1. 【算法】算法设计与分析试题(含答案)

    算法设计与分析试题 (中国科学院大学-陈玉福-2011秋) 一. 回答下列问题: (每小题5分) 1.陈述算法在最坏情况下的时间复杂度和平均时间复杂度:这两种评估算法复杂性的方法各自有什么实际意义? ...

  2. 哈工大威海算法设计与分析_计算机算法设计与分析第一章 算法概述

    晓强Deep Learning的读书分享会,先从这里开始,从大学开始.大家好,我是晓强,计算机科学与技术专业研究生在读.我会不定时的更新我的文章,内容可能包括深度学习入门知识,具体包括CV,NLP方向 ...

  3. 算法设计与分析——算法思想总结

    算法设计与分析 1.分治法 分治法的基本思想是将一个规模为n的问题分解为k个规模较小的子问题,这些子问题相互独立且与原问题相同.递归的解这些子问题,然后将各子问题的解合并得到原问题的解. 分治法所能解 ...

  4. 【算法设计与分析】15 分治策略:芯片测试

    上一篇文章学习了[算法设计与分析]14 分治算法的一般描述和分析方法 文章目录 1. 芯片测试 1.1 一次测试的过程 1.2 如何测试一块芯片的好坏 1.3 蛮力算法 1.4 分治算法设计思想 1. ...

  5. 【算法设计与分析】06 几类重要的函数

    本篇文章中会用到上一篇文章的定理:[算法设计与分析]05 有关函数的渐进的界的定理 主要学习常见的一些函数的阶 1. 基本函数类 以下按阶的高低排序: 至少指数级: 2n, 3n, n!, - 多项式 ...

  6. 【算法设计与分析】05 有关函数的渐进的界的定理

    上一篇文章学习了函数的渐近的界定义,本篇文章继续学习函数渐近的界定理.这些定理的证明,用到了函数渐近的界的定义.点击查看上一篇文章:[算法设计与分析]04 函数的渐进的界 文章目录 1. 定理1 1. ...

  7. 哈工大威海算法设计与分析_【斯坦福算法分析和设计02】渐进分析

    点击上方蓝字,关注公众号 目录 1. The Gist 1.1 为什么要学它(Motivation) 1.2 High level idea 1.3 4个例子 2. Big-Oh Notation 2 ...

  8. 国科大计算机算法设计与分析陈玉福,中科院陈玉福计算机算法设计与分析期末简答题答案.pdf...

    中科院陈玉福计算机算法设计与分析期末简答题答案 1. 贪心算法和动态规划算法有什么共同点和区别?它们都有那些优势和劣势? 共通点:动态规划和贪心算法都是一种递推算法 ,均有局部最优解来推导全局最优解 ...

  9. 【算法设计与分析】经典常考三十三道例题AC代码

    ❥小虾目前大三,我校在大一下开设<数据结构>这门课,大二上开了<算法设计与分析>这门课,很庆幸这两门课的上机考试总成绩一门100,一门99,最后总分也都90+.下文会给出机试的 ...

最新文章

  1. 尺度空间理论与图像金字塔
  2. 从头开始 Struts 2 入门
  3. html5 初试 indexedDB
  4. 1. face_generate.py
  5. weblogic环境搭建
  6. Dijkstra算法——计算一个点到其他所有点的最短路径的算法
  7. postMessage跨域、跨iframe窗口消息传递
  8. SSM整合 mybatis多条件查询与分页
  9. 嵌入式linux appace,嵌入式Linux攻略 ACE程序移植过程详细解析 — IT技术
  10. http status 400 – bad request 亚马逊_蛮拼的!这个亚马逊卖家为Prime Day做了这三大准备,销量暴涨58倍...
  11. qgc地面站如何导入离线地图_【技术贴第三期】如何玩转离线地图?
  12. 在Xcode编译的时候,报这个错误"library not found for -
  13. oracle backup exec,利用Backup Exec 2010进行异机恢复测试
  14. 学习笔记:简谈boost升压电路
  15. cad批量打印_CAD批量打印插件的安装与使用方法
  16. idea添加scala环境_Scala篇:Scala环境及IDEA配置
  17. 视频技术系列 - 分析业内数字版权管理DRM技术
  18. 虚拟机、云主机、VPS 三者之间的区别
  19. python断点续传下载_Python 3 爬虫|第12章:并发下载大文件 支持断点续传
  20. Vue中获取组件声明时的name属性

热门文章

  1. 《笑傲股市 How to Make Money in Stocks》读书笔记
  2. Android Studio 关于TextToSpeech Speak失败
  3. 谷歌浏览器自带翻译失败解决方案
  4. Blender SMPL-X 插件安装
  5. Python 数据可视化的 3 大步骤,你知道吗?
  6. execjs调用第三方js库
  7. 实验一-Hadoop的安装与使用
  8. 云计算技术 实验三 安装Hadoop系统并熟悉hadoop命令
  9. Windpy + Pycharm(No such file报错解决方式)
  10. 树莓派通过MFRC522写UIC卡0扇区