geatpy庫模板sga_new_real_templet簡單應用
阿新 • • 發佈:2018-12-08
程式碼(aimfuc)
通過sga_real_templet的簡單應用瞭解了實值編碼。
現在使用sga_new_real_templet模板實現一個簡單的應用。
geatpy庫的new模板與非new模板的區別,就是增加了精英保留機制。
import numpy as np
def aimfuc(Phen, LegV):
x = Phen[:, [0]]
f = x + 10 * np.sin(5 * x) + 7 * np.cos(4 * x)
return [f, LegV]
程式碼(main)
import numpy as np import geatpy as ga AIM_M = __import__('aimfuc') x = [0, 10] b = [1, 1] # codes = [1] precisions = [6] # scales = [0] ranges = np.vstack([x]).T borders = np.vstack([b]).T fieldd = ga.crtfld(ranges, borders, precisions) # , codes, scales) problem = 'R' maxormin = -1 MAXGEN = 100 NIND = 50 SUBPOP = 1 GGAP = 0.65 pm = 0.05 selectStyle = 'rws' recombinStyle = 'xovsp' drawing = 1 [pop_trace, var_trcae, times] = ga.sga_new_real_templet(AIM_M, AIM_F="aimfuc", PUN_M=None, PUN_F=None, FieldDR=fieldd, problem=problem, maxormin=-1, MAXGEN=MAXGEN, NIND=NIND, SUBPOP=SUBPOP, GGAP=GGAP, selectStyle=selectStyle, recombinStyle=recombinStyle, recopt=None, pm=pm, distribute=True, drawing=1)
結果
最優的目標函式值為:24.85536285350634
最優的控制變數值為:
7.856734903131869
有效進化代數:100
最優的一代是第 54 代
時間已過 1.0030572414398193 秒