资源简介
MATLAB多目标优化模型代码,只需要自己修改多目标函数,可以运行,在数学建模等比赛中可以使用,可以直接运行,还含有遗传算法的工具箱,解压添加路径就可以使用,百度查询MATLAB工具箱导入即可

代码片段和文件信息
function MultiGA()
%% 遗传算法求解多目标优化案例
%% 将原多目标函数改写为f1=(x^2+y^2)/4;f2=x(1-y)+10;
% 运用线性叠加法,F=a*f1(x)+b*f2(x) a+b=1
% 总目标函数改写为 f=0.6*(x^2+y^2)/4+0.4*(x*(1-y)+10);
popse=100; % 种群数目
maxgen=50; % 最大迭代次数
preci=20; % 编码长度
gap=0.95; % 代沟大小
px=0.7; % 交叉概率
pm=0.01; %变异概率
lbx=1; % 变量下界
lby=1;
ubx=4; % 变量上界
uby=2;
trace=zeros(3maxgen); % 定义寻优结果的初始值
FieldD=[preci preci;lbx lby;ubx uby;1 1;0 0;1 1;1 1]; % 区域描述器
chrom=crtbp(popsepreci*2); % 创建随机种群
% 优化
gen=0;
pop=bs2rv(chromFieldD); % 进制转换
X=pop(:1);Y=pop(:2);
objv=0.15*(X.^2+Y.^2)+0.4*(X.*(1-Y)+10); % 目标函数
while gen < maxgen
fitnv=ranking(-objv);
selch=select(‘sus‘chromfitnvgap); % 选择 ‘sus’表示为随机遍历抽样
selch=recombin(‘xovmp‘selchpx); % 重组 ‘xovmp’表示多点交叉
selch=mut(selchpm);
pop=bs2rv(selchFieldD); % 子代个体进行进制转换
X=pop(:1);Y=pop(:2);
objvsel=0.15*(X.^2+Y.^2)+0.4*(X.*(1-Y)+10);
[chromobjv]=reins(chromselch11objvobjvsel);
pop=bs2rv(chromFieldD);
gen=gen+1;
[YI]=max(objv);
trace(1:2gen)=pop(I:);
trace(3gen)=Y;
end
%% 画出求解结果
figure(1)
plot3(trace(1:)trace(2:)trace(3:)‘b‘); % 画出每代最优点
xlabel(‘x‘)
ylabel(‘y‘)
zlabel(‘f‘)
figure(2)
plot(1:maxgentrace(3:));
xlabel(‘迭代次数‘)
ylabel(‘最优解‘)
bestz=trace(3end);
bestX=trace(1end);
bestY=trace(2end);
fprintf([‘最优解:\n X=‘num2str(bestX)‘\n Y=‘num2str(bestY)‘\n z=‘num2str(bestz)])
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2019-05-07 15:17 gatbx\
文件 3242 2014-03-06 10:58 gatbx\bs2rv.m
文件 1781 2014-03-06 10:58 gatbx\contents.m
文件 1192 2014-03-06 10:58 gatbx\crtba
文件 2198 2014-03-06 10:58 gatbx\crtbp.m
文件 2105 2014-03-06 10:58 gatbx\crtrp.m
目录 0 2019-05-07 15:17 gatbx\DOC\
文件 3850173 2014-03-06 11:02 gatbx\DOC\GAToolbox Documentation.pdf
文件 18009 2014-03-06 10:58 gatbx\gpl.txt
文件 7124 2014-03-06 10:58 gatbx\migrate.m
文件 3962 2014-03-06 10:58 gatbx\mpga.m
文件 1610 2014-03-06 10:58 gatbx\mut.m
文件 3423 2014-03-06 10:58 gatbx\mutate.m
文件 4898 2014-03-06 10:58 gatbx\mutbga.m
文件 2648 2014-03-06 10:58 gatbx\objfun1.m
文件 2567 2014-03-06 10:58 gatbx\objharv.m
文件 4698 2014-03-06 10:58 gatbx\ranking.m
文件 1490 2014-03-06 10:58 gatbx\readme.txt
文件 1840 2014-03-06 10:58 gatbx\recdis.m
文件 1906 2014-03-06 10:58 gatbx\recint.m
文件 1963 2014-03-06 10:58 gatbx\reclin.m
文件 4879 2014-03-06 10:58 gatbx\recmut.m
文件 2505 2014-03-06 10:58 gatbx\recombin.m
文件 5518 2014-03-06 10:58 gatbx\reins.m
文件 1229 2014-03-06 10:58 gatbx\rep.m
文件 2091 2014-03-06 10:58 gatbx\resplot.m
文件 1134 2014-03-06 10:58 gatbx\rws.m
文件 1208 2014-03-06 10:58 gatbx\scaling.m
文件 2399 2014-03-06 10:58 gatbx\select.m
文件 2095 2014-03-06 10:58 gatbx\sga.m
文件 1345 2014-03-06 10:58 gatbx\sus.m
............此处省略36个文件信息
相关资源
- matlab_OFDM调制解调(来自剑桥大学)
- Matlab路面裂缝识别69319
- 高灵敏度GPS接收机MATLAB仿真,附捕获
- 基于MATLAB的质点弹道计算与外弹道优
- 阵列天线的matlab仿真
- MATLAB 经典程序源代码大全
- MATLAB小波软阈值去噪代码33473
- 天线阵的波束形成在MATLAB仿真程序及
- 非线性SVM算法-matlab实现
- 《MATLAB 智能算法超级学习手册》-程序
- 组合导航matlab程序
- 读取txt文件内容matlab代码实现
- Matlab实现基于相关的模板匹配程序
- matlab优化工具箱讲解
- 基于MATLAB的快速傅里叶变换
- 光纤传输中的分布傅立叶算法matlab实
- 基于matlab的图像处理源程序
- matlab 椭圆拟合程序
- 算术编码解码matlab源代码
- optical_flow 光流法 matlab 实现程序
- 引导图像滤波器 Matlab实现
- 分形几何中一些经典图形的Matlab画法
- OFDM系统MATLAB仿真代码
- SVM工具箱(matlab中运行)
- 图像小波变换MatLab源代码
- LU分解的MATLAB实现
- 冈萨雷斯数字图像处理matlab版(第三
- 替代数据法的matlab程序
- 用matlab实现的多站定位系统性能仿真
- 通过不同方法进行粗糙集属性约简m
评论
共有 条评论