Matlab:在不丢失数据的情况下停止对fmincon的评估
现在,Matlab:在不丢失数据的情况下停止对fmincon的评估,matlab,terminate,minimization,Matlab,Terminate,Minimization,现在,fmincon为我解决了一个最小化问题。 为了完整起见,最小化的函数使用了parfor 我正在使用这些选项 options = optimoptions(@fmincon,'Display','iter', 'MaxIter',1000000,'MaxFunEvals',1000000,'TypicalX',[1e-1,1e-2,1e0,1e1,1e2,1e3, 1e-1]) 不幸的是,评估的时间比预期的要长得多。如何终止计算并获取迄今为止找到的fmincon参数点。这对我来说应该足够了
fmincon
为我解决了一个最小化问题。
为了完整起见,最小化的函数使用了parfor
我正在使用这些选项
options = optimoptions(@fmincon,'Display','iter', 'MaxIter',1000000,'MaxFunEvals',1000000,'TypicalX',[1e-1,1e-2,1e0,1e1,1e2,1e3, 1e-1])
不幸的是,评估的时间比预期的要长得多。如何终止计算并获取迄今为止找到的fmincon
参数点。这对我来说应该足够了,因为function的值已经不再减少了。
它从12小时开始计算,现在迭代6550次
那么,是否有方法终止fmincon
-评估并获得参数点的当前结果
提前谢谢你
问候,
Pejta您可以向fmincon传递回调,该回调将在每个设计点调用 输出函数 选项的Outputfcn字段指定优化函数在每次迭代时调用的一个或多个函数。通常,可以使用输出函数在每次迭代时绘制点或显示算法中的优化量使用输出函数,您可以查看但不能设置优化数量 将OutputFcn指定为要输出的句柄。要指定多个输出函数,请使用以下语法
options = optimoptions(@solvername,'OutputFcn',{@outfun, @outfun2});
这将允许您保存每次迭代的进度。的可能重复–另请参见和。如果您希望保存已经运行的代码的结果,那么您可能运气不好。你必须预料到这类事情。@horchler不是复制品,它很有可能给出OP想要的几乎完全一样的东西
options = optimoptions(@solvername,'OutputFcn',{@outfun, @outfun2});