Class HamiltonianCycle

java.lang.Object
org.jgrapht.alg.HamiltonianCycle

public class HamiltonianCycle extends Object
This class will deal with finding the optimal or approximately optimal minimum tour (hamiltonian cycle) or commonly known as the Traveling Salesman Problem.
Author:
Andrew Newell
  • Constructor Details

    • HamiltonianCycle

      public HamiltonianCycle()
  • Method Details

    • getApproximateOptimalForCompleteGraph

      public static <V, E> List<V> getApproximateOptimalForCompleteGraph(SimpleWeightedGraph<V,E> g)
      This method will return an approximate minimal traveling salesman tour (hamiltonian cycle). This algorithm requires that the graph be complete and the triangle inequality exists (if x,y,z are vertices then d(x,y)+d(y,z)invalid input: '<'d(x,z) for all x,y,z) then this algorithm will guarantee a hamiltonian cycle such that the total weight of the cycle is less than or equal to double the total weight of the optimal hamiltonian cycle. The optimal solution is NP-complete, so this is a decent approximation that runs in polynomial time.
      Type Parameters:
      V -
      E -
      Parameters:
      g - is the graph to find the optimal tour for.
      Returns:
      The optimal tour as a list of vertices.