Uno icon indicating copy to clipboard operation
Uno copied to clipboard

Terminate with unboundedness only when primal feasible

Open cvanaret opened this issue 10 months ago • 0 comments

Here's the log for the ipopt preset on this unbounded LP (MOI's test_linear_DUAL_INFEASIBLE). Although we reach feasible iterates (infeasibility in [1e-17, 1e-10]), the filter method allows increases of the infeasibility when the objective simultaneously decreases. At the point where unboundedness is detected, we're not primal feasible.

──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
 iter   LS iter  barrier     step length  phase  regulariz    step norm   objective   primal feas  stationarity  complementarity  status          
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
 0      -        -           -            OPT    -            -           -2.0000e-02 2.0000e-02   2.1667e+00    1.0000e-02       initial point   
 1      1        1.0000e-01  1.0000e+00   OPT    0.0000e+00   1.4833e-01  -2.0167e-01 1.3878e-17   4.8433e+00    1.0613e-01       ✔ (h-type)      
 2      1        1.0000e-01  1.0000e+00   OPT    0.0000e+00   4.3304e-01  -7.7865e-01 2.7756e-17   4.2281e+00    1.1652e-01       ✔ (f-type)      
 3      1        1.0000e-01  1.0000e+00   OPT    0.0000e+00   5.3824e+00  -8.8869e+00 8.2157e-15   1.6262e+00    1.2854e-01       ✔ (f-type)      
 4      1        1.0000e-01  1.0000e+00   OPT    0.0000e+00   3.7302e+02  -5.6819e+02 1.2212e-14   2.7878e+00    2.9589e-01       ✔ (f-type)      
 5      1        1.0000e-01  1.0000e+00   OPT    0.0000e+00   1.0915e+06  -1.6378e+06 1.2052e-10   1.2723e+00    3.7465e+00       ✔ (f-type)      
 6      1        1.0000e-01  1.0000e+00   OPT    0.0000e+00   2.9051e+11  -4.3577e+11 1.1943e-04   1.1741e+00    9.9691e+03       ✔ (f-type)      
 7      1        1.0000e-01  1.0000e+00   OPT    0.0000e+00   7.7294e+18  -1.1594e+19 1.0223e+03   1.1740e+00    1.0000e+09       ✔ (h-type)      
 8      1        1.0000e-01  1.0000e+00   OPT    0.0000e+00   4.4807e+28  -6.7211e+28 2.8213e+00   1.1741e+00    9.9691e+03       ✔ (h-type)      
...
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────

