= 3 * cos(pop(:,1) .* pop(:,2)) + pop(:,1) + pop(:,2);end
MATLAB
初始化种群
目标函数有两个参数,生成每个个体有两个基因的种群:
function...交叉
交叉函数如下:
function crossoverpop = crossover(pop, mpop, cr)% 交叉% pop input 种群% mpop...input 变异后的种群% cr input 交叉概率% crossoverpop output 交叉后的种群[popsize, chromlength] = size(pop...= mpop(sub2ind(size(mpop), [1:popsize], jrand));end
MATLAB
在交叉操作之后,应约束边界:
function newpop = constrictboundary...执行结果
bestX = -3.947841, bestY = -4.000000, bestZ = -10.937414
?