while total_round > 0: # for round_index in range (total_round): if round_index == 0: goal_index = 91 # goal_index = 110 goal_selection_flag = priority_list[goal_index] print(goal_selection_flag) search_round = 100 if total_round < search_round: search_round = total_round # total_round = total_round - search_round Configuration = CarBehindAndInFrontConfigure( goal_index, population, target_dir, round_index, search_round) vars_file_name = Configuration.file_dir_var results_file_name = Configuration.file_dir_eval searched_violation_pattern.append(goal_index) else: # goal_index = 91 goal_index = 110 goal_selection_flag = priority_list[goal_index] print(goal_selection_flag) search_round = 100 if total_round < search_round: search_round = total_round # total_round = total_round - search_round Configuration = CarBehindAndInFrontConfigure(
full_path = desktop_path + str(time.strftime("%Y_%m_%d_")) + str( Configuration.algorithm) + '_iteration.txt' # 也可以创建一个.doc的word文档 file = open(full_path, 'w') return full_path data_folder = os.getcwd() + '/Overtake_Datalog_50_1000_' + str( time.strftime("%Y_%m_%d_%H")) if not os.path.exists(data_folder): os.mkdir(data_folder) if __name__ == '__main__': target_dir = data_folder Configuration = CarBehindAndInFrontConfigure(target_dir) Goal_num = Configuration.goal_num """===============================实例化问题对象============================""" problem = CarBehindAndInFrontProblem(Goal_num, Configuration) """=================================算法参数设置============================""" max_evaluations = Configuration.maxIterations algorithm = NSGAIII( population_evaluator=MultiprocessEvaluator(Configuration.ProcessNum), # population_evaluator=SequentialEvaluator(), problem=problem, population_size=Configuration.population, reference_directions=UniformReferenceDirectionFactory( Configuration.goal_num, n_points=Configuration.population - 1), # offspring_population_size = Configuration.population, mutation=PolynomialMutation(probability=1.0 /
while total_round > 0: ## caculate goal_index if round_index == 0: goal_selection_flag = numpy.ones(7) # goal_selection_flag = [0, 0, 0, 0, 0, 1, 0] searched_violation_pattern.append(goal_selection_flag) search_round = search_round_list[int(sum(goal_selection_flag))] # search_round = 50 if total_round < search_round: search_round = total_round # total_round = total_round - search_round Configuration = CarBehindAndInFrontConfigure(goal_selection_flag, population, search_round, round_index, target_dir) vars_file_name = Configuration.file_dir_var results_file_name = Configuration.file_dir_eval else: # print(round_index, sum(pattern_count)) fileList = os.listdir(results_file_name) fileList.sort() for i in range(population * search_round): textname = results_file_name + '/' + fileList[i] # print(textname) result = numpy.loadtxt(textname) evaluation.append(result) goal_flag = numpy.zeros((7), dtype=int) for j in range(7):
# config = Value('Configure', config) # bestpop = Value('BestPop', bestpop) if __name__ == '__main__': goal_selection_index = random.sample(range(0, 128), 20) total_round = len(goal_selection_index) population = 20 search_round = 50 numpy.savetxt('goal_selection_index.txt', goal_selection_index, fmt="%d") # 保存为整数 # round_idx = 0 for round_idx in range(total_round): Configuration = CarBehindAndInFrontConfigure( goal_selection_index[round_idx], population, search_round) Goal_num = Configuration.goal_num """===============================实例化问题对象============================""" problem = CarBehindAndInFront(Goal_num, Configuration) """=================================算法参数设置============================""" max_evaluations = population * search_round # print(max_evaluations) if Configuration.algorithm == "NSGA_II": algorithm = NSGAII( population_evaluator=MultiprocessEvaluator( Configuration.ProcessNum), # population_evaluator=SequentialEvaluator(), problem=problem, population_size=Configuration.population, offspring_population_size=Configuration.population,