使用nsga-2(gamultiobj)实现matlab多目标规划

这篇具有很好参考价值的文章主要介绍了使用nsga-2(gamultiobj)实现matlab多目标规划。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

gamultiobj函数基本知识点

使用nsga-2(gamultiobj)实现matlab多目标规划

  • fun代表的是目标函数

  • nvars代表的是待求变量的个数

  • A为不等式约束的系数项

  • b为不等式约束的常数项

  • Aeq为等式约束的系数项

  • beq为等式约束的常数项

  • lb和ub为变量x取值的上下限

  • 其中非线性等式约束和不等式约束需要创建函数来进行带入,对应上述中的使用部分为nonlcon

  • 在此需要注意一下,这个函数是求目标函数的最小值,如果是最大值时需要装换为求最小值,下面的约束条件也要注意转换。

使用NSGA-II(gamultiobj)求解多目标优化算法-线性规划

% 清除所有变量(非必须)
clc,clear

%% 模型设置
% 获取目标函数的函数句柄
fun = @fitnessfun; % 设置适应度函数句柄
% 变量个数
nvars=4;
% 约束条件形式1:上下界约束(若无取空数组[])
% lb<= X <= ub
lb=[0,0,0,0];
ub=[];

% 约束条件形式2:线性规划不等式约束(若无取空数组[])
% A*X <= b 
A = [0    0 1 1
    -1/3  0 0 0
     0 -1/2 0 0
     0 0 0 0];

b = [48 ; 30 ; 30 ; 0];

% 约束条件形式3:等式约束(若无取空数组[])
% Aeq*X = beq
Aeq=[1 1 0 0;0 0 0 0; 0 0 0 0; 0 0 0 0];
beq=[120;0;0;0];

%% 求解器设置
% 最优个体系数paretoFraction
% 种群大小populationsize
% 最大进化代数generations
% 停止代数stallGenLimit
% 适应度函数偏差TolFun
% 函数gaplotpareto:绘制Pareto前沿 
options=gaoptimset('paretoFraction',0.3,'populationsize',200,'generations',300,'stallGenLimit',200,'TolFun',1e-10,'PlotFcns',@gaplotpareto);

%% 主求解
[x,fval]=gamultiobj(fun,nvars,A,b,Aeq,beq,lb,ub,options)
function f=fitnessfun(x)
% f是目标函数向量
% gamultiobj是以目标函数分量取极小值为目标,极大值的目标函数注意取相反数
f(1)=-(x(1)*100/3 + x(3)*90/3  + x(2)*80/2+x(4)*70/2);
f(2)=x(3)+x(4);
end

使用NSGA-II(gamultiobj)求解多目标优化算法-非线性规划

使用nsga-2(gamultiobj)实现matlab多目标规划

clc;clear;
%% 模型设置
%% 求解器设置
% 最优个体系数paretoFraction
% 种群大小populationsize
% 最大进化代数generations
% 停止代数stallGenLimit
% 适应度函数偏差TolFun
% 函数gaplotpareto:绘制Pareto前沿 
options=gaoptimset('paretoFraction',0.3,'populationsize',200,'generations',300,'stallGenLimit',200,'TolFun',1e-10,'PlotFcns',@gaplotpareto);
fun = @fitnessfun; % 设置适应度函数句柄
nonlcon = @nonlconfun; % 设置非线性约束函数句柄
nvars = 4; % 自变量个数
%% 线性规划系数和右端列向量
A = [];  
b = [];
Aeq = [];  
beq = [];
%% 自变量上下界
lb = [2;17;17;17];  
ub = [];
%% 主求解
[x,fval]=gamultiobj(fun,nvars,A,b,Aeq,beq,lb,ub,nonlcon,options)
function f = fitnessfun(x)
% 目标函数:多目标
f(1) = pi/60*x(1)*(2*x(3)+x(4))
f(2) = pi/2*x(1)^2*x(3)*x(4);   
end
function [c,ceq] = nonlconfun(x)
	% 非线性约束:c即不等式约束的函数值,是列向量(可以存在多个约束)。ceq即等式约束函数的函数值,同样是列向量(可以存在多个约束)
    % x:为自变量的行向量
    % c:非线性不等式约束的函数值.
    % ceq:非线性等式约束的函数值.   
     c(1,1) = x(1)*(x(2)-x(4));
     c(2,1) = 3.222*10^9/(x(1)^3*x(2)*(2*x(3)+x(4)))-450;
     c(3,1) = x(1)*(x(4)-pi*x(3));
     ceq(1,1)=pi*(2*x(1)*x(3)+x(4))-3000;  
end

参考文献

MATLAB遗传算法工具箱的使用及实例(非线性规划)
其中ga函数得调用只能使用一个目标函数,不适合多目标规划
【MATLAB】多目标优化算法 NSGA-II (gamultiobj) 的使用
Matlab利用NSGA2算法求解多目标优化文章来源地址https://www.toymoban.com/news/detail-445971.html

