/************************************************************************* * YOU DO NOT NEED TO MODIFY THIS FILE * * Compilation: javac SmallestInsertion.java * Execution: java SmallestInsertion < file.txt * Dependencies: Tour.java Point.java StdIn.java StdDraw.java * * Run smallest insertion heuristic for traveling salesperson problem * and plot results. * * % java SmallestInsertion < tsp1000.txt * *************************************************************************/ public class SmallestInsertion { public static void main(String[] args) { // get dimensions int width = StdIn.readInt(); int height = StdIn.readInt(); int border = 20; StdDraw.setCanvasSize(width, height + border); StdDraw.setXscale(0, width); StdDraw.setYscale(-border, height); // turn on double buffering StdDraw.enableDoubleBuffering(); // run smallest insertion heuristic Tour tour = new Tour(); while (!StdIn.isEmpty()) { double x = StdIn.readDouble(); double y = StdIn.readDouble(); Point p = new Point(x, y); tour.insertSmallest(p); // uncomment the 4 lines below to animate // StdDraw.clear(); // tour.draw(); // StdDraw.textLeft(20, 0, "length = " + tour.length()); // StdDraw.show(); // StdDraw.pause(50); } // draw to standard draw tour.draw(); StdDraw.show(); // print tour to standard output StdOut.println(tour); StdOut.printf("Tour length = %.4f\n", tour.length()); StdOut.printf("Number of points = %d\n", tour.size()); } }