遗传算法以及matlab程序实现

话不多说,直接上程序,该程序为寻找目标函数的最大值,代码中所用到的matlab函数大多是基于谢菲尔德大学的遗传算法工具箱实现的,所以有小伙伴运行时出现函数问题,那就应该安装一个谢菲尔德大学的遗传算法工具箱,在我主页里有免费的谢菲尔德大学遗传算法工具箱,下面是代码部分:

%% 标准遗传算法SGA
clear
clc
pc=0.7;
pm=0.05;
%定义遗传算法参数
NIND=40;        %个体数目
MAXGEN=500;     %最大遗传代数
NVAR=2;               %变量的维数
PRECI=20;             %变量的二进制位数
GGAP=0.9;             %代沟
trace=zeros(MAXGEN,1);
FieldD=[rep(PRECI,[1,NVAR]);[-3,4.1;12.1,5.8];rep([1;0;1;1],[1,NVAR])];
Chrom=crtbp(NIND, NVAR*PRECI);                       %创建初始种群
gen=0;                                               %代计数器
maxY=0; %最优值
ObjV=ObjectFunction(bs2rv(Chrom, FieldD));%计算初始种群个体的目标函数值
while gen<MAXGEN                                     %迭代FitnV=ranking(-ObjV);                            %分配适应度值(Assign fitness values)SelCh=select('rws', Chrom, FitnV, GGAP);         %选择SelCh=recombin('xovsp', SelCh, pc);              %重组SelCh=mut(SelCh,pm);                             %变异ObjVSel=ObjectFunction(bs2rv(SelCh, FieldD));           %计算子代目标函数值[Chrom ObjV]=reins(Chrom, SelCh, 1, 1, ObjV, ObjVSel);  %重插入gen=gen+1;           %代计数器增加if maxY<max(ObjV)maxY=max(ObjV);endtrace(gen,1)=maxY;
% %     [maxO,maxI]=max(ObjV);
% %     maxObjV(gen,:)=maxO;
% %     maxChrom(gen,:)=Chrom(maxI,:);
end%% 进化过程图
plot(1:gen,trace(:,1));% % 输出最优解
[Y,I]=max(ObjV);
X=bs2rv(Chrom, FieldD);
disp(['最优值为:',num2str(Y)])
disp(['对应的自变量取值:',num2str(X(I,:))])
% % [Y,I]=max(maxObjV);
% % X=bs2rv(maxChrom(I,:),FieldD);
% % disp(['最优值为:',num2str(Y)])
% % disp(['对应的自变量取值:',num2str(X)])

这是遗传算法的主体部分,还需要一个函数文件(使用该遗传算法进行寻优的函数)如下:

function obj=ObjectFunction(X)
%% 待优化的目标函数
% X的每行为一个个体
col=size(X,1);
for i=1:colobj(i,1)=21.5+X(i,1)*sin(4*pi*X(i,1))+X(i,2)*sin(20*pi*X(i,2));
end%%测试函数
% % col=size(X,1);
% % for i=1:col
% %         obj(i,1)=21.5+X(i,1)*sin(4*pi*X(i,2))+X(i,2)*sin(20*pi*X(i,3));
% % end

这里就可以实现用遗传算法寻找函数的最大值。
也可以子在此基础上进行改进,如寻找最小值,参数识别,以及与其他算法进行结合等等。

要想了解更多的算法以及源代码,欢迎点进我的主页

