LEAVES is an open-source platform that provide mathematical programming solvers, machine learning tools(LEMO), and the access to a bunch of commercial applications (LAOR). So far, its mathematical solvers support the solution of Linear Programming, Semi-Definite Programming, Geometric Programming, Linearly Constrained Convex Programming, etc.

Currently, COAP only offers COPL-LP (one of the solvers on LEAVES) for the solution of Linear Programming, and an MPS file is required. To customize solver behaviors, an SPC (specification) file should be specified. The file has relatively free format, each line of the file defines only one parameter with a Keyword : Value pair. Lines beginning with "*" are treated as comments.


Parameter Name Description Default
complementarity_tolerance Define the complementarity tolerance. 1.0e-12
cross_over_switch Request that cross-over procedure be performed (on) or notperformed (off) off
dense_column_threshold Define the dense column threshold value. Each columnis treated as a dense column if the number of non-zeros in this column is greater orequal to the specified threshold value. 150
infeasible_tolerance Define the infeasibility tolerance. This value is used todeclare infeasibility of the problem. 1.0e-8
iteration_limit An upper limit of the number of iterations. 500
lower_bound_default The default value of lower bound. 0
upper_bound_default The default value of upper bound. 1.0e30
nonzero_tolerance An element is treated as zero if the absolute value of theelement is less this value. 1.0e-12
number_of_columns This value is used to set the maximum number of thevariables or columns in an LP problem. 100000
number_of_elements This value is used to set the maximum number ofnonzero constraint coefficients in an LP problem. 500000
optimization_type optimization direction, min/max min
pcg_starting_tolerance The system will start a pre-conditioned conjugategradient process to improve accuracy of the solution of the K-K-T linear equationsystem, if the residual of the system is less than the specified value. 1.0e-10
pivoting_tolerance If a diagonal element of the symmetric matrix to be factorized is less than the setting value, the diagonal element is considered to be zero. 1.0e-14
presolve_level Define the level of presolving. There are 6 possible levels (level 0 - 5)which can be set by users. Here0: no presolving is performed.1: dependent rows, null and fixed columns.2: singleton rows, forcing rows, doubletonrows, dominated rows.3: dominated columns.4: duplicate rows.5: duplicate columns. 5
presolve_loop After one loop reduction is done, further reduction is possible. Thus, presolving procedure may run more than one loop. The system will quit the presolvingif no further reduction is possible or the number of presolving loops exceeds the settingloop value. 10
primal_dual_gap_tolerance Define the relative primal dual gap tolerance. 1.0e-8
primal_feasible_tolerance Define the relative primal feasibility tolerance. 1.0e-8
dual_feasible_tolerance Define the relative dual feasibility tolerance. 1.0e-8
step_factor Set the step size factor(gamma), which should be real number in (0; 1). 0.99995

Examples of Usage

cross_over_switch         : on
iteration_limit           : 100
primal_dual_gap_tolerance : 1.0e-6
optimization_type         : max
Last Updated: 05/16/2022