我正在处理一个优化问题,我正在使用APOPT来解决这样的问题,但是优化器没有返回最优解,特别是当变量的数量有点高(超过500)时。
vaj7vani1#
正如Erwin Kalvelagen正确观察到的那样,这个问题可能是非凸的。可能需要multi-start method或全局优化器来找到全局解决方案。如果求解器指示成功的解决方案,则满足局部最优的Karush Kuhn Tucker条件。如果需要多几位小数的精度,可以调整目标和方程的默认精度1e-6。
1e-6
m.options.RTOL=1e-8 m.options.OTOL=1e-8
OTOL是用于报告成功解决方案的相对目标函数容差。较低的OTOL值(如1 e-8)将给予更精确的答案,但代价是更多的迭代。默认值1 e-6通常足以解决大多数问题。然而,有时存在多个目标,并且需要更高的精度来完全解决次要目标。OTOL和RTOL(方程残差的公差)通常应一起调整。
1条答案
按热度按时间vaj7vani1#
正如Erwin Kalvelagen正确观察到的那样,这个问题可能是非凸的。可能需要multi-start method或全局优化器来找到全局解决方案。如果求解器指示成功的解决方案,则满足局部最优的Karush Kuhn Tucker条件。
如果需要多几位小数的精度,可以调整目标和方程的默认精度
1e-6
。OTOL是用于报告成功解决方案的相对目标函数容差。较低的OTOL值(如1 e-8)将给予更精确的答案,但代价是更多的迭代。默认值1 e-6通常足以解决大多数问题。然而,有时存在多个目标,并且需要更高的精度来完全解决次要目标。OTOL和RTOL(方程残差的公差)通常应一起调整。