| ILOG CPLEX 11.0 User's Manual > Discrete Optimization > Solving Mixed Integer Programming Problems (MIP) > Tuning Performance Features of the Mixed Integer Optimizer > Heuristics |
Heuristics |
INDEX
PREVIOUS
NEXT
|
In ILOG CPLEX, a heuristic is a procedure that tries to produce good or approximate solutions to a problem quickly but which lacks theoretical guarantees. In the context of solving a MIP, a heuristic is a method that may produce one or more solutions, satisfying all constraints and all integrality conditions, but lacking an indication of whether it has found the best solution possible.
ILOG CPLEX provides these families of heuristics to find integer solutions at nodes (including the root node) during the branch & cut procedure:
Being integrated into branch & cut, these heuristic solutions gain the same advantages toward a proof of optimality as any solution produced by branching, and in many instances, they can speed the final proof of optimality, or they can provide a suboptimal but high-quality solution in a shorter amount of time than by branching alone. With default parameter settings, ILOG CPLEX automatically invokes the heuristics when they seem likely to be beneficial.
The node heuristic employs techniques to try to construct a feasible solution from the current (fractional) branch & cut node. This feature is controlled by the parameter HeurFreq. At its default value of 0 (zero), ILOG CPLEX dynamically sets the frequency with which the heuristic is invoked. The setting -1 turns the feature off. A positive value specifies the frequency (in node count) with which the heuristic will be called. For example, if the HeurFreq parameter is set to 20, then the node heuristic will be applied at node 0, node 20, node 40, and so on.
Relaxation induced neighborhood search (RINS) is a heuristic that explores a neighborhood of the current incumbent solution to try to find a new, improved incumbent. It formulates the neighborhood exploration as another MIP (known as the subMIP), and truncates the subMIP optimization by limiting the number of nodes explored in the search tree.
Two parameters apply specifically to RINS: RINSHeur and SubMIPNodeLim.
RINSHeur controls how often RINS is invoked, in a manner analogous to the way that HeurFreq works. A setting of 100, for example, means that RINS is invoked every 100th node in the tree, while -1 turns it off. The default setting is 0 (zero), which means that ILOG CPLEX decides when to apply it; with this automatic setting, RINS is applied very much less frequently than the node heuristic is applied because RINS typically consumes more time. Also, with the default setting, RINS is turned entirely off if the node heuristic has been turned off via a HeurFreq setting of -1; with any other RINSHeur setting than 0 (zero), the HeurFreq setting does not affect RINS frequency.
SubMIPNodeLim restricts the number of nodes searched in the subMIP during application of the relaxation induced neighborhood search (RINS) heuristic. Its default is 500 is satisfactory in most situations, but you can set this parameter to any positive integer if you need to tune performance for your problem.
Solution polishing can be used to improve the best known solution at the end of branch & cut if optimality has not been proven. Alternatively, it can used instead of the branch & cut algorithm if an initial solution can be found at the root node. If Solution Polishing is used as an alternative algorithm to branch & cut, optimality may not be proven, even if the optimal solution is found.
A parameter enables you to specify the amount of time ILOG CPLEX spends polishing the best solution found. The default value of this parameter is 0.0, so that by default no separate polishing phase is performed. The parameter accepts any nonnegative value, to set a limit in seconds.
PolishTime in Concert Technology
CPX_PARAM_POLISHTIME in the Callable Library
mip limit polishtime in the Interactive Optimizer
If a MIP optimization has located a feasible solution and already terminated, you can invoke polishing alone in the same application call or interactive session by following these steps:
TiLim in Concert Technology
CPX_PARAM_TILIM in the Callable Library
timelimit in the Interactive Optimizer
Remember to leave the advanced indicator parameter at its default value of 1 (one) so that the polishing will proceed from the advanced start.
AdvInd in Concert Technology
CPX_PARAM_ADVIND in the Callable Library
advance in the Interactive Optimizer
As with the RINS heuristic, the subMIP node-limit parameter also controls aspects of the work that solution polishing performs.
SubMIPNodeLim in Concert Technology
CPX_PARAM_SUBMIPNODELIM in the Callable Library
mip limits submipnodelim in the Interactive Optimizer
Solution polishing always requires the presence of a feasible solution from which to start. If the feasible solution came from a MIP start, it must be consistent with any dual presolve reductions that ILOG CPLEX makes. Therefore, in order for polishing to work on a MIP start, you may need to disable some combination of dual presolve reductions, nonlinear presolve reductions, or symmetry reductions. For details about the parameters to disable those features, see the ILOG CPLEX Parameter Reference Manual, especially these pages:
PreInd (bool), CPX_PARAM_PREIND (int)
PreLinear, CPX_PARAM_PRELINEAR
Symmetry, CPX_PARAM_SYMMETRY
Solution polishing is much more time-intensive than any of the other heuristics, but can yield better solutions in some situations.
| Copyright © 1987-2007 ILOG S.A. All rights reserved. Legal terms. | PREVIOUS NEXT |