commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
Subject [math] optimization phase 3
Date Tue, 24 Mar 2009 23:22:42 GMT

I have checked in a bunch of modifications I have finished during the hackathon prior to ApacheCon
Europe. There are two parts in these modifications.

The first part is another attempt at the API, in order to improve consistency between the
analysis and the optimization package. The almost duplicated functions definitions between
the two packages and put them all in the analysis package have been removed. The classes/interfaces
names have also been made more consistent and explicit. Unfortunately, we end up with very
long names in the optimization package (look at the MultiStart algorithm for example).

Could someone give a look at the current state of API and documentation and give some feedback
about it ? One thing I have not done yet is updated the univariate API (added recently after
Gilles contribution to the former analysis.minimization package). It is unnecessarily different
from the other optimizers in the methods inherited from ConvergingAlgorithm (getIterationsCount
instead of getIterations ...).

The second part is the addition of the non-linear conjugate gradient method. This was a main
goal for 2.0. This algorithm allow to optimize multivariate real valued functions. Before
that, we could only solve least-squares problems with either Gauss-Newton or Levenberg-Marquardt.
The implementation supports both Fletcher-Reeves and Polak-Ribière update formulas for the
conjugate directions. It also support setting up an optional preconditioner.

Things that remain to be done in this field are:
 - improve test coverage
 - improve validation (if someone could add some test problems to the suite, it
   would be fine)
 - add the linear package (I add a direct confirmation here at the conference that
   the required paperwork was officially filed, so the contribution from Benjamin
   on Jira can be checked in now)

This change is an important step towards 2.0. I hope we will be able to release it soon.


To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message