Mehrotra's predictor–corrector method in optimization is a specific interior point method for linear programming.
[1] The method is based on the fact that at each iteration of an interior point algorithm it is necessary to compute the Cholesky decomposition (factorization) of a large matrix to find the search direction.
Therefore, it makes sense to use the same decomposition more than once before recomputing it.
At each iteration of the algorithm, Mehrotra's predictor–corrector method uses the same Cholesky decomposition to find two different directions: a predictor and a corrector.
The idea is to first compute an optimizing search direction based on a first order term (predictor).
The step size that can be taken in this direction is used to evaluate how much centrality correction is needed.
Although there is no theoretical complexity bound on it yet, Mehrotra's predictor–corrector method is widely used in practice.
[2] Its corrector step uses the same Cholesky decomposition found during the predictor step in an effective way, and thus it is only marginally more expensive than a standard interior point algorithm.
However, the additional overhead per iteration is usually paid off by a reduction in the number of iterations needed to reach an optimal solution.
It also appears to converge very fast when close to the optimum.
The derivation of this section follows the outline by Nocedal and Wright.
[3] A linear program can always be formulated in the standard form
The Karush-Kuhn-Tucker (KKT) conditions for the problem are
This is achieved by solving the following system of linear equations
constitute an important measure of the desirability of a certain set
(the superscripts denote the value of the iteration number,
This is called the duality measure and is defined by
the centering step can be computed as the solution to
Considering the system used to compute the affine scaling direction defined in the above, one can note that taking a full step in the affine scaling direction results in the complementarity condition not being satisfied:
As such, a system can be defined to compute a step that attempts to correct for this error.
This system relies on the previous computation of the affine scaling direction.
The predictor, corrector and centering contributions to the system right hand side can be aggregated into a single system.
This system will depend on the previous computation of the affine scaling direction, however, the system matrix will be identical to that of the predictor step such that its factorization can be reused.
The predictor-corrector algorithm then first computes the affine scaling direction.
Secondly, it solves the aggregated system to obtain the search direction of the current iteration.
The affine scaling direction can be used to define a heuristic to adaptively choose the centering parameter as
is the duality measure of the affine step and
is the duality measure of the previous iteration.
[3] In practical implementations, a version of line search is performed to obtain the maximal step length that can be taken in the search direction without violating nonnegativity,
[3] Although the modifications presented by Mehrotra were intended for interior point algorithms for linear programming, the ideas have been extended and successfully applied to quadratic programming as well.