def count_satisfiable(arg): N, i, p_occ = arg expanded = 0 completed = 0 for _ in range(100): count_satisfiable.q.put(i) problem = get_random_grid_problem(p_occ, N, N) path, num_nodes_expanded, _ = a_star_search(problem) expanded += num_nodes_expanded if path is not None: completed += 1 return completed, expanded
Simply fill in the prob. of occupancy values for the 'phase transition' and peak nodes expanded within 0.05. You do NOT need to submit your code that determines the values here: that should be computed on your own machine. Simply fill in the values! :return: tuple containing (transition_start_probability, transition_end_probability, peak_probability) """ #### # REPLACE THESE VALUES #### transition_start_probability = -1.0 transition_end_probability = -1.0 peak_nodes_expanded_probability = -1.0 return transition_start_probability, transition_end_probability, peak_nodes_expanded_probability if __name__ == '__main__': # Test your code here! # Create a random instance of GridSearchProblem p_occ = 0.25 M = 50 N = 50 problem = get_random_grid_problem(p_occ, M, N) # Solve it path, num_nodes_expanded, max_frontier_size = a_star_search(problem) # Check the result correct = problem.check_solution(path) print("Solution is correct: {:}".format(correct)) # Plot the result problem.plot_solution(path) # Experiment and compare with BFS
# problem = get_random_grid_problem(p_occ, M, N) # # Solve it # path, num_nodes_expanded, max_frontier_size = a_star_search(problem) # # # Check the result # correct = problem.check_solution(path) # print("Solution is correct: {:}".format(correct)) # # Plot the result # problem.plot_solution(path) # Experiment and compare with BFS x = [] solvability = [] effort = [] for i in np.arange(0.1, 0.95, 0.05): x.append(i) node_count = 0 solved = 0 for j in range(100): problem = get_random_grid_problem(i, M, N) path, num_nodes_expanded, max_frontier_size = a_star_search(problem) node_count += num_nodes_expanded if path != []: solved = solved + 1 effort.append(node_count / 100) solvability.append(solved / 100) fig, ax = plt.subplots(2, 1) ax[0].plot(x, solvability) ax[1].plot(x, effort) plt.show()