[ https://issues.apache.org/jira/browse/MATH-621?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Rob Tompkins updated MATH-621: ------------------------------ Fix Version/s: (was: 4.0) 4.X > 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: 4.X > > 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 was sent by Atlassian JIRA (v6.3.15#6346)