[ https://issues.apache.org/jira/browse/MATH621?page=com.atlassian.jira.plugin.system.issuetabpanels:commenttabpanel&focusedCommentId=13098060#comment13098060
]
Nigel Goodwin edited comment on MATH621 at 9/6/11 5:48 PM:

let me think.
Assume hq is a lower triangular matrix, stored in order of columns.
So, using a 1index, we have
hq(1) is mat(1,1)
hq(3) is mat(2,2)
hq(6) is mat(3,3) etc.
So in 1index, the diagonal element of the j'th row is
{code]h((j + j*j)/2){code}
as in the Fortran
So in 0index, we have
hq(0) is mat(0,0)
hq(2) is mat(1,1)
hq(5) is mat(2,2)
So the diagonal element is given by
((j+1) + (j + 1) * ( j+ 1))/2  1
and I think
(j + j*j)/2
is incorrect.
I'm pretty sure about this  I do a lot of work with triangular matrices.
Try another test  look at the last diagonal element  when j is n  1, then the index is
(n + n*n)/2 1 which is n*(n+1)/2  1, which is compatible with the dimension when declared,
n*np/2.
was (Author: essence):
let me think.
Assume hq is a lower triangular matrix, stored in order of columns.
So, using a 1index, we have
hq(1) is mat(1,1)
hq(3) is mat(2,2)
hq(6) is mat(3,3) etc.
So in 1index, the diagonal element of the j'th row is
{code]h((j + j*j)/2 1){code}
as in the Fortran
So in 0index, we have
hq(0) is mat(0,0)
hq(2) is mat(1,1)
hq(5) is mat(2,2)
So the diagonal element is given by
((j+1) + (j + 1) * ( j+ 1))/2  1
and I think
(j + j*j)/2
is incorrect.
I'm pretty sure about this  I do a lot of work with triangular matrices.
Try another test  look at the last diagonal element  when j is n  1, then the index is
(n + n*n)/2 1 which is n*(n+1)/2  1, which is compatible with the dimension when declared,
n*np/2.
> BOBYQA is missing in optimization
> 
>
> Key: MATH621
> URL: https://issues.apache.org/jira/browse/MATH621
> 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, BOBYQAOptimizer.java.patch,
BOBYQAOptimizer0.4.zip, bobyqa.zip, bobyqa_convert.pl, bobyqaoptimizer0.4.zip, bobyqav0.3.zip
>
> Original Estimate: 8h
> Remaining Estimate: 8h
>
> 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 CMAES 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: http://www.atlassian.com/software/jira
