社区
其它技术问题
帖子详情
单源最短路径算法中松弛的概念,不是很懂?
伢之国
2013-06-10 09:09:39
请前辈们教教我,我对单源最短路径算法中松弛技术的理解不是很到位,,请各位前辈说说你们对松弛的理解,如果能形象的解释一下就更好了,谢谢
(还有就是,我是新来的,不知道要请教算法问题的帖子应该发表在哪个版块,?)
...全文
164
2
打赏
收藏
单源最短路径算法中松弛的概念,不是很懂?
请前辈们教教我,我对单源最短路径算法中松弛技术的理解不是很到位,,请各位前辈说说你们对松弛的理解,如果能形象的解释一下就更好了,谢谢 (还有就是,我是新来的,不知道要请教算法问题的帖子应该发表在哪个版块,?)
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
hugett
2013-06-10
打赏
举报
回复
松弛操作就是有一条边(u,v),而源到点u的距离d[u]已经确定,然后通过判断是否能经过u获得到点v的更短的路径。。d[v] = min(d[v], d[u] + w(u,v));
FancyMouse
2013-06-10
打赏
举报
回复
一条边(u,v),长度是w。对于这条边松弛就是进行如下操作: if(d[u]+w < d[v]) d[v] = d[u] + w; >不知道要请教算法问题的帖子应该发表在哪个版块
算法版
算法
导论
中
文版
在有关
算法
的书
中
,有一些叙述非常严谨,但不够全面;另一些涉及了大量的题材,但又缺乏严谨性。本书将严谨性和全面性融为一体,深入讨论各类
算法
,并着力使这些
算法
的设计和分析能为各个层次的读者接受。全书各章自成体系,可以作为独立的学习单元;
算法
以英语和伪代码的形式描述,具备初步程序设计经验的人就能看
懂
;说明和解释力求浅显易
懂
,不失深度和数学严谨性。 --------------------------------------------------------------- 目录 Introduction to Algorithms, Third Edition 出版者的话 译者序 前言 第一部分 基础知识 第1章
算法
在计算
中
的作用 1.1
算法
1.2 作为一种技术的
算法
思考题 本章注记 第2章
算法
基础 2.1 插入排序 2.2 分析
算法
2.3 设计
算法
2.3.1 分治法 2.3.2 分析分治
算法
思考题 本章注记 第3章 函数的增长 3.1 渐近记号 3.2 标准记号与常用函数 思考题 本章注记 第4章 分治策略 4.1 最大子数组问题 4.2 矩阵乘法的Strassen
算法
4.3 用代入法求解递归式 4.4 用递归树方法求解递归式 4.5 用主方法求解递归式 4.6 证明主定理 4.6.1 对b的幂证明主定理 4.6.2 向下取整和向上取整 思考题 本章注记 第5章 概率分析和随机
算法
5.1 雇用问题 5.2 指示器随机变量 5.3 随机
算法
?5.4 概率分析和指示器随机变量的进一步使用 5.4.1 生日悖论 5.4.2 球与箱子 5.4.3 特征序列 5.4.4 在线雇用问题 思考题 本章注记 第二部分 排序和顺序统计量 第6章 堆排序 6.1 堆 6.2 维护堆的性质 6.3 建堆 6.4 堆排序
算法
6.5 优先队列 思考题 本章注记 第7章 快速排序 7.1 快速排序的描述 7.2 快速排序的性能 7.3 快速排序的随机化版本 7.4 快速排序分析 7.4.1 最坏情况分析 7.4.2 期望运行时间 思考题 本章注记 第8章 线性时间排序 8.1 排序
算法
的下界 8.2 计数排序 8.3 基数排序 8.4 桶排序 思考题 本章注记 第9章
中
位数和顺序统计量 9.1 最小值和最大值 9.2 期望为线性时间的选择
算法
9.3 最坏情况为线性时间的选择
算法
思考题 本章注记 第三部分 数据结构 第10章 基本数据结构 10.1 栈和队列 10.2 链表 10.3 指针和对象的实现 10.4 有根树的表示 思考题 本章注记 第11章 散列表 11.1 直接寻址表 11.2 散列表 11.3 散列函数 11.3.1 除法散列法 11.3.2 乘法散列法 11.3.3 全域散列法 11.4 开放寻址法 11.5 完全散列 思考题 本章注记 第12章 二叉搜索树 12.1 什么是二叉搜索树 12.2 查询二叉搜索树 12.3 插入和删除 12.4 随机构建二叉搜索树 思考题 本章注记 第13章 红黑树 13.1 红黑树的性质 13.2 旋转 13.3 插入 13.4 删除 思考题 本章注记 第14章 数据结构的扩张 14.1 动态顺序统计 14.2 如何扩张数据结构 14.3 区间树 思考题 本章注记 第四部分 高级设计和分析技术 第15章 动态规划 15.1 钢条切割 15.2 矩阵链乘法 15.3 动态规划原理 15.4 最长公共子序列 15.5 最优二叉搜索树 思考题 本章注记 第16章 贪心
算法
16.1 活动选择问题 16.2 贪心
算法
原理 16.3 赫夫曼编码 16.4 拟阵和贪心
算法
16.5 用拟阵求解任务调度问题 思考题 本章注记 第17章 摊还分析 17.1 聚合分析 17.2 核
算法
17.3 势能法 17.4 动态表 17.4.1 表扩张 17.4.2 表扩张和收缩 思考题 本章注记 第五部分 高级数据结构 第18章 B树 18.1 B树的定义 18.2 B树上的基本操作 18.3 从B树
中
删除关键字 思考题 本章注记 第19章 斐波那契堆 19.1 斐波那契堆结构 19.2 可合并堆操作 19.3 关键字减值和删除一个结点 19.4 最大度数的界 思考题 本章注记 第20章 van Emde Boas树 20.1 基本方法 20.2 递归结构 20.2.1 原型van Emde Boas结构 20.2.2 原型van Emde Boas结构上的操作 20.3 van Emde Boas树及其操作 20.3.1 van Emde Boas树 20.3.2 van Emde Boas树的操作 思考题 本章注记 第21章 用于不相交集合的数据结构 21.1 不相交集合的操作 21.2 不相交集合的链表表示 21.3 不相交集合森林 *21.4 带路径压缩的按秩合并的分析 思考题 本章注记 第六部分 图
算法
第22章 基本的图
算法
22.1 图的表示 22.2 广度优先搜索 22.3 深度优先搜索 22.4 拓扑排序 22.5 强连通分量 思考题 本章注记 第23章 最小生成树 23.1 最小生成树的形成 23.2 Kruskal
算法
和Prim
算法
思考题 本章注记 第24章
单源最短路径
24.1 Bellman?Ford
算法
24.2 有向无环图
中
的
单源最短路径
问题 24.3 Dijkstra
算法
24.4 差分约束和最短路径 24.5 最短路径性质的证明 思考题 本章注记 第25章 所有结点对的最短路径问题 25.1 最短路径和矩阵乘法 25.2 Floyd?Warshall
算法
25.3 用于稀疏图的Johnson
算法
思考题 本章注记 第26章 最大流 26.1 流网络 26.2 Ford\Fulkerson方法 26.3 最大二分匹配 26.4 推送重贴标签
算法
26.5 前置重贴标签
算法
思考题 本章注记 第七部分
算法
问题选编 第27章 多线程
算法
27.1 动态多线程基础 27.2 多线程矩阵乘法 27.3 多线程归并排序 思考题 本章注记 第28章 矩阵运算 28.1 求解线性方程组 28.2 矩阵求逆 28.3 对称正定矩阵和最小二乘逼近 思考题 本章注记 第29章 线性规划 29.1 标准型和
松弛
型 29.2 将问题表达为线性规划 29.3 单纯形
算法
29.4 对偶性 29.5 初始基本可行解 思考题 本章注记 第30章 多项式与快速傅里叶变换 30.1 多项式的表示 30.2 DFT与FFT 30.3 高效FFT实现 思考题 本章注记 第31章 数论
算法
31.1 基础数论
概念
31.2 最大公约数 31.3 模运算 31.4 求解模线性方程 31.5
中
国余数定理 31.6 元素的幂 31.7 RSA公钥加密系统 31.8 素数的测试 31.9 整数的因子分解 思考题 本章注记 第32章 字符串匹配 32.1 朴素字符串匹配
算法
32.2 Rabin\Karp
算法
32.3 利用有限自动机进行字符串匹配 32.4 Knuth?Morris?Pratt
算法
思考题 本章注记 第33章 计算几何学 33.1 线段的性质 33.2 确定任意一对线段是否相交 33.3 寻找凸包 33.4 寻找最近点对 思考题 本章注记 第34章 NP完全性 34.1 多项式时间 34.2 多项式时间的验证 34.3 NP完全性与可归约性 34.4 NP完全性的证明 34.5 NP完全问题 34.5.1 团问题 34.5.2 顶点覆盖问题 34.5.3 哈密顿回路问题 34.5.4 旅行商问题 34.5.5 子集和问题 思考题 本章注记 第35章 近似
算法
35.1 顶点覆盖问题 35.2 旅行商问题 35.2.1 满足三角不等式的旅行商问题 35.2.2 一般旅行商问题 35.3 集合覆盖问题 35.4 随机化和线性规划 35.5 子集和问题 思考题 本章注记 第八部分 附录:数学基础知识 附录A 求和 A.1 求和公式及其性质 A.2 确定求和时间的界 思考题 附录注记 附录B 集合等离散数学内容 B.1 集合 B.2 关系 B.3 函数 B.4 图 B.5 树 B.5.1 自由树 B.5.2 有根树和有序树 B.5.3 二叉树和位置树 思考题 附录注记 附录C 计数与概率 C.1 计数 C.2 概率 C.3 离散随机变量 C.4 几何分布与二项分布 *C.5 二项分布的尾部 思考题 附录注记 附录D 矩阵 D.1 矩阵与矩阵运算 D.2 矩阵基本性质 思考题 附录注记
算法
导论(part1)
一、本书的内容 目前,市面上有关计算机
算法
的书很多,有些叙述严谨但不全面,另外一些则是容量很大但不够严谨。本书将叙述的严谨性以及内容的深度和广度有机地结合了起来。第1版推出后,即在世界范围内受到了广泛的欢迎,被各高等院校用作多种课程的教材和业界的标准参考资料。它深入浅出地介绍了大量的
算法
及相关的数据结构,以及用于解决一些复杂计算问题的高级策略(如动态规划、贪心
算法
、平摊分析等),重点在于
算法
的分析和设计。对于每一个专题,作者都试图提供目前最新的研究成果及样例解答,并通过清晰的图示来说明
算法
的执行过程。. 本书是原书的第2版,在第1版的基础之上增加了一些新的内容,涉及
算法
的作用、概率分析和随机化
算法
、线性规划,以及对第1版
中
详尽的、几乎涉及到每一小节的修订。这些修订看似细微,实际上非常重要。书
中
引入了“循环不变式”,并贯穿始终地用来证明
算法
的正确性。在不改动数学和分析重点的前提下,作者将第1版
中
的许多数学基础知识从第一部分移到了附录
中
。 二、本书的特点 本书在进行
算法
分析的过程
中
,保持了很好的数学严谨性。书
中
的分析和设计可以被具有各种水平的读者所理解。相对来说,每一章都可以作为一个相对独立的单元来教授或学习。书
中
的
算法
以英语加伪代码的形式给出,只要有一点程序设计经验的人都能读
懂
,并可以用任何计算机语言(如C/C++和Java等)方便地实现。在书
中
,作者将
算法
的讨论集
中
在一些比较现代的例子上,它们来自分子生物学(如人类基因项目)、商业和工程等领域。每一小节通常以对相关历史素材的讨论结束,讨论了在每一
算法
领域的原创研究。 本书的特点可以概括为以下几个方面: 1.
概念
清晰,广度、深度兼顾。 本书收集了现代计算机常用的数据结构和
算法
,并作了系统而深入的介绍。对涉及的
概念
和背景知识都作了清晰的阐述,有关的定理给出了完整的证明。 2.“五个一”的描述方法。 本书以相当的深度介绍了许多常用的数据结构和有效的
算法
。编写上采用了“五个一”,即一章介绍一个
算法
、一种设计技术、一个应用领域和一个相关话题。.. 3.图文并茂,可读性强。 书
中
的
算法
均以通俗易
懂
的语言进行说明,并采用了大量插图来说明
算法
是如何工作的,易于理解。 4.
算法
的“伪代码”形式简明实用。 书
中
的
算法
均以非常简明的“伪代码”形式来设计,可以很容易地把它转化为计算机程序,直接应用。 注重
算法
设计的效率,对所有的
算法
进行了仔细、精确的运行时间分析,有利于进一步改进
算法
。 三、本书的用法 本书对内容进行了精心的设计和安排,尽可能考虑到所有水平的读者。即使是初学计算机
算法
的人,也可以在本书
中
找到所需的材料。 每一章都是独立的,读者只需将注意力集
中
到最感兴趣的章节阅读。 1.适合作为教材或教学参考书。 本书兼顾通用性与系统性,覆盖了许多方面的内容。本书不但阐述通俗、严谨,而且提供了大量练习和思考题。针对每一节的内容,都给出了数量和难度不等的练习题。练习题用于考察对基本内容的掌握程度,思考题有一定的难度,需进行精心的研究,有时还通过思考题介绍一些新的知识。 前言回到顶部↑本书提供了对当代计算机
算法
研究的一个全面、综合性的介绍。书
中
给出了多个
算法
,并对它们进行了较为深入的分析,使得这些
算法
的设计和分析易于被各个层次的读者所理解。力求在不牺牲分析的深度和数学严密性的前提下,给出深入浅出的说明。. 书
中
每一章都给出了一个
算法
、一种
算法
设计技术、一个应用领域或一个相关的主题。
算法
是用英语和一种“伪代码”来描述的,任何有一点程序设计经验的人都能看得
懂
。书
中
给出了230多幅图,说明各个
算法
的工作过程。我们强调将
算法
的效率作为一种设计标准,对书
中
的所有
算法
,都给出了关于其运行时间的详细分析。 本书主要供本科生和研究生的
算法
或数据结构课程使用。因为书
中
讨论了
算法
设计
中
的工程问题及其数学性质,因此,本书也可以供专业技术人员自学之用。 本书是第2版。在这个版本里,我们对全书进行了更新。所做的改动从新增了若干章,到个别语句的改写。 致使用本书的教师 本书的设计目标是全面、适用于多种用途。它可用于若干课程,从本科生的数据结构课程到研究生的
算法
课程。由于书
中
给出的内容比较多,只讲一学期一般讲不完,因此,教师们应该将本书看成是一种“缓存区”或“瑞典式自助餐”,从
中
挑选出能最好地支持自己希望教授的课程的内容。 教师们会发现,要围绕自己所需的各个章节来组织课程是比较容易的。书
中
的各章都是相对独立的,因此,你不必担心意想不到的或不必要的各章之间的依赖关系。每一章都是以节为单位,内容由易到难。如果将本书用于本科生的课程,可以选用每一章的前面几节内容;在研究生课程
中
,则可以完整地讲授每一章。 全书包含920多个练习题和140多个思考题。每一节结束时给出练习题,每一章结束时给出一些
算法
导论(part2)
一、本书的内容 目前,市面上有关计算机
算法
的书很多,有些叙述严谨但不全面,另外一些则是容量很大但不够严谨。本书将叙述的严谨性以及内容的深度和广度有机地结合了起来。第1版推出后,即在世界范围内受到了广泛的欢迎,被各高等院校用作多种课程的教材和业界的标准参考资料。它深入浅出地介绍了大量的
算法
及相关的数据结构,以及用于解决一些复杂计算问题的高级策略(如动态规划、贪心
算法
、平摊分析等),重点在于
算法
的分析和设计。对于每一个专题,作者都试图提供目前最新的研究成果及样例解答,并通过清晰的图示来说明
算法
的执行过程。. 本书是原书的第2版,在第1版的基础之上增加了一些新的内容,涉及
算法
的作用、概率分析和随机化
算法
、线性规划,以及对第1版
中
详尽的、几乎涉及到每一小节的修订。这些修订看似细微,实际上非常重要。书
中
引入了“循环不变式”,并贯穿始终地用来证明
算法
的正确性。在不改动数学和分析重点的前提下,作者将第1版
中
的许多数学基础知识从第一部分移到了附录
中
。 二、本书的特点 本书在进行
算法
分析的过程
中
,保持了很好的数学严谨性。书
中
的分析和设计可以被具有各种水平的读者所理解。相对来说,每一章都可以作为一个相对独立的单元来教授或学习。书
中
的
算法
以英语加伪代码的形式给出,只要有一点程序设计经验的人都能读
懂
,并可以用任何计算机语言(如C/C++和Java等)方便地实现。在书
中
,作者将
算法
的讨论集
中
在一些比较现代的例子上,它们来自分子生物学(如人类基因项目)、商业和工程等领域。每一小节通常以对相关历史素材的讨论结束,讨论了在每一
算法
领域的原创研究。 本书的特点可以概括为以下几个方面: 1.
概念
清晰,广度、深度兼顾。 本书收集了现代计算机常用的数据结构和
算法
,并作了系统而深入的介绍。对涉及的
概念
和背景知识都作了清晰的阐述,有关的定理给出了完整的证明。 2.“五个一”的描述方法。 本书以相当的深度介绍了许多常用的数据结构和有效的
算法
。编写上采用了“五个一”,即一章介绍一个
算法
、一种设计技术、一个应用领域和一个相关话题。.. 3.图文并茂,可读性强。 书
中
的
算法
均以通俗易
懂
的语言进行说明,并采用了大量插图来说明
算法
是如何工作的,易于理解。 4.
算法
的“伪代码”形式简明实用。 书
中
的
算法
均以非常简明的“伪代码”形式来设计,可以很容易地把它转化为计算机程序,直接应用。 注重
算法
设计的效率,对所有的
算法
进行了仔细、精确的运行时间分析,有利于进一步改进
算法
。 三、本书的用法 本书对内容进行了精心的设计和安排,尽可能考虑到所有水平的读者。即使是初学计算机
算法
的人,也可以在本书
中
找到所需的材料。 每一章都是独立的,读者只需将注意力集
中
到最感兴趣的章节阅读。 1.适合作为教材或教学参考书。 本书兼顾通用性与系统性,覆盖了许多方面的内容。本书不但阐述通俗、严谨,而且提供了大量练习和思考题。针对每一节的内容,都给出了数量和难度不等的练习题。练习题用于考察对基本内容的掌握程度,思考题有一定的难度,需进行精心的研究,有时还通过思考题介绍一些新的知识。 前言回到顶部↑本书提供了对当代计算机
算法
研究的一个全面、综合性的介绍。书
中
给出了多个
算法
,并对它们进行了较为深入的分析,使得这些
算法
的设计和分析易于被各个层次的读者所理解。力求在不牺牲分析的深度和数学严密性的前提下,给出深入浅出的说明。. 书
中
每一章都给出了一个
算法
、一种
算法
设计技术、一个应用领域或一个相关的主题。
算法
是用英语和一种“伪代码”来描述的,任何有一点程序设计经验的人都能看得
懂
。书
中
给出了230多幅图,说明各个
算法
的工作过程。我们强调将
算法
的效率作为一种设计标准,对书
中
的所有
算法
,都给出了关于其运行时间的详细分析。 本书主要供本科生和研究生的
算法
或数据结构课程使用。因为书
中
讨论了
算法
设计
中
的工程问题及其数学性质,因此,本书也可以供专业技术人员自学之用。 本书是第2版。在这个版本里,我们对全书进行了更新。所做的改动从新增了若干章,到个别语句的改写。 致使用本书的教师 本书的设计目标是全面、适用于多种用途。它可用于若干课程,从本科生的数据结构课程到研究生的
算法
课程。由于书
中
给出的内容比较多,只讲一学期一般讲不完,因此,教师们应该将本书看成是一种“缓存区”或“瑞典式自助餐”,从
中
挑选出能最好地支持自己希望教授的课程的内容。 教师们会发现,要围绕自己所需的各个章节来组织课程是比较容易的。书
中
的各章都是相对独立的,因此,你不必担心意想不到的或不必要的各章之间的依赖关系。每一章都是以节为单位,内容由易到难。如果将本书用于本科生的课程,可以选用每一章的前面几节内容;在研究生课程
中
,则可以完整地讲授每一章。 全书包含920多个练习题和140多个思考题。每一节结束时给出练习题,每一章结束时给出一些
图详解第四篇:
单源最短路径
--Dijkstra
算法
单源最短路径
--Dijkstra
算法
单源最短路径
:Dijkstra
算法
单源最短路径
,看
算法
还是挺简单的,但是要用
算法
实现起来并不容易。本人表示看了好久,
算法
上面的某些变量不明确,看了很久也没看
懂
,只能在网上查找了。 1、
单源最短路径
概念
: 给定一个带权有向图G=(V,E),其
中
每条边的权是一个实数。另外,还给定V
中
的一个顶点,称为源。现在要计算从源到其他所有各顶点的最短路径长度。这里的长度就是指路上各边权之和。这个问题通常称为
单源最短路径
问题。
其它技术问题
3,881
社区成员
9,054
社区内容
发帖
与我相关
我的任务
其它技术问题
C/C++ 其它技术问题
复制链接
扫一扫
分享
社区描述
C/C++ 其它技术问题
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章