Beispiel #1
0
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)
Beispiel #2
0
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(
        )