Forum Discussion

FICO's avatar
FICO
Community Manager
10 years ago

When does the LP status return problem status as "unsolved"?

Hi, I have an LP problem that does not find an optimal solution, but is also not infeasible or unbounded. The getparam("XPRS_LPSTATUS") query returns 7 (XPRS_LP_UNSOLVED).

Any pointers as to why and when this tends to happen would be immensely appreciated.

Many thanks in advance!

2 Replies

  • FICO's avatar
    FICO
    Community Manager

    XPRS_LP_UNSOLVED is the return status when the LP solver fails to solve your problem due to numerical difficulties. This can happen if you are solving your problem with the Barrier solver and it fails to converge to a feasible and optimal solution. Normally, crossover would still be able to clean up after such a Barrier solve, but if you turn crossover off, Xpress would return the XPRS_LP_UNSOLVED status instead.

    If you post the output log from the Xpress-Optimizer, it should be clearer which algorithm was used and why it stopped with this status. In Mosel you enable output logging by calling setparam("XPRS_VERBOSE", true).

  • FICO's avatar
    FICO
    Community Manager

    Hi Michael, many thanks for a quick response. The model definitely uses the Barrier solver, and what's more has crossover turned off (not exactly sure why as I inherited a large part of the code from a colleague).

    I'll rerun the model with the Optimizer output logged and will post back.

    Thanks again.

    Edit: Below is the Optimizer log (I've cut out some of the iteration rows to save space). It appears that primal and dual objective values never really come close?

    Reading Problem \xprs_83c0010

    Problem Statistics

        12747331 (      0 spare) rows

         8710222 (      0 spare) structural columns

        67322229 (      0 spare) non-zero elements

    Global Statistics

               0 entities        0 sets        0 set members

    Minimizing LP \xprs_83c0010

    Original problem has:

      12747331 rows      8710222 cols     67322229 elements

    Presolved problem has:

       3281682 rows      1858248 cols     14776720 elements

    Building dual

    Barrier cache sizes : L1=32K L2=30720K

    Using AVX support

    Cores per CPU (CORESPERCPU): 24

    Barrier starts, using up to 48 threads, 24 cores

    Matrix ordering - Dense cols.:  35172   NZ(L): 240911645   Flops:  91802766682

      Its   P.inf      D.inf      U.inf      Primal obj.     Dual obj.      Compl.

       0  1.39e+011  3.18e+008  0.00e+000 -2.4575688e+018 -2.3511488e+011  9.0e+018

       1  1.01e+011  2.24e+008  0.00e+000 -1.8143030e+018  3.6833580e+014  6.7e+018

       2  7.08e+010  1.70e+008  0.00e+000 -1.2929085e+018  5.5269739e+014  5.2e+018

    ... [Cut out to save space]

      84  5.12e+002  4.27e+004  0.00e+000 -1.0431354e+013  7.8574040e+010  2.1e+009

      85  1.13e+004  4.27e+004  0.00e+000 -1.0435649e+013  7.8573871e+010  2.0e+009

      86  1.13e+004  4.27e+004  0.00e+000 -1.0435649e+013  7.8573853e+010  2.0e+009

    Barrier method finished in 2408 seconds

    ?249 Warning: insufficient improvement found

    Uncrunching matrix

       Its         Obj Value      S   Ninf  Nneg        Sum Inf  Time

         0      -2.59962E+12      B 170839     0    1140.294530  2462

    Problem is unsolved