资源简介
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 Simuli
nk系统仿真 代码 李献 - 三相6脉波整流和12脉波整流电路分析
- 卡尔曼滤波(卡尔曼滤波理论与实践
- TURBO码的MATLAB实现
- 差分蜂群优化算法MATLAB实现.rar
- 数学建模的29个通用模型及matlab解法
- 基于AdaBoost算法的人脸检测,matlab实现
- Matlab空域频域图像增强.rar
- PSO负载均衡算法-matlab实现
-
仿真软件MATLAb/simuli
nk搭出来的一个 - Matlab模块库中文
- 灰度图像算术编码压缩程序Matlab.zip
- BP神经网络人脸识别MATLAB.zip
- 基于MATLAB GUI的数字图像处理仿真平台
- l粒子群算法工具箱psot
- MATLAB 车牌识别
- MATLAB图像检索123605
- Matlab经典教程——从入门到精通(原
- 纠错编码原理及MATLAB实现-刘爱莲课件
- HVAC系统——trnsys
- matlab下亚像素提取算法
- 基于MATLAB的超分辨率重建算法,亲测
- 目标跟踪算法KCF融合HOG+CN特征,matl
- 基于PCA算法实现人脸识别完整代码文
- UPS仿真报告matlab
- matlab3D表面与体绘制数据及代码
- 图像配准程序matlab
- Matlab Neural Network Toolbox documentation.pd
- Robotics工具箱用户手册
- 极限学习机matlab代码
评论
共有 条评论