def randomized_maxvalue(problem, limit=100, callback=None): seed(42) current = LSNode(problem, problem.initial, 0) best = current for _ in range(limit): if callback is not None: callback(current) successors = list(current.expand()) list_of_best = [] i = 0 while (i < 5): ind = successors.index(max(successors, key=lambda node: node.state)) list_of_best.append(successors[ind]) successors.pop(ind) i += 1 current = choice(list_of_best) if current.state > best.state: best = current return best
def maxvalue(problem, limit=100, callback=None): """Perform a random walk in the search space and return the best solution found. The returned value is a Node. If callback is not None, it must be a one-argument function that will be called at each step with the current node. """ current = LSNode(problem, problem.initial, 0) best_of_best = current #best.v = current.state.value for _ in range(limit): #best.v = -float('inf') if callback is not None: callback(current) successors = list(current.expand()) ind = successors.index(max(successors, key=lambda node: node.state)) current = successors[ind] if current.state > best_of_best.state: best_of_best = current #return current return best_of_best
def randomized_maxvalue(problem, limit=100, callback=None): seed(42) current = LSNode(problem, problem.initial, 0) best = current for _ in range(limit): if callback is not None: callback(current) successors = list(current.expand()) list_of_best = [] i = 0 while (i < 5): ind = successors.index(max(successors, key=lambda node: node.state)) list_of_best.append(successors[ind]) successors.pop(ind) i += 1 current = choice(list_of_best) if current.state > best.state: best = current return best
def maxvalue(problem, limit=100, callback=None): """Perform a random walk in the search space and return the best solution found. The returned value is a Node. If callback is not None, it must be a one-argument function that will be called at each step with the current node. """ current = LSNode(problem, problem.initial, 0) best_of_best = current #best.v = current.state.value for _ in range(limit): #best.v = -float('inf') if callback is not None: callback(current) successors = list(current.expand()) ind = successors.index(max(successors, key=lambda node: node.state)) current = successors[ind] if current.state > best_of_best.state: best_of_best = current #return current return best_of_best