遗传算法例题(题目和解答以及Matlab代码)

您所在的位置:网站首页 函数的定义域例题分析及答案 遗传算法例题(题目和解答以及Matlab代码)

遗传算法例题(题目和解答以及Matlab代码)

2024-07-04 06:01| 来源: 网络整理| 查看: 265

遗传算法的题目和解答(Matlab代码)

题目:用标准遗传算法求解函数f(x)=x+10sin(5x)+7cos(4x)的最大值,其中x的取值范围是[0,10]。 解答:优化结束后,根据适应度曲线的图,可以得出优化结果为x=7.8567,

clear all; %清除所有变量 close all; %清图 clc; %清屏 NP=50; %种群数量 L=20; %二进制位串长度 Pc=0.8; %交叉率 Pm=0.1; %变异率 G=100; %最大遗传代数 Xs=10; %上限 Xx=0; %下限 f=randi(NP,L); %随机获得初始种群 % 遗传算法循环 for k=1:G %将二进制解码为定义域范围内十进制 for i=1:NP U=f(i,:); m=0; for j=1:L m=U(j)*2^(j-1)+m; end x(i)=Xx+m*(Xx-Xx)/(2^L-1); Fit(i)=func1(x(i)); end maxFit=max(Fit); %最大值 minFit=min(Fit); %最小值 rr=find(Fit==maxFit); fBest=f(rr(1,1),:); %历代最优个体 xBest=x(rr(1,1)); Fit=(Fit-minFit)/(maxFit-minFit); %归一化适应度值 %基于轮盘赌的复制操作 sum_Fit=sum(Fit); fitvalue=Fit./sum_Fit; fitvalue=cumsum(fitvalue); ms=sort(rand(NP,1)); fiti=1; newi=1; while newi


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3