主要内容

使用检查点文件

重新启动检查点

检查点文件包含有关优化过程的数据。要获取检查点文件,请使用checkpointfile.选项。

检查点文件的一个基本使用是在过早停止时恢复优化。过早停止的原因可以是电源故障或崩溃的事件,或者按下停止绘图功能窗口中的按钮。

无论过早停止的原因如何,重启程序只是要呼叫代理人孔使用检查点文件名。

例如,假设您使用的优化'check1'检查点文件,然后单击停止优化开始后不久的按钮。

选项= Optimoptions('trustogateopt''checkpointfile''check1.mat');lb = [-6,-8];UB = -LB;fun = @(x)100 *(x(2) -  x(1)^ 2)^ 2 +(1  -  x(1))^ 2;[x,fval,出口,输出] = trustogateopt(有趣,lb,Ub,选项)
优化通过绘图功能或输出功能停止。x = 0 0 fval = 1 exitflag = -1输出= struct with字段:elapsedtime:15.3330 funccount:30 counterviolation:0 ineq:[1×0 double] rngstate:[1×1结构]消息:'优化由绘图停止功能或输出功能。'

笔记

检查点需要时间。这种开销对于否则几乎没有时间评估的功能尤其明显。

恢复优化,呼叫代理人孔与之'check1.mat'争论。

[x,fval,出口,输出] = trustogateopt('check1.mat'
Trustogateopt停止,因为它超出了“选项”QuaxFunctioneValuations'设置的函数评估限制。x = 1.0186 1.0377 fval = 3.4902e-04 exitflag = 0输出= struct = struct with字段:elapsedtime:181.5824 funccount:200 counterviolation:0 Ineq:[1×0 double] rngstate:[1×1 struct]消息:'trangateopt停止,因为它超过了↵'Options.maxFunctioneValuations“的函数评估限制”。

更改选项以扩展或监视优化

您可以通过更改选项中的停止标准,扩展优化,无论是由于不可预见的事件,它是否由于不可预见的事件而停止。您还可以通过在每次迭代时显示信息来监视优化。

笔记

代理人孔允许您只更改一组有限的选项。有关可靠性,请更新原始选项结构,而不是创建新选项。

有关您可以在重新启动时更改的选项列表,请参阅选择

例如,假设您要扩展以前的优化以运行共有400个功能评估。此外,您还希望使用该优化'trustogateptplot'绘图功能。

opts = Optimoptions(选项,'maxfunctionevaluations',400,......'plotfcn''trustogateptplot');[x,fval,出口,输出] = trustogateopt('check1.mat',选择)
Trustogateopt停止,因为它超出了“选项”QuaxFunctioneValuations'设置的函数评估限制。x = 1.0186 1.0377 FVAL = 3.4902E-04 ExitFlag = 0输出= struct with字段:Elapsedtime:959.7619 Funccount:400 Constrviolation:0 Ineq:[1×0 Double] RngState:[1×1结构]消息:'TrustogateOpt停止,因为它超过了↵'Options.maxFunctioneValuations“的函数评估限制”。

新的绘图函数图从优化开始,即使您在函数评估号200的求解器停止之后才开始绘图函数。该'trustogateptplot'绘图功能还显示了优化停止的评估号码以及从检查点文件重新启动的位置。

强大的代理优化代码

仅在文件中重新启动检查点文件时,才会存在此文件,请使用以下代码逻辑。通过这种方式,即使在崩溃或其他意外事件之后,也可以编写脚本以保持优化进行。

%假设MyFun,LB和UB存在如果Isfile('saveddata.mat')[x,fval,ExitFlag,输出] = TrustogateOpt('saveddata.mat');别的选项= Optimoptions(“trustogateopt”“checkpointfile”'saveddata.mat');[x,fval,出口,输出] = trustogateopt(myfun,lb,Ub,选项);结尾

也可以看看

相关话题