0

I am using GPOPS-II (commercial optimisation software, unfortunately) to solve an aircraft trajectory optimisation problem. GPOPS-II transcribes the problem to a NLP problem that is subsequently solved by IPOPT, an NLP solver.

When trying to solve my problem, I impose a bound on the altitude of the aircraft. I am setting an upper limit of 5500 m on the altitude. Now, I can do this in two ways. First of all, I can set a direct upper bound on the state variable altitude of 5500 m. Doing this, IPOPT requires approximately 1000 iterations and 438 seconds until it finds an optimal solution. Secondly, I can impose a path constraint on the state variable altitude of 5500 m. At the same time, I am relaxing the direct bound on the state variable altitude to 5750 m. Now, these problem formulations are logically equivalent, but not mathematically it seems: this time IPOPT takes only 150 iterations and 240 seconds to converge to the exact same optimal solution.

I already found a discussion where someone states that loosening the bounds on an NLP program promotes faster convergence, because of the nature of interior point methods. This seems logical to me: an interior point solver transforms the problem to a barrier problem in which the constraints are basically converted to an exponentially increasing cost at the constraint violation boundaries. As a result, the interior point solver will (initially) avoid the bounds of the problem (because of the increasing penalty function at the constraint violation boundaries) and converge at a slower rate.

My questions are the following:

  1. How do the mathematical formulations of bound and of path constraints differ in an interior point method?
  2. Why doesn't setting the bound of the path constraint to 5500 m slow down convergence in the same way the variable bound slows down convergence?

Thanks in advance!

P.s. The optimal solution lies near the constraint boundary of the altitude of 5500 m; in the optimal solution, the aircraft should reach h = 5500 m at the final time, and as a consequence, it flies near this altitude some time before t_f.

Sam
  • 305
  • 1
  • 8
  • May be just bad luck: the solution path is different. Usually bounds are better than explicit constraints as it keeps the problem smaller. – Erwin Kalvelagen Dec 11 '19 at 19:55
  • That's what I thought initially, too. It is just because of some fooling around and per chance that I found this out. The thing is, I just don't see how one constraint would differ from the other in an interior point algorithm: the algorithm transforms all constraints into a cost barrier, right? – Sam Dec 11 '19 at 22:11
  • One model does not say much. Here is a model I am looking at right now: upper bounds as constraints: 40 seconds, as proper upper bounds: 13 seconds. This is a bit extreme, but it demonstrates my point. – Erwin Kalvelagen Dec 12 '19 at 06:53
  • I now see I forgot to add that the optimal solution requires the aircraft to fly near/at the boundary; it should reach an altitude of 5500 m at the final time. Maybe this sheds new light on what I tried to explain about the algorithm trying to avoid the constraint boundaries? – Sam Dec 12 '19 at 23:03

1 Answers1

-1

I found the answer to my first question in this post. I thought that IPOPT treated path constraints and bounds on variables equally. It turns out that "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)."

So setting bounds on the variables gives a hard bound on the decision variables, whereas the path constraints give soft bounds.

This also partly answers my second question, in that the difference in convergence is explicable. However, with this knowledge, I'd expect setting bounds to result in faster convergence.

Sam
  • 305
  • 1
  • 8