主要内容

optimvalues

创建值优化问题

自从R2022a

描述

例子

瓦尔= optimvalues (概率,dataname1、dataval1…)创建一个OptimizationValues对象的问题概率。指定所有变量名及其关联值,选择目标或约束值,通过使用名称-值参数。例如,指定x奇怪的值从1到99,

x = 1:2:99 val = optimvalues(概率);

使用瓦尔作为一个初始点或初始种群概率

例子

全部折叠

创建初始点遗传算法(遗传算法解算器)具体问题具体分析的方法,创建一个OptimizationValues对象使用optimvalues

创建优化变量。二维问题的函数作为健身(客观)的功能。

x = optimvar (“x”下界= 5,UpperBound = 5);y = optimvar (“y”下界= 5,UpperBound = 5);。= (10 * (y - x ^ 2))。^ 2 + (1 - x) ^ 2;概率= optimproblem(客观=。);

创造100个随机二维点范围内。必须行向量的点。

rng默认的%的再现性xval = 5 + 10 *兰德(1100);yval = 5 + 10 *兰德(1100);

创建初始点的值对象。因为你不计算适应度值,出现的值在显示。

瓦尔斯= optimvalues (x = xval概率,y = yval)
vals = 1 x100 OptimizationValues矢量特性:变量属性: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人口。

选择= optimoptions (“遗传算法”PopulationSize = 100);(sol阵线)=解决(概率,瓦尔斯,解算器=“遗传算法”,选择=选择)
用遗传算法解决问题。优化终止:平均不到options.FunctionTolerance健身价值的变化。
索尔=结构体字段:x: 1.0000 y: 1.0000
阵线= 4.1061 e-09

遗传算法返回一个解决方案非常接近真正的解决方案x = 1, y = 1附近的一个健身价值0

创建初始点surrogateopt在具体问题具体分析的方法,创建一个OptimizationValues对象使用optimvalues

创建优化变量为一个二维的问题。海涅的函数作为目标函数。

x = optimvar (“x”下界= 5,UpperBound = 5);y = optimvar (“y”下界= 5,UpperBound = 5);。= (10 * (y - x ^ 2))。^ 2 + (1 - x) ^ 2;概率= optimproblem(客观=。);

创建约束,解决方案是在一个半径为2的盘下面的起源和谎言y = 1 + x。

盘= x ^ 2 + y ^ 2 < = 2 ^ 2;prob.Constraints。盘=盘;行= y < = 1 + x;prob.Constraints。=线;

创建40范围内随机二维点。必须行向量的点。

rng默认的%的再现性N = 40;xval = 5 + 10 *兰德(1,N);yval = 5 + 10 *兰德(1,N);

评估。函数的随机点。函数值必须是一个行向量。这一步是可选的。如果你不提供的函数值,surrogateopt计算目标函数在点(xval yval)。有函数值时,您可以节省时间的解算器通过提供数据的值。

fval = 0 (1, N);i = 1: N p0 =结构(“x”xval(我),“y”yval(我));fval (i) =评估(p0。);结束

评估点上的约束。必须行向量约束值。这一步是可选的。如果你不提供约束值,surrogateopt评估约束功能点(xval yval)

discval = 0 (1, N);lineval = 0 (1, N);i = 1: N p0 =结构(“x”xval(我),“y”yval(我));discval (i) =不可行性(圆盘,p0);lineval (i) =不可行性(线,p0);结束

创建初始点的值对象。

vals = optimvalues (x = xval概率,y = yval,客观= fval盘= discval = lineval行)
vals = 1 x40 OptimizationValues向量和属性:变量属性: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 1.9908 3.9090 4.5929 0.4722 -3.6138 -3.5071 -2.4249 3.4072……]客观特性:目的:[1.1067 3.1166 e + e + 04 04 1.2698 e + 04 1.9992 e + 04 2.3846 e + 03 2.6593 e + 04 2.9811 e + 03 154.8722 3.5498 3.6362 e + e + 04 04 1.9515 4.1421 e + e + 04 04 3.7452 e + 04 1.1541 e + 03 1.6457 1.5914 1.6510 e + e + 04 04 3.5654 e + e + 03 04 5.9109 e + 03 5.7015 e + 04 1.0703……]约束属性:盘:[0 6.2803 13.8695 16.9638 21.8023 7.5568 12.2078 1.2024 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 0 0 2.9222 5.3853 0.6709 0.1841 0 0 0 0 0 0 0 2.5648 4.3798 0 0 0 0 0 0 1.1217 - 1.0155 0 0 0 0 1.1938 0.3467 1.2245 4.3736 0.9735 7.3213 0 0 0 0 3.3884)

解决问题用surrogateopt从起始点开始瓦尔斯

(sol阵线)=解决(概率,瓦尔斯,解算器=“surrogateopt”)
使用surrogateopt解决问题。

图优化函数包含一个坐标轴对象。坐标轴对象与标题最好的函数值:0.0185996,包含迭代,ylabel函数值包含2线类型的对象。一个或多个行显示的值只使用这些对象标记代表最佳函数值(不可行),最好的函数值。

surrogateopt停止,因为它超过了设定的评价函数极限“options.MaxFunctionEvaluations”。
索尔=结构体字段:x: 0.8637 y: 0.7455
阵线= 0.0186

surrogateopt返回一个解决方案有点接近真正的解决方案x = 1, y = 1目标函数值附近0

输入参数

全部折叠

优化问题,指定为一个OptimizationProblem对象。创建概率使用optimproblem

获得有用的输出optimvalues名称-值,您还必须包括一些数据参数。

名称-值参数

指定可选的双参数作为Name1 = Value1,…,以=家,在那里的名字参数名称和吗价值相应的价值。名称-值参数必须出现在其他参数,但对的顺序无关紧要。

例子:val = optimvalues (x = xvals, y = yvals)

数据变量,命名为目标,或命名约束,指定为一个真正的双数组。指定所有数据变量的名称。目标和约束函数名是可选的。

当你指定造船每个点的值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”造船= 2:val = optimvalues(概率,x = (5, 3), y = [1 2; 3 4])。输出瓦尔有两个值:3 x = 5, y = [1]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

例子:2分和3约束,val = optimvalues(概率,x =[3,5],客观= [exp (3) + 1, exp(5) 1],约束= [4 5;7 2;0.2 12])

数据类型:

输出参数

全部折叠

点和函数值,作为一个向量的返回OptimizationValues对象。向量的造船条目,造船点的数量吗瓦尔

版本历史

介绍了R2022a