. It is possible to set all of these
parameters from Matlab.
is used to set values for parameters.
.
.
is the unique parameter identifier. When setting parameter
values in the
structure, this prefix should be
omitted. For example, to set the iterations for the dual simplex
optimizer do:
TOMLAB parameter |
Value |
|
cpxControl.ADVIND |
0 Off: do not use advanced start information
1 On: CPLEX will use an advanced basis supplied by the user
2 On: CPLEX will crush an advanced basis or starting vector supplied by the user
Default: 0 |
Description: An indicator which, if set to 1 or 2, uses advanced starting information
when optimization is initiated. Setting 2 may be effective for MIPs in which the
percentage of integer constraints is low. It may also reduce the solution time of
fixed MIPs. |
cpxControl.AGGCUTLIM |
Any non-negative integer.
Default: 3 |
Description: Constraint aggregation limit for cut generation.
Limits the number of constraints that can be aggregated for
generating flow cover and mixed integer rounding cuts |
cpxControl.AGGFILL |
Any non-negative integer
Default: 10 |
Description: Preprocessing aggregator fill. Limits variable
substitutions by the aggregator. If the net result of a single
substitution is more nonzeros than this value, the substitution is
not made. |
cpxControl.AGGIND |
-1 Automatic (1 for LP, infinite for MIP)
0 Do not use any aggregator
Any positive integer
Default: -1 |
Description: Preprocessing aggregator application limit. Invokes
the aggregator to use substitution where possible to reduce the
number of rows and columns before the problem is solved. If set to
a positive value, the aggregator is applied the specified number
of times or until no more reductions are possible. |
cpxControl.BARALG |
0 Default setting
1 Infeasibility-estimate start
2 Infeasibility-constant start
3 Standard barrier
Default: 0 |
Description: Barrier algorithm.
The default setting 0
uses the "infeasibility - estimate start" algorithm (setting 1)
when solving sub-problems in a Mixed Integer Programming problem,
and the standard barrier algorithm (setting 3) in other cases. The
standard barrier algorithm is almost always fastest. However, on
problems that are primal or dual infeasible (common for Mixed
Integer sub-problems), the standard algorithm may not work as well
as the alternatives. The two alternative algorithms (settings 1
and 2) may eliminate numerical difficulties related to
infeasibility, but are generally slower. |
cpxControl.BARCOLNZ |
0 Dynamically calculated or,
any positive integer
Default: 0 |
Description: Barrier column nonzeros.
Used in the
recognition of dense columns. If columns in the presolved and
aggregated problem exist with more entries than this value, such
columns are considered dense and are treated specially by the
CPLEX Barrier Optimizer to reduce their effect. If the problem
contains fewer than 400 rows, dense column handling is NOT
initiated. |
cpxControl.BARCROSSALG |
-1 No crossover
0 Automatic
1 Primal crossover
2 Dual crossover
Default: 0 |
Description: Barrier crossover method.
Determines which, if any,
crossover method is performed at the end of a Barrier optimization. |
cpxControl.BARDISPLAY |
0 No progress information
1 Normal setup and iteration information
2 Diagnostic information
Default: 1 |
Description: Barrier display information.
Determines the
level of barrier information to be displayed. |
cpxControl.BAREPCOMP |
Any positive number ≥ 10−12
Default: 10−8 |
Description: Convergence tolerance for LP and QP problems.
For problems with quadratic constraints (QCP), see BARQCPEPCOMP.
Sets the tolerance on complementarity for convergence. The barrier
algorithm terminates with an optimal solution if the relative
complementarity is smaller than this value. Changing this tolerance
to a smaller value may result in greater numerical precision of the
solution, but also increases the chance of a convergence failure in
the algorithm and consequently may result in no solution at all.
Therefore, caution is advised in deviating from the default
setting. |
cpxControl.BARGROWTH |
1.0 or greater.
Default: 108 |
Description: Barrier growth.
Used to detect unbounded
optimal faces. At higher values, the barrier algorithm is less
likely to conclude that the problem has an unbounded optimal face,
but more likely to have numerical difficulties if the problem has
an unbounded face. |
cpxControl.BARITLIM |
0 No Barrier iterations
or, any positive integer
Default: Large (varies by computer) |
Description: Barrier iteration limit.
Sets the number of
Barrier iterations before termination. When set to 0, no Barrier
iterations occur, but problem "setup" occurs and information about
the setup is displayed (such as Cholesky factorization
information). |
cpxControl.BARMAXCOR |
-1 Automatically determined
0 None
or, any positive integer
Default: -1 |
Description: Barrier maximum correction limit.
Sets the
maximum number of centering corrections done on each iteration. An
explicit value greater than 0 may improve the numerical
performance of the algorithm at the expense of computation time. |
cpxControl.BAROBJRNG |
Any positive number
Default: 1020 |
Description: Barrier objective range.
Sets the maximum
absolute value of the objective function. The barrier algorithm
looks at this limit to detect unbounded problems. |
cpxControl.BARORDER |
0 Automatic
1 Approximate minimum degree (AMD)
2 Approximate minimum fill (AMF)
3 Nested dissection (ND)
Default: 0 values |
Description: Barrier ordering algorithm.
Sets the
algorithm to be used to permute the rows of the constraint matrix
in order to reduce fill in the Cholesky factor. |
cpxControl.BARQCPEPCOMP |
Any positive number ≥10−12
Default: 10−6 |
Description: Convergence tolerance for QCP problems. That is, for
quadratically constrained problems. For LPs and for QPs (that is,
when all the constraints are linear) see BAREPCOMP. Sets the
tolerance on complementarity for convergence. The barrier
algorithm terminates with an optimal solution if the relative
complementarity is smaller than this value. Changing this
tolerance to a smaller value may result in greater numerical
precision of the solution, but also increases the chance of a
convergence failure in the algorithm and consequently may result
in no solution at all. Therefore, caution is advised in deviating
from the default setting. |
cpxControl.BARSTARTALG |
1 Dual is 0
2 Estimate dual
3 Average of primal estimate, dual 0
4 Average of primal estimate, estimate dual
Default: 1 |
Description: Barrier starting point algorithm.
Sets the
algorithm to be used to compute the initial starting point for the
barrier optimizer. |
cpxControl.BARTHREADS |
0 Determined by global thread default
>0 Upper limit on threads for Parallel Barrier
Default: 0 |
Description: Barrier thread limit.
Determines the maximum
number of parallel processes (threads) that will be invoked by the
parallel barrier optimizer. The default value of 0 means that the limit
will be determined by the value of THREADS, the global thread
limit parameter. A positive value will override the value found in
THREADS. |
cpxControl.BBINTERVAL |
0 Best estimate node always selected
or, any positive integer
Default: 7 |
Description: MIP strategy bbinterval.
When using
nodeselect 2, the bbinterval is the interval at which the best
bound node, instead of the best estimate node, is selected from
the tree. A bbinterval of 0 means to never select the best bound
node. A bbinterval of 1 means to always select the best bound
node, and is thus equivalent to nodeselect 1. Higher values of
bbinterval mean that the best bound node will be selected less
frequently; experience has shown it to be beneficial to
occasionally select the best bound node, and therefore the default
bbinterval is 7. |
cpxControl.BNDSTRENIND |
-1 Automatically determined
0 Do not apply bound strengthening
1 Apply bound strengthening
Default: -1 |
Description: Bound strengthening indicator.
Used when
solving mixed integer programs. Bound strengthening tightens the
bounds on variables, perhaps to the point where the variable can
be fixed and thus removed from consideration during branch & cut.
This reduction is usually beneficial, but occasionally, due to its
iterative nature, takes a long time. |
cpxControl.BRDIR |
-1 Down branch selected first
0 Automatically determined
1 Up branch selected first
Default: 0 |
Description: MIP branching direction.
Used to decide
which branch, the up or the down branch, should be taken first at
each node. |
cpxControl.BTTOL |
Any number from 0.0 to 1.0
Default: 0.9999 |
Description: Backtracking tolerance.
Controls how often
backtracking is done during the branching process. The decision
when to backtrack depends on three values that change during the
course of the optimization:
- the objective function
value of the best integer feasible solution ("incumbent")
- the best remaining objective function value of any unexplored
node ("best node")
- the objective function value of the
most recently solved node ("current objective").
If a
cutoff tolerance (see CUTUP and CUTLO) has been
set by the user then that value is used as the incumbent until an
integer feasible solution is found. The "target gap" is defined
to be the absolute value of the difference between the incumbent
and the best node, multiplied by this backtracking parameter.
CPLEX does not backtrack until the absolute value of the
difference between the current objective and the best node is at
least as large as the target gap. Low values of this backtracking
parameter thus tend to increase the amount of backtracking, which
makes the search process more of a pure best-bound search. Higher
parameter values tend to decrease backtracking, making the search
more of a pure depth-first search. The backtracking value has
effect only after an integer feasible solution is found or when a
cutoff has been specified. Note that this backtracking value
merely permits backtracking but does not force it; CPLEX may
choose to continue searching a limb of the tree if it seems a
promising candidate for finding an integer feasible solution. |
cpxControl.CLIQUES |
-1 Do not generate clique cuts
0 Automatically determined
1 Generate clique cuts moderately
2 Generate clique cuts aggressively
Default: 0 |
Description: MIP cliques indicator.
Determines whether
or not clique cuts should be generated for the problem. Setting
the value to 0, the default, indicates that the attempt to
generate cliques should continue only if it seems to be helping. |
cpxControl.CLOCKTYPE |
1 CPU time
2 Wall clock time (total physical time elapsed)
Default: 1 |
Description: Computation time reporting.
Determines how
computation times are measured. |
cpxControl.COEREDIND |
0 Do not use coefficient reduction
1 Reduce only to integral coefficients
2 Reduce all potential coefficients
Default: 2 |
Description: Coefficient reduction setting.
Determines
how coefficient reduction is used. Coefficient reduction improves
the objective value of the initial (and subsequent) LP relaxations
solved during branch & cut by reducing the number of non-integral
vertices. |
cpxControl.COLREADLIM |
Any integer from 0 to 268 435
450
Default: Varies by computer. |
Description: Variable (column) read limit.
Sets the
number of variables that can be read. |
cpxControl.COVERS |
-1 Do not generate cover cuts
0 Automatically determined
1 Generate cover cuts moderately
2 Generate cover cuts aggressively
3 Generate cover cuts very aggressively
Default: 0 |
Description: MIP covers indicator.
Determines whether or
not cover cuts should be generated for the problem. Setting the
value to 0, the default, indicates that the attempt to generate
covers should continue only if it seems to be helping. |
cpxControl.CRAIND |
LP Primal:
0 Ignore objective coefficients during crash
-1 or 1 Alternate ways of using objective coefficients
LP Dual:
1 Default starting basis
0 or -1 Aggressive starting basis
QP Primal:
-1 Slack basis
0 Ignore Q terms and use LP solver for crash
1 Ignore objective and use LP solver for crash
QP Dual:
-1 Slack basis
0 or 1 Use Q terms for crash |
Description: Simplex crash ordering.
Determines how CPLEX
orders variables relative to the objective function when selecting
an initial basis. |
cpxControl.CUTLO |
Any number
Default: −1075 |
Description: Lower cutoff.
When the problem is a maximization
problem, the LOWERCUTOFF parameter is used to cut off any nodes
that have an objective value below the lower cutoff value. On a
continued mixed integer optimization, the larger of these values
and the updated cutoff found during optimization are used during
the next mixed integer optimization. A too-restrictive value for
the LOWERCUTOFF parameter may result in no integer solutions being
found. |
cpxControl.CUTPASS |
-1 None
0 Automatically determined
Positive values give number of passes to perform
Default: 0 |
Description: Number of cutting plane passes.
Sets the upper
limit on the number of passes CPLEX performs when generating
cutting planes on a MIP model. |
cpxControl.CUTSFACTOR |
Any non-negative number.
Default: 4.0 |
Description: Row multiplier factor for cuts.
Limits the number
of cuts that can be added. The number of rows in the problem with
cuts added is limited to CUTSFACTOR times the original number of
rows. If the problem is presolved, the original number of rows is
that from the presolved problem.
A CUTSFACTOR of 1.0 or less
means that no cuts will be generated. Because cuts can be added and
removed during the course of optimization, CUTSFACTOR may not
correspond directly to the number of cuts seen during the node log
or in the summary table at the end of optimization. |
cpxControl.CUTUP |
Any number.
Default: 1075. |
Description: Upper cutoff.
Cuts off any nodes that have an
objective value above the upper cutoff value, when the problem is
a minimization problem. When a mixed integer optimization problem
is continued, the smaller of these values and the updated cutoff
found during optimization are used during the next mixed integer
optimization. A too-restrictive value for the UPPERCUTOFF
parameter may result in no integer solutions being found. |
cpxControl.DATACHECK |
0 Off (do not check)
1 On (check)
Default: 0 |
Description: Data consistency checking indicator.
When set to
1 (On), extensive checking is performed on data
in the array arguments, such as checking that indices are within
range, that there are no duplicate entries and that values are
valid for the type of data or are valid numbers. This is useful
for debugging applications. |
cpxControl.DEPIND |
0 Off (do not use dependency checker)
1 On (use dependency checker)
Default: 0 |
Description: Dependency indicator.
Determines whether to
activate the "dependency checker". If on, the dependency checker
searches for dependent rows during preprocessing. If off,
dependent rows are not identified. |
cpxControl.DISJCUTS |
-1 Do not generate disjunctive cuts
0 Automatically determined
1 Generate disjunctive cuts moderately
2 Generate disjunctive cuts aggressively
3 Generate disjunctive cuts very aggressively
Default: 0 |
Description: MIP disjunctive cuts indicator.
Determines
whether or not disjunctive cuts should be generated for the
problem. Setting the value to 0, the default, indicates that the
attempt to generate disjunctive cuts should continue only if it
seems to be helping. |
cpxControl.DIVETYPE |
0 automatic
1 traditional dive
2 probing dive
3 guided dive
Default: 0
|
Description: MIP dive strategy.
The MIP traversal strategy
occasionally performs probing dives, where it looks ahead at both
children nodes before deciding which node to choose. The default
(automatic) setting lets CPLEX choose when to perform a probing dive,
1 directs CPLEX never to perform probing dives, 2 always to probe, 3
spend more time exploring potential solutions that are similar to
the current incumbent. Setting 2, always to probe, is helpful for
finding integer solutions. |
cpxControl.DPRIIND |
0 Determined automatically
1 Standard dual pricing
2 Steepest-edge pricing
3 Steepest-edge pricing in slack space
4 Steepest-edge pricing, unit initial norms
5 Devex pricing
Default: 0 |
Description: Dual simplex pricing algorithm.
The default
pricing (0) usually provides the fastest solution time, but many
problems benefit from alternate settings. |
cpxControl.EPAGAP |
Any non-negative number.
Default: 10−6. |
Description: Absolute mipgap tolerance.
Sets an absolute
tolerance on the gap between the best integer objective and the
objective of the best node remaining. When this difference falls
below the value of the ABSMIPGAP parameter, the mixed integer
optimization is stopped. |
cpxControl.EPGAP |
Any number from 0.0 to 1.0
Default: 10−4 |
Description: Relative mipgap tolerance.
Sets a relative
tolerance on the gap between the best integer objective and the
objective of the best node remaining. When the value
|
|bestnode−bestinteger| |
|
10−10+|bestinteger| |
|
falls below the value of the MIPGAP parameter, the mixed
integer optimization is stopped. For example, to instruct CPLEX to
stop as soon as it has found a feasible integer solution proved to
be within five percent of optimal, set the relative mipgap
tolerance to 0.05. |
cpxControl.EPINT |
Any number from 10−9 to 1.0.
Default: 10−5 |
Description: Integrality tolerance.
Specifies the amount by
which an integer variable can be different from an integer and
still be considered feasible. |
cpxControl.EPMRK |
Any number from 0.0001 to 0.99999
Default: 0.01 |
Description: Markowitz tolerance.
Influences pivot selection
during basis factorization. Increasing the Markowitz threshold may
improve the numerical properties of the solution. |
cpxControl.EPOPT |
Any number from 10−9 to 10−1
Default: 10−6 |
Description: Optimality tolerance.
Influences the reduced-cost
tolerance for optimality. This parameter governs how closely CPLEX
must approach the theoretically optimal solution. |
cpxControl.EPPER |
Any positive number ≥ 10−8
Default: 10−6 |
Description: Perturbation constant.
Sets the amount by which
CPLEX perturbs the upper and lower bounds on the variables when a
problem is perturbed. This parameter can be set to a smaller value
if the default value creates too large a change in the problem. |
cpxControl.EPRELAX |
Any positive number
Default: 10−6 |
Description: FeasOpt tolerance.
Sets epsilon used to measure
relaxation in FeasOpt. |
cpxControl.EPRHS |
Any number from 10−9 to 10−1
Default: 10−6 |
Description: Feasibility tolerance.
The feasibility tolerance
specifies the degree to which a problem's basic variables may
violate their bounds. FEASIBILITY influences the selection of an
optimal basis and can be reset to a higher value when a problem is
having difficulty maintaining feasibility during optimization. You
may also wish to lower this tolerance after finding an optimal
solution if there is any doubt that the solution is truly optimal.
If the feasibility tolerance is set too low, CPLEX may falsely
conclude that a problem is infeasible. If you encounter reports of
infeasibility during Phase II of the optimization, a small
adjustment in the feasibility tolerance may improve performance. |
cpxControl.FEASOPTMODE |
0 Minimize the sum of all required relaxations in first phase only
1 Minimize the sum of all required relaxations in first phase
and execute second phase to find optimum among minimal relaxations
2 Minimize the number of constraints and bounds requiring
relaxation in first phase only
3 Minimize the number of constraints and bounds requiring
relaxation in first phase and execute second phase to find optimum
among minimal relaxations
4 Minimize the sum of squares of required relaxations in
first phase only
5 Minimize the sum of squares of required relaxations in
first phase and execute second phase to find optimum among minimal
relaxations
Default: 0 |
Description: FeasOpt settings.
FeasOpt works in two phases. In its first phase, it attempts to minimize its relaxation of the
infeasible model. That is, it attempts to find a feasible solution
that requires minimal change. In its second phase, it finds an
optimal solution among those that require only as much relaxation as
it found necessary in the first phase. |
cpxControl.FLOWCOVERS |
-1 Do not generate flow cover cuts
0 Automatically determined
1 Generate flow cover cuts moderately
2 Generate flow cover cuts aggressively
Default: 0 |
Description: MIP flow cover cuts indicator.
Determines
whether or not to generate flow cover cuts for the problem.
Setting the value to 0, the default, indicates that the attempt to
generate flow cover cuts should continue only if it seems to be
helping. |
cpxControl.FLOWPATHS |
-1 Do not generate flow path cuts
0 Automatically determined
1 Generate flow path cuts moderately
2 Generate flow path cuts aggressively
Default: 0 |
Description: MIP flow path cut indicator.
Determines whether
or not flow path cuts should be generated for the problem. Setting
the value to 0, the default, indicates that the attempt to generate
flow path cuts should continue only if it seems to be helping. |
cpxControl.FRACCAND |
Any positive integer.
Default: 200 |
Description: Candidate limit for generating Gomory fractional
cuts.
Limits the number of candidate variables for generating
Gomory fractional cuts. |
cpxControl.FRACCUTS |
-1 Do not generate Gomory fractional cuts
0 Automatically determined
1 Generate Gomory fractional cuts moderately
2 Generate Gomory fractional cuts aggressively
Default: 0 |
Description: MIP Gomory fractional cuts indicator.
Determines
whether or not Gomory fractional cuts should be generated for the
problem. Setting the value to 0, the default, indicates that the
attempt to generate Gomory fractional cuts should continue only if
it seems to be helping. |
cpxControl.FRACPASS |
0 Automatic
or, any positive integer
Default: 0 |
Description: Pass limit for generating Gomory fractional cuts.
Limits the number of passes for generating Gomory fractional cuts.
At the default setting of 0, CPLEX decides. The parameter is ignored
if the Gomory fractional cut parameter, FRACCUTS, is set
to a nonzero value. |
cpxControl.GUBCOVERS |
-1 Do not generate GUB cuts
0 Automatically determined
1 Generate GUB cuts moderately
2 Generate GUB cuts aggressively
Default: 0 |
Description: MIP GUB cuts indicator.
Determines whether or not
to generate GUB cuts for the problem. Setting the value to 0, the
default, indicates that the attempt to generate GUB cuts should
continue only if it seems to be helping. |
cpxControl.HEURFREQ |
-1 None
0 Automatic
or, any positive integer
Default: 0 |
Description: MIP heuristic frequency.
Determines how often to
apply the periodic heuristic. Setting the value to -1 turns off the
periodic heuristic. Setting the value to 0, the default, applies the
periodic heuristic at an interval chosen automatically. Setting the
value to a positive number applies the heuristic at the requested
node interval. For example, setting HEURISTICFREQ to 20 dictates
that the heuristic be called at node 0, 20, 40, 60, etc. |
cpxControl.IMPLBD |
-1 Do not generate implied
bound cuts
0 Automatically determined
1 Generate implied bound cuts moderately
2 Generate implied bound cuts aggressively
Default: 0 |
Description: MIP implied bound cuts indicator.
Determines
whether or not to generate implied bound cuts for the problem.
Setting the value to 0, the default, indicates that the attempt to
generate implied bound cuts should continue only if it seems to be
helping. |
cpxControl.INTSOLLIM |
Any positive integer
Default: Large (varies by computer) |
Description: MIP solution limit.
Set the number of MIP solutions
to be found before stopping. |
cpxControl.ITLIM |
Any non-negative integer.
Default: Large (varies by computer) |
Description: Simplex maximum iteration limit.
Sets the maximum
number of iterations to be performed before the algorithm terminates
without reaching optimality. |
cpxControl.LBHEUR |
0 Off
1 On
Default: 0 |
Description: Local branching heuristic.
This parameter
lets you control whether CPLEX applies a local branching heuristic to
try to improve new incumbents found during a MIP search. By default,
this parameter is false; that is, it is off by default. If
you turn it on, CPLEX will invoke a local branching heuristic only
when it finds a new incumbent. If CPLEX finds multiple incumbents at
a single node, the local branching heuristic will be applied only to
the last one found. |
cpxControl.LPMETHOD |
0 Automatic
1 Primal Simplex
2 Dual Simplex
3 Network Simplex
4 Barrier
5 Sifting
6 Concurrent Dual, Barrier and Primal
Default: 0 |
Description: Method for linear optimization.
Determines which
algorithm is used. Currently, the behavior of the Automatic
setting is that CPLEX almost always invokes the dual simplex method.
The one exception is when solving the relaxation of an MILP model
when multiple threads have been requested. In this case, the
Automatic setting will use the concurrent optimization method. The
Automatic setting may be expanded in the future so that CPLEX
chooses the method based on additional problem characteristics. |
cpxControl.MEMORYEMPHASIS |
0 Off: Do not emphasize
conservation of memory
1 On: Emphasize conservation of memory
Default: Off |
Description: Memory setting.
Some information (that require a
basis) may be unavailable when using this parameter. |
cpxControl.MIPDISPLAY |
0 No display
1 Display integer feasible solutions
2 Display nodes under MIPINTERVAL
3 Same as 2 with information on node cuts
4 Same as 3 with LP subproblem information at root
5 Same as 4 with LP subproblem information at nodes
Default: 2 |
Description: MIP node log display information.
Determines what
CPLEX reports to the screen during mixed integer optimization. The
amount of information displayed increases with increasing values of
this parameter.
A setting of 0 causes no node log to be
displayed until the optimal solution is found. A setting of 1
displays an entry for each integer feasible solution found. Each
entry contains the objective function value, the node count, the
number of unexplored nodes in the tree, and the current optimality
gap. A setting of 2 also generates an entry for every nth node
(where n is the setting of the MIP INTERVAL parameter). A setting of
3 additionally generates an entry for every nth node giving the
number of cuts added to the problem for the previous INTERVAL nodes.
A setting of 4 additionally generates entries for the LP root
relaxation according to the SIMDISPLAY setting. A setting
of 5 additionally generates entries for the LP subproblems, also
according to the SIMDISPLAY setting. |
cpxControl.MIPEMPHASIS |
0 [BALANCED]
Balance optimality and feasibility
1 [FEASIBILITY] Emphasize feasibility over optimality
2 [OPTIMALITY] Emphasize optimality over feasibility
3 [BESTBOUND] Emphasize moving best bound
4 [HIDDENFEAS] Emphasize hidden feasibility
Default: 0 |
Description: MIP emphasis indicator.
With the default setting
of BALANCED, CPLEX works toward a rapid proof of an optimal
solution, but balances that with effort toward finding high quality
feasible solutions early in the optimization. When set to
FEASIBILITY, CPLEX frequently will generate more feasible solutions
as it optimizes the problem, at some sacrifice in the speed to the
proof of optimality. When set to OPTIMALITY, less effort may be
applied to finding feasible solutions early. With the setting
BESTBOUND, even greater emphasis is placed on proving optimality
through moving the best bound value, so that the detection of
feasible solutions along the way becomes almost incidental. When set
to HIDDENFEAS, the MIP optimizer works hard to find high quality
feasible solutions that are otherwise very difficult to find, so
consider this setting when the FEASIBILITY emphasis has difficulty
finding solutions of acceptable quality. |
cpxControl.MIPINTERVAL |
Any positive integer
Default: 100 |
Description: MIP node log interval
Controls the frequency of
node logging when MIPDISPLAY is set higher than 1. |
cpxControl.MIPORDIND |
0 Off (do not use order
information)
1 On (use order information if it exists)
Default: 1 |
Description: MIP priority order indicator.
When set to on, uses
the priority order (if it exists) for the next mixed integer
optimization. |
cpxControl.MIPORDTYPE |
0 Do not generate a priority order
1 Use decreasing cost
2 Use increasing bound range
3 Use increasing cost per coefficient count
Default: 0 |
Description: MIP priority order generation.
Used to select the
type of generic priority order to generate when no priority order is
present. |
cpxControl.MIPTHREADS |
0 determined by
global thread default
>0 upper limit on threads for Parallel MIP
Default: 0 |
Description: MIP thread limit
Determines the maximum number
of parallel processes (threads) that will be invoked by the
Parallel MIP optimizer. The default value of 0 means that the
limit will be determined by the value of THREADS the
global thread limit parameter. A positive value will override the
value found in THREADS. |
cpxControl.MIRCUTS |
-1 Do not generate MIR cuts
0 Automatically determined
1 Generate MIR cuts moderately
2 Generate MIR cuts aggressively
Default: 0 |
Description: MIP MIR (mixed integer rounding) cut indicator.
Determines whether or not to generate MIR cuts for the problem.
Setting the value to 0, the default, indicates that the attempt to
generate MIR cuts should continue only if it seems to be helping. |
cpxControl.MPSLONGNUM |
0: Write file in standard
MPS format
1 Write with full precision (up to 15 digits)
Default: 1 |
Description: Degree of precision displayed in output files (MPS).
When this parameter is set to its default value 1 (one), numbers
are written to MPS files in full-precision; that is, up to 15
significant digits may be written. The setting 0 (zero) writes files
that correspond to the standard MPS format, where at most 12
characters can be used to represent a value. This limit may result
in loss of precision. |
cpxControl.NETDISPLAY |
0 No display
1 Display true objective values
2 Display penalized objective values
Default: 2 |
Description: Network logging display indicator.
Settings 1 and
2 differ only during Phase I. Setting 2 shows monotonic values,
whereas 1 usually does not. |
cpxControl.NETEPOPT |
Any number from 10−11 to 10−1
Default: 10−6 |
Description: Optimality tolerance for the network optimizer.
The optimality tolerance specifies the amount a reduced cost may
violate the criterion for an optimal solution. |
cpxControl.NETEPRHS |
Any number from 10−11 to
10−1
Default: 10−6 |
Description: Feasibility tolerance for the network optimizer.
The feasibility tolerance specifies the degree to which a problem's
flow value may violate its bounds. This tolerance influences the
selection of an optimal basis and can be reset to a higher value
when a problem is having difficulty maintaining feasibility during
optimization. You may also wish to lower this tolerance after
finding an optimal solution if there is any doubt that the solution
is truly optimal. If the feasibility tolerance is set too low, CPLEX
may falsely conclude that a problem is infeasible. If you encounter
reports of infeasibility during Phase II of the optimization, a
small adjustment in the feasibility tolerance may improve
performance. |
cpxControl.NETFIND |
1 Extract pure network
only
2 Try reflection scaling
3 Try general scaling
Default: 2 values |
Description: Simplex network extraction level.
Establishes the
level of network extraction for network simplex optimizations. The
default value is suitable for recognizing commonly used modeling
approaches when representing a network problem within an LP
formulation. |
cpxControl.NETITLIM |
Any non-negative integer
Default: Large (varies by computer) |
Description: Network Simplex iteration limit.
Sets the maximum
number of iterations to be performed before the algorithm terminates
without reaching optimality. |
cpxControl.NETPPRIIND |
0 Automatic
1 Partial pricing
2 Multiple partial pricing
3 Multiple partial pricing with sorting
Default: 0 |
Description: Network Simplex pricing algorithm.
The default (0)
shows best performance for most problems, and currently is
equivalent to 3. |
cpxControl.NODEFILEIND |
0 No node file
1 Node file in memory and compressed
2 Node file on disk
3 Node file on disk and compressed
Default: 1 |
Description: Node storage file indicator.
Used when working
memory, WORKMEM, has been exceeded by the size of the tree. If the
node file parameter is set to zero when the tree memory limit is
reached, optimization is terminated. Otherwise, a group of nodes is
removed from the in-memory set as needed. By default, CPLEX
transfers nodes to node files when the in-memory set is larger than
128 MBytes, and it keeps the resulting node `files' in compressed
form in memory. At settings 2 and 3, the node files are transferred
to disk, in compressed and uncompressed form respectively, into a
directory named by the WORKDIR parameter, and CPLEX actively manages
which nodes remain in memory for processing. The use of node files
is described in more detail in the CPLEX User's Manual. |
cpxControl.NODELIM |
Any non-negative integer
Default: Large (varies by computer) |
Description: MIP node limit.
Sets the maximum number of nodes
solved before the algorithm terminates, without reaching
optimality. |
cpxControl.NODESEL |
0 Depth-first search
1 Best-bound search
2 Best-estimate search
3 Alternative best-estimate search
Default: 1 |
Description: MIP node selection strategy.
Used to set the rule
for selecting the next node to process when backtracking. The
depth-first search strategy chooses the most recently created node.
The best-bound strategy chooses the node with the best objective
function for the associated LP relaxation. 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. An alternative best-estimate search is
also available. |
cpxControl.NUMERICALEMPHASIS |
0 Off: Do not emphasize
extreme caution in computation
1 On: Emphasize extreme caution in computation
Default: Off |
Description: Numerical emphasis. |
cpxControl.NZREADLIM |
Any integer from 0 to 268 435 450
Default: 500 |
Description: Nonzero element read limit.
Sets the number of
nonzeros that can be read. |
cpxControl.OBJDIF |
Any number
Default: −1075 |
Description: Absolute objective difference cutoff.
Used to
update the cutoff each time a mixed integer solution is found. This
absolute value is subtracted from (added to) the newly found integer
objective value when minimizing (maximizing). This forces the mixed
integer optimization to ignore integer solutions that are not at
least this amount better than the one found so far. The
OBJDIFFERENCE parameter can be adjusted to improve problem solving
efficiency by limiting the number of nodes; however, setting this
parameter at a value other than zero (the default) can cause some
integer solutions, including the true integer optimum, to be missed.
Negative values for this parameter can result in some integer
solutions that are worse than or the same as those previously
generated, but does not necessarily result in the generation of all
possible integer solutions. |
cpxControl.OBJLLIM |
Any number
Default: −1075 |
Description: Lower objective value limit.
Setting a lower
objective function limit causes CPLEX to halt the optimization
process once the minimum objective function value limit has been
exceeded. This limit applies only during Phase II of the simplex
method. |
cpxControl.OBJULIM |
Any number
Default: 1075 |
Description: Upper objective value limit.
Setting an upper
objective function limit causes CPLEX to halt the optimization
process once the maximum objective function value limit has been
exceeded. This limit applies only during Phase II of the simplex
method. |
cpxControl.PERIND |
0 Off
1 On
Default: 0 |
Description: Simplex perturbation indicator.
Setting this
parameter to 1 causes all problems to be automatically perturbed as
optimization begins. A setting of 0 allows CPLEX to determine
dynamically, during solution, whether progress is slow enough to
merit a perturbation. The situations in which a setting of 1 helps
are rare and restricted to problems that exhibit extreme degeneracy. |
cpxControl.PERLIM |
0 Determined automatically
or, any positive integer
Default: 0 |
Description: Simplex perturbation limit.
Sets the number of
stalled iterations before perturbation is performed. |
cpxControl.POLISHTIME |
Any positive number in
seconds
Default: 0 |
Description: Polishing best solution.
Regulates the amount of
time spent on polishing the best solution found. During solution
polishing, CPLEX applies its effort to improve the best feasible
solution. Polishing can yield better solutions in some situations.
The default value of the polishing time parameter is 0 (zero); that
is, spend no time polishing. |
cpxControl.PPRIIND |
-1 Reduced-cost pricing
0 Hybrid reduced-cost & devex pricing
1 Devex pricing
2 Steepest-edge pricing
3 Steepest-edge pricing with slack initial norms
4 Full pricing
Default: 0 |
Description: Primal Simplex pricing algorithm.
The default
pricing (0) usually provides the fastest solution time, but many
problems benefit from alternative settings |
cpxControl.PREDUAL |
-1 Off
0 Automatic
1 On
Default: 0 |
Description: Presolve dual setting.
Determines whether CPLEX
Presolve should pass the primal or dual linear programming problem
to the linear programming optimization algorithm. By default, CPLEX
chooses automatically. If the DUAL indicator is set to 1, the CPLEX
presolve algorithm is applied to the primal problem, but the
resulting dual linear program is passed to the optimizer. This is a
useful technique for problems with more constraints than variables. |
cpxControl.PREIND |
0 Off (do not use
presolve)
1 On (use presolve)
Default: 1 |
Description: Presolve indicator.
When set to 1, invokes the
CPLEX Presolve to simplify and reduce problems. |
cpxControl.PRELINEAR |
0 Only linear reductions
1 Full reductions
Default: 1 |
Description: Linear reduction indicator.
If only linear
reductions are performed, each variable in the original model can be
expressed as a linear form of variables in the presolved model. This
guarantees, for example, that users can add their own custom cuts to
the presolved model. |
cpxControl.PREPASS |
-1 Determined automatically
0 Do not use Presolve
or, any positive integer
Default: -1 |
Description: Limit on the number of Presolve passes made.
When
set to a nonzero value, invokes the CPLEX Presolve to simplify and
reduce problems. When set to a positive value, the Presolve is
applied the specified number of times, or until no more reductions
are possible. At the default value of -1, Presolve should continue
only if it seems to be helping. |
cpxControl.PRESLVND |
-1 No node
presolve
0 Automatic
1 Force node presolve
2 Probes all integer-infeasible variables at each node to find those that can be fixed
Default: 0 |
Description: Node presolve selector.
Indicates whether node
presolve should be performed at the nodes of a mixed integer
programming solution. Node presolve can significantly reduce
solution time for some models. The default setting is generally
effective at determining whether to apply node presolve, although
runtimes can be reduced for some models by turning node presolve
off. |
cpxControl.PRICELIM |
0 Determined automatically
or, any positive integer
Default: 0 values |
Description: Simplex pricing candidate list size.
Sets the
maximum number of variables kept in the pricing candidate list. |
cpxControl.PROBE |
-1 No probing
0 Automatic
1-3 Probing level
Default: 0 |
Description: MIP probe.
Determines the amount of probing on
variables to be performed before MIP branching. Higher settings
perform more probing. Probing can be very powerful but very time
consuming at the start. Setting the parameter to values above the
default of 0 (automatic) can result in dramatic reductions or
dramatic increases in solution time, depending on the model. |
cpxControl.PROBETIME |
Any positive number in
seconds
Default: 1e75 |
Description: Amount of time spent on probing. |
cpxControl.QPMAKEPSDIND |
0 Off
1 On
Default: On |
Description: Indefinite MIQP indicator.
Determines whether
CPLEX will attempt to adjust a MIQP formulation, in which all the
variables appearing in the quadratic term are binary. When this
feature is active, adjustments will be made to the elements of a
quadratic matrix that is not nominally positive semi-definite
("PSD", as required by CPLEX for all QP formulations), to make it
PSD, and will also attempt to tighten an already PSD matrix for
better numerical behavior. The default setting of 1 means "yes" but
you can turn it off if necessary; most models should benefit from
the default setting. |
cpxControl.QPMETHOD |
0 Automatic
1 Primal Simplex
2 Dual Simplex
3 Network Simplex
4 Barrier
Default: 0 |
Description: Method for continuous quadratic optimization.
Determines algorithm. Currently, the behavior of
the Automatic setting is that CPLEX invokes the barrier method for
continuous QP models, and the dual simplex method for root
relaxations of MIQP models. The Automatic setting may be expanded in
the future so that CPLEX chooses the method based on additional
problem characteristics. |
cpxControl.QPNZREADLIM |
Any integer from 0 to 268 435 450
Default: 500 |
Description: QP Q matrix nonzero read limit.
Sets the number of Q matrix nonzeros that can be read. |
cpxControl.REDUCE |
0 No primal and dual reductions
1 Only primal reductions
2 Only dual reductions
3 Both primal and dual reductions
Default: 3 values |
Description: Primal and dual reduction type.
Determines whether
primal reductions, dual reductions, or both, are performed during
preprocessing. |
cpxControl.REINV |
0 Determined automatically
or, any integer from 1 to 10 000
Default: 0 |
Description: Simplex refactorization frequency.
Sets the number
of iterations between refactorizations of the basis matrix. |
cpxControl.RELAXPREIND |
-1 Determined automatically
0 Off (do not use presolve on initial relaxation)
1 On (use presolve on initial relaxation)
Default: -1 |
Description: Relaxed LP presolve indicator.
Determines whether
LP presolve is applied to the root relaxation in a mixed integer
program. Sometimes additional reductions can be made beyond any MIP
presolve reductions that were already done. |
cpxControl.RELOBJDIF |
Any integer from 0.0 to 1.0 |
Description: Relative objective difference cutoff.
Used to
update the cutoff each time a mixed integer solution is found. The
value is multiplied by the absolute value of the integer objective
and subtracted from (added to) the newly found integer objective
when minimizing (maximizing). This forces the mixed integer
optimization to ignore integer solutions that are not at least this
amount better than the one found so far. The relative objective
difference parameter can be adjusted to improve problem solving
efficiency by limiting the number of nodes; however, setting this
parameter at a value other than zero (the default) can cause some
integer solutions, including the true integer optimum, to be missed.
If both RELOBJDIFFERENCE and OBJDIFFERENCE are nonzero, the value of
OBJDIFFERENCE is used. |
cpxControl.REPAIRTRIES |
Any positive integer
Default: 1 |
Description: Repair tries.
If a user provides a MIP start
(full or partial) that cannot be extended into a feasible solution,
CPLEX will try to repair it. |
cpxControl.REPEATPRESOLVE |
-1 Automatic: Let CPLEX choose whether to re-apply presolve
0 Turn off repeat presolve
1 Repeat presolve without cuts
2 Repeat presolve with cuts
3 Repeat presolve with cuts and allow new root cuts
Default: -1 |
Description: MIP presolve setting.
How to re-apply the MIP presolve techniques of the
preprocessor to a MIP model at the root after preprocessing has
otherwise finished (that is, after cut generation at the root). |
cpxControl.RINSHEUR |
-1 None
0 Automatic (default)
or, any positive integer
Default: 0 |
Description: Relaxation induced neighborhood search heuristic determines how often to apply the relaxation
induced neighborhood search heuristic (RINS heuristic). Setting the value to -1 turns off the RINS heuristic.
Setting the value to 0, the default, applies the RINS heuristic at an interval chosen automatically by CPLEX.
Setting the value to a positive number applies the RINS heuristic at the requested node interval. For
example, setting RINSHEUR to 20 dictates that the RINS heuristic be called at node 0, 20, 40, 60, etc. |
cpxControl.ROWREADLIM |
Any integer from 0 to 268 435 450
Default: Varies by computer |
Description: |
cpxControl.SCAIND |
-1 No scaling
0 Equilibrium scaling method
1 More aggressive scaling
Default: 0 |
Description: Scale parameter.
Sets the method to be used for
scaling the problem matrix. |
cpxControl.SCRIND |
0 Off
1 On
Default: On |
Description: Messages to screen indicator.
Indicates whether
or not results messages are displayed on screen. |
cpxControl.SIFTALG |
0 Automatic
1 Primal Simplex
2 Dual Simplex
3 Network Simplex
4 Barrier
Default: 0 |
Description: Sifting subproblem algorithm.
Sets the algorithm
to be used for solving sifting subproblems. |
cpxControl.SIFTDISPLAY |
0 No display
1 Display major iterations
2 Display LP subproblem information within each sifting iteration
Default: 1 |
Description: Sifting display information.
Determines the
amount of sifting progress information to be displayed. |
cpxControl.SIFTITLIM |
Any nonnegative integer
Default: BIGINT |
Description: Upper limit on sifting iterations.
Sets the
maximum number of sifting iterations that may be performed if
convergence to optimality has not been reached. |
cpxControl.SIMDISPLAY |
0 No iteration messages until solution
1 Iteration info after each refactorization
2 Iteration info for each iteration
Default: 1 |
Description: Simplex iteration display information.
Determines
how often CPLEX reports during simplex optimization. |
cpxControl.SINGLIM |
Any positive integer
Default: 10 |
Description: Simplex singularity repair limit.
Restricts the
number of times CPLEX attempts to repair the basis when
singularities are encountered. Once this limit is exceeded, CPLEX
replaces the current basis with the best factorizable basis that has
been found. |
cpxControl.STARTALG |
0 Automatic
1 Primal Simplex
2 Dual Simplex
3 Network Simplex
4 Barrier
5 Sifting
6 Concurrent Dual, Barrier and Primal
Default: 0 |
Description: MIP starting LP algorithm.
Determines which LP
algorithm should be used to solve the initial relaxation of the MIP. |
cpxControl.STRONGCANDLIM |
Any positive number
Default: 10 |
Description: MIP candidate list
Controls the length of the
candidate list when using the "strong branching" variable selection
setting (VARSEL 3). |
cpxControl.STRONGITLIM |
Any positive number
Default: 0 |
Description: MIP simplex iterations
Controls the number of
simplex iterations performed on each variable in the candidate list
when using the "strong branching" variable selection setting (VARSEL 3).
The default setting 0 chooses the iteration limit automatically. |
cpxControl.STRONGTHREADLIM |
Any positive number
Default: 1 |
Description: MIP parallel threads
Controls the number of
parallel threads used to perform strong branching. Note that this
parameter does nothing if the MIP thread limit (MIPTHREADS) is greater than 1.
Note also that the global thread limit,
THREADS, does not affect this parameter. |
cpxControl.SUBALG |
1 Primal Simplex
2 Dual Simplex
3 Network Simplex
4 Barrier
5 Sifting
Default: 2 |
Description: MIP subproblem LP algorithm.
Sets the algorithm to
be used on MIP subproblems. |
cpxControl.SUBMIPNODELIM |
Any positive integer.
Default: 500 |
Description: MIP subnode limit. Restricts the number of nodes
searched, during application of the relaxation induced neighborhood
search (RINS) heuristic. |
cpxControl.SYMMETRY |
-1 Determines
automatically
0 Off
1 Moderate
2 Aggressive
3 Very aggressive
Default: -1 |
Description: Symmetry breaking cuts.
Determines whether
symmetry breaking cuts may be added, during the preprocessing phase,
to a MIP model. |
cpxControl.THREADS |
Minimum: 1
Maximum: determined by license key and computer
Default: 1 |
Description: Global default thread count.
Determines the default
number of parallel processes (threads) that will be invoked by any CPLEX
parallel optimizer. This provides a convenient way to control parallelism
with a single parameter setting. The value in place for this parameter
can be overridden for any particular CPLEX parallel optimizer by setting
the appropriate thread limit (BARTHREADS or MIPTHREADS). |
cpxControl.TILIM |
Any non-negative number
Default: 1075 |
Description: Global time limit.
Sets the maximum time, in
seconds, for computations before termination, as measured according
to the setting of the CLOCKTYPE parameter. The time limit applies to
primal simplex, dual simplex, barrier, and mixed integer
optimizations, as well as infeasibility finder computations.
(Network simplex and barrier crossover operations are exceptions;
these processes do not terminate if the time limit is exceeded.) The
time limit includes preprocessing time. For `hybrid' optimizations
(such as network optimization followed by dual or primal simplex,
barrier optimization followed by crossover), the cumulative time
applies. |
cpxControl.TRELIM |
Any non-negative number
Default: 1075 |
Description: Tree memory limit.
Sets an absolute upper limit on
the size (in megabytes) of the branch & cut tree. If this limit is
exceeded, CPLEX terminates optimization. |
cpxControl.VARSEL |
-1 Branch on variable with minimum
infeasibility
0 Branch variable automatically selected
1 Branch on variable with maximum infeasibility
2 Branch based on pseudo costs
3 Strong branching
4 Branch based on pseudo reduced costs
Default: 0 |
Description: MIP variable selection strategy.
Used to set the
rule for selecting the branching variable at the node which has been
selected for branching. The maximum infeasibility rule chooses the
variable with the largest fractional value; the minimum
infeasibility rule chooses the variable with the smallest fractional
value. The minimum infeasibility rule (-1) may lead more quickly to
a first integer feasible solution, but is usually slower overall to
reach the optimal integer solution. The maximum infeasibility rule
(1) forces larger changes earlier in the tree, which tend to produce
faster overall times to reach the optimal integer solution. Pseudo
cost (2) variable selection is derived from pseudo-shadow prices.
Strong branching (3) 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) are a
computationally less-intensive form of pseudo costs. The default
value (0) allows CPLEX to select the best rule based on the problem
and its progress. |
cpxControl.WORKDIR |
Default: “.” |
Description: Directory for working files.
Specifies the name of
an existing directory into which CPLEX may store temporary working
files, such as for MIP node files or for out-of-core Barrier. |
cpxControl.WORKMEM |
Any positive number, in megabytes
Default: 128.0 |
Description: Memory available for working storage.
Specifies an
upper limit on the amount of central memory, in megabytes, that
CPLEX is permitted to use for working files (see WORKDIR). |
* |