資源簡介
經(jīng)典遺傳算法(SGA)解非線性最優(yōu)化問題的原理及其python代碼實現(xiàn)
代碼片段和文件信息
#?-*-?coding:?utf-8?-*-
“““
程序功能:實現(xiàn)經(jīng)典的遺傳算法,測試函數(shù)為經(jīng)典的非線性問題:
????????max?f(x1x2)=21.5+x1*sin(4*pi*x1)+x2*sin(20*pi*x2)
????????s.t.??-3.0<=x1<=12.1
???????????????4.1<=x2<=5.8
說明:
1.采用經(jīng)典的二進制編碼,選擇算子為輪盤賭選擇,交叉算子為單點交叉,變異算子為反轉(zhuǎn)(單點)變異
2.可調(diào)的參數(shù)為:genupperlowerpcpmpop_numdeltafun(165-172行)
3.修改函數(shù)請改25231232234行,231232行和upperlower保持一致
作者:(曉風(fēng))wangchao
email:?18821709267@163.com?
最初建立時間:2018.10.10
最近修改時間:2018.10.24
GA的簡單實現(xiàn)
“““
import?numpy?as?np
import?matplotlib.pyplot?as?plt
from?mpl_toolkits.mplot3d?import?Axes3D
import?math
#目標函數(shù)
def?aimfun(x):
????y=21.5+x[0]*math.sin(4*math.pi*x[0])+x[1]*math.sin(20*math.pi*x[1])
????return?y
#獲得染色體長度
def?getchromolen(delta?upperlower):
????maxlen=25
????chromo_len=[]
????for?j?in?range(len(upper)):
????????a=(upper[j]
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2018-10-24?22:49??sga\
?????文件????????8162??2018-10-24?22:49??sga\sga.py
?????文件????????8186??2018-10-24?22:49??sga\sga2.py
評論
共有 條評論