[Ipopt] mu_target without the hessian of the lagrangian

Pedro Borges pedro.borges.melo at gmail.com
Sun Jan 20 13:59:19 EST 2019


Dear All,

With the options below I could set mu_target without the hessian of the
lagrangian. Other options maybe won't work.

addOption(prob, "hessian_approximation", "limited-memory")
addOption(prob, "mu_target", 1.0)
addOption(prob, "mehrotra_algorithm", "yes")

Best,

Em qui, 17 de jan de 2019 às 11:28, Pedro Borges <
pedro.borges.melo at gmail.com> escreveu:

> Just ignore this email. I had forgotten your reply. Thanks.
>
> Em Qui, 17 de jan de 2019 10:34, Pedro Borges <pedro.borges.melo at gmail.com>
> escreveu:
>
>> Dear Professor,
>>
>> I am really looking forward to your reply.
>>
>> Thanks,
>>
>> Em Qua, 16 de jan de 2019 06:15, Stefan Vigerske <
>> stefan at math.hu-berlin.de> escreveu:
>>
>>> Hi,
>>>
>>> I meant that I don't see where Ipopt would force mu_target to be 0 in
>>> the Ipopt code.
>>>
>>> Using the limited-memory Hessian approximation changes the default for
>>> mu_strategy to adaptive. Maybe that strategy takes mu_target into
>>> account differently, though I don't see that it sets mu_target = 0.
>>> If mu_strategy is adaptive, then option mu_oracle also plays a role.
>>>
>>> And then there is also an option mu_min.
>>>
>>> Stefan
>>>
>>> On 1/15/19 2:01 PM, Pedro Borges wrote:
>>> >   Hi!
>>> >
>>> > Check the code below.
>>> >
>>> > Should I consider this is a problem on the julia side?
>>> >
>>> > using JuMP
>>> > using Ipopt
>>> >
>>> > ###############################################################
>>> >
>>> > #=
>>> > ipoptSolver = IpoptSolver(mu_target = 1.0)
>>> > m = Model(solver=ipoptSolver)
>>> > @variable(m, x >= 0)
>>> > @NLobjective(m, :Min, x)
>>> > solve(m)
>>> > getvalue(x)
>>> > =#
>>> >
>>> > ###############################################################
>>> >
>>> > #=
>>> > ipoptSolver = IpoptSolver(mu_target = 1.0)
>>> > m = Model(solver=ipoptSolver)
>>> > @variable(m, x >= 0)
>>> > JuMP.register(m, :my_objective, 1, (x) -> x, (x) -> 1.0, (x) -> 0.0)
>>> > JuMP.setNLobjective(m, :Min, :(my_objective($(x…))))
>>> > solve(m)
>>> > getvalue(x)
>>> > =#
>>> >
>>> > ###############################################################
>>> >
>>> > #=
>>> > function val(x1, x2)
>>> > return x1 + x2
>>> > end
>>> >
>>> > function grad(result, x1, x2)
>>> > result[1] = 1.0
>>> > result[2] = 1.0
>>> > end
>>> >
>>> > ipoptSolver = IpoptSolver(mu_target = 1.0)
>>> > m = Model(solver=ipoptSolver)
>>> > @variable(m, x[1:2] >= 0)
>>> > JuMP.register(m, :my_objective, 2, val, grad, autodiff=false)
>>> > JuMP.setNLobjective(m, :Min, :(my_objective($(x…))))
>>> > solve(m)
>>> > getvalue(x)
>>> > =#
>>> >
>>> > Em Ter, 15 de jan de 2019 12:17, Stefan Vigerske <
>>> stefan at math.hu-berlin.de>
>>> > escreveu:
>>> >
>>> >> Hi,
>>> >>
>>> >> I do not see where this is happening in the code.
>>> >>
>>> >> Stefan
>>> >>
>>> >> On 1/9/19 2:28 PM, Pedro Borges wrote:
>>> >>> Hello guys!
>>> >>>
>>> >>> Is it possible to use mu_target != 0 without proving the hessian of
>>> the
>>> >>> lagrangian?
>>> >>> If I don't provide the hessian Ipopt sets mu_target = 0 against my
>>> will.
>>> >>>
>>> >>> Best,
>>> >>>
>>> >>>
>>> >>> _______________________________________________
>>> >>> Ipopt mailing list
>>> >>> Ipopt at list.coin-or.org
>>> >>> https://list.coin-or.org/mailman/listinfo/ipopt
>>> >>>
>>> >>
>>> >>
>>> >
>>>
>>>

-- 
Pedro Henrique Borges de Melo
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.coin-or.org/pipermail/ipopt/attachments/20190120/9f8e9b6c/attachment.html>


More information about the Ipopt mailing list