# Slack variable

In an optimization problem, a **slack variable** is a variable that is added to an inequality constraint to transform it into an equality. Introducing a slack variable replaces an inequality constraint with an equality constraint and a non-negativity constraint on the slack variable.^{[1]}^{:131}
Slack variables are used in particular in linear programming. As with the other variables in the augmented constraints, the slack variable cannot take on negative values, as the simplex algorithm requires them to be positive or zero.^{[2]}

- If a slack variable associated with a constraint is
*zero*at a particular candidate solution, the constraint is**binding**there, as the constraint restricts the possible changes from that point. - If a slack variable is
*positive*at a particular candidate solution, the constraint is**non-binding**there, as the constraint does not restrict the possible changes from that point. - If a slack variable is
*negative*at some point, the point is infeasible (not allowed), as it does not satisfy the constraint.

Slack variables are also used in the Big M method.

## Example

By introducing the slack variable [math]\displaystyle{ \mathbf{s} \ge \mathbf{0} }[/math], the inequality [math]\displaystyle{ \mathbf{A}\mathbf{x} \le \mathbf{b} }[/math] can be converted to the equation [math]\displaystyle{ \mathbf{A}\mathbf{x} + \mathbf{s} = \mathbf{b} }[/math].

## Embedding in orthant

Slack variables give an embedding of a polytope [math]\displaystyle{ P \hookrightarrow (\mathbf{R}_{\geq 0})^f }[/math] into the standard *f*-orthant, where [math]\displaystyle{ f }[/math] is the number of constraints (facets of the polytope). This map is one-to-one (slack variables are uniquely determined) but not onto (not all combinations can be realized), and is expressed in terms of the *constraints* (linear functionals, covectors).

Slack variables are *dual* to generalized barycentric coordinates, and, dually to generalized barycentric coordinates (which are not unique but can all be realized), are uniquely determined, but cannot all be realized.

Dually, generalized barycentric coordinates express a polytope with [math]\displaystyle{ n }[/math] vertices (dual to facets), regardless of dimension, as the *image* of the standard [math]\displaystyle{ (n-1) }[/math]-simplex, which has [math]\displaystyle{ n }[/math] vertices – the map is onto: [math]\displaystyle{ \Delta^{n-1} \twoheadrightarrow P, }[/math] and expresses points in terms of the *vertices* (points, vectors). The map is one-to-one if and only if the polytope is a simplex, in which case the map is an isomorphism; this corresponds to a point not having *unique* generalized barycentric coordinates.

## References

- ↑ Boyd, Stephen P.; Vandenberghe, Lieven (2004).
*Convex Optimization*. Cambridge University Press. ISBN 978-0-521-83378-3. https://web.stanford.edu/~boyd/cvxbook/bv_cvxbook.pdf. Retrieved October 15, 2011. - ↑ Gärtner, Bernd; Matoušek, Jiří (2006).
*Understanding and Using Linear Programming*. Berlin: Springer. ISBN 3-540-30697-8.^{:42}

## External links

- Slack Variable Tutorial - Solve slack variable problems online

Original source: https://en.wikipedia.org/wiki/Slack variable.
Read more |