def run(self): finish = datetime.datetime.now() + datetime.timedelta( seconds=self.seconds) while datetime.datetime.now() < finish: route = Route(self.inc_support, self.dec_support) route.generate_random(self.states) route.calculate_value() if route.value > self.best_solution.value: self.best_solution = route