[Ipopt] Problem setting the convergence tolerance using the "tol" option in Matlab
Uwe Sander
sander at tum.de
Tue Mar 2 03:39:37 EST 2010
Hi Andreas,
thanks for these useful tips. :-)
I am now sure that the Matlab interface is not the problem. The "tol"
option is passed correctly to Ipopt. The problem rather seems to be in
the computation of the NLP error which is significant for the
convergence tolerance. When the optimisation stops at e.g. -0.999 (-1 is
the optimimum) the corresponding NLP error will be of the order of 10^0,
instead of the order of 10^(-3) (what I would expect in all my naivety
for this example).
I am not sure if setting the "obj_scaling_factor" is the right thing to
do in this case or if there is something else I have overlooked.
Thanks again,
Uwe
On 02/26/2010 10:37 PM, Andreas Waechter wrote:
> Hallo Uwe,
>
> I just tried it myself (using the new MatlabInterface) in Ipopt (trunk
> version), and, in the example problem examplehs038, I set
>
> options.ipopt.tol = 1e-2;
>
> After I did this, Ipopt took much fewer iterations, and terminated with a
> tolerance of 1.2e-3 - the iteration before that had an error of 2e-2.
>
> Maybe you are not correctly communicating the options to Ipopt? What
> happens if you set the options in an options file (ipopt.opt)? Also, if
> you set the print_level high enough, you can see what options are given to
> Ipopt and you can verify if Ipopt sees the options you are setting.
>
> Also, maybe your problems is solved so quickly that the first iteration
> with an error better than 1e-2 has an error of already 1e-8?
>
> Anyway, I hope this helps,
>
> Andreas
>
> On Mon, 22 Feb 2010, Uwe Sander wrote:
>
>
>> Hi everybody,
>>
>> I have a minimisation problem where the minimal function value is -1.
>> But I'm happy when Ipopt gets close enough, let's say to -0.99. So I set
>> the "tol" option (in Matlab) to 10^-2 and started the optimisation. But
>> Ipopt still converged with an accuracy of 10^-8 which is the default for
>> "tol". In the documentation I saw that three other criteria play a role
>> when the algorithm terminates: "dual_inf_tol", "primal_inf_tol", and
>> "cmpl_inf_tol". I could set the first and the third of these options but
>> found no way to set the second ("primal_inf_tol"). I ran the
>> optimisation again, having set all accessible options to 10^-2, but got
>> the same result as before: a convergence tolerance of 10^-8.
>>
>> What am I doing wrong?
>> Is there even a direct way to tell Ipopt to stop at -0.99?
>>
>>
>> Best regards,
>> Uwe
>>
>> _______________________________________________
>> Ipopt mailing list
>> Ipopt at list.coin-or.org
>> http://list.coin-or.org/mailman/listinfo/ipopt
>>
>>
>>
>
More information about the Ipopt
mailing list