1. ILFTOL and 2. FLFTOL

Due to the finite precision available for floating point operations on digital computers, LINGO can't always satisfy each constraint exactly. Given this, LINGO uses these two tolerances as limits on the amount of violation allowed on a constraint while still considering it "satisfied". These two tolerances are referred to as the Initial Linear Feasibility Tolerance (ILFTOL) and the Final Linear Feasibility Tolerance (FLFTOL). The default values for these tolerances are, respectively, .000003 and .0000001.

The ILFTOL is used when the solver first begins iterating. ILFTOL should be greater than FLFTOL. In the early stages of the solution process, being less concerned with accuracy can boost the performance of the solver. When LINGO thinks it has an optimal solution, it switches to the more restrictive FLFTOL. At this stage in the solution process, one wants a relatively high degree of accuracy. Thus, FLFTOL should be smaller than ILFTOL.

One instance where these tolerances can be of use is when LINGO returns a solution that is almost, but not quite, feasible. You can verify this by checking the values in the Slack or Surplus column in the model's solution report. If there are only a few rows with small negative values in this column, then you have a solution that is close to being feasible. Loosening (i.e., increasing) ILFTOL and FLFTOL may help you get a feasible solution. This is particularly true in a model where scaling is poor (i.e., very large and very small coefficients are used in the same model) and the units of measurement on some constraints are such that minor violations are insignificant. For instance, suppose you have a budget constraint measured in millions of dollars. In this case, a violation of a few pennies would be of no consequence. Short of the preferred method of re-scaling your model, loosening the feasibility tolerances may be the most expedient way around a problem of this nature.