Initializing help system before first use

The Xpress-SLP Log

The Xpress-SLP log consists of log lines of two different types: the output of the underlying XPRS optimizer, and the log of XSLP itself.

By default, messages produced by the nonlinear code are sent to the normal XPRS message callback as controlled by XSLP_ECHOXPRSMESSAGES. It may also be intercepted by a user function using the user output callback; see XSLPsetcbmessage. Users need to define a callback function and print messages to the screen themselves if they wish output to be displayed.

Logging controls

General SLP logging

XPRS_OUTPUTLOG Logging level of the underlying XPRS problem
XPRS_LPLOG Logging frequency for solving the linearization
XPRS_MIPLOG Logging frequency for the MIP solver

Logging for the underlying XPRS problem

XSLP_LOG Level of SLP logging (iteration, penalty, convergence)
XSLP_SLPLOG Logging frequency for SLP iterations
XSLP_MIPLOG MI-SLP specific logging

Special logging settings

XPRS_DCLOG Logging of delayed constraint activation
XSLP_ERRORTOL_P Absolute tolerance for printing error vectors

The structure of the log

The typical log with the default settings starts with statistics about the problem sizes. On the Polygon1.mps example, using the XSLP console program this looks like

[xpress mps] readprob Polygon1.mps
Reading Problem Polygon
Problem Statistics
          11 (      0 spare) rows
          10 (      4 spare) structural columns
           8 (      0 spare) non-zero elements
MIP Entity Statistics
           0 entities        0 sets        0 set members
    PV:       0     DC:       0     DR:       0     EC:       0
    IV:       0     RX:       0     TX:       0     SB:       0
    UF:       0     WT:       0     XV:       0     Total:       0
Xpress-SLP Statistics:
           7 coefficients
           9 SLP variables

The standard XPRS optimizer problem loading statistics is extended with a report about the special structures possibly present in the problem, including DC (delayed constraints), DR (determining rows), EC (enforced constraints), IV (initial values), RX/TX (relative and absolute tolerances), SB (initial step bounds), UF (user functions), WT (initial row weights), followed by a statistics about the number of SLP coefficients and variables.

-----------------------------------------------------------------
 SLP iteration 1, 0s
Minimizing LP Polygon
Original problem has:
        20 rows           27 cols           68 elements
Presolved problem has:
         0 rows            0 cols            0 elements

   Its         Obj Value      S   Ninf  Nneg        Sum Inf  Time
     0       828864.7136      D      0     0        .000000     0
Uncrunching matrix
     0       828864.7136      D      0     0        .000000     0
Optimal solution found
8 unconverged values (at least 1 in active constraints)
Total feasibility error costs 829100.765742

Penalty Error Vectors - Penalties scaled by  200
Variable             Activity       Penalty
BE-V1V4             1381.836001       1.000000
BE-V2V4             1381.834610       1.000000
BE-V3V4             1381.833218       1.000000
Total:              4145.503829
Error Costs: 829100.765742  Penalty Delta Costs: 0.000000  Net Objective: -236.052107

-----------------------------------------------------------------
 SLP iteration 2, 0s
Minimizing LP Polygon
Original problem has:
        20 rows           27 cols           73 elements
Presolved problem has:
         0 rows            0 cols            0 elements

   Its         Obj Value      S   Ninf  Nneg        Sum Inf  Time
     0      -3.13860E-05      D      0     0        .000000     0
Uncrunching matrix
     0      -3.13860E-05      D      0     0        .000000     0
Optimal solution found
4 unconverged values (at least 1 in active constraints)

-----------------------------------------------------------------
 SLP iteration 3, 0s
Minimizing LP Polygon
Original problem has:
        20 rows           27 cols           72 elements
Presolved problem has:
         0 rows            0 cols            0 elements

   Its         Obj Value      S   Ninf  Nneg        Sum Inf  Time
     0      -1.56933E-05      D      0     0        .000000     0
Uncrunching matrix
     0      -1.56933E-05      D      0     0        .000000     0
Optimal solution found

The default solution log consists of the optimizer output of solving the linearizations, followed by statistics of the nonlinear infeasibilities, the penalty and the objective, and the convergence status.

-----------------------------------------------------------------
 Iteration summary
 Itr. LPS    NetObj        ErrorSum     ErrorCost    Unconv. Extended  Action
    1  O   -236.052107   4145.503829   829100.7657        8        0
    2  O  -3.13860E-05       .000000       .000000        4        0
    3  O  -1.56932E-05       .000000       .000000        0        0

Xpress-SLP stopped after 3 iterations. 0 unconverged items
No unconverged values in active constraints

The final iteration summary contains the following fields:

Itr: The iteration number.

LPS: The LP status of the linearization, which can take the following values:

O Linearization is optimal
I Linearization is infeasible
U Linearization is unbounded
X Solving the linearization was interupted

NetObj: The net objective of the SLP iteration.

ErrorSum: Sum of the error delta variables. A measure of infeasibility.

ErrorCost: The value of the weighted error delta variables in the objective. A measure of the effort needed to push the model towards feasiblity.

Unconv: The number of SLP variables that are not converged.

Extended: The number of SLP variables that are converged, but only by extended criteria

Action: The special actions that happened in the iteration. These can be

* A new incumbent solution was found
0 Failed line search (non-improving)
A Adaptive iterations were enabled
B Enforcing step bounds
C Variable clamping was applied
D The determining column filter was applied
E Some infeasible rows were enforced
F Function evaluation error
G Discrete variables were fixed
I At least one working problem was unexpectedly infeasible
K Optimality validation induces further iterations
P The solution needed polishing, postsolve instability
P! Solution polishing failed
R Penalty error vectors were removed
s Switching to primal simplex
S Step bound induced infeasibility was repaired
V Feasiblity validation induces further iterations

The presence of a P! suggests that the problem is particularly hard to solve without postsolve, and the model might benefit from setting XSLP_NOLPPOLISHING on XSLP_ALGORITHM (please note, that this should only be considered if the solution polishing features is very slow or fails, as the numerical inaccuracies it aims to remove can cause other problems to the solution process).


© 2001-2025 Fair Isaac Corporation. All rights reserved. This documentation is the property of Fair Isaac Corporation (“FICO”). Receipt or possession of this documentation does not convey rights to disclose, reproduce, make derivative works, use, or allow others to use it except solely for internal evaluation purposes to determine whether to purchase a license to the software described in this documentation, or as otherwise set forth in a written software license agreement between you and FICO (or a FICO affiliate). Use of this documentation and the software described in it must conform strictly to the foregoing permitted uses, and no other use is permitted.