[SciPy-user] Simulated annealing in scipy

Steve Schmerler elcorto at gmx.net
Fri Jul 22 09:59:06 CDT 2005


If you have an rather complicated parameter optimization problem (e.g. 
many local optima (minima in your case, find x which globally minimizes 
your R(x))) where you have to have a very good starting guess you won't 
get too far with the usual gradient based methods.

You can use "Evolution Strategies". These are simmilar to GAs but are 
said to be more effective  when it comes to continuous optimization 
because GAs work on the basis of binary gene representations.

Some literature hints:


Look at http://citeseer.ist.psu.edu for papers from T. Bäck, H.P. 
Schwefel (these guys did at lot of basic work related to ESs), e.g.


as well as


Like SA algorithms the work with ESs requires al lot of empirical 
testing with your specific problem to find the optimal settings for the 
algorithm (e.g. population size, recombination and selection operators 
etc.) Another downside is the computation time. I would suggest to write 
the whole thing in C or at least weave the bottlenecks. Good Luck :)


Nils Wagner wrote:
> Robert Kern wrote:
>> Nils Wagner wrote:
>>> Hi all,
>>> I tried to find the smallest eigenvalue of a generalized
>>> eigenvalue problem
>>> K x = \lambda M x
>>> by minimizing the Rayleigh quotient
>>> R = x^T K x / x^T M x
>>> where K and M are symmetric positive definite.
>>> I have used optimize.anneal for this purpose (annealing.py for details).
>>> However, the simulated annealing algorithm doesn't terminate with the 
>>> global optimal solution.
>>> But for what reason ?
>> Simulated annealing isn't perfect. It has quite a number of tweakable 
>> parameters. Finding the right values for those is something of an art.
> Do you think that genetic algorithms are an option for my task ?
> Nils
> _______________________________________________
> SciPy-user mailing list
> SciPy-user at scipy.net
> http://www.scipy.net/mailman/listinfo/scipy-user

More information about the SciPy-user mailing list