# Presolve Methods

Chapter
Part of the Springer Optimization and Its Applications book series (SOIA, volume 127)

## Abstract

Presolve methods are important in solving LPs, as they reduce the size of the problem and discover whether an LP is unbounded or infeasible. Presolve methods are used prior to the application of an LP algorithm in order to: (i) eliminate redundant constraints, (ii) fix variables, (iii) transform bounds of single structural variables, and (iv) reduce the number of variables and constraints by eliminations. This chapter presents eleven presolve methods used prior to the execution of an LP algorithm: (i) eliminate zero rows, (ii) eliminate zero columns, (iii) eliminate singleton equality constraints, (iv) eliminate kton equality constraints, (v) eliminate singleton inequality constraints, (vi) eliminate dual singleton inequality constraints, (vii) eliminate implied free singleton columns, (viii) eliminate redundant columns, (ix) eliminate implied bounds on rows, (x) eliminate redundant rows, and (xi) make coefficient matrix structurally full rank. Each method is presented with: (i) its mathematical formulation, (ii) a thorough numerical example, and (iii) its implementation in MATLAB. In addition, we discuss how to transform a solution back in terms of the original variables and constraints of the problem (postsolve). Finally, a computational study on benchmark LPs is performed. The aim of the computational study is twofold: (i) compare the execution time and the reduction to the problem size of the aforementioned presolve methods, and (ii) investigate the impact of preprocessing prior to the application of LP algorithms. The execution time and the number of iterations with and without preprocessing are presented.

## Supplementary material

334954_1_En_4_MOESM1_ESM.zip (14 kb)
chapter 4 (Zip 14 kb)

## References

1. 1.
Adler, I., Resende, M. G., Veiga, G., & Karmarkar, N. (1989). An implementation of Karmarkar’s algorithm for linear programming. Mathematical Programming, 44(1–3), 297–335.
2. 2.
Andersen, E. D., & Andersen, K. D. (1995). Presolving in linear programming. Mathematical Programming, 71(2), 221–245.
3. 3.
Baricelli, P., Mitra, G., & Nygreen, B. (1998). Modelling of augmented makespan assignment problems (AMAPs): Computational experience of applying integer presolve at the modelling stage. Annals of Operations Research, 82, 269–288.
4. 4.
Brearley, A. L., Mitra, G., & Williams, H. P. (1975). Analysis of mathematical programming problems prior to applying the simplex algorithm. Mathematical Programming, 8(1), 54–83.
5. 5.
Chang, S. F., & McCormick, S. T. (1992). A hierarchical algorithm for making sparse matrices sparser. Mathematical Programming, 56(1–3), 1–30.
6. 6.
Cosnard, M., Marrakchi, M., Robert, Y., & Trystram, D. (1986). Gauss elimination algorithms for MIMD computers. In Proceeding of CONPAR 86 (pp. 247–254). Berlin/Heidelberg: Springer.
7. 7.
Douglas, A. (1971). Examples concerning efficient strategies for gaussian elimination. Computing, 8(3–4), 382–394.
8. 8.
Elble, J. M. (2010). Computational experience with linear optimization and related problems. Doctoral dissertation, University of Illinois at Urbana-Champaign, Chicago, USA.Google Scholar
9. 9.
Gondzio, J. (1997). Presolve analysis of linear programs prior to applying an interior point method. INFORMS Journal on Computing, 9(1), 73–91.
10. 10.
Gould, N., & Toint, P. L. (2004). Preprocessing for quadratic programming. Mathematical Programming, 100(1), 95–132.
11. 11.
Hall, J. A., & McKinnon, K. I. (2005). Hyper-sparsity in the revised simplex method and how to exploit it. Computational Optimization and Applications, 32(3), 259–283.
12. 12.
Ioslovich, I. (2001). Robust reduction of a class of large-scale linear programs. SIAM Journal on Optimization, 12(1), 262–282.
13. 13.
Lustig, I. J. (1989). An analysis of an available set of linear programming test problems. Computers & Operations Research, 16(2), 173–184.
14. 14.
Lustig, I. J., Marsten, R. E., & Shanno, D. F. (1994). Interior point methods for linear programming: Computational state of the art. ORSA Journal on Computing, 6(1), 1–14.
15. 15.
McCormick, S. T. (1990). Making sparse matrices sparser: Computational results. Mathematical Programming, 49(1–3), 91–111.
16. 16.
Mészáros, C., & Suhl, U. H. (2003). Advanced preprocessing techniques for linear and quadratic programming. OR Spectrum, 25(4), 575–595.
17. 17.
Swietanowski, A. (1995). A modular presolve procedure for large scale linear programming. Working paper WP 95–113, International Institute for Applied Systems Analysis, Laxenburg, Austria.Google Scholar
18. 18.
Tomlin, J. A., & Welch, J. S. (1983). Formal optimization of some reduced linear programming problems. Mathematical Programming, 27(2), 232–240.
19. 19.
Urdaneta, A. J., Perez, L. G., Gomez, J. F., Feijoo, B., & Gonzalez, M. (2001). Presolve analysis and interior point solutions of the linear programming coordination problem of directional overcurrent relays. International Journal of Electrical Power & Energy Systems, 23(8), 819–825.
20. 20.
Weispfenning, V. (2004). Solving constraints by elimination methods. In Proceedings of the International Joint Conference on Automated Reasoning (pp. 336–341). Berlin/Heidelberg: Springer.
21. 21.
Ye, Y. (1989). Eliminating columns in the simplex method for linear programming. Journal of Optimization Theory and Applications, 63(1), 69–77.