Search code examples
optimizationnonlinear-optimizationipopt

ipopt: how efficient is -Inf < var < Inf when defining a decision variable in ipopt?


I am using ipopt to solve trajectory optimization problems and would like to know the difference (in terms of efficiency) between setting the bounds of a decision variable as 1) any real number, (-Inf,Inf) and 2) any "large" real number, e.g. (-10^12,10^12). I use quotation marks here because "large" is subjective and depends on the application.

Choosing 10^12 as my "large" number, and if var is a 1D decision variable, I would like to know if ipopt is more efficient at handling

-Inf < var < Inf

or

-10^12 < var < 10^12

From a practical standpoint, option 2) should be more efficient since it shrinks the design space, but if ipopt employs some smart heuristics to deal with Inf efficiently, it's possible that having to store and carry a ``large" number (e.g. 10^12) becomes less efficient. Any insight?


Solution

  • IPOPT will be using different method for the two because in 1) the variable is unbounded, it is unconstrained, and in 2) the variable is bounded. The search space shrinks in 2), but IPOPT is more efficient at handling unconstrained/unbounded variables (1).