[Ipopt] Bound-constrained solution worst than initial guess
Andreas Waechter
andreasw at watson.ibm.com
Thu Jun 5 13:54:42 EDT 2008
Hi Rafael,
> I've found a solution for my problem by adjusting the value of the
> option bound_mult_init_val from 1 to 0.001.
>
> I'm not sure about the actual meaning of that option but it did the
> trick.
It means that the dual variables are not initialized to 1, but to 0.001
instead.
A related option is the bound_mult_init_method option. By default, it is
set to "constant", which means that all bound multiplier variables get the
same value (determined by bound_mult_init_val). But if you have a good
starting point, it might be better to initialize the multipliers according
to how close the variables are to their bounds. If you set the
bound_mult_init_method option to "mu-based", it will set the initial value
for each bound multiplier z_i to
z_i = mu/s_i
where mu is the initial value of the barrier parameter (mu_init), and s_i
is the value of the slack corresponding to the bound, i.e., the distance
of the initial value to the bound.
So, in your context, it might be useful to choose bound_mult_init_method
as mu-based, and to choose a relatively small value of the initial barrier
parameter (mu_iniy = 1e-3 or so). But maybe it doesn't help ;-)
Another thing: For your case it might also be useful to increase the
"weight" of the objective function - if the objective function gradients
are small, the algorithm might satisfy the termination criteria too easily
and you get a suboptimal solution. So, it might be worth tring to
increase the value of "obj_scaling_factor"
Regards,
Andreas
>
> Regards.
>
> On Thu, 2008-06-05 at 12:00 -0400, ipopt-request at list.coin-or.org wrote:
>> Dear all,
>>
>> I'm trying to solve a small bound-constrained problem with Ipopt. I'm
>> giving the analytic first-order derivatives and no hessian information.
>>
>> The problem is, I have a very good initial estimation of the optimum.
>> With my initial estimative, the objective function evaluates to
>> -2.6903480e+01. My initial estimate is feasible with respect to the
>> bounds and there is no additional constraints. My doubt is: how can
>> Ipopt find a solution which is worst ?(-2.6826471985692432e+01) than my
>> initial guess, if the initial guess is a feasible solution? Is that
>> something related with the tolerances or options?
>>
>> Thank you in advance.
>>
>> By the way, the derivative checker cannot find any errors on my
>> derivatives.
>>
>> It follows the output for the problem:
More information about the Ipopt
mailing list