M1CG1 - Inria - Institut national de recherche en sciences et technologies du numérique Accéder directement au contenu
Logiciel Année : 2011

M1CG1

Résumé

The module M1CG1 solves for x in Rn the linear system

   (LS)    Ax=b,
by a possibly preconditioned Fletcher-Reeves conjugate gradient (CG) algorithm. In this system, the n x n matrix A and the vector b and Rn are supposed to be known. It is assumed that the matrix A is symmetric. Therefore, solving the linear system is equivalent to finding a stationary point of the minimization problem

   (QP)    infx  (12) xT Ax-bT x.
To be sure to be able to solve the linear system (LS) [resp.\ the minimization problem (QP)] for an arbitrary b in Rn, the matrix A must be nonsingular [resp.\ positive definite]. When A is positive definite, (LS) and (QP) are equivalent. If the CG algorithm encounters a quasi-negative curvature direction, which is a conjugate direction v satisfying

    vT Av ≤ ν ∥ v ∥2,
for some given threshold ν\geq0, M1CG1 just stops. In this inequality, ∥ ∙ ∥ $ denotes the Euclidean norm. The way A is actually stored is irrelevant for M1CG1, since the algorithm requires only products Av of A times various vectors v and since this operation is supposed to be done in a user-supplied subroutine. This gives the possibility to use the code even when A is not known explicitly. M1CG1 has the nice feature of being able to build itself a preconditioning matrix while it solves the linear system (LS). This matrix is an approximation of A-1 and can then be used to precondition a subsequent linear system with the same matrix A or a matrix close to A, and a different right-hand side. The preconditioning matrix is formed by BFGS updates. It is also possible to form an l-BFGS preconditioning matrix, so that the solver is adapted to problems of very large dimension. M1CG1 can also improve a previously built preconditioner; this feature is however presently limited by the fact that the method used to improve the preconditioner (i.e., full BFGS updates or l-BFGS updates with a given selection procedure) must be the same as the used to build the previous preconditioner. Another feature of M1CG1 is to be able to solve in parallel two linear systems: (LS) and

    (LS')    Ax'=b',
The latter system uses the same matrix A as in (LS), but another right-hand side b'. The second linear system (LS') is solved using the conjugate directions generated by the CG iterations for solving (LS). This means that the two systems are solved without increasing the number of matrix-vector products. This feature is useful for the truncated SQP algorithm in constrained optimization.
18 Consultations
0 Téléchargements

Partager

Gmail Facebook X LinkedIn More