KNITRO Options#

ampl: option solver knitro; # change the solver
ampl: option knitro_options 'option1=value1 option2=value2'; # specify options
ampl: solve; # solve the problem

Solver options obtained with $ knitro -=.

act_lpalg                            LP algorithm for subproblems in active-set/SQP algorithms.
                                    0 (default): Use the default algorithm for the chosen LP solver.
                                    1 (primal): Use a primal simplex algorithm.
                                    2 (dual): Use a dual simplex algorithm.
                                    3 (barrier): Use a barrier/interior-point algorithm.
act_lpdumpmps                        Dump LP subproblems to MPS files in active-set algorithm.
                                    0 (no): Dump is disabled
                                    1 (yes): Dump is enabled
act_lpfeastol                        Feasibility tolerance for LP subproblems in Active or SQP algorithms.
act_lppenalty                        Constraint penalization for LP subproblems.
                                    1 (all): Penalize all constraints.
                                    2 (nonlinear): Penalize only nonlinear constraints.
                                    3 (dynamic): Dynamically choose which constraints to penalize.
act_lppresolve                       Controls LP presolve for subproblems in active-set/SQP algorithms.
                                    0 (off): Presolve turned off for LP subproblems.
                                    1 (on): Presolve turned on for LP subproblems.
act_lpsolver                         Which LP solver to use in the Active or SQP algorithm.
                                    1 (internal): Use internal LP solver
                                    2 (cplex): CPLEX (if user has a valid license)
                                    3 (xpress): XPRESS (if user has a valid license)
act_parametric                       Use parametric approach in active-set algorithm.
                                    0 (no): Never
                                    1 (maybe): Use selectively
                                    2 (yes): Always use parametric approach
act_qpalg                            Which algorithm to use for QP subproblem solves in Active or SQP algorithms.
                                    0 (auto): Let Knitro choose the algorithm
                                    1 (direct): Use Interior (barrier) Direct algorithm
                                    2 (cg): Use Interior (barrier) CG algorithm
                                    3 (active): Use Active Set SLQP algorithm
act_qppenalty                        Constraint penalization for QP subproblems.
                                    -1 (auto): Let Knitro automatically decide.
                                    0 (none): Do not penalize constraints in QP subproblems.
                                    1 (all): Penalize all constraints in QP subproblems.
alg                                  Deprecated (use 'algorithm' option)
algorithm                            Which algorithm to use.
                                    0 (auto): Let Knitro choose the algorithm
                                    1 (direct): Use Interior (barrier) Direct algorithm
                                    2 (cg): Use Interior (barrier) CG algorithm
                                    3 (active): Use Active Set SLQP algorithm
                                    4 (sqp): Use Active Set SQP algorithm
                                    5 (multi): Run multiple algorithms (perhaps in parallel)
bar_conic_enable                     Enable specialized algorithm for conic constraints.
                                    -1 (auto): Let Knitro automatically choose the strategy.
                                    0 (none): Do not apply any special treatment for conic constraints.
                                    1 (soc): Apply special treatments for any Second Order Cone (SOC) constraints identified in the model.
bar_directinterval                   When using the Interior/Direct algorithm, this parameter controls the maximum number of consecutive CG steps before trying to force the algorithm to take a direct step again. (negative implies auto; only used for alg=1).
bar_feasible                         Whether feasibility is given special emphasis.
                                    0 (no): No emphasis on feasibility
                                    1 (stay): Iterates must honor inequalities
                                    2 (get): Emphasize first getting feasible before optimizing
                                    3 (get_stay): Implement both options 1 and 2 above
bar_feasmodetol                      Specifies the tolerance for entering the stay feasible mode (only valid when bar_feasible = stay or bar_feasible = get_stay).
bar_globalize                        The globalization strategy used for the interior-point algorithm.
                                    0 (none): Do not apply any globalization strategy
                                    1 (kkt): Apply a globalization strategy based on decreasing the KKT error
                                    2 (filter): Apply a globalization strategy using a filter based on the objective and constraint violation
bar_initmu                           Initial value for the barrier parameter (non-positive implies auto).
bar_initpi_mpec                      Initial value for the barrier MPEC penalty parameter.
bar_initpt                           Strategy for setting initial x, lambda and slacks with barrier algorithms. This option only affects the initial x value when not provided by user.
                                    0 (auto): Let Knitro choose the strategy
                                    1 (convex): Initial point strategy 1 (mainly for convex problems)
                                    2 (nearbnd): Initial point strategy staying closer to bounds
                                    3 (central): More central initial point strategy
bar_initshiftol                      Deprecated (use 'bar_initshifttol' option)
bar_initshifttol                     Tolerance for enabling shifting of the initial point.
bar_linsys                           Linear system form for barrier algorithms.
                                    -1 (auto): Automatically determine
                                    0 (full): Full augmented system
                                    1 (slacks): Eliminate slacks
                                    2 (bounds): Also eliminate bounds
                                    3 (ineqs): Also eliminate inequalities
bar_linsys_storage                   Linear system storage for barrier algorithms.
                                    -1 (auto): Automatically determine
                                    1 (lowmem): Use one storage location for multiple systems
                                    2 (normal): Store systems separately
