#!/usr/bin/python # -*- coding: utf-8 -*- import math def length(point1, point2): return math.sqrt((point1[0] - point2[0])**2 + (point1[1] - point2[1])**2) def solveIt(inputData): # Modify this code to run your optimization algorithm # parse the input lines = inputData.split('\n') nodeCount = int(lines[0]) points = [] for i in range(1, nodeCount+1): line = lines[i] parts = line.split() points.append((float(parts[0]), float(parts[1]))) # build a trivial solution # visit the nodes in the order they appear in the file solution = range(0, nodeCount) # calculate the length of the tour obj = length(points[solution[-1]], points[solution[0]]) for index in range(0, nodeCount-1): obj += length(points[solution[index]], points[solution[index+1]]) # prepare the solution in the specified output format outputData = str(obj) + ' ' + str(0) + '\n' outputData += ' '.join(map(str, solution)) return outputData import sys if __name__ == '__main__': if len(sys.argv) > 1: fileLocation = sys.argv[1].strip() inputDataFile = open(fileLocation, 'r') inputData = ''.join(inputDataFile.readlines()) inputDataFile.close() print solveIt(inputData) else: print 'This test requires an input file. Please select one from the data directory. (i.e. python solver.py ./data/tsp_51_1)'