### Reduced Costs

In linear programming problems, each variable has a corresponding reduced cost. To access the reduced cost of a variable, add the suffix `.rc` or `.dual` to the variable name. These two suffixes are interchangeable.

The reduced cost of a variable is the rate at which the objective value changes when the value of that variable changes. At optimality, basic variables have a reduced cost of zero; a nonbasic variable with zero reduced cost indicates the existence of multiple optimal solutions.

In nonlinear programming problems, the reduced cost interpretation does not apply. The `.dual` and `.rc` variable suffixes represent the gradient of the Lagrangian function, computed using the values returned by the solver.

The following example illustrates the use of the `.rc` suffix:

```proc optmodel;
var x >= 0, y >= 0, z >= 0;
max cost = 4*x + 3*y - 5*z;
con
-x + y + 5*z <= 15,
3*x - 2*y - z <= 12,
2*x + 4*y + 2*z <= 16;
solve;
print x y z;
print x.rc y.rc z.rc;
```

The PRINT statements generate the output shown in Figure 5.57.

Figure 5.57: Reduced Cost in Maximization Problem: Display

x y z
5 1.5 0

x.RC y.RC z.RC
0 0 -6.5

In this example, `x` and `y` are basic variables, while `z` is nonbasic. The reduced cost of `z` is –6.5, which implies that increasing `z` from 0 to 1 decreases the optimal value from 24.5 to 18.