Linear Optimization (aka Linear Programming, LP) is one of the earliest improvement in Operations Research history. Despite the fact that there are more than 73 years passed since Kantorovich modeled first LP, it is still widely used in many sectors. In order to use some algorithms (ie. for Simplex, problem should be in standard form), the model should be in a certain form. In here, we will briefly show how one problem can be transformed to apply these algorithms.
1) Objective Function
A problem can be easily changed to minimization or maximization type. Assume our problem is given in the form as
and we want to solve this problem as a minimization problem. All we need to do is, multiply both function and term with magical number, -1, and change min to max. So equivalent form is
2) Constraint – Inequality direction: to and vice versa
A greater than or equal to () inequality can be transformed to less than or equal to (), similarly using our magic number, -1. We need to multiply both sides, and change the direction.
3) Constraint – Inequality to Equality
While transforming an inequality to equality, we need to add a new (slack) nonnegative variable. Direction of the inequality is important, since it changes multiplier of the slack variable. For a we can add a slack variable with +1 coefficient. So, if we are transforming the following equation;
into an equality, the new form should be
And for inequality;
and we can perform transformation as;
4) Constraint – Equality to Inequality
This time things are a little bit different. Here, we can use the logic that, an equality is the intersection of greater than or equal to and less than or equal to inequalities. Assume we have;
and then we can write it in the following form;
5) Variable – Forcing variables to be nonnegative
a) If a variable is set to be nonpositive;
then it can be easily transformed to another by simply multiplying with -1. Let and we get;
and you need to transform all x’s to in constraints as well.
b) If a variable is free;
then there is a traditional way. In this way, you need to add two nonnegative variables to define x. Let be our nonnegative variables () then set
This is meaningful, because all numbers can be written as a difference of two nonnegative number. So practically, we need to change all x’s in constraints to
This transformation is especially useful if you will use Simplex Algorithm. It is because, since are obviously dependent, they cannot be a basic variable at the same time. Therefore, for instance let say, -5, simplex will select but not . So it’s a useful transformation.
Reference: Sobel, Joel. “Linear Programming Notes V Problem Transformations.” N.p., n.d. Web. 5 Sept. 2012. <http://www.econ.ucsd.edu/~jsobel/172aw02/notes5.pdf>.
Photo taken from Prof. Katta G. Murty