NSGA-II
算法实例
目前的多目标优化算法有很?/p>
, Kalyanmoy Deb
的带精英策略的快速非支配
排序遗传算法
(NSGA-II)
无疑是其中应用最为广泛也是最为成功的一种?/p>
本文?/p>
的算法是
MATLAB
自带的函?/p>
gamultiobj
?/p>
该函数是基于
NSGA-II
改进的一种多
目标优化算法?/p>
一?/p>
数值例?/p>
多目标优化问?/p>
4
2
4
2
2
1
1
2
1
1
1
2
2
1
2
4
2
2
4
2
1
2
2
1
2
1
1
2
1
2
min
(
,
)
10
min
(
,
)
5
5
.
.
5
5
f
x
x
x
x
x
x
x
x
x
f
x
x
x
x
x
x
x
x
x
s
t
x
?/p>
?/p>
?/p>
?/p>
?/p>
?/p>
?/p>
?/p>
?/p>
?/p>
?/p>
?/p>
?/p>
?
?/p>
?/p>
?/p>
?/p>
二?/p>
Matlab
文件
1
?/p>
适应值函?/p>
m
文件?/p>
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
?/p>
调用
gamultiobj
函数,及参数设置?/p>
clear
clc
fitnessfcn=@f; %
适应度函数句?/p>
nvars=2; %
变量个数
lb=[-5,-5]; %
下限
ub=[5,5]; %
上限
A=[];b=[]; %
线性不等式约束
Aeq=[];beq=[]; %
线性等式约?/p>
options=gaoptimset('paretoFraction',,'populationsize',100,'ge
nerations',200,'stallGenLimit',200,'TolFun',1e-100,'PlotFc
ns',@gaplotpareto);
%
最优个体系?/p>
paretoFraction
为;
种群大小
populationsize
?/p>
100
?/p>
最大进化代?/p>
generations
?/p>
200
?/p>
%
停止代数
stallGenLimit
?/p>
200
?/p>
适应度函数偏?/p>
TolFun
设为
1e-100
,函?/p>
gaplotpareto
:绘?/p>
Pareto
前端
[x,fval]=gamultiobj(fitnessfcn,nvars,A,b,Aeq,beq,lb,ub,option