commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Luc Maisonobe <>
Subject [math] redesigning the optimization/estimation packages (phase 2)
Date Thu, 26 Feb 2009 19:34:37 GMT
I have just checked in the first changes as discussed on the list.

The changes are merely code moved from one package to another. The new
packages are, optimization.general,
optimization.linear (empty for now) and optimization.univariate. The
removed packages are analysis.minimization (moved to
optimization.univariate) and estimation (moved to optimization.general).

I have also changed all class names containing Cost into Objective, as
this is more logical for optimizers supporting both minimization and

A few new interfaces, much simpler than the previous ones have been set
up. Please take a look at them and tell what you feel about them. The
proposed design is to have the user implement either ObjectiveFunction
(for scalar functions) or MultiObjectiveFunction (for vectorial
functions, for example residuals). This function would then be passed to
a class implementing Optimizer. This is all for the simple use.

For advanced use, a few other tools are available.

The first tool is LestSquaresConverter which can convert a
MultiObjectiveFunction representing residuals into a simpler
ObjectiveFunction. I have taken into account both Gilles and Ted
remarks, the conversion can use no weights at all, vector weights or a
complete matrix representing both weights and correlations.

Another tool will be a MultiStartManager which will extract the
multi-start features from DirectSearchOptimizer and generalize them to
be used with any kind of optimizer. I'm not sure yet how to design it.
Perhaps I will set up an interface InitialPointGenerator that will
generate either an initial simplex for direct search methods or a single
start point for gradient methods. What do you think about it ?

There are some rough edges now. For example the ConvergenceChecker
interface is still simplex oriented, it should be generalized.

Could someone review all this ?


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

View raw message