Users who solve problems with integer constraints occasionally report that “Solver claims it found an optimal solution, but I manually found an even better solution.”  Solver now stops with the message “Solver found an integer solution within tolerance” instead of simply “Solver found a solution,” to highlight the fact that it found a solution within the range of the true integer optimal solution allowed by the Integer Optimality % tolerance in the Solver Options dialog.  Since the default setting of the Tolerance option is 1%, Solver will stop when it has found a solution satisfying the integer constraints whose objective is within 1% of the true integer optimal solution. Therefore, you may know of or be able to discover an integer solution that is better than the one found by Solver.

The reason that the default Integer Optimality % tolerance option is 1% is that the solution process for integer problems – which can take a great deal of time in any case – often finds a near-optimal solution (sometimes the optimal solution) relatively quickly, and then spends far more time exhaustively checking other possibilities to find (or verify that it has found) the very best integer solution. The Integer Optimality % default setting is a compromise value that often saves a great deal of time, and still ensures that a solution found by Solver is within 1% of the true optimal solution.

To ensure that Solver finds the true integer optimal solution – possibly at the expense of far more solution time – set the Integer Optimality % tolerance to zero.