$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
Subject: Re: [boost] FW:  Proposal for a Differential Evolution C++ library
From: Adrian Michel (adrian_at_[hidden])
Date: 2011-12-12 01:02:47
Hi Beman
On 12/11/2011 6:31 PM, Beman Dawes wrote:
>
>> Would there be interest in a C++ Differential Evolution optimization (DE)
>> library as part of boost?
>
> Seems interesting, and you've clearly put in a lot of work, and the
> documentation makes a good initial impressions. But see below...
>
Thanks!
>> The full documentation is at http://www.amichel.com/de/doc/html but I'd
>> suggest these pages for a first read
>> http://www.amichel.com/de/doc/html/dd/d53/overview.html and
>> http://www.amichel.com/de/doc/html/db/d4e/tutorial.html .
>
> After skim reading the overview and the beginning of the tutorial, I
> was left with several unanswered questions:
>
> * What are some practical scientific or engineering problems that DE
> is good for?
I personally got interested in DE while doing some research in the area 
of algorithmic trading system optimization. But DE is generic - it can 
be used to optimize any function that would otherwise be very hard or 
impossible to optimize using more traditional methods.
DE is used in many areas, some of which are listed here: 
http://www.icsi.berkeley.edu/~storn/code.html#appl and here: 
http://www.icsi.berkeley.edu/~storn/code.html#comm or to summarize: 
chemistry, electronics, physics, agriculture, telecommunications etc.
 > I'm having trouble calibrating - is your library
 > primarily aimed at research and academic problems or is it an everyday
 > tool for use in a broad spectrum of organizations?
 >
I believe the answer is "both".
> * Who is the library aimed at? Is the library most likely to be used
> by optimization specialists who already know about DE or is it
> something that can be used by a wide range of programmers?
>
I tried to design the library so that it can be easily used "out of the 
box" by all programmers, who can choose any of the predefined policy 
classes for default behavior. The de_test application illustrates this 
usage mode: the user can implement a de::objective_function derived 
class with their own function to optimize, and then build and run the 
application to get the best output.
However, those interested in tweaking its behavior, can create their own 
policy classes and override the defaults. One of the obvious advantage 
of a standardized DE library is that these customized components could 
then be shared with the community at large. BTW, DE has the added 
benefit of not having been patented by its authors, for the very purpose 
of making it widely available.
Thanks,
Adrian Michel