def run(n): current_node = Individual(n) while current_node.fitness() > 0: neighbours = current_node.get_neighbours() neighbours.sort(key=lambda b: b.fitness()) best_neighbour = neighbours[0] if best_neighbour.fitness() < current_node.fitness(): current_node = copy.deepcopy(best_neighbour) else: return current_node, current_node.fitness() return current_node, current_node.fitness()
def run(self): current_node = Individual(self.__n) while current_node.fitness() > 0: neighbours = current_node.get_neighbours() neighbours.sort(key=lambda b: b.fitness()) best_neighbour = neighbours[0] if best_neighbour.fitness() < current_node.fitness(): current_node = copy.deepcopy(best_neighbour) else: self.signal.emit( [current_node, current_node.fitness(), 'done']) return self.signal.emit([current_node, current_node.fitness(), 'done'])