У меня есть график, и я хочу найти САМЫЙ ДЛИННЫЙ путь от источника к приемнику. Моя идея заключалась в том, чтобы изменить вес на отрицательные числа и запустить на нем 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());
}
}
К сожалению, я получаю сообщение об ошибке «Отрицательные веса не допускаются», когда я хочу установить отрицательный вес.