bar_maxcorrectors                    Maximum number of correctors allowed when computing primal-dual barrier step (negative implies auto).
bar_maxcrossit                       Maximum number of crossover iterations to allow for barrier algorithms.
bar_maxmu                            Maximum allowed barrier parameter value for the interior-point algorithm.
bar_maxrefactor                      Maximum number of refactorizations of the KKT system per iteration of the Interior Direct algorithm before reverting to a CG step. (negative implies auto; only used for alg=1).
bar_mpec_heuristic                   Barrier heuristic for MPEC models.
                                    0 (no): No mpec heuristic enabled
                                    1 (yes): Mpec heuristic is enabled
bar_murule                           Which barrier parameter update strategy.
                                    0 (auto): Let Knitro choose the strategy
                                    1 (monotone): Monotonically decrease the barrier parameter. Available for both barrier algorithms.
                                    2 (adaptive): Use an adaptive rule based on the complementarity gap to determine the value of the barrier parameter. Available for both barrier algorithms.
                                    3 (probing): Use a probing (affine-scaling) step to dynamically determine the barrier parameter. Available only for the Interior/Direct algorithm.
                                    4 (dampmpc): Use a Mehrotra predictor-corrector type rule to determine the barrier parameter, with safeguards on the corrector step. Available only for the Interior/Direct algorithm.
                                    5 (fullmpc): Use a Mehrotra predictor-corrector type rule to determine the barrier parameter, without safeguards on the corrector step. Available only for the Interior/Direct algorithm.
                                    6 (quality): Minimize a quality function at each iteration to determine the barrier parameter. Available only for the Interior/Direct algorithm.
bar_penaltycons                      Whether or not to penalize constraints in the barrier algorithms.
                                    -1 (auto): Let Knitro choose the strategy
                                    0 (none): Do not apply penalty approach to any constraints
                                    2 (all): Apply a penalty approach to all general constraints
                                    3 (equalities): Apply a penalty approach to equality constraints only
bar_penaltyrule                      Which penalty parameter update strategy for barrier algorithms.
                                    0 (auto): Let Knitro choose the strategy
                                    1 (single): Use single penalty parameter approach
                                    2 (flex): Use more tolerant flexible strategy
bar_refinement                       Whether to try to refine the barrier solution for better precision.
                                    0 (no): Do not refine the barrier solution
                                    1 (yes): Try to refine the barrier solution
bar_relaxcons                        Whether to relax the general constraints for barrier algorithms.
                                    0 (none): Do not relax any constraints
                                    1 (eqs): Relax only equality constraints
                                    2 (ineqs): Relax only inequality constraints
                                    3 (all): Relax all general constraints
bar_slackboundpush                   Amount by which barrier slacks are initially pushed interior (non-positive implies auto).
bar_switchobj                        Objective form when switching to feasibility phase.
                                    0 (none): No objective
                                    1 (scalarprox): Proximal point objective with scalar weighting
                                    2 (diagprox): Proximal point objective with diagonal weighting
bar_switchrule                       Switching rule strategy for barrier algorithms that controls switching between optimality and feasibility phases.
                                    -1 (auto): Let Knitro choose the strategy
                                    0 (never): Never switch
                                    2 (moderate): Allow moderate switching
                                    3 (aggressive): More aggressive switching
bar_watchdog                         Whether to activate watchdog heuristic for barrier algorithms.
                                    0 (no): No watchdog heuristic
                                    1 (yes): Allow watchdog heuristic to be used
bfgs_scaling                         Initial scaling used for BFGS/L-BFGS Hessian.
                                    0 (dynamic): Dynamically determine
                                    1 (invhess): Approximate scale of the inverse Hessian
                                    2 (hess): Approximate the scale of the Hessian
blas_numthreads                      Number of threads to use in parallel BLAS. choose any positive integer, or 0 = determine automatically based on numthreads
blasoption                           Which BLAS/LAPACK library to use.  Intel MKL library is only available on some platforms; see the User Manual for details.
                                    -1 (auto): Automatically determine based on platform
                                    0 (knitro): Use Knitro version of netlib functions
                                    1 (intel): Use Intel MKL functions
                                    2 (dynamic): Use dynamic library of functions
                                    3 (blis): Use BLIS functions
                                    4 (apple): Use Apple Accelerate functions
blasoptionlib                        Name of the dynamic BLAS/LAPACK function library if using blasoption=2.
bndrange                             Valid range for constraint or variable bounds.
cg_maxit                             Maximum allowable CG iterations per trial step (-1: auto; 0: max limit based on problem size).
cg_pmem                              Amount of memory used by incomplete Choleski preconditioner.
cg_precond                           Whether or not to use incomplete Choleski preconditioner.
                                    0 (no): Not applied
                                    1 (chol): Preconditioner is applied
cg_stoptol                           Stopping tolerance for CG subproblems.
concurrent_evals                     Whether to allow simultaneous evaluations in parallel.
                                    0 (no): Only one thread can perform an evaluation at a time
                                    1 (yes): Allow multi-threaded simultaneous evaluations
conic_numthreads                     Number of threads to do conic operations in parallel. choose any positive integer, or 0 = determine automatically based on numthreads
convex                               Declare the problem as convex.
                                    -1 (auto): Knitro will try to determine this automatically, but may only be able to do so for simple model forms such as QPs or QCQPs.
                                    0 (no): Declare problem as non-convex
                                    1 (yes): Declare problem as convex
cplexlibname                         Name of the CPLEX library if using act_lpsolver=cplex
cpuplatform                          target CPU platform/architecture.
                                    -1 (auto): Determine automatically
                                    1 (compatible): Aim for more compatible performance across architectures
                                    2 (sse2): SSE2
                                    3 (avx): AVX
                                    4 (avx2): AVX-2
                                    5 (avx512): AVX-512 (experimental)
