使用检查点文件
检查点重启
一个检查点文件包含的数据优化的过程。获得一个检查点文件,使用CheckpointFile
选择。
一个基本使用检查点文件恢复优化时过早地停止。过早停止的原因可能是电源故障或事故等事件,或当你按下停止按钮在一块功能窗口。
无论过早停止的原因,再启动过程就是调用surrogateopt
检查点文件的名字。
例如,假设您的优化运行“check1”
检查点文件,然后单击停止按钮优化后不久就开始了。
选择= optimoptions (“surrogateopt”,“CheckpointFile”,“check1.mat”);磅= (6、8);乌兰巴托=磅;有趣= @ (x) 100 * (x (2) - (1) ^ 2) ^ 2 + (1 - x (1)) ^ 2;[x, fval exitflag、输出]= surrogateopt(有趣,磅、乌兰巴托、期权)
优化停在一块函数或输出函数。x = 0 0 fval = 1 exitflag = 1输出=结构体字段:elapsedtime: 15.3330 funccount: 30 constrviolation: 0 ineq:[1×0双]rngstate: [1×1 struct]消息:一块函数或输出函数的优化停止。”
请注意
检查点是需要时间的。这个函数的开销尤其明显,否则采取一些时间来评估。
继续优化,电话surrogateopt
与“check1.mat”
论点。
[x, fval exitflag,输出]= surrogateopt (“check1.mat”)
Surrogateopt停止,因为它超过了设定的评价函数极限“options.MaxFunctionEvaluations”。x = 1.0186 - 1.0377 fval = 3.4902 e-04 exitflag = 0 =输出结构体字段:elapsedtime: 181.5824 funccount: 200 constrviolation: 0 ineq:[1×0双]rngstate: [1×1 struct]消息:“Surrogateopt停止,因为它超过了函数评估限制由↵options.MaxFunctionEvaluations’。”
改变选项来扩展或监控优化
您可以扩展一个优化,是否停止由于不可预见的事件,通过改变的停止标准选择。你也可以监控显示信息在每个迭代的优化。
请注意
surrogateopt
只允许你改变一组有限的选项。对于可靠性、更新原来的选项结构而不是创建新选项。
列表的选项你可以改变重新启动时,看到的选择
。
例如,假设您想要扩展前面的优化运行400功能评估。另外,您希望监视的优化使用“surrogateoptplot”
图的功能。
选择= optimoptions(选项,“MaxFunctionEvaluations”,400,…“PlotFcn”,“surrogateoptplot”);[x, fval exitflag,输出]= surrogateopt (“check1.mat”选择)
Surrogateopt停止,因为它超过了设定的评价函数极限“options.MaxFunctionEvaluations”。x = 1.0186 - 1.0377 fval = 3.4902 e-04 exitflag = 0 =输出结构体字段:elapsedtime: 959.7619 funccount: 400 constrviolation: 0 ineq:[1×0双]rngstate: [1×1 struct]消息:“Surrogateopt停止,因为它超过了函数评估限制由↵options.MaxFunctionEvaluations’。”
新的情节函数优化的情节从一开始,即使你开始情节功能只有在解算器停在功能评估200号。的“surrogateoptplot”
情节功能还显示优化的评估数字从检查点文件停止和重新启动。
健壮的代理代码优化
重新启动代理优化从检查点文件只有在文件存在,使用下面的代码逻辑。通过这种方式,您可以编写脚本继续优化,即使崩溃或其他意外事件。
%认为myfun磅,乌兰巴托存在如果isfile (“saveddata.mat”)[x, fval exitflag、输出]= surrogateopt (“saveddata.mat”);其他的选择= optimoptions (“surrogateopt”,“CheckpointFile”,“saveddata.mat”);[x, fval exitflag、输出]= surrogateopt (myfun、磅、乌兰巴托、期权);结束