如何画全局优化问题的收敛曲线和多目标优化的Pareto前沿(使用gaoptimset函数)
来源:互联网 发布:win10 linux bash 编辑:程序博客网 时间:2024/05/17 23:59
目标优化算法中有全局优化和多目标优化问题,其中通过图形可以更加直接明显得表现目标函数的值和影响因素的值。
1.收敛曲线
收敛曲线是在全局优化的问题中,有一个目标函数,其中主要的一步是gaoptimset函数设置,‘PlotFcns’,设为@gaplotbestf,下面举一个例子。
独立运行30次,提供30次中得到的最好目标函数值、最差目标函数值、平均目标函数值以及标准方差。
fun1函数:
function y=fun1(x) y=0;for i=1:1:30 y=y+i*x(i)^4;endb1=2*rand()-1;if(b1<0) b1=-b1;endy=y+b1;
main函数:
clear clc FVAL=zeros(1,30);FVALCELL=cell(1,30);for j=1:1:30fitnessfcn=@fun2; nvars=30; LB=-10.*ones(1,30); lb=LB; UB=10.*ones(1,30); ub=UB; A=[];b=[]; Aeq=[];beq=[]; options=gaoptimset('paretoFraction',0.3,'populationsize',100,'generations',200,'stallGenLimit',200,'TolFun',1e-10,'PlotFcns',@gaplotbestf); [x,fval]=gamultiobj(fitnessfcn,nvars,A,b,Aeq,beq,lb,ub,options);FVAL(j)=fvalFVALCELL{j}=x;endfval_min=min(FVAL)fval_max=max(FVAL)fval_mean=mean(FVAL)fval_std=std(FVAL)
结果如下:
计算结果(命令窗中显示)结果如下:
2.Pareto前沿
同收敛曲线一样,其中gaoptimset函数设置也是主要的一步,‘PlotFcns’,设为@gaplotpareto,下面也举一个例子。
fun1函数:
function y=fun1(x) n=30;g1=0;for i=2:1:n g1=g1+x(i);endg=1+9*g1/(n-1);y(1)=x(1);y(2)=g*(1-sqrt(x(1)/g));
main函数:
clear clc fitnessfcn=@fun1;nvars=30; LB=0.*ones(1,30); lb=LB; UB=1.*ones(1,30); ub=UB; A=[];b=[]; Aeq=[];beq=[]; options=gaoptimset('paretoFraction',0.3,'populationsize',200,'generations',300,'stallGenLimit',200,'TolFun',1e-10,'PlotFcns',@gaplotpareto); [x,fval]=gamultiobj(fitnessfcn,nvars,A,b,Aeq,beq,lb,ub,options)
得到的Pareto前沿图像:
阅读全文
0 0
- 如何画全局优化问题的收敛曲线和多目标优化的Pareto前沿(使用gaoptimset函数)
- 多目标优化-测试问题及其Pareto前沿
- 【多目标优化】Pareto优胜的概念
- 【多目标优化】Pareto最优解很少
- 基于SOM的多目标优化
- 多目标优化问题概述
- 多目标优化算法的测试函数与解
- 多目标优化问题中常见分解方法的理解
- 多目标进化优化的Tchebycheff分解方法
- 多目标优化
- 多目标优化
- 多目标优化
- 多目标优化介绍(小生境)
- 多目标优化的遗传算法及其改进(浮点数编码),对多个函数进行测试
- 遗传算法求解多约束、多类型车辆、多目标优化的车辆路径问题
- 最优化方法(n)多目标优化
- 漫步最优化二十一——全局收敛
- 学习-基于遗传算法的多目标优化算法
- python查询mysql导出结果至Excel并发送邮件
- 前端window.onerror()的用法
- python学习——Python 数字(Number)
- 计算几何专题(计算两圆相交面积)
- unix下的DOS命令
- 如何画全局优化问题的收敛曲线和多目标优化的Pareto前沿(使用gaoptimset函数)
- Android build.gradle
- 从零开始部署Node.js服务至阿里云ECS服务器并实现外网IP访问
- 用Mendeley在Word插入参考文献
- 有没有职业规划的30岁,可以差出多少万年薪?
- idea 下载、上传项目到github
- Python 学习笔记: A byte of python (一) 基础
- JAVA基础
- apply家族函数