def main(input_data): people = deepcopy(input_data.people) tables = deepcopy(input_data.tables) # for initializing axes of graph baseline_cost = cost_of_random_solutions(people, tables, input_data.days) dummy_solution = DummySolution(baseline_cost) yield (dummy_solution, dummy_solution.dummy_T) init_solution = build_guess(people, tables, input_data.days) best_solution = deepcopy(init_solution) print_init_cost(init_solution.cost) if config.anneal: for (solution, T) in anneal(init_solution): print_progress(solution, T) yield solution, T else: yield best_solution, None
best_solution = deepcopy(init_solution) print_init_cost(init_solution.cost) if config.anneal: for (solution, T) in anneal(init_solution): print_progress(solution, T) yield solution, T else: yield best_solution, None if __name__ == "__main__": parser = create_parser() args = parser.parse_args() input_data = InputData(args.people_file, args.tables_file) if not config.test_cost: for (best_solution, T) in main(input_data): if best_solution.cost == "Baseline cost": print "Average cost of random solutions: " + str(best_solution.baseline_cost) else: print_progress(best_solution, T) print_final_metrics(best_solution) write_people_to_csv(best_solution, args.output_people_filename) write_tables_to_csv(best_solution, args.output_tables_filename) if config.test_cost: for i in range(0, 500): print main(input_data).next()[0].cost