|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
比如函数以=x+10*sin(5*x)+7*cos(4*x);
如果x是区间(0,9)之间的连续变量,则
%编写目标函数
function[sol,eval]=fitness(sol,options)
x=sol(1);
eval=x+10*sin(5*x)+7*cos(4*x);
%把上述函数存储为fitness.m文件并放在工作目录下
initPop=initializega(10,[0 9],'fitness');%生成初始种群,大小为10
[x endPop,bPop,trace]=ga([0 9],'fitness',[],initPop,[1e-6 1 1],'maxGenTerm',25,'normGeomSelect',...
[0.08],['arithXover'],[2],'nonUnifMutation',[2 25 3]) %25次遗传迭代
运算结果为:x =
7.8562 24.8553(当x为7.8562时,f(x)取最大值24.8553)
但是如果x是离散变量,比如x的取值只能是0到9之间的整数,那么该怎样用遗传算法来解决呢?
最近在研究中,但对此很困惑,望懂者帮忙解决,深表感谢! |
|