7

在这里有点长镜头,因为我没有在 QuickGraph 中找到太多文档 HoffmanPavleyRankedShortestPathAlgorithm,所以我猜没有很多人使用它,但是我在使用排名最短路径返回正确结果时遇到了一些问题算法,想知道是否有人发现了同样的问题。

我正在使用 1900 个顶点和 20000 个边填充双向图,并且我已将图设置为返回 150 条路径。它这样做了,但它并没有带回预期的几条路径,即应该在前 20 条最短路径中排名的路径。我对系统的期望是,如果我要求 150 条路径,它将按顺序返回 150 条最短路径。

现在,当我将其设置为返回 1000 多个路径时,就会出现预期的路径。以前有没有人遇到过这样的问题,并且可能有办法改进图表设置?我不能让系统返回 1000 条路径,因为处理时间太长。

以下是相关代码:图形设置:

BidirectionalGraph<string, TaggedEdge<string, int>> pathGraph = new BidirectionalGraph<string, TaggedEdge<string, int>>();

... add vertices and edges

算法设置:

HoffmanPavleyRankedShortestPathAlgorithm<string, TaggedEdge<string, int>> hoffmanAlgorithm = new HoffmanPavleyRankedShortestPathAlgorithm<string, TaggedEdge<string, int>>(pathGraph, E => 1.0);
try
{
    hoffmanAlgorithm.ShortestPathCount = 150;
    hoffmanAlgorithm.SetRootVertex(startPoint.ToString());
    hoffmanAlgorithm.Compute(startPoint.ToString(), endPoint.ToString());

    foreach (IEnumerable<TaggedEdge<string, int>> path in hoffmanAlgorithm.ComputedShortestPaths)
    {
         //process results...
    }
}

正如我所说,我并不太有信心在这里得到回应,但我想我还是会尝试的。CodePlex 上的 QuickGraph 讨论论坛似乎不再有人操作,否则我会在那里尝试。

非常感谢

4

0 回答 0