Relational constraints specify bounds on cells such as A1 >= 0. A constraint is *satisfied* if the condition it specifies is true *within a small tolerance* (determined by the **Constraint Precision** option). This is a little different from a logical formula such as =A1>=0 evaluating to TRUE or FALSE which you might enter in a cell. In this example, if A1 were -0.0000001, the logical formula would evaluate to FALSE, but with the default Solver **Constraint Precision** setting, the constraint would be satisfied. Because of the numerical methods used to find solutions to Solver models and the finite precision of computer arithmetic, it would be unrealistic to require that constraints like A1 >= 0 be satisfied exactly – such solutions would rarely be found.

Constraints such as A1 = 0 are called *equality constraints* or *equations*; constraints such as A1 <= 0 are called *inequality constraints* or simply *inequalities*. A problem with only equality constraints (and no objective, or a Value Of objective) is sometimes called a *system of equations*. Solver can be used to find solutions to systems of both linear and nonlinear equations. If there are several different solutions (sets of values for the decision variables) that satisfy the equations, the GRG Nonlinear Solving method seeks a solution that is close to the starting values of the variables.

**Bounds on the variables**

Constraints of the form A1 >= -5 or A1 <= 10 (for example), where A1 is a decision variable, are called bounds on the variables and are treated specially by Solver. These constraints affect only one variable, whereas general constraints have an indirect effect on several variables that have been used in a formula such as A1+A2. Each of the Solving methods takes advantage of this fact to handle bounds on the variables more efficiently than general constraints, and speed up the solution process.

There is no difference in terms of efficiency between a constraint entered (for example) as A1 <= 100 or as A1 <= B1 where B1 contains 100; Solver recognizes that B1 is equivalent to a constant. The form A1 <= B1 is usually better from the standpoint of maintainability of your Solver model.

In many problems, you will be aware of realistic lower and upper bounds on the variables, but they won’t be of any help to Solver unless you include them in the Constraints list box! Bounds on the variables are especially important to the performance of the **Evolutionary** solving method, and **Multistart** methods for global optimization with the GRG Nonlinear solving method.