commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Dr. Dietmar Wolz (JIRA)" <>
Subject [jira] [Commented] (MATH-621) BOBYQA is missing in optimization
Date Wed, 10 Aug 2011 09:27:27 GMT


Dr. Dietmar Wolz commented on MATH-621:

Hi Gilles,
it was not my intention to "separate forces", but the only thing I could do 
during my 
vacation partly without internet access was to focus on one single topic, I 
the "replace all 1-based loops by 0-based loops" task. Of course I didn't expect
that you restart from scratch, but that we somehow integrate what we have done 
so far. 
Question is now: should we really go to CM matrices in one step, or use 0-based 
as an intermediate step? I could for instance use your code as a basis and try 
to come
up with an 0-based equivalent as an intermediate step. What do you think?
By the way, thanks for your significant efforts.

Gilles commented on MATH-621:
That said, I'm a bit dismayed that we don't seem to combine our forces to 
achieve that goal.

----- Urspr√ľngliche Mail ----
Von: Gilles (JIRA) <>
Gesendet: Samstag, den 6. August 2011, 19:16:27 Uhr
Betreff: [jira] [Commented] (MATH-621) BOBYQA is missing in optimization


Gilles commented on MATH-621:

My first steps in the (hopefully) good direction were committed in revision 

I think that the next step would be to replace all 1-based loops by 0-based 
loops, together with changing all occurrences of "FortranArray" and 
"FortranMatrix" by "ArrayRealVector" and "Array2DRealMatrix", respectively. This 
is a little delicate because all changes must be done at once, and also because 
some indices are hard-coded and there are some tests on various index bounds 
(e.g. in "prelim" and "rescue")... However, I hope that Dietmar's new version 
with arrays (which I haven't looked at yet) will help sort this out.

> BOBYQA is missing in optimization
> ---------------------------------
>                 Key: MATH-621
>                 URL:
>             Project: Commons Math
>          Issue Type: New Feature
>    Affects Versions: 3.0
>            Reporter: Dr. Dietmar Wolz
>             Fix For: 3.0
>         Attachments: BOBYQA.math.patch, BOBYQA.v02.math.patch,,,
>   Original Estimate: 8h
>  Remaining Estimate: 8h
> During experiments with space flight trajectory optimizations I recently
> observed, that the direct optimization algorithm BOBYQA
> 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 dicussed with Michael Powell,
> I will send him the details. 
> Open Problems:
> Some checkstyle violations because of the original Fortran source:
> - Original method comments were copied - doesn't follow javadoc standard
> - Multiple variable declarations in one line as in the original source
> - Problems related to "goto" conversions:
>   "gotos" not convertible in loops were transated into a finite automata (switch statement)
> 	"no default in switch"
> 	"fall through from previos case in switch"
> 	which usually are bad style make no sense here.

This message is automatically generated by JIRA.
For more information on JIRA, see:


View raw message