最短路问题及其应用
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
路线优化技术通常采用图论中的“图”来表示路网,船舶通道路网与图论的路网对应关系为:结点———通道的交叉口或断头路的终点;边———两结点之间的路段称为边,若规定了路段的方向,则称为弧;边(弧)的权———路段某个或某些特征属性的量化表示。
路权的标定决定了最短的路径搜索依据,也就是搜索指标。根据不同的最优目标,可以选择不同的路段属性。由于舰船上除了平面上的通道之外还有垂直方向的楼梯(或直梯),如果以最短路程距离作为优化目标,路线的效率未必最高(距离最短未必耗时最少)。所以,以最短行程时间作为优化的目标,道路权重即为各路段的平均行程时间。
这样每一次迭代,得到 到一点 的最短距离,重复上述过程直到 。
Floyd算法的基本原理和实现方法为:如果一个矩阵 其中 表示 与 间的距离,若 与 间无路可通,则 为无穷大。 与 间的最短距离存在经过 与 间的 和不经过 两种情况,所以可以令 ,n(n为节点数)。检查 与 的值,在此, 与 分别为目前所知的 到 与 到 的最短距离,因此, 就是 到 经过 的最短距离。所以,若有 ,就表示从 出发经 再到 的距离要比原来的 到 距离短,自然把 到 的 重写成 。每当一个 搜索完, 就是目前 到 的最短距离。重复这一过程,最后当查完所有 时, 就为 到 的最短距离。
最短路径算法的选择与实现是通道路线设计的基础,最短路径算法是计算机科学与地理信息科学等领域的研究热点,很多网络相关问题均可纳入最短路径问题的范畴之中。经典的图论与不断发展完善的计算机数据结构及算法的有效结合使得新的最短路径算法不断涌现。
2最短路
2.1最短路的定义
对最短路问题的研究早在上个世纪60年代以前就卓有成效了,其中对赋权图 的有效算法是由荷兰著名计算机专家E.W.Dijkstra在1959年首次提出的,该算法能够解决两指定点间的最短路,也可以求解图G中一特定点到其它各顶点的最短路。后来海斯在Dijkstra算法的基础之上提出了海斯算法。但这两种算法都不能解决含有负权的图的最短路问题。因此由Ford提出了Ford算法,它能有效地解决含有负权的最短路问题。但在现实生活中,我们所遇到的问题大都不含负权,所以我们在 的情况下选择Dijkstra算法。
第三步对所有修正后的 求出其最小者 。其对应的点 是 所能一步到达的点 中最近的一个,由于所有 。因此任何从其它点 中转而到达 的通路上的距离都大于 直接到 的距离 ,因此 就是 到 的最短距离,所以在算法中令 并从s中删去 ,若k=n则 就是 到 的最短路线,计算结束。否则令 回到第二步,继续运算,直到k=n为止。
3最短路的应用
3.1在运输网络中的应用④
设6个城市 之间的一个公路网(图1)每条公路为图中的边,边上的权数表示该段公路的长度(单位:百公里),设你处在城市 ,那么从 到 应选择哪一路径使你的费用最省。
解:首先设每百公里所用费用相同,求 到 的费用最少,既求 到 的最短路线。为了方便计算,先作出该网络的距离矩阵,如下:
最短路问题及其应用
顾碧芬06200103
摘要:主要介绍最短路的两种算法,迪杰斯特拉(Dijkstra)及弗罗伊德(Floyd)算法。以及这两种算法在实际问题中的应用和比较。
1引言
最短路问题是图论理论的一个经典问题。寻找最短路径就是在指定网络中两结点间找一条距离最小的路。最短路不仅仅指一般地理意义上的距离最短,还可以引申到其它的度量,如时间、费用、线路容量等。
在求解网络图上节点间最短路径的方法中,目前国内外一致公认的较好算法有迪杰斯特拉(Dijkstra)及弗罗伊德(Floyd)算法。这两种算法中,网络被抽象为一个图论中定义的有向或无向图,并利用图的节点邻接矩阵记录点间的关联信息。在进行图的遍历以搜索最短路径时,以该矩阵为基础不断进行目标值的最小性判别,直到获得最后的优化路径。
Dijkstra算法基本步骤③:
令:
并令:
1、对 ,求 。
2、求 得 ,使 =
令
3、若 则已找到 到 的最短路距离 ,否则令 从 中删去 转1
这样经过有限次迭代则可以求出 到 的最短路线,可以用一个流程图来表示:
第一步先取 意即 到 的距离为0,而 是对 所赋的初值。
第二步利用 已知,根据 对 进行修正。
Dijkstra算法是图论中确定最短路的基本方法,也是其它算法的基础。为了求出赋权图中任意两结点之间的最短路径,通常采用两种方法。一种方法是每次以一个结点为源点,重复执行Dijkstra算法n次。另一种方法是由Floyd于1962年提出的Floyd算法,其时间复杂度为 ,虽然与重复执行Dijkstra算法n次的时间复杂度相同,但其形式上略为简单,且实际运算效果要好于前者。
定义①1若图G=G(V,E)中各边e都赋有一个实数W(e),称为边e的权,则称这种图为赋权图,记为G=G(V,E,W)。
定义②2若图G=G(V,E)是赋权图且 , ,若u是 到 的路 的权,则称 为 的长,长最小的 到 的路 称为最短路。
若要找出从 到 的通路 ,使全长最短,即 。
2.2最短路问题算法的基本思想及基本步骤
最短距离为12,即从城市 到城市 的距离最短,即费用最省。
3.2在舰船通道路线设计中的应用⑤
利用图论的经典理论和人群流量理论研究舰船人员通道路线的优化设计及最优线路选择。首先介绍图论相关理论,对船舶通道进行路网抽象,建立网络图,然后根据人群流动的相关理论,选取不同拥挤情况下的人员移动速度,从而确定各条路段(包括楼梯)的行程时间。以行程时间作为通道网络的路权,得出路阻矩阵以选择一对起点/终点的最短时间路线为目标,建立最短路径问题的数学模型,利用经典的Floyd算法确定最短路径。将此方法应用于某舰艇多层甲板的通道网络中,计算结果并进行讨论,最后在此研究的基础上对通道设计相关问题的深化和拓展进行了探讨和总结,并提出设想。
(0)设 ,
(1)第一次迭代
①计算 如下
②取 ,令
③由于 ,令 转(1)
第二次迭代:
①算 如下
②取 令
③由于 ,令 转(1)
第三次迭代:
①算 如下
②取
③由于 ,令 转(1)
第四次迭代:
①算 如下
②取
③由于 ,令 转(1)
第五次迭代:
①算 如下
②由于 。因此已找到 到 的最短距离为12。计算Байду номын сангаас束。
找最短路线:逆向追踪得
路权的标定决定了最短的路径搜索依据,也就是搜索指标。根据不同的最优目标,可以选择不同的路段属性。由于舰船上除了平面上的通道之外还有垂直方向的楼梯(或直梯),如果以最短路程距离作为优化目标,路线的效率未必最高(距离最短未必耗时最少)。所以,以最短行程时间作为优化的目标,道路权重即为各路段的平均行程时间。
这样每一次迭代,得到 到一点 的最短距离,重复上述过程直到 。
Floyd算法的基本原理和实现方法为:如果一个矩阵 其中 表示 与 间的距离,若 与 间无路可通,则 为无穷大。 与 间的最短距离存在经过 与 间的 和不经过 两种情况,所以可以令 ,n(n为节点数)。检查 与 的值,在此, 与 分别为目前所知的 到 与 到 的最短距离,因此, 就是 到 经过 的最短距离。所以,若有 ,就表示从 出发经 再到 的距离要比原来的 到 距离短,自然把 到 的 重写成 。每当一个 搜索完, 就是目前 到 的最短距离。重复这一过程,最后当查完所有 时, 就为 到 的最短距离。
最短路径算法的选择与实现是通道路线设计的基础,最短路径算法是计算机科学与地理信息科学等领域的研究热点,很多网络相关问题均可纳入最短路径问题的范畴之中。经典的图论与不断发展完善的计算机数据结构及算法的有效结合使得新的最短路径算法不断涌现。
2最短路
2.1最短路的定义
对最短路问题的研究早在上个世纪60年代以前就卓有成效了,其中对赋权图 的有效算法是由荷兰著名计算机专家E.W.Dijkstra在1959年首次提出的,该算法能够解决两指定点间的最短路,也可以求解图G中一特定点到其它各顶点的最短路。后来海斯在Dijkstra算法的基础之上提出了海斯算法。但这两种算法都不能解决含有负权的图的最短路问题。因此由Ford提出了Ford算法,它能有效地解决含有负权的最短路问题。但在现实生活中,我们所遇到的问题大都不含负权,所以我们在 的情况下选择Dijkstra算法。
第三步对所有修正后的 求出其最小者 。其对应的点 是 所能一步到达的点 中最近的一个,由于所有 。因此任何从其它点 中转而到达 的通路上的距离都大于 直接到 的距离 ,因此 就是 到 的最短距离,所以在算法中令 并从s中删去 ,若k=n则 就是 到 的最短路线,计算结束。否则令 回到第二步,继续运算,直到k=n为止。
3最短路的应用
3.1在运输网络中的应用④
设6个城市 之间的一个公路网(图1)每条公路为图中的边,边上的权数表示该段公路的长度(单位:百公里),设你处在城市 ,那么从 到 应选择哪一路径使你的费用最省。
解:首先设每百公里所用费用相同,求 到 的费用最少,既求 到 的最短路线。为了方便计算,先作出该网络的距离矩阵,如下:
最短路问题及其应用
顾碧芬06200103
摘要:主要介绍最短路的两种算法,迪杰斯特拉(Dijkstra)及弗罗伊德(Floyd)算法。以及这两种算法在实际问题中的应用和比较。
1引言
最短路问题是图论理论的一个经典问题。寻找最短路径就是在指定网络中两结点间找一条距离最小的路。最短路不仅仅指一般地理意义上的距离最短,还可以引申到其它的度量,如时间、费用、线路容量等。
在求解网络图上节点间最短路径的方法中,目前国内外一致公认的较好算法有迪杰斯特拉(Dijkstra)及弗罗伊德(Floyd)算法。这两种算法中,网络被抽象为一个图论中定义的有向或无向图,并利用图的节点邻接矩阵记录点间的关联信息。在进行图的遍历以搜索最短路径时,以该矩阵为基础不断进行目标值的最小性判别,直到获得最后的优化路径。
Dijkstra算法基本步骤③:
令:
并令:
1、对 ,求 。
2、求 得 ,使 =
令
3、若 则已找到 到 的最短路距离 ,否则令 从 中删去 转1
这样经过有限次迭代则可以求出 到 的最短路线,可以用一个流程图来表示:
第一步先取 意即 到 的距离为0,而 是对 所赋的初值。
第二步利用 已知,根据 对 进行修正。
Dijkstra算法是图论中确定最短路的基本方法,也是其它算法的基础。为了求出赋权图中任意两结点之间的最短路径,通常采用两种方法。一种方法是每次以一个结点为源点,重复执行Dijkstra算法n次。另一种方法是由Floyd于1962年提出的Floyd算法,其时间复杂度为 ,虽然与重复执行Dijkstra算法n次的时间复杂度相同,但其形式上略为简单,且实际运算效果要好于前者。
定义①1若图G=G(V,E)中各边e都赋有一个实数W(e),称为边e的权,则称这种图为赋权图,记为G=G(V,E,W)。
定义②2若图G=G(V,E)是赋权图且 , ,若u是 到 的路 的权,则称 为 的长,长最小的 到 的路 称为最短路。
若要找出从 到 的通路 ,使全长最短,即 。
2.2最短路问题算法的基本思想及基本步骤
最短距离为12,即从城市 到城市 的距离最短,即费用最省。
3.2在舰船通道路线设计中的应用⑤
利用图论的经典理论和人群流量理论研究舰船人员通道路线的优化设计及最优线路选择。首先介绍图论相关理论,对船舶通道进行路网抽象,建立网络图,然后根据人群流动的相关理论,选取不同拥挤情况下的人员移动速度,从而确定各条路段(包括楼梯)的行程时间。以行程时间作为通道网络的路权,得出路阻矩阵以选择一对起点/终点的最短时间路线为目标,建立最短路径问题的数学模型,利用经典的Floyd算法确定最短路径。将此方法应用于某舰艇多层甲板的通道网络中,计算结果并进行讨论,最后在此研究的基础上对通道设计相关问题的深化和拓展进行了探讨和总结,并提出设想。
(0)设 ,
(1)第一次迭代
①计算 如下
②取 ,令
③由于 ,令 转(1)
第二次迭代:
①算 如下
②取 令
③由于 ,令 转(1)
第三次迭代:
①算 如下
②取
③由于 ,令 转(1)
第四次迭代:
①算 如下
②取
③由于 ,令 转(1)
第五次迭代:
①算 如下
②由于 。因此已找到 到 的最短距离为12。计算Байду номын сангаас束。
找最短路线:逆向追踪得