多阶段决策过程multistepdecisionpr

合集下载

动态规划方面的教案

动态规划方面的教案
3
1.多阶段决策过程的最优化
•最优策略:
若对应于一个策略,可以由一个量化的 指标来确定这个策略所对应的活动过程 的效果,那么不同的策略就有各自的效 果。在所有可供选择的策略中,对应效 果最好的策略称为最优策略。把一个问 题划分成若干个相互联系的阶段选取其 最优策略,这类问题就是多阶段决策问 题。
4
在实际问题中,由于在各个阶段可供选择的决策有 许多个,因此,它们的不同组合就构成了许多可供 选择的决策序列(策略),由它们组成的集合,称之
允许策略集合,记作P1,n ,从允许策略集中,找出
具有最优效果的策略称为最优策略。 24
2.动态规划的基本概念
(五)状态转移方程
系统在阶段k处于状态sk,执行决策uk(sk)的结
想法指导下,所取决策必是v1 →v3 →v5 → v8 → v10 ,全程长度是20;显然,这种方法
的结果常是错误的.
16
1.多阶段决策过程的最优化
第三种方法是动态规划方法。动态规划 方法寻求该最短路问题的基本思想是,首先 将问题划分为4个阶段,每次的选择总是综合 后继过程的一并最优进行考虑,在各段所有 可能状态的最优后继过程都已求得的情况下, 全程的最优路线便也随之得到。
为了找出所有可能状态的最优后继过程, 动态规划方法总是从过程的最后阶段开始考 虑,然后逆着实际过程发展的顺序,逐段向 前递推计算直至始点。
17
1.多阶段决策过程的最优化
结论: 全枚举法虽可找出最优方案,但不是个好算法; 局部最优法则完全是个错误方法; 动态规划方法属较科学有效的算法:它的基本思想是, 把一个比较复杂的问题分解为一系列同类型的更易求 解的子问题,便于应用计算机。整个求解过程分为两 个阶段,先按整体最优的思想逆序地求出各个子问题 中所有可能状态的最优决策与最优路线值,然后再顺 序地求出整个问题的最优策略和最优路线。计算过程 中,系统地删去了所有中间非最优的方案组合,从而 使计算工作量比穷举法大为减少。

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

多阶段决策和序贯决策教材(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、生活不会按你想要的方式进行,它会给你一段时间,让你孤独、迷茫又沉默忧郁。但如果靠这段时间跟自己独处,多看一本书,去做可以做的事,放下过去的人,等你度过低潮,那些独处的时光必定能照亮你的路,也是这些不堪陪你成熟。所以,现在没那么糟,看似生活对你的亏欠,其 实都是祝愿。

第5章动态规划

第5章动态规划
序列
2)动态规划
20世纪50年代初美国数学家R.E.Bellman等人在研究多阶段决策过 程的优化问题时,提出了著名的最优化原理(principle of optimality), 把多阶段过程转化为一系列单阶段问题,创立了解决这类过程优化问 题的新方法——动态规划。
动态规划(dynamic programming)是运筹学的一个分支,是求解 决策过程(decision process)最优化的数学方法。
2019/10/22
例5.2[0/1背包问题] KNAP(l,j,X)
目标函数: pi xi j
xi 0或1, pi 0, wi 0,1 i j
0/1背包问题:KNAP(1,n,M)
2019/10/22
最优性原理对0/1背包问题成立:
描述状态的变量称状态变量(state variable)。变量允许取值的范 围称允许状态集合(set of admissible states)。用xk表示第k阶段的 状态变量,它可以是一个数或一个向量。用Xk表示第k阶段的允许状 态集合。
状态变量简称为状态
2019/10/22
3)决策 当一个阶段的状态确定后,可以作出各种选择从
jk
的最短路径,则s到t的最短路径是
1
v v { t | vk1,jk1 k 1, jk1 k 1, jk∈1 Vk-1,1≤jk-1≤pk-1}中最短的那条路径。
若s,v2,v3,…,vi,…,vk-1,t是s到t的一条最短路径,vi是其中的一
个中间点,则s,v2,v3,…,vi和 vi,…,vk-1,t分别是由s到vi和vi到t的最
fi(X)=max{fi-1(X),fi-1(X-wi)+pi} 初始值:

第九章多阶段决策和序贯决策

第九章多阶段决策和序贯决策

第一步,画出决策树图。
-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)