遗传算法以及matlab程序实现相关推荐

  1. TSP问题遗传算法通用Matlab程序

    程序一:主程序 %TSP问题(又名:旅行商问题,货郎担问题)遗传算法通用matlab程序 %D是距离矩阵,n为种群个数 %参数a是中国31个城市的坐标 %C为停止代数,遗传到第 C代时程序停止,C的具 ...

  2. 遗传算法系统辨识matlab程序,8.8 基于遗传算法的机械手参数辨识 系统辨识理论及Matlab仿真课件.ppt...

    8.8 基于遗传算法的机械手参数辨识 (1) 8.8.1 系统描述 双关节机械臂动力学方程可写为: 其中 为重力加速度. 参数 分别是机械力臂方程中未知物理参数 的函数,表达如下: 由 的定义,可知: ...

  3. 用matlab程序表示三角形序列,MATLAB程序举例带注释

    1.绘制云图 Ex=18 En=2 He=0.2 hold on for i=1:1000 Enn=randn(1)*He+En; x(i)=randn(1)*Enn+Ex; y(i)=exp(-(x ...

  4. 双隐藏层BP网络的matlab仿真,求遗传算法优化含有两个隐含层的BP神经网络的matlab程序...

    怎样用遗传算法优化含有两个隐含层的BP神经网络的matlab程序啊,这个代码是错的,可不知道错在哪,求高手帮忙解答,非常感谢! FieldD=[repmat(PRECI,1,N);repmat([-0 ...

  5. 非线性整数规划的遗传算法Matlab程序

    非线性整数规划的遗传算法Matlab程序 通常,非线性整数规划是一个具有指数复杂度的NP问题,如果约束较为复杂,Matlab优化工具箱和一些优化软件比如lingo等,常常无法应用,即使能应用也不能给出 ...

  6. 基于遗传算法的微电网经济运行优化matlab程序

    基于遗传算法的微电网经济运行优化matlab程序 摘 要: 微电网作为智能电网的一部分,是分布式电源接入电网的一种有效手段,微电网经济运行是其中一个重要研究方面.考察微电网经济性,通常是从最小运行成本 ...

  7. 基于多目标遗传算法的IEEE14节点系统分布式电源选址定容matlab程序

    基于多目标遗传算法的IEEE14节点系统分布式电源选址定容matlab程序 摘 要: 为更好地解决分布式电源选址定容问题,提出一种改进的多目标遗传算法.之后,考虑投资成本.网损以及电压稳定性三因素建立 ...

  8. 分布式电源优化配置与选址定容MATLAB程序基于遗传算法

    分布式电源优化配置与选址定容MATLAB程序基于遗传算法 (1)该程序为基于遗传算法的分布式电源优化配置与选址定容程序,硕士学位论文源程序,配有该论文. (2)本程序可有效配置分布式电源容量与安装位置 ...

  9. MATLAB程序采用非支配排序遗传算法(NSGA2)求解分布式电源选址定容问题

    MATLAB程序采用非支配排序遗传算法(NSGA2)求解分布式电源选址定容问题,可作为一个有用的参考,程序注释明确,算法原理可以自己搜. 现有:6920651507678049浪迹天涯

最新文章

  1. Linux设备驱动--块设备(二)之相关结构体
  2. python 的dict的append()?
  3. YbtOJ#20067-[NOIP2020模拟赛B组Day5]糖果分配【dp】
  4. android aar jar制作,AndroidStudio aar、jar生成及其引用
  5. dns服务器v6解析 windows_04:缓存DNS、Split分离解析、电子邮件通信、Web服务器项目实战...
  6. 漫步最优化三十六——基本共轭方向法
  7. 由于芯片短缺 现代汽车牙山工厂将再度停产
  8. 改变世界的iPhone背后都有些什么?
  9. 大道至简 第二章 读后随笔
  10. 微服务架构的核心要点和实现原理解析
  11. 函数__内置函数(reversed,slice,format,ord,chr,ascii,repr)递归,迭代,二分法
  12. 阿里要把雄安打造成AI第一城:未来30年城市长啥样?
  13. java怎么测试接口测试_java怎么测试接口
  14. 软考中级软件设计师--5面向对象基础
  15. python playsound 报UnicodeDecodeError
  16. 链游成公链新宠,风口之下究竟哪家称王?
  17. 产品设计(1):开源产品设计工具pencil
  18. excel表格如何转换成word表格_轻松将Excel表格完美转换成Word文档
  19. 谷歌雅虎新闻大战-两种路线的PK
  20. 育儿知识小分享—— 如何引导孩子学会分享

热门文章

  1. 空压机安全阀行业现状调研及趋势分析报告
  2. 曙光超算平台如何使用以及常见问题
  3. 开源企业内部IM系统搭建
  4. java double类型保留小数和四舍五入
  5. 圣杯布局、双飞翼布局
  6. react 单元测试 (jest+enzyme)
  7. 没有静态 IP,用的是动态 IP 怎样配置服务器远程登录
  8. axios箭头函数和this问题处理
  9. 并行计算之OpenMP入门简介
  10. AVPlayer的使用