CPLEX Options#
ampl: option solver cplex; # change the solver
ampl: option cplex_options 'option1=value1 option2=value2'; # specify options
ampl: solve; # solve the problem
Solver options obtained with $ cplex -=.
IBM ILOG CPLEX Optimizer Options for AMPL
--------------------------------------------
To set these options, assign a string specifying their values to the AMPL
option "cplex_options". For example:
ampl: option cplex_options 'mipgap=1e-6';
'' Options:
acc:_all
Solver acceptance level for all constraints and expressions. Value
meaning: as described in the specific acc:... options.
Can be useful to disable all reformulations (acc:_all=2), or force
linearization (acc:_all=0.)
acc:indeq (acc:indlineq)
Solver acceptance level for 'IndicatorConstraintLinEQ' as flat
constraint, default 2:
0 - Not accepted natively, automatic redefinition will be attempted
1 - Accepted but automatic redefinition will be used where possible
2 - Accepted natively and preferred
acc:indge (acc:indlinge)
Solver acceptance level for 'IndicatorConstraintLinGE' as flat
constraint, default 2:
0 - Not accepted natively, automatic redefinition will be attempted
1 - Accepted but automatic redefinition will be used where possible
2 - Accepted natively and preferred
acc:indle (acc:indlinle)
Solver acceptance level for 'IndicatorConstraintLinLE' as flat
constraint, default 2:
0 - Not accepted natively, automatic redefinition will be attempted
1 - Accepted but automatic redefinition will be used where possible
2 - Accepted natively and preferred
acc:lineq
Solver acceptance level for 'LinConEQ' as flat constraint, default 2:
0 - Not accepted natively, automatic redefinition will be attempted
1 - Accepted but automatic redefinition will be used where possible
2 - Accepted natively and preferred
acc:linge
Solver acceptance level for 'LinConGE' as flat constraint, default 2:
0 - Not accepted natively, automatic redefinition will be attempted
1 - Accepted but automatic redefinition will be used where possible
2 - Accepted natively and preferred
acc:linle
Solver acceptance level for 'LinConLE' as flat constraint, default 2:
0 - Not accepted natively, automatic redefinition will be attempted
1 - Accepted but automatic redefinition will be used where possible
2 - Accepted natively and preferred
acc:pl (acc:pwl, acc:piecewise)
Solver acceptance level for 'PLConstraint' as flat constraint, default
2:
0 - Not accepted natively, automatic redefinition will be attempted
1 - Accepted but automatic redefinition will be used where possible
2 - Accepted natively and preferred
acc:quadeq
Solver acceptance level for 'QuadConEQ' as flat constraint, default 2:
0 - Not accepted natively, automatic redefinition will be attempted
1 - Accepted but automatic redefinition will be used where possible
2 - Accepted natively and preferred
acc:quadge
Solver acceptance level for 'QuadConGE' as flat constraint, default 2:
0 - Not accepted natively, automatic redefinition will be attempted
1 - Accepted but automatic redefinition will be used where possible
2 - Accepted natively and preferred
acc:quadle
Solver acceptance level for 'QuadConLE' as flat constraint, default 2:
0 - Not accepted natively, automatic redefinition will be attempted
1 - Accepted but automatic redefinition will be used where possible
2 - Accepted natively and preferred
acc:sos1
Solver acceptance level for 'SOS1Constraint' as flat constraint, default
2:
0 - Not accepted natively, automatic redefinition will be attempted
1 - Accepted but automatic redefinition will be used where possible
2 - Accepted natively and preferred
acc:sos2
Solver acceptance level for 'SOS2Constraint' as flat constraint, default
2:
0 - Not accepted natively, automatic redefinition will be attempted
1 - Accepted but automatic redefinition will be used where possible
2 - Accepted natively and preferred
alg:barrier (barrier, baropt)
Solve (MIP node) LP/QPs by barrier method.
alg:basis (basis)
Whether to use and/or return a basis for LP models (variable/constraint
suffixes .(s)status):
0 - No
1 - Use incoming basis (if provided)
2 - Return final basis
3 - Both (1 + 2 = default)
See alg:start for interaction with the LP warmstart.
See also mip:basis and qcp:dual (for some solvers).
alg:benders (benders, bendersopt)
Solve MIP using Benders algorithm. Both integer and continuous variables
must be present.
alg:benders_feascuttol (benders_feascut_tol)
Tolerance for violations of feasibility cuts in Benders
algorithm(default 1e-6).
alg:benders_optcut_tol (benders_optcut_tol)
Tolerance for violations of optimality cuts in Benders algorithm(default
1e-6).
alg:benders_strategy (benders_strategy)
How to decompose the problem for Benders algorithm:
0 - Automatic (default): if suffix benders is present on variables,
variables that have .benders = 0 go into the master and CPLEX
assigns other variables to workers; otherwise integer variables go
into the master and variables into workers
1 - Use suffix benders to determine which variables are for the master
(.benders = 0) and which for workers (.benders = n > 0 ==> worker n
2 - Similar to 0, but suffix benders is required
3 - Similar to 0, but ignore suffix benders
alg:benders_worker (benders_worker)
Designate the algorithm that CPLEX applies to solve the subproblems when
using Benders decomposition:
0 - Automatic (default)
1 - Primal simplex
2 - Dual simplex
3 - Network simplex
4 - Barrier
5 - Sifting
alg:conflictalg (conflictalg)
Choice of algorithm used by the CPLEX's conflict refiner:
0 - Automatic choice (default)
1 - Fast
2 - Propagate
3 - Presolve
4 - IIS
5 - Limited solve
6 - Full solve
Settings 1, 2, and 3 are fast but may not discard many constraints; 5
and 6 work harder at this. Setting 4 searches for an Irreducible
Infeasible Set of linear constraints(e.g., ignoring quadratic
constraints).
alg:droptol (droptol)
If droptol > 0 is specified, linear constraint and objective
coefficients less than droptol in magnitude are treated as zero.
alg:dualopt (alg:dual, dualopt)
Solve (MIP node) LPs by dual simplex method.
alg:dualproblem (dual)
Compatibility option with the legacy cplexasl driver. Interacts with
pre:dual as follows:
alg:dualproblem - alone, equivalent to pre:dual=0
alg:dualproblem pre:dual=-1 - together, equivalent to pre:dual=1
alg:dualproblem pre:dual=0 - together, equivalent to pre:dual=0
alg:dualproblem pre:dual=1 - together, equivalent to pre:dual=-1.
alg:feasrelax (feasrelax)
Whether to modify the problem into a feasibility relaxation problem:
0 = No (default)
1 = Yes, minimizing the weighted sum of violations
2 = Yes, minimizing the weighted sum of squared violations
3 = Yes, minimizing the weighted count of violations
4-6 = Same objective as 1-3, but also optimize the original objective,
subject to the violation objective being minimized.
Weights are given by suffixes .lbpen and .ubpen on variables and .rhspen
on constraints (when nonnegative, default values = 0), else by keywords
alg:lbpen, alg:ubpen, and alg:rhspen, respectively (default values = 1).
Weights < 0 are treated as Infinity, allowing no violation.
alg:feastol (feastol)
Primal feasibility tolerance (default 1e-6, possible values are between
1e-9 and 0.1).
alg:kappa (kappa, basis_cond)
Whether to return the estimated condition number (kappa) of the optimal
basis (default 0): sum of 1 = report kappa in the result message; 2 =
return kappa in the solver-defined suffix .kappa on the objective and
problem. The request is ignored when there is no optimal basis.
alg:lbpen (lbpen)
See alg:feasrelax.
alg:method (method, lpmethod, qpmethod, simplex, mip:method, mipstartalg)
Which algorithm to use for non-MIP problems or for the root node of MIP
problems:
0 - Automatic (default)
1 - Primal simplex
2 - Dual simplex
3 - Network simplex
4 - Barrier
5 - Sifting
6 - Concurrent (dual, barrier and primal in opportunistic mode; dual
and barrier in deterministic mode; 4 is used for MIPQs).
For MIQP problems (quadratic objective, linear constraints), setting 5
is treated as 0 and 6 as 4. For MIQCP problems (quadratic objective &
constraints), all settings are treated as 4. See also mip:nodemethod.
Overrides netopt option and primalopt/dualopt/barrier/network/sifting
flags.
alg:netfeasibility (netfeasibility, netfeastol)
Feasibility tolerance for network primal optimization. Can be any number
from 1e-11 to 1e-1; default: 1e-6.
alg:netfind (netfind, netfinder)
Level of network extraction for network simplex optimization:
0 - Extract pure network only
1 - (Default) try reflection scaling
2 - Try general scaling
alg:netopt (netopt)
Whether to use network simplex method for non-MIP problems or for the
continuous relaxations of MIP nodes, unless alg:(node)method or
primalopt/dualopt/barrier/network/sifting flags are specified. Options
alg:(node)method override (for MIP, in the root or subnodes):
0 - (Default) never invoke the network optimizer
1 - Compatibility value; same as 3
2 - Compatibility value; same as 3
3 - Invoke the network optimizer by setting CPLEX' LP/QP/MIPNodeMethod
to CPX_ALG_NET telling CPLEX to search for network (sub)structures
in the model. CPLEX presolve might influence automatic recognition
of network structures
alg:netoptimality (netoptimality)
Specifies the optimality tolerance for network optimization; that is,
the amount a reduced cost may violate the criterion for an optimal
solution. Can be any number from 1e-11 to 1e-1; default: 1e-6.
alg:netpricing (netpricing)
Pricing algorithm for network simplex optimization:
0 - (Default) automatic
1 - Partial pricing
2 - Multiple partial pricing
3 - Multiple partial pricing with sorting
alg:network (network)
Solve (substructure of) (MIP node's) LP/QP by network simplex method.
Synonym for alg:netopt=3.
alg:numericalemphasis (numfocus, numericemphasis, numericalemphasis, alg:numericfocus, numericfocus)
0*/1: Whether to try to improve numerical accuracy (at a possible cost
of time or memory).
alg:primalopt (alg:primal, primalopt)
Solve (MIP node) LPs by primal simplex method.
alg:primalproblem (primal)
Compatibility option with the legacy cplexasl driver. No effect.
alg:rays (rays)
Whether to return suffix .unbdd (unbounded ray) if the objective is
unbounded or suffix .dunbdd (Farkas dual) if the constraints are
infeasible:
0 - Neither
1 - Just .unbdd
2 - Just .dunbdd
3 - Both (default)
alg:relax (relax)
0*/1: Whether to relax integrality of variables.
alg:rhspen (rhspen)
See alg:feasrelax.
alg:sens (sens, solnsens, sensitivity)
Whether to return suffixes for solution sensitivities, i.e., ranges of
values for which the optimal basis remains optimal (note that the
variable and objective values can change):
0 - No (default)
1 - Yes: suffixes returned on variables are
.sensobjlo = smallest objective coefficients
.down = same as .sensobjlo
.sensobj = current objective coefficients
.current = same as .sensobj
.sensobjhi = greatest objective coefficients
.up = same as .sensobjhi
.senslblo = smallest variable lower bounds
.senslbhi = greatest variable lower bounds
.sensublo = smallest variable upper bounds
.sensubhi = greatest variable upper bounds;
suffixes for all constraints are
.senslblo = smallest constraint lower bounds
.senslbhi = greatest constraint lower bounds
.sensublo = smallest constraint upper bounds
.sensubhi = greatest constraint upper bounds;
suffixes for one-sided constraints only:
.sensrhslo = smallest right-hand side values
.down = same as .sensrhslo
.sensrhshi = greatest right-hand side values.
.up = same as .sensrhshi.
The suffixes correspond to the AMPL solver model, command 'solexpand'.
For easiest interpretation, disable AMPL presolve, 'option presolve 0;'
alg:sifting (sifting, siftopt, siftingopt)
Solve (MIP node) LPs by sifting method.
alg:start (warmstart)
Whether to use incoming primal (and dual, for LP) variable values in a
warmstart:
0 - No
1 - Yes (for LP: if there is no incoming alg:basis)
2 - Yes (for LP: omitting the incoming alg:basis, if any)
3 - Yes (for LP: together with the incoming alg:basis, if any;
default).
For IBM ILOG CPLEX, choices can be refined via alg:start:advance.
alg:start:advance (alg:start:advanced, advance, advind)
If set to 1 or 2, this parameter specifies that CPLEX should use
advanced starting information when it initiates optimization. Exact
meaning differs by problem type. Here for LP:
0 - Do not use advanced start information
1 - Use an advanced basis supplied by the user (default)
2 - Crush an advanced basis or starting vector supplied by the user.
alg:ubpen (ubpen)
See alg:feasrelax.
bar:baralg (baralg)
How to start the barrier algorithm:
0 - Default (= 1 for MIP subproblems, else 3)
1 - Infeasibility-estimate start
2 - Infeasibility-constant start
3 - Standard start
bar:comptol (comptol)
Convergence tolerance for barrier algorithm: the algorithm stops when
the relative complementarity is < bartol (default 1e-8).
bar:corrections (barcorr, barmaxcor)
Limit on centering corrections in each iteration of the barrier
algorithm:
-1 - Automatic (default)
0 - None
n>0 - Maximum number of centering corrections per iteration
bar:crossover (crossover, mipcrossover)
How to transform a barrier solution to a basic one:
-1 - Automatic choice (default)
0 - None: return an interior solution
1 - Primal crossover
2 - Dual crossover
bar:dense (bar:densecol, dense, densecol)
If positive, minimum nonzeros in a column for the barrier algorithm to
consider the column dense. If 0 (default), this tolerance is selected
automatically.
bar:growth (bargrowth, growth)
Tolerance for detecting unbounded faces in the barrier algorithm: higher
values make the test for unbounded faces harder to satisfy (default
1e12).
bar:iterlim (bariterlim)
Maximum barrier iterations allowed (default 9223372036800000000).
bar:objrange (barobjrange)
Limit on the absolute objective value before the barrier algorithm
considers the problem unbounded (default 1e20).
bar:start (barstart, barstartalg)
Barrier starting-point algorithm:
1 - Assume dual is 0 (default)
2 - Estimate dual
3 - Average of primal estimate, 0 dual
4 - Average of primal and dual estimates
cut:aggforcut (aggforcut)
Bound on the number of constraints aggregated to generate flow-cover and
mixed-integer-rounding cuts (default 3).
cut:aggtol (aggtol)
Pivot tolerance for aggregating. It seldom needs fiddling. Default =
.05; must be in [1e-10, .99].
cut:bqp (bqpcuts)
Whether to enable Boolean Quadric Polytope cut generation for nonconvex
QP and MIQP problems, choices as for "cut:cuts".
cut:clique (cliquecuts)
Whether to use clique cuts in solving MIPs, choices as for "cut:cuts".
cut:cover (covercuts, covers)
Whether to use cover cuts in solving MIPs, choices as for "cut:cuts".
cut:cuts (cuts, mipcuts)
Global cut generation control, valid unless overridden by individual
cut-type controls:
-1 - Disallow
0 - Automatic (default)
1 - Enable moderate cuts generation
2 - Enable aggressive cuts generation.
3 - Enable very aggressive cuts generation.
cut:disj (disjcuts)
Whether to use disjunctive cuts in solving MIPs, choices as for
"cut:cuts".
cut:eachcutlim (eachcutlim)
Limit on the number of cuts of each time; default=2100000000.
cut:factor (cutsfactor, cutfactor)
Limit on MIP cuts added:
<0 - No limit
-1 - No limit (default)
0 <= n <= 1 - No MIP cuts
n > 1 - (n-1)*m, where m is the original number of rows(after
presolve)
cut:flowcover (flowcovercuts, flowcuts)
Whether to use flowcover cuts in solving MIPs:
-1 - Disallow
0 - Automatic (default)
1 - Enable moderate cuts generation
2 - Enable aggressive cuts generation
cut:flowpath (flowpathcuts)
Whether to use flow path cuts in solving MIPs, choices as for
"cut:flowcover".
cut:frac (gomory, fraccuts)
Whether to use fractional Gomory cuts in solving MIPs, choices as for
"cut:flowcover".
cut:fraccand (fraccand, gomorycand)
Limit on number of candidate variables when generating Gomory cuts for
MIP problems; default=200.
cut:fracpass (fracpass, gomorypass, fractionalcuts)
Limit on number of passes to generate MIP fractional Gomory cuts,
default=0 => automatic choice, positive = at most that many passes.
cut:gubcover (gubcover, gubcuts)
Whether to use fractional GUB cuts in solving MIPs, choices as for
"cut:flowcover".
cut:implied (implied, impliedcuts)
Whether to use implied cuts in solving MIPs, choices as for
"cut:flowcover".
cut:liftandproject (liftandproject, liftandprojectcuts)
Whether to use lift and project cuts in solving MIPs, choices as for
"cut:cuts".
cut:localimplied (localimplied, localimpliedcuts)
Whether to use locally valid implied cuts in solving MIPs, choices as
for "cut:cuts".
cut:mfc (mfccuts)
Whether to use multi-commodity flow (MCF) cuts in solving MIPs, choices
as for "cut:flowcover".
cut:mir (mircuts)
Whether to use MIP roundind cuts in solving MIPs, choices as for
"cut:flowcover".
cut:node (nodecuts)
Decides whether or not cutting planes are separated at the nodes of the
branch-and-bound tree, choices as for "cut:cuts".
cut:passes (cutpasses, cutpass)
Maximum number of cutting-plane passes during root-cut generation:
-1 - None
0 - Automatic
n > 0 - Number of passes to perform
cut:rlt (rltcuts)
Whether to use the Relaxation Linearization Technique (RLT) to generate
cuts in solving MIPs, choices as for "cut:cuts".
cut:stats (cutstats)
Whether the solve_message report the numbers and kinds of cuts used.
0 - No (default)
1 - Yes.
cut:zerohalf (zerohalfcuts)
Whether to use zero-half cuts in solving MIPs, choices as for
"cut:flowcover".
cvt:bigM (cvt:bigm, cvt:mip:bigM, cvt:mip:bigm)
Default value of big-M for linearization of logical constraints. Not
used by default. Use with care (prefer tight bounds). Should be smaller
than (1.0 / [integrality tolerance])
cvt:compl (cvt:complementarity)
Complementarity conversion method (if not accepted natively, see
acc:compl and acc:nlcompl). Default 0:
0 - Disjunction: a<=0 || b<=0, a>=0, b>=0
1 - Product: a*b=cvt:compl:tol
2 - Fischer-Burmeister function: sqrt(a^2+b^2+2*cvt:compl:tol)=a+b
3 - min(a,b)=0
cvt:compl:tol (cvt:compl:eps, compl:eps)
Tolerance parameter for the product and Fischer-Burmeister encodings of
complementarity, see cvt:compl. Default 1e-9.
cvt:dvelim (dvelim)
Eliminate AMPL defined variables by substitution into linear, quadratic,
and polynomial expressions:
0 - Do not eliminate, always instantiate the variables.
1 - Eliminate only those used 1x. This can increase model density but
greatly simplifies some models.
2 - Always substitute where possible, even if the variable needs to be
instantiated for use in other places. Can introduce redundancy, but
seems best for some models (default.)
See also cvt:pre:unnest, as well as AMPL options linelim and substout.
cvt:expcones (expcones)
0*/1: Recognize exponential cones.
cvt:expr:nlassign (expr:nlassign)
Above which reference count, a formula node should be assigned to a
variable (see acc: options). 0 means all nodes outlined. Default 1.
cvt:mip:eps (cvt:cmp:eps, cmp:eps)
Tolerance for strict comparison of continuous variables for MIP. Applies
to <, >, and != operators. Also applies to negation of conditional
comparisons: b==1 <==> x<=5 means that with b==0, x>=5+eps. Normally
should be larger or equal to the solver's feasibility tolerance.
Default: 1e-4.
cvt:multoutcard (multoutcard)
Up to which (estimated) QP matrix cardinality should a product of 2
linear expressions be multiplied out. Default 1e9.
Low value can speed up model input, but prone to numerical issues.
cvt:names (names, modelnames)
Whether to read or generate variable / constraint / objective names:
0 - No names
1 - (Default) Only provide names if at least one of .col / .row name
files was written by AMPL (AMPL: `option [<solver>_]auxfiles rc;`)
2 - Read names from AMPL, but create generic names if not provided
3 - Create generic names.
cvt:plapprox:domain (plapprox:domain, plapproxdomain)
For piecewise-linear approximated functions, both arguments and result
are bounded to +-[pladomain]. Default 1e6.
cvt:plapprox:reltol (plapprox:reltol, plapproxreltol)
Relative tolerance for piecewise-linear approximation. Default 0.01.
cvt:pre:all
0/1*: Set to 0 to disable most presolve in the flat converter.
cvt:pre:boundlogarg (boundlogarg)
0*/1: Bound logarithm arguments to nonnegative.
cvt:pre:boundsbest (boundsbest)
0*/1: Submit best-known variable bounds to the solver. Can inhibit its
presolve.
Note: when a variable can be fixed, the stronger bounds are submitted.
cvt:pre:continuous_fixed_vars (continuous_fixed_vars, ctg_fixed)
0/1*: Make fixed variables continuous, to avoid fake MIPs.
cvt:pre:ctx2bndeq (ctx2bndeq)
0/1*: Propagate exact context into conditional (dis)equalities-to-bound,
vs always mixed. Can be affected by cvt:pre:ineq2bndeq. See #267.
cvt:pre:ctx2count (ctx2count)
DEPRECATED. Use ctx2bndeq. NEW DEFAULT.
Propagate exact context into atleast/atmost/exactly, count and numberof
expressions, vs always mixed. Bitwise OR of the following values:
1 - atleast/atmost/exactly, count
2 - numberof with constant reference value
4 - numberof with variable reference value.
Default 7, see #267.
cvt:pre:ctx2ineq (ctx2ineq)
0/1*: Propagate exact context into conditional inequalities, vs always
mixed. See #267.
Finer control provided by cvt:pre:ctx:cond...(le/ge) options.
cvt:pre:ctx:abs (ctx:abs)
Controls propagation of context into abs() expressions, which could
affect reformulations of abs() and its arguments (see the acc: options).
Bitwise OR of the following values:
1 - Propagate positive context exactly (otherwise always mixed)
2 - Propagate negative context exactly (otherwise always mixed)
Default 3. See mp.ampl.com/components.html#mathematical-background.
cvt:pre:ctx:acos (ctx:acos)
Context propagation for 'Acos' expression, see cvt:pre:ctx:abs.
cvt:pre:ctx:acosh (ctx:acosh)
Context propagation for 'Acosh' expression, see cvt:pre:ctx:abs.
cvt:pre:ctx:alldiff (ctx:alldiff)
Context propagation for 'AllDiff' expression, see cvt:pre:ctx:abs.
cvt:pre:ctx:and (ctx:and)
Context propagation for 'And' expression, see cvt:pre:ctx:abs.
cvt:pre:ctx:asin (ctx:asin)
Context propagation for 'Asin' expression, see cvt:pre:ctx:abs.
cvt:pre:ctx:asinh (ctx:asinh)
Context propagation for 'Asinh' expression, see cvt:pre:ctx:abs.
cvt:pre:ctx:atan (ctx:atan)
Context propagation for 'Atan' expression, see cvt:pre:ctx:abs.
cvt:pre:ctx:atanh (ctx:atanh)
Context propagation for 'Atanh' expression, see cvt:pre:ctx:abs.
cvt:pre:ctx:condlineq (ctx:condlineq)
Context propagation for 'Conditional< AlgebraicConstraint< LinTerms,
RhsEQ > >' expression, see cvt:pre:ctx:abs.
cvt:pre:ctx:condlinge (ctx:condlinge)
Context propagation for 'Conditional< AlgebraicConstraint< LinTerms,
RhsGE > >' expression, see cvt:pre:ctx:abs.
cvt:pre:ctx:condlingt (ctx:condlingt)
Context propagation for 'Conditional< AlgebraicConstraint< LinTerms,
RhsGT > >' expression, see cvt:pre:ctx:abs.
cvt:pre:ctx:condlinle (ctx:condlinle)
Context propagation for 'Conditional< AlgebraicConstraint< LinTerms,
RhsLE > >' expression, see cvt:pre:ctx:abs.
cvt:pre:ctx:condlinlt (ctx:condlinlt)
Context propagation for 'Conditional< AlgebraicConstraint< LinTerms,
RhsLT > >' expression, see cvt:pre:ctx:abs.
cvt:pre:ctx:condquadeq (ctx:condquadeq)
Context propagation for 'Conditional< AlgebraicConstraint<
QuadAndLinTerms, RhsEQ > >' expression, see cvt:pre:ctx:abs.
cvt:pre:ctx:condquadge (ctx:condquadge)
Context propagation for 'Conditional< AlgebraicConstraint<
QuadAndLinTerms, RhsGE > >' expression, see cvt:pre:ctx:abs.
cvt:pre:ctx:condquadgt (ctx:condquadgt)
Context propagation for 'Conditional< AlgebraicConstraint<
QuadAndLinTerms, RhsGT > >' expression, see cvt:pre:ctx:abs.
cvt:pre:ctx:condquadle (ctx:condquadle)
Context propagation for 'Conditional< AlgebraicConstraint<
QuadAndLinTerms, RhsLE > >' expression, see cvt:pre:ctx:abs.
cvt:pre:ctx:condquadlt (ctx:condquadlt)
Context propagation for 'Conditional< AlgebraicConstraint<
QuadAndLinTerms, RhsLT > >' expression, see cvt:pre:ctx:abs.
cvt:pre:ctx:cos (ctx:cos)
Context propagation for 'Cos' expression, see cvt:pre:ctx:abs.
cvt:pre:ctx:cosh (ctx:cosh)
Context propagation for 'Cosh' expression, see cvt:pre:ctx:abs.
cvt:pre:ctx:count (ctx:count)
Context propagation for 'Count' expression, see cvt:pre:ctx:abs.
cvt:pre:ctx:div (ctx:div)
Context propagation for 'Div' expression, see cvt:pre:ctx:abs.
cvt:pre:ctx:equiv (ctx:equiv)
Context propagation for 'Equivalence' expression, see cvt:pre:ctx:abs.
cvt:pre:ctx:exp (ctx:exp)
Context propagation for 'Exp' expression, see cvt:pre:ctx:abs.
cvt:pre:ctx:expa (ctx:expa)
Context propagation for 'ExpA' expression, see cvt:pre:ctx:abs.
cvt:pre:ctx:ifthen (ctx:ifthen)
Context propagation for 'IfThen' expression, see cvt:pre:ctx:abs.
cvt:pre:ctx:impl (ctx:impl)
Context propagation for 'Implication' expression, see cvt:pre:ctx:abs.
cvt:pre:ctx:linfn (ctx:linfn)
Context propagation for 'LinearFunctionalConstraint' expression, see
cvt:pre:ctx:abs.
cvt:pre:ctx:log (ctx:log)
Context propagation for 'Log' expression, see cvt:pre:ctx:abs.
cvt:pre:ctx:loga (ctx:loga)
Context propagation for 'LogA' expression, see cvt:pre:ctx:abs.
cvt:pre:ctx:logi (ctx:logi)
Context propagation for 'Logistic' expression, see cvt:pre:ctx:abs.
cvt:pre:ctx:max (ctx:max)
Context propagation for 'Max' expression, see cvt:pre:ctx:abs.
cvt:pre:ctx:min (ctx:min)
Context propagation for 'Min' expression, see cvt:pre:ctx:abs.
cvt:pre:ctx:not (ctx:not)
Context propagation for 'Not' expression, see cvt:pre:ctx:abs.
cvt:pre:ctx:numberofconst (ctx:numberofconst)
Context propagation for 'NumberofConst' expression, see cvt:pre:ctx:abs.
cvt:pre:ctx:numberofvar (ctx:numberofvar)
Context propagation for 'NumberofVar' expression, see cvt:pre:ctx:abs.
cvt:pre:ctx:or (ctx:or)
Context propagation for 'Or' expression, see cvt:pre:ctx:abs.
cvt:pre:ctx:pl (ctx:pl)
Context propagation for 'PL' expression, see cvt:pre:ctx:abs.
cvt:pre:ctx:pow (ctx:pow)
Context propagation for 'Pow' expression, see cvt:pre:ctx:abs.
cvt:pre:ctx:powc (ctx:powc)
Context propagation for 'PowConstExp' expression, see cvt:pre:ctx:abs.
cvt:pre:ctx:quadfn (ctx:quadfn)
Context propagation for 'QuadraticFunctionalConstraint' expression, see
cvt:pre:ctx:abs.
cvt:pre:ctx:signpowc (ctx:signpowc)
Context propagation for 'SignpowConstExp' expression, see
cvt:pre:ctx:abs.
cvt:pre:ctx:sin (ctx:sin)
Context propagation for 'Sin' expression, see cvt:pre:ctx:abs.
cvt:pre:ctx:sinh (ctx:sinh)
Context propagation for 'Sinh' expression, see cvt:pre:ctx:abs.
cvt:pre:ctx:tan (ctx:tan)
Context propagation for 'Tan' expression, see cvt:pre:ctx:abs.
cvt:pre:ctx:tanh (ctx:tanh)
Context propagation for 'Tanh' expression, see cvt:pre:ctx:abs.
cvt:pre:eqbinary
0/1*: Preprocess reified equality comparison with a binary variable.
cvt:pre:eqresult
0/1*: Preprocess reified equality comparison's decidable cases.
cvt:pre:feastol (pre:feastol, pre:eps, pre:feastolabs, pre:epsabs)
Absolute tolerance to check variable and constraint bound contraditions.
Only warns if also pre:feastolrel is violated. See also sol:chk:feastol.
Default 1e-6.
cvt:pre:feastolrel (pre:feastolrel, pre:epsrel)
Relative tolerance to check variable and constraint bound
contradictions. Only warns if also pre:feastol is violated. See also
sol:chk:feastol. Default 1e-6.
cvt:pre:ineq2bndeq (ineq2bndeq)
0/1*: Preprocess reified inequality expr <(=) c, where c <)=(
lb(expr)+cvt:mip:eps, into expr == lb(expr), which works better on some
benchmarks/solvers.
cvt:pre:ineq2related (ineq2related, ineq2rel)
0/1*: Unify related reified inequalities: <=c, <c+cvt:mip:eps, >c,
>=c+cvt:mip:eps.
cvt:pre:ineqresult
0/1*: Preprocess reified inequality comparison's decidable cases.
cvt:pre:ineqrhs
0/1*: Preprocess reified inequality comparison's right-hand sides (round
for integer expression body).
cvt:pre:logistic (cvt:logistic)
0*/1: recognize logistic functions in the model, see acc:logistic.
cvt:pre:prod (cvt:prod)
Product preprocessing flags. Sum of a subset of the following bits:
1 - Quadratize higher-order products in the following order: integer
terms first, then real-valued ones; in each group, smaller-range terms
first.
2 - Logicalize products of 2 binary terms. Logicalizing means that the
product is converted to a conjunction. If the solver does not support it
natively (see acc:and), the conjunction is linearized.
4 - Logicalize products of >=3 binary terms.
Default: 7.
Bits 2 or 4 imply bit 1.
cvt:pre:signpow (cvt:signpow)
0*/1: recognize signpow() functions in the model, such as abs(x)*x, see
acc:signpow.
cvt:pre:sort (cvt:sort)
0/1*: Sort and eliminate duplicates in arguments of AND, OR, MIN, MAX.
Sort arguments of COUNT, ATLEAST, EXACTLY, ATMOST, NUMBEROF, ALLDIFF.
Can be necessary for some solvers.
cvt:pre:unnest (cvt:unnest, cvt:pre:inline, cvt:inline)
Inline nested expressions. Bitwise OR of the following values:
1 - AND/FORALL and OR/EXISTS expressions
2 - Linear subexpressions
4 - Quadratic subexpressions
8 - MIN/MAX.
See also option cvt:dvelim concerning only the input model. Default 15.
cvt:qp2passes (cvt:qp2pass, qp2passes, qp2pass)
0/1*: Parse sums of QP expressions in 2 passes. Usually faster.
cvt:quadcon (passquadcon)
Convenience option. Set to 0 to disable quadratic constraints. Synonym
for acc:quad..=0. Currently this disables out-multiplication of
quadratic terms, then they are linearized.
cvt:quadobj (passquadobj)
0/1*: Pass quadratic objective terms to the solver. When 0, if the
solver accepts quadratic constraints, such a constraint will be created
with those, otherwise linearly approximated.
cvt:socp (socpmode, socp)
Second-Order Cone recognition mode:
0 - Do not recognize SOCP forms
1 - Recognize from non-quadratic expressions only (sqrt, abs)
2 - Recognize from quadratic and non-quadratic SOCP forms. Helpful if
the solver does not recognize non-standard forms
Recognized SOCP forms can be further converted to (SOCP-standardized)
quadratic constraints, see cvt:socp2qc. Default: 2.
cvt:socp2qc (socp2qcmode, socp2qc)
Mode to convert recognized SOCP forms to SOCP-standardized quadratic
constraints:
0 - Do not convert
1 - Convert if no other cone types found, and not all original
quadratics could be recognized as SOC, in particular if the
objective is quadratic
2 - Always convert
Such conversion can be necessary if the solver does not accept a mix of
conic and quadratic constraints/objectives. Default: 2.
cvt:sos (sos)
0/1*: Whether to honor declared suffixes .sosno and .ref describing SOS
sets. Each distinct nonzero .sosno value designates an SOS set, of type
1 for positive .sosno values and of type 2 for negative values. The .ref
suffix contains corresponding reference values used to order the
variables.
cvt:sos2 (sos2)
0*/1: Whether to honor SOS2 constraints for nonconvex piecewise-linear
terms, using suffixes .sos and .sosref provided by AMPL. Currently under
rework.
cvt:uenc:negctx:max (uenc:negctx:max, cvt:uenc:negctx, uenc:negctx)
If cvt:uenc:ratio applies, max number of constants in comparisons
x==const in negative context (equivalently, x!=const in positive
context), where const!=lb(x) and const!=ub(x), to skip unary encoding of
x. Default 1.
Example:
var x in 1..9;
var y >=1 <=200;
s.t. Con: (x==9 || x==2 || x==6) ==> y >= 4;
With uenc:negctx<=1, this triggers unary encoding for x.
cvt:uenc:ratio (uenc:ratio)
Min ratio (ub-lb+1)/Nvalues to skip unary encoding for a variable x,
where Nvalues is the number of constants used in conditional comparisons
x==const. Instead, indicator constraints (or big-Ms) are used, if
uenc:negctx also applies. Default 0.
Example:
var x in 1..9;
var y >=1 <=200;
s.t. Con: y>3 ==> (x==2 || x==6 || x==5);
With uenc:ratio>3, this triggers unary encoding for x.
iis:find (iisfind, iis, alg:iisfind)
Whether to find and export an IIS. Default = 0 (don't export).
lim:dettime (dettimelim)
Time limit in platform-dependent "ticks".
lim:iter (iterlim, iterlimit, iterations)
LP iteration limit (default: large).
lim:lowercutoff (lowercutoff, mip:lowercutoff)
See lim:uppercutoff.
lim:lowerobj (lowerobjlim, lowerobj)
See lim:upperobjlim.
lim:lowerobjstop (lowerobjstop, mip:lowerobj)
See lim:upperobjstop.
lim:netiterations (netiterations, netiter)
Limit on network simplex iterations (default: large).
lim:nodes (node, nodelim, nodelimit)
Maximum MIP nodes to explore (default: 2^31 - 1).
lim:sol (sollimit, solutionlimit, mipsolutions)
Limit the number of feasible MIP solutions found, causing early
termination if exceeded; default = 2e31-1
lim:time (timelim, timelimit, time)
Limit on solve time (in seconds; default: no limit).
lim:uppercutoff (uppercutoff, mip:uppercutoff)
Sets the upper cutoff tolerance. When the problem is a minimization
problem, CPLEX cuts off or discards any solutions that are greater than
the specified upper cutoff value. If the model has no solution with an
objective value less than or equal to the cutoff value, CPLEX declares
the model infeasible. In other words, setting an upper cutoff value c
for a minimization problem is similar to adding this constraint to the
objective function of the model: obj <= c. Default: 1e+75.
Only effective in the branch and bound algorithm, for example, in a
mixed integer program (MIP).
lim:upperobj (upperobjlim, upperobj)
Sets an upper limit on the value of the objective function in the
simplex algorithms. Setting an upper objective function limit causes
CPLEX to halt the optimization process when the maximum objective
function value limit has been reached. This limit applies only during
Phase II of the simplex algorithm in maximization problems. Default:
1e+75.
lim:upperobjstop (upperobjstop, mip:upperobj)
In a maximization MILP or MIQP, the solver will abort the optimization
process as soon it finds a solution of value greater than or equal to
the specified value. It is ignored if the problem is multiobjective.
Default: 1e+75.
lp:crash (crash)
Crash strategy (used to obtain starting basis in simplex); possible
values = -1, 0, 1; default = 1. The best setting is problem-dependent
and can only be found by experimentation. 0 completely ignores the
objective.
lp:dgradient (dgradient)
Pricing algorithm for dual simplex (default 0):
0 - Automatic (default)
1 - Standard dual pricing
2 - Steepest-edge pricing
3 - Steepest-edge pricing in slack space
4 - Steepest-edge with unit initial norms
5 - Devex pricing
lp:doperturb (doperturb)
Decides whether to perturb problems when using simplex, setting it to 1
is occasionally helpful for highly degenerate problems.:
0 - No (default)
1 - Yes.
lp:opttol (optimality, opttol, optimalitytolerance)
Dual optimality tolerance: simplex will stop when all reduced costs are
smaller than this value in the improving direction; default=1e-6.
lp:perturb (perturb)
Amount by which to perturb variable bounds when perturbing problems (see
"perturb"); default=1e-6, must be positive.
lp:perturblim (perturblim, perturblimit)
Number of stalled simplex iterations before the problem is perturbed;
default=0 => automatic.
lp:solutiontype (solutiontype)
Whether to seek a basic solution when solving an LP:
0 - Automatic - seeks a solution with basis (default)
1 - Yes (equivalent to 0)
2 - No
mip:backtrack (backtrack)
Tolerance (>0, default 0.9999) for when to backtrack during branch &
bound. Low values tend to pure best-bound search. High values(~1) tend
to pure depth-first search. Values less than the default are often good
when subproblems are expensive.
mip:basis (fixmodel, mip:fix)
Whether to compute duals / basis / sensitivity for MIP models:
0 - No (default)
1 - Yes.
mip:bbinterval (bbinterval)
For nodeselect = 2, select the best-bound node, rather than the best -
estimate node, every bbinterval iterations (default 7); 0 means always
use the best-estimate node.
mip:bestbound (bestbound, return_bound)
Whether to return suffix .bestbound for the best known MIP dual bound on
the objective value:
0 - No (default)
1 - Yes.
The suffix is on the objective and problem and is -Infinity for
minimization problems and +Infinity for maximization problems if there
are no integer variables or if a dual bound is not available.
mip:bestnode (bestnode)
Request return of suffix .bestnode on the objective and problem for the
objective value at the best feasible MIP node. If a feasible node has
not yet been found, this value is +Infinity for minimization problems
and -Infinity for maximization problems.
mip:boundstr (boundstr, bndstrenind)
Whether to apply bound strengthening in mixed integer programs (MIPs):
-1 - Automatic choice (default)
0 - No
1 - Yes.
mip:branchdir (branchdir, branch)
Which child node to explore first when branching:
-1 - Explore "down" branch first
0 - Explore "most promising" branch first (default)
1 - Explore "up" branch first.
mip:emphasis (mipemphasis, mip:focus, mipfocus)
MIP solution strategy:
0 - Balance finding good feasible solutions and proving optimality
(default)
1 - Favor finding feasible solutions
2 - Favor providing optimality
3 - Focus on improving the best objective bound
4 - Focus on finding hidden feasible solutions
5 - Focus on finding high quality solutions earlier (heuristic).
mip:fpheur (fpheur)
Whether to use the feasibility pump heuristic on MIP problems:
-1 - No
0 - Automatic (default)
1 - Yes, focus on finding a feasible solution
2 - Yes, focus on finding a good objective value at a feasible
solution
mip:gap (mipgap)
Max. relative MIP optimality gap (default 1e-4).
mip:gapabs (mipgapabs, absmipgap)
Max. absolute MIP optimality gap (default 1e-6).
mip:inttol (inttol, intfeastol, integrality)
Feasibility tolerance for integer variables (default 1e-05, must be in
[0.0, 0.5])
mip:nodefile (nodefile)
Whether to save node information in a temporary file:
0 - No
1 - Compressed node file in memory (default)
2 - Node file on disk
3 - Compressed node file on disk
mip:nodemethod (nodemethod, mipalg, mipalgorithm)
Algorithm used to solve relaxed MIP node problems (after the initial
relaxation); for MIQP problems (quadratic objective, linear
constraints), settings other than 3 and 5 are treated as 0. For MIQCP
problems (quadratic objective and constraints), only 0 is permitted.
0 - Automatic (default)
1 - Primal simplex
2 - Dual simplex
3 - Network simplex
4 - Barrier
5 - Sifting
See also alg:method. Overrides netopt option and
primalopt/dualopt/barrier/network/sifting flags.
mip:nodesel (nodesel, nodeselect)
Strategy for choosing next node while optimizing
integer variables:
0 - Depth-first search
1 - Breadth-first search (default)
2 - Best-estimate search
3 - Alternative best-estimate search
mip:objdiff (objdiff, objdif)
Used to update the cutoff each time a 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 best one found so far. Positive values may speed
the search -- and may cause the optimal solution to be missed.
mip:relobjdiff (relobjdiff, relobjdif)
If objdiff parameter is 0, relobjdiff times the absolute value is used
as a cutoff (see objdiff)
mip:return_gap (return_mipgap)
Whether to return mipgap suffixes or include mipgap values (|objectve -
.bestbound|) in the solve_message: sum of
1 - Return .relmipgap suffix (relative to |obj|)
2 - Return .absmipgap suffix (absolute mipgap)
4 - Suppress mipgap values in solve_message.
Default = 0. The suffixes are on the objective and problem. Returned
suffix values are +Infinity if no integer-feasible solution has been
found, in which case no mipgap values are reported in the solve_message.
mip:round (round)
Whether to round integer variables to integral values before returning
the solution, and whether to report that the solver returned noninteger
values for integer values: sum of
1 ==> Round nonintegral integer variables
2 ==> Modify solve_result
4 ==> Modify solve_message
Default = 0. Modifications that were or would be made are reported in
solve_result and solve_message only if the maximum deviation from
integrality exceeded mip:round_reptol.
mip:round_reptol (round_reptol)
Tolerance for reporting rounding of integer variables to integer values;
see "mip:round". Default = 1e-9.
mip:search (mipsearch)
Search strategy for mixed-integer problems:
0 - Automatic (default)
1 - Traditional branch and cut
2 - Dynamic search
mip:submipalg (submipalg)
Choice of algorithm used to solve the subproblems of a subMIP: not a
subproblem, but an auxiliary MIP that CPLEX sometimes forms and solves,
e.g., when dealing with a partial MIP start, repairing an infeasible MIP
start, using the RINS heuristic, branching locally or polishing a
solution. Possible values (only 0 is allowed for MIQCPs):
0 - Automatic (default)
1 - Primal simplex
2 - Dual simplex
3 - Network simplex
4 - Barrier
5 - Sifting
mip:submipscale (submipscale)
Rarely used choice of scaling for auxiliary subMIPs (described with
"submipalg"):
-1 - No scaling
0 - Equilibration (default)
1 - More aggressive
mip:submipstartalg (submipstartalg)
Rarely used choice of algorithm for the initial relaxation of a subMIP
(described with "submipalg"):
0 - Automatic (default)
1 - Primal simplex
2 - Dual simplex
3 - Network simplex
4 - Barrier
5 - Sifting
6 - Concurrent (dual, barrier and primal in opportunistic mode; dual
and barrier in deterministic mode; 4 is used for MIPQs).
mip:varbranch (varbranch, varsel, varselect)
MIP branch variable selection strategy:
-1 - Branch on variable with smallest integer infeasibility
0 - Algorithm decides (default)
1 - Branch on variable with largest integer infeasibility
2 - Branch based on pseudo costs
3 - Strong branching
4 - Branch based on pseudo reduced costs
obj:*:abstol (obj_*_abstol)
Absolute tolerance for objective with index *. Can only be applied on a
multi-objective problem with obj:multi=1
obj:*:priority (obj_*_priority)
Priority for objective with index *
obj:*:reltol (obj_*_reltol)
Relative tolerance for objective with index *
obj:*:weight (obj_*_weight)
Weight for objective with index *
obj:multi (multiobj)
Whether to use multi-objective optimization:
0 - Single objective, see option obj:no (default)
1 - Multi-objective, solver's native handling if available
2 - Multi-objective, force emulation
When obj:multi>0 and several objectives are present, suffixes
.objpriority, .objweight, .objreltol, and .objabstol on the objectives
are relevant. Objectives with greater .objpriority values (integer
values) have higher priority. Objectives with the same .objpriority are
weighted by .objweight, according to the option obj:multi:weight.
Objectives with positive .objabstol or .objreltol are allowed to be
degraded by lower priority objectives by amounts not exceeding the
.objabstol (absolute) and .objreltol (relative) limits.
Note that with solver's native handling (when obj:multi=1 and
supported), some solvers might have special rules for the tolerances,
especially for LP, and not allow quadratic objectives. See the solver
documentation.
obj:multi:options (multiobjoptions)
0/1*: Regard multiobjective option suffixes which are objective suffixes
beginning with option_. Example: suffix option_timelim; let
_obj[2].option_timelim:=15;
obj:multi:weight (multiobjweight, obj:multi:weights, multiobjweights)
How to interpret each objective's weight sign:
1 - relative to the sense of the 1st objective
2 - relative to its own sense (default)
With the 1st option (legacy behaviour), negative .objweight for
objective i would make objective i's sense the opposite of the model's
1st objective. Otherwise, it would make objective i's sense the opposite
to its sense defined in the model.
obj:no (objno)
Objective to optimize:
0 - None
1 - First (default, if available)
2 - Second (if available), etc.
pre:aggfill (aggfill, agglim)
Variables that appear in more than agglim rows (default 10) will not be
substituted away by the aggregator.
pre:aggregate (aggregate)
Whether to make substitutions to reduce the number of rows:
-1 - Automatic (default) (1 for LP, infinite for MIP)
0 - Do not use any aggregator
n > 0 - Apply aggregator n times
pre:coeffreduce (coeffreduce)
Whether to use coefficient reduction when preprocessing MIPS
-1 - Automatic (default)
0 - No
1 - Reduce only integral coefficients
2 - Reduce all potential coefficients
3 - Reduce aggresively with tiling
pre:dependency (dependency)
Whether to use CPLEX's presolve dependency checker:
-1 - Automatic (default)
0 - No
1 - Turn on only at start of preprocessing
2 - Turn on only at end of preprocessing
3 - Turn on at both start and end of preprocessing
pre:dual (predual)
Whether CPLEX' presolve phase should present the CPLEX solution
algorithm with the primal(-1) or dual(1) problem or (default = 0) should
decide automatically.
For compatibility, pre:dual interacts with alg:dualproblem.
pre:node (presolvenode)
Whether to run presolve at each node of the MIP branch-and-bound:
-1 - No
0 - Automatic choice (default)
1 - Yes.
pre:passes (prepasses, prepass)
Limit on the number of CPLEX presolve passes:
-1 - Automatic choice (default)
n>=0 - At most n passes.
pre:reformulations (prereformulations)
Kinds of reductions permitted during CPLEX presolve:
0 - None
1 - Allow reformulations that interphere with crushing forms
2 - Allow reformulations that interphere with uncrushing forms
3 - All reformulations (default)
pre:relax (prerelax)
Whether to use CPLEX's presolve on the initial LP relaxation of a MIP:
-1 - Automatic choice (default)
0 - No
1 - Yes.
pre:scale (scale)
How to scale the problem:
-1 - No scaling
0 - Equilibration (default)
1 - More aggressive
pre:solve (presolve)
Whether to use CPLEX's presolve:
0 - No
1 - Yes (default)
pre:sos1enc (presos1enc, presos1reform)
Encoding used for SOS1 reformulation:
-1 - No reformulation
0 - Automatic (default)
1 - Reformulate as linear constraints, with a reformulation which is
logarithmic in the size of the SOSs.
pre:sos2enc (presos2enc, presos2reform)
Encoding used for SOS2 reformulation, see pre:sos1enc.
qp:target (optimalitytarget)
Type of solution to compute for a (MI)QP (not QCP) problem:
0 - automatic (default)
1 - assume convex and search for global optimum
2 - search for first order optimality (not valid for QMIP)
3 - solve non-convex to global optimality
sol:chk:fail (chk:fail, checkfail)
Fail on MP solution check violations, with solve result 150.
sol:chk:feastol (sol:chk:eps, chk:eps, chk:feastol)
Absolute tolerance to check objective values', variable and constraint
bounds' violations. Only triggers if also sol:chk:feastolrel is
violated. See also pre:feastol. Default 1e-6.
sol:chk:feastolrel (sol:chk:epsrel, chk:epsrel, chk:feastolrel)
Relative tolerance to check objective values', variable and constraint
bounds' violations. Only triggers if also sol:chk:feastol is violated.
See also pre:feastol. Default 1e-6.
sol:chk:infeas (chk:infeas, checkinfeas)
Check even infeasible solution condidates, whenever solver reports them.
sol:chk:inttol (sol:chk:inteps, sol:inteps, chk:inttol)
Solution checking tolerance for variables' integrality. Default 1e-5.
sol:chk:mode (solcheck, checkmode, chk:mode)
Solution checking mode. Sum of a subset of the following bits:
1 - Check variable bounds and integrality.
2 - Check original model constraints, as well as any non-linear
expression values reported by the solver.
4 - Check intermediate auxiliary constraints (i.e., those which were
reformulated further).
8 - Check final auxiliary constraints sent to solver.
16 - Check objective values.
32, 64, 128, 256, 512 - similar, but non-linear expressions are
recomputed (vs using their values reported by the solver.)
*Experimental.* This is an idealistic check, because it does not
consider possible tolerances applied by the solver when computing
expression values.
Default: 1+2+512.
sol:chk:prec (chk:prec, chk:precision)
AMPL solution_precision option when checking: number of significant
digits.
sol:chk:round (chk:round, chk:rnd)
AMPL solution_round option when checking: round to this number of
decimals after comma (before comma if negative.)
sol:count (countsolutions)
0*/1: Whether to count the number of solutions and return it in the
".nsol" problem suffix. The number and kind of solutions are controlled
by the sol:pool... parameters. Value 1 implied by sol:stub.
sol:poolgap (ams_eps, poolgap)
Relative tolerance for reporting alternate MIP solutions (default:
1e75).
sol:poolgapabs (ams_epsabs, poolagap, poolgapabs)
Absolute tolerance for reporting alternate MIP solutions (default:
1e75).
sol:poolintensity (poolintensity)
How hard to try adding MIP solutions to the solution
pool. Useful only if poolstub is specified.
0 - Treated as 1 if poolstub is specified without populate, or 2 if
populate is specified (default)
3 - More additions to the solution pool
4 - Tries to generate all MIP solutions and keep the best
"sol:poollimit" ones.
sol:poollimit (ams_limit, poolcapacity, poollimit, solnlimit)
Limit on the number of alternate MIP solutions written. Default:
2100000000.
sol:poolmode (ams_mode, poolmode)
Search mode for MIP solutions when sol:stub/sol:count are specified to
request finding several alternative solutions. Overriden by sol:populate
andsol:poolintensity. Values:
0 - Just collect solutions during normal solve
1 - Make some effort at finding additional solutions =>
poolintensity=2, populate=1
2 - Seek "sol:poollimit" best solutions (default) => poolintensity=2,
populate=1
sol:poolpopulate (populate)
Whether to run CPLEX's "populate" algorithm in an attempt to add more
solutions to the MIP solution pool:
0 - no; just keep solutions found during the initial solve
1 - run "populate" after finding a MIP solution
sol:poolpopulatelim (populatelim)
Limit on number of solutions added to the solution pool by the populate
algorithm. Default: 20.
sol:poolreplace (poolreplace)
Policy for replacing solutions in the solution pool if more than
poolcapacity solutions are generated:
0 - FIFO (first-in, first-out); default
1 - Keep best solutions
2 - Keep most diverse solutions
sol:report_uncertain (report_uncertain_sol)
0/1*: whether to report objective value(s) in solve_message when
solve_result is '?' (unknown).
sol:stub (ams_stub, solstub, solutionstub)
Stub for alternative MIP solutions, written to files with names obtained
by appending "1.sol", "2.sol", etc., to <solutionstub>. The number of
such files written is affected by the keywords poolgap, poolgapabs,
poollimit, poolpopulatelim, poolpopulate, poolintensity and poolmode.
The number of alternative MIP solution files written is returned in
suffix .nsol on the problem.
tech:auxrootthreads (auxrootthreads)
Controls the number of threads used for auxiliary chores when solving
the root node of a MIP problem. When N threads are available (possibly
limited by "threads"), auxrootthreads must be less than N.
-1 - Do not use additional threads for auxiliary tasks
0 - Automatic (default)
n < N - Use n threads for auxiliary root tasks
tech:bardisplay (bardisplay)
Specifies how much the barrier algorithm chatters:
0 - no information (default)
1 - balanced setup and iteration information
2 - diagnostic information
tech:conflictdisplay (conflictdisplay)
What to report when the conflict finder is working:
0 - Nothing
1 - Summary (default)
2 - Detailed
tech:cpumask (cpumask)
Whether and how to bind threads to cores on systems where this is
possible: off=no CPU binding, auto=automatic binding(default). Values
other than "off" and "auto" must be a hexadecimal string.The lowest
order bit is for the first logical CPU. For example, "a5" and "A5"
indicate that CPUs 0, 2, 5, and 7 are available for binding to threads,
since hex value a5 =2^7+2^5+2^2+2^0.
tech:debug (debug)
0*/1: whether to assist testing & debugging, e.g., by outputting
auxiliary information (mostly via suffixes).
tech:endbasis (writebas, endbasis)
Write the final basis to the specified file (in BAS format).
tech:logfile (logfile)
Log file name.
tech:lpdisplay (display, lpdisplay)
Frequency of displaying LP progress information:
0 - never (default)
1 - each factorization
2 - each iteration
tech:memoryemphasis (memoryemphasis)
0*/1: Whether to compress data to reduce the memory used, which may make
some information (e.g., basis condition) unavailable.
tech:mipdisplay (mipdisplay)
Frequency of displaying branch-and-bound information:
0 - no node log displayed (default)
1 - each integer feasible solution
2 - every "mipinterval" nodes
3 - same as 2 plus cutting planes info and info about new incumbents
found through MIP starts
4 - same as 3, plus LP root relaxation info (according to "display")
5 - same as 4, plus LP subproblems (according to "display")
tech:mipinterval (mipinterval)
Frequency of node logging for "tech::mipdisplay" >=2:
0 - automatic (default)
n > 0 - every n nodes and every incumbent
n < 0 - new incumbents and less info the more negative n is
tech:modisplay (modisplay, multiobjdisplay)
Level of display during multiobjective optimization:
0 - No output
1 - (Default) summary display after each subproblem
2 - Summary display after each subproblem, as well as subproblem logs
tech:netdisplay (netdisplay)
Decides what CPLEX reports to the screen during network optimization:
0 - No display
1 - Display true objective values (can be non-monotonic)
2 - (Default) display penalized objective values
tech:nosolve (nosolve)
Stop after loading the problem and honoring any "writeprob" or
"writemipstart" directives.
tech:numcores (numcores)
Write number of logical cores to stdout:
0 - No (default)
1 - Yes.
tech:optionfile (optionfile, option:file)
Name of an AMPL solver option file to read (surrounded by 'single' or
"double" quotes if the name contains blanks). Lines that start with #
are ignored. Otherwise, each nonempty line should contain "name=value",
e.g., "lim:iter=500".
tech:optionnativeread (optionnativeread, tech:param:read, param:read)
Name of CPLEX parameter file (surrounded by 'single' or "double" quotes
if the name contains blanks). The easiest approach to use PRM files is
to export an initial file with tech:optionnativewrite.
tech:optionnativewrite (optionnativewrite, tech:param:write, param:write)
Name of CPLEX parameter file (surrounded by 'single' or "double" quotes
if the name contains blanks) to be written. Only parameters with
non-default values are written.
tech:outlev (outlev)
Whether to write CPLEX log lines (chatter) to stdout, for granular
control see "tech:lpdisplay", "tech:mipdisplay", "tech:bardisplay".
Values:
0 - no output (default)
1 - equivalent to "bardisplay"=1, "display"=1, "mipdisplay"=2
2 - equivalent to "bardisplay"=2, "display"=2, "mipdisplay"=5
tech:outlev_mp (outlev_mp)
0*/1: whether to print MP model information.
tech:pretunefileprm (pretunefileprm)
File to which nondefault keyword settings are written in CPLEX PRM
format before tuning.
tech:seed (seed)
Seed for random number generator used internally by CPLEX.Use "seed=?"
to see the default, which depends on the CPLEX release.
tech:stats (stats, tech:report_stats, solve_stats)
Whether to return solve statistics and timings; the information will be
stored in the problem suffixes: 'simplex_iterations',
'barrier_iterations', 'nodes' and possibly other solver-dependent
suffixes. A JSON representation of the information above is returned in
the problem suffix `stats`.
Note that timing information will also be included in the JSON
representation if tech:timing>0. Values:
0 - Do not report statistics (default)
1 - Report statistics in JSON format in the problem suffix 'stats'
2 - Report statistics in suffixes
3 - Report statistics both in suffixes and the suffix 'stats'
tech:threads (threads)
How many threads to use when using the barrier algorithm
or solving MIP problems; default 0 ==> automatic choice.
tech:timing (timing, tech:report_times, report_times)
0*/1/2: Whether to print and return timings for the run, all times are
wall times. If set to 1, return the solution times in the problem
suffixes 'time_solver', 'time_setup' and 'time', 'time'=
time_solver+time_setup+time_output is a measure of the total time spent
in the solver driver. If set to 2, return more granular times, including
'time_read', 'time_conversion' and 'time_output'.
tech:tunedisplay (tunedisplay)
How much to print during tunin:
0 - Nothing
1 - Minimal printing (default)
2 - Show parameters being tried
3 - Exhaustive printing
tech:tunefile (tunefile, tunefileprm, tech:tunebase, tunebase)
Name of file for tuning results in CPLEX PRM format. If specified, CPLEX
will experiment with parameter settings that would make solving faster.
This can significantly increase execution time of the current
invocation, but the settings it finds might save time in future runs.
tech:tunerepeat (tunerepeat)
How many times to perturb the problem during tuning (default = 1).
tech:tunetimedet (tunetimedet)
Limit (in "ticks") on tuning time; meaningful if < time (default = 1e75)
tech:tunetimelim (tunetimelim, tunetime)
Limit (in seconds) on tuning time; meaningful if < time (default = 1e75)
tech:version (version)
Single-word phrase: report version details before solving the problem.
tech:wantsol (wantsol)
In a stand-alone invocation (no "-AMPL" on the command line), what
solution information to write. Sum of
1 - Write ".sol" file
2 - Primal variables to stdout
4 - Dual variables to stdout
8 - Suppress solution message.
tech:workdir (nodefiledir, workfiledir, workdir)
Directory where CPLEX creates a temporary subdirectory for temporary
files, e.g., for node information and Cholesky factors.
tech:workfilelim (workfilelim)
Maximum size in megabytes for in-core work "files". Default 2048.
tech:writegraph (cvt:writegraph, writegraph, exportgraph)
File to export conversion graph. Format: JSON Lines.
tech:writemipstart (writemipstart)
The name of a file to which the MIP starting guess(if any) is written in
".mst" format.
tech:writemodel (tech:writeprob, writeprob, writemodel, tech:exportfile)
Specifies files where to export the model before solving (repeat the
option for several files.) File name extensions can be ".lp[.7z]",
".mps", etc.
To write a model during iterative solve (e.g., with obj:multi=2), use
tech:writemodel:index.
Cplex-specific file name extensions are ".sav", ".mps", ".lp", ".rmp",
".rew", ".rlp"
tech:writemodel:index (tech:writeprob:index, writeprobindex, writemodelindex)
During iterative solve (e.g., with obj:multi=2), the iteration before
which to write solver model. 0 means before iteration is initialized;
positive value - before solving that iteration. Default 0.
tech:writemodelonly (justwriteprob, justwritemodel)
Specifies files where to export the model, no solving (option can be
repeated.) File extensions can be ".dlp", ".mps", etc.
tech:writesolution (writesol, writesolution)
Specifies the names of files where to export the solution and/or other
result files in solver's native formats. Option can be repeated. File
name extensions can be ".sol[.tar.gz]", ".json", ".bas", ".ilp", etc.