datacheck                            Whether to perform extra data checks on the model.
                                    0 (no): No extra data checks
                                    1 (yes): Perform extra data checks
debug                                Specifies debugging level of output.  Debugging output is intended for Artelys developers.  Debugging mode may impact performance and is NOT recommended for production operation.
                                    0 (none): No extra debugging
                                    1 (problem): Help debug solution of the problem
                                    2 (execution): Help debug execution of the solver
debugoptionsname                     Internal parameter
delta                                Initial trust region radius scaling factor, used to determine the initial trust region size.
derivcheck                           Whether to perform a derivative check on the model.
                                    0 (none): No derivative check
                                    1 (first): Check first derivatives
                                    2 (second): Check second derivatives
                                    3 (all): Check all derivatives
derivcheck_terminate                 Termination for derivative check.
                                    1 (error): Stop when there is an error detected
                                    2 (always): Always stop after the derivative check
derivcheck_tol                       Specifies the relative tolerance used for the derivative check.
derivcheck_type                      Type of derivative check.
                                    1 (forward): Check using forward finite-differences
                                    2 (central): Check using central finite-differences
eval_cost                            Specifies the relative cost of performing callback evaluations.
                                    0 (unspecified): Evaluation cost is not specified
                                    1 (inexpensive): Evaluation cost is relatively inexpensive
                                    2 (expensive): Evaluation cost is relatively expensive
eval_fcga                            Enable evaluating gradients with functions in one callback.
                                    0 (no): Gradients are not evaluated in the function evaluation callback
                                    1 (yes): Gradients are evaluated in the function evaluation callback
feasible                             Deprecated (use 'bar_feasible' option)
feasmodetol                          Deprecated (use 'bar_feasmodetol' option)
feastol                              Specifies the final relative stopping tolerance for the feasibility error. Smaller values of feastol result in a higher degree of accuracy in the solution with respect to feasibility.
feastol_abs                          Specifies the final absolute stopping tolerance for the feasibility error. Smaller values of feastol_abs result in a higher degree of accuracy in the solution with respect to feasibility. Default value is  1e-3 for NLP, 1e-6 for MINLP.
feastolabs                           Deprecated (use 'feastol_abs' option)
findiff_estnoise                     Noise estimation when using finite-difference gradients.
                                    0 (no): No estimation of noise performed
                                    1 (yes): Estimate the noise and perhaps use it to determine a finite-difference steplength
                                    2 (withcurv): Estimate a curvature factor as well as the noise and perhaps use it to determine a finite-difference steplength
findiff_numthreads                   Number of threads to use in finite-differencing. choose any positive integer, or 0 = determine automatically based on numthreads
findiff_relstepsize                  Relative stepsize for finite-difference gradients.
findiff_terminate                    Termination method when using finite-difference gradients.
                                    0 (none): No special termination
                                    1 (errest): Terminate on gradient error estimates
fstopval                             Value used for objective function value based termination.
ftol                                 Tolerance for stopping on small changes to the objective.
ftol_iters                           Consecutive iterations for stopping on small changes to the objective.
gradopt                              How to compute/approximate the gradient of the objective and constraint functions.
                                    1 (exact): User supplies exact first derivatives
                                    2 (forward): Gradients computed by internal forward finite differences
                                    3 (central): Gradients computed by internal central finite differences
                                    4 (user_forward): Gradients computed by user-provided forward finite differences
                                    5 (user_central): Gradients computed by user-provided central finite differences
hesevalthreads                       Number of threads for hessian evaluations
hessetupthreads                      Number of threads for hessian setup
hessian_no_f                         Whether to allow computing the Hessian of the Lagrangian without objective component.
                                    0 (forbid): Not allowed
                                    1 (allow): User can provide this version of the Hessian if requested
hessopt                              How to compute/approximate the Hessian of the Lagrangian.
                                    0 (auto): Determined automatically by Knitro
                                    1 (exact): User supplies exact second derivatives
                                    2 (bfgs): Knitro computes a dense quasi-Newton BFGS Hessian
                                    3 (sr1): Knitro computes a dense quasi-Newton SR1 Hessian
                                    4 (product_findiff): Knitro computes Hessian-vector products by finite differences
                                    5 (product): User supplies exact Hessian-vector products
                                    6 (lbfgs): Knitro computes a limited-memory quasi-Newton BFGS Hessian
hesthreads                           Number of threads for hessian setup and evaluations
honorbnds                            Whether to enforce satisfaction of simple bounds at all iterations.
                                    -1 (auto): Setting determined automatically by Knitro
                                    0 (no): Allow iterations to violate the bounds
                                    1 (always): Enforce bounds satisfaction of all iterates
                                    2 (initpt): Enforce bounds satisfaction of initial point
infeastol                            Specifies relative stopping tolerance used to declare infeasibility.
infeastol_iters                      Consecutive iterations for stopping on small changes to the feasibility error.
initpenalty                          Initial value for the merit function penalty parameter.
initpt_strategy                      Specifies the initial point strategy used for the continuous algorithms.
                                    -1 (auto): Automatic initial point strategy
                                    1 (basic): Try basic initial point strategy
                                    2 (advanced): Try more advanced initial point strategy
initptfile                           Name for the file from which to read the initial point (default 'NULL', no initial point read from file).
leastsquares                         Solve as a least-squares model
linesearch                           Which linesearch method to use.
                                    0 (auto): Let Knitro choose the linesearch method
                                    1 (backtrack): Backtracking linesearch
                                    2 (interpolate): Interpolation based linesearch
                                    3 (weakwolfe): Weak Wolfe linesearch
