[Ipopt] the particular L-BFGS update; feasibility enforcements; custom linear system solver in Matlab function; disable locking check

Stefan Vigerske stefan at math.hu-berlin.de
Thu Jan 19 03:33:57 EST 2017


On 01/18/2017 09:19 PM, Martin Neuenhofen wrote:
> Dear all,
> we would like to use Ipopt in the following settings:
>    1. How is the Hesse update of the Lagrangian computed in particular? The
>    Hesse is HL, then it is HL= sigma * f + sum_i{ lambda_i * Hc_i } . Are the
>    updates performed for each summand Hc_I and Hf separately or for their sum
>    w.r.t. the difference from one iteration to the next. I am wondering
>    because in the first case there would be no assurance of conservation of
>    positive definiteness and in the second case there would be issues with
>    regards to that the lambdas change. So do they then freeze the lambdas once
>    for the update?

The L-BFGS approximation is done for HL.
I would think that the Hessian to be approximated is considered as a 
function of x and lambda.

>    2. For our particular application I can easily find feasible starting
>    points. However, if I pass a slightly infeasible initial guess to Ipopt
>    then the inf_pr simply does not converge to 10^-6 . It starts from 0.5,
>    goes to 0.1, and then both the feasibility and the cost-function value grow
>    with each further iteration above 10^5. I already ensured that inf_pr has
>    "original" scaling. I have no idea why Ipopt fails on this one and why in
>    that way (I mean I had at least expected that it would terminate and say "I
>    am unable to find you a feasible point" instead of just messing everything
>    up).

If your point is close to the variable bounds, then it is moved away 
from the bounds before starting. You might want to play with the 
bound_push and bound_frac options to reduce the amount that it is moved.

>    3. How can I make a custom solver? I want something like an iterfunc. I
>    use Matlab so I want to write my own preconditioned iterative saddle solver
>    in Matlab and apply it during each iteration on the KKT system and shift it
>    on my own.

I don't know if that's possible with the C++ interface. Some people have 
implemented customizations of Ipopt that go deep into the algorithm.
However, Ipopt's Matlab interface hasn't been maintained for a while, so 
I doubt that anyone would even add additional functionality in it.

>    4. Can one disable the intrinsic check of Ipopt whether the system is
>    overdetermined (in terms of more equality constraints than degrees of
>    freedom). I want to solve such problems since the equations arise from
>    discretizations so they and their solution have to be interpreted only in a
>    rough manner of being satisfied. In general, does Ipopt hold any features
>    for these kinds of systems (e.g. adaptive stopping criteria s.t. I do not
>    run back into a point of local intersection of two (nearly) collinear
>    equality constraints).

No. If you think that equality constraints don't need to be satisfied, 
then you should relax them to inequalities.


> We are happy for any information on either of these bullets, please as
> exhaustive as possible.
> Kind regards,
> Martin
> _______________________________________________
> Ipopt mailing list
> Ipopt at list.coin-or.org
> http://list.coin-or.org/mailman/listinfo/ipopt


More information about the Ipopt mailing list