到了这里,关于使用nsga-2(gamultiobj)实现matlab多目标规划的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 多目标优化 | NSGA-Ⅲ(中篇,附MATLAB代码)

    上个月我们在多目标优化 | NSGA-Ⅲ(上篇,附MATLAB代码)这篇推文中,为各位回顾了 NSGA-Ⅱ ,同时也讲解了多目标优化算法 NSGA-Ⅲ 中的 参考点生成方法 。今天我们书接上回,为各位讲解NSGA-Ⅲ中的 种群个体的自适应归一化操作 。 首先需要明确一个问题,为什么需要进行归

    2024年02月07日
    浏览(39)
  • 五种多目标优化算法(NSWOA、MOJS、MOAHA、MOPSO、NSGA2)性能对比(提供MATLAB代码)

    1.1NSWOA 1.2MOJS 1.3MOAHA 1.4MOPSO 1.5NSGA2 为了测试5种算法的性能将其求解9个多目标测试函数(zdt1、zdt2 、zdt3、 zdt4、 zdt6 、Schaffer、 Kursawe 、Viennet2、 Viennet3),其中Viennet2 与Viennet3的目标为3,其余测试函数的目标为2,并采用6种评价指标(IGD、GD、HV、Coverage、Spread、Spacing)进行评

    2024年02月22日
    浏览(38)
  • 五种多目标优化算法(MOJS、MOGWO、NSWOA、MOPSO、NSGA2)性能对比,包含6种评价指标,9个测试函数(提供MATLAB代码)

    1.1MOJS 1.2MOGWO 1.3NSWOA 1.4MOPSO 1.5NSGA2 为了测试5种算法的性能将其求解9个多目标测试函数(zdt1、zdt2 、zdt3、 zdt4、 zdt6 、Schaffer、 Kursawe 、Viennet2、 Viennet3),其中Viennet2 与Viennet3的目标为3,其余测试函数的目标为2,并采用6种评价指标(IGD、GD、HV、Coverage、Spread、Spacing)进行评

    2024年02月21日
    浏览(34)
  • 五种多目标优化算法(MOAHA、MOGWO、NSWOA、MOPSO、NSGA2)性能对比,包含6种评价指标,9个测试函数(提供MATLAB代码)

    1.1MOAHA 1.2MOGWO 1.3NSWOA 1.4MOPSO 1.5NSGA2 为了测试5种算法的性能将其求解9个多目标测试函数(zdt1、zdt2 、zdt3、 zdt4、 zdt6 、Schaffer、 Kursawe 、Viennet2、 Viennet3),其中Viennet2 与Viennet3的目标数为3,其余测试函数的目标数为2,并采用6种评价指标(IGD、GD、HV、Coverage、Spread、Spacing)进

    2024年02月21日
    浏览(37)
  • 基于蚁群算法实现无人机航迹任务规划(含目标和威胁)附Matlab仿真

     ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进, 代码获取、论文复现及科研仿真合作可私信。 🍎个人主页:Matlab科研工作室 🍊个人信条:格物致知。 更多Matlab完整代码及仿真定制内容点击👇 智能优化算法       神经网络预测       雷达通信    

    2024年02月03日
    浏览(34)
  • 【无人机】基于蚁群算法实现无人机航迹任务规划(含目标和威胁)附Matlab实现

     ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进, 代码获取、论文复现及科研仿真合作可私信。 🍎个人主页:Matlab科研工作室 🍊个人信条:格物致知。 更多Matlab完整代码及仿真定制内容点击👇 智能优化算法       神经网络预测       雷达通信    

    2024年02月03日
    浏览(32)
  • 【分布式能源的选址与定容】基于多目标粒子群算法分布式电源选址定容规划研究(Matlab代码实现)

    目录 💥1 概述 1.1 功率损耗 ​编辑1.2 电压质量 1.3 DG总容量 📚2 运行结果 🌈3 Matlab代码实现 🎉4 参考文献 参考文献: 本文采用的是换一个算法解决, 基于基于多目标粒子群算法分布式电源选址定容规划研究。 将可再生能源的分布式发电技术与大电网结 合,是 普 遍 公

    2024年02月15日
    浏览(35)
  • MATLAB 多目标规划

    ✅作者简介:人工智能专业本科在读,喜欢计算机与编程,写博客记录自己的学习历程。 🍎个人主页:小嗷犬的个人主页 🍊个人网站:小嗷犬的技术小站 🥭个人信条:为天地立心,为生民立命,为往圣继绝学,为万世开太平。 多目标规划 是指在一定的约束条件下,求解

    2024年02月04日
    浏览(45)
  • 数模3—Matlab线性规划、非线性规划、多目标规划(超全解法合集)

    线性规划,非线性规划,多目标规划都归于优化类模型 🎐例题 张麻子既要攻碉楼又要追替身,他们一伙6人,总共1200发子弹;每有一人攻碉楼会给百姓带来40点士气值,每有一人追替身会给百姓带来30点士气值;攻碉楼每人需240发子弹,追替身每人需120发。 问攻碉楼和追替身各

    2023年04月19日
    浏览(35)
  • 多目标遗传算法NSGA-II改进策略

            上篇写道了关于多目标遗传算法NSGA-II原理详解及算法代码实现,本文将继续在这篇文章的基础上更深一步的向前探索,探索方向为:         基于NSGA-II算法的固有缺点,着重对其算法提出改进策略,并予以代码实现。同样,本文不灌水,希望读者是在有一定基

    2024年02月06日
    浏览(28)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包