Есть ли алгоритм использования jgraph в java для решения TSP, проходящего через список определенной вершины? - PullRequest
0 голосов
/ 26 марта 2019

Я изучаю библиотеку 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();
}
...