[SciPy-user] GA framework with automatic adjustment of mutation/crossover parameters ?

Robert kxroberto at googlemail.com
Tue Dec 12 06:35:10 CST 2006


I'm looking for an efficient optimizer on a noisy high-dimensional and costly function.
My own GA hack seems to be somewhat stiff and I find me trying too much around with different cooling speeds and other non-systematic screwing ...

There are some GA frameworks and recipes around for Python (that one of scipy (scipy.ga?) disapeared?). Which can be recommended?

The searching in my use cases is mainly on fixed length parameter vectors (float and integer ranges). Just a few use cases on chromosome-bits and complex variable length structure building.

My main concern is about a smart, general and robust population alteration - an automatic selection of mutation/crossover-random-step-ranges and mutation/crossover-ratio. And possibly a dynamic population/selection scheme also.
The mutation function accepts a vector with step-width's 0..inf (default 1.0) for each parameter/gene. And the crossover function accepts a scalar 0 .. 1.0 controlling the extent of crossover.
Thus like:

def mutate(obj, astepstd=[1.0,1.0,1.0,...]):
   ...
def crossover(obj, other, extent=0.5):
   ...

The good optimizer alg probably should be smart enough to dynamically auto-adjust based the optimization history (independently of the task):
* astepstd's * extent * crossover/mutate rate
(* dynamic population size and selection-scheme)


Any recommendations or hints?


Robert



More information about the SciPy-user mailing list