对于GlobalSearch和多头输出功能

什么是输出功能?

输出功能允许你检查的优化中间结果。此外,它们允许你以编程方式停止求解器。

有两种类型的输出功能,如两种类型的输出结构

  • 全球输出功能在每个地方求解器运行后运行。当全球求解器开始和结束他们还运行。

  • 本地输出功能的局部求解器的每次迭代之后运行。看到输出功能(优化工具箱)。

使用全局输出功能:

  • 使用语法写入输出功能描述在OutputFcn

  • 设置OutputFcn财产你GlobalSearch要么多头求解器的输出功能的功能句柄。您可以通过设置使用多输出功能OutputFcn属性到函数处理的一个单元阵列。

GlobalSearch输出功能

该输出功能停止GlobalSearch后它找到五个不同的局部最小值与阳性出口标志,或它找到一个局部最小值后小于0.5。输出功能使用持久性的局部变量,foundLocal,并存储在本地的结果。foundLocal使输出函数来确定局部解是​​否是从其他不同,到的容限内1E-4

为了存储使用嵌套函数,而不是持续性的局部变量的结果,看嵌套输出功能的示例(MATLAB)。

  1. 写使用中描述的语法中的输出功能OutputFcn

    功能停止= StopAfterFive(optimValues,状态)持续foundLocal停止= FALSE;开关状态的情况下为 'init' foundLocal = [];%为空的情况下初始化的 'ITER' newf = optimValues.localsolution.Fval;EFLAG = optimValues.localsolution.Exitflag;%现在,检查出口标志为正,且%的新值不同于所有其他至少1E-4%如果是这样,新的价值添加到newf列表中,如果EFLAG> 0 &&所有(ABS(newf  -  foundLocal)>1E-4)foundLocal = [foundLocal; newf];%现在检查如果添加到foundLocal%的最新值小于1/2%另外检查是否存在在foundLocal%5局部最小值如果是,则停止如果foundLocal(结束)<0.5 ||长度(foundLocal)> = 5停止= TRUE;结束结束结束
  2. StopAfterFive.m作为您的MATLAB的文件夹中文件®路径。

  3. 编写目标函数,并创建一个优化问题的结构,如查找全局或多个局部极小

    函数f = sawtoothxy(X,Y)[T R] = cart2pol(X,Y);%变化到极坐标H = COS(2 * T  -  1/2)/ 2 + cos(T)+ 2;G =。(SIN(R) -  SIN(2 * R)/ 2 + SIN(2 * R)/ 3  - 罪(4 * R)/ 4 + 4)... * R ^ 2 ./(R1);F = G *小时。;结束
  4. sawtoothxy.m为您的MATLAB路径上的文件夹中的文件。

  5. 在命令行中,创建问题的结构:

    问题= createOptimProblem( 'fmincon',... '目标',@(X)sawtoothxy(X(1)中,x(2)),... 'X0',[100,-50], '选项',... optimoptions(@ fmincon, '算法', '二次规划'));
  6. 创建一个GlobalSearch与对象@StopAfterFive作为输出的功能,并设置迭代显示属性,以'ITER'

    GS = GlobalSearch( 'OutputFcn',@ StopAfterFive, '显示', 'ITER');
  7. (可选)要得到相同的答案,因为这例子中,设置默认的随机数流。

    RNG默认
  8. 运行问题。

    [X,FVAL] =运行(GS,问题)货号积分最佳电流阈值本地本地分析F-计数F(X)点球F(X)exitflag步骤0 200 555.5 555.5 0初始点200 1463 1.547e-15 1.547e-15 1阶段第1本地GlobalSearch停在输出或绘图功能。1出2个本地求解运行的融合具有积极当地求解器出口标志。X = 1.0E-07 * 0.0414 0.1298 FVAL = 1.5467e-15

运行初期,因为停止GlobalSearch发现与函数值的点小于0.5

没有并行输出功能

多头可以并行运行,它不支持并行全球输出功能和打印功能。万博1manbetx此外,尽管本地输出功能和情节的功能工人运行时多头在平行运行,效果不同于连续运行。工人运行时,本地输出和打印功能不创建一个显示。你看不到的输出和打印功能的任何其他效果,直到工人将它的结果给客户端(的鼻祖多头并行作业)。

有关运行信息多头与此同时,看到并行计算

相关话题