Transforming the Variables
Slack and surplus variables change the form of a constraint. A different family of substitutions changes the variables themselves: splitting a sign-unrestricted variable into a difference of two nonnegatives, shifting a variable with a nonzero lower bound, and negating a nonpositive one. Each preserves the feasible set and each carries its own error, the most consequential being that the split is not unique.
Definition
Standard form requires every variable to be nonnegative. Three substitutions achieve that, each replacing a variable rather than adding to a constraint.
Sign-unrestricted variables. If
everywhere
Nonzero lower bounds. If
Nonpositive variables. If
Upper bounds are not variable transformations. A restriction
The split is not unique. For any
Formal statement
Sign-unrestricted:
Assumptions and scope
A substitution must be applied everywhere the variable occurs. Replacing it in the constraints but not the objective, or in one constraint but not another, produces a program describing a different problem rather than an equivalent one.
The split of a sign-unrestricted variable is not unique, so the converted program has infinitely many optimal solutions whenever the original has one. Reporting them as distinct plans is a misreading of the conversion, not a discovery about the problem.
Shifting a lower bound leaves a constant in the objective. Dropping it gives the right optimal solution and the wrong optimal value.
The substituted variables are decision variables of the converted program and carry nonnegativity like any other. The pair from a split is not constrained to have one member zero; nothing enforces that and nothing needs to.
An upper bound is a constraint, not a variable transformation. It takes a slack variable, and treating it as a substitution removes a restriction the problem actually imposes.
Worked material
Example
One variable of each kind
Unrestricted.
Objective term becomes
Nonpositive.
Objective term becomes
Lower-bounded.
Objective term becomes
Reading back.
Non-example
Substitutions that do not do what they appear to
Not a variable transformation: an upper bound.
Not sufficient: substituting in the constraints only. Replacing
Not equivalent: dropping the shift constant. Converting
Not a valid simplification: forcing one of a split pair to zero. Writing 'take
Not two solutions: two split pairs giving one value. The pairs
Contrast
Non-uniqueness of the sign-unrestricted split
The substitution
The arithmetic. For any
Adding the same amount to both members leaves the difference unchanged and both members nonnegative. So
What that does to the converted program. Suppose the original has a unique optimal solution with
How this is misread. A solver is run twice, or a log is examined across iterations, and different values of
What is genuinely multiple. Multiple optima in the original problem means several distinct values of
The habit. Always report the recovered original variables, never the converted ones. The recovery rule is part of the conversion, not an afterthought, which is why it belongs in the written record alongside the transformed program.
Common errors
Common misconception
When a sign-unrestricted variable is split into a difference of two nonnegative variables, the resulting pair is determined, so each optimal solution of the converted program is a distinct solution of the original.
Related units
Requires
Connected
- Basic Solutions (used by)