我正在编写最短路径计数算法。为此,我使用的是BGL对Dijkstra最短路径的实现。但是,此函数似乎未记录退化的最短路径(此问题在先前的线程中,例如FInding All Shortest Paths Between Two Vertices和How to record all the shortest paths from a source vertex to a destination vertex中受到了一些讨论)。 [注意:“退化”是指长度,成本,重量等相等的路径,其起点和终点均在相同的节点s和t处,但经过不同的中间节点]
我发现的是,Brandes中间性中心(boost / graph / betweenness_centrality.hpp)的BGL实现确实使用解释了最短路径的访问者函数实现了经修改的Dijkstra算法。不幸的是,此代码未提供经修改的最短路径功能的独立版本。
我即将着手创建一个,但是没有访问者功能的经验,并且想知道它是否已经存在于某个地方(我无法找到它)。对于从现有的Brandes算法实现中提取修改后的最短路径函数的可行性,我也将表示赞赏。