对于数据结构&算法类在大学我们必须实现一个算法在一篇论文中介绍。该论文可以被发现here。 所以我fullly实现的算法,以静置一些错误(但不是真的为什么我问这个问题,如果你想看到我是如何实现它迄今为止,你可以找到它here)调整到最短路径算法
实我在Stackoverflow上提出问题的原因是作业的第二部分:我们必须尝试使算法更好。我想到了几个办法,但他们都在理论上听起来不错,但他们不会真正做好实践:
- 绘制源和终端节点之间的路线,搜索节点最接近中间并且递归地划分“路径”。基本案例将是一个更小的图,只有一个Dijkstra会进行计算。这不是对当前算法的调整,但有些人认为很明显这不会给出最佳解决方案。
- 尝试通过给予指向末端节点的边的更高优先级来给算法一些方向感。这也不会是最佳的..
所以现在我都没有想法,希望有人在这里可以给我一点可能的调整提示。它并不需要改进算法,我认为他们要求我们这样做的第一个原因是,我们不只是在不知道背后是什么的情况下从论文中实现算法。
(如果是#1不问这个问题的正确的地方,我的道歉:))
算法的简短描述: 算法试图选择哪些节点看好。通过承诺,我的意思是说他们有一个很好的机会躺在最短的路上。 “达到”代表了一个节点的前景如何。路径顶点的到达距离是开始到结束的最短距离。图中顶点的范围是所有最短路径上顶点到达的最大值。 为了最终确定节点是否被添加到Dijkstra算法中的优先级队列中,添加了test()函数。测试返回true(如果图中顶点的范围大于或等于在时间v处从原点到v的路径的权重将被插入到优先级队列中)或(顶点到达图形大于或等于从v到结束顶点的欧式距离)。
危害德Weirdt
由于这与编程中的特定问题没有直接关系,因此我建议您将此问题移至http://cstheory.stackexchange.com/。 – 2010-12-12 09:20:44
请在此处添加一个关于您的算法的简短说明 - 不仅仅是可能在未来消失的链接。 – 2010-12-12 09:25:15