def solve(): print(request.get_json()) data = request.get_json() sequence = data['sequence'] if not is_square(len(sequence)): return jsonify({"result": "sequence is not of perfect square length"}) sqrt = int(math.sqrt(len(sequence))) np_array = numpy.array(sequence).reshape(sqrt, sqrt) initial_state = State(np_array) problem = Problem(initial_state, sqrt, sqrt) solver = Solver(problem) strategy = data['strategy'] if strategy == 'A* Manhattan Distance': result, num_explored, steps, running_time = solver.AStar(1) elif strategy == 'A* - Euclidean Distance': result, num_explored, steps, running_time = solver.AStar(2) elif strategy == 'BFS': result, num_explored, steps, running_time = solver.BFS() elif strategy == 'DFS': result, num_explored, steps, running_time = solver.DFS() solution = { "steps": steps, "nodes explored": num_explored, "running time": running_time, "path cost": len(steps), "status": result, "strategy": strategy } print(jsonify(solution)) return jsonify(solution)
gameboard = GameBoard(6, 6) gameboard.read_board('tests/' + argv[1]) print('Problem: ' + argv[1] + '\n') print(gameboard) solver = Solver(gameboard) for i in range(5): algo = i + 1 if algo == 1: solution, node_num, memory_usage, execution_time, step_num = solver.BFS( ) print('BFS finished.') print(solution + '\n') elif algo == 2: solution, node_num, memory_usage, execution_time, step_num = solver.DFS( ) print('DFS finished.') print(solution + '\n') elif algo == 3: solution, node_num, memory_usage, execution_time, step_num = solver.IDS( ) print('IDS finished.') print(solution + '\n') elif algo == 4: solution, node_num, memory_usage, execution_time, step_num = solver.A_star( ) print('A* finished.') print(solution + '\n') elif algo == 5: solution, node_num, memory_usage, execution_time, step_num = solver.IDA_star( )