linesearch_maxtrials                 Maximum allowable number of trial values during the linesearch of the Interior Direct or SQP algorithm.
linsolver                            Which linear system solver to use.
                                    0 (auto): Let Knitro choose the solver
                                    1 (internal): Use internal solver provided with Knitro
                                    2 (hybrid): Use a mixture of linear solvers depending on the linear systems
                                    3 (qr): Use dense QR solver always (only for small problems)
                                    4 (ma27): Use sparse HSL solver ma27 always
                                    5 (ma57): Use sparse HSL solver ma57 always
                                    6 (mklpardiso): Use sparse Intel MKL Pardiso solver always
                                    7 (ma97): Use parallel, deterministic HSL ma97 solver
                                    8 (ma86): Use parallel, non-deterministic HSL ma86 solver
linsolver_inexact                    Internal parameter
linsolver_inexacttol                 Internal parameter
linsolver_maxitref                   Maximum number of iterative refinement steps for the linear solver.
linsolver_nodeamalg                  Controls node amalgamation for MA57, MA86 and MA97 linear solvers.
linsolver_numthreads                 Number of threads to use in parallel linear solver. choose any positive integer, or 0 = determine automatically based on numthreads
linsolver_ooc                        Whether to use out-of-core version of linsolver=mklpardiso.
                                    0 (no): Always use in-core version
                                    1 (maybe): Will use out-of-core version beyond a certain size
                                    2 (yes): Always use out-of-core version
linsolver_ordering                   Controls ordering method for linear solvers.
                                    -1 (auto): Automatically determine ordering procedure
                                    0 (best): Choose the best between AMD and METIS
                                    1 (amd): Use AMD ordering (min degree for MKL PARDISO)
                                    2 (metis): Use METIS ordering
linsolver_pivottol                   Specifies the initial pivot threshold used in the factorization routine. The value must be in the range [0 0.5] with higher values resulting in more pivoting (more stable factorization). Values less than 0 will be set to 0 and values larger than 0.5 will be set to 0.5. If pivot is non-positive initially no pivoting will be performed. Smaller values may improve the speed of the code but higher values are recommended for more stability.
linsolver_scaling                    Controls scaling method for linear solvers.
                                    0 (none): No scaling is applied in the linear system solves
                                    1 (always): Always apply scaling in the linear system solves
                                    2 (dynamic): Dynamically apply scaling in the linear system solves
lmsize                               Number of limited memory pairs to store when Hessian choice is lbfgs.
lpsolver                             Solver used with 'act_lpalg'.  Should be 'internal',
                                     'cplex', or 'xpress'.  Default = 'internal'; cplex or
                                     xpress must be suitably licensed.  For lpsolver=...
                                     to be useful, alg=2, 3, or 4 may also be needed.
                                     Implicitly sets omitted keywords act_lpsolver and,
                                     if appropriate, cplexlibname ot xpresslibname.
ma_maxtime_cpu                       Deprecated (use 'maxtime' option)
ma_maxtime_real                      Maximum allowable real time in seconds for the complete multi algorithm solution when 'alg=multi'.  Use maxtime_real to additionally limit time spent per each algorithm.
ma_outsub                            Specifies multi algorithm subproblem solve output control. Output is directed to a file 'knitro_ma_*.log'.
                                    0 (none): No output from subproblem solves
                                    1 (yes): Subproblem output enabled, controlled by option 'outlev'
ma_sub_maxtime                       Maximum allowable real time in seconds for individual multi-algorithm subproblems. Use maxtime to set a global time limit for the multi-algorithm solver.
ma_terminate                         Specifies conditions for terminating when 'algorithm=multi'.
                                    0 (all): Terminate after all algorithms complete
                                    1 (optimal): Terminate at first local optimum
                                    2 (feasible): Terminate at first feasible solution estimate
                                    3 (any): Terminate at first completed solve
maxcgit                              Deprecated (use 'cg_maxit' option)
maxcrossit                           Deprecated (use 'bar_maxcrossit' option)
maxfevals                            Maximum number of function evaluations to allow (a negative number implies no limit is imposed).
maxit                                Maximum number of iterations to allow (if 0 then Knitro determines the best value). Default values are 10000 for NLP and 3000 for MIP.
maxtime                              Maximum allowable real time in seconds for an optimization solve. This is a global time limit parameter that applies to single solves as well as multi-start, multi-algorithm, tuner or MIP solves.
maxtime_cpu                          Deprecated (use 'maxtime' option)
maxtime_real                         Maximum allowable real time in seconds for one algorithm solve. If multistart, multi algorithm or MIP is active, this limits time spent on just one subproblem solve (deprecated - use maxtime and *_sub_maxtime).
mip_branchrule                       Specifies the MIP branching rule for choosing a variable.
                                    0 (auto): Let Knitro choose the rule
                                    1 (most_frac): Most fractional (most infeasible) variable
                                    2 (pseudocost): Use pseudo-cost value
                                    3 (strong): Use strong branching
mip_clique                           Specifies rules for adding MIP Clique cuts.
                                    -1 (auto): Determine automatically
                                    0 (none): Do not add clique cuts
                                    1 (root): Add clique cuts at root node
                                    2 (tree): Add clique cuts in the whole tree
