多阶段决策过程multistepdecisionpr
多阶段决策和序贯决策教材(PPT76张)

10.2风险型多阶段动态决策 10.2.3风险型多阶段动态决策问题
10多阶段决策和序贯决策
10.2风险型多阶段动态决策 10.2.3风险型多阶段动态决策问题
10多阶段决策和序贯决策
10.2风险型多阶段动态决策 10.2.3风险型多阶段动态决策问题
10多阶段决策和序贯决策
10.2风险型多阶段动态决策 10.2.3风险型多阶段动态决策问题
1、想要体面生活,又觉得打拼辛苦;想要健康身体,又无法坚持运动。人最失败的,莫过于对自己不负责任,连答应自己的事都办不到,又何必抱怨这个世界都和你作对?人生的道理很简单,你想要什么,就去付出足够的努力。 2、时间是最公平的,活一天就拥有24小时,差别只是珍惜。你若不相信努力和时光,时光一定第一个辜负你。有梦想就立刻行动,因为现在过的每一天,都是余生中最年轻的一天。 3、无论正在经历什么,都请不要轻言放弃,因为从来没有一种坚持会被辜负。谁的人生不是荆棘前行,生活从来不会一蹴而就,也不会永远安稳,只要努力,就能做独一无二平凡可贵的自己。 4、努力本就是年轻人应有的状态,是件充实且美好的事,可一旦有了表演的成分,就会显得廉价,努力,不该是为了朋友圈多获得几个赞,不该是每次长篇赘述后的自我感动,它是一件平凡而自然而然的事,最佳的努力不过是:但行好事,莫问前程。愿努力,成就更好的你! 5、付出努力却没能实现的梦想,爱了很久却没能在一起的人,活得用力却平淡寂寞的青春,遗憾是每一次小的挫折,它磨去最初柔软的心智、让我们懂得累积时间的力量;那些孤独沉寂的时光,让我们学会守候内心的平和与坚定。那些脆弱的不完美,都会在努力和坚持下,改变模样。 6、人生中总会有一段艰难的路,需要自己独自走完,没人帮助,没人陪伴,不必畏惧,昂头走过去就是了,经历所有的挫折与磨难,你会发现,自己远比想象中要强大得多。多走弯路,才会找到捷径,经历也是人生,修炼一颗强大的内心,做更好的自己! 7、“一定要成功”这种内在的推动力是我们生命中最神奇最有趣的东西。一个人要做成大事,绝不能缺少这种力量,因为这种力量能够驱动人不停地提高自己的能力。一个人只有先在心里肯定自己,相信自己,才能成就自己! 8、人生的旅途中,最清晰的脚印,往往印在最泥泞的路上,所以,别畏惧暂时的困顿,即使无人鼓掌,也要全情投入,优雅坚持。真正改变命运的,并不是等来的机遇,而是我们的态度。 9、这世上没有所谓的天才,也没有不劳而获的回报,你所看到的每个光鲜人物,其背后都付出了令人震惊的努力。请相信,你的潜力还远远没有爆发出来,不要给自己的人生设限,你自以为的极限,只是别人的起点。写给渴望突破瓶颈、实现快速跨越的你。 10、生活中,有人给予帮助,那是幸运,没人给予帮助,那是命运。我们要学会在幸运青睐自己的时候学会感恩,在命运磨练自己的时候学会坚韧。这既是对自己的尊重,也是对自己的负责。 11、失败不可怕,可怕的是从来没有努力过,还怡然自得地安慰自己,连一点点的懊悔都被麻木所掩盖下去。不能怕,没什么比自己背叛自己更可怕。 12、跌倒了,一定要爬起来。不爬起来,别人会看不起你,你自己也会失去机会。在人前微笑,在人后落泪,可这是每个人都要学会的成长。 13、要相信,这个世界上永远能够依靠的只有你自己。所以,管别人怎么看,坚持自己的坚持,直到坚持不下去为止。 14、也许你想要的未来在别人眼里不值一提,也许你已经很努力了可还是有人不满意,也许你的理想离你的距离从来没有拉近过......但请你继续向前走,因为别人看不到你的努力,你却始终看得见自己。 15、所有的辉煌和伟大,一定伴随着挫折和跌倒;所有的风光背后,一定都是一串串揉和着泪水和汗水的脚印。 16、成功的反义词不是失败,而是从未行动。有一天你总会明白,遗憾比失败更让你难以面对。 17、没有一件事情可以一下子把你打垮,也不会有一件事情可以让你一步登天,慢慢走,慢慢看,生命是一个慢慢累积的过程。 18、努力也许不等于成功,可是那段追逐梦想的努力,会让你找到一个更好的自己,一个沉默努力充实安静的自己。 19、你相信梦想,梦想才会相信你。有一种落差是,你配不上自己的野心,也辜负了所受的苦难。 20、生活不会按你想要的方式进行,它会给你一段时间,让你孤独、迷茫又沉默忧郁。但如果靠这段时间跟自己独处,多看一本书,去做可以做的事,放下过去的人,等你度过低潮,那些独处的时光必定能照亮你的路,也是这些不堪陪你成熟。所以,现在没那么糟,看似生活对你的亏欠,其 实都是祝愿。
动态规划-1

