OptimoJoe / Optizelle

Optizelle [op-tuh-zel] is an open source software library designed to solve general purpose nonlinear optimization problems.
www.optimojoe.com/products/optizelle
63 stars 13 forks source link

Add support for absolute stopping tolerances #35

Closed josyoun closed 8 years ago

josyoun commented 9 years ago

Right now, all of our stopping tolerances are relative. Most of the time, this is ok, unless we're solving a sequence of optimization problems in a row and we use a warm start. In this case, we're likely still feasible, so reducing this tolerance again is difficult. As such, the best option in this case is to use an absolute tolerance. Also, sometime we just know how small we want things and using an absolute tolerance is the right thing to do in this context.

josyoun commented 8 years ago

Added in commit 86f4988bd93ae9321150f7f50590dcd0cdaf6398 and controlled with the variable eps_kind. Since this has been a constant source of bugs with people, the default is now absolute tolerances, which are somewhat more intuitive. For example, if we have equality constraints and start with a feasible solution, it's hard to get relative decrease. In any case, in order to set back to the old behavior, just set eps_kind=ToleranceKind::Relative.