Is there any parameter to instruct CPLEX MIP to stop when a given value is reached as solution?
CPLEX does offer an absmipgap parameter that
tells CPLEX to stop the optimization when the difference between the
current solution and the bound given by the best node is within a
specified absolute value. [..] However, there is no parameter
to tell CPLEX to stop once the current solution has reached a certain
absolute value. ...
Dear Florian,Thank you very much for your comments and ideas. I remember that when i used to work only with cplex (generating LP files) . We could set mip solution bounds, if I am not mistaken the commands were: set mip limits solutions . Is there a way to set cplex through ampl?thanks again
This and related questions have come up before: How can you stop the MIP solution process when the lower bound is >= a certain threshold, or when the upper bound is <= a certain threshold? There are approaches to manipulating the formulation and/or currently available options, so as to get more-or-less these effects, but they tend to have serious disadvantages, such as making the solution process a lot harder or failing to return a useful solution in runs where the threshold is not reached.
There is also the option of rewriting your model to use the solver's API (callable library) so that you can use callbacks to implement the desired threshold. This tends to tie you to one solver, though. And it seems like potentially a great deal of work just to implement such a simple option.
As far as I know, no threshold options of these kinds currently exist. It might turn out that one of the MIP solvers that we support has a hidden option of the kind you want, or that the developers will add such an option, in which case we can also add it to the AMPL-solver interface.
If indeed there are no such options available, I think it could be explained by the solver developers' focus on returning a good solution. If you are minimizing and you stop as soon as the lower bound is >= some threshold, it is very possible that the integer-feasible solution returned will be very far from optimal (or that no feasible solution will have been found yet). So this would be a bad stopping criterion if you were just trying to solve one problem. What the solver developers may not have considered is the situation where someone is solving many MIPs, with the property that if any MIP's lower bound reaches the threshold then it can't possibly have an interesting solution and can be discarded. (Curiously, this is much like the "cutoff" criterion that MIP solvers employ to stop the dual simplex method when it is solving a node subproblem.)
Bob Fourer
From: am...@googlegroups.com [mailto:am...@googlegroups.com]
On Behalf Of MFABRI
Sent: Tuesday, February 25, 2014 7:21 PM
To: am...@googlegroups.com
Subject: [AMPL 8090] How to stop the solution process of a linear problem when its lower bound is positive?