Advertisement
Guest User

tour

a guest
Aug 16th, 2018
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.48 KB | None | 0 0
  1. package travelling_salesman_package;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.concurrent.TimeUnit;
  5.  
  6. import given_functions.MST;
  7. import given_functions.TSP;
  8.  
  9. public class StartTour{
  10. static String filename = "D:\\Eclipse 2\\TSP_51.txt";
  11. static String separator = " ";
  12. static String filenameOPT = "D:\\Eclipse 2\\TSP_51_OPT.txt";
  13.  
  14. public static double[][] locations = TSP.ReadArrayFile(filename, separator);
  15. public static void main(String[] args){
  16. //running all the algorithms
  17. getOptimal();
  18. getLocal();
  19. long beginTime = System.currentTimeMillis();
  20. for(int i = 0; i<10; i++){
  21. //Amount of iterations
  22.  
  23. //change number to do amount of tours
  24. //Simple hill climbing(mutation)
  25. setHillClimb(10,locations,false);
  26.  
  27. //random restart hill climbing
  28. //setRandomRestartHillClimb(10,10,locations,false);
  29.  
  30.  
  31. //simulated annealing
  32. //setSimulatedAnnealing(1000000,10,locations,false,10);
  33.  
  34.  
  35. //stochastic hill climbing
  36. //setStochasicHillClimb(10,locations,false);
  37.  
  38. }
  39. //geting the timing for the algorithms
  40. long endTime = System.currentTimeMillis();
  41. long finalTime = endTime-beginTime;
  42.  
  43. //long seconds = TimeUnit.SECONDS.convert(finalTime, TimeUnit.NANOSECONDS);
  44. System.out.println("Final time was "+ finalTime +" milliseconds");
  45.  
  46. }
  47. /**
  48. *
  49. * @param iterations
  50. * @param nodes
  51. * @param print
  52. */
  53. //setting it like this so that its easier to change when creating the report
  54.  
  55. private static void setHillClimb(int iterations, double[][] nodes, boolean print){
  56. Algorithms al = new Algorithms();
  57. //creates new instance of algorithms class
  58. TSPObject newHillClimbingTour = al.RandomMutation(iterations, nodes, print);
  59. System.out.println("Random Mutation Hill Climbing "+newHillClimbingTour.getFitness());
  60. //print out the best fitness of that iteration
  61. }
  62. /**
  63. *
  64. * @param iterations
  65. * @param restarts
  66. * @param nodes
  67. * @param print
  68. */
  69. private static void setRandomRestartHillClimb(int iterations,int restarts, double[][] nodes, boolean print){
  70. Algorithms al = new Algorithms();
  71. TSPObject newRestartHillClimbingTour = al.RandomRestartHillClimber(iterations, 10, nodes, false);
  72. System.out.println("Random Restart Hill Climbing " +newRestartHillClimbingTour.getFitness());
  73. }
  74.  
  75. private static void setSimulatedAnnealing(int iterations, int temp, double[][] nodes, boolean print, double coolingrate){
  76. Algorithms al = new Algorithms();
  77. TSPObject newSimulatedAnnealingTour = al.SimulatedAnnealing(iterations, nodes, false, coolingrate, 0.0003);
  78. System.out.println("Simulated Annealing "+newSimulatedAnnealingTour.getFitness());
  79. }
  80.  
  81. private static void setStochasicHillClimb(int iterations, double[][] nodes, boolean print){
  82. Algorithms al = new Algorithms();
  83. TSPObject newStochasticHillClimbing = al.StochasticHillClimber(iterations, nodes, false);
  84. System.out.println("Stochastic Hill Climbing "+newStochasticHillClimbing.getFitness());
  85. }
  86. private static void getOptimal(){
  87. ArrayList<Integer> OptimumSolution = TSP.ReadIntegerFile("D:\\Eclipse 2\\TSP_48_OPT.txt");
  88. TSPObject OptimumSolutionution = new TSPObject(OptimumSolution,locations.length); //creating an object
  89. double optimumFitness = OptimumSolutionution.fitnessFunction(locations);
  90. System.out.println("Local Optima " +optimumFitness);
  91.  
  92. }
  93.  
  94. private static void getLocal(){
  95. double globalFitnessNumber = MST.MSTFitness(locations);
  96. System.out.println("Global Optima MST: "+globalFitnessNumber);
  97.  
  98. }
  99. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement