天天看点

python 遗传算法_Python | 智能优化算法之遗传算法实现

1.遗传算法的提出

遗传算法(Genetic Algorithm, GA)是1975年由霍兰教授提出的,它是模拟达尔文的遗传选择和自然淘汰的生物进化过程的计算模型,其目的:一是抽取和解释自然系统的自适应过程;二是设计具有自然系统机理的人工系统。遗传算法一致被认为是智能优化算法的基础,广泛应用于,函数优化、组合优化、生产调度等问题。

2.遗传算法的实现

本文遗传算法的实现基于 @幼鹰me 大佬开发的库

scikit-opt​scikit-opt.github.io

2.1 目标函数定义

首先第一步应当是定义待解决问题的优化目标

def 
           

2.2 遗传算法的求解

调用遗传算法进行求解

from sko.GA import GA

ga = GA(func=func,n_dim=4,size_pop=20,max_iter=10,lb=[-1,-1,-1,-1],ub=[1,1,1,1],precision=1e-7)
best_x,best_y = ga.run()
print('best_x:',best_x,'best_y:',best_y)
           

2.3结果可视化

对运行的结果进行可视化

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()
           

最后的结果如图下图所示

python 遗传算法_Python | 智能优化算法之遗传算法实现

前人种树,后人乘凉!

再次感谢大佬的开发!