MATLAB crashes when IPOPT converges to machine precision
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
coinor-ipopt (Ubuntu) |
Incomplete
|
Undecided
|
Greg |
Bug Description
Dear all,
I observed, that MATLAB crashes when IPOPT converges very close or even beyond the machine precision. I tried that both with the mex binaries provided at the site version 3.11.8 and the mex files compiled manually following the instructions for version 3.11.9. Both Matlab R2012b and R2014a were tested. It seems that it is independent of any compilation details and appears only when some of the several tolerances (it is not clear which one) converges to or below machine precision. Below
I am running the examplelasso.m, where the tolerance was set to 1e-17 to force the reproduction of the bug. At iteration 14 MATLAB crashes so we do not see the iteration 15. The same thing happens for several different examples when the tolerance is set close to machine epsilon.
This is Ipopt version 3.11.9, running with linear solver ma57.
Number of nonzeros in equality constraint Jacobian...: 0
Number of nonzeros in inequality constraint Jacobian.: 32
Number of nonzeros in Lagrangian Hessian.
Total number of variables.
Total number of equality constraints.
Total number of inequality constraints.
inequality constraints with only lower bounds: 16
inequality constraints with lower and upper bounds: 0
inequality constraints with only upper bounds: 0
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
0 2.0362309e+03 0.00e+00 3.39e+01 0.0 0.00e+00 - 0.00e+00 0.00e+00 0
1 1.2058144e+03 0.00e+00 2.54e+01 -6.0 3.86e+00 - 2.12e-01 2.56e-01f 1
2 7.1857478e+01 0.00e+00 5.91e-01 0.1 7.22e+00 - 7.18e-01 1.00e+00f 1
3 6.7127651e+01 0.00e+00 6.28e-07 -1.2 7.90e-01 - 1.00e+00 1.00e+00f 1
4 5.6437844e+01 0.00e+00 2.21e-03 -2.0 1.86e+00 - 1.00e+00 9.53e-01f 1
5 5.5727100e+01 0.00e+00 3.43e-03 -7.8 1.88e-01 - 9.91e-01 8.26e-01f 1
6 5.5643835e+01 0.00e+00 1.31e-02 -4.4 3.30e-02 - 1.00e+00 7.77e-01f 1
7 5.5629288e+01 0.00e+00 5.37e-03 -5.1 1.07e-02 - 1.00e+00 8.69e-01f 1
8 5.5626581e+01 0.00e+00 7.28e-05 -6.2 5.04e-03 - 1.00e+00 9.97e-01f 1
9 5.5626338e+01 0.00e+00 1.02e-12 -7.0 1.46e-03 - 1.00e+00 1.00e+00f 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
10 5.5626323e+01 0.00e+00 5.13e-06 -11.9 2.14e-04 - 1.00e+00 9.95e-01f 1
11 5.5626323e+01 0.00e+00 6.58e-15 -13.7 5.83e-06 - 1.00e+00 1.00e+00h 1
12 5.5626323e+01 0.00e+00 4.52e-15 -17.0 2.89e-09 - 1.00e+00 1.00e+00h 1
13 5.5626323e+01 0.00e+00 5.75e-15 -17.3 1.36e-15 - 1.00e+00 1.00e+00 0
14 5.5626323e+01 5.02e-17 4.19e-15 -17.3 4.27e-16 - 1.00e+00 1.00e+00T 0
Changed in coinor-ipopt (Ubuntu): | |
assignee: | nobody → Greg (gregmainland) |
It sounds like this bug is unrelated to the coinor-ipopt package in ubuntu, is that correct? Do you have the libcoinor-ipopt package installed? You might try uninstalling it if you do. As MATLAB is proprietary software this is difficult to debug.
Can you provide a stack trace of the crash?