Some solvers (R2, R2N, AL for instance) do not detect unbounded problems. While solving the problem (or subproblem), iterate and / or objective function values diverge, which could cause the solver to crash in the same time.
Here is an exemple on the following problem, with the solver R2 :
problem = "hs378"
nlp = MathOptNLPModel(OptimizationProblems.PureJuMP.eval(Meta.parse(problem))(), name = problem)
quadratic_model = QuadraticModel(nlp, nlp.meta.x0, name = nlp.meta.name)
nlp_quadra = RegularizedNLPModel(nlp, RootNormLhalf(0.5))
[ Info: iter f(x) h(x) √(ξ/ν) ρ σ ‖x‖ ‖s‖ R2
[ Info: 0 -1.8e+01 3.0e+00 1.0e+01 1.3e+00 3.1e+00 2.0e+00 3.3e+00 ↘
[ Info: 1 -6.3e+01 4.7e+00 1.7e+01 2.0e+00 1.0e+00 5.3e+00 1.6e+01 ↘
[ Info: 2 -6.3e+02 9.1e+00 5.3e+01 4.6e+00 3.4e-01 2.2e+01 1.6e+02 ↘
[ Info: 3 -3.9e+04 2.4e+01 4.5e+02 1.3e+01 1.1e-01 1.8e+02 4.0e+03 ↘
[ Info: 4 -2.4e+07 1.3e+02 1.2e+04 4.1e+01 3.8e-02 4.2e+03 3.1e+05 ↘
[ Info: 5 -1.5e+11 1.1e+03 9.7e+05 1.3e+02 1.3e-02 3.2e+05 7.7e+07 ↘
[ Info: 6 -9.4e+15 1.6e+04 2.4e+08 3.8e+02 4.2e-03 7.7e+07 5.8e+10 ↘
[ Info: 7 -5.3e+21 3.9e+05 1.9e+11 1.1e+03 1.4e-03 5.8e+10 1.3e+14 ↘
[ Info: 8 -2.8e+28 1.9e+07 4.2e+14 3.4e+03 4.7e-04 1.3e+14 9.0e+17 ↘
[ Info: 9 -1.3e+36 1.6e+09 2.9e+18 1.0e+04 1.6e-04 9.0e+17 1.9e+22 ↘
[ Info: 10 -5.7e+44 2.3e+11 6.1e+22 3.1e+04 5.2e-05 1.9e+22 1.2e+27 ↘
[ Info: 11 -2.2e+54 5.7e+13 3.8e+27 9.3e+04 1.7e-05 1.2e+27 2.2e+32 ↘
[ Info: 12 -7.6e+64 2.4e+16 7.0e+32 2.8e+05 5.8e-06 2.2e+32 1.2e+38 ↘
[ Info: 13 -2.4e+76 1.8e+19 3.9e+38 8.4e+05 1.9e-06 1.2e+38 2.0e+44 ↘
[ Info: 14 -6.7e+88 2.4e+22 6.6e+44 2.5e+06 6.4e-07 2.0e+44 1.0e+51 ↘
[ Info: 15 -1.7e+102 5.3e+25 3.3e+51 7.6e+06 2.1e-07 1.0e+51 1.5e+58 ↘
[ Info: 16 -3.9e+116 2.1e+29 5.0e+58 2.3e+07 7.2e-08 1.5e+58 7.0e+65 ↘
[ Info: 17 -8.0e+131 1.4e+33 2.3e+66 6.8e+07 2.4e-08 7.0e+65 9.6e+73 ↘
[ Info: 18 -1.5e+148 1.6e+37 3.1e+74 2.0e+08 7.9e-09 9.6e+73 3.9e+82 ↘
[ Info: 19 -2.5e+165 3.2e+41 1.3e+83 6.1e+08 2.6e-09 3.9e+82 4.8e+91 ↘
[ Info: 20 -3.7e+183 1.1e+46 1.5e+92 1.8e+09 8.8e-10 4.8e+91 1.8e+101 ↘
[ Info: 21 -5.0e+202 6.9e+50 5.7e+101 5.5e+09 2.9e-10 1.8e+101 1.9e+111 ↘
[ Info: 22 -6.1e+222 7.2e+55 6.3e+111 1.7e+10 9.8e-11 1.9e+111 6.4e+121 ↘
[ Info: 23 -6.6e+243 1.3e+61 2.1e+122 5.0e+10 3.3e-11 6.4e+121 6.3e+132 ↘
[ Info: 24 -6.5e+265 4.1e+66 2.1e+133 1.5e+11 1.1e-11 6.3e+132 1.9e+144 ↘
[ Info: 25 -5.8e+288 2.2e+72 6.1e+144 NaN 3.6e-12 1.9e+144 1.7e+156 =
Note that IPOPT solver is able to recognize that the problem is unbounded:
EXIT: Iterates diverging; problem might be unbounded.
solver specific:
internal_msg: :Diverging_Iterates
Some solvers (R2, R2N, AL for instance) do not detect unbounded problems. While solving the problem (or subproblem), iterate and / or objective function values diverge, which could cause the solver to crash in the same time.
Here is an exemple on the following problem, with the solver
R2:Note that IPOPT solver is able to recognize that the problem is unbounded: