Max-balanced Hungarian scalings

Hook, James and Pestana, Jennifer and Tisseur, Francoise and Hogg, Jonathan (2019) Max-balanced Hungarian scalings. SIAM Journal on Matrix Analysis and Applications, 40 (1). pp. 320-346. ISSN 0895-4798

[img]
Preview
Text (Hook-etal-SIAM-2019-Max-balanced-Hungarian)
Hook_etal_SIAM_2019_Max_balanced_Hungarian.pdf
Final Published Version
License: Creative Commons Attribution 4.0 logo

Download (802kB)| Preview

    Abstract

    A Hungarian scaling is a diagonal scaling of a matrix that is typically applied along with a permutation to a sparse linear system before calling a direct or iterative solver. A matrix that has been Hungarian scaled and reordered has all entries of modulus less than or equal to 1 and entries of modulus 1 on the diagonal. An important fact that has been largely overlooked by the previous research into Hungarian scaling of linear systems is that a given matrix typically has a range of possible Hungarian scalings and direct or iterative solvers may behave quite differently under each of these scalings. Since standard algorithms for computing Hungarian scalings return only one scaling, it is natural to ask whether a superior performing scaling can be obtained by searching within the set of all possible Hungarian scalings. To this end we propose a method for computing a Hungarian scaling that is optimal from the point of view of a measure of diagonal dominance. Our method uses max-balancing, which minimizes the largest off-diagonal entries in the scaled and permuted matrix. Numerical experiments illustrate the increased diagonal dominance produced by max-balanced Hungarian scaling as well as the reduced need for row interchanges in Gaussian elimination with partial pivoting and the improved stability of LU factorizations without pivoting. We additionally find that applying the max-balancing scaling before computing incomplete LU preconditioners improves the convergence rate of certain iterative methods. Our numerical experiments also show that the Hungarian scaling returned by the HSL code MC64 has performance very close to that of the optimal max-balanced Hungarian scaling, which further supports the use of this code in practice.