问题标签 [shortest-path]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - A* 实现总是返回相同的值
我似乎要么失去理智,要么错误地实现了 A* 算法:
下面是我的代码,似乎无论我输入什么值,它总是会返回 360。我在这里遗漏了一些关键信息吗?同样在有人问是之前,这与我收到的机器学习作业有关。
公共类 A_Star {
}
和
公共类 SearchNode {
public SearchNode(int cost, int xCoordinate,int yCoordinate){
this.cost=cost;
this.xCoordinate =xCoordinate;
this.yCoordinate = yCoordinate;
}
public int getCost() { 返回成本;}
}
algorithm - dijkstras 算法是否按顺序放松最短路径的边缘?
在“算法简介,第 3 版”练习 24.3-5 中想要一个例子说明这是错误的(并不总是正确的)。那可能吗?在我看来,这是不可能的,因为在已经确定了到当前顶点的路径时,每条边都会放松。
一个字一个字地:
N. 教授声称拥有 Dijkstra 算法正确性的证明。他声称 Dijkstra 的算法按照它们在路径上出现的顺序松弛了图中每条最短路径的边,因此路径松弛特性适用于从源可到达的每个顶点。证明教授错误地构造了一个有向图,Dijkstra 的算法可以针对该有向图放宽最短路径的边缘无序。
javascript - Google Maps V3 中没有设定目的地的最短路线?
所以我只是在学习 javascript 来弄乱 Google Maps API。我想知道是否有人对我遇到的这个问题有一个优雅的解决方案。
Google Maps 路线请求必须包含三项内容(起点、目的地和 travelMode)。我的 travelMode 将永远是 DRIVING。原点将始终是用户所在的任何地方。
但是,目的地需要有所不同。我有几个航点,用户将访问,并希望根据选择的航点和用户的位置提供最短的行程,在其中一个航点结束路线(例如:ABC 或 ACB,但总是 Axx. ..X)。
除了计算每条可能的路径并查看哪条路径最短(或时间,或我正在评估的任何内容)之外,还有其他可能的方法吗?看起来这将非常昂贵(O(n!))。
编辑:将建议的 optimizeWaypoints 标志设置为 true,这将成为 O(n) 问题而不是 O(n!),但现在我遇到了在太短的时间内发出太多请求的问题。
algorithm - 使用斐波那契堆,是否可以/容易表示邻居以及最小距离
我正在尝试设计一个带有斐波那契堆的 dijkstras 实现。我想了解的是,除了 O(logn) 中的最小距离(带删除)之外,是否可以表示任何给定节点的邻居?或者这是否违反了斐波那契堆结构?否则我将不得不建立一个邻居列表以及一个斐波那契堆。
algorithm - Dijkstra vs. Floyd-Warshall:在所有节点对上寻找最优路径
我正在阅读 Dijkstra 算法和 Floyd-Warshall 算法。我知道 Dijkstra 找到了从一个节点到所有其他节点的最佳路线,而 Floyd-Warshall 找到了所有节点配对的最佳路线。
我的问题是,如果我在每个节点上运行 Dijkstra 的算法以找到所有配对之间的最佳路线,它会比 Floyd 的算法更有效。
Dijkstra 的运行时间为 O(E + VlogV),其中 Floyd 的运行时间为 O(V 3 )。如果 Dijkstra 失败,在这种情况下它的运行时间是多少?谢谢!
prolog - 从开放街道地图项目的序言中的数据库中的事实创建谓词
我从 open streetmap 项目下载了一些事实,你可以在这里下载http://www.mediafire.com/?15pttpp847ld71x 我试图提出的这个程序将帮助用户获得从一个地方到另一个地方的行程,提供最短的路线,有人可以告诉我如何实现 Dijkstra 的算法来搜索路径,我也有这个谓词 -compute_path(User, Start , End, PathNodes) 其中 User 将与 amsterdam.pl 中的用户值保持一致 我正在尝试添加扩展名,也许您可以使用它,例如以下内容: .Tell Prolog 我是哪种用户(例如行人,骑自行车的人,汽车司机, ...)。那么 Prolog 在构建适当的路由时会考虑这些信息。例如,骑自行车的人不能使用高速公路。· 可以询问出发地和到达地之间的行程,明确访问多个用户指定的地点(即用户可以指定他想从A 经B 到C)。· 可以向 Prolog 询问诸如“我什么时候必须离开 A 点,才能在上午 10:00 到达阿姆斯特丹 B 点?”等信息。· 使用您刚刚制作的人类语言界面,以便用户可以使用以下输入与 shell 进行交互: o 我如何从阿姆斯特丹的“NameA”到“NameB”,如果您能够的话,请回复我为了实现这一点,我将非常感激,我是 Prolog 的新手,并试图成为一个快速学习者。
这是我试图想出的代码
prolog - 如何在 prolog db 中定义事实以规划地铁路线?
好吧,我无法决定我的事实应该如何在 prolog 数据库中显示......我的任务是编写谓词,它将为您提供 2 个地铁站之间的最短路径我有解决这个问题的想法,但困扰我的是如何有效地表示线路上的车站,所以如果您有想法和要分享的内容,请做:) 和 thx
algorithm - 最短路径算法有哪些应用?
可以通过多种算法(Dikstra、A-star 等)找到图中节点之间的最短路径。
但是这个问题有什么应用呢?(我已经知道很多了,但我想看到更多的例子)。
请只提供一份申请/答案!解释应用程序,以及如何将其转换为最短路径问题。
prolog - 在序言中使用广度优先搜索返回最短路径
我想在双向图中的序言中找到从 A 站到 B 站的最短路线(如果 A 连接到 B,而不是 B 连接到 A),该图在分支上没有权重。问题是这样发布的
始发站。
终点站。
路径最短的所有站点的路径列表。图中任意两个直接相连的站点之间的距离相等。事实上,基地是这样的:
地铁线是直接连接两个车站的线路数。如果第 2 和第 4 个参数相同,则站直接连接。
编辑:我试图解决这个问题,我发现如果使用 BFS 会更快。
这是我写的解决方案:
?-应该是到目标节点
的路径列表唯一的问题是我不知道如何返回到目标节点的路径。
谢谢在前面。
python - 调整到最短路径算法
对于大学的数据结构和算法课程,我们必须实现论文中提出的算法。论文可以在这里找到。所以我完全实现了算法,但仍然存在一些错误(但这并不是我问这个问题的真正原因,如果你想看看我到目前为止是如何实现的,你可以在这里找到它)
我在 Stackoverflow 上提问的真正原因是作业的第二部分:我们必须努力让算法变得更好。我想到了几种方法,但它们在理论上听起来都不错,但在实践中它们并不会真正做得很好:
- 在源节点和结束节点之间画一条线,搜索最靠近该线中间的节点,并将“路径”递归地划分为 2。如果单个 Dijkstra 进行计算,基本情况将是一个较小的图。这并不是对当前算法的真正调整,但有些人认为很明显这不会给出最佳解决方案。
- 尝试通过为指向末端节点的边赋予更高的优先级来给算法一些方向感。这也不会是最佳的..
所以现在我完全没有想法,希望这里有人能给我一点提示,以便可能进行调整。它实际上并不需要改进算法,我认为他们要求我们这样做的第一个原因是,我们不只是在不知道其背后是什么的情况下实现论文中的算法。
(如果 Stackoverflow 不适合问这个问题,我很抱歉 :))
算法的简短描述:算法尝试选择哪些节点看起来很有希望。通过承诺,我的意思是他们很有可能躺在最短的路径上。一个节点的前景如何由它的“范围”表示。路径上顶点的范围是它到起点和终点的距离中的最小值。图中一个顶点的范围是该顶点在所有最短路径上的最大范围。为了最终确定一个节点是否被添加到 Dijkstra 算法中的优先级队列中,添加了一个 test() 函数。
危害德怪异