Я изучаю библиотеку jgraph, и мне нужно знать, есть ли алгоритм для решения следующей проблемы:
Имея некоторую вершину для посещения, найдите маршрут, начинающийся с вершины графа и проходящий через все определенные вершины, прежде чем окончательно завершить маршрут в той же точке, что и начался.
Это означает, что мне нужно найти маршрут, начинающийся и заканчивающийся в той же точке (как TSP), но проходящий через некоторую вершину.
Я пытался создать подграф с вершиной, которую мне нужно посетить, но я думаю, что в этом нет никакого смысла. И я думаю, что это действительно общая проблема, связанная с отсутствием работы. Что я сделал, так это нахождение вершины, которую мне нужно посетить на графике.
apartadoC(g, "Lugar3","Lugar5","Lugar7");
}
private static void apartadoC(Graph<Lugar, Viaje> g, String d1, String d2, String d3) {
System.out.println("==============APARTADO C==============");
Lugar destino1 = buscaVertice(g,d1);
Lugar destino2 = buscaVertice(g,d2);
Lugar destino3 = buscaVertice(g,d3);
g.edgeSet().forEach(a->g.setEdgeWeight(a,a.getCost()));
}
private static Lugar buscaVertice(Graph<Lugar, Viaje> g, String name) {
return g.vertexSet().stream().filter(v->v.getNombre().equals(name)).findFirst().get();
}