[List of options](@id option-definitions)
[presolve](@id option-presolve)
- Presolve: "off", "choose" or "on"
- Type: string
- Default: "choose"
[solver](@id option-solver)
- LP/QP solver: "choose", "simplex", "ipm", "ipx", "hipo", "pdlp", "qpasm" or "hipdlp",
- Type: string
- Default: "choose"
[parallel](@id option-parallel)
- Parallel: "off", "choose" or "on"
- Type: string
- Default: "choose"
[threads](@id option-threads)
- Maximum number of threads used by HiGHS (0: automatic)
- Type: integer
- Range: {0, 2147483647}
- Default: 0
[run_crossover](@id option-run-crossover)
- Run IPM crossover: "off", "choose" or "on"
- Type: string
- Default: "on"
[time_limit](@id option-time-limit)
- Time limit (seconds)
- Type: double
- Range: [0, inf]
- Default: inf
[ranging](@id option-ranging)
- Compute cost, bound, RHS and basic solution ranging: "off" or "on"
- Type: string
- Default: "off"
[infinite_cost](@id option-infinite-cost)
- Limit on |cost coefficient|: values greater than or equal to this will be treated as infinite
- Type: double
- Range: [1e+15, inf]
- Default: 1e+20
[infinite_bound](@id option-infinite-bound)
- Limit on |constraint bound|: values greater than or equal to this will be treated as infinite
- Type: double
- Range: [1e+15, inf]
- Default: 1e+20
[small_matrix_value](@id option-small-matrix-value)
- Lower limit on |matrix entries|: values less than or equal to this will be treated as zero
- Type: double
- Range: [1e-12, inf]
- Default: 1e-09
[large_matrix_value](@id option-large-matrix-value)
- Upper limit on |matrix entries|: values greater than or equal to this will be treated as infinite
- Type: double
- Range: [1, inf]
- Default: 1e+15
[kkt_tolerance](@id option-kkt-tolerance)
- If changed from its default value, this tolerance is used for all feasibility and optimality (KKT) measures
- Type: double
- Range: [1e-10, inf]
- Default: 1e-07
[primal_feasibility_tolerance](@id option-primal-feasibility-tolerance)
- Primal feasibility tolerance
- Type: double
- Range: [1e-10, inf]
- Default: 1e-07
[dual_feasibility_tolerance](@id option-dual-feasibility-tolerance)
- Dual feasibility tolerance
- Type: double
- Range: [1e-10, inf]
- Default: 1e-07
[primal_residual_tolerance](@id option-primal-residual-tolerance)
- Primal residual tolerance
- Type: double
- Range: [1e-10, inf]
- Default: 1e-07
[dual_residual_tolerance](@id option-dual-residual-tolerance)
- Dual residual tolerance
- Type: double
- Range: [1e-10, inf]
- Default: 1e-07
[optimality_tolerance](@id option-optimality-tolerance)
- Optimality tolerance
- Type: double
- Range: [1e-10, inf]
- Default: 1e-07
[objective_bound](@id option-objective-bound)
- Objective bound for termination of the dual simplex solver
- Type: double
- Range: [-inf, inf]
- Default: inf
[objective_target](@id option-objective-target)
- Objective target for termination of the MIP solver
- Type: double
- Range: [-inf, inf]
- Default: -inf
[random_seed](@id option-random-seed)
- Random seed used in HiGHS
- Type: integer
- Range: {0, 2147483647}
- Default: 0
[user_objective_scale](@id option-user-objective-scale)
- Exponent of power-of-two objective scaling for model
- Type: integer
- Range: {-2147483647, 2147483647}
- Default: 0
[user_bound_scale](@id option-user-bound-scale)
- Exponent of power-of-two bound scaling for model
- Type: integer
- Range: {-2147483647, 2147483647}
- Default: 0
[simplex_strategy](@id option-simplex-strategy)
- Strategy for simplex solver 0 => Choose; 1 => Dual (serial); 2 => Dual (SIP); 3 => Dual (PAMI); 4 => Primal
- Type: integer
- Range: {0, 4}
- Default: 1
[simplex_scale_strategy](@id option-simplex-scale-strategy)
- Simplex scaling strategy: off / choose / equilibration (default) / forced equilibration / max value (0/1/2/3/4)
- Type: integer
- Range: {0, 4}
- Default: 2
[simplex_dual_edge_weight_strategy](@id option-simplex-dual-edge-weight-strategy)
- Strategy for simplex dual edge weights: Choose / Dantzig / Devex / Steepest Edge (-1/0/1/2)
- Type: integer
- Range: {-1, 2}
- Default: -1
[simplex_primal_edge_weight_strategy](@id option-simplex-primal-edge-weight-strategy)
- Strategy for simplex primal edge weights: Choose / Dantzig / Devex / Steepest Edge (-1/0/1/2)
- Type: integer
- Range: {-1, 2}
- Default: -1
[simplex_iteration_limit](@id option-simplex-iteration-limit)
- Iteration limit for simplex solver when solving LPs, but not subproblems in the MIP solver
- Type: integer
- Range: {0, 2147483647}
- Default: 2147483647
[simplex_update_limit](@id option-simplex-update-limit)
- Limit on the number of simplex UPDATE operations
- Type: integer
- Range: {0, 2147483647}
- Default: 5000
[simplex_max_concurrency](@id option-simplex-max-concurrency)
- Maximum level of concurrency in parallel simplex
- Type: integer
- Range: {1, 8}
- Default: 8
[output_flag](@id option-output-flag)
- Enables or disables solver output
- Type: boolean
- Default: "true"
[log_to_console](@id option-log-to-console)
- Enables or disables console logging
- Type: boolean
- Default: "true"
[log_file](@id option-log-file)
- Log file
- Type: string
- Default: ""
[write_model_to_file](@id option-write-model-to-file)
- Write the model to a file
- Type: boolean
- Default: "false"
[write_presolved_model_to_file](@id option-write-presolved-model-to-file)
- Write the presolved model to a file
- Type: boolean
- Default: "false"
[write_solution_to_file](@id option-write-solution-to-file)
- Write the primal and dual solution to a file
- Type: boolean
- Default: "false"
[write_solution_style](@id option-write-solution-style)
- Style of solution file (raw = computer-readable, pretty = human-readable): -1 => HiGHS old raw (deprecated); 0 => HiGHS raw; 1 => HiGHS pretty; 2 => Glpsol raw; 3 => Glpsol pretty; 4 => HiGHS sparse raw
- Type: integer
- Range: {-1, 4}
- Default: 0
[glpsol_cost_row_location](@id option-glpsol-cost-row-location)
- Location of cost row for Glpsol file: -2 => Last; -1 => None; 0 => None if empty, otherwise data file location; 1 <= n <= num_row => Location n; n > num_row => Last
- Type: integer
- Range: {-2, 2147483647}
- Default: 0
[read_solution_file](@id option-read-solution-file)
- Read solution file
- Type: string
- Default: ""
[read_basis_file](@id option-read-basis-file)
- Read basis file
- Type: string
- Default: ""
[write_model_file](@id option-write-model-file)
- Write model file
- Type: string
- Default: ""
[solution_file](@id option-solution-file)
- Write solution file
- Type: string
- Default: ""
[write_basis_file](@id option-write-basis-file)
- Write basis file
- Type: string
- Default: ""
[write_presolved_model_file](@id option-write-presolved-model-file)
- Write presolved model file
- Type: string
- Default: ""
[write_iis_model_file](@id option-write-iis-model-file)
- Write IIS model file
- Type: string
- Default: ""
[mip_detect_symmetry](@id option-mip-detect-symmetry)
- Whether MIP symmetry should be detected
- Type: boolean
- Default: "true"
[mip_allow_restart](@id option-mip-allow-restart)
- Whether MIP restart is permitted
- Type: boolean
- Default: "true"
[mip_max_nodes](@id option-mip-max-nodes)
- MIP solver max number of nodes
- Type: integer
- Range: {0, 2147483647}
- Default: 2147483647
[mip_max_stall_nodes](@id option-mip-max-stall-nodes)
- MIP solver max number of nodes where estimate is above cutoff bound
- Type: integer
- Range: {0, 2147483647}
- Default: 2147483647
[mip_max_start_nodes](@id option-mip-max-start-nodes)
- MIP solver max number of nodes when completing a partial MIP start
- Type: integer
- Range: {0, 2147483647}
- Default: 500
[mip_improving_solution_save](@id option-mip-improving-solution-save)
- Whether improving MIP solutions should be saved
- Type: boolean
- Default: "false"
[mip_improving_solution_report_sparse](@id option-mip-improving-solution-report-sparse)
- Whether improving MIP solutions should be reported in sparse format
- Type: boolean
- Default: "false"
[mip_improving_solution_file](@id option-mip-improving-solution-file)
- File for reporting improving MIP solutions: not reported for an empty string ""
- Type: string
- Default: ""
[mip_root_presolve_only](@id option-mip-root-presolve-only)
- Whether MIP presolve is only applied at the root node
- Type: boolean
- Default: "false"
[mip_lifting_for_probing](@id option-mip-lifting-for-probing)
- Level of lifting for probing that is used
- Type: integer
- Range: {-1, 2147483647}
- Default: -1
[mip_max_leaves](@id option-mip-max-leaves)
- MIP solver max number of leaf nodes
- Type: integer
- Range: {0, 2147483647}
- Default: 2147483647
[mip_max_improving_sols](@id option-mip-max-improving-sols)
- Limit on the number of improving solutions found to stop the MIP solver prematurely
- Type: integer
- Range: {1, 2147483647}
- Default: 2147483647
[mip_lp_age_limit](@id option-mip-lp-age-limit)
- Maximal age of dynamic LP rows before they are removed from the LP relaxation in the MIP solver
- Type: integer
- Range: {0, 32767}
- Default: 10
[mip_pool_age_limit](@id option-mip-pool-age-limit)
- Maximal age of rows in the MIP solver cutpool before they are deleted
- Type: integer
- Range: {0, 1000}
- Default: 30
[mip_pool_soft_limit](@id option-mip-pool-soft-limit)
- Soft limit on the number of rows in the MIP solver cutpool for dynamic age adjustment
- Type: integer
- Range: {1, 2147483647}
- Default: 10000
[mip_pscost_minreliable](@id option-mip-pscost-minreliable)
- Minimal number of observations before MIP solver pseudo costs are considered reliable
- Type: integer
- Range: {0, 2147483647}
- Default: 8
[mip_min_cliquetable_entries_for_parallelism](@id option-mip-min-cliquetable-entries-for-parallelism)
- Minimal number of entries in the MIP solver cliquetable before neighbourhood queries of the conflict graph use parallel processing
- Type: integer
- Range: {0, 2147483647}
- Default: 100000
[mip_feasibility_tolerance](@id option-mip-feasibility-tolerance)
- MIP integrality tolerance
- Type: double
- Range: [1e-10, inf]
- Default: 1e-06
[mip_heuristic_effort](@id option-mip-heuristic-effort)
- Effort spent for MIP heuristics
- Type: double
- Range: [0, 1]
- Default: 0.05
[mip_heuristic_run_feasibility_jump](@id option-mip-heuristic-run-feasibility-jump)
- Use the feasibility jump heuristic
- Type: boolean
- Default: "true"
[mip_heuristic_run_rins](@id option-mip-heuristic-run-rins)
- Use the RINS heuristic
- Type: boolean
- Default: "true"
[mip_heuristic_run_rens](@id option-mip-heuristic-run-rens)
- Use the RENS heuristic
- Type: boolean
- Default: "true"
[mip_heuristic_run_root_reduced_cost](@id option-mip-heuristic-run-root-reduced-cost)
- Use the rootReducedCost heuristic
- Type: boolean
- Default: "true"
[mip_heuristic_run_zi_round](@id option-mip-heuristic-run-zi-round)
- Use the ZI Round heuristic
- Type: boolean
- Default: "false"
[mip_heuristic_run_shifting](@id option-mip-heuristic-run-shifting)
- Use the Shifting heuristic
- Type: boolean
- Default: "false"
[mip_allow_cut_separation_at_nodes](@id option-mip-allow-cut-separation-at-nodes)
- Whether cut separation at nodes other than the root node is permitted
- Type: boolean
- Default: "true"
[mip_rel_gap](@id option-mip-rel-gap)
- Tolerance on relative gap, |ub-lb|/|ub|, to determine whether optimality has been reached for a MIP instance
- Type: double
- Range: [0, inf]
- Default: 0.0001
[mip_abs_gap](@id option-mip-abs-gap)
- Tolerance on absolute gap of MIP, |ub-lb|, to determine whether optimality has been reached for a MIP instance
- Type: double
- Range: [0, inf]
- Default: 1e-06
[mip_min_logging_interval](@id option-mip-min-logging-interval)
- MIP minimum logging interval
- Type: double
- Range: [0, inf]
- Default: 5
[mip_lp_solver](@id option-mip-lp-solver)
- MIP LP solver: "choose", "simplex", "ipm", "ipx" or "hipo"
- Type: string
- Default: "choose"
[mip_ipm_solver](@id option-mip-ipm-solver)
- MIP IPM solver: "choose", "ipx" or "hipo"
- Type: string
- Default: "choose"
[ipm_optimality_tolerance](@id option-ipm-optimality-tolerance)
- IPM optimality tolerance
- Type: double
- Range: [1e-12, inf]
- Default: 1e-08
[mip_search_simulate_concurrency](@id option-mip-search-simulate-concurrency)
- Simulate MIP search concurrency on a single thread
- Type: boolean
- Default: "false"
[ipm_iteration_limit](@id option-ipm-iteration-limit)
- Iteration limit for IPM solver
- Type: integer
- Range: {0, 2147483647}
- Default: 2147483647
[hipo_system](@id option-hipo-system)
- HiPO Newton system: "choose", "augmented" or "normaleq"
- Type: string
- Default: "choose"
[hipo_parallel_type](@id option-hipo-parallel-type)
- HiPO parallelism: "tree", "node" or "both"
- Type: string
- Default: "both"
[hipo_ordering](@id option-hipo-ordering)
- HiPO matrix reordering: "choose", "metis", "amd" or "rcm"
- Type: string
- Default: "choose"
[hipo_block_size](@id option-hipo-block-size)
- Block size for dense linear algebra within HiPO
- Type: integer
- Range: {0, 2147483647}
- Default: 128
[pdlp_iteration_limit](@id option-pdlp-iteration-limit)
- Iteration limit for PDLP solver
- Type: integer
- Range: {0, 2147483647}
- Default: 2147483647
[pdlp_scaling_mode](@id option-pdlp-scaling-mode)
- Scaling mode for PDLP solver (default = 5): 1 => Ruiz; 2 => L2; 4 => PC
- Type: integer
- Range: {0, 7}
- Default: 5
[pdlp_ruiz_iterations](@id option-pdlp-ruiz-iterations)
- Number of Ruiz scaling iteraitons for PDLP solver
- Type: integer
- Range: {0, 2147483647}
- Default: 10
[pdlp_restart_strategy](@id option-pdlp-restart-strategy)
- Restart strategy for PDLP solver: 0 => off; 1 => fixed; 2 => adaptive; 3 => Halpern
- Type: integer
- Range: {0, 3}
- Default: 2
[pdlp_cupdlpc_restart_method](@id option-pdlp-cupdlpc-restart-method)
- Restart mode for cuPDLP-C solver: 0 => none; 1 => GPU (default); 2 => CPU
- Type: integer
- Range: {0, 2}
- Default: 1
[pdlp_step_size_strategy](@id option-pdlp-step-size-strategy)
- Step size strategy for PDLP solver: 0 => fixed; 1 => adaptive; 2 => Malitsky-Pock; 3 => PID
- Type: integer
- Range: {0, 3}
- Default: 1
[pdlp_optimality_tolerance](@id option-pdlp-optimality-tolerance)
- PDLP optimality tolerance
- Type: double
- Range: [1e-10, inf]
- Default: 1e-07
[qp_allow_hot_start](@id option-qp-allow-hot-start)
- Allow the active set QP solver to hot start
- Type: boolean
- Default: "false"
[qp_iteration_limit](@id option-qp-iteration-limit)
- Iteration limit for the active set QP solver
- Type: integer
- Range: {0, 2147483647}
- Default: 2147483647
[qp_nullspace_limit](@id option-qp-nullspace-limit)
- Nullspace limit for the active set QP solver
- Type: integer
- Range: {0, 2147483647}
- Default: 4000
[qp_regularization_value](@id option-qp-regularization-value)
- Regularization value added to the Hessian in the active set QP solver
- Type: double
- Range: [0, inf]
- Default: 1e-07
[iis_strategy](@id option-iis-strategy)
- Strategy for IIS calculation: 0 => Light test; 1 => Try dual ray; 2 => Try elastic LP; 4 => Prioritise columns; 8 => Find true IIS; 16 => Find relaxation IIS for MIP
- Type: integer
- Range: {0, 31}
- Default: 0
[iis_time_limit](@id option-iis-time-limit)
- Time limit for computing IIS (seconds)
- Type: double
- Range: [0, inf]
- Default: inf
[blend_multi_objectives](@id option-blend-multi-objectives)
- Blend multiple objectives or apply lexicographically
- Type: boolean
- Default: "true"