LPSolve Parameter Options

List of Options

Option Name MPL Name Solver Param ParamNr Type Default Min Max
Reduce Degeneracy ReduceDegeneracy DEGEN 1 flag 0 0 1
Branching Strategy Branching BBCEILING list 2 0 2
Scaling Scaling SCALING list 4 0 7
Preprocessing level Preprocessing PRESOLVE list 0 0 2097151
Objective estimate LowerBound LOWERBOUND real MAXREAL MAXREAL MAXREAL
Integral feasibility tolerance MipIntegerTol INTRANGE real 0.001 1e-12 .4999
Minimum Pivoting MinimumPivot MINPIVOT list 1e-4 1e-12 MAXREAL


Description of Options

Reduce Degeneracy

Boolean option that check if there are equality slacks in the basis and try to drive them out in order to reduce chance of degeneracy in Phase 1 of the simplex method.

Branching Strategy

This option specifies the branching strategy employed in the brand and bound algorithm.

Branch Up (0) Select variables that always branch up.
Branch Down (1) Select variables that always branch down.
Automatic (2) Automatic setting in whihc LPSolve decides the best strategy.

Scaling

Specifies which scaling method to employ.

No Scaling (0) No scaling.
Extreme (1) Scale to convergence using largest absolute value.
Range Scaling (2) Scale based on the simple numerical range.
Mean Scaling (3) Numerical range-based scaling.
Geometric (4) Uses geometric scaling.
Curtis-reid (7) Uses Curtis-reid scaling.

Preprocessing level

Specifies the level of presolve to be undertaken can be a set of combinations.

No Presolve (0) No presolve at all.
Presolve rows (1) Apply presolve only to the constraints.
Presolve columns (2) Apply presolve only to the variables.
Dependent rows (4) Eliminates linearly dependent rows.
Presolve SOS (32) Convert constraints to SOSes (only SOS1 handled).
Reduce MIP (64) If the phase 1 solution process finds that a constraint is redundant then this constraint is deleted.
Simplify Knapsack (128) Simplification of knapsack-type constraints through addition of an extra variable.
Substitution (256) Direct substitution of one variable in 2-element equality constraints.
Presolve free cols (512) Identify implied free variables (releasing their explicit bounds).
Reduce GCD (1024) Reduce (tighten) coefficients in integer models based on GCD argument
Probing (2048) Attempt to fix binary variables at one of their bounds.
Coefficient Reduction (4096) Attempt to reduce coefficients in binary models.
Dominated Rows (8192) Idenfify and delete qualifying constraints that are dominated by others, also fixes variables at a bound.
Dominated Cols (16384) Deletes variables (mainly binary), that are dominated by others (only one can be non-zero).
Row Merging (32768) Merges neighboring >= or <= constraints when the vectors are otherwise relatively identical into a single ranged constraint
Implied Slacks (65536) Converts qualifying equalities to inequalities by converting a column singleton variable to slack. The routine also detects implicit duplicate slacks from inequality constraints, fixes and removes the redundant variable. This latter removal also tends to reduce the risk of degeneracy. The combined function of this option can have a dramatic simplifying effect on some models.
Dual Column Fixing (131072) Variable fixing and removal based on considering signs of the associated dual constraint.
Bound Tightening (262144) Uses bound tightening based on full-row constraint information. This can assist in tightening the bound, eliminate variables and constraints. At the end of presolve, it is checked if any variables can be deemed free, thereby reducing any chance that degeneracy is introduced via this presolve option.
Duals (524288) Calculate duals.
Sensitivity (1048576) Calculate sensitivity if there are integer variables.

Objective estimate

Specifies the initial "at least better than" guess for objective function. This is only used in the branch-and-bound algorithm when integer variables exist in the model. All solutions with a worse objective value than this value are immediately rejected. This can result in faster solving times, but it can be difficult to predict what value to take for this bound. Also there is the chance that the found solution is not the most optimal one.

Integral feasibility tolerance

Specifies the tolerance that is used to determine whether a floating-point number is in fact an integer. This is only used when there is at least one integer variable and the branch and bound algorithm is used to make variables integer. Integer variables are internally in the algorithm also stored as floating point. Therefore a tolerance is needed to determine if a value is to be considered as integer or not. If the absolute value of the variable minus the closed integer value is less than IntegerRange, it is considered as integer. For example if a variable has the value 0.9999999 and IntegerRange is 0.000001 then it is considered integer because abs(0.9999999 - 1) = 0.0000001 and this is less than 0.000001. The default value is 1e-7, so by changing IntegerRange you determine how close a value must approximate the nearest integer. Changing this tolerance value to for example 0.001 will generally result in faster solving times, but your solution is less integer. So it is a compromise.

Minimum Pivoting

The value that is used as a tolerance for the pivot element to determine whether a value should be considered as 0.


Back To Top | Maximal Home Page | List of Solvers | Previous Page | Next Page