2010-12-12 137 views
2

对于数据结构&算法类在大学我们必须实现一个算法在一篇论文中介绍。该论文可以被发现here。 所以我fullly实现的算法,以静置一些错误(但不是真的为什么我问这个问题,如果你想看到我是如何实现它迄今为止,你可以找到它here调整到最短路径算法

实我在Stackoverflow上提出问题的原因是作业的第二部分:我们必须尝试使算法更好。我想到了几个办法,但他们都在理论上听起来不错,但他们不会真正做好实践:

  • 绘制源和终端节点之间的路线,搜索节点最接近中间并且递归地划分“路径”。基本案例将是一个更小的图,只有一个Dijkstra会进行计算。这不是对当前算法的调整,但有些人认为很明显这不会给出最佳解决方案。
  • 尝试通过给予指向末端节点的边的更高优先级来给算法一些方向感。这也不会是最佳的..

所以现在我都没有想法,希望有人在这里可以给我一点可能的调整提示。它并不需要改进算法,我认为他们要求我们这样做的第一个原因是,我们不只是在不知道背后是什么的情况下从论文中实现算法。

(如果是#1不问这个问题的正确的地方,我的道歉:))

算法的简短描述: 算法试图选择哪些节点看好​​。通过承诺,我的意思是说他们有一个很好的机会躺在最短的路上。 “达到”代表了一个节点的前景如何。路径顶点的到达距离是开始到结束的最短距离。图中顶点的范围是所有最短路径上顶点到达的最大值。 为了最终确定节点是否被添加到Dijkstra算法中的优先级队列中,添加了test()函数。测试返回true(如果图中顶点的范围大于或等于在时间v处从原点到v的路径的权重将被插入到优先级队列中)或(顶点到达图形大于或等于从v到结束顶点的欧式距离)。

危害德Weirdt

+2

由于这与编程中的特定问题没有直接关系,因此我建议您将此问题移至http://cstheory.stackexchange.com/。 – 2010-12-12 09:20:44

+2

请在此处添加一个关于您的算法的简短说明 - 不仅仅是可能在未来消失的链接。 – 2010-12-12 09:25:15

回答

2

你在这样的情况下,最好的办法是这样想的研究员:研究一般和计算机科学的研究特别是关于逐步改善,一人表明,他们可以计算的东西更快地使用Dijkstra算法然后他们或其他人表明他们可以使用A *更快地计算出相同的东西。这是一系列小步骤。

也就是说,寻找方法来改进论文中提出的算法的最佳位置是未来方向部分。本文为您提供了一点朝这个方向努力的方法,但您的金矿在本案例中位于第5节和第6节。作者承认多种可能的方法。尝试研究这些方法中的一些,这应该引导您对算法进行可能的改进,或者至少可以争论一个。 祝你好运!