Interpreting the Barrier Log File

Like the ILOG CPLEX Simplex Optimizers, the ILOG CPLEX Barrier Optimizer records information about its progress in a log file as it works. Some users find it helpful to keep a new log file for each session. By default, ILOG CPLEX records information in a file named cplex.log. In the:

You can control the level of information about barrier optimization that ILOG CPLEX records in the log file.

To give you an idea about a barrier log file, here is the log file for a pure barrier optimization (that is, the baropt command with the stop option) at display level one (the default).

Tried aggregator 1 time.

LP Presolve eliminated 9 rows and 11 columns.

Aggregator did 6 substitutions.

Reduced LP has 12 rows, 15 columns, and 38 nonzeros.

Presolve time = 0.00 sec.

Number of nonzeros in lower triangle of A*A' = 26

Using Approximate Minimum Degree ordering

Total time for automatic ordering = 0.00 sec.

Summary statistics for Cholesky factor:

Rows in Factor = 12

Integer space required = 12

Total non-zeros in factor = 78

Total FP ops to factor = 650

Itn Primal Obj Dual Obj Prim Inf Upper Inf Dual Inf

0 -1.3177911e+01 -1.2600000e+03 6.55e+02 0.00e+00 3.92e+01

1 -4.8683118e+01 -5.4058675e+02 3.91e+01 0.00e+00 1.18e+01

2 -1.6008142e+02 -3.5969226e+02 1.35e-13 7.11e-15 5.81e+00

3 -3.5186681e+02 -6.1738305e+02 1.59e-10 1.78e-15 5.16e-01

4 -4.5808732e+02 -4.7450513e+02 5.08e-12 1.95e-14 4.62e-02

5 -4.6435693e+02 -4.6531819e+02 1.66e-12 1.27e-14 1.59e-03

6 -4.6473085e+02 -4.6476678e+02 5.53e-11 2.17e-14 2.43e-15

7 -4.6475237e+02 -4.6475361e+02 5.59e-13 2.99e-14 2.19e-15

8 -4.6475312e+02 -4.6475316e+02 1.73e-13 1.55e-14 1.17e-15

9 -4.6475314e+02 -4.6475314e+02 1.45e-13 2.81e-14 2.17e-15

Barrier - Optimal: Objective = -4.6475314194e+02

Solution time = 0.01 sec. Iterations = 9

Preprocessing in the Log File

The opening lines of that log file record information about preprocessing by the ILOG CPLEX presolver and aggregator. After those preprocessing statistics, the next line records the number of nonzeros in the lower triangle of a particular matrix, AAT, denoted A*A' in the log file.

Nonzeros in Lower Triangle of AAT in the Log File

The number of nonzeros in the lower triangle of AAT gives an early indication of how long each barrier iteration will take. The larger this number, the more time each barrier iteration requires. If this number is close to 50% of the square of the number of rows, then the problem may contain dense columns that are not being detected. In that case, examine the histogram of column counts; then consider setting the barrier column-nonzeros parameter to a value that enables ILOG CPLEX to treat more columns as being dense.

Ordering-Algorithm Time in the Log File

After the number of nonzeros in the lower triangle of AAT, ILOG CPLEX records the time required by the ordering algorithm. (The ILOG CPLEX Barrier Optimizer offers you a choice of four ordering algorithms, explained in Choosing an Ordering Algorithm.) This line in the log file verifies that ILOG CPLEX is using the order you chose.

Cholesky Factor in the Log File

After the time required by the ordering algorithm, ILOG CPLEX records information about the Cholesky factor. ILOG CPLEX computes this matrix on each iteration. The number of rows in the Cholesky factor represents the number after preprocessing. The size of the dense window indicates how dense the factored matrix is. If the size of the dense window is large with respect to the number of rows, then the Cholesky factor is dense, and consequently, the ILOG CPLEX Barrier Optimizer will require more time per iteration.

The next line of information about the Cholesky factor-integer space required-indicates the amount of memory needed to store the sparsity pattern of the factored matrix. If this number is low, then the factor can be computed more quickly than when the number is high.

Information about the Cholesky factor ends with the number of nonzeros in the factored matrix. This number is directly related to the time required per iteration of the ILOG CPLEX Barrier Optimizer. In fact, the difference between this number and the number of nonzeros in AAT indicates the fill-level of the Cholesky factor. If the fill-level is large, consider an alternate ordering algorithm.

Iteration Progress in the Log File

After the information about the Cholesky factor, the log file records progress at each iteration. It records both primal and dual objectives (as Primal Obj and Dual Obj) per iteration.

It also records absolute infeasibilities per iteration. Internally, the ILOG CPLEX Barrier Optimizer treats inequality constraints as equality constraints with added slack and surplus variables. Consequently, primal constraints in a problem are written as Ax = b and x + s = u, and the dual constraints are written as ATy + z - w = c. As a result, in the log file, the infeasibilities represent norms, as summarized in Table 4.10.

Table 4.10 Infeasibilities and Norms in the Log File of a Barrier Optimization

Infeasibility 
In log file 
Norm 
primal  
Prim Inf 
|b - Ax| 
upper 
Upper Inf 
|u - (x + s)| 
dual 
Dual Inf 
|c - yA - z + w| 

If solution values are large in absolute value, then the infeasibilities may appear inordinately large because they are recorded in the log file in absolute terms. The optimizer uses relative infeasibilities as termination criteria.

Infeasibility Ratio in the Log File

If you are using one of the barrier infeasibility algorithms available in the ILOG CPLEX Barrier Optimizer (that is, in the Interactive Optimizer you have used the command set barrier algorithm 1 or set barrier algorithm 2 or from the Callable Library, you used the routine CPXsetintparam() to set the parameter CPX_PARAM_BARALG to the value 1 or 2), then ILOG CPLEX records an additional column of output titled Inf Ratio, the infeasibility ratio. This ratio, always positive, is a measure of progress for that particular algorithm. In a problem with an optimal solution, you will see this ratio increase to a large number. In contrast, in a problem that is primal infeasible or dual infeasible, this ratio will decrease to a very small number.


Previous Page: Controlling Crossover  Return to Top Next Page: Understanding Solution Quality from the Barrier LP Optimizer