我正在尝试使用Octave的sqp解算器运行非线性优化,但是我收到一条警告,说“sqp:QP子问题未能在200次迭代中收敛”。根据我的理解,sqp(非线性)求解器连续调用QP(二次)求解器。但我似乎只能设置初始sqp调用的最大迭代次数 - 而不是QP子调用。
我到目前为止尝试的两件事是在sqp调用中将最大迭代次数设置为500 - sqp (x0, phi, g, h, lb, ub, maxiter=500)
- 并且在我的脚本开头包含行optimset('MaxIter',500)
,但这两者都只设置了sqp求解器的最大迭代次数,而不是QP子问题。有没有办法设置QP子问题的最大迭代次数?
答案 0 :(得分:1)
目前这是不可能的,因为您可以在SQP实施中的QP调用中看到:http://hg.savannah.gnu.org/hgweb/octave/file/8c648c3a2c8f/scripts/optimization/sqp.m#l412
请在Savannah上发布功能请求:https://www.gnu.org/software/octave/bugs.html