Worhp:本地不可行点

时间:2019-06-16 01:30:56

标签: worhp

我有一个可以使用ipopt和fmincon成功解决的问题。 worhp因本地不可行而终止。我的x0(init)是可行的。

内部点算法可能会发生这种情况,但是我希望sqp始终保持在可行区域内?

2 个答案:

答案 0 :(得分:2)

也许您还可以通过启用CheckValuesDFCheckValuesDGCheckValuesHMCheckStructureDFCheckStructureDGCheckStructureHM来检查WORHP的派生他们。我要指出的是,WORHP需要一种非常特殊的坐标存储格式(特别是对于黑森州)。错误会导致错误的搜索方向。

答案 1 :(得分:1)

由于QP子问题的近似误差,通常这不是您可以期望的。考虑问题

formula counter example NLP

会有QP子问题

formula counter example QP

对于当前x和拉格朗日乘数lambda

,可以通过确定必要的导数来看出。对于初始值x_0 = 0lambda_0 = 1,我们有一个可行的初始猜测。然后要解决的第一个QP

formula counter example first QP

具有唯一的解决方案d = 2。现在,根据实现的线搜索,可能要执行完整的步骤,即下一个迭代是x_1 = x_0 + d。这意味着x_1 = 2不再可行。实际上,如果禁用par.InitialLMest并最终在x = 1处找到全局最优值,则WORHP的SQP算法将像这样迭代。

除此基本属性外,还可能有其他影响导致迭代离开可行集,这将非常特定于实际的求解程序实现。例如,数值上的不正确,解决QP时遇到的困难或某些恢复策略。关于为什么使用WORHP的SQP算法无法成功解决您的问题,我无法在不了解问题本身的情况下说很多话。