Interior point methods have taken the world of linear optimization by storm. Explore the path taken by an affine-scaling interior point method (a variant of Karmarkar's original 1984 primal projection method) for a simple linear optimization problem, defined by constraints, objective function, and initial point.

The objective is to maximize subject to . Unlike for most interior point methods, it is NOT necessary for to be non-negative!

This Demonstration shows a variant of Karmarkar's original 1984 primal projection method. The Demonstration uses an affine-scaling method in which the scaled variables are the slack variables, therefore eliminating the need to scale the objective function.

The projection transformation is replaced with an affine transformation, and the potential function is replaced by the objective function. As is common for variations of Karmarkar's algorithm, in every iteration the search direction is the gradient of the projected objective function with respect to the scaled variables.

The parameter gamma is a "dampening factor" strictly between 0 and 1. For real-life problems a gamma close to 1, for example 0.99 or 0.95, is used. Higher gammas result in faster computations because fewer steps are needed, but they can result in overshooting for ill-conditioned problems.

For the problem to be properly defined, the initial point has to be inside the feasible area, the feasible area has to be weakly convex, and the objective function may not proceed along the two bordering faces towards infinity.

The algorithm, despite its simplicity, has beaten several commercial optimization algorithms on the large NETLIB test problems by several 100%. It is on par with several commercial network simplex algorithms for multi-commodity network problems. However, modern primal-dual methods, along with additional numerical techniques such as specialized algorithms for sparse matrices, efficient Cholesky decompositions, and parallel computing, will easily outperform this simple primal affine-scaling method by orders of magnitude.