13
11 12 6 12
f(4,1)=42 f(2,1)=24 f(2,2)=21
阶段1
8
f(3,3)=47
f(3,1)=36
f(3,2)=31
阶段2
7 14
f(4,2)=50
26
阶段3
15
f(4,3)=62
8
f(4,4)=55
f(5,1)=54
7
f(5,2)=57
13
f(5,3)=75
Yangzheng Middle School
例题 最长公共子序列
字符序列的子序列是指从给定字符序列中随意地
(不一定连续)去掉若干个字符(可能一个也不
去掉)后所形成的字符序列。 给定2个序列X和Y,当另一序列Z既是X的子序列 又是Y的子序列时,称Z是序列X和Y的公共子序列。 给定2个序列X={x1,x2,…,xm}和Y={y1,y2,…,yn}, 找出X和Y的最长公共子序列。
Yangzheng Middle School
例题 友好城市
【输入样例】 7 2 4 现在要在2个友好城市之间建立一条航线, 7 但由于天气的缘故,所有的航线都不能 相交,因此,就不能给所有的友好城市 1 建立友好航线。最多能建多少条航线。 3 【输入格式】 5 6 第1行,一个整数N(1≤N≤5000),表示城 【输出样例】 市数 4 以下N行,记第i行有一个正整数j,表
例题 友好城市
从上面的结论可以看出 如果选择了m条不相交的航线。 将航线按北岸城市号从小到大排序后,对应的南岸城 市序号为B1,B2 , ……,Bm。必定满足B1<B2<……Bm 因此,我们可以先将各航线按北岸城市号排一个序, 那么最优的方案必然是从相对应的南岸城市号中找出 一个最长不下降序列,该序列的长度即为问题的解 。
第九章多阶段决策和序贯决策

第一步,画出决策树图。
-700
2
建大厂
4
销路好0.7
销路差0.3
5
销路好0.9 销路差0.1
1
-400
建小厂
8
扩建
-300
6
销路好0.7
3
不扩建
9
销路差0.3
7
210
-40
-40
销路好0.9
210
销路差0.1
-40
销路好0.9
90
销路差0.1
60
60
3年内
7年内
第二步,从右向左计算各点的期望收益值。
第二阶段决策:产量不变,还是 增加产量。
30 5
82 买专利 决
策 自行研制
65
失败 0.2
95 产量不变 6
82
3
1 成功0.8
95 7
增加产量
60
63 成功0.6
85 产量不变 4
8
2
85
量 增加产
失败0.4
9
30
11
低0.1 中0.5 高0.4 低0.1
中0.5 高0.4
低0.1 中0.5 高0.4 低0.1
方案 收益 状态
按原工 艺方案 生产
(万元)
买专利(0.8)
产量 不变
增产
自研(0.6)
产量 不变
增产
价低 0.1 -100 -200 -300 -200 -300
中 0.5 0 50 50 0 -250
价高 0.4 100 150 250 200 600
第一阶段决策问题:购买专利, 还是自行研制
200
销路不好(0.2)
动态规划_多阶段决策问题的求解方法

