Preconditioning techniques are important in solving LPs, as they improve their computational properties. One of the most widely used preconditioning technique in LP solvers is scaling. Scaling is used prior to the application of an LP algorithm in order to: (i) produce a compact representation of the variable bounds, (ii) reduce the condition number of the constraint matrix, (iii) improve the numerical behavior of the algorithms, (iv) reduce the number of iterations required to solve LPs, and (v) simplify the setup of the tolerances. This chapter presents eleven scaling techniques used prior to the execution of an LP algorithm: (i) arithmetic mean, (ii) de Buchet for the case p = 1, (iii) de Buchet for the case p = 2, (iv) de Buchet for the case p = ∞, (v) entropy, (vi) equilibration, (vii) geometric mean, (viii) IBM MPSX, (ix) Lp-norm for the case p = 1, (x) Lp-norm for the case p = 2, and (xi) Lp-norm for the case p = ∞. Each technique is presented with: (i) its mathematical formulation, (ii) a thorough illustrative numerical example, and (iii) its implementation in MATLAB. Finally, a computational study is performed. The aim of the computational study is twofold: (i) compare the execution time of the scaling techniques, and (ii) investigate the impact of scaling prior to the application of LP algorithms. The execution time and the number of iterations with and without scaling are presented.
- 3.de Buchet, J. (1966). Experiments and statistical data on the solving of large–scale linear programs. In Proceedings of the Fourth International Conference on Operational Research (pp. 3–13). New York: Wiley-Interscience.Google Scholar
- 8.Ploskas, N. (2014). Hybrid optimization algorithms: implementation on GPU. Ph.D. thesis, Department of Applied Informatics, University of Macedonia.Google Scholar
- 9.Ploskas, N., & Samaras, N. (2013). The impact of scaling on simplex type algorithms. In Proceedings of the 6th Balkan Conference in Informatics (pp. 17–22), 19–21 September (ACM, Thessaloniki, Greece).Google Scholar