Solver options for Alpine

General Options

Here are a few general solver options which control the performance of Alpine:

  • log_level (default = 0): verbosity level of Alpine; choose 1 for turning on logging, else 100 for detailed debugging mode.

  • time_limit (default = Inf): total limit on run time for Alpine in seconds.

  • max_iter (default = 999): total number of iterations allowed in the global_solve.

  • rel_gap (default = 1e-4): relative gap considered for global convergence during global_solve. Bounds are evaluated using $\frac{UB-LB}{UB} \cdot 100 \%$.

  • tol (default = 1e-6): numerical tolerance used during the process of global_solve.

Adaptive Partitioning Options

  • apply_partitioning (default = true): applies Alpine's built-in MIP-based partitioning algorithm only when activated; else terminates with the presolve solution.

  • partition_scaling_factor (default = 10): used during add_adaptive_partition for scaling the width of new partitions relative to the active partition chosen in the sequentially-solved lower-bounding MIP models. This value can substantially affect the run time for global convergence; this value can be set to different integer values (>= 4) for various classes of problems.

  • disc_var_pick (default = 0): controls Alpine's algorithm used for selecting variables for partitioning; 0 is for max-cover, 1 is for minimum-vertex-cover. This parameter allows functional inputs.

  • disc_add_partition_method: allows functional input on how new partitions could be constructed.

Presolve Options

  • presolve_track_time (default = true): includes/excludes presolve run time in the total Alpine's run time.

  • presolve_bt (default = false): performs sequential, optimization-based bound tightening (OBBT) at the presolve step.

  • presolve_bt_max_iter (default = 9999): maximum number of iterations allowed using the sequential OBBT step.

  • presolve_bt_width_tol (default = 1e-3): numerical tolerance value used in the OBBT step. Note that smaller values of this tolerance can lead to inaccurate solutions.

  • presolve_bt_algo (default = 1): method chosen to perform the presolve step; choose 1 for the built-in OBBT, else 2 for user-input functions for presolve.

  • presolve_bt_relax_integrality (default = false): relaxes the integrality of the existing integer variables in the OBBT step, if the input problem is an MINLP.

  • presolve_bt_mip_time_limit (default = Inf): time limit for individual MILPs solved during the sequential OBBT procedure.

  • use_start_as_incumbent (default = false): if true, Alpine does not perform any local optimization during the presolve and uses the starting value instead (warning: Alpine assumes the feasibility of the starting value and does not check it).

Note that the above-mentioned list of solver options is not comprehensive, but can be found in solver.jl.