Adding a condition that the current iterate should be primal feasible does not work (see https://github.com/cvanaret/Uno/pull/142).

──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
 iter   LS iter  barrier     step length  phase  regulariz    step norm   objective   primal feas  stationarity  complementarity  status          
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
 0      -        -           -            OPT    -            -           -2.0000e-02 2.0000e-02   2.1667e+00    1.0000e-02       initial point   
 1      1        1.0000e-01  1.0000e+00   OPT    0.0000e+00   1.4833e-01  -2.0167e-01 1.3878e-17   4.8433e+00    1.0613e-01       ✔ (h-type)      
 2      1        1.0000e-01  1.0000e+00   OPT    0.0000e+00   4.3304e-01  -7.7865e-01 2.7756e-17   4.2281e+00    1.1652e-01       ✔ (f-type)      
 3      1        1.0000e-01  1.0000e+00   OPT    0.0000e+00   5.3824e+00  -8.8869e+00 8.2157e-15   1.6262e+00    1.2854e-01       ✔ (f-type)      
 4      1        1.0000e-01  1.0000e+00   OPT    0.0000e+00   3.7302e+02  -5.6819e+02 1.2212e-14   2.7878e+00    2.9589e-01       ✔ (f-type)      
 5      1        1.0000e-01  1.0000e+00   OPT    0.0000e+00   1.0915e+06  -1.6378e+06 1.2052e-10   1.2723e+00    3.7465e+00       ✔ (f-type)      
 6      1        1.0000e-01  1.0000e+00   OPT    0.0000e+00   2.9051e+11  -4.3577e+11 1.1943e-04   1.1741e+00    9.9691e+03       ✔ (f-type)      
 7      1        1.0000e-01  1.0000e+00   OPT    0.0000e+00   7.7294e+18  -1.1594e+19 1.0223e+03   1.1740e+00    1.0000e+09       ✔ (h-type)      
 8      1        1.0000e-01  1.0000e+00   OPT    0.0000e+00   4.4807e+28  -6.7211e+28 2.8213e+00   1.5000e+00    1.0000e+09       ✔ (h-type)      
 9      1        1.0000e-01  1.0000e+00   OPT    0.0000e+00   1.5058e+48  -2.2586e+48 3.2452e+32   -             -                ✘ (filter)      
 -      2        -           5.0000e-01   -      -            7.5288e+47  -1.1293e+48 1.6226e+32   -             -                ✘ (filter)      
 -      3        -           2.5000e-01   -      -            3.7644e+47  -5.6466e+47 8.1130e+31   -             -                ✘ (filter)      
 -      4        -           1.2500e-01   -      -            1.8822e+47  -2.8233e+47 4.0565e+31   -             -                ✘ (filter)      
 -      5        -           6.2500e-02   -      -            9.4110e+46  -1.4117e+47 2.0282e+31   -             -                ✘ (filter)      
 -      6        -           3.1250e-02   -      -            4.7055e+46  -7.0583e+46 1.0141e+31   -             -                ✘ (filter)      
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
 iter   LS iter  barrier     step length  phase  regulariz    step norm   objective   primal feas  stationarity  complementarity  status          
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
 -      7        -           1.5625e-02   -      -            2.3528e+46  -3.5291e+46 5.0706e+30   -             -                ✘ (filter)      
 -      8        -           7.8125e-03   -      -            1.1764e+46  -1.7646e+46 2.5353e+30   -             -                ✘ (filter)      
 -      9        -           3.9062e-03   -      -            5.8819e+45  -8.8228e+45 1.2677e+30   -             -                ✘ (filter)      
 -      10       -           1.9531e-03   -      -            2.9409e+45  -4.4114e+45 6.3383e+29   -             -                ✘ (filter)      
 -      11       -           9.7656e-04   -      -            1.4705e+45  -2.2057e+45 3.1691e+29   -             -                ✘ (filter)      
 -      12       -           4.8828e-04   -      -            7.3524e+44  -1.1029e+45 1.5846e+29   -             -                ✘ (filter)      
 -      13       -           2.4414e-04   -      -            3.6762e+44  -5.5143e+44 7.9228e+28   -             -                ✘ (filter)      
 -      14       -           1.2207e-04   -      -            1.8381e+44  -2.7571e+44 3.9614e+28   -             -                ✘ (filter)      
 -      15       -           6.1035e-05   -      -            9.1904e+43  -1.3786e+44 1.9807e+28   -             -                ✘ (filter)      
 -      16       -           3.0518e-05   -      -            4.5952e+43  -6.8928e+43 9.9035e+27   -             -                ✘ (filter)      
 -      17       -           1.5259e-05   -      -            2.2976e+43  -3.4464e+43 4.9518e+27   -             -                ✘ (filter)      
 -      18       -           7.6294e-06   -      -            1.1488e+43  -1.7232e+43 2.4759e+27   -             -                ✘ (filter)      
 -      19       -           3.8147e-06   -      -            5.7440e+42  -8.6160e+42 1.2379e+27   -             -                ✘ (filter)      
 -      20       -           1.9073e-06   -      -            2.8720e+42  -4.3080e+42 6.1897e+26   -             -                ✘ (filter)      
 -      21       -           9.5367e-07   -      -            1.4360e+42  -2.1540e+42 3.0949e+26   -             -                ✘ (filter)      
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
 iter   LS iter  barrier     step length  phase  regulariz    step norm   objective   primal feas  stationarity  complementarity  status          
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
 -      22       -           4.7684e-07   -      -            7.1800e+41  -1.0770e+42 1.5474e+26   -             -                small step length
 -      -        -           -            -      -            -           -           -            -             -                The inertia correction got unstable (delta_w > threshold)
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────

@leyffer should we simply switch to feasibility restoration when unboundedness is detected and the current iterate is not primal feasible?

For future reference, this is the /media/data/AMPL/MathOptInterface/linear/dual_infeasible instance.

cvanaret avatar Mar 10 '25 09:03 cvanaret