算法库小编提到的内容不多。并不是说这些内容不重要,而是想和大家一起把最实用、最简单的内容降级,一次给大家注入很多内容。相信大家已经头晕目眩了。现在,小编大致浏览了一下算法库,发现了一个大家必须学习的内容,就是关于遗传算法库的。有了解的朋友一定要看看
~详细内容见下文。
遗传算法库
——scikit-opt
一个封装了
7种启发式算法的 Python 代码库
(差分进化算法、遗传算法、粒子群算法、模拟退火算法、蚁群算法、鱼群算法、免疫优化算法)
安装
pip install scikit-opt
遗传算法
示例代码
第一步:定义你的问题
-> Demo code: examples/demo_ga.py#s1
import numpy as np
def schaffer(p):
'''
This function has plenty of local minimum, with strong shocks
global minimum at (0,0) with value 0
'''
x1, x2 = p
x = np.square(x1) + np.square(x2)
return 0.5 + (np.sin(x) - 0.5) / np.square(1 + 0.001 * x)
第二步:运行遗传算法
-> Demo code: examples/demo_ga.py#s2
from sko.GA import GA
ga = GA(func=schaffer, n_dim=2, size_pop=50, max_iter=800, lb=[-1, -1], ub=[1, 1], precision=1e-7)
best_x, best_y = ga.run()
print('best_x:', best_x, '\n', 'best_y:', best_y)
第三步:用
matplotlib 画出结果
-> Demo code: examples/demo_ga.py#s3
import pandas as pd
import matplotlib.pyplot as plt
Y_history = pd.DataFrame(ga.all_history_Y)
fig, ax = plt.subplots(2, 1)
ax[0].plot(Y_history.index, Y_history.values, '.', color='red')
Y_history.min(axis=1).cummin().plot(kind='line')
plt.show()
运行效果:
好了,以上都是关于遗传算法的。不知道大家有没有看懂?以上内容非常实用。以后写项目的时候肯定会遇到。因此,记住掌握它非常重要,这一点非常重要。
~
本文为原创文章,版权归知行编程网所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ python3.6中if语句的使用方法10/30
- ♥ 如何在 python tkinter 中使用 ttk 组件?09/11
- ♥ python类是否声明变量类型01/02
- ♥ 如何在python中删除换行符08/23
- ♥ Python如何开发api11/14
- ♥ python遍历列表的注意事项10/17
内容反馈