动态规划_多阶段决策问题的求解方法1.构造状态网络; :一:解决多阶段决策最优化的过程为动态规划方法在程序设计中,有一类活动的过程,由于它的特殊性,可将过程2.根据状态转移关系和状态转移方程建立最优值的分成若干个互相联系的阶段,在它的每一阶段都需要做出决策,从而3.按阶段的先后次序计算每个状态的最优值。
使整个过程达到最好的活动效果。
因此各个阶段决策的选取不能任逆向思维法是指从问题目标状态出发倒推回初始意确定,它依赖于当前面临的状态,又影响以后的发展。
当各个阶段态的思维方法。
动态规划的逆向思维法的要点可归纳为以决策确定后,就组成一个决策序列,因而也就确定了整个过程的一条 1.分析最优值的结构,刻画其结构特征; 活动路线。
这种把一个问题看作是一个前后关联具有链状结构的多 2.递归地定义最优值; 阶段过程就称为多阶段决策过程,这种问题称为多阶段决策问题。
3.按自底向上或自顶向下记忆化的方式计算最优在多阶段决策问题中,各个阶段采取的决策,一般来说是与时间有关的,决策依赖于当前状态,又随即引起状态的转移,一个决策序列如果原问题可以分解成几个本质相同、规模较小的就是在变化的状态中产生出来的,故有"动态"的含义,我们称这种就会联想到从逆向思维的角度寻求问题的解决。
一般解决多阶段决策最优化的过程为动态规划方法。
策问题多采用动态规划逆向思维方法解决。
二、举:二:动态规划最优化原理 pascal 语例说明本文以信息学奥赛用语言——最优化原理是动态规划的基础。
任何一个问题,如果失去了这言为编程个最优化原理的支持,就不可能用动态规划方法计算。
这个“最优化说明,其他编程语言编写方法相同,语句类似。
原理”如果用数学化一点的语言来描述的话,就是:假设为了解决某 :一:问题描述一优化问题,需要依次作出 n 个决策 D1,D2,,Dn,如若这个决策设有 N 个不相同的整数组成的数列,记为: 序列是最优的,对于任何一个整数 k,1 < k < n,不论前面 k 个决策是怎样的,以后的最优决策只取决于由前面决策所确定的当前状态,即 ()且 ?? a1 a2 an aiajij以后的决策 Dk+1,Dk+2,,Dn 也是最优的。
多阶段决策过程(multistepdecisionpr

多阶段决策过程(multistepdecisionpr (Shortest-paths )7.1 问题描述在一个带权无向或者有向图中,如果从图中某顶点(称源点)到达另顶点(称为终点)路径可能不止一条,如何找到一条路径使得沿此路径上各边上权值总和达到最小。
实际应用中,有把交通运输网络作为一个图,图中顶点表示城市,图中各边表示城市之间交通运输线。
边上权值就根据具体需要,可以用各种代价表示,比如路程,运费,时间。
同时,可以用有向图表示往返代价不一致。
计算机网络中,把网络结构看成带权图,路由选择时候采用固定路由算法其中有使用最短路径算法。
此外,最短路径算法还应用于电子导航中,根据已知地理网络,得出合适航线;应用于电力、通讯等各种管网、管线布局设计,城市规划等等。
由于应用需要,最短路径算法问题成为计算机科学、运筹学、地理信息系统和交通诱导、导航系统等领域研究一个热点。
在最短路径问题中,给出是一个带权有向图G =(V , E),加权函数w:E R 为从边到实型权值映射。
路径p=(v0,v1,v2,…,vk)权是指组成边所有权值之和:w(p)=∑w(vi-1,vi) i=1—k;定义从u 到v 间最短路径权为:()(){}⎩⎨⎧∞−→−=otherelse v u v u p w v u p :min ,存在一条通路到若从δ 从顶点u 到v 最短路径定义为权w(p)=&(u,v)任何路径.不带权图最短路径问题是一个特例,可将图视为没条边权值均为1带权图。
两种最常见最短路径问题:从某个源点到其余各顶点最短路径每对顶点间最短路径7.2 松弛技术Relaxation在后面介绍几个算法中都用到了松弛技术,现在就来看看松弛技术。
对于每个顶点v∈V,都设置一个属性d[v],用来描述从源点s到v最短路径上权值上界,称为最短路径估计(shortest-path estimate)。
我们用下面Θ(V)时间过程来对最短路径估计和前趋进行初始化。
多阶段决策过程

动态规划多阶段决策过程(multistep decision process )是指这样一类特殊的活动过程,过程可以按时间顺序分解成若干个相互联系的阶段,在每一个阶段都需要做出决策,全部过程的决策是一个决策序列。
动态规划(dynamic programming )算法是解决多阶段决策过程最优化问题的一种常用方法,难度比较大,技巧性也很强。
利用动态规划算法,可以优雅而高效地解决很多贪婪算法或分治算法不能解决的问题。
动态规划算法的基本思想是:将待求解的问题分解成若干个相互联系的子问题,先求解子问题,然后从这些子问题的解得到原问题的解;对于重复出现的子问题,只在第一次遇到的时候对它进行求解,并把答案保存起来,让以后再次遇到时直接引用答案,不必重新求解。
动态规划算法将问题的解决方案视为一系列决策的结果,与贪婪算法不同的是,在贪婪算法中,每采用一次贪婪准则,便做出一个不可撤回的决策;而在动态规划算法中,还要考察每个最优决策序列中是否包含一个最优决策子序列,即问题是否具有最优子结构性质。
动态规划算法的有效性依赖于待求解问题本身具有的两个重要性质:最优子结构性质和子问题重叠性质。
1 、最优子结构性质。
如果问题的最优解所包含的子问题的解也是最优的,我们就称该问题具有最优子结构性质(即满足最优化原理)。
最优子结构性质为动态规划算法解决问题提供了重要线索。
2 、子问题重叠性质。
子问题重叠性质是指在用递归算法自顶向下对问题进行求解时,每次产生的子问题并不总是新问题,有些子问题会被重复计算多次。
动态规划算法正是利用了这种子问题的重叠性质,对每一个子问题只计算一次,然后将其计算结果保存在一个表格中,当再次需要计算已经计算过的子问题时,只是在表格中简单地查看一下结果,从而获得较高的解题效率。
当我们已经确定待解决的问题需要用动态规划算法求解时,通常可以按照以下步骤设计动态规划算法:1 、分析问题的最优解,找出最优解的性质,并刻画其结构特征;2 、递归地定义最优值;3 、采用自底向上的方式计算问题的最优值;4 、根据计算最优值时得到的信息,构造最优解。
1.多阶段决策过程2.Bellman最优性原理3.动态规划的数学描述

2019/3/8
例7-3的求解
依此类推可求得:
*u3=S3 f3 (S3 ) = 17.5S3 *u2= 0 f2 (S2 ) = 20.8S2 *u1= 0 f1 (S1 ) = 23.7S1 =23700(件)
计算结果表明,前两年应把全部完好设备均投入低负荷生产; 而后三年应把全部完好设备均投入高负荷生产。这样所得的产 量最高,其最高产量为23700件。各年年初的状态为: S1 =
[例7-2]: 第119页 某公司拟将500万元的资本投入所属的甲、乙、丙 三个工厂,各工厂获得投资后年利润将有相应的增 长,一定投资下的利润增长额如下表所示,试确定 最优的投资分配方案,使公司年利润增长额最大。 投资(百万元) 1 2 3 4 5 甲 0.3 0.7 0.9 1.2 1.3 乙 0.5 1.0 1.1 1.1 1.1 丙 0.4 0.6 1.1 1.2 1.2
2019/3/8
阶段指标函数
阶段指标函数是对应某一阶段决 策的效率度量,用gk=rk (Sk, dk)来 加以表示。
2019/3/8
过程指标函数
过程指标函数是用来衡量所实现过程优劣的数量 指标,它是定义在全过程(策略)或后续子过程 (子策略)上的数量函数。过程指标函数常用 Rk,,N 来表示,构成动态规划的过程指标函数应具 有可分性并满足递推关系,即Rk,,N 可表示为rk 和 Rk+1,N二者的函数。最常见的过程指标函数与阶段 指标函数的关系有如下两种: 1.过程指标函数是阶段指标函数的和,此时 Rk,,N =rk +Rk+1,N 2.过程指标函数是阶段指标函数的积,此时 Rk,,N =rk Rk+1,N
2019/3/8
例7-2的求解
多阶段决策问题

多阶段决策问题
应用条件应用条件
从起始点到终点最短距离
最优子结构性质:任何最短路径的子路径都是相对于子路径的始点和终点
的最短路径
子问题重叠性质:任何中间节点到终点的距离都被前面的节点多次使用基本思想步骤
常见的实现形式搜索,备忘录,递推
搜索,备忘录,递推搜索,备忘录,递推
搜索,备忘录,递推0-1背包问题(1)
0-1
最长子序列(
最长子序列(最长子序列(最长子序列(邮局问题(
邮局问题(
状态选择
状态选择时间与空间的权衡学习动态规划的方法。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第七部分最短路径
(Shortest-paths)
7.1 问题描述
在一个带权的无向或者有向图中,如果从图中某顶点(称源点)到达另顶点(称为终点)的路径可能不止一条,如何找到一条路径使得沿此路径上各边上的权值总和达到最小。
实际应用中,有把交通运输网络作为一个图,图中顶点表示城市,图中各边表示城市之间的交通运输线。
边上的权值就根据具体需要,可以用各种代价表示,比如路程,运费,时间。
同时,可以用有向图表示往返代价的不一致。
计算机网络中,把网络结构看成带权图,路由选择的时候采用的固定路由算法其中有使用最短路径算法。
此外,最短路径算法还应用于电子导航中,根据已知地理网络,得出合适的航线;应用于电力、通讯等各种管网、管线的布局设计,城市规划等等。
由于应用的需要,最短路径算法问题成为计算机科学、运筹学、地理信息系统和交通诱导、导航系统等领域研究的一个热点。
在最短路径问题中,给出的是一个带权有向图G=(V, E),加权函数w:E R 为从边到实型权值的映射。
路径p=(v0,v1,v2,…,vk)的权是指组成边的所有权值之和:
w(p)=∑w(vi-1,vi) i=1—k;
定义从u到v间的最短路径的权为:
从顶点u到v的最短路径定义为权w(p)=&(u,v)的任何路径.
不带权图的最短路径问题是一个特例,可将图视为没条边的权值均为1的带权图。
两种最常见的最短路径问题:
●从某个源点到其余各顶点的最短路径
●每对顶点间的最短路径
7.2 松弛技术Relaxation
在后面介绍的几个算法中都用到了松弛技术,现在就来看看松弛技术。
对于每个顶点v∈V,都设置一个属性d[v],用来描述从源点s到v的最短路径上权值的上界,称为最短路径估计(shortest-path estimate)。
我们用下面的Θ(V)时间的过程来对最短路径估计和前趋进行初始化。
INITIALIZE-SINGLE-SOURCE(G,s)
1 for each vertex v∈V[G]
2 do d[v]←∞
3 π[v]←NIL
4 d[s]←0
经过初始化以后,对所有v∈V,π[v]=NIL,对v∈V-{s},有d[s]=0以及d[v]=∞。
在松弛一条边(u,v)的过程中,要测试是否可以通过u,对迄今找到的v的最短路径进行改进;如果可以改进的话,则更新d[v]和π[v]。
一次松弛操作可以减小最短路径估计的值d[v],并更新v的前趋域π[v]。
下面的伪代码对边(u,v)进行了一步松弛操作。
RELAX(u, v, w)
1 if(d[v]>d[u]+w(u,v))
2 then d[v]←d[u]+w(u,v)
3 π[v]←u
在Bellman-Ford algorithm和Dijkstra’s algorithm都会调用到INITIALIZE-SINGLE-SOURCE(G,s),然后重复对边进行松弛的过程。
另外松弛是改变最短路径和前趋的唯一方式,在两个算法之间的区别在于对每条边进行的松弛操作的次数,
以及对边执行松弛操作的次序不同。
在Dijkstra’s algorithm以及关于有向无回路图的最短路径算法中,对每条边执行情况一次松弛操作。
而在Bellman-Ford算法中,对每条边要执行多次松弛操作。
7.3 Bellman-Ford algorithm
思想:运用松弛技术,对每一个结点v∈V,逐步减少从源s到v的最短路径的权的估计值d[v],直至其达到实际最短路径的权δ(s,v)。
算法返回布尔值TURE当且仅当图中没有源结点可达的负权回路。
优点:解决更一般情况的单源最短路径问题。
且边的权值可以为负,可检测出图中是否存在一个从源结点可达的负权回路,如果存在负权回路则无解;否则将产生最短路径及其权。
BELLMAN-FORD(G,w,s)
1 INITIALIZE-SINGLE-SOURCE(G,s)
2 for i✍1 to |V[G]|-1
3 do for each edge(u,v)∈E[G]
4 do RELAX(u,v,w)
5 for each edge(u,v) ∈E[G]
6 do if d[v]>d[u]+w(u,v)
7 then return false;
8 return true
引理 7.3.1 设为带权有向图,其源点为s,权函数为w:E✍R,并且假定G中不包含从s点可达的负权回路。
那么BELLMAN-FORD第2—4行循环的|V|-1次迭代后,对任何s可达的顶点v,有d[v]=∮(s,v)。
推论:设G=(V,E)为带权有向图,源顶点为s,加权函数为w:E✍R,对每个顶点v(v ∈V),从s到v存在一条通路,当且仅当对G运行BELLMAN-FORD(G,w,s)算法,算法终止时,有d[v]<∞。
定理:设G=(V,E)为带权有向图,源顶点为s,加权函数为w:E✍R,对该图运行BELLMAN-FORD(G,w,s)算法,若G不包含s可达的负权回路,则算法返回TRUE,对所有顶点v(v∈V),有d[v]=∮(s,v)成立。
前趋子图G是以s为根的最短路径树。
如果G包含从s可达的负权回路,则算法返回FALSE。
7.4Dijkstra’s algorithm
目的:解决有向加权图的最短路径问题。
条件:该图的所有边的权值非负。
算法思想:设置一个结点集合S,从源点s到集合中结点的最终最短路径的权均已确定。
算法反复挑选出其最短路径估计为最小的结点u∈V-S,把u插入到集合S中,并对离开u的所有边进行松弛。
Dijkstra算法总是在集合V-S中选择“最近”的结点插入集合S中,它使用了贪心策略。
Dijkstra(G,w,s)
Init-Singlesource(G,s)
s = empty
Q = V[G]
while ( Q != empty)
do u = extract-min(Q)
s = s and {u}
for 每个顶点v属于Adj[u]
do Relax(u,v,w)
Dijkstra执行过程:
定理7.1:Dijkstra算法的正确性证明
证明:将证明对每一结点u属于V,当u被插入集合S时有d[u]=Q(s,u)成立,且此后该等式一直保持成立。
设u为插入集合S中的第一个满足d[u]!=Q(s,u)的结点。
可知u!=s,可知u被插入集合S前S!=空。
从s到u必存在某条通路,否则
d[u]=Q(s,u)=inf,与
d[u]!=Q(s,u)矛盾。
因为存在一条通路,所以存在一条最短路p。
路径p联结集合S中的结点S
到V-S的结点u。
考察沿路径p的第一个属于V-S的结点y。
设x属于V是y的先
辈。
路径p可以分解为s~p->x和y~p2->u。
(若第一个点为u,则d[u]=Q(s,u),已得证)
因为s到u的最短路径上y出现在y之前且所有边的权均为非负,我们有
Q(s,y)<=Q(s,u),因而d[y] = Q(s,y) <= Q(s,u) <=d[u],但因为在第5行选择u 时结点u和y都属于V-S,所以有d[u]<=d[y]。
因此d[u]=d[y]。
最后得出结论d[u]=Q(s,u),这与我们对u的假设矛盾。
Dijkstra算法效率:若用线性数组实现优先队列:每次Extract_Min为O(v),存在V次,则为O(v^2)。
for中有E次迭代。
所以整个算法运行时间O(V^2)。
稀疏图用二叉堆比较合适。
Extract_Min需要O(lgv),建立需要O(V)。
更改权值用Decrease_key。
总时间为O((V+E)lgV)。
如果用斐波那契堆可以进一步提高效率至O(VlgV+E)。
7.5总结
根据各种教材介绍,还有几种经典的算法,所有顶点之间的最短路径(Floyed 算法)、特定两个顶点之间的最短路径(A*算法)等。
在上述介绍的算法,当减低问题规模时,为了降低算法的时间复杂度,应该想办法缩小搜索范围。
而缩小搜索范围,都用到了一个思想——尽可能的向接近最后结果的方向搜索,这就是贪婪算法的应用。
比如Dijkstra算法总是在V-S中选择“最轻”或“最近”的顶点插入到集合S中,所以我们说它用了贪心策略。
两种算法中用到的松弛技术就是通过缩小最短路径的估计值,尽可能的向接近最后结果的方向搜索。