def Solve(self, e): self.matPlotInit(self.plotParent, [],[]) startTime = time.time() try: fileRead = tsp.consoleFileHandle(self.fileName) TSPtour = tsp.generateCities(fileRead) TSPtour = tsp.greedySearch(TSPtour) except: TSPtour = self.initialNodes solveTime = int(self.solveTimeBox.GetValue()) while time.time() < (startTime + int(solveTime)): TSPtour = tsp.greedyTwoOptSolver(TSPtour) ''' threading to handle unresponsive window t = threading.Thread(target = self.solverThread, args=(TSPtour, startTime, solveTime)) self.threads.append(t) t.start() t.join() ''' self.coordGenerate(TSPtour) self.matPlotInit(self.plotParent, self.xs, self.ys) self.tourDistance = tsp.totalDistance(TSPtour) self.lengthText.SetLabel("Length: " + str(self.tourDistance)) self.tourString = tsp.TourToString(TSPtour)
def LoadFile(self, e): dialoge = wx.TextEntryDialog(None, '"File Name".tsp', 'Load File') if dialoge.ShowModal() == wx.ID_OK: self.fileName = dialoge.GetValue() fileRead = tsp.consoleFileHandle(self.fileName) problemName = fileRead[0][6:-1] comment = fileRead[1][9:-1] problemType = fileRead[4][18:-1] dimension = fileRead[3][10:-1] self.nameText.SetLabel("Name: " + problemName) self.commentText.SetLabel("Comment: " + comment) self.typeText.SetLabel("Type: " + problemType) self.sizeText.SetLabel("Size: " + dimension + " Nodes") self.timeText.SetLabel("Time: " + datetime.datetime.now().strftime("%H:%M:%S")) self.dateText.SetLabel("Date: " + datetime.datetime.now().strftime("%Y-%m-%d")) TSPtour = tsp.generateCities(fileRead) self.initialNodes = np.trim_zeros(TSPtour) TSPtour = tsp.greedySearch(TSPtour) self.coordGenerate(TSPtour) self.matPlotInit(self.plotParent, self.xs, self.ys) dialoge.Destroy()