Handling Free Variables via Variable Splitting
When converting a linear program to standard form, every decision variable must be non-negative. A free (unrestricted) variable is rewritten as the difference of two non-negative variables — a technique called variable splitting. This lesson covers the splitting substitution, applying it throughout the objective and constraints, handling multiple free variables, and recovering original variable values after solving.
Tutorial
Free Variables and the Splitting Substitution
A linear program is in standard form when every decision variable is required to be non-negative. A decision variable that has no sign restriction — one allowed to take any real value (positive, negative, or zero) — is called a free variable (or unrestricted variable).
To handle a free variable when converting an LP to standard form, we use variable splitting. We replace each free variable with the difference of two new non-negative variables:
This substitution is valid because every real number is expressible as the difference of two non-negative reals. For instance, if the optimal value of turns out to be , the optimizer can choose and ; if it turns out to be , the optimizer can choose and .
The representation is not unique (we could also write ), but the LP solver will pick whichever values of and are best for the objective.