Readme.cplex

Embed Size (px)

DESCRIPTION

A readme for AMPL

Citation preview

The solver "cplex" uses CPLEX (a trademark of ILOG --> IBM) to solveinteger, mixed-integer, linear programming, and quadratic problems,including (with version 9) problems with quadratic constraintspossibly involving integer variables. Normally cplex is invoked byAMPL's solve command, which gives the invocation cplex stub -AMPLin which stub.nl is an AMPL generic output file (possibly writtenby "ampl -obstub" or "ampl -ogstub"). After solving the problem,cplex writes a stub.sol file for use by ampl's solve and solutioncommands. When you run ampl, this all happens automatically if yougive the AMPL commands option solver cplex; solve;You can control cplex by setting the environment variable cplex_optionsappropriately (either by using ampl's option command, or by using theshell's set and export commands before you invoke ampl). You can putone or more (white-space separated) phrases in $cplex_options. A fewof the phrases are single words: Phrase Meaning autoopt Use CPLEX's automatic choice of optimizer (dualopt). baropt Use the barrier algorithm (unless there are discrete variables). bestbound Return in suffix .bestbound the best known bound on the objective value. For MIP problems with a finite bestnode value (see below), bestbound = bestnode. bestnode For MIP problems, return the best node value in suffix .bestnode of the current objective and problem. For non-MIP problems and for MIP problems for which a best node value has not yet been found, this value is +Infinity for minimization problems and -Infinity for maximization problems. concurrentopt When hardware and licensing permit, try several methods in parallel (with CPLEX versions >= 8). dual Solve the dual problem. dualopt Use a dual simplex algorithm. maximize Maximize the objective, regardless of model specification. minimize Minimize the objective, regardless of model specification. primal Solve the primal problem (default, via "dualratio" described below). Note that "primal", "dual", and "dualratio" determine what problem is presented to CPLEX, whereas "primalopt" or "dualopt" instructs CPLEX to use a primal or dual simplex algorithm, rather than making an automatic choice (which currently is always "dualopt"). Thus "primalopt" and "dualopt" are orthogonal to "primal", "dual", and "dualratio". The best settings depend on the problem. primalopt Use a primal simplex algorithm. relax Ignore integrality: treat integer variables as continuous. siftopt Solve ever larger sequences of subproblems until the whole LP is solved (versions of CPLEX >= 8). version Show the current version.Others are name-value pairs, possibly separated by '=', as in iterations 600or iterations=600or iterations = 600any of which limits cplex to 600 iterations. The following names mayoccur in name-value pairs. For convenience, the list also repeats theabove single-word phrases, denoting them with "Single-word phrase". Name Comment absmipgap Absolute mixed-integer optimality gap tolerance (for difference between current best integer solution and optimal value of LP relaxation). Default 0. advance Whether to use advance basis information (initial primal and dual variable values and basis indicators). Default 1 (yes). aggcutlim Bound on the number of constraints aggregated to generate flow-cover and mixed-integer-rounding cuts; default = 3. aggfill Synonym for "agglim". agglim Variables that appear in more than agglim rows (default 10) will not be substituted away by the "aggregate" algorithm. aggregate 0 or 1 (default 1): Whether to make substitutions to reduce the number of rows. aggtol Pivot tolerance for aggregating. It seldom needs fiddling. Default = .05; must be in [1e-10, .99]. autoopt Single-word phrase: use CPLEX's automatic choice of optimizer (currently dualopt for LPs). autopt Synonym for "autoopt". auxrootthreads New in CPLEX 12.2. 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. Possible values: -1 = automatic choice (default) 0 = none for concurrent executions n < N: use N-n threads for the root node and n threads for auxiliary chores. 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. 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. barcorr Limit on centering corrections in each iteration of the barrier algorithm: -1 = decide automatically (default) nonnegative = at most that many. bardisplay Specifies how much the barrier algorithm chatters: 0 = no output (default) 1 = one line per iteration 2 = more output. bargrowth Tolerance for detecting unbounded faces in the barrier algorithm: higher values make the test for unbounded faces harder to satisfy. Default = 1e12. bariterlim Maximum barrier iterations allowed (default 200). barobjrange Limit on the absolute objective value before the barrier algorithm considers the problem unbounded. Default = 1e20. baropt Single-word phrase: use the barrier algorithm (unless there are discrete variables). baroutofcore New in CPLEX 7.1: whether the barrier solver should use disk (out-of-core) storage for Cholesky factors: 0 = no (default) 1 = yes. Withdrawn in CPLEX 10.0. barstart Barrier starting-point algorithm: 1 = dual is 0 (default) 2 = estimate dual 3 = average of primal estimate, 0 dual 4 = average of primal and dual estimates. barstartalg Synonym for "barstart". barthreads Maximum threads for the barrier algorithm (1 unless you have a CPLEX license for multiple threads). Withdrawn from CPLEX 11. barvarup Upper bound imposed by barrier algorithm on variables with infinite upper bound; used to prevent trouble with problems having unbounded optimal faces. Default = 1e20. Withdrawn from CPLEX 9.0. basis_cond Whether to show the condition number of the simplex basis in the solve_message and to return its value in the problem.basis_cond and objective.basis_cond suffixes. (Default = 0 = no; 1 = yes). basisinterval Number of interations between savings of current simplex basis to a file. Default = 50000. Deprecated in 10.0, removed in 12.6.1. 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. bestbound Single-word phrase requesting return of .bestbound suffix. See the description above. bestnode Single-word phrase requesting return of .bestnode suffix. See the description above. boundstr Whether to use bound strengthening in solving MIPs: -1 (default) = automatic choice 0 = never 1 = always. branch Branching direction for integer variables: -1 = down, 0 = algorithm decides, 1 = up; default = 0. branchdir Synonym for "branch". cliquecuts Synonym for "cliques". cliques Whether to use clique cuts in solving MIPs: -1 = never 0 = automatic choice (default) 1, 2, 3 = ever more aggressive generation. clocktype Kind of times CPLEX reports during the solution process: 1 = CPU time (default) 2 = wall clock time (total elapsed time). coeffreduce Whether to use coefficient reduction when preprocessing MIPS: 0 = no 1 = yes (default). comptol Convergence tolerance for barrier algorithm: the algorithm stops when the relative complementarity is < bartol (default 1e-8). concurrentopt Single-word phrase: with CPLEX versions >= 8 and when hardware and licensing permit, try several methods in parallel. conflictalg Choice of algorithm used by the CPLEX's conflict refiner (new in 12.6.1): 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). conflictdisplay New in CPLEX 10.0. What to report when the conflict finder is working: 0 = nothing 1 = summary (default) 2 = detailed display. covercuts Synonym for "covers". covers Whether to use cover cuts in solving MIPs: -1 = never 0 = automatic choice (default) 1, 2, 3 = ever more aggressive generation. crash Crash strategy (used to obtain starting basis); 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. crossover Causes the barrier algorithm to be run (in the absence of discrete variables) and specifies whether to "crossover" to an optimal simplex basis afterwards: 0 = no crossover 1 = crossover with primal simplex (default for baropt) 2 = crossover with dual simplex. cutpass Number of passes permitted when generating MIP cutting plane: -1 = none 0 = automatic choice (default) positive = at most that many passes cutsfactor Limit MIP cuts added to (cutsfactor-1)*m, where m is the original number of rows (after presolve). Default = 4. cutstats 0 or 1 (default 0): Whether the solve_message report the numbers and kinds of cuts used. dense Synonym for "densecol". 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. dependency Whether to use CPLEX's presolve dependency checker: 0 = no (default) 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. dettimelim Time limit in platform-dependent "ticks". New in CPLEX 12.5; see timing. dgradient Pricing algorithm for dual simplex (default 0): 0 = choose automatically 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. disjcuts Whether to generate MIP disjunctive cuts: -1 = no 0 = automatic choice (default) 1, 2, 3 = ever more aggressive generation. display Frequency of displaying LP progress information: 0 (default) = never 1 = each factorization 2 = each iteration. doperturb 1 means initially perturb the problem (by an amount governed by "perturbation", which is described below). 0 (default) means let the algorithm decide. Setting doperturb to 1 is occasionally helpful for highly degenerate problems. dparam Used with syntax "dparam=n=d" (no spaces), where n is a decimal integer, the number of a CPLEX "double" (i.e., floating-point valued) parameter. If d is a decimal floating-point value, assign d to "double" parameter n. If d is ?, report the current value of "double" paramter n. This facility provides a way to modify "double" parameters that have not (yet) been assigned a keyword. droptol If droptol > 0 is specified, linear constraint and objective coefficients less than droptol in magnitude are treated as zero. New in CPLEX 11. dual Single-word phrase: solve the dual problem. dualopt Single-word phrase: use a dual simplex algorithm. dualratio If neither "primal" nor "dual" was specified and "dual" is possible (e.g., no integer variables and no node and arc declarations), choose between "primal" and "dual" as follows. Let m = number of rows, n = number of columns; if m - n > dualthresh > 0 or m > dualratio*n, solve the dual; otherwise solve the primal. Defaults: dualthresh = 0, dualratio = 3. dualthresh See dualratio. eachcutlim Limit on the number of cuts of each time. Default = 2100000000. New in CPLEX 11. endbasis "endbasis foo" writes the final basis to file "foo" (in BAS format). endsol File for writing the final solution as an XML file. endtree File for writing final branch & bound search tree. Withdrawn from CPLEX 10. endvector File for writing solution from barrier algorithm without crossover: only meaningful with "baropt crossover=0". Deprecated; use endsol instead. feasibility Amount by which basic variables can violate their bounds. Default = 1e-6; possible values are between 1e-9 and 1e-4. feasopt New in CPLEX 10.0. For infeasible problems, whether to find a feasible point for a relaxed problem (see feasoptobj): 0 = no (default) 1 = find a feasible point 2 = find a "best" feasible point. feasoptobj New in CPLEX 10.0. Objective for "feasopt": 1 = minimize sum of constraint and variable bound relaxations 2 = minimize number of constraint and variable bounds relaxed (a MIP problem, generally harder than feasoptobj = 1) 3 = minimize sum of squares of constraint and variable bound relaxations. file Synonym for "writeprob". finalfactor Whether to factor the basis after "uncrushing" the problem at the end. 0 = no 1 = yes (default) Withdrawn in CPLEX 10.0. flowcuts Whether to use flow cuts in solving MIPs: -1 = never 0 = automatic choice (default) 1, 2 = ever more aggressive use. flowpathcuts Whether to generate MIP flow-path cuts: -1 = no 0 = automatic choice (default) 1, 2 = ever more aggressive generation. fpheur Whether to use the feasibility pump heuristic on MIP problems: -1 = no 0 = automatic choice (default) 1 = yes, focus on finding a feasible solution 2 = yes, focus on finding a good objective value at a feasible solution. New in CPLEX 11. fraccand Limit on number of candidate variables when generating Gomory cuts for MIP problems: default = 200. fraccuts Whether to generate MIP fractional Gomory cuts: -1 = no 0 = decide automatically (default) 1 = generate moderately 2 = generate aggressively. fracpass Limit on number of passes to generate MIP fractional Gomory cuts: 0 = automatic choice (default) positive = at most that many passes. fractionalcuts Synonym for "fracpass". growth Synonym for "bargrowth". gubcuts Whether to use GUB cuts in solving MIPs: -1 = never 0 = automatic choice (default) 1, 2 = ever more aggressive generation. heurfreq How often to apply "node heuristics" for MIPS: -1 = never 0 = automatic choice (default) n > 0 = every n nodes. heuristic Deprecated: withdrawn from CPLEX 9.0. What heuristic to use on MIPS for finding an initial integer solution: -1 = none 0 = decide automatically (default) 1 = use a rounding heuristic at node 0. heuristicfreq Synonym for "heurfreq". iisfind Whether to find and return an IIS (irreducible infeasible set of variables and constraints) if the problem is infeasible: 0 = no (default) 1 = find an IIS. IIS details are returned in suffix .iis, which assumes one of the values "non" for variables and constraints not in the IIS; "low" for variables or inequality constraint bodies whose lower bounds are in the IIS; "upp" for variables and inequality constraint bodies whose upper bounds are in the IIS; and "fix" for equality constraints that are in the IIS. impliedcuts Whether to use implied cuts in solving MIPs: -1 = never 0 = automatic choice (default) 1, 2 = ever more aggressive use. incompat How to treat parameter settings that CPLEX finds incompatible: 0 = quietly ignore incompatibilities 1 = report and ignore them (default) 2 = reject them, refusing to solve. For example, CPLEX regards the polishafter_* parameters introduced in CPLEX 11.2 as incompatible with the older polishtime parameter. integrality Amount by which an integer variable can differ from the nearest integer and still be considered feasible. Default = 1e-5; must be in [1e-9, 0.5]. (The upper bound was not enforced prior to CPLEX 11.) intwarntol Do not warn about perturbations to "integer" variables to make them integers when the maximum perturbation is at most intwarntol (default 1e-9); see "round". iparam Used with syntax "iparam=n=i" (no spaces), where n is a decimal integer, the number of a CPLEX integer parameter. If i is a decimal integer, assign i to integer parameter n. If i is ?, report the current value of integer paramter n. This facility provides a way to modify integer parameters that have not (yet) been assigned a keyword. iterations Limit on total LP iterations; default 5000000. iterlim Synonym for "iterations". lazy Whether to recognize suffix .lazy on constraints (new for CPLEX 10): sum of 1 ==> treat .lazy = 1 as lazy constraint 2 ==> treat .lazy = 2 as user cut Default lazy = 3 ==> treat both. (Suffix .lazy on constraints is ignored if not 0, 1, or 2 modulo 3.) lbheur Whether to use a local branching heuristic in an attempt to improve new incumbents found during a MIP search. (Default = 0 = no; 1 = yes.) limitperturb Synonym for "perturblimit". localimpliedcuts Whether to generate locally valid implied bound cuts for MIP problems (new in 12.6.1): -1 ==> no 0 ==> automatic choice (default) 1 ==> yes, moderately 2 ==> yes, aggressively 3 ==> yes, very aggressively. logfile Name of file to receive all CPLEX messages. lowercutoff For maximization problems involving integer variables, skip any branch whose LP relaxation's optimal value is less than lowercutoff. Warning: if lowercutoff is too large, the problem will appear infeasible. Default = -Infinity. lowerobj Stop minimizing when the objective value goes below lowerobj. Default = -1e75. lowerobjlim Synonym for "lowerobj". lpdisplay Synonym for "display". lpiterlim Synonym for "iterations". lptimelim Synonym for "time". markowitz Pivot tolerance; default = 0.01; must be between 0.0001 and 0.99999. Bigger values may improve numerical properties of the solution (and may take more time). maximize Single-word phrase: maximize the objective, regardless of model specifications. mcfcuts New in CPLEX 12.0. Whether to use multi-commodity flow (MCF) cuts: -1 = no 0 = let CPLEX decide (default) 1 = generate a modest number of MCS cuts 2 = generate MCS cuts aggressively. memoryemphasis New in CPLEX 10.0. Whether to compress data to reduce the memory used, which may make some information (e.g., basis condition) unavailable: 0 = no (default) 1 = yes. minimize Single-word phrase: minimize the objective, regardless of model specifications. mipalg Algorithm used on mixed-integer subproblems (default 2): 1 = primal simplex 2 = dual simplex (plus primal, if dual fails) 3 = network alg., then dual simplex 4 = barrier with crossover The next two are not available in CPLEX versions >= 8; specify mipcrossover instead. 5 = dual to iteration limit, then barrier 6 = barrier without crossover. mipalgorithm Synonym for "mipalg". mipbasis Whether to compute a basis and dual variables for MIP problems when endbasis is not specified: 0 = no 1 = yes This keyword is new with driver version 20040716. When endbasis is specified, mipbasis=1 is assumed. Otherwise, when mipbasis=0 is specified for a MIP problem, no solver-status values for variables are returned to AMPL. The default is 1 unless a quadratic objective or constraints are present, in which case the default is 0 (as finding a basis can be time consuming). mipcrossover Crossover method used when using the barrier method for MIP subproblems: -1 = no crossover 0 (default) = automatic choice 1 = primal 2 = dual. mipcuts Sets all ten of cliques, covers, disjcuts, flowcuts, flowpathcuts, fraccuts, gubcuts, impliedcuts, mircuts and zerohalfcuts to the specified value. mipdisplay Frequency of displaying branch-and-bound information (for optimizing integer variables): 0 (default) = never 1 = each integer feasible solution 2 = every "mipinterval" nodes 3 = every "mipinterval" nodes plus information on LP relaxations (as controlled by "display") 4 = same as 2, plus LP relaxation info 5 = same as 2, plus LP subproblem info. mipemphasis Whether to emphasize seeking optimality (0 = default) or finding feasible solutions (1). For CPLEX versions >= 8, two other values are possible: emphasizing optimality over feasibility (2) and emphasizing best bound (3). mipgap Relative tolerance for optimizing integer variables: stop if abs((best bound) - (best integer)) < mipgap * (1 + abs(best bound)). Default = 1e-4; must be between 1e-9 and 1. mipinterval Frequency of node logging for mipdisplay 2 or 3. Default = 1. mipkappa Whether to compute statistics on the condition numbers of optimal simplex bases for subproblems seen when solving a MIP problem. (This is not relevant to the sifting algorithm or the barrier algorithm without crossover.) New in CPLEX 12.2; can be expensive. Possible values: -1 = no mipkappa computations (default) 0 = automatic choice 1 = compute for a sample of subproblems 2 = compute for all subproblems. If available, statistics are reported in the solve_message. mipordertype Synonym for "ordertype". mipsearch Search strategy for mixed-integer problems, new in CPLEX 11: 0 = automatic choice (default) 1 = traditional branch and cut 2 = dynamic search. mipsolutions Stop branch-and-bound for integer variables after finding "mipsolutions" feasible solutions. Default = 2100000000. mipstart Synonym for "mipstartvalue". mipstartalg Which LP algorithm to use in solving the initial MIP subproblem: 1 = primal simplex 2 = dual simplex (default) 3 = netopt 4 = barrier with crossover The next two are not available in CPLEX versions >= 8; specify mipcrossover instead. 5 = dual simplex to iteration limit, then barrier 6 = barrier without crossover. mipstartstatus Whether to use incoming variable and constraint statuses if the problem has integer variables: 0 = no 1 = yes (default). mipstartvalue Whether to use initial guesses in problems with integer variables: 0 = no 1 = yes (default) 2 = yes, using the deprecated CPXcopymipstart function (as formerly done), rather than the now preferred CPXaddmipstarts (starting with driver version 20110607); this is for debugging and is to be withdrawn. mipsubalg Synonym for "mipalg". mipthreads Maximum threads for the MIP algorithm (1 unless you have a CPLEX license for multiple threads). Withdrawn from CPLEX 11. miqcpstrat Strategy for solving quadratically-constrained MIPs (MIQCP problems): 0 = automatic choice (default) 1 = solve a quadratically-constrained node relaxation (QCP) at each node 2 = solve an LP node relaxation at each node New in CPLEX 11. mircuts Whether to generate MIP rounding cuts: -1 = no 0 = automatic choice (default) 1 = moderate generation 2 = aggressive generation. nameround Whether to mangle variable and constraint names by turning [ and ] into ( and ), respectively: 0 = no (default) 1 = yes. This only matters if you specify endbasis=... or startbasis=... or perhaps writeprob=something.lp and have instructed AMPL to write .row and .col files. (It is usually better to let AMPL's status facilities convey basis information.) An alternative under Unix is to use the "tr" command to make the above changes if they are needed. netdisplay Which objective value to show when using the network simplex algorithm with display > 0 or netopt=3: 0 = none 1 = true objective 2 = penalized objective (default). netfeasibility Feasibility tolerance for the network simplex algorithm. Default = 1e-6; possible values are between 1e-11 and 1e-1. netfind Algorithm for finding embedded networks: 1 = extract only the natural network (default) 2 = use reflection scaling 3 = use general scaling. netfinder Synonym for "netfind". netiterations Limit on network simplex iterations. Default = large (e.g., 2100000000). netopt 0 means never invoke the network optimizer. 1 (default) means invoke the network optimizer only if the model had node and arc declarations. 2 means always invoke the network optimizer (unless there are integer variables); the network optimizer may be able to find and exploit an embedded network. 3 is similar to 2, but sets CPLEX's LPMethod to CPX_ALG_NET rather than explicitly invoking the network optimizer. This might make a difference if CPLEX's presolve makes relevant reductions. netoptimality Tolerance for optimality of reduced costs in the network simplex algorithm. Default 1e-6; must be between 1e-11 and 1e-1. netpricing How to price in the network simplex algorithm: 0 = automatic choice (default) 1 = partial pricing 2 = multiple partial pricing 3 = multiple partial pricing with sorting. node Synonym for "nodes". nodefile Whether to save node information in a temporary file: 0 = no 1 (default) = compressed node file in memory 2 = node file on disk 3 = compressed node file on disk. nodefiledir Synonym for workfiledir. Prior to CPLEX 7.1, this directory is just for node information files. nodefilelim Maximum size for the node file. Default 1e75. Removed from CPLEX 7.1. See workfilelim. nodefilesize Synonym for "nodefilelim". nodelim Synonym for "nodes". nodes Stop branch-and-bound for integer variables after "nodes" LP relaxations. Default = 2100000000. New in CPLEX 11: nodes = 0 ==> complete processing at the root (create cuts, apply heuristics at root); 1 ==> allow branching from root: create but do not solve nodes. nodesel Strategy for choosing next node while optimizing integer variables: 0 = depth-first search; 1 = breadth-first search (default); 2 = best-estimate search; 3 = alternate best-estimate search. nodeselect Synonym for "nodesel". numericalemphasis New in CPLEX 10.0. Whether to try to improve numerical accuracy (at a possible cost of time or memory): 0 = no (default) 1 = yes. objdifference Amount added to (for maximizing) or subtracted from (for minimizing) the best (so far) feasible objective value while optimizing integer variables. Subsequent nodes will be ignored if their LP relaxations have optimal values worse than this sum. Default = 0. Positive values may speed the search -- and may cause the optimal solution to be missed. objno 1 (default) = first objective, 2 = second, etc.; 0 ==> no objective: just find a feasible point. objrep Whether to replace minimize obj: v; with minimize obj: f(x) when variable v appears linearly in exactly one constraint of the form s.t. c: v >= f(x); or s.t. c: v == f(x); Possible objrep values: 0 = no 1 = yes for v >= f(x) 2 = yes for v == f(x) (default) 3 = yes in both cases For maximization problems, ">= f(x)" is changed to ">times&to solve a problem whose solution will take a while; after cplexfinishes, ampl foo.model foo.data - solution foo.sol; display ... /* things involving the computed solution */;(Here, - denotes standard input, and ampl reads the "solution..."and "display..." lines.)When invoked with no arguments, cplex either operates as describedin the CPLEX manual (when compiled with -DStand_alone on systemswhere the CPLEX callable library provides cpxmain()), or complainsabout not having a stub.-------------------In addition to the keyword phrases described above, cplex recognizessome directives (name-value pairs, separated by white space and/or an= sign, appearing either in $cplex_options or on the command line) forsettings not described in the official CPLEX documentation. These"undocumented" directives all begin with underscore. You are unlikelyever to need to use them, as the default settings suffice in mostcases. They are provided for the rare cases where CPLEX technicalsupport may recommend their use. The directive names appear at thebeginning of the output you will get by invoking cplex "-="(or 'cplexamp "-="' if you follow the IBM ILOG naming practice).Starting with updates for CPLEX 12.6.1, the "cplex -=" output includesvariants of the above keyword descriptions just for the currentlyavailable keywords.*************************If you have questions about or find bugs with this stuff,please contact: David M. Gay [email protected]