我有一个图表,想找到从源到接收器的最长路径。我的想法是将权重反转为负数并在其上运行 dijkstra,如在 JGraphT 中实现的那样
ListenableDirectedWeightedGraph<String, MyEdge> g = new ListenableDirectedWeightedGraph<String, MyEdge>(
MyEdge.class);
...
List<MyEdge> sp = DijkstraShortestPath.findPathBetween(g, "source", "sink");
public static class MyEdge extends DefaultWeightedEdge {
@Override
public String toString() {
return String.valueOf(getWeight());
}
}
不幸的是,当我想设置负权重时,出现错误“不允许负权重”。