主要内容

混合整数优化代理

这个例子展示了如何解决一个涉及整型变量的优化问题。从R2019b开始,surrogateopt接受整数约束。在这个例子中,找到点x这最小化了multirosenbrock函数在十个维度中从-3到6的整数值参数上。的multirosenbrock函数是一个难以优化的低规模函数。其最小值为0,在该点处达到(1, 1,…,1).代码multirosenbrock函数出现在这个例子到此结束

rng (1,“旋风”%的再现性据nvar = 10;任意偶数磅= 3 * 1(1,据nvar);乌兰巴托= 6 * 1(1,据nvar);有趣= @multirosenbrock;intcon = 1:据nvar;%所有整数变量[溶胶,fval] = surrogateopt(有趣,磅,乌兰巴托,intcon)

图优化Plot函数包含一个轴对象。标题为Best Function Value: 0的轴对象包含一个类型为line的对象。该对象表示最佳函数值。

surrogateopt停止,因为它超过了'options.MaxFunctionEvaluations'设置的函数求值限制。
索尔=1×101 1 1 1 1 1 1
fval = 0

在这种情况下,surrogateopt找到了解决方案。

Helper函数

此代码创建multirosenbrockhelper函数。

函数F = multirosenbrock (x)%该函数是Rosenbrock的多维泛化%的功能。假设x是一个矩阵,它以向量化的方式运行%,其中的行是个体。版权所有:The MathWorks, Inc.N =大小(x, 2);%假设x是一个行向量或二维矩阵如果国防部(N, 2)如果N是奇数,则为%错误(“输入行必须有偶数个元素”结束优势= 1:2:n - 1;均等的= 2:2:N;F = 0(大小(x));F(:,几率)= 1 - x(:,几率);F(:,均等的)= 10 * (x(:,均等的)- x(:,几率)。^ 2);F = (F . ^ 2, 2)总和;结束

另请参阅

相关的话题