The ILOG CPLEX Barrier Optimizer is well suited to large, sparse problems. An alternative to the simplex optimizers, it exploits a primal-dual logarithmic barrier algorithm to generate a sequence of strictly positive primal and dual solutions to a problem. ILOG CPLEX finds the primal solutions, conventionally denoted (x, s), from the primal formulation:
Minimize cTx
subject to Ax = b
with these bounds x + s = u and x l
where A is the constraint matrix, including slack and surplus variables; u is the upper and l the lower bounds on the variables.
Simultaneously, ILOG CPLEX automatically finds the dual solutions, conventionally denoted (y, z, w) from the corresponding dual formulation:
Maximize bTy - uTw + lTz
subject to ATy - w + z = c
with these bounds w 0 and z 0
All possible solutions maintain strictly positive primal solutions (x - l, s) and strictly positive reduced costs (z, w) so that the value 0 (zero) forms a barrier for primal and dual variables within the algorithm.
ILOG CPLEX measures progress by the primal feasibility, dual feasibility, and duality gap at each iteration. To measure feasibility, ILOG CPLEX considers the accuracy with which the primal constraints (Ax = b, x + s = u) and dual constraints (ATy + z - w = c) are satisfied. The optimizer stops when it finds feasible primal and dual solutions that are complementary. A complementary solution is one where the sums of the products (xj -lj)zj and (uj - xj)zj are within some tolerance of 0 (zero). Since each (xj -lj), (uj - xj), and zj is strictly positive, the sum can be near zero only if each of the individual products is near zero. The sum of these products is known as the complementarity of the problem.
On each iteration of the barrier optimizer, ILOG CPLEX computes a matrix based on AAT and then computes a Cholesky factor of it. This factored matrix has the same number of nonzeros on each iteration. The number of nonzeros in this matrix is influenced by the barrier ordering parameter. The particular ordering that is most effective depends on the platform (computer hardware and operating system) and the specific problem.
The ILOG CPLEX Barrier Optimizer is appropriate and often advantageous for large problems, for example, those with more than 1000 rows or columns. It is effective on problems with staircase structures or banded structures in the constraint matrix. It is also effective on problems with a small number of nonzeros per column.
Its performance is most dependent on these characteristics:
To decide whether to use the barrier optimizer on a given problem, you should look at both these characteristics. (We explain how to check those characteristics later in this chapter in Step 2 and Step 3.)
Since many users prefer basic solutions because they can be used to restart optimization, the ILOG CPLEX Barrier Optimizer includes basis crossover algorithms. By default, the Interactive Barrier Optimizer baropt
automatically invokes a primal crossover when the barrier algorithm terminates (unless termination occurs abnormally because of insufficient memory or numerical difficulties). Optionally, you can also execute barrier optimization with a dual crossover or with no crossover at all. The section Using the Barrier Optimizer in the Interactive Optimizer explains how to control crossover in the Interactive Optimizer. From the Callable Library, use the routine CPXhybbaropt()
with an argument to indicate crossover.
The barrier optimizer and the simplex optimizers (primal and dual) are fundamentally different approaches to solving linear programming problems. The key differences between them have these implications:
- Simplex solutions are basic solutions. Barrier solutions are not. Consequently, when you use the barrier optimizer alone, you get no basis for advanced restarts. If you want to optimize the same or similar problems repeatedly, the barrier optimizer alone may not be appropriate.
- Also since a barrier solution is not a basic solution, no range information is available for sensitivity analysis when you use the barrier optimizer alone.
- Furthermore, barrier solutions tend to be midface solutions. In cases where multiple optima exist, barrier solutions tend to place the variables at values between their bounds, whereas in basic solutions from a simplex technique, the values of the variables are more likely to be at either their upper or their lower bound. While objective values will be the same, the nature of the solutions can be very different.