为什么使用路径约束而不是变量边界,IPOPT收敛更快?

问题描述 投票:0回答:1

很遗憾,我正在使用GPOPS-II(商业优化软件)来解决飞机的航迹优化问题。 GPOPS-II将问题转换为NLP问题,随后NIPO解决方案IPOPT解决了该问题。

[尝试解决我的问题时,我限制了飞机的高度。我为海拔设定了5500 m的上限。现在,我可以通过两种方式做到这一点。首先,我可以在状态变量5500 m的高度上设置直接上限。为此,IPOPT大约需要进行1000次迭代和438秒,才能找到最佳解决方案。其次,我可以对5500 m的状态变量高度施加路径限制。同时,我将状态可变高度的直接界限放宽到5750 m。现在,这些问题的表达在逻辑上是等效的,但似乎在数学上却不一样:这次IPOPT仅花费150次迭代和240秒即可收敛到最佳解决方案。 我已经发现a discussion,其中有人指出,由于内点方法的性质,放宽NLP程序的边界可促进更快的收敛。在我看来,这是合乎逻辑的:内部点求解器将问题转换为障碍问题,其中约束基本上在约束违反边界处转换为成倍增加的成本。结果,内部点求解器将(最初)避免问题的边界(由于约束违约边界处惩罚函数的增加)并以较慢的速率收敛。

我的问题如下:

    内点方法中边界和路径约束的数学公式有何不同?
  1. 为什么不将路径约束的边界设置为5500 m来降低收敛速度,就像变量边界降低收敛速度一样?
  2. 提前感谢!

P.s。最优解位于5500 m高度的约束边界附近。在最佳解决方案中,飞机应在最后时刻达到h = 5500 m,因此,它会在t_f之前的某个时间飞行到该高度附近。

很遗憾,我正在使用GPOPS-II(商业优化软件)来解决飞机的航迹优化问题。 GPOPS-II将问题转换为NLP问题,随后出现...

optimization boundary convex-optimization convergence ipopt
1个回答
0
投票
我在this帖子中找到了第一个问题的答案。我认为IPOPT平等对待路径约束和变量边界。事实证明,“保证Ipopt在所有中间迭代中满足的唯一约束是变量的简单上下限。在求解器最终收敛之前,不一定要满足任何其他线性或非线性等式或不等式约束。迭代(如果可以达到满足终止条件的程度)。”
© www.soinside.com 2019 - 2024. All rights reserved.