contents.gifprev1.gifnext1.gif

Integer Tolerance

This number affects only the solution process for integer programming problems; it has no impact on "regular" optimization problems. When you solve an integer programming problem, it often happens that the Branch & 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 & 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 & 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.