代码
求解问题:
max = x+10sin(5x)+7cos(4x)
0<=x<=10
import numpy as np
import geatpy as ga
import time
def aimfunc(Phen, LegV):
x = np.array([Phen[:,0]]).T #取解码后第一列的值,即变量1的解码值
f = x + 10*np.sin(5*x) + 7*np.cos(4*x)
return [f,LegV]
x=[0,10]
b=[1,1]
ranges=np.vstack([x]).T #变量范围,两行,第一行下界,第二行上界
border=np.vstack([b]).T #变量是否包含边界,两行,第一行下界,第二行上界
precesion=[4] #精度,小数点后6位
codes=[0] #编码方式,标准二进制编码
scales=[0] #刻度,算数刻度
NIND=50 # 种群规模
MAXGEN=100 # 最大遗传代数
GGAP=0.5 # 代沟,子代与父代个体不相同的概率为0.5
selectStyle='rws' # 轮盘赌选
recombinStyle='xovsp' # 单点杂交
recopt=0.65 # 交叉概率
pm=0.05 # 变异概率
SUBPOP=1