#================================================================
    # Set the seed for the random generator. This will make
    # the results reproducible and therefore easier to debug.
    #
    random.seed(19671111)

    node = Node()
    # Read the problem from file
    node.read_problem(problem_file)

    print(str(node))
    # Create a initial solution we can optimize from
    node.initial_solution()
    # Plot the problem
    node.plot(id=1, assignment=False)
    # Plot the initial solution
    node.plot(id=2)

    # Use simulated annealing to optimize the initial solution
    sa(node)

    # Report the solution
    with open("report.txt", "w") as report_file:
        node.print_solution(report_file)

    # Create a visualization in svg
    node.plot(id=3)

    #print(node)