mip_cut_flowcover                    Specifies rules for adding MIP flow cover cuts.
                                    -1 (auto): Determine automatically
                                    0 (none): Do not add flow cover cuts
                                    1 (root): Add flow cover cuts at root node only
                                    2 (tree): Add flow cover cuts at any tree node
mip_cut_probing                      Specifies rules for adding MIP probing cuts.
                                    -1 (auto): Determine automatically
                                    0 (none): Do not add probing cuts
                                    1 (root): Add probing cuts at root node only
                                    2 (tree): Add probing cuts at any tree node
mip_cut_strategy                     Internal parameter
mip_cutfactor                        Limit on the number of cuts added to node NLP; if nonnegative, a maximum of mip_cutfactor times number of constraints cuts is possibly appended.
mip_cutoff                           MIP objective cutoff value.
mip_cutting_plane                    Specifies where to perform the cutting plane routine.
                                    0 (none): Do not perform cutting plane
                                    1 (root): Only perform root-cutting
mip_cutting_plane_reltol             Internal parameter
mip_debug                            Specifies debugging level for MIP solution.
                                    0 (none): No MIP debugging info
                                    1 (all): Write debugging to the file kdbg_mip.log
mip_gomory                           Specifies rules for adding MIP Gomory cuts.
                                    -1 (auto): Determine automatically
                                    0 (none): Do not add gomory cuts
                                    1 (root): Add gomory cuts at root node only
                                    2 (tree): Add gomory cuts at any tree node
mip_gub_branch                       Whether to branch on generalized upper bounds (GUBs).
                                    0 (no): Do not branch on GUBs
                                    1 (yes): Branch on GUBs
mip_heuristic_diving                 Controls use of the diving MIP heuristic.
mip_heuristic_feaspump               Whether to use the feasibility pump MIP heuristic.
                                    -1 (auto): Determine automatically
                                    0 (off): Feasibility pump heuristic is turned off
                                    1 (on): Feasibility pump heuristic is turned on
mip_heuristic_lns                    Controls use of the Large Neighborhood Search (LNS) MIP heuristic.
mip_heuristic_localsearch            Whether to use the MIP local search heuristic.
                                    -1 (auto): Determine automatically
                                    0 (off): MIP local search heuristic is turned off
                                    1 (on): MIP local search heuristic is turned on
mip_heuristic_maxit                  Maximum number of iterations to allow for MIP heuristic.
mip_heuristic_misqp                  Whether to use the MISQP MIP heuristic.
                                    -1 (auto): Determine automatically
                                    0 (off): MISQP heuristic is turned off
                                    1 (on): MISQP heuristic is turned on
mip_heuristic_mpec                   Whether to use the MPEC MIP heuristic.
                                    -1 (auto): Determine automatically
                                    0 (off): MPEC heuristic is turned off
                                    1 (on): MPEC heuristic is turned on
mip_heuristic_strategy               Specifies the strategy used for the MIP heuristics.
                                    -1 (auto): Automatic strategy
                                    0 (none): No heuristics are used
                                    1 (basic): Try basic heuristics
                                    2 (advanced): Try more advanced heuristics
                                    3 (extensive): Try most extensive heuristics
mip_heuristic_terminate              Specifies conditions for terminating the MIP heuristic.
                                    1 (feasible): Terminate at first feasible point
                                    2 (limit): Run heuristic until it hits limit
mip_implications                     Whether to add logical implications deduced from branching decisions at a MIP node.
                                    0 (no): Do not add logical implications
                                    1 (yes): Add logical implications
mip_initptfile                       Name for the file from which to read the MIP initial point (default 'NULL', no MIP initial point read from file).
mip_integer_tol                      Threshold for deciding if a variable value is integral.
mip_integral_gap_abs                 Deprecated (use 'mip_opt_gap_abs' option)
mip_integral_gap_rel                 Deprecated (use 'mip_opt_gap_rel' option)
mip_intvar_strategy                  How to handle integer variables by default.
                                    0 (none): No special treatment
                                    1 (relax): Relax integer variables
                                    2 (mpec): Convert to mpec constraints
mip_knapsack                         Specifies rules for adding MIP knapsack cuts.
                                    -1 (auto): Determine automatically
                                    0 (none): Do not add knapsack cuts
                                    1 (root): Add knapsack cuts derived in the root node
                                    2 (tree): Add knapsack cuts in the whole tree
mip_liftproject                      Specifies rules for adding MIP Lift and Project cuts.
                                    -1 (auto): Determine automatically
                                    0 (none): Do not add lift and project cuts
                                    1 (root): Add lift and project cuts at root node
mip_lpalg                            Specifies which algorithm to use for LP subproblem solves in MIP.
                                    0 (auto): Let Knitro choose the algorithm
                                    1 (direct): Use Interior (barrier) Direct algorithm
                                    2 (cg): Use Interior (barrier) CG algorithm
                                    3 (active): Use Active Set (simplex) algorithm
mip_maxnodes                         Maximum number of nodes explored (0 means no limit).
mip_maxsepcons                       Internal parameter
mip_maxsolves                        Maximum number of subproblem solves allowed (0 means no limit).
mip_maxtime_cpu                      Deprecated (use 'maxtime' option)
mip_maxtime_real                     Maximum allowable real time in seconds for the complete MIP solution. Use maxtime_real to additionally limit time spent per subproblem solve.
mip_method                           Which MIP method to use.
                                    0 (auto): Let Knitro choose the method
                                    1 (BB): Standard branch and bound
                                    2 (HQG): Hybrid Quesada-Grossman
                                    3 (MISQP): Mixed-integer SQP
