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.
al_initpenalty               Initial value for the Augmented Lagrangian penalty parameter.
al_maxpenalty                Maximum value for the Augmented Lagrangian penalty parameter.
alg                          Deprecated (use 'nlp_algorithm' option)
algorithm                    Deprecated (use 'nlp_algorithm' option)
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
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. If a negative value is given, the default value will be 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
                                    9 (apple): Use parallel, non-deterministic Apple Sparse Solver solver
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.
lp_algorithm                 Which algorithm to use for linear programming (LP) problems.
                                    -1 (auto): Let Knitro automatically decide.
                                    0 (nlp): Use algorithm specified in nlp_algorithm.
                                    1 (primalsimplex): Use Primal Simplex algorithm.
                                    2 (dualsimplex): Use Dual Simplex algorithm.
                                    3 (barrier): Use Interior-Point/Barrier algorithm.
                                    4 (pdlp): Use Primal-Dual Linear Programming algorithm.
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_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_cutoff_abs               Mip absolute cutoff improvement value. When a new integer solution is found, this value will be substracted (resp. added) to the incumbent value to determine the new cutoff value for a minimization problem (resp. maximization problem). A higher value will prune additional nodes (saving time). A lower value will improve bound precision.
mip_cutoff_rel               Mip relative cutoff improvement value. When a new integer solution is found, this percentage will be used to determine the new cutoff value from the incumbent value. A higher value will prune additional nodes (saving time). A lower value will improve bound precision.
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_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_fixpropagate   Whether to use the MIP fix-and-propagate heuristics.
                                    -1 (auto): Determine automatically
                                    0 (off): MIP tree search (diving) heuristics are turned off
                                    1 (on): MIP tree search (diving) heuristics are 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_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
                                    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_node_lpalg               Specifies which LP algorithm to use for standard node subproblem solves in MIP
                                    -1 (auto): Let Knitro automatically decide.
                                    0 (nlp): Use algorithm specified in mip_node_nlpalg.
                                    1 (primalsimplex): Use Primal Simplex algorithm.
                                    2 (dualsimplex): Use Dual Simplex algorithm.
                                    3 (barrier): Use Interior-Point/Barrier algorithm.
                                    4 (pdlp): Use Primal-Dual Linear Programming algorithm.
mip_node_nlpalg              Specifies which NLP 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_nodealg                  Deprecated (use 'mip_node_nlpalg' option)
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_root_lpalg               Specifies which LP algorithm to use for the root node solve in MIP
                                    -1 (auto): Let Knitro automatically decide.
                                    0 (nlp): Use algorithm specified in mip_root_nlpalg.
                                    1 (primalsimplex): Use Primal Simplex algorithm.
                                    2 (dualsimplex): Use Dual Simplex algorithm.
                                    3 (barrier): Use Interior-Point/Barrier algorithm.
                                    4 (pdlp): Use Primal-Dual Linear Programming algorithm.
mip_root_nlpalg              Specifies which NLP 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_rootalg                  Deprecated (use 'mip_root_nlpalg' option)
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_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
nlp_algorithm                Which NLP 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)
                                    6 (al): Use Augmented Lagrangian algorithm
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.
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_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_clique_merging    Presolve operation that attempts to merge cliques to strengthen the formulation.
                                    -1 (auto): Determine automatically
                                    0 (no): Disabled
                                    1 (yes): Enabled
presolveop_probing           Presolve operation that analyzes deductions made by fixing integer variables.
                                    -1 (auto): Automatic selection
                                    0 (no): Disabled
                                    1 (light): Light probing
                                    2 (full): Full probing until no more deductions are found
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_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_tighten           Presolve variable bound tightening operations.
                                    -1 (auto): Automatic tightening procedure
                                    0 (none): No tightening
                                    1 (varbnd): Tighten variable bounds
                                    0 (none): Do not remove redundant bounds
                                    1 (final): Remove redundant bounds as final presolve step
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
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.