Boost logo

Boost :

Subject: Re: [boost] Proposal for a Differential Evolution C++ library
From: Adrian Michel (adrian_at_[hidden])
Date: 2012-01-10 01:37:39

On 1/9/2012 9:41 AM, Brian Schrom wrote:

> On 01/09/2012 09:11 AM, Paul A. Bristow wrote:
>>> -----Original Message-----
>>> I, for one, think this looks a very useful library.
>>> [...]
>>> So you may need to find and drum up support from some potential (or
> better still, actual) users ?
> I will provide a review if this library gets to review, so
> far, I've not looked much at this submission.

> I think that machine learning is an area where there is enough maturity
> that implementations in Boost are desirable.
> A couple of things to consider.
> It would be desirable that the machine learning topic area be
> designed a bit more comprehensively than a single library. For example, I
> should be able to run a GA on the same data as the DE. I would hope
> that they have the same API. This somewhat implies to me that DE/GA are
> instances of training algorithms, for which, many are possible.

The way I see it, the only common point between different optimization
algorithms (if they are generic enough) is the objective function, which
should have a very simple prototype:

double f( std::vector< double > );

so in theory if different algorithms are implemented to accept the same
types (in C++ sense) of objective functions, then you could run them
interchangeably between GA, DE etc without any modification to the
function or algorithm.

> There are many things that go into a ML solution. Data conditioning,
> model training, model validation, model evaluation. Training in
> batch modes, instance based, etc. Just to name a couple issues...
> Then the normal list of library desires...completely generic, optimized
> for every conceivable configuration (embedded processor, server farm,
> etc i.e. single process, multi-threaded, mpi, etc)
> My advice is to be prepared for the big can of worms that this topic could
> potentially bring up.
> I think the topic area will be a very hard sell, but would be very
> useful.

There are many real-life applications that I believe would benefit
immediately from a maybe less than perfect implementation, so if it were
my choice, I would rather release an initial version sooner and enhance
it based on experience gathered from its practical use.

Adrian Michel

Boost list run by bdawes at, gregod at, cpdaniel at, john at