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
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)