OptimizationValues
创建对象
solve
函数返回 OptimizationValues
对象的向量作为多目标问题的解。
使用 optimvalues
函数为起点 x0
创建一个 OptimizationValues
对象。
属性
通常,OptimizationValues
属性是动态的:它们是优化变量、目标函数和约束的名称。
但是,您也可以有未命名的目标函数或约束。对于这些情况,OptimizationValues
会对以下属性赋值。
目标函数值,以实数数组形式返回或指定。
数据类型: double
约束值,以实数数组形式返回或指定。
数据类型: double
对象函数
paretoplot | 多目标的帕累托图 |
示例
使用优化变量创建和求解一个多目标问题。
x = optimvar("x",LowerBound=-3,UpperBound=3); prob = optimproblem; prob.Objective = [x^2;(x-1)^2]; % Tradeoff region between x = 0 and x = 1 prob.Constraints.con1 = x^2 <= 1/2; % Demonstrate constraints prob.Constraints.con2 = x^2 >= 1/10; % Second constraint rng default % For reproducibility [sol,fval,exitflag,output] = solve(prob,Solver="paretosearch")
Solving problem using paretosearch. Pareto set found that 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'.
sol = 1×60 OptimizationValues vector with properties: Variables properties: x: [0.7027 0.7014 0.3635 0.3491 0.5723 0.3177 0.4634 0.4400 0.6379 0.6402 0.3750 0.6057 0.6565 0.5483 0.6455 0.5518 0.3760 0.3232 0.6768 0.6357 0.5625 0.3952 0.3382 0.3857 0.5677 0.5170 0.5107 0.6241 0.6615 0.3295 0.6875 … ] (1×60 double) Objective properties: Objective: [2×60 double] Constraints properties: con1: [-0.0063 -0.0081 -0.3679 -0.3781 -0.1725 -0.3991 -0.2853 -0.3064 -0.0931 -0.0902 -0.3594 -0.1332 -0.0690 -0.1994 -0.0833 -0.1955 -0.3586 -0.3955 -0.0420 -0.0959 -0.1836 -0.3438 -0.3856 -0.3512 -0.1777 -0.2327 -0.2392 … ] (1×60 double) con2: [-0.3937 -0.3919 -0.0321 -0.0219 -0.2275 -9.3572e-04 -0.1147 -0.0936 -0.3069 -0.3098 -0.0406 -0.2668 -0.3310 -0.2006 -0.3167 -0.2045 -0.0414 -0.0045 -0.3580 -0.3041 -0.2164 -0.0562 -0.0144 -0.0488 -0.2223 -0.1673 -0.1608 … ] (1×60 double)
fval = 2×60
0.4937 0.4919 0.1321 0.1219 0.3275 0.1009 0.2147 0.1936 0.4069 0.4098 0.1406 0.3668 0.4310 0.3006 0.4167 0.3045 0.1414 0.1045 0.4580 0.4041 0.3164 0.1562 0.1144 0.1488 0.3223 0.2673 0.2608 0.3895 0.4375 0.1086 0.4727 0.2001 0.4395 0.2261 0.1658 0.4862 0.4270 0.3525 0.1057 0.2628 0.2197 0.4902 0.1760 0.3665 0.2411 0.1092 0.4911 0.1914 0.1182 0.3742
0.0884 0.0892 0.4051 0.4237 0.1829 0.4655 0.2880 0.3136 0.1311 0.1295 0.3906 0.1555 0.1180 0.2040 0.1257 0.2009 0.3893 0.4580 0.1045 0.1327 0.1914 0.3658 0.4380 0.3773 0.1869 0.2333 0.2394 0.1413 0.1146 0.4496 0.0977 0.3055 0.1136 0.2751 0.3514 0.0916 0.1201 0.1650 0.4555 0.2375 0.2822 0.0899 0.3369 0.1557 0.2591 0.4483 0.0895 0.3164 0.4307 0.1508
exitflag = SolverConvergedSuccessfully
output = struct with fields:
iterations: 20
funccount: 380
volume: 1.8611
averagedistance: 0.0101
spread: 0.3067
maxconstraint: 0
message: 'Pareto set found that 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'.'
rngstate: [1×1 struct]
solver: 'paretosearch'
paretosearch
求解器经过 16 次迭代收敛于一个可行解。绘制解。
paretoplot(sol)
使用数据提示选择图中的一个任意点进行检查:
图中的点位于索引 48 处。检查解 48。
arbitrarysol = sol(48)
arbitrarysol = OptimizationValues with properties: Variables properties: x: 0.4375 Objective properties: Objective: [2×1 double] Constraints properties: con1: -0.3086 con2: -0.0914
约束值为负,表示图中的点可行。
arbitrarysol.Objective
ans = 2×1
0.1914
0.3164
目标值与数据提示中的值匹配。
限制
OptimizationValues
对象仅支持水平串联。换句话说,您只能有由OptimizationValues
对象组成的行向量。
版本历史记录
在 R2022a 中推出
另请参阅
主题
- 指定 MultiStart 的起点,基于问题 (Global Optimization Toolbox)
- 基于问题的多目标优化的帕累托前沿 (Global Optimization Toolbox)
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
- América Latina (Español)
- Canada (English)
- United States (English)
欧洲
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)