为什么 IPOPT 在使用路径约束而不是变量边界时收敛得更快?
Why does IPOPT converge faster when using path constraints instead of variable bounds?
我正在使用 GPOPS-II(不幸的是商业优化软件)来解决飞机轨迹优化问题。 GPOPS-II 将问题转录为 NLP 问题,随后由 NLP 求解器 IPOPT 求解。
在尝试解决我的问题时,我对飞机的高度施加了限制。我将海拔上限设置为 5500 米。现在,我可以通过两种方式做到这一点。首先,我可以将状态变量高度的直接上限设置为 5500 米。为此,IPOPT 需要大约 1000 次迭代和 438 秒,直到找到最佳解决方案。
其次,我可以对 5500 米的状态变量高度施加路径约束。同时,我将状态变量高度的直接限制放宽到 5750 米。现在,这些问题公式在逻辑上是等价的,但在数学上似乎并不等价:这次 IPOPT 只需要 150 次迭代和 240 秒就可以收敛到 完全相同的 最优解。
我已经发现 有人说放宽 NLP 程序的界限可以促进更快的收敛,因为内点方法的性质。这对我来说似乎是合乎逻辑的:内点求解器将问题转换为障碍问题,其中约束基本上转换为在约束违反边界处呈指数增长的成本。结果,内点求解器将(最初)避开问题的边界(因为在违反约束的边界处惩罚函数增加)并以较慢的速度收敛。
我的问题如下:
- 边界和路径约束的数学公式在内点法中有何不同?
- 为什么将路径约束的界限设置为 5500 m 不会像变量界限减慢收敛速度那样减慢收敛速度?
提前致谢!
P.s。最优解位于海拔5500米的约束边界附近;在最优解中,飞行器应该在最后时刻达到 h = 5500 m,因此,它会在 t_f 之前的某个时间飞到这个高度附近。
我在 post 中找到了第一个问题的答案。我认为 IPOPT 平等对待变量的路径约束和界限。结果是 "The only constraints that Ipopt is guaranteed to satisfy at all intermediate iterations are simple upper and lower bounds on variables. Any other linear or nonlinear equality or inequality constraint will not necessarily be satisfied until the solver has finished converging at the final iteration (if it can get to a point that satisfies termination conditions)."
因此,设置变量的边界会为决策变量提供硬边界,而路径约束会提供软边界。
这也部分回答了我的第二个问题,因为收敛的差异是可以解释的。但是,有了这些知识,我希望设置界限可以加快收敛速度。
我正在使用 GPOPS-II(不幸的是商业优化软件)来解决飞机轨迹优化问题。 GPOPS-II 将问题转录为 NLP 问题,随后由 NLP 求解器 IPOPT 求解。
在尝试解决我的问题时,我对飞机的高度施加了限制。我将海拔上限设置为 5500 米。现在,我可以通过两种方式做到这一点。首先,我可以将状态变量高度的直接上限设置为 5500 米。为此,IPOPT 需要大约 1000 次迭代和 438 秒,直到找到最佳解决方案。 其次,我可以对 5500 米的状态变量高度施加路径约束。同时,我将状态变量高度的直接限制放宽到 5750 米。现在,这些问题公式在逻辑上是等价的,但在数学上似乎并不等价:这次 IPOPT 只需要 150 次迭代和 240 秒就可以收敛到 完全相同的 最优解。
我已经发现
我的问题如下:
- 边界和路径约束的数学公式在内点法中有何不同?
- 为什么将路径约束的界限设置为 5500 m 不会像变量界限减慢收敛速度那样减慢收敛速度?
提前致谢!
P.s。最优解位于海拔5500米的约束边界附近;在最优解中,飞行器应该在最后时刻达到 h = 5500 m,因此,它会在 t_f 之前的某个时间飞到这个高度附近。
我在
因此,设置变量的边界会为决策变量提供硬边界,而路径约束会提供软边界。
这也部分回答了我的第二个问题,因为收敛的差异是可以解释的。但是,有了这些知识,我希望设置界限可以加快收敛速度。