Solved

How to adjust solving precision

  • 7 August 2023
  • 2 replies
  • 33 views

Badge +4

Hi, when I solve an optimization problem (which is convex), though there should be only one optimum solution theoretically, I can get nearly the same objective value but totally different decision variables under different solvers and even within the same solver under multi run.

Now I want to reduce the precision on the variables. Currently the continuous variables may search into 20 digits after the decimal point, how can I limit it into maybe the first two digits after the decimal point? Can AIMMS do this?

Thanks a lot.

icon

Best answer by Marcel Hunting 7 August 2023, 15:51

View original

2 replies

Userlevel 5
Badge +4

Hi @Chunyang. Convex optimization problems can have multiple optimal solutions having the same objective value. For example:

min (x+y)^2

s.t. x + y = 1

You cannot instruct solvers to optimize variables for only x digits. Solvers have options for changing the convergence tolerance (for the barrier algorithm), or the feasibility tolerance (for the simplex algorithm) but that way you cannot (indirectly) tell the solver to optimize variables for only x digits.

Badge +4

Hi @Chunyang. Convex optimization problems can have multiple optimal solutions having the same objective value. For example:

min (x+y)^2

s.t. x + y = 1

You cannot instruct solvers to optimize variables for only x digits. Solvers have options for changing the convergence tolerance (for the barrier algorithm), or the feasibility tolerance (for the simplex algorithm) but that way you cannot (indirectly) tell the solver to optimize variables for only x digits.

Thanks a lot.

Reply


Didn't find what you were looking for? Try searching on our documentation pages:

AIMMS Developer & PRO | AIMMS How-To | AIMMS SC Navigator