python有没有简单的遗传算法库( 二 )
【python有没有简单的遗传算法库】
■网友
谢邀,楼主可以试下这个GA库Lucretiel/genetics
■网友
guofei9987/scikit-opt 这套算法库,很符合简单好用这个要求了。这个库对遗传算法、粒子群算法、模拟退火、蚁群算法较好的封装。
先定义好你的目标函数后,仅需要一两行代码就可以实现相应算法。
English Document
1. 遗传算法(Genetic Algorithm)定义目标函数def demo_func(x): x1, x2, x3 = x return x1 ** 2 + (x2 - 0.05) ** 2 + x3 ** 2
调入遗传算法求解器from ga import GAga = GA(func=demo_func, lb=, ub=, max_iter=500)best_x, best_y = ga.fit()
用 matplotlib 画出结果import pandas as pdimport matplotlib.pyplot as pltFitV_history = pd.DataFrame(ga.FitV_history)fig, ax = plt.subplots(2, 1)ax.plot(FitV_history.index, FitV_history.values, \u0026#39;.\u0026#39;, color=\u0026#39;red\u0026#39;)plt_max = FitV_history.max(axis=1)ax.plot(plt_max.index, plt_max, label=\u0026#39;max\u0026#39;)ax.plot(plt_max.index, plt_max.cummax())plt.show()
1.1 用遗传算法解决TSP问题(旅行商问题)GA_TSP
针对TSP问题重载了 交叉(crossover)
、变异(mutation)
两个算子
这里作为demo,随机生成距离矩阵. 实战中,从数据源中读取。import numpy as npnum_points = 8points = range(num_points)points_coordinate = np.random.rand(num_points, 2)distance_matrix = np.zeros(shape=(num_points, num_points))for i in range(num_points): for j in range(num_points): distance_matrix = np.linalg.norm(points_coordinate - points_coordinate, ord=2)print(\u0026#39;distance_matrix is: \\u0026#39;, distance_matrix)def cal_total_distance(points): num_points, = points.shape total_distance = 0 for i in range(num_points - 1): total_distance += distance_matrix, points] total_distance += distance_matrix, points] return total_distance
然后调用遗传算法进行求解from GA import GA_TSPga_tsp = GA_TSP(func=cal_total_distance, points=points, pop=50, max_iter=200, Pm=0.001)best_points, best_distance = ga_tsp.fit()
画出结果fig, ax = plt.subplots(1, 1)best_points_ = np.concatenate(]])best_points_coordinate = points_coordinateax.plot(best_points_coordinate, best_points_coordinate,\u0026#39;o-r\u0026#39;)plt.show()
■网友
最后还是用DEAP搞定了....虽然中间过程还是看不太懂,但是只要会添加评价函数就可以用了,这就是工程师的好处吧。
推荐阅读
- 怎样成为一名合格的Python程序员?
- 知乎有没有必要增加一个特别关注功能
- 环球车讯网|【帮你选车】简单粗暴 前后双电机+四驱 三款纯电SUV推荐
- python 爬虫,咋获得输入验证码之后的搜索结果
- 汽车知识|今天教你这4种简单保养不用去4 S店,省一半钱还质保!
- |酒喝多了难受怎么办?教你几招,简单实用,让你快速醒酒,收藏了
- python的html5lib这个库咋使用啊我在网上也没有找到相关文档
- 趣头条|幻影提车小记…有没有车主群加一个
- 基因是主动表达还是受某种场的影响被动表达,又或两者都有有没有隔绝所有电磁场来研究基因表达的实验
- 有没有网站能够搜出我给的类似风格图片的网站