commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Bruce A Johnson (Commented) (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (MATH-728) Errors in BOBYQAOptimizer when numberOfInterpolationPoints is greater than 2*dim+1
Date Tue, 20 Dec 2011 15:15:31 GMT

    [ https://issues.apache.org/jira/browse/MATH-728?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13173238#comment-13173238
] 

Bruce A Johnson commented on MATH-728:
--------------------------------------

Thanks for checking this in, and it's worth noting that my function now minimizes properly.
 It seems that with a large number of interpolation points there was an out of bounds error,
but even where that out of bounds error wasn't thrown, the interpolation was set up wrong
for the last few points, causing a failure to converge.  Others who have had trouble with
convergence would do well to recheck with this fix.
                
> Errors in BOBYQAOptimizer when numberOfInterpolationPoints is greater than 2*dim+1
> ----------------------------------------------------------------------------------
>
>                 Key: MATH-728
>                 URL: https://issues.apache.org/jira/browse/MATH-728
>             Project: Commons Math
>          Issue Type: Bug
>    Affects Versions: 3.0
>         Environment: Mac Java(TM) SE Runtime Environment (build 1.6.0_29-b11-402-11M3527)
>            Reporter: Bruce A Johnson
>
> I've been having trouble getting BOBYQA to minimize a function (actually a non-linear
least squares fit) so as one change I increased the number of interpolation points.  It seems
that anything larger than 2*dim+1 causes an error (typically at
> line 1662
>                    interpolationPoints.setEntry(nfm, ipt, interpolationPoints.getEntry(ipt,
ipt));
> I'm guessing there is an off by one error in the translation from FORTRAN.  Changing
the BOBYQAOptimizerTest as follows (increasing number of interpolation points by one) will
cause failures.
> Bruce
> Index: src/test/java/org/apache/commons/math/optimization/direct/BOBYQAOptimizerTest.java
> ===================================================================
> --- src/test/java/org/apache/commons/math/optimization/direct/BOBYQAOptimizerTest.java
(revision 1221065)
> +++ src/test/java/org/apache/commons/math/optimization/direct/BOBYQAOptimizerTest.java
(working copy)
> @@ -258,7 +258,7 @@
>  //        RealPointValuePair result = optim.optimize(100000, func, goal, startPoint);
>          final double[] lB = boundaries == null ? null : boundaries[0];
>          final double[] uB = boundaries == null ? null : boundaries[1];
> -        BOBYQAOptimizer optim = new BOBYQAOptimizer(2 * dim + 1);
> +        BOBYQAOptimizer optim = new BOBYQAOptimizer(2 * dim + 2);
>          RealPointValuePair result = optim.optimize(maxEvaluations, func, goal, startPoint,
lB, uB);
>  //        System.out.println(func.getClass().getName() + " = " 
>  //              + optim.getEvaluations() + " f(");

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message