此示例显示了三个推荐求解器在最小化问题上的行为。目标函数是多尖式布洛克
功能:
类型多尖式布洛克
函数F =多尖式布洛克(x)%此函数是Rosenbrock%函数的多维概括。假设X是矩阵%,其行是个体。%版权2014,由Mathworks,Inc。n =尺寸(x,2);%假设x是行矢量或2-d矩阵,如果mod(n,2)%如果n是奇数错误('输入行必须具有均匀数量的元素')结束元= 1:2:n-1;evens = 2:2:n;f =零(size(x));f(:,ordds)= 1-x(:,ordds);f(::,evens)= 10*(x(:,evens)-x(:,ordds)。^2);f = sum(f。^2,2);
这多尖式布洛克
功能在该点具有单个局部最小值为0[1,1,...,1]
。查看一般非线性问题的三个最佳求解器在20个维度上的最大功能最大功能数量仅为200。
设置问题。
n = 20;%偶数数字MF = 200;%Max Fun Evalsfun = @multirosopenbrock;lb = -3*一个(1,n);ub = -lb;RNG默认x0 = -3*rand(1,n);
设置选项代理
仅使用200个函数评估,然后运行求解器。
选项= optimoptions(“代理”,,,,“ maxfunction evaluations',MF);[xm,fvalm,〜,〜,pop] = promogateOpt(fun,lb,ub,options);
替代之所以停止,是因为它超过了“选项”设置的函数评估限制限制。
为模式搜索
,包括一个图函数以监视优化。
psopts = optimoptions(“模式搜索”,,,,'plotfcn',,,,'psplotbestf',,,,“ maxfunction evaluations',MF);[psol,pfval] = patternsearch(fun,x0,[],[],[],[],[],lb,ub,[],psopts);
超出功能评估的最大数量:增加选项。maxFunctionEvaluations。
为Fmincon
。
opts = optimoptions('fmincon',,,,'plotfcn',,,,“ optimplotfval',,,,“ maxfunction evaluations',MF);[FMSOL,FMFVAL,EFLAG,FMOUTPUT] = FMINCON(fun,x0,[],[],[],[],[],[],lb,ub,[],opts);
求解器过早停止。Fmincon停止了,因为它超过了功能评估限制,选项。maxFunctionEvaluations= 2.000000E+02。
对于极限限制的功能评估,代理
解决方案最接近真正的最小值0
。
表(FVALM,PFVAL,FMFVAL,'variablenames',{“代理”,,,,“模式搜索”,,,,'fmincon'})
ans =1×3桌sermogateopt patternsearch fmincon _______________________________________________________________________________________________________很多超过
允许另外200个函数评估表明,其他求解器迅速接近真实解决方案,而代理
没有显着改善。从其先前的解决方案中重新启动求解器,该解决方案为每个优化增加了200个函数评估。金宝搏官方网站
选项= optimoptions(选项,“初始点”,流行音乐);[xm,fvalm,〜,〜,pop] = promogateOpt(fun,lb,ub,options);
替代之所以停止,是因为它超过了“选项”设置的函数评估限制限制。
[psol,pfval] = patternsearch(fun,psol,[],[],[],[],[],lb,ub,[],psopts);
超出功能评估的最大数量:增加选项。maxFunctionEvaluations。
[FMSOL,FMFVAL,EFLAG,FMOUTPUT] = FMINCON(FUN,FMSOL,[],[],[],[],[],[LB,UB,[],OPTS);
求解器过早停止。Fmincon停止了,因为它超过了功能评估限制,选项。maxFunctionEvaluations= 2.000000E+02。
表(FVALM,PFVAL,FMFVAL,'variablenames',{“代理”,,,,“模式搜索”,,,,'fmincon'})
ans =1×3桌promogateopt patternsearch fmincon ____________ _________________________________________________________________________________________________________________________一些4077.9.9888多