Example #1
0
def main(input_data):
    best_solution = None
    for i in range(0, config.num_tries):
        solution = build_guess(input_data.people, input_data.groups, input_data.days)

        print_init_cost(solution.cost)

        if config.anneal:
            for (solution, T) in anneal(solution):
                print_progress(solution, T)
                if best_solution == None or solution.cost < best_solution.cost:
                    best_solution = deepcopy(solution)
                yield best_solution, T
Example #2
0
    group.add_argument("-s", "--size-of-groups", type=check_negative, action="store")
    group.add_argument("-n", "--num-groups", type=check_negative, action="store")
    return parser


def main(input_data):
    best_solution = None
    for i in range(0, config.num_tries):
        solution = build_guess(input_data.people, input_data.groups, input_data.days)

        print_init_cost(solution.cost)

        if config.anneal:
            for (solution, T) in anneal(solution):
                print_progress(solution, T)
                if best_solution == None or solution.cost < best_solution.cost:
                    best_solution = deepcopy(solution)
                yield best_solution, T


if __name__ == "__main__":
    parser = create_parser()
    args = parser.parse_args()
    input_data = InputData(args.people_file, args.num_days, args.num_groups, args.size_of_groups, args.output_filename)

    for (solution, T) in main(input_data):
        print_progress(solution, T)

    print_final_metrics(solution)
    write_to_csv(solution.solution, input_data.days, input_data.output_filename)