optimvalues
描述
创建一个瓦尔
= optimvalues (概率
,dataname
1、dataval1…)OptimizationValues
对象。概率
.通过使用名称-值参数指定所有变量名及其相关值,以及可选的目标值或约束值。例如,要指定x
从1到99取奇数,
Val = optimvalues(prob,x=1:2:99);
使用瓦尔
的初始点或初始总体概率
.
例子
创建基于问题的初始点遗传算法
为…创建初始点遗传算法
(遗传算法求解器)中基于问题的方法,创建一个OptimizationValues
对象使用optimvalues
.
用Rosenbrock函数作为适应度(目标)函数,为二维问题创建优化变量。
X = optimvar(“x”下界= 5,UpperBound = 5);Y = optimvar(“y”下界= 5,UpperBound = 5);Rosenbrock = (10*(y - x.^2))。^2 + (1-x) ^2;prob = optimproblem(目标=rosenbrock);
在边界内随机创建100个2-D点。这些点必须是行向量。
rng默认的%用于再现性Xval = -5 + 10*兰特(1100);Yval = -5 + 10*兰特(1100);
创建初始点值对象。因为不计算适应度值,所以值显示为南
在显示中。
Vals = optimvalues(prob,x=xval,y=yval)
变量属性:x:[3.1472 4.0579 -3.7301 4.1338 1.3236 -4.0246 -2.2150 0.4688 4.5751 4.6489 -3.4239 4.7059 4.5717 -0.1462 3.0028 -3.5811 -0.7824 4.1574 2.9221 4.5949 1.5574 -4.6429 3.4913 4.3399 1.7874 2.5774 2.4313 -1.0777 1.5548 -3.2881 2.0605…y:[-3.3782 2.9428 -1.8878 0.2853 -3.3435 1.0198 -2.3703 1.5408 1.8921 2.4815 -0.4946 -4.1618 -2.7102 4.1334 -3.4762 3.2582 0.3834 4.9613 -4.2182 -0.5732 -3.9335 4.6190 -4.9537 2.7491 3.1730 3.6869 -4.1556 -1.0022 -2.4013 3.0007 -0.6859…]客观特性:目的:[南南南南南南南南南南南南南南南南南南南南南南南南南南南南南南南南南南南南南南南南南南南南南南南南南南南南南南南南南南……]
解决问题的方法遗传算法
从起点开始瓦尔斯
.集遗传算法
人口为100的选项。
Opts = optimoptions(“遗传算法”PopulationSize = 100);[sol,fv] = solve(问题,vals,求解器=“遗传算法”,选择=选择)
用遗传算法求解问题。优化终止:适应度值的平均变化小于options.FunctionTolerance。
索尔=带字段的结构:X: 1.0000 y: 1.0000
Fv = 4.1061e-09
遗传算法
返回一个非常接近真实解的解X = 1 y = 1
附近的适应度值0
.
为基于问题的问题创建初始值surrogateopt
为…创建初始点surrogateopt
在基于问题的方法中,创建一个OptimizationValues
对象使用optimvalues
.
以Rosenbrock函数为目标函数,为二维问题创建优化变量。
X = optimvar(“x”下界= 5,UpperBound = 5);Y = optimvar(“y”下界= 5,UpperBound = 5);Rosenbrock = (10*(y - x.^2))。^2 + (1 - x) ^2;prob = optimproblem(目标=rosenbrock);
创建约束条件,使解在以原点为半径2的圆盘上,并位于直线y = 1 + x以下。
圆盘= x^2 + y^2 <= 2^2;probe . constraints .disc =磁盘;直线= y <= 1 + x;probo . constraints .line = line;
在边界内随机创建40个2-D点。这些点必须是行向量。
rng默认的%用于再现性N = 40;xval = -5 + 10*rand(1,N);yval = -5 + 10*rand(1,N);
求随机点上的Rosenbrock函数。函数值必须是行向量。该步骤是可选的。如果不提供函数值,surrogateopt
求各点上的目标函数值(xval yval)
.当您有函数值时,可以通过将值作为数据提供来节省求解器的时间。
fval = 0 (1,N);为i = 1:N p0 = struct(“x”xval(我),“y”yval(我));Fval (i) = evaluate(rosenbrock,p0);结束
评估点上的约束条件。约束值必须是行向量。该步骤是可选的。如果不提供约束值,surrogateopt
计算点上的约束函数(xval yval)
.
= 0 (1,N);lineval = 0 (1,N);为i = 1:N p0 = struct(“x”xval(我),“y”yval(我));Discval (i) =不可行(disc,p0);Lineval (i) = in可行性(线,p0);结束
创建初始点值对象。
vals =优化值(prob,x=xval,y=yval,Objective=fval,disc=discval,line=lineval)
变量属性:x:[3.1472 4.0579 -3.7301 4.1338 1.3236 -4.0246 -2.2150 0.4688 4.5751 4.6489 -3.4239 4.7059 4.5717 -0.1462 3.0028 -3.5811 -0.7824 4.1574 2.9221 4.5949 1.5574 -4.6429 3.4913 4.3399 1.7874 2.5774 2.4313 -1.0777 1.5548 -3.2881 2.0605…y:[-0.6126 -1.1844 2.6552 2.9520 -3.1313 -0.1024 -0.5441 1.4631 2.0936 2.5469 -2.2397 1.7970 1.5510 -3.3739 -3.8100 -0.0164 4.5974 -1.5961 0.8527 -2.7619 2.5127 -2.4490 0.0596 3.9090 4.5929 0.4722 -3.6138 -3.5071 -2.4249 3.4072…]目标属性:目标:[1.1067e+04 3.1166e+04 1.2698e+04 1.9992e+04 2.3846e+03 2.6593e+04 2.9811e+ 04 3.6362e+04 1.9515e+04 4.1421e+04 3.7452e+04 1.1541e+03 1.6457e+04 1.5914e+03 3.5654e+04 5.9109e+ 04 5.9109e+03 5.7015e+04 1.0703…]约束属性:磁盘:[6.2803 13.8695 16.9638 21.8023 7.5568 12.2078 1.2024 0 21.3146 24.0987 12.7394 21.3751 19.3057 7.4045 19.5331 8.8248 17.7486 15.8313 5.2656 24.7413 4.7390 23.5542 8.1927 18.7982 14.4752 23.7379 2.1343 10.2207 10.7168 12.6920 11.8543…]线:[0 0 5.3853 0 0 2.9222 0.6709 0 0 0 0.1841 0 0 0 0 2.5648 4.3798 0 0 0 0 1.1938 0 0 1.1217 1.0155 0 0 0 0 0.3467 1.2245 4.3736 0.9735 7.3213 0 0 0 0 0 3.3884]
解决问题的方法surrogateopt
从起点开始瓦尔斯
.
[sol,fv] = solve(问题,vals,求解器=“surrogateopt”)
使用代理解决问题。
surrogateopt停止,因为它超过了'options.MaxFunctionEvaluations'设置的函数计算限制。
索尔=带字段的结构:X: 0.8637 y: 0.7455
Fv = 0.0186
surrogateopt
返回一个接近真实解的解X = 1 y = 1
附近有一个目标函数值0
.
输入参数
概率
- - - - - -优化问题
OptimizationProblem
对象
优化问题,指定为OptimizationProblem
对象。创建概率
使用optimproblem
.
从…获得有用的输出optimvalues
,您还必须在名称-值参数中包含一些数据。
名称-值参数
指定可选参数对为Name1 = Value1,…,以=家
,在那里的名字
参数名称和价值
对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。
例子:Val = optimvalues(x=xvals,y=yvals)
dataname
- - - - - -变量、命名目标或命名约束的数据
实双阵
指定为实双数组的变量、命名目标或命名约束的数据。指定变量的所有数据名称。目标和约束函数名是可选的。
当你指定造船
点,每个点的值dataname
参数必须具有以下维度。
prob.property.name |
大小(价值) |
---|---|
标量或向量 | 元素个数(prob.property.name) ——- - - - - -造船 |
矩阵或数组 | 大小(prob.property.name) ——- - - - - -造船 |
特别是,如果dataname
是向量,它的值是多少dataname
参数是一个矩阵造船
列。例如,如果“x”
变量是长度为2的行向量,并且造船
是3,然后“x”
变量规范可能是:
Val = optimvalues(问题,“x”,[1 2 3;4 5 -6]);
这个规范意味着“x”
取三个值(1、4)
,(2、5)
,(3、6)
.
例子:对于标量“x”
两元行向量“y”
与Nval = 2
:Val = optimvalues(prob,x=[5,3],y=[1 2;3 4])
.输出瓦尔
有两个值:X = 5, y = [1 3]
而且X = 3, y = [2 4]
.
数据类型:双
客观的
- - - - - -未命名目标函数的值
实双阵
未命名目标函数的值,指定为实双数组。值的大小与中相同dataname
.
针对优化问题,可以通过以下两种方式指定多个目标函数的值:
的
客观的
优化问题的属性是一个函数句柄,函数在其中返回一个向量或数组。在本例中,将值指定为矩阵。矩阵的每一行表示一个目标在各个点上的值。每一列表示不同目标在某一点上的值。的
客观的
优化问题的属性具有多个命名目标。在本例中,为每个已命名的目标指定值,将其名称作为dataname
论点。
这些解算器使用任何提供的目标函数值:
遗传算法
gamultiobj
paretosearch
surrogateopt
例子:为了一个目标和两点,val = optimvalues(概率,x =[3,5],客观= [exp (3) + 1, exp (5) 1])
数据类型:双
约束
- - - - - -未命名约束函数的值
真正的双
未命名约束函数的值,指定为实双数组。值的大小与中相同dataname
.
针对优化问题,可以通过两种方式指定多个约束函数的值:
的
约束
属性的优化问题是一个函数句柄,函数在其中返回一个数组。在本例中,将值指定为比函数返回值多一个维度的数组。的
“约束”
属性的优化问题具有多个命名约束。在本例中,使用命名约束的名称作为dataname
论点。
这些解算器使用任何提供的非线性约束函数值:
paretosearch
surrogateopt
这些解算器确保线性约束在所有迭代或所有种群成员中都得到满足:
遗传算法
gamultiobj
paretosearch
patternsearch
surrogateopt
例子:对于两点和三个约束条件,val = optimvalues(概率,x =[3,5],客观= [exp (3) + 1, exp(5) 1],约束= [4 5;7 2;0.2 12])
数据类型:双
输出参数
瓦尔
-点和函数值
向量的OptimizationValues
对象
点和函数值,作为向量返回OptimizationValues
对象。向量有造船
条目,造船
点数是多少瓦尔
.
版本历史
R2022a中引入
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入该命令来运行该命令。Web浏览器不支持MATLAB命令。金宝app
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。