In an optimization problem, a slack variable is a variable that is added to an inequality constraint to transform it into an equality constraint.
A non-negativity constraint on the slack variable is also added.
[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.
Slack variables give an embedding of a 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
vertices (dual to facets), regardless of dimension, as the image of the standard
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.