基本上,在权重是欧几里德距离的图表中,Dijkstra算法真的是必需的,或者到目的地的直接路径总是最短的吗?
我真的要求对这个问题作出一般性回答,但我认为对于下面给出的案例总是如此。
==================================
如果边缘形成正多边形,我几乎100%确定是这种情况。
这些路径没有死角,即从任何顶点v1
到任何其他顶点v2
都存在一些路径。
通过正多边形,我的意思是图形是由n
个顶点的正多边形的边连接形成的,而不会在此过程中形成其他多边形。
n = 5
. .
. .
. .
. .
. .
. .
. .
n = 4
. . . .
. . . . .
. . .
. .
n = 3
. . .
. . . . . .
. . . . . .
答案 0 :(得分:1)
这可能是一个反例:
n = 4
. . . . . . . .
. . . . . . .
. . . . . . .
. . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . . .
. . . . . . . .
基本上,如果图中有任何非对称间隙,那么贪婪算法总是选择最近的顶点到顶点,可以选择一个顶点,迫使它取一个更长的道路。
然而,贪婪算法将始终适用于没有障碍物的路径,或者如果起点将障碍物减半,则路径将具有对称障碍物。事实上,只要没有死角,只需找到围绕每个障碍物的最短路径的算法就可以提供几乎与Dijkstra一样好的解决方案,而且没有死角。
但实现这样的算法与在总路径的子路径上实现Dijkstra相同,因此非常没有意义,除非你真的需要减少所需的计算资源。