The OPTLP Procedure

The Interior Point Algorithm

The interior point algorithm in PROC OPTLP implements an infeasible primal-dual predictor-corrector interior point algorithm. To illustrate the algorithm and the concepts of duality and dual infeasibility, consider the following LP formulation (the primal):

StartLayout 1st Row 1st Column min 2nd Column bold c Superscript normal upper T Baseline bold x 2nd Row 1st Column subject to 2nd Column bold upper A bold x greater-than-or-equal-to bold b 3rd Row 1st Column Blank 2nd Column bold x greater-than-or-equal-to bold 0 EndLayout

The corresponding dual formulation is as follows:

StartLayout 1st Row 1st Column max 2nd Column bold b Superscript normal upper T Baseline bold y 3rd Column Blank 4th Column Blank 5th Column Blank 6th Column Blank 2nd Row 1st Column subject to 2nd Column bold upper A Superscript normal upper T Baseline bold y 3rd Column plus 4th Column bold w 5th Column equals 6th Column bold c 3rd Row 1st Column Blank 2nd Column Blank 3rd Column Blank 4th Column bold y 5th Column greater-than-or-equal-to 6th Column bold 0 4th Row 1st Column Blank 2nd Column Blank 3rd Column Blank 4th Column bold w 5th Column greater-than-or-equal-to 6th Column bold 0 EndLayout

where bold y element-of double-struck upper R Superscript m refers to the vector of dual variables and bold w element-of double-struck upper R Superscript n refers to the vector of dual slack variables.

The dual formulation makes an important contribution to the certificate of optimality for the primal formulation. The primal and dual constraints combined with complementarity conditions define the first-order optimality conditions, also known as KKT (Karush-Kuhn-Tucker) conditions, which can be stated as follows:

StartLayout 1st Row 1st Column bold upper A bold x minus bold s 2nd Column equals 3rd Column bold b 4th Column left-parenthesis normal p normal r normal i normal m normal a normal l normal f normal e normal a normal s normal i normal b normal i normal l normal i normal t normal y right-parenthesis 2nd Row 1st Column bold upper A Superscript normal upper T Baseline bold y plus bold w 2nd Column equals 3rd Column bold c 4th Column left-parenthesis normal d normal u normal a normal l normal f normal e normal a normal s normal i normal b normal i normal l normal i normal t normal y right-parenthesis 3rd Row 1st Column bold upper W bold upper X bold e 2nd Column equals 3rd Column bold 0 4th Column left-parenthesis normal c normal o normal m normal p normal l normal e normal m normal e normal n normal t normal a normal r normal i normal t normal y right-parenthesis 4th Row 1st Column bold upper S bold upper Y bold e 2nd Column equals 3rd Column bold 0 4th Column left-parenthesis normal c normal o normal m normal p normal l normal e normal m normal e normal n normal t normal a normal r normal i normal t normal y right-parenthesis 5th Row 1st Column bold x comma bold y comma bold w comma bold s 2nd Column greater-than-or-equal-to 3rd Column bold 0 4th Column Blank EndLayout

where bold e identical-to left-parenthesis 1 comma ellipsis comma 1 right-parenthesis Superscript normal upper T of appropriate dimension and bold s element-of double-struck upper R Superscript m is the vector of primal slack variables.

Note: Slack variables (the s vector) are automatically introduced by the algorithm when necessary; it is therefore recommended that you not introduce any slack variables explicitly. This enables the algorithm to handle slack variables much more efficiently.

The letters bold upper X comma bold upper Y comma bold upper W comma and bold upper S denote matrices with corresponding x, y, w, and s on the main diagonal and zero elsewhere, as in the following example:

bold upper X identical-to Start 4 By 4 Matrix 1st Row 1st Column x 1 2nd Column 0 3rd Column midline-horizontal-ellipsis 4th Column 0 2nd Row 1st Column 0 2nd Column x 2 3rd Column midline-horizontal-ellipsis 4th Column 0 3rd Row 1st Column vertical-ellipsis 2nd Column vertical-ellipsis 3rd Column down-right-diagonal-ellipsis 4th Column vertical-ellipsis 4th Row 1st Column 0 2nd Column 0 3rd Column midline-horizontal-ellipsis 4th Column x Subscript n EndMatrix

If left-parenthesis bold x Superscript asterisk Baseline comma bold y Superscript asterisk Baseline comma bold w Superscript asterisk Baseline comma bold s Superscript asterisk Baseline right-parenthesis is a solution of the previously defined system of equations that represent the KKT conditions, then bold x Superscript asterisk is also an optimal solution to the original LP model.

At each iteration the interior point algorithm solves a large, sparse system of linear equations,

Start 2 By 2 Matrix 1st Row 1st Column bold upper Y Superscript negative 1 Baseline bold upper S 2nd Column bold upper A 2nd Row 1st Column bold upper A Superscript normal upper T Baseline 2nd Column minus bold upper X Superscript negative 1 Baseline bold upper W EndMatrix StartBinomialOrMatrix normal upper Delta bold y Choose normal upper Delta bold x EndBinomialOrMatrix equals StartBinomialOrMatrix normal upper Xi Choose normal upper Theta EndBinomialOrMatrix

where normal upper Delta bold x and normal upper Delta bold y denote the vector of search directions in the primal and dual spaces, respectively, and normal upper Theta and normal upper Xi constitute the vector of the right-hand sides.

The preceding system is known as the reduced KKT system. The interior point algorithm uses a preconditioned quasi-minimum residual algorithm to solve this system of equations efficiently.

An important feature of the interior point algorithm is that it takes full advantage of the sparsity in the constraint matrix, thereby enabling it to efficiently solve large-scale linear programs.

The interior point algorithm works simultaneously in the primal and dual spaces. It attains optimality when both primal and dual feasibility are achieved and when complementarity conditions hold. Therefore, it is of interest to observe the following four measures:

  • Relative primal infeasibility measure alpha:

    alpha equals StartFraction double-vertical-bar bold upper A bold x minus bold b minus bold s double-vertical-bar Subscript 2 Baseline Over double-vertical-bar bold b double-vertical-bar Subscript 2 Baseline plus 1 EndFraction
  • Relative dual infeasibility measure beta:

    beta equals StartFraction double-vertical-bar bold c minus bold upper A Superscript upper T Baseline bold y minus bold w double-vertical-bar Subscript 2 Baseline Over double-vertical-bar bold c double-vertical-bar Subscript 2 Baseline plus 1 EndFraction
  • Relative duality gap delta:

    delta equals StartFraction StartAbsoluteValue bold c Superscript upper T Baseline bold x minus bold b Superscript upper T Baseline bold y EndAbsoluteValue Over StartAbsoluteValue bold c Superscript upper T Baseline bold x EndAbsoluteValue plus 1 EndFraction
  • Absolute complementarity gamma:

    gamma equals sigma-summation Underscript i equals 1 Overscript n Endscripts x Subscript i Baseline w Subscript i Baseline plus sigma-summation Underscript i equals 1 Overscript m Endscripts y Subscript i Baseline s Subscript i

where double-vertical-bar v double-vertical-bar Subscript 2 is the Euclidean norm of the vector v. These measures are displayed in the iteration log.

Last updated: March 04, 2026