Article ID: | iaor2007953 |
Country: | Netherlands |
Volume: | 170 |
Issue: | 1 |
Start Page Number: | 36 |
End Page Number: | 63 |
Publication Date: | Nov 2005 |
Journal: | Applied Mathematics and Computation |
Authors: | Arsham H., Cimperman G., Damij N., Damij T., Grad J. |
The simplex algorithm requires artificial variables for solving linear programs, which lack primal feasibility at the origin point. We present a new general-purpose solution algorithm, called Push-and-Pull, which obviates the use of artificial variables. The algorithm consists of preliminaries for setting up the initialization followed by two main phases. The Push Phase develops a basic variable set (BVS) which may or may not be feasible. Unlike simplex and dual simplex, this approach starts with an incomplete BVS initially, and then variables are brought into the basis one by one. If the BVS is complete, but the optimality condition is not satisfied, then Push Phase pushes until this condition is satisfied, using the rules similar to the ordinary simplex. Since the proposed strategic solution process pushes towards an optimal solution, it may generate an infeasible BVS. The Pull Phase pulls the solution back to feasibility using pivoting rules similar to the dual simplex method. All phases use the usual Gauss pivoting row operation and it is shown to terminate successfully or indicates unboundedness or infeasibility of the problem. A computer implementation, which enables the user to run either Push-and-Pull or ordinary simplex algorithms, is provided. The fully coded version of the algorithm is available from the authors upon request. A comparison analysis to test the efficiency of Push-and-Pull algorithm comparing to ordinary simplex is accomplished. Illustrative numerical examples are also presented.