Jörg Schaible a écrit :
> Hi Luc,
> 
> Luc Maisonobe wrote:
> 
>> Jörg Schaible a écrit :
>>> Hi Luc,
>>>
> [snip]
> 
>>> we're definitely on the right track. After changing the loop in
>>> TestProblem3 the tests run through. However, now I have two failing
>>> tests:
>> The two tests are in fact the same test repeated. The first occurrence
>> is in the deprecated package estimation which will be removed at some
>> point in the future and the second test is in the new
>> optimization.general package.
>>
>> Could you change in the MinPackTest.java from either package the
>> checkTheoreticalMinCost method to add a print statement as in the
>> example below and send the result you get when running MinPackTest ?
>>
>>
>> public boolean checkTheoreticalMinCost(double rms) {
>>   double threshold = costAccuracy * (1.0 + theoreticalMinCost);
>>   if (Math.abs(Math.sqrt(m) * rms - theoreticalMinCost) > threshold) {
>>     System.out.println("rms = " + rms +
>>                        ", m = " + m +
>>                        ", sqrt(m)*rms = " +
>>                        Math.abs(Math.sqrt(m) * rms) +
>>                        ", threshold = " + threshold +
>>                        ", delta = " +
>>                        Math.abs(Math.sqrt(m) * rms -
>>                                 theoreticalMinCost));
>>      }
>>      return Math.abs(Math.sqrt(m) * rms - theoreticalMinCost) <=
>>             threshold;
>>     }
>>
>> I guess I simply put too tight thresholds in the tests and that
>> numerical instability or different optimizations in JVMs may change the
>> result and break the test. The previous print statement would allow me
>> to compare the numerical values with what I get here and decide if the
>> results are acceptable and the test threshold must be enlarged or if
>> there is a real problem here.
> 
> rms = 65.50657291427613, 
> m = 20, 
> sqrt(m)*rms = 292.9543000187359, 
> threshold = 2.93954306151134E-6, 
> delta = 6.132398084446322E-6

These results are good. The default threshold for cost accuracy is set
to 1.0e-8, which is too tight for this case. I have checked in a
modification in the constructor of the BrownDennisFunction internal
class in both MinPackTest (just added setCostAccuracy(2.5e-8)). Could
you either look if the current code in subversion trunk works for you or
add the call to setCostAccuracy in both constructors ?

thanks
Luc

> 
> Hope this helps,
> Jörg
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> For additional commands, e-mail: dev-h...@commons.apache.org
> 
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org

Reply via email to