You can change the MIP Strategy options for CPLEX by choosing CPLEX parameters from the Options menu and then pressing the MIP Strategy tab. This will display the dialog box shown below:
Figure 4.46: The CPLEX MIP Stategy Options Dialog Box
Option Name | MPL Name | Solver Param | ParamNr | Type | Default | Min | Max |
---|---|---|---|---|---|---|---|
Node Selection | MipNodeSelect | NodeSel | 2018 | list | 1 | 0 | 3 |
Best bound interval | MipBestBoundInterval | BBInterval | 2039 | int | 7 | 0 | MAXINT |
Variable Selection | MipVariableSelect | VarSel | 2028 | list | 0 | -1 | 4 |
MIP Probe | MipProbe | Probe | 2042 | list | 0 | -1 | 3 |
Use MIP Priority order | MipPriorityOrder | MIPOrdInd | 2020 | flag | 1 | 0 | 1 |
MIP Priority order type | MipPriorityOrderType | MIPOrdType | 2032 | list | 0 | 0 | 3 |
Branch Direction | MipBranchingStrategy | BrDir | 2001 | list | 0 | -1 | 1 |
The Node selection option is used to set the rule for selecting the next node to process when backtracking (proceeding back through the tree when a node is infeasible or cutoff). The Best Bound method works better for many problems; but Depth First may find a good solution deep in the tree faster. Depth first will also use less memory.
Depth first (0) | The depth-first search strategy chooses the most recently created node |
Best bound (1) | The best bound strategy chooses the node with the best objective function for the associated LP relaxation |
Best estimate (2) | The best estimate strategy selects the node with the best estimate of the integer objective value that would be obtained from a node once all integer infeasibilities are removed |
Best estimate alternate (3) | Alternate best-estimate search |
When using Best-Estimate Search, the Best Bound Interval is the interval at which the best bound node, instead of the best estimate node, will be selected from the tree
The default value is 7.
0 () | Best estimate node always selected |
1 () | Best bound node always selected |
>1 () | The interval at which the best bound node will be selected from the tree |
The Variable selection option is used to set the rule for selecting the branching variable at the node which has been selected for branching.
Minimum infeasibility (-1) | The minimum infeasibility rule chooses the variable with the smallest fractional value. It may lead more quickly to a first integer feasible solution, but will usually be slower overall to reach the optimal integer solution. |
Automatic (0) | Branch variable automatically selected. This option allows CPLEX to select the best rule based on the problem and its progress |
Maximum infeasibility (1) | The maximum infeasibility rule chooses the variable with the largest fractional value; It forces larger changes earlier in the tree, which tends to produce faster overall times to reach the optimal solution |
Pseudo costs (2) | Pseudo costs causes variable selection based on pseudo-costs which are derived from pseudo-shadow prices |
Strong branching (3) | Strong branching causes variable selection based on partially solving a number of subproblems with tentative branches to see which branch is the most promising. This strategy can be effective on large, difficult MIP problems |
Pseudo reduced costs (4) | Pseudo-reduced costs causes variable selection based on pseudo-costs which are derivedfrom pseudo-shadow prices. |
Determines the amount of variable probing to be performed on a problem. Probing can be both very powerful and very time consuming. Setting the value Probing level 1-3 can in some cases result in dramatic reductions or dramatic increases in solution time on particular models.
No probing (-1) | |
Automatic (0) | |
Probing Level 1 (1) | |
Probing Level 2 (2) | |
Probing Level 3 (3) |
A priority order assigns a branching priority to some or all of the integer variables. Variables with priorities will be branched on before variables without priorities. Variables with higher priorities will be branched on before variables with lower priorities (when the variables have fractional values). To switch off this function, make sure the box is unchecked.
Used to select the type of generic priority order to generate when no priority order is present.
Do not generate (0) | |
Use decreasing cost (1) | |
Use increasing bound range (2) | |
Use increasing cost per coefficient count (3) |
The Branch direction option is used to decide which branch, the up branch or the down branch, should be taken first at each node. For some problems, directing the algorithm to always branch up or down can improve performance.
Branch down (-1) | Branch down (restricted to lower value). |
Algorithm select (0) | The algorithm selects the branch direction. |
Branch up (1) | Branch up (restricted to higher value). |