mip_mir                              Specifies rules for adding MIP Mixed Integer Rounding cuts.
                                    -1 (auto): Automatically determine whether to add mir cuts
                                    0 (none): Do not add mir cuts
                                    1 (root): Add mir cuts derived in the root node
                                    2 (tree): Add mir cuts in the whole tree
mip_multistart                       Enables the MIP multistart procedure.
                                    0 (off): MIP multistart turned off
                                    1 (on): MIP multistart turned on
mip_nodealg                          Specifies which algorithm to use for standard node subproblem solves in MIP
                                    0 (auto): Let Knitro choose the algorithm
                                    1 (direct): Use Interior (barrier) Direct algorithm
                                    2 (cg): Use Interior (barrier) CG algorithm
                                    3 (active): Use Active Set SLQP algorithm
                                    4 (sqp): Use Active Set SQP algorithm
                                    5 (multi): Run multiple algorithms (perhaps in parallel)
mip_numthreads                       Number of threads to use for MIP solvers. choose any positive integer, or 0 = determine automatically
mip_opt_gap_abs                      Specifies absolute stop tolerance for sufficiently small optimality gap.
mip_opt_gap_rel                      Specifies relative stop tolerance for sufficiently small optimality gap.
mip_outinterval                      Specifies printing interval for mip_outlevel. 1 = print every node 2 = print every 2nd node N = print every Nth node
mip_outlevel                         How much MIP information to print.
                                    0 (none): Nothing
                                    1 (iters): One line for every node
                                    2 (iterstime): Also print accumulated time every node
                                    3 (root): Also print output from root node relaxation solve
mip_outsub                           Specifies MIP subproblem solve output control.
                                    0 (none): Do not print any debug output from subproblem solves.
                                    1 (yes): Subproblem debug output enabled, controlled by option `outlev`.
                                    2 (yesprob): Subproblem debug output enabled and print problem characteristics.
mip_pseudoinit                       How to initialize pseudo-costs.
                                    0 (auto): Let Knitro choose the method
                                    1 (ave): Use average value
                                    2 (strong): Use strong branching
mip_relaxable                        Whether integer variables are relaxable.
                                    0 (none): Integer variables not relaxable
                                    1 (all): All integer variables are relaxable
mip_restart                          Enables the MIP restart procedure.
                                    0 (off): MIP restart turned off
                                    1 (on): MIP restart turned on
mip_rootalg                          Specifies which algorithm to use for the root node solve in MIP
                                    0 (auto): Let Knitro choose the algorithm
                                    1 (direct): Use Interior (barrier) Direct algorithm
                                    2 (cg): Use Interior (barrier) CG algorithm
                                    3 (active): Use Active Set SLQP algorithm
                                    4 (sqp): Use Active Set SQP algorithm
                                    5 (multi): Run multiple algorithms (perhaps in parallel)
mip_rounding                         Specifies the MIP rounding rule to apply.
                                    -1 (auto): Let Knitro choose the rule
                                    0 (none): Do not round if a node is infeasible
                                    2 (heur_only): Round using heuristic only (fast)
                                    3 (nlp_sometimes): Round and solve NLP if likely to succeed
                                    4 (nlp_always): Always round and solve NLP
mip_selectdir                        Specifies the MIP select direction for choosing a node.
                                    0 (down): Choose the lesser-than node first
                                    1 (up): Choose the greater-than node first
mip_selectrule                       Specifies the MIP select rule for choosing a node.
                                    0 (auto): Let Knitro choose the rule
                                    1 (depth_first): Search the tree depth first
                                    2 (best_bound): Node with the best relaxation bound
                                    3 (combo_1): Depth first unless pruned, then best bound
mip_skipfactor                       Internal parameter
mip_strong_candlim                   Maximum number of candidates to explore for MIP strong branching.
mip_strong_level                     Maximum number of levels on which to perform MIP strong branching.
mip_strong_maxit                     Maximum number of iterations to allow for MIP strong branching solves.
mip_sub_maxtime                      Maximum allowable real time in seconds for individual MIP subproblems. Use maxtime to set a global time limit for the MIP solver.
mip_terminate                        Specifies conditions for terminating the MIP algorithm.
                                    0 (optimal): Terminate at optimum
                                    1 (feasible): Terminate at first integer feasible point
mip_zerohalf                         Specifies rules for adding MIP zero-half cuts.
                                    -1 (auto): Determine automatically
                                    0 (none): Do not add zero-half cuts
                                    1 (root): Add cuts derived in the root node
                                    2 (tree): Add zero-half cuts in the whole tree
ms_deterministic                     Whether to use a deterministic version of multistart.
                                    0 (no): Multithreaded multistart is non-deterministic
                                    1 (yes): Multithreaded multistart is deterministic
ms_enable                            Whether to enable multistart to find a better local minimum.
                                    0 (no): Knitro solves from a single initial point
                                    1 (yes): Knitro solves using multiple start points
ms_initpt_cluster                    The strategy for clustering initial points in multistart.
                                    0 (none): Do not apply clustering
                                    1 (sl): Apply single linkage based clustering
ms_maxbndrange                       Specifies the maximum range that an unbounded variable can vary over when multistart computes new start points.
ms_maxsolves                         How many Knitro solutions to compute if multistart is enabled. choose any positive integer, or 0 = Knitro sets a default value depending on context
ms_maxtime_cpu                       Deprecated (use 'maxtime' option)
ms_maxtime_real                      Maximum allowable real time in seconds for the complete multistart solution.  Use maxtime_real to additionally limit time spent per start point.
ms_num_to_save                       How many feasible multistart points to save in file knitro_mspoints.log. choose any positive integer, or 0 = save none
ms_numthreads                        Number of threads to use in parallel multistart. choose any positive integer, or 0 = determine automatically based on numthreads
ms_outsub                            Specifies parallel multistart subproblem solve output control. Output is directed to a file 'knitro_ms_*.log'.
                                    0 (none): No output from subproblem solves
                                    1 (yes): Subproblem output enabled, controlled by option 'outlev'.
ms_savetol                           Specifies the tolerance for deciding two feasible points are the same.
ms_seed                              Specifies the seed for random initialization of the multistart procedure. Seed value should an integer >= 0.  Negative values will be reset to 0.
ms_startptrange                      Specifies the maximum range that any variable can vary over when multistart computes new start points.
ms_sub_maxtime                       Maximum allowable real time in seconds for individual multi-start subproblems. Use maxtime to set a global time limit for the multi-start solver.
ms_terminate                         Specifies conditions for terminating the multistart procedure.
                                    0 (maxsolves): Terminate after maxsolves
                                    1 (optimal): Terminate at first local optimum
                                    2 (feasible): Terminate at first feasible solution estimate
                                    3 (any): Terminate at first completed solve
                                    4 (rulebased): Terminate when the estimated probability of finding a new local solution is low
ms_terminaterule_tol                 The tolerance in (0,1] for the rule-based termination of multistart.
mu                                   Deprecated (use 'bar_initmu' option)
multistart                           Deprecated (use 'ms_enable' option)
ncvx_qcqp_init                       Initialization strategy for non-convex QCQPs.
                                    -1 (auto): Knitro will automatically determine the strategy.
                                    0 (none): No special initialization strategy is used.
                                    1 (linear): Initialize by solving a linear relaxation.
                                    2 (hybrid): Initialize by solving a hybrid formulation.
                                    3 (penalty): Initialize by solving a penalty formulation.
                                    4 (cvxquad): Initialize by solving a convex quadratic relaxation.
newpoint                             Specifies additional action to take after every iteration. Iterations result in a new solution estimate.
                                    0 (none): No additional action
                                    1 (saveone): Save the latest new point to file knitro_newpoint.log
                                    2 (saveall): Append the latest new point to file knitro_newpoint.log
numthreads                           Number of threads to use in parallel features. choose any positive integer, or -1 = let Knitro automatically choose the number of threads to use 0 = value determined by OMP_NUM_THREADS environment variable
objno                                objective number: 0 = none, 1 = first (default),
                                       2 = second (if _nobjs > 1), etc.
objrange                             Valid range of objective values.
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) (default)
                                     2 = yes for v == f(x)
                                     3 = yes in both cases
optionsfile                          Name/location of Knitro options file if provided
opttol                               Specifies the final relative stopping tolerance for the KKT (optimality) error. Smaller values of opttol result in a higher degree of accuracy in the solution with respect to optimality.
opttol_abs                           Specifies the final absolute stopping tolerance for the KKT (optimality) error. Smaller values of opttol_abs result in a higher degree of accuracy in the solution with respect to optimality.
opttolabs                            Deprecated (use 'opttol_abs' option)
out_csvinfo                          Whether to generate a csv solution file.
                                    0 (no): No csv solution file is generated
                                    1 (yes): Generate a solution file 'knitro_solve.csv'
out_csvname                          Name for the csv file generated by 'out_csvinfo' (default 'knitro_solve.csv').
out_hints                            Enable output printing of hints for setting parameters.
                                    0 (no): Do not print any hints.
                                    1 (yes): Print diagnostic hints on occasion.
out_jsoninfo                         Internal parameter
out_jsonname                         Internal parameter
outappend                            Specifies whether to append to output files.
                                    0 (no): Erase existing files when opening
                                    1 (yes): Append to existing files
outdir                               Directory for all output files.
outlev                               Specifies the verbosity of output.
                                    0 (none): Nothing
                                    1 (summary): Only final summary information
                                    2 (iter_10): Information every 10 iterations is printed
                                    3 (iter): Information at each iteration is printed
                                    4 (iter_verbose): More verbose information at each iteration is printed
                                    5 (iter_x): In addition, values of solution vector (x) are printed
                                    6 (all): In addition, constraints (c) and multipliers (lambda)
outmode                              Where to direct the output.
                                    0 (screen): Directed to stdout
                                    1 (file): Directed to a file (default name 'knitro.log')
                                    2 (both): Both stdout and file (default name 'knitro.log')
outname                              Name for the standard log file generated by Knitro (default 'knitro.log').
par_blasnumthreads                   Deprecated (use 'blas_numthreads' option)
par_concurrent_evals                 Deprecated (use 'concurrent_evals' option)
par_conicnumthreads                  Deprecated (use 'conic_numthreads' option)
par_lsnumthreads                     Deprecated (use 'linsolver_numthreads' option)
par_msnumthreads                     Deprecated (use 'ms_numthreads' option)
par_numthreads                       Deprecated (use 'numthreads' option)
pivot                                Deprecated (use 'linsolver_pivottol' option)
presolve                             Whether to apply any presolve operations to the model.
                                    0 (no): No presolve
                                    1 (yes): Knitro performs presolve
presolve_dbg                         Internal parameter
presolve_initpt                      Presolve handling of user-specified initial point.
                                    -1 (auto): Determine automatically
                                    0 (noshift): Do not shift initial point in presolve
                                    1 (linshift): Allow shifting variables in linear constraints
                                    2 (anyshift): Allow shifting any variable
presolve_level                       Presolve level.
                                    -1 (auto): Determine automatically
                                    1 (level1): Most basic presolve
                                    2 (level2): More advanced presolve
presolve_passes                      Maximum number of presolve passes allowed.
presolve_tol                         Specifies the tolerance used to determine whether or not deduced bounds from the presolve operation are infeasible.
presolveop_bigm                      Internal parameter
presolveop_redundant                 Detection/removal degree of redundant constraints
                                    0 (none): Do not detect redundant constraints
                                    1 (dupcon): Detect and remove duplicate constraints
                                    2 (depcon): Detect and remove linearly dependent constraints
presolveop_substitution              Substitution of variable involved in an equality constraint
                                    -1 (auto): Automatic substitution procedure
                                    0 (none): No substitution
                                    1 (simple): Only doubleton equality substitutions
                                    2 (all): All possible substitutions
presolveop_substitution_fillin       Internal parameter
presolveop_substitution_relfeasincr  Internal parameter
presolveop_substitution_tol          Tolerance for applying a substitution. This is a relative tolerance on coefficients involved with the substituted variable. Higher values mean that less reductions will be applied (potentially improving numerical focus). Zero value means all possible substitutions are applied.
presolveop_substitution_zero_tol     Internal parameter
presolveop_tighten                   Presolve tightening operations.
                                    -1 (auto): Automatic tightening procedure
                                    0 (none): No tightening
                                    1 (varbnd): Tighten variable bounds
                                    2 (coef): Tighten coefficients in linear constraints
                                    3 (all): Variable bounds and coefficients
presolveop_varbnd_abs_max_val        Internal parameter
presolveop_varbnd_drop_redundant     Internal parameter
presolveop_varbnd_rel_min_change     Internal parameter
qpcheck                              whether to check for a QP: deprecated
relax                                whether to ignore integrality: 0 (default) = no, 1 = yes
restarts                             Maximum number of internal restarts to allow.
restarts_maxit                       Maximum number of iterations before invoking restart heuristic.
scale                                Whether to perform scaling of the problem.
                                    0 (no): No scaling done
                                    1 (user_internal): User, if defined, otherwise internal
                                    2 (user_none): User, if defined, otherwise none
                                    3 (internal): Knitro performs internal scaling
scale_vars                           The strategy for scaling variables.
                                    0 (none): Do not apply any variable scaling
                                    1 (bnds): Apply variable scaling based on their bound values
simplex_maxit                        Internal parameter
soc                                  Whether to use the Second Order Correction (SOC) option.
                                    0 (no): Never do second order corrections
                                    1 (maybe): SOC steps attempted on some iterations
                                    2 (yes): SOC steps always attempted when constraints are nonlinear
soltype                              Specifies the solution returned by Knitro.
                                    0 (final): Return the final iterate
                                    1 (bestfeas): Return the best feasible iterate found
sph_opts                             Sparse Hessian options (bits)
storequadcoefs                       Store quadratic coefficients when solving QCQPs
strat_warm_start                     Enable a warm-start strategy.
                                    0 (no): No warm-start strategy is applied.
                                    1 (yes): Knitro will apply a warm-start strategy with special tunings.
threads                              Deprecated (use 'numthreads' option)
timing                               Whether to report problem I/O and solve times:
                                     0 (default) = no
                                     1 = yes, on stdout
                                     2 = yes, on stderr
                                     3 = yes, on both stdout and stderr
tuner                                Whether to use the Knitro Tuner.
                                    0 (off): Knitro Tuner turned off
                                    1 (on): Knitro Tuner enabled
tuner_maxtime_cpu                    Deprecated (use 'maxtime' option)
tuner_maxtime_real                   Maximum allowable real time in seconds for the complete Tuner procedure when 'tuner=on'.  Use maxtime_real to additionally limit time spent per each individual solve.
tuner_optionsfile                    Can be used to specify the location of a tuner options file
tuner_outsub                         Specifies Tuner subproblem solve output control. Output is directed to a file 'knitro_tuner_*.log'
                                    0 (none): No output from subproblem solves and no subproblem summary file
                                    1 (summary): Subproblem output summary directed to a file 'knitro_tuner_summary.log'
                                    2 (all): Subproblem output enabled, controlled by option 'outlev'.
tuner_sub_maxtime                    Maximum allowable real time in seconds for individual Tuner subproblems when 'tuner=on'.  Use maxtime to set a global time limit for the Tuner.
tuner_terminate                      Specifies conditions for terminating Tuner procedure.
                                    0 (all): Terminate after all Tuner runs complete
                                    1 (optimal): Terminate at first local optimum
                                    2 (feasible): Terminate at first feasible solution estimate
                                    3 (any): Terminate at first completed solve
version                              Report software version
wantsol                              Solution report without -AMPL: sum of
                                     1 ==> write .sol file
                                     2 ==> 1 ==> write .sol file
                                     4 ==> print dual variable values
                                     8 ==> do not print solution message
xpresslibname                        Name of the XPRESS library if using act_lpsolver=xpress
xtol                                 Step size tolerance used for terminating the optimization.
xtol_iters                           Consecutive iterations for stopping on small changes in the solution estimate.