多阶段决策过程(multistepdecisionpr

多阶段决策过程(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)时间过程来对最短路径估计和前趋进行初始化。

1.多阶段决策过程2.Bellman最优性原理3.动态规划的数学描述

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
最长子序列(
最长子序列(最长子序列(最长子序列(邮局问题(
邮局问题(
状态选择
状态选择时间与空间的权衡学习动态规划的方法。

多阶段决策过程

多阶段决策过程

动态规划多阶段决策过程(multistep decision process )是指这样一类特殊的活动过程,过程可以按时间顺序分解成若干个相互联系的阶段,在每一个阶段都需要做出决策,全部过程的决策是一个决策序列。

动态规划(dynamic programming )算法是解决多阶段决策过程最优化问题的一种常用方法,难度比较大,技巧性也很强。

利用动态规划算法,可以优雅而高效地解决很多贪婪算法或分治算法不能解决的问题。

动态规划算法的基本思想是:将待求解的问题分解成若干个相互联系的子问题,先求解子问题,然后从这些子问题的解得到原问题的解;对于重复出现的子问题,只在第一次遇到的时候对它进行求解,并把答案保存起来,让以后再次遇到时直接引用答案,不必重新求解。

动态规划算法将问题的解决方案视为一系列决策的结果,与贪婪算法不同的是,在贪婪算法中,每采用一次贪婪准则,便做出一个不可撤回的决策;而在动态规划算法中,还要考察每个最优决策序列中是否包含一个最优决策子序列,即问题是否具有最优子结构性质。

动态规划算法的有效性依赖于待求解问题本身具有的两个重要性质:最优子结构性质和子问题重叠性质。

1 、最优子结构性质。

如果问题的最优解所包含的子问题的解也是最优的,我们就称该问题具有最优子结构性质(即满足最优化原理)。

最优子结构性质为动态规划算法解决问题提供了重要线索。

2 、子问题重叠性质。

子问题重叠性质是指在用递归算法自顶向下对问题进行求解时,每次产生的子问题并不总是新问题,有些子问题会被重复计算多次。

动态规划算法正是利用了这种子问题的重叠性质,对每一个子问题只计算一次,然后将其计算结果保存在一个表格中,当再次需要计算已经计算过的子问题时,只是在表格中简单地查看一下结果,从而获得较高的解题效率。

当我们已经确定待解决的问题需要用动态规划算法求解时,通常可以按照以下步骤设计动态规划算法:1 、分析问题的最优解,找出最优解的性质,并刻画其结构特征;2 、递归地定义最优值;3 、采用自底向上的方式计算问题的最优值;4 、根据计算最优值时得到的信息,构造最优解。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

多阶段决策过程
m u l t i s t e p d e c i s i o n p
r
Revised as of 23 November 2020
第七部分 最短路径
(Shortest-paths )
7.1 问题描述
在一个带权的无向或者有向图中,如果从图中某顶点(称源点)到达另顶点(称为终点)的路径可能不止一条,如何找到一条路径使得沿此路径上各边上的权值总和达到最小。

实际应用中,有把交通运输网络作为一个图,图中顶点表示城市,图中各边表示城市之间的交通运输线。

边上的权值就根据具体需要,可以用各种代价表示,比如路程,运费,时间。

同时,可以用有向图表示往返代价的不一致。

计算机网络中,把网络结构看成带权图,路由选择的时候采用的固定路由算法其中有使用最短路径算法。

此外,最短路径算法还应用于电子导航中,根据已知地理网络,得出合适的航线;应用于电力、通讯等各种管网、管线的布局设计,城市规划等等。

由于应用的需要,最短路径算法问题成为计算机科学、运筹学、地理信息系统和交通诱导、导航系统等领域研究的一个热点。

在最短路径问题中,给出的是一个带权有向图G =(V , E ),加权函数w:ER 为从边到实型权值的映射。

路径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)时间的过程来对最短路径估计和前趋进行初始化。

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 i1 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:ER,并且假定G中不包含从s点可达的负权回路。

那么BELLMAN-FORD第2—4行循环的|V|-1次迭代后,对任何s可达的顶点v,有d[v]=∮(s,v)。

推论:设G=(V,E)为带权有向图,源顶点为s,加权函数为w:ER,对每个顶点v(v∈V),从s到v存在一条通路,当且仅当对G运行BELLMAN-FORD(G,w,s)算法,算法终止时,有d[v]<∞。

定理:设G=(V,E)为带权有向图,源顶点为s,加权函数为w:ER,对该图运行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 = emptyQ = V[G]while ( Q != empty) do u = extract-min(Q) s = s and {u} for 每个顶点v属于Adj[u] do Relax(u,v,w)
Dijkstra执行过程:
定理: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中,所以我们说它用了贪心策略。

两种算法中用到的松弛技术就是通过缩小最短路径的估计值,尽可能的向接近最后结果的方向搜索。

相关文档
最新文档