[Coin-ipopt] IPOPT remains dual infeasible
Peter Carbonetto
pcarbo at cs.ubc.ca
Mon Feb 12 18:41:20 EST 2007
THE SCENARIO: I have an optimization problem with about 60 variables
(later this will grow), a nonlinear objective, bound constraints (all
the variables must lie in the positive quadrant) and a sparse set of
linear constraints.
[My problem consists of solving inference in a Bayesian model using a
variational approximation.]
THE GOOD NEWS: IPOPT converges to a very reasonable solution after about
80 iterations, and does so using a limited-memory quasi-Newton
approximation to the Hessian (limited_memory_max_history = 5) because I
haven't bothered to compute the second derivatives. I know the solution is
reasonable because there is an existing algorithm tailored to my problem
that comes up with the same answer.
THE BAD NEWS: IPOPT fails to converge to a point that is dual
feasible, or takes an extremely long time to do so. The output from
IPOPT looks something like this:
iter objective inf_pr inf_du lg(mu) ||d||
0 9.4872744e+01 2.22e-16 4.89e+02 0.0 0.00e+00
1 5.4935737e+01 2.22e-16 7.25e+00 -4.0 2.80e+01
2 5.3405603e+01 1.11e-16 5.21e+00 -1.3 4.36e-02
3 4.6288683e+01 0.00e+00 2.84e+00 -0.8 3.29e-01
. . .
85 2.6698305e+01 2.22e-16 5.84e-02 -2.6 3.35e-02
86 2.6698300e+01 2.22e-16 2.42e-02 -2.6 5.99e-02
87 2.6658051e+01 2.22e-16 1.91e+00 -3.9 8.45e-03
88 2.6669530e+01 2.22e-16 2.75e-01 -3.1 1.11e-02
Notice that the dual variables have failed to converge to the feasible
region. Currently, I workaround this problem by setting a high
tolerance for dual infeasibility (dual_inf_tol = 0.9).
I'm wondering if anyone may have some deeper understanding of
primal-dual methods than myself and may be able to explain why this is
going on. I suspect that the problem may have something to do with the
quasi-Newton approximation, but I can't be sure since I haven't coded
the exact Hessian.
[By the way, Andreas, I've done all this using a MATLAB interface I've
developed. There were a few significant obstacles in getting IPOPT to
interface with MATLAB, but at this point it is working quite
nicely. More on that in the not-too-distant future.]
Thank you,
Peter Carbonetto
Dept. of Computer Science
University of British Columbia
More information about the Coin-ipopt
mailing list