[Home][What's New][Products & Services][Contents][Feedback][Search]

Precision and Tolerance Options

[Dividing Line Image]

Precision Option

The number entered here determines how closely the calculated values of the constraint left hand sides must match the right hand sides in order for the constraint to be satisfied. As explained in Elements of Solver Models, a constraint is satisfied if the relation it represents is true within a small tolerance; the Precision value is that tolerance. With the default setting of 1.0E-6 (0.000001), a calculated left hand side of -1.0E-7 would satisfy a constraint such as A1 >= 0.

To indicate a "looser" tolerance, enter a number with fewer decimal places. A "tighter" tolerance is indicated by a smaller Precision value, with more decimal places. You should keep the Precision setting in the range of 1.0E-4 (0.0001) to 1.0E-8 (0.00000001) in all cases, as outlined under Precision and Regular Constraints below.

Precision and Regular Constraints

Use caution in making this number much smaller, since the finite precision of computer arithmetic virtually ensures that the values calculated by Microsoft Excel and the Solver will differ from the expected or "true" values by a small amount. On the other hand, setting the Precision to a much larger value would cause constraints to be satisfied too easily. If your constraints are not being satisfied because the values you are calculating are in units such as millions of dollars, consider checking the Use Automatic Scaling box instead of altering the Precision setting.

Precision and Integer Constraints

Another use of Precision is determining whether an integer constraint such as A1 = integer is satisfied. If the difference between the decision variable's value and the closest integer value is less than the Precision, the variable value is treated as an integer.

Precision and Assume Linear Model

A final use of Precision -- which occasionally causes problems for users who are solving linear programming problems with the standard Microsoft Excel Solver -- is as a tolerance in the "test for linearity" which occurs at the solution of an LP model.

If your Solver model is poorly scaled -- especially if the values calculated by some of the constraints (or the objective) are quite large in relation to other values -- the test for linearity may not be satisfied with the default Precision setting, even though the model consists entirely of linear functions of the decision variables. As a short-term fix in this situation, you can increase the Precision setting to about 0.0001 in most cases without causing other difficulties in the solution process. A much better solution is to re-scale your model by changing the "units of measure" in your objective or constraint calculations (e.g. use thousands or millions of dollars, rather than just dollars).

If you are using one of our enhanced solvers, you may instead check the Use Automatic Scaling box, also in the Solver Options dialog, and leave the Precision setting at its default value. Where the standard Microsoft Excel Solver is able to automatically re-scale only nonlinear problems, all of the enhanced solvers can re-scale linear, quadratic and nonlinear problems; so it is no longer necessary for you to change the "units of measure" manually in your spreadsheet model.


Integer Tolerance Option

This number affects only the solution process for Solver models with integer constraints (i.e. integer programming problems); it has no impact on "regular" optimization problems. When you solve an integer programming problem, it often happens that the Branch and Bound method will find a good solution fairly quickly, but will require a great deal of computation time to find (or verify that it has found) the optimal integer solution. The Integer Tolerance setting may be used to tell the Solver to stop if the best solution it has found so far is "close enough."

The Branch and Bound process starts by finding the optimal solution without considering the integer constraints (this is called the relaxation of the integer programming problem). The objective value of the relaxation forms the initial "best bound" on the objective of the optimal integer solution, which can be no better than this. During the optimization process, the Branch and Bound method finds "candidate" integer solutions, and it keeps the best solution so far as the "incumbent." By eliminating alternatives as its proceeds, the B&B method also tightens the "best bound" on how good the integer solution can be.

Each time the Solver finds a new "incumbent" -- an improved all-integer solution -- it computes the maximum percentage difference between the objective of this solution and the current "best bound" on the objective:

Objective of incumbent - Objective of best bound
------------------------------------------------
            Objective of best bound

If the absolute value of this maximum percentage difference is equal to or less than the Integer Tolerance, the Solver will stop and report the current integer solution as the optimal result. If you set the Integer Tolerance to zero, the Solver will continue searching until all alternatives have been explored and the optimal integer solution has been found. This may take a great deal of computing time.

Back to Home Page

Copyright © 1996 Frontline Systems Inc.
Last modified: December 01, 1996