Dijkstra算法和A*算法的问题

作者&投稿:郜脉 (若有异议请与网页底部的电邮联系)
Dijkstra算法与A*算法~

理论上,这两种方法都是能够得到最短距离的。

路径不同,可能是得到了两条不同的一样长度的最短路径

A*算法不能同时求所有点,要有目标,比如选A8为目标。需要有一个估价函数h()来估计一个点到达目标点的代价下界,比如这里你可以选择与一个点相连的最小的边权值(这不精确,你可以自己设计h(),h()值越大越好,但不能大于一个点到目标的实际最小值)。另外每个点还有一个值f(),就相当于Dijkstra中的已经算出的的起点到达该点的花费。
然后A*算法中每次找f()+h()值最小的点进行扩展,可以证明这样的算法找到目标扩展的节点总数少于Dijkstra
极限情况下,如果h()函数设计的很差,每次都为0,你的算法就每次都找f()值最小的点进行扩展,就退化为Dijkstra,如果h()函数的值大一点,越大效率越高(当然不能大于实际值)。
你的图节点数太少了,多搞几个节点才能数出来,A*扩展的节点更少

理论上,这两种方法都是能够得到最短距离的。

路径不同,可能是得到了两条不同的一样长度的最短路径


路径搜索中常用的dijkstra算法是在图表中找到什么的方法?
Dijkstra算法是计算机科学中非常著名和重要的算法之一,主要用于解决图论中的单源最短路径问题。这里的“单源”指的是从一个指定的起始节点(或称为“源”节点)出发,找到到达图中所有其他节点的最短路径。这个算法的工作原理可以简述为:从源节点开始,逐步访问图中的邻近节点,并...

最短路径dijkstra算法
Dijkstra算法一般的表述通常有两种方式,一种用永久和临时标号方式,一种是用OPEN,CLOSE表的方式,这里均采用永久和临时标号的方式。注意该算法要求图中不存在负权边。将T中顶点按递增的次序加入到S中,保证:从源点V0到S中其他各顶点的长度都不大于从V0到T中任何顶点的最短路径长度。每个顶点对应一...

Dijkstra算法
Dijkstra(迪杰斯特拉)算法是典型的单源最短路径算法,用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。注意该算法要求图中不存在负权边。设G=(V,E)是一个带权有向图,把图中顶点集合V分成两组,第一组为已求出最短路径的顶点集合(用S表示...

dijkstra算法是什么?
Dijkstra算法是由荷兰计算机科学家狄克斯特拉(Dijkstra)于1959年提出的,因此又叫狄克斯特拉算法。是从一个顶点到其余各顶点的最短路径算法,解决的是有向图中最短路径问题。其基本原理是:每次新扩展一个距离最短的点,更新与其相邻的点的距离。当所有边权都为正时,由于不会存在一个距离更短的没扩展...

最短路径算法
最短路径的算法主要有三种:floyd算法、Dijkstra算法、Bellman-Ford(贝尔曼-福特)一、floyd算法 基本思想如下:从任意节点A到任意节点B的最短路径不外乎2种可能,1是直接从A到B,2是从A经过若干个节点X到B。所以,我们假设Dis(AB)为节点A到节点B的最短路径的距离,对于每一个节点X,我们检查Dis(AX...

图遍历算法之最短路径Dijkstra算法
Dijkstra算法,翻译作戴克斯特拉算法或迪杰斯特拉算法,于1956年由荷兰计算机科学家艾兹赫尔.戴克斯特拉提出,用于解决赋权有向图的 单源最短路径问题 。所谓单源最短路径问题是指确定起点,寻找该节点到图中任意节点的最短路径,算法可用于寻找两个城市中的最短路径或是解决著名的旅行商问题。问题描述 :...

最短路径四大算法
Dijkstra算法Dijkstra's Algorithm:Dijkstra算法用于求解单源最短路径问题,即从给定起点到其它所有节点的最短路径。它通过逐步扩展路径长度来不断确定当前距离起点最近的节点,并更新其它节点的距离值,直到找到所有节点的最短路径。贝尔曼福特算法Bellman-Ford Algorithm:贝尔曼-福特算法用于求解单源最短路径...

dijkstra算法是什么?
1、将源点加入堆,并调整堆。2、选出堆顶元素u(即代价最小的元素),从堆中删除,并对堆进行调整。3、处理与u相邻的,未被访问过的,满足三角不等式的顶点 1):若该点在堆里,更新距离,并调整该元素在堆中的位置。2):若该点不在堆里,加入堆,更新堆。4、若取到的u为终点,结束算法;...

路径规划常用得几种算法
Dijkstra算法: 贪心的舞者,它通过逐次选择与当前节点距离最近的子节点,像编织一张最短路径的网,每一次迭代都是路径长度的优化。A*算法则更为巧妙,它结合了实际距离(g(x))和对目标距离的估计(h(x)),引导搜索向目标点更近一步,提高搜索效率。D*算法则是反向与增量的巧妙结合,它从终点出发,...

简述dijkstra方法的基本思想
Dijkstra算法的输入包含了一个有权重的有向图G,以及G中的一个来源顶点S。我们以V表示G中所有顶点的集合。每一个图中的边,都是两个顶点所形成的有序元素对。(u,v)表示从顶点u到v有路径相连。我们以E所有边的集合,而边的权重则由权重函数w:E→[0,∞]定义。二、Dijkstra的原理 初始化时,S...

丛台区14723863527: Dijkstra算法和A*算法的问题
后杨正安: 理论上,这两种方法都是能够得到最短距离的. 路径不同,可能是得到了两条不同的一样长度的最短路径

丛台区14723863527: a*算法求最短路径和floyd还有dijsktra算法求最短路径的区别? -
后杨正安: A*算法是启发式搜索,适合点对点的最短路径,单源单汇的情况 Floyd是动态规划的一种,可以求出任意两点之间的最短路径 Dijkstra是贪婪算法的一种,求一点到其他所有点的最短路,即所谓的单源最短路算法 从时间复杂度来说 Floyd是O(N^3) Dijkstra是O(N^2) 而启发式搜索就不好说了……结果当然是一样的,都是最短路,但是适用情形和时空开销就不同了 举例来说,你做任意两点间最短路可以用N次Dijkstra或者1次Floyd,时间消耗一样,显然用后者,而如果你只用求两点间的,用Floyd就不合算了

丛台区14723863527: 数学最短路径问题最方便的解法是什么 -
后杨正安: 用于解决最短路径问题的算法被称做“最短路径算法” ,有时被简称作“路径算法” .最常用 的路径算法有: Dijkstra 算法、 A*算法、 SPFA 算法、 Bellman-Ford 算法和 Floyd-Warshall 算法, 本文主要介绍其中的三种. 最短路径问题是图论...

丛台区14723863527: 最短路径弗洛德算法怎么理解 -
后杨正安: Dijkstra算法,A*算法和D*算法 Dijkstra算法是典型最短路算法,用于计算一个节点到其他所有节点的最短路径.主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止.Dijkstra算法能得出最短路径的最优解,但由于它遍历计算的节点...

丛台区14723863527: 请教Dijkstra算法的时间复杂度 -
后杨正安: 行2--4的初始化对n个顶点进行,显然是O(n) 5--6行O(1) 7行n个顶点入队列O(n)8行--14行,从8行可以看出进行了n遍循环,每遍在第九行调用一次ExtractMin过程,ExtractMin过程需要搜寻邻接表,每一次需要搜寻整个数组,所以一次操作时间是O(n);11行到14行对节点u的邻接表中的边进行检查,总共有|E|次(总共.每条边最多检查一次),因此是O(E);合起来就是O(E+n*n) = O(n^2);以上合起来就是O(n)+O(1)+O(n)+O(n^2) == O(n^2).就这样

丛台区14723863527: 最短路径算法 -
后杨正安: 原发布者:萨sky简述几种常用的最短路径算法摘要:随着社会的发展,最短路径问题在现实生活中占据的地位越来越重要.求解这一类问题的方法有很多,包括Floyd算法、Dijkstra算法、Bellman-Ford算法、动态规划算法和智能优化算法.其...

丛台区14723863527: 迪杰斯克拉算法是怎样的? -
后杨正安: Dijkstra(迪杰斯特拉)算法是典型的单源最短路径算法,用于计算一个节点到其他所有节点的最短路径.主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止.Dijkstra算法是很有代表性的最短路径算法,在很多专业课程中都作为基本内容有详细的介绍,如数据结构,图论,运筹学等等.Dijkstra一般的表述通常有两种方式,一种用永久和临时标号方式,一种是用OPEN, CLOSE表的方式,这里均采用永久和临时标号的方式.注意该算法要求图中不存在负权边.

丛台区14723863527: dijakstra算法和分支限算法在解决单源最短路径问题的异同 -
后杨正安: 记dijakstra算法为D算法 D算法为贪心算法,每一步的选择为当前步的最优,复杂度为O(n*n) (又叫爬山法) 分支限界算法,每一步的扩散为当前耗散度的最优,复杂度为(没算) 都是A算法的极端情况(说错了哈,下面我的文字中的的分支限...

丛台区14723863527: dijikstra最短路径长度的算法 -
后杨正安: Dijkstra算法是典型最短路算法,用于计算一个节点到其他所有节点的最短路径.主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止.Dijkstra算法能得出最短路径的最优解,但由于它遍历计算的节点很多,所以效率低. Dijkstra算法...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网