求教matlab遗传算法问题f(x,y)=sin(pi*x)/(pi*x)*sin(pi*y)/(pi*y)x,y=[0,8],求maxf(x,y)用遗传算法怎么可以求解?
来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/13 15:19:43
求教matlab遗传算法问题f(x,y)=sin(pi*x)/(pi*x)*sin(pi*y)/(pi*y)x,y=[0,8],求maxf(x,y)用遗传算法怎么可以求解?
求教matlab遗传算法问题
f(x,y)=sin(pi*x)/(pi*x)*sin(pi*y)/(pi*y)
x,y=[0,8],求maxf(x,y)
用遗传算法怎么可以求解?
求教matlab遗传算法问题f(x,y)=sin(pi*x)/(pi*x)*sin(pi*y)/(pi*y)x,y=[0,8],求maxf(x,y)用遗传算法怎么可以求解?
clc
clear all
close all
%% 画出函数图
figure(1);
lbx=0;ubx=8; %函数自变量x范围【0,8】
lby=0;uby=8; %函数自变量y范围【0,8】
ezmesh('sin(pi*x)/(pi*x)*sin(pi*y)/(pi*y)',[lbx,ubx,lby,uby],50); %画出函数曲线
hold on;
%% 定义遗传算法参数
NIND=40; %个体数目
MAXGEN=50; %最大遗传代数
PRECI=20; %变量的二进制位数
GGAP=0.95; %代沟
px=0.7; %交叉概率
pm=0.01; %变异概率
trace=zeros(3,MAXGEN); %寻优结果的初始值
FieldD=[PRECI PRECI;lbx lby;ubx uby;1 1;0 0;1 1;1 1]; %区域描述器
Chrom=crtbp(NIND,PRECI*2); %初始种群
%% 优化
gen=0; %代计数器
XY=bs2rv(Chrom,FieldD); %计算初始种群的十进制转换
X=XY(:,1);Y=XY(:,2);
ObjV=sin(pi*x)/(pi*x)*sin(pi*y)/(pi*y); %计算目标函数值
while gen