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

Optimization 为什么使用路径约束而不是可变边界时IPOPT收敛更快?,optimization,boundary,convex-optimization,convergence,ipopt,Optimization,Boundary,Convex Optimization,Convergence,Ipopt,我正在使用GPOPS-II(不幸的是,商业优化软件)来解决飞机轨迹优化问题。GPOPS-II将问题转录为NLP问题,然后由NLP解算器IPOPT解决 当我试图解决我的问题时,我在飞机的高度上加了一个界限。我设定的海拔上限是5500米。现在,我可以用两种方法来做。首先,我可以设置状态变量海拔5500 m的直接上限。为此,IPOPT需要大约1000次迭代和438秒,直到找到最佳解决方案。 其次,我可以对5500 m的状态变量高度施加路径约束。同时,我将状态变量高度的直接边界放宽到5750米。现在,这

我正在使用GPOPS-II(不幸的是,商业优化软件)来解决飞机轨迹优化问题。GPOPS-II将问题转录为NLP问题,然后由NLP解算器IPOPT解决

当我试图解决我的问题时,我在飞机的高度上加了一个界限。我设定的海拔上限是5500米。现在,我可以用两种方法来做。首先,我可以设置状态变量海拔5500 m的直接上限。为此,IPOPT需要大约1000次迭代和438秒,直到找到最佳解决方案。 其次,我可以对5500 m的状态变量高度施加路径约束。同时,我将状态变量高度的直接边界放宽到5750米。现在,这些问题公式在逻辑上是等价的,但在数学上似乎不是这样的:这次IPOPT只需要150次迭代和240秒就可以收敛到完全相同的最优解

我已经发现有人说,由于内点方法的性质,放松NLP程序的边界可以促进更快的收敛。在我看来,这似乎是合乎逻辑的:内部点解算器将问题转化为障碍问题,在障碍问题中,约束基本上转化为约束冲突边界处的成本呈指数增长。因此,内部点解算器(最初)将避免问题的边界(因为违反约束边界处的惩罚函数不断增加),并以较慢的速度收敛

我的问题如下:

  • 在内点法中,边界约束和路径约束的数学公式有何不同
  • 为什么不将路径约束的边界设置为5500 m会减慢收敛速度,就像变量边界减慢收敛速度一样
  • 提前谢谢


    p.s.最优解位于5500 m高度的约束边界附近;在最佳解决方案中,飞机应在最后时刻达到h=5500米,因此,它在t_f前一段时间在该高度附近飞行

    我在帖子中找到了我第一个问题的答案。我认为IPOPT平等地对待路径约束和变量的边界。事实证明,“Ipopt在所有中间迭代中保证满足的唯一约束是变量的简单上界和下界。任何其他线性或非线性等式或不等式约束都不一定满足,直到解算器在最终迭代中完成收敛(如果能够达到满足终止条件的点)。”

    因此,在变量上设置边界会给出决策变量的硬边界,而路径约束会给出软边界


    这也部分回答了我的第二个问题,即收敛的差异是可以解释的。但是,有了这些知识,我希望设置边界可以加快收敛速度。

    可能只是运气不好:解决方案路径不同。通常边界比显式约束更好,因为它可以使问题更小。这就是我的想法一开始也是这样。只是因为一些胡闹和偶然的机会,我才发现了这一点。问题是,我不知道内点算法中的一个约束与另一个约束有什么不同:该算法将所有约束转换为一个成本壁垒,对吗?一个模型说的不多。这是我现在正在研究的一个模型:上限作为约束条件:40秒,作为适当的上限:13秒。这有点极端,但它证明了我的观点。我现在明白了,我忘了补充一点,即最佳解决方案要求飞机在边界附近/边界处飞行;最后一次应该达到5500米的高度。也许这为我试图解释的问题提供了新的思路算法是否试图避免约束边界?