![]()
These messages appear in the Solver Results dialog when the Solver stops running. The best solution values for the decision variables are placed in the adjustable (changing) cells, and the worksheet is recalculated. In the Solver Results dialog, you have the option to keep these solution values, or restore the original values of the adjustable cells. (Clicking on Cancel or pressing ESC restores the original values without choosing any other options.) You can also create a named scenario which captures the values of the adjustable cells, and view it later with the Scenario Manager. Finally, you can ask the Solver to produce one or more reports as shown in the Reports list box.
Unlike the other groups of Solver messages, this group is ordered by the result codes which can be returned when you invoke the Solver in a custom macro in VBA (with the SolverSolve function) or in the Excel macro language (with SOLVER.SOLVE). Each numeric result code is shown in parentheses following the message.
Some of these messages have a slightly different interpretations, depending on whether you have selected the Assume Linear Model check box, and whether there are any integer constraints in your model. See the detailed explanations of each message, particularly the first one, "Solver found a solution."
This means that the Solver has found the optimal or "best" solution under the circumstances. The exact meaning depends on whether you are solving a linear, nonlinear, or integer programming problem:
If you are solving a linear programming problem (Assume Linear Model in the Solver Options dialog is checked) with no integer constraints, the Simplex Solver "engine" has found the globally optimal solution: There is no other solution satisfying the constraints which has a better value for the objective (Target Cell). It is possible that there are other solutions with the same objective value, but all such solutions are linear combinations of the current decision variable values.
If you are solving a nonlinear programming problem (Assume Linear Model is not checked) with no integer constraints, the GRG Solver "engine" has found a locally optimal solution: There is no other set of values for the decision variables close to the current values and satisfying the constraints which yields a better value for the objective (Target Cell). In general, there may be other sets of values for the variables, far away from the current values, which yield better values for the objective.
If you are solving a mixed-integer programming problem (any problem with integer constraints) with the default Tolerance value (in the Solver Options dialog) of 0.05, the Branch and Bound Solver "engine" has found a solution satisfying the constraints (including the integer constraints) whose objective value is within at least 5% of the true optimal objective value. If you have set the Tolerance to zero and you've checked the Assume Linear Model box, the true integer optimal value has been found. If the Tolerance is zero and the Assume Linear Model box is not checked, the Branch and Bound process has found the best of the locally optimal solutions found for subproblems by the GRG Solver "engine."
This message appears only when Assume Linear Model is not checked (i.e. the GRG Solver "engine" is used). It means that the Solver stopped because the objective function value is changing very slowly for the last few iterations or trial solutions. More precisely, the GRG Solver stops if the absolute value of the relative change in the objective function is less than a convergence tolerance for the last N iterations. The values for convergence and N are fixed in Microsoft Excel. A poorly scaled model is more likely to trigger this stopping condition, even if the Use Automatic Scaling box in the Solver Options dialog is checked. If you are sure that your model is well scaled, you should consider why it is that the objective function is changing so slowly. For more information, see the discussion of GRG Solver Stopping Conditions.
This message appears only when Assume Linear Model is not checked (i.e. the GRG Solver "engine" is used), and occurs only rarely. It means that the model is degenerate and the Solver is probably cycling. One possibility worth checking is that some of your constraints are redundant, and should be removed. For more information, see the discussion of GRG Solver Stopping Conditions.
This message appears when (i) the Solver has completed the maximum number of iterations, or trial solutions, allowed in the Iterations box in the Solver Options dialog and (ii) you clicked on the Stop button when the Solver displayed the Show Trial Solution dialog. You may increase the value in the Iterations box (to a maximum of 32767) or click on Continue instead of Stop in the Show Trial Solution dialog. But you should also consider whether re-scaling your model or adding constraints might reduce the total number of iterations required. For more information, see the discussion of actions you can take if the solution process takes a long time.
This message appears when the Solver is able to increase (if you are trying to Maximize) or decrease (for Minimize) without limit the value calculated by the objective or Target Cell, while still satisfying the constraints. Remember that, if you've selected Minimize, the Target Cell may take on negative values without limit unless this is prevented by constraints on the Target Calls or other cells.
If the objective is a linear function of the decision variables, it can always be increased or decreased without limit (picture it as a straight line), so the Solver will seek the extreme value which still satisfies the constraints. If the objective is a nonlinear function of the variables, it may have a "natural" maximum or minimum (for example, A1*A1 has a minimum at zero), or no such limit (for example, LOG(A1) increases without limit).
If you receive this message, you may have forgotten a constraint, or failed to anticipate values for the variables that allow the objective to increase or decrease without limit. The final values for the adjustable cells, the constraint left hand sides and the objective should provide a strong clue about what happened.
This message appears when the Solver could not find any combination of values for the decision variables which allows all of the constraints to be satisfied simultaneously. If you have checked the Assume Linear Model box in the Solver Options dialog, and the model is well scaled (see Use Automatic Scaling), the Simplex Solver "engine" has determined for certain that there is no feasible solution. If you haven't checked the Assume Linear Model box, the GRG Solver "engine" was unable to find a feasible solution, starting from the initial values of the variables; however it is possible that there is a feasible solution far away from these initial values, which the Solver might find if you run it with different initial values for the variables. In either case, you should first look for conflicting constraints, i.e. conditions which cannot be satisfied simultaneously. Most often this is due to choosing the wrong relation (e.g. <= instead of >=) on an otherwise appropriate constraint.
This message appears only if you press ESC to display the Show Trial Solution dialog, and then click on the Stop button. If you are writing a macro, the user may do this unless you disable the ESC key in your code, so be sure to test for this return code value (6) and take action appropriate for your application.
This message appears if you have checked the Assume Linear Model box in the Solver Options dialog, and the Solver's numeric test to ensure that the objective and constraints were indeed linear functions of the decision variables was not satisfied. In the standard Microsoft Excel Solver, this message can appear if your model is entirely linear but is poorly scaled; for more information, see the discussion of Assume Linear Model. To understand exactly what is meant by a linear model, read about linear and nonlinear functions.
If you receive this message, examine the formulas for the objective (Target Cell) and constraints for nonlinear or discontinuous functions or operators applied to the decision variables or adjustable cells. (See the discussion of discontinuous and non-smooth functions.) You can always write a linear function using only SUM and SUMPRODUCT, or Frontline's DOTPRODUCT function.
This message appears when the Solver determines that there are too many decision variables or constraints in your model. In many cases you will first see a message such as "Too many adjustable cells" or "Too many constraints" when you set up the model using the Solver Parameters dialog. This message appears after you click Solve and the Solver analyzes the model for cases not checked earlier. For more information, read about If you've exceeded problem size limits and How the Solver handles constraints. Frontline's enhanced solvers can handle problems much larger than the standard Microsoft Excel Solver.
This message appears when the Solver recalculates your worksheet using a new set of values for the decision variables (adjustable or changing cells), and discovers an error value (such as #VALUE!, #NUM!, #DIV/0! or #NAME?) in the cell calculating the objective (Target Cell) or one of the constraints. Inspecting the worksheet for error values like these will usually indicate the source of the problem. If you have entered formulas for the right hand sides of certain constraints, the error might have occurred in one of these formulas rather than in a cell on the worksheet. (For this and other reasons, we recommend that you use only constants and cell references on the right hand sides of constraints; see How the Solver handles constraints.)
If you see #VALUE!, #N/A or #NAME?, look for names or cell references to rows or columns that you have deleted. If you see #NUM! or #DIV/0!, look for unanticipated values of the decision variables which lead to arguments outside the domains of your functions -- such as a negative value supplied to SQRT. You can often add constraints to avoid such domain errors; if you have trouble with a constraint such as A1 >= 0, try a constraint such as A1 >= 0.00001 instead.
This message appears when (i) the Solver has run for the maximum time (number of seconds) allowed in the Max Time box in the Solver Options dialog and (ii) you clicked on the Stop button when the Solver displayed the Show Trial Solution dialog. You may increase the value in the Max Time box (to a maximum of 32767 seconds) or click on Continue instead of Stop in the Show Trial Solution dialog. But you should also consider whether re-scaling your model or adding constraints might reduce the total solution time required. For more information, see the discussion of actions you can take if the solution process takes a long time.
This message appears when the Solver could not allocate the memory it needs to solve the problem. Given the problem size limits of the standard Microsoft Excel Solver, this message is only likely to appear if you have too many workbooks open in Excel or if you have too many open applications besides Excel. Close these workbooks or applications and try again.
This message should appear only if you are running more than one instance of Microsoft Excel, and you click on Solve while another Excel instance is also running the Solver. Wait for the other Excel instance to finish solving and then try again. If this message appears under any other circumstances (most likely due to previous problems with Excel), you should restart Windows and then try again.
This message means that the internal "model" (information about the adjustable cells, target cell, constraints, Solver options, etc.) which is created by the SOLVER.XLA add-in and passed to SOLVER.DLL is not in a valid form. You might receive this message if you are using the wrong version of either SOLVER.XLA or SOLVER.DLL, or if you have modified the values of certain hidden defined names used by the Solver, either interactively or in a VBA or macro language program. To guard against this possibility, you should avoid using any defined names beginning with "solver" in your own application.