当前位置:文档之家› 多目标优化实例和matlab程序

多目标优化实例和matlab程序

多目标优化实例和matlab程序
多目标优化实例和matlab程序

NSGA-II 算法实例

目前的多目标优化算法有很多, Kalyanmoy Deb 的带精英策略的快速非支配排序遗传算法(NSGA-II) 无疑是其中应用最为广泛也是最为成功的一种。本文用的算法是MATLAB 自带的函数gamultiobj ,该函数是基于NSGA-II 改进的一种多目标优化算法。

一、 数值例子

多目标优化问题

424221*********

4224212212112

12min (,)10min (,)55..55

f x x x x x x x x x f x x x x x x x x x s t x =-++-=-++-≤≤??-≤≤? 二、 Matlab 文件

1. 适应值函数m 文件:

function y=f(x)

y(1)=x(1)^4-10*x(1)^2+x(1)*x(2)+x(2)^4-x

(1)^2*x(2)^2;

y(2)=x(2)^4-x(1)^2*x(2)^2+x(1)^4+x(1)*x(

2);

2. 调用gamultiobj 函数,及参数设置:

clear

clc

fitnessfcn=@f; %适应度函数句柄

nvars=2; %变量个数

lb=[-5,-5]; %下限

ub=[5,5]; %上限

A=[];b=[]; %线性不等式约束

Aeq=[];beq=[]; %线性等式约束

options=gaoptimset('paretoFraction',0.3,'

populationsize',100,'generations',200

,'stallGenLimit',200,'TolFun',1e-100,

'PlotFcns',@gaplotpareto);

% 最优个体系数paretoFraction 为0.3;种群

大小populationsize 为100,最大进化代数generations 为200,

% 停止代数stallGenLimit 为200, 适应度函

数偏差TolFun 设为1e-100,函数

gaplotpareto :绘制Pareto 前端

[x,fval]=gamultiobj(fitnessfcn,nvars,A,b ,Aeq,beq,lb,ub,options)

3. 计算结果

-40-35-30-25-20

-15-10-5

-50

5

10

15

202530

35

Objective 1O b j e c t i v e 2

Pareto front

图1. 实例1对应的Pareto 前沿图

从图1可以看出Pareto 前分布较均匀,多样性较好。

相关主题
文本预览
相关文档 最新文档