def find_next_solution_via_full_search(self, assignments, depth): result = assignments result_delta = -1 iterator = OnlyBetterChangesIterator(self.configuration, assignments) for assignments, delta in iterator.next_change(assignments, depth=3): if delta > result_delta: result_delta = delta result = copy.deepcopy(assignments) return result
def find_next_solution(self, assignments, depth): iterator = OnlyBetterChangesIterator(self.configuration, assignments) for assignments, delta in iterator.next_change(assignments, depth=2): if delta > 0: return assignments for assignments, delta in iterator.next_change(assignments, depth=3): if delta > 0: return assignments for assignments, delta in iterator.next_change(assignments, depth=4): if delta > 0: return assignments return None