commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Gilles (JIRA)" <j...@apache.org>
Subject [jira] [Comment Edited] (MATH-621) BOBYQA is missing in optimization
Date Wed, 19 Dec 2012 11:55:12 GMT

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

Gilles edited comment on MATH-621 at 12/19/12 11:54 AM:
--------------------------------------------------------

As you can figure out from reading this issue, there is a lot of work to make this code readable
and maintainable.
The "missing break" is most probably intended, but the code should not be written that way
nevertheless; so I would refrain adding comments on constructs that should anyways be refactored.
I much prefer that FindBugs keeps reminding us that this class is _not_ representative of
Commons Math coding standards.

                
      was (Author: erans):
    As you can figure out from reading this issue, there is a lot of work to make this code
readable and maintainable.
The "missing break" is most probably intended, but the code should not be written that way
nevertheless; so I would refrain adding comments on constructs that should anyways be refactored.
I much prefer that FindBugs keeps reminding use that this class is _not_ representative of
Commons Math coding standards.

                  
> BOBYQA is missing in optimization
> ---------------------------------
>
>                 Key: MATH-621
>                 URL: https://issues.apache.org/jira/browse/MATH-621
>             Project: Commons Math
>          Issue Type: New Feature
>    Affects Versions: 3.0
>            Reporter: Dr. Dietmar Wolz
>             Fix For: 3.2
>
>         Attachments: bobyqa_convert.pl, BOBYQA.math.patch, bobyqaoptimizer0.4.zip, BOBYQAOptimizer0.4.zip,
BOBYQAOptimizer.java.patch, BOBYQA.v02.math.patch, bobyqav0.3.zip, bobyqa.zip
>
>
> During experiments with space flight trajectory optimizations I recently
> observed, that the direct optimization algorithm BOBYQA
> http://plato.asu.edu/ftp/other_software/bobyqa.zip
> from Mike Powell is significantly better than the simple Powell algorithm
> already in commons.math. It uses significantly lower function calls and is
> more reliable for high dimensional problems. You can replace CMA-ES in many
> more application cases by BOBYQA than by the simple Powell optimizer.
> I would like to contribute a Java port of the algorithm.
> I maintained the structure of the original FORTRAN code, so the
> code is fast but not very nice.
> License status: Michael Powell has sent the agreement via snail mail
> - it hasn't arrived yet.
> Progress: The attached patch relative to the trunk contains both the
> optimizer and the related unit tests - which are all green now.  
> Performance:
> Performance difference (number of function evaluations)
> PowellOptimizer / BOBYQA for different test functions (taken from
> the unit test of BOBYQA, dimension=13 for most of the
> tests. 
> Rosen = 9350 / 1283
> MinusElli = 118 / 59
> Elli = 223 / 58
> ElliRotated = 8626 / 1379
> Cigar = 353 / 60
> TwoAxes = 223 / 66
> CigTab = 362 / 60
> Sphere = 223 / 58
> Tablet = 223 / 58
> DiffPow = 421 / 928
> SsDiffPow = 614 / 219
> Ackley = 757 / 97
> Rastrigin = 340 / 64
> The number for DiffPow should be discussed with Michael Powell,
> I will send him the details. 
> h3. Open Problems
> * Checkstyle violations[1] because of the original Fortran source:
> ** Original method comments were copied: Javadoc standard documentation should be added,
but the original documentation should stay (as a reference to what the original intended behaviour
was) untouched until we are sure that the code behaves as expected.
> ** Multiple variable declarations per line.
> ** "goto" conversions:
> *** "goto"s not convertible in loops were translated into a finite automaton (switch
statement)
> *** "no default in switch"
> *** "fall through from previous case in switch"
> * Unexplored code paths: "throw" statements have been introduced in the code. Each should
be triggered by at least one unit test. They are currently commented out in provision of the
3.0 release (cf. MATH-712) but should be re-enabled afterwards.
> [1] Once the violations are solved, the following lines should be removed from the source
file:
> * {{// CHECKSTYLE: stop all}}
> * {{//CHECKSTYLE: resume all}}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message