gamultiobj

利用遗传算法找到帕累托前沿的多个健身功能

描述

X= gamultiobj(有趣的据nvar发现X帕累托前沿的中定义的目标函数有趣的据nvar是优化问题(决策变量的数目)的尺寸。解决方案X是局部的,这意味着它可能不在全局的帕累托前沿。

注意

传递额外的参数(优化工具箱)解释了如何额外的参数,传递给目标函数和约束的非线性函数,如果必要的。

X= gamultiobj(有趣的据nvar一个b发现当地的帕累托集X服从线性不等式 一个 X b . 见不等式约束条件(优化工具箱)。gamultiobj万博1manbetx只支持默认的线性约束填充类型选项 ('doubleVector')。

X= gamultiobj(有趣的据nvar一个bAEQ说真的发现当地的帕累托集X服从线性等式 一个 Ë q X = b Ë q 线性不等式 一个 X b 线性等式约束(优化工具箱)。(组A = []b = []如果没有不平等存在。)gamultiobj万博1manbetx只支持默认的线性约束填充类型选项 ('doubleVector')。

X= gamultiobj(有趣的据nvar一个bAEQ说真的UB定义设计变量的一组上下限X在这个范围内找到一个局部的帕累托集合XUB约束(优化工具箱)。使用空矩阵AEQ说真的如果不存在线性等式约束。gamultiobj万博1manbetx只支持默认的绑定约束填充类型选项 ('doubleVector')。

X= gamultiobj(有趣的据nvar一个bAEQ说真的UB非酒精找到一个帕累托组对象中定义的约束非酒精. 功能非酒精接受X并返回向量CCEQ分别表示非线性不等式和等式。gamultiobj最小化有趣的这样c (x)0量表(x) = 0。(组磅= []乌兰巴托= []如果没有边界存在。)gamultiobj万博1manbetx只支持默认的非线性约束填充类型选项 ('doubleVector')。

X= gamultiobj(有趣的据nvar一个bAEQ说真的UB选项要么X= gamultiobj(有趣的据nvar一个bAEQ说真的UB非酒精选项找到一个帕累托集合X中的值替换默认的优化参数选项。创建选项使用optimoptions(推荐)或从优化应用程序导出。

X= gamultiobj(问题发现了帕累托集问题,其中问题是一个结构。创建问题通过从优化应用程序导出问题,如中所述导入和导出您的工作(优化工具箱)。

[Xfval)= gamultiobj (___,对于任何输入变量,返回一个矩阵fval,所有的适应度函数的值定义在有趣的所有的解决方案万博 尤文图斯Xfvalnf列,其中nf是目标的数量,并且有相同的行数X

[Xfvalexitflag输出)= gamultiobj (___回报exitflag,一个整数标识算法停止的原因,和输出,包含有关优化过程中信息的结构。

[Xfvalexitflag输出人口分数)= gamultiobj (___回报人口,其行是最后的人口,和分数,即最终人口的得分。

例子

全部折叠

找到帕累托前一个简单的多目标的问题。有两个目标和两个决策变量X

fitnessfcn = @(X)[范数(X)^ 2,0.5 *范数(X(:) -  [2; -1])^ 2 + 2];

找到这个目标函数的Pareto前沿。

rng默认的%再现性x = gamultiobj (fitnessfcn 2);
终止优化:帕累托解的平均变化范围小于选择范围。万博 尤文图斯

绘制解决方案点。

情节(x (: 1) x (:, 2),“柯”)包含(“x”(1))ylabel (“x”(2))标题(“参数空间帕累托点”

若要查看线性约束对此问题的影响,请参见带线性约束的多目标问题

这个例子展示了如何在线性约束下找到多目标问题的Pareto前沿。

有两个目标函数和两个决策变量X

fitnessfcn = @(X)[范数(X)^ 2,0.5 *范数(X(:) -  [2; -1])^ 2 + 2];

线性约束 X 1 + X 2 1 / 2

A=[1,1];b=1/2;

找到帕累托前沿。

rng默认的%再现性x = gamultiobj (fitnessfcn 2 A, b);
终止优化:帕累托解的平均变化范围小于选择范围。万博 尤文图斯

画出约束溶液和线性约束。

情节(x (: 1) x (:, 2),“柯”t = linspace(-1/2,2);y = 1/2 - t;持有绘图(t,y,“b——”)包含(“x”(1))ylabel (“x”(2))标题(“参数空间帕累托点”)举行

若要查看从该问题中删除线性约束的效果,请参见简单多目标问题

找到两个适应度函数的Pareto前沿罪(x)COS(x)的上的间隔 0 X 2 π

fitnessfcn = @ (x) [sin (x), cos (x));据nvar = 1;磅= 0;乌兰巴托= 2 *π;rng默认的%的再现性x=gamultiobj(fitnessfcn、nvars、[]、[]、[]、[]、lb、ub)
终止优化:帕累托解的平均变化范围小于选择范围。万博 尤文图斯
X =18×14.7124 4.7124 3.1415 3.6733 3.9845 3.4582 3.9098 4.4409 4.0846 3.8686⋮

策划解决方案。gamultiobj沿着整个帕累托前沿找到点。

情节(sin (x), cos (x)“r*”)包含(“sin (x)”)ylabel ('COS(X)')标题(“Pareto前沿”)图例(“帕累托面前”

查找并绘制帕累托前两个目标谢弗的第二功能。这个函数有一个断开Pareto前沿。

将此代码复制到MATLAB®路径上的函数文件中。

函数Y = schaffer2(x)的%y有两列为两个目标和所有x初始化yy = 0(长度(x), 2);%评估的首要目标。这个目标是分段连续的。i = 1:长度(x)如果x(i) <= 1 y(i,1) = -x(i);elseifx(i) <=3 y(i,1) = x(i) -2;elseifx(i)<=4y(i,1)=4-x(i);其他的y(i,1)=x(i)-4;结束结束%评估第二个目标Y(:,2)=(X -5)^ 2。

画出两个目标。

x = 1:0.1:8;y = schaffer2 (x);情节(x, y (: 1),'R',X,Y(:,2),'B');xlabelXylabel“schaffer2 (x)”传说(“目标1”“目标2”

两个目标函数竞争X在范围内[1,3号),[4,5]。但是,帕累托最优前仅由两个分离的区域的,对应于X在范围内[1,2][4,5]。有分离的区域,因为该区域[2,3]不如[4,5]. 在这个范围内,客观1具有相同的价值观,但客观2较小。

设置界限,以保持种群的成员范围le x 5美元\ \ le 10美元

磅= -5;UB = 10;

设置选项以查看Pareto前端gamultiobj运行。

选项= optimoptions('gamultiobj'“PlotFcn”,@gaplotpareto);

呼叫gamultiobj

rng默认的%再现性[x, fval exitflag、输出]= gamultiobj (@schaffer2 1[]、[][],[],磅,乌兰巴托,选项);
优化终止:几代人的最大数量超标。

运行一个简单的多目标的问题,并获得所有可用的输出。

设置随机数生成器以保证再现性。

rng默认的

将fitness函数设置为kur_multiobjective,一个具有三个控制变量并返回两个适应度函数值的函数。

fitnessfcn = @kur_multiobjective;nvars = 3;

kur_multiobjective函数具有下面的代码。

函数Y = kur_multiobjective(x)的多目标问题的多目标目标函数。%这两个目标问题的Pareto最优集是非凸的%以及断开。功能KUR_​​MULTIOBJECTIVE计算两个%的目标,并返回大小2×1的向量y。参考文献:Kalyanmoy Deb,“多目标优化使用”%进化算法”,John Wiley & Sons ISBN 047187339% MathWorks, Inc.版权所有%为两个目标初始化y=零(2,1);%计算第一目标我= 1:2 y y (1) = (1) - 10 * exp (-0.2 * sqrt (x (i) ^ 2 + x (i + 1) ^ 2));结束%计算第二个目标i = 1:3 (2) = y (2) + abs (x (i)) ^ 0.8 + 5 * sin (x(我)^ 3);结束

这个功能也出现在例如多目标遗传算法选择

设置所有变量的上下限。

ub=[5 5 5];lb=-ub;

找到这个问题的帕累托前边和所有其他输出。

[X,FVAL,exitflag,输出,人口​​,分数] = gamultiobj(fitnessfcn,nvars,[],[],[],[],LB,UB);
终止优化:帕累托解的平均变化范围小于选择范围。万博 尤文图斯

检查一些返回变量的大小。

size x=大小(x)size population=大小(population)size scores=大小(分数)
SIZEX = 18 3 = sizepopulation 50个3 sizescores = 50 2

返回的Pareto front包含18个点。最后的人口有50人。每一个人口row有三个维度,对应于三个决策变量。每一个分数行有两个维度,对应于两个健身功能。

输入参数

全部折叠

健身功能进行优化,指定为功能手柄或函数的名称。

有趣的是一个接受双精度实行向量的函数吗X的长度据nvar然后返回一个向量F(X)的目标函数值。有关编写细节有趣的计算目标函数

如果你设置UseVectorized选择真正的,然后有趣的接受大小的矩阵ñ-由-据nvar,其中,所述矩阵表示ñ个人。有趣的返回大小的矩阵ñ-由-,其中是目标函数的数目。见矢量化的健身功能

例:@ (x) (sin (x), cos (x))

数据类型:烧焦|function_handle|字符串

变量的数目,指定为正整数。求解器传递长度的行向量据nvar有趣的

例:4

数据类型:双重的

线性不等式约束,表示为实矩阵。一个是一个中号-由-据nvar矩阵,其中中号是不平等的数目。

一个编码中号线性不等式

A*x<=b

在哪里X是列向量据nvar变量x (:),b是一个列向量中号元素。

例如,给予约束= [1,2,3,4,5,6)B = [10; 20; 30]要指定这些总和:

X1+ 2X2≤10
3X1+ 4X2≤20
X1+ 6X2≤30。

例:于x组分的总和设置为1或更小,取一个= 1 (1,N)B = 1

数据类型:双重的

线性不等式约束,指定为实数向量。b是一个中号相关的 - 元素矢量一个矩阵。如果您通过b作为行向量,求解器内部进行转换b到列向量b (:)

b编码中号线性不等式

A*x<=b

在哪里X是列向量据nvar变量x (:),一个是一个矩阵的大小中号-由-据nvar

例如,给予约束= [1,2,3,4,5,6)B = [10; 20; 30]要指定这些总和:

X1+ 2X2≤10
3X1+ 4X2≤20
X1+ 6X2≤30。

例:于x组分的总和设置为1或更小,取一个= 1 (1,N)B = 1

数据类型:双重的

线性等式约束,指定为实矩阵。AEQ是一个-由-据nvar矩阵,其中是等式的数目。

AEQ编码线性等式

AEQ * X = BEQ

在哪里X是列向量据nvar变量x (:),说真的是一个列向量元素。

例如,给予约束AEQ = [1,2,3; 2,4,1]BEQ = [10; 20]要指定这些总和:

X1+ 2X2+ 3X3= 10
2X1+ 4X2+X3=20个。

例:于x组分的总和设置为1,取AEQ =酮(1,N)BEQ = 1

数据类型:双重的

线性等式约束,指定为实向量。说真的是一个相关的 - 元素矢量AEQ矩阵。如果您通过说真的作为行向量,求解器内部进行转换说真的到列向量贝格(:)

说真的编码线性等式

AEQ * X = BEQ

在哪里X是列向量据nvar变量x (:),AEQ是一个矩阵的大小微地震-由-ñ

例如,给予约束AEQ = [1,2,3; 2,4,1]BEQ = [10; 20]要指定这些总和:

X1+ 2X2+ 3X3= 10
2X1+ 4X2+X3=20个。

例:于x组分的总和设置为1,取AEQ =酮(1,N)BEQ = 1

数据类型:双重的

下界,指定为实向量或实数组。如果纽梅尔(磅)=nvars,然后指定X(ⅰ)> =磅(I)对所有一世

如果numel(LB),然后指定X(ⅰ)> =磅(I)1 <= i <= numel(lb)

在这种情况下,解决者发出警告。

例:要指定所有x分量为正,集LB =零(nvars,1)

数据类型:双重的

上界,指定为实向量或实数组。如果numel(UB)= nvars,然后UB指定x (i) < =乌兰巴托(我)对所有一世

如果元素个数(乌兰巴托)<据nvar,然后UB指定x (i) < =乌兰巴托(我)1<=i<=numel(ub)

在这种情况下,解决者发出警告。

例:若要将所有x组件指定为小于一个,请设置乌兰巴托的=(据nvar, 1)

数据类型:双重的

非线性约束,指定为函数句柄或函数名。非酒精是一个接受行向量的函数吗X返回两个行向量,c (x)CEQ(x)的

  • c (x)是在非线性不等式约束的行矢量X。该gamultiobj功能试图满足c(x)<=0对于所有条目C

  • CEQ(x)的行向量的非线性等式约束在X。该gamultiobj功能试图满足量表(x) = 0对于所有条目CEQ

如果你设置UseVectorized选择真正的,然后非酒精接受大小的矩阵ñ-由-据nvar,其中,所述矩阵表示ñ个人。非酒精返回大小的矩阵ñ-由-mc在第一个参数中mc是非线性不等式约束的数目。非酒精返回大小的矩阵ñ-由-mceq在第二个论点中mceq是非线性等式约束的数目。看到矢量化的健身功能

例如,x = gamultiobj(据nvar @myfun, A、b Aeq,说真的,磅,乌兰巴托,@mycon),其中mycon是MATLAB®功能,诸如以下:

功能并[c,CEQ] = mycon(X)C = ...%计算非线性不等式x处。CEQ = ...%计算非线性等式x处。

有关详细信息,请参见非线性约束(优化工具箱)。

数据类型:烧焦|function_handle|字符串

优化选项,指定的输出optimoptions或者一个结构。有关选项的详细信息,请参见遗传算法选择

创建选项通过使用optimoptions(推荐)或通过优化应用程序导出选项。有关详细信息,请参见导入和导出您的工作(优化工具箱)。

optimoptions皮张的选项中列出斜体. 见optimoptions隐藏的选项

  • {}表示默认值。

  • {}*表示缺省时有线性约束,和用于MutationFcn也当有边界。

  • 一世*表明遗传算法为整数约束不同的方式处理选项;这种表示法并不适用于gamultiobj

  • 纳米表示该选项不适用于gamultiobj

对于选项遗传算法, 整数遗传算法,gamultiobj

选项 描述
ConstraintTolerance

确定相对于非线性约束的可行性。也,max (sqrt (eps), ConstraintTolerance)确定相对于线性约束可行性。

对于选项结构,请使用托尔肯

积极的标量|{1 e - 3}

CreationFcn

一世*创建初始群体的功能。作为指定的名称内置创建函数或函数句柄。看到人口选项

{'gacreationuniform'}|{ 'gacreationlinearfeasible'} *|自定义创建函数

CrossoverFcn

一世*该功能可在算法用来创建交叉孩子。作为指定的名称内置的交叉功能或功能句柄。看到交叉选项

{ 'crossoverscattered'}遗传算法{ 'crossoverintermediate'} *gamultiobj|'crossoverheuristic'|“交叉点”|'crossovertwopoint'|“crossoverarithmetic”|自交叉功能

CrossoverFraction

交叉功能产生的下一代人口比例,不包括精英儿童。

积极的标量|{0.8}

显示

显示器的水平。

“关”|'ITER'|'诊断'|{'最后'}

DistanceMeasureFcn

计算个体距离度量的函数。指定为内置距离度量函数或函数句柄的名称。该值适用于决策变量或设计空间(基因型)或功能空间(表型)。违约“distancecrowding”在功能空间(表型)。为了gamultiobj只有。见多目标的选择

对于选项结构,使用函数句柄,而不是名称。

{' distancecrowding '}意思和{@ distancecrowding, '表型'}|{@distancecrowding,基因型的}|自定义距离函数

EliteCount

纳米正整数,指定在当前这一代很多人都保证存活到下一代。在未使用gamultiobj

正整数|{ceil(0.05*PopulationSize)}|{0.05 *(默认族群大小)}对于混合整数问题

FitnessLimit

纳米如果适应度函数达到的值FitnessLimit,算法停止。

标量|{无穷}

FitnessScalingFcn

缩放适应度函数值的函数。指定为内置缩放函数或函数句柄的名称。选项不适用于gamultiobj

{'fitscalingrank'}|'fitscalingshiftlinear'|“fitscalingprop”|'fitscalingtop'|自定义适应度缩放函数

FunctionTolerance

该算法停止如果最好的适应度函数值在平均相对变化MaxStallGenerations世代小于或等于FunctionTolerance。如果StallTest'geometricWeighted',则算法停止,如果加权平均相对变化小于或等于FunctionTolerance

gamultiobj时,算法停止,当几何平均值的相对变化值蔓延超过options.MaxStallGenerations选项世代少于options.FunctionTolerance,而最终的利差小于过去的平均利差options.MaxStallGenerations选项代。看到gamultiobj算法

对于选项结构,请使用TolFun

积极的标量|{1E-6}遗传算法{1}的军医gamultiobj

HybridFcn

一世*之后继续优化的函数遗传算法终止。指定为名称或函数句柄。

可替代地,一个单元阵列指定混合功能和它的选项。看到GA混合功能

gamultiobj,唯一的混合函数是@fgoalattain. 见gamultiobj混合功能

看到当使用混合功能

函数名或句柄|“fminsearch”|“patternsearch”|“fminunc”|“fmincon”|{[]}

要么

1×2单元阵列|{@solver,hybridoptions},其中解算器= fminsearchpatternsearchfminunc, 要么fmincon{[]}

InitialPenalty

纳米一世*惩罚参数的初值

积极的标量|{10}

InitialPopulationMatrix

初始群体用于接种的遗传算法。拥有高达PopulationSizeñ列,其中ñ是变量的个数。你可以通过一个局部种群,意思是小于PopulationSize行。在这种情况下,遗传算法的用途CreationFcn产生剩余人口的成员。看到人口选项

对于选项结构,请使用InitialPopulation

矩阵|{[]}

InitialPopulationRange

矩阵或矢量指定个体的范围中的初始群体。适用于gacreationuniform创建功能。遗传算法移动和缩放默认的初始范围以匹配任何有限的范围。

对于选项结构,请使用PopInitRange

矩阵或向量|{[-10;10]}对于无限的组件,{[-1e4 + 1; 1E4 + 1]}为的整数约束问题无界组件,{[磅; UB]}对于有界组件,修改默认范围以匹配单边界限。

InitialScoresMatrix

一世*用来确定适合度的初始分数。拥有高达PopulationSize行和具有Nf列,其中Nf是(健身功能的数量1遗传算法, 比...更棒1gamultiobj)。你可以通过一个部分分数矩阵,意思是小于PopulationSize行。在这种情况下,解算器填充时,它评估的健身功能的分数。

对于选项结构,请使用InitialScores

多目标|的单目标|矩阵的列向量{[]}

MaxGenerations

该算法暂停前最大迭代次数。

对于选项结构,请使用一代又一代

正整数|{100*numberOfVariables}遗传算法{200*numberOfVariables}gamultiobj

MaxStallGenerations

该算法停止如果最好的适应度函数值在平均相对变化MaxStallGenerations世代小于或等于FunctionTolerance。如果StallTest'geometricWeighted',如果加权平均相对变化量小于或等于,则算法停止FunctionTolerance

gamultiobj时,算法停止,当几何平均值的相对变化值蔓延超过options.MaxStallGenerations选项世代少于options.FunctionTolerance,而最终的利差小于过去的平均利差options.MaxStallGenerations选项代。看到gamultiobj算法

对于选项结构,请使用StallGenLimit

正整数|{50}遗传算法{100}gamultiobj

最大暂停时间

纳米该算法停止,如果有目标函数为无改善最大暂停时间秒,以秒为单位抽搐TOC

对于选项结构,请使用StallTimeLimit

正标|{Inf}

MAXTIME

算法在运行之后停止MAXTIME秒,以秒为单位抽搐TOC。此限制是每次迭代之后执行的,所以遗传算法当迭代需要大量时间时,可能会超过限制。

对于选项结构,请使用时限

积极的标量|{Inf}

MigrationDirection

迁移的方向。看到迁移选项

“两个”|{'向前'}

MigrationFraction

从0到1的标量,指定迁移到不同子种群的每个子种群中的个体的分数。见迁移选项

标量|{0.2}

MigrationInterval

正整数,指定取亚群之间的个体迁徙之间发生世代数。看到迁移选项

正整数|{20}

MutationFcn

一世*产生突变子代的功能。指定为内置变异函数或函数句柄的名称。见变异选项

{' mutationgaussian '}遗传算法{ 'mutationadaptfeasible'} *gamultiobj|'变异制服'|自定义变异函数

非线性Constraintalgorithm

非线性约束算法。见非线性约束求解算法. 选项不可更改gamultiobj

对于选项结构,请使用NonlinConAlgorithm

{ 'auglag'}遗传算法{“惩罚”}gamultiobj

OutputFcn

函数遗传算法在每次迭代调用。指定为功能句柄或函数处理的一个单元阵列。看到输出功能选项

对于选项结构,请使用OutputFcns

函数句柄或函数的单元数组处理|{[]}

ParetoFraction

为从0到1的标量,指定保持在第一个Pareto前沿的个体的比例,同时求解者从更高的前沿选择个体gamultiobj只有。见多目标的选择

标量|{0.35}

惩罚因子

纳米一世*处罚更新参数。

积极的标量|{100}

PlotFcn

功能,通过该算法计算曲线数据。作为指定的名称内建绘图功能,功能手柄,或者一个单元阵列内置名称或函数处理。看到绘图选项

对于选项结构,请使用PlotFcns

遗传算法要么gamultiobj{[]} |'gaplotdistance' |'gaplotgenealogy' |'gaplotselection' |'gaplotscorediversity' | 'gaplotscores' |'gaplotstopping' |'gaplotmaxconstr' |自定义绘制函数

遗传算法只要:'gaplotbestf' |'gaplotbestindiv' |'gaplotexpectation' |'gaplotrange'

gamultiobj只要:'gaplotpareto' | 'gaplotparetodistance' | 'gaplotrankhist' | 'gaplotspread'

PlotInterval

指定对plot函数的连续调用之间的代数。

正整数|{1}

PopulationSize

人口规模。

正整数|{50}什么时候numberOfVariables <= 5{200}否则|{MIN(MAX(10个* nvars,40),100)}对于混合整数问题

填充类型

人口的数据类型。必须'doubleVector'对于混合整数问题。

'位字符串'|“自定义”|{ 'doubleVector'}

遗传算法忽略时,所有约束填充类型设定为“位串”要么“自定义”. 见人口选项

选择FCN

一世*功能交叉和变异的孩子的家长选择。作为指定的名称内置选择功能或功能句柄。

gamultiobj只使用“selectiontournament”

{ 'selectionstochunif'}遗传算法{'selectiontournament'}gamultiobj|'selectionremainder'|'selectionuniform'|“selectionroulette”|自定义选择功能

StallTest

纳米停止测试类型。

'geometricWeighted'|{'averageChange'}

UseParallel

并行计算适应度和非线性约束函数。看到向量化和并行选项(用户功能评估)如何使用全局优化工具箱并行处理

真正的|{假}

UseVectorized

指定函数是否向量化。看到向量化和并行选项(用户功能评估)矢量化的健身功能

对于选项结构,请使用矢量化与价值观'上'要么“关”

真正的|{假}

例:optimoptions (‘gamultiobj’,‘PlotFcn @gaplotpareto)

问题描述,指定为包含这些字段的结构。

fitnessfcn

健身功能

据nvar

设计变量数

Aineq

一个线性不等式约束矩阵

Bineq

b线性不等式约束的向量

AEQ

AEQ线性等式约束的矩阵

说真的

说真的线性等式约束的向量

下限开X

UB

上限X

非酒精

非线性约束函数

rngstate

可选字段来重置随机数生成器的状态

解算器

'gamultiobj'

选项

使用创建的选项optimoptions或从优化应用程序导出

创建问题通过从优化应用程序导出问题,如中所述导入和导出您的工作(优化工具箱)。

数据类型:结构

输出参数

全部折叠

帕累托点,作为-由-据nvar数组,是在帕累托前沿点的数量。每行X表示Pareto前面的一个点。

函数值在Pareto前面,作为参数返回-由-nf数组中。是帕累托前面的点数,和nf是适应度函数的个数。每行fval表示在一个Pareto点处的函数值X

原因gamultiobj停止,返回一个整数。

退出标志值 停止条件
1

价差相对变化的几何平均值options.MaxStallGenerations选项世代少于options.FunctionTolerance,而最终的利差小于过去的平均利差options.MaxStallGenerations选项

0

超过最大代数

1

优化终止通过输出功能或绘图功能

2

没有找到可行点

5

期限超过

关于优化过程的信息,以带有这些字段的结构返回。

输出字段 意义
问题类型

问题类型:

  • 无约束的——没有约束

  • “boundconstraints”- 只有绑定的限制

  • 'linearconstraints'-线性约束,带或不带约束

  • 'nonlinearconstr'-非线性约束,有或没有其他类型的约束

rngstate

MATLAB随机数发生器的状态,就在算法开始之前。您可以使用中的值rngstate重现的输出gamultiobj. 见重现结果

总数几代人,但不包括HybridFcn迭代。
funccount 功能评估的总数。
信息 gamultiobj退出消息。
averagedistance 平均“距离”,默认情况下是Pareto最优前沿成员及其平均值之间的差值的范数的标准偏差。
传播 最后两次迭代之间的“距离”和帕累托前沿上点的移动度量的组合。
maxconstraint 最终Pareto集的最大约束冲突。

最后的人口,作为一个返回ñ-由-据nvar数组,ñ是人口的数量。

最终群体的成绩,返回一个ñ-由-nf数组中。ñ是人口的数量,和nf是适应度函数的个数。

当存在非线性约束时,gamultiobj设置分数不可行的人口天道酬勤

更多关于

全部折叠

帕累托前沿

一个帕累托锋是一家集参数空间(决策变量的空间)有劣适应度函数值的点。

换句话说,对于帕累托前沿的每个点,你只能通过降低另一个适应度函数来提高一个适应度函数。有关详细信息,请参见什么是多目标优化?

作为本地与全局最优解(优化工具箱),一个帕累托前沿可能是局部的,但不是全局的。“局部”意味着帕累托点可以不低于邻近点,但在参数空间中较远的点可能在每个组件中具有较低的函数值。

算法

gamultiobj使用受控的,精英遗传算法(NSGA-II的一个变体[一])。一个精英GA总是垂青有更好的适应值(等级)的个体。受控精英GA也有利于个人,可以帮助增加种群的多样性,即使他们有一个较低的锻炼价值。保持种群的收敛多样性,最优Pareto前是很重要的。多样性是通过控制人口的精英成员作为算法进展保持。有两种选择,ParetoFractionDistanceMeasureFcn,控制精英主义。ParetoFraction限制的帕累托前沿(精英成员)的个体的数量。距离函数,通过选择DistanceMeasureFcn,有助于保持战线上的多样性,通过支持相对较远的个人在前线。如果传播,帕累托前的运动的量度,是小的。有关详细信息,请参见gamultiobj算法

参考

[1]德布,Kalyanmoy。利用进化算法进行多目标优化。奇切斯特,英格兰:John Wiley和Sons,2001。

扩展功能

介绍了R2007b