import numpy as npimport mathimport randomimport timestart = timetime# 31个城市的坐标city_condition=106542959 91112997 87684377106273847111654082 10833228412663457512535438812338418 114483803112533787 10174
初始化种群
population = [] for i in range(count): population.append(random.sample(index, len(index)))
for i in range(iteration): # 对种群进行排序和选择 parents = selection(population) # 交叉繁殖 children = crossover(parents) # 变异 children = mutation(children) # 将新的种群与父代种群合并 population = parents + children # 对新种群进行排序和选择 parents = selection(population) # 改良 for j in range(len(parents)): improve(parents[j]) # 输出每次迭代的最优解 print("Iteration:", i + 1, "Distance:", get_result(parents)[0])
输出最终结果
result = get_result(parents) print("Best Distance:", result[0]) print("Best Path:", result[1])
end = time.time() print("Time:", end - start
原文地址: https://www.cveoy.top/t/topic/cqpB 著作权归作者所有。请勿转载和采集!