在帕累托集合中寻找点
在一个二维变量的双目标函数的帕累托前找点。
有趣= @ (x)[规范(x -[1, 2]) ^ 2;规范(x + (2,1)) ^ 2];RNG.默认%的再现性x = paretosearch(fun,2);
帕累托集合满足约束条件。优化完成是因为帕累托集合体积的相对变化小于“选项”。paretosetchangettolerance '和约束满足于'options. constraintolerance '。
将解绘制成散点图。
情节(x (: 1) x (:, 2),“m *”)包含('x(1)') ylabel (“x”(2))
从理论上讲,这个问题的解决是一条直线(2, 1)
到[1,2]
.paretosearch
返回接近这条线的等间距点。
为一个受线性约束的二维双目标问题创建一个帕累托前沿x(1)+ x(2)<= 1
.
有趣= @ (x)[规范(x -[1, 2]) ^ 2;规范(x + (2,1)) ^ 2];一个= [1];b = 1;RNG.默认%的再现性x = paretosearch(乐趣,2,a,b);
帕累托集合满足约束条件。优化完成是因为帕累托集合体积的相对变化小于“选项”。paretosetchangettolerance '和约束满足于'options. constraintolerance '。
将解绘制成散点图。
情节(x (: 1) x (:, 2),“m *”)包含('x(1)') ylabel (“x”(2))
从理论上讲,这个问题的解决是一条直线(2, 1)
到[0, 1]
.paretosearch
返回接近这条线的等间距点。
在受界限的两个维度中为两个客观问题创建一个帕累托前面x(1)> = 0
和x(2)<= 1
.
有趣= @ (x)[规范(x -[1, 2]) ^ 2;规范(x + (2,1)) ^ 2];磅=(0,负);%x(1)>> = 0乌兰巴托=[正无穷,1];%x(2)<= 1RNG.默认%的再现性x = paretosearch(有趣,2 ,[],[],[],[], 磅,乌兰巴托);
帕累托集合满足约束条件。优化完成是因为帕累托集合体积的相对变化小于“选项”。paretosetchangettolerance '和约束满足于'options. constraintolerance '。
将解绘制成散点图。
情节(x (: 1) x (:, 2),“m *”)包含('x(1)') ylabel (“x”(2))
所有解决方案点都在约束边界x(1)= 0
或x(2)= 1
.
为有边界的二维两目标问题创建一个帕累托前沿-1.1 <= x(i)<= 1.1
以及非线性约束常规(x)^ 2 <= 1.2
.这个非线性约束函数出现在这个例子的末尾,如果您作为一个活动脚本运行这个例子,它就可以工作。要运行此示例,请将非线性约束函数作为文件包含在MATLAB®路径中。
为了更好地看到非线性约束的效果,设置选项时使用较大的帕累托集大小。
RNG.默认%的再现性有趣= @ (x)[规范(x -[1, 2]) ^ 2;规范(x + (2,1)) ^ 2];LB = [-1.1,-1.1];UB = [1.1,1.1];选择= optimoptions ('paretosearch',“ParetoSetSize”, 200);x = paretosearch(有趣,2 ,[],[],[],[], 磅,乌兰巴托,@circlecons选项);
帕累托集合满足约束条件。优化完成是因为帕累托集合体积的相对变化小于“选项”。paretosetchangettolerance '和约束满足于'options. constraintolerance '。
将解绘制成散点图。包括圆形约束边界图。
图绘图(x(:,1),x(:,2),“k *’)包含('x(1)') ylabel (“x”(2)) 抓住在矩形(“位置”,[-1.2 -1.2 2.4 2.4],'曲率',1,“EdgeColor”,“r”) xlim([-0.5,1.2])轴广场持有从
具有积极的解决方案点x (1)
价值观或消极x (2)
值靠近非线性约束边界。
函数[c,ceq] = circlecons(x)ceq = [];C =常规(x)^ 2 - 1.2;结束
监督…的进展paretosearch
,指定'psplotparetof'
图的功能。
有趣= @ (x)[规范(x -[1, 2]) ^ 2;规范(x + (2,1)) ^ 2];选择= optimoptions ('paretosearch',“PlotFcn”,'psplotparetof');磅= (4,4);乌兰巴托=磅;x = paretosearch(有趣,2 ,[],[],[],[], 磅,乌兰巴托,[]选项);
帕累托集合满足约束条件。优化完成是因为帕累托集合体积的相对变化小于“选项”。paretosetchangettolerance '和约束满足于'options. constraintolerance '。
解看起来像半径为18的1 / 4圆弧,可以被证明是解析解。
通过致电获取函数空间和参数空间的帕圈索前面paretosearch
与这两者都有x
和fval
输出。设置选项以绘制函数空间和参数空间中的帕匹索匹集。
有趣= @ (x)[规范(x -[1, 2]) ^ 2;规范(x + (2,1)) ^ 2];磅= (4,4);乌兰巴托=磅;选择= optimoptions ('paretosearch',“PlotFcn”,{'psplotparetof'“psplotparetox”});RNG.默认%的再现性[x,fval] = paretosearch(fun,2,[],[],[],[],LB,UB,[],选项);
帕累托集合满足约束条件。优化完成是因为帕累托集合体积的相对变化小于“选项”。paretosetchangettolerance '和约束满足于'options. constraintolerance '。
目标函数空间的解析解是半径为18的1 / 4圆弧。在参数空间中,解析解是一条直线(2, 1)
到[1,2]
.解决方案点接近分析曲线。
设置选项以监视帕累托集解决方案过程。此外,从paretosearch
使您能够理解解决方案流程。
选择= optimoptions ('paretosearch','展示',“通路”,......“PlotFcn”,{'psplotparetof'“psplotparetox”});有趣= @ (x)[规范(x -[1, 2]) ^ 2;规范(x + (2,1)) ^ 2];磅= (4,4);乌兰巴托=磅;RNG.默认%的再现性[x, fval exitflag,输出]= paretosearch(有趣,2 ,[],[],[],[], 磅,乌兰巴托,[]选项);
Iter F-count Num金宝搏官方网站Solutions传播量0 60 11 - 3.7872 e + 02 702 386 12 - 3.4654 e + 02年2 9.4324 e-01 2.9452 e + 27日02年3 1029 27 - 2.9904 e + 02年4 1357 40 0.0000 e + 00 3.0154 e + 2 5 1697 60 1.4903 e-01 3.0369 e + 02 6 1841 60 1.4515 e-01 3.0439 e + 02 7 1961 60 1.7716 e-01 3.0465 e + 60 02 8 2075 1.6123 e-01 3.0475 e + 02年9 2189 60 1.7419 e-01 3.0449 e + 02帕累托集发现satisfies the constraints. Optimization completed because the relative change in the volume of the Pareto set is less than 'options.ParetoSetChangeTolerance' and constraints are satisfied to within 'options.ConstraintTolerance'.
检查额外的输出。
流(“退出旗% d。\ n”,出口)
退出标志1。
DISP(输出)
迭代:10 Funccount:2189卷:304.4256平均值:0.0215传播:0.1742 MaxConstraint:0消息:'帕累托集满足约束。...'rngstate:[1x1 struct]
获得并检查帕累托前约束残差。产生一个线性不等式约束的问题总和(x) < = 1/2
和非线性不等式约束常规(x)^ 2 <= 1.2
.为了提高精度,在帕累托前面使用200个点帕奇塞格兰德经理
的1E-7
,并给予自然的界限-1.2 <= x(i)<= 1.2
.
这个非线性约束函数出现在这个例子的末尾,如果您作为一个活动脚本运行这个例子,它就可以工作。要运行此示例,请将非线性约束函数作为文件包含在MATLAB®路径中。
有趣= @ (x)[规范(x -[1, 2]) ^ 2;规范(x + (2,1)) ^ 2];一个= [1];b = -1/2;LB = [-1.2,-1.2];乌兰巴托=磅;nonlcon = @circlecons;RNG.默认%的再现性选择= optimoptions ('paretosearch',“ParetoSetChangeTolerance”,1e-7,......“PlotFcn”,{'psplotparetof'“psplotparetox”},“ParetoSetSize”, 200);
称呼paretosearch
使用所有输出。
[x,fval,出口,输出,残差] = paretosearch(fun,2,a,b,[],[],lb,Ub,nonlcon,选项);
帕累托集合满足约束条件。优化完成是因为帕累托集合体积的相对变化小于“选项”。paretosetchangettolerance '和约束满足于'options. constraintolerance '。
与无约束集相比,不等式约束减小了帕累托集的大小。检查返回的残差。
流('最大线性不等式约束残差为%f.\n',Max(Residuals.ineqlin))
最大线性不等式约束残余为0.000000。
流('最大非线性不等式约束残余是%f。\ n'马克斯(residuals.ineqnonlin))
最大非线性不等式约束残差为-0.002619。
最大返回残差为负,表示所有返回点都是可行的。返回的最大残差接近于零,这意味着每个约束对于某些点是活动的。
函数[c,ceq] = circlecons(x)ceq = [];C =常规(x)^ 2 - 1.2;结束
NVARS.
- - - - - -数量的变量一个
- - - - - -线性不等式约束线性不等式约束,指定为实矩阵。一个
是一个米
——- - - - - -NVARS.
矩阵,米
是不等式的个数。
一个
编码米
线性不平等
A * x < =
,
在哪里x
是栏矢量NVARS.
变量X(:)
,b
列向量是米
元素。
例如,要指定
x1+ 2x2≤10.
3.x1+ 4x2≤20
5x1+ 6x2≤30日
给这些约束:
a = [1,2; 3,4; 5,6];B = [10; 20; 30];
例子:要指定控制变量的和为1或更小,请给出约束条件a = =(1,n)
和b = 1
.
数据类型:双倍的
b
- - - - - -线性不等式约束线性不等式约束,指定为实向量。b
是一个米
- 与...相关的矢量一个
矩阵。如果你通过b
作为行向量,求解器内部转换b
到列向量b (:)
.
b
编码米
线性不平等
A * x < =
,
在哪里x
是栏矢量N
变量X(:)
,一个
矩阵的大小是多少米
——- - - - - -N
.
例如,要指定
x1+ 2x2≤10.
3.x1+ 4x2≤20
5x1+ 6x2≤30日
给这些约束:
a = [1,2; 3,4; 5,6];B = [10; 20; 30];
例子:要指定控制变量的和为1或更小,请给出约束条件a = =(1,n)
和b = 1
.
数据类型:双倍的
Aeq
- - - - - -线性平等约束线性等式约束,指定为实矩阵。Aeq
是一个我
——- - - - - -NVARS.
矩阵,我
是平等的数量。
Aeq
编码我
线性等式
aeq * x = beq
,
在哪里x
是栏矢量N
变量X(:)
,说真的
列向量是我
元素。
例如,要指定
x1+ 2x2+ 3x3.= 10
2x1+ 4x2+x3.= 20,
给这些约束:
Aeq =[1、2、3、2、4、1];说真的=(10、20);
例子:要指定控制变量的和为1,请给出约束条件Aeq = 1 (1, N)
和说真的= 1
.
数据类型:双倍的
说真的
- - - - - -线性平等约束线性平等约束,指定为真正的矢量。说真的
是一个我
- 与...相关的矢量Aeq
矩阵。如果你通过说真的
作为行向量,求解器内部转换说真的
到列向量Beq(:)
.
说真的
编码我
线性等式
aeq * x = beq
,
在哪里x
是栏矢量N
变量X(:)
,Aeq
矩阵的大小是多少微地震
——- - - - - -N
.
例如,要指定
x1+ 2x2+ 3x3.= 10
2x1+ 4x2+x3.= 20,
给这些约束:
Aeq =[1、2、3、2、4、1];说真的=(10、20);
例子:要指定控制变量的和为1,请给出约束条件Aeq = 1 (1, N)
和说真的= 1
.
数据类型:双倍的
磅
- - - - - -下界[]
(默认)|真正的矢量或阵列下界,指定为实向量或双精度数组。磅
表示在元素方面的下界磅
≤.x
≤.UB.
.
在内部,paretosearch
将一个数组磅
的向量磅(:)
.
例子:lb = [0; -inf; 4]
意味着X(1)≥0
,x(3)≥4
.
数据类型:双倍的
UB.
- - - - - -上界[]
(默认)|真正的矢量或阵列上限,指定为真正的矢量或双打数组。UB.
表示上限元素明智磅
≤.x
≤.UB.
.
在内部,paretosearch
将一个数组UB.
的向量乌兰巴托(:)
.
例子:乌兰巴托= (Inf; 4; 10)
意味着x(2)≤4
,x(3)≤10
.
数据类型:双倍的
nonlcon
- - - - - -非线性约束非线性约束,指定为函数句柄或函数名称。nonlcon
是接受行向量的函数吗x
返回两个行向量,c (x)
和量表(x)
.
c (x)
是非线性不等式限制的行矢量x
.的paretosearch
功能尝试满足C(x)<= 0
对于所有参赛作品c
.
量表(x)
必须返回[]
目前,因为paretosearch
不支持非线性等式约金宝app束。
如果你设置了使用vectorized
选项真正的
,然后nonlcon
接受一个大小的矩阵n
——- - - - - -NVARS.
,其中矩阵表示n
个人。nonlcon
返回大小的矩阵n
——- - - - - -mc
在第一个论点,在哪里mc
是非线性不等式约束的数量。看到向适应度函数向量化.
例如,x = paretosearch(据nvar @myfun, A、b Aeq,说真的,磅,乌兰巴托,@mycon)
, 在哪里Mycon.
MATLAB是一种®功能如:
函数[c,ceq] = mycon(x)%在x处计算非线性不等式ceq =[] %在x处没有非线性不等式
有关更多信息,请参阅非线性约束.
数据类型:字符
|function_handle
|细绳
选项
- - - - - -优化选项optimoptions
|结构优化选项,指定为输出optimoptions
或者作为一个结构。
optimoptions
中列出的选项斜斜体;看Options隐藏的选项.
{}
表示默认值。请参阅模式搜索选项.
选择Patternsearch.
和paretosearch
选项 | 描述 | 值 |
---|---|---|
|
对约束的公差。 对于选项结构,使用 |
正标量| |
|
显示水平。 |
'离开' |“通路” |“诊断” |{'最后'} |
|
最大客观函数评估数。 对于选项结构,使用 |
正整数| |
|
最大迭代次数。 对于选项结构,使用 |
正整数| |
|
优化允许的总时间(以秒为单位)。 对于选项结构,使用 |
正标量| |
|
对网格尺寸的宽度。 对于选项结构,使用 |
正标量| |
|
函数在每次迭代时调用优化函数。指定为函数句柄或功能句柄阵列。 对于选项结构,使用 |
功能手柄或功能手柄数组| |
|
从模式搜索的输出绘图。指定为内置绘图函数,函数句柄或内置绘图函数或功能句柄名称的小区数组的名称。 对于选项结构,使用 |
为 为 |
|
在模式搜索中使用的轮询策略。 |
为 |
|
并行计算目标函数和非线性约束函数。看到矢量化和并行选项和如何在全局优化工具箱中使用并行处理. 请注意 必须设置 从R2019a开始,当你设置 |
|
|
指定函数是否向量化。看到矢量化和并行选项和向量化目标函数和约束函数. 请注意 必须设置 对于选项结构,使用 |
|
选择paretosearch
只有
选项 | 描述 | 值 |
---|---|---|
|
初始点
|
矩阵与 |
|
轮询模式的最小分数。 | 标量从0到1 | |
|
帕累托集合中的点数。 | 正整数| |
|
当迭代窗口的停止测量的相对变化小于或等于时,求解器停止
看到帕累诗歌算法的定义. 当任何适用度量的相对变化小于时,求解器停止 请注意 环境 |
正标量| |
选择Patternsearch.
只有
选项 | 描述 | 值 |
---|---|---|
缓存 | 与 请注意
|
|
CacheSize | 历史的规模。 |
正标量| |
CacheTol | 从当前网格点到历史上任何点的最大距离 |
正标量| |
FunctionTolerance |
对功能的宽容。如果函数值的变化小于,则迭代停止 对于选项结构,使用 |
正标量| |
initialmeshsize. |
算法的初始网格尺寸。看到模式如何搜索轮询工作. |
正标量| |
InitialPenalty | 惩罚参数的初始值。看到非线性约束求解算法. |
正标量| |
MaxMeshSize | 在轮询或搜索步骤中使用的最大网格大小。看到模式如何搜索轮询工作. |
正标量| |
MeshContractionFactor |
网格收缩因子不成功迭代。 对于选项结构,使用 |
正标量| |
MeshExpansionFactor |
成功迭代的网格膨胀因子。 对于选项结构,使用 |
正标量| |
meshotate. | 在声明一个点为最佳点之前,先旋转模式。看到网格选项. |
|
PenaltyFactor | 点球更新参数。看到非线性约束求解算法. |
正标量| |
PlotInterval | 指定每隔一段时间调用绘图函数。 |
正整数| |
pollordoralgorithm. |
模式搜索中轮询方向的顺序。 对于选项结构,使用 |
|
ScaleMesh |
自动变量缩放。 对于选项结构,使用 |
|
SearchFcn |
模式搜索中使用的搜索类型。指定为名称或函数句柄。 对于选项结构,使用 |
|
StepTolerance. |
变量的容忍度。如果位置和网格尺寸的变化都小于,迭代将停止 对于选项结构,使用 |
正标量| |
托尔布宁 | 绑定公差。看到约束参数. |
正标量| |
UseCompletePoll |
围绕当前点完成民意测验。看到模式如何搜索轮询工作. 对于选项结构,使用 |
|
UseCompleteSearch |
在搜索方法是轮询方法时,完全搜索当前点。看到搜索和轮询. 对于选项结构,使用 |
|
例子:选项= Optimoptions('paretosearch','显示','none','deverepareliall',true)
问题
- - - - - -问题的结构问题结构,指定为具有以下字段的结构:
客观的
——目标函数
X0.
——起点
Aineq.
-线性不等式约束的矩阵
Bineq.
- 线性不等式约束的矢量
Aeq
- 线性平等约束的矩阵
说真的
- 线性平等约束的矢量
磅
的下界x
UB.
- 上限x
nonlcon
- 非线性约束函数
求解器
- - - - - -'paretosearch'
选项
- 使用的选项optimoptions
rngstate.
—可选字段,重置随机数生成器的状态
请注意
各个领域中问题
是必需的,除了rngstate.
,这是可选的。
数据类型:结构体
x
- 帕累托点米
——- - - - - -NVARS.
数组帕累托点,返回为米
——- - - - - -NVARS.
阵列,其中米
是帕累托前面的点数。每一行的x
代表帕累托前面的一点。
fval
-帕累托前的函数值米
——- - - - - -nf
数组函数值的帕累托前端,返回为米
——- - - - - -nf
数组中。米
是帕累托前面的点数,nf
是健身功能的数量。每一行的fval
表示一个帕累托点的函数值x
.
exitflag
- 原因paretosearch
停了下来原因paretosearch
已停止,作为该表中的一个整数值返回。
退出旗帜 | 停止条件 |
---|---|
1 |
满足以下条件之一。
|
0 |
迭代次数超过options.maxIterations. ,或函数求值次数超过options.maxfunctionevaluations. . |
-1 |
优化被输出函数或绘图函数停止。 |
-2 |
求解器不能找到满足所有约束条件的点。 |
-5 |
优化时间超过选项。MaxTime . |
输出
- 有关优化过程的信息关于优化过程的信息,作为带有以下字段的结构返回:
残差
约束残差在x
约束残差at.x
,作为带有这些字段的结构返回(表后有字段大小术语和条目的术语表)。
字段名 | 场大小 | 条目 |
---|---|---|
较低的 |
米 ——- - - - - -NVARS. |
磅 - - - - - -x |
上 |
米 ——- - - - - -NVARS. |
x - - - - - -UB. |
ineqlin |
米 ——- - - - - -NCON. |
* x - b |
eqlin |
米 ——- - - - - -NCON. |
| AEQ * X - B | |
ineqnonlin |
米 ——- - - - - -NCON. |
c (x) |
米
-返回点数x
在帕累托前面
NVARS.
—控制变量个数
NCON.
- 相关类型的约束数(例如行数一个
或返回的非线性等式的个数)
c (x)
—非线性约束函数的数值
paretosearch
使用模式搜索来搜索帕累托前端的点。有关详细信息,请参见帕累诗歌算法.
的优化Live Editor任务提供可视界面paretosearch
.
要并行运行,请设置“UseParallel”
选项真正的
.
选择= optimoptions ('
solvername.
','使用adplallel',true)
有关更多信息,请参阅如何在全局优化工具箱中使用并行处理.
您已经有了abgeänderte版本死亡Beispiels。Möchten您是谁? Änderungen öffnen?
Sie Haben AUF EINEN LINK GEKLICKT,DER DIESEM MATLAB-BEFEHL ONTSPRICHT:
Führensieden befehl Durch Eingabe在Das Matlab-Befehlsfenster Aus。WebBrowserUnterstützenKeineMatlab-Befehle。
你也可以从以下列表中选择一个网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。