Time 在应用Dijkstra算法之前,是否值得根据需要修剪图形?

Time 在应用Dijkstra算法之前,是否值得根据需要修剪图形?,time,graph,dijkstra,Time,Graph,Dijkstra,我正在一个程序中使用Dijkstra算法。假设我有一个带有顶点和边的图。如果我们设想从源顶点开始的所有边“a”如下所示 a-->b a-->c and a-->d 所有结束于顶点的边都是: b-->f m-->f e-->f w-->f 我需要从一开始就知道的是,我希望边a-->b作为我的起始边(假设“a”作为起始点),因此不需要搜索“a”的其他邻居,即(a-->c和a-->d) 另外,我只想要以m-->f结尾的路径(假设

我正在一个程序中使用Dijkstra算法。假设我有一个带有顶点和边的图。如果我们设想从源顶点开始的所有边“a”如下所示

a-->b        
a-->c   and  
a-->d  
所有结束于顶点的边都是:

b-->f
m-->f
e-->f
w-->f
我需要从一开始就知道的是,我希望边a-->b作为我的起始边(假设“a”作为起始点),因此不需要搜索“a”的其他邻居,即
(a-->c和a-->d)

另外,我只想要以m-->f结尾的路径(假设将“f”作为目标),即我不想要包含
b-->f,m-->f,e-->f,w-->f

所以,修剪我的初始图形,使其不包含这些边,然后对其应用Dijkstra,这是一个好主意吗


实际上,找到这些边需要一些搜索。我想知道是否值得(考虑到时间或CPU使用情况)搜索和修剪我的图表,或者有更好的方法吗?

为什么不搜索从
b
m
的路径,然后添加所需的边?如果您真的需要它,您可以添加一个特殊情况,以排除包含
a
f
的边被添加到堆栈中——您必须检查这是否会使它总体上更快,我打赌它会在小图上运行,但在真正大的图上不会(它只会以恒定因子改变速度)