Search code examples
optimizationmathematical-optimizationnumerical-methodscvxpymosek

why we can't use large bound as replacement for infinity in mosek?


Here in the documentation (https://docs.mosek.com/latest/pythonfusion/debugging-numerical.html)

we see:

Never use a very large number as replacement for infinity . Instead define the variable or constraint as unbounded from below/above. Similarly, avoid artificial huge bounds if you expect they will not become tight in the optimal solution.

why is that the case?


Solution

  • The problem is if you have something like

    x <= 10^20,

    then does 10^20 actually mean infinity or not. So I wanted to force users to carefully consider whether they meant infinity or some finite number. So it is meant as a help to the users. Although I knew they might find it annoying.

    If you want a theoretical argument for large bounds are can be bad for computational complexity (=number of iterations), then read Section 5.2 at

    https://onlinelibrary.wiley.com/doi/book/10.1002/9781118032701