[SciPy-dev] genetic algorithm, number theory, filter design, zero finding
Chuck Harris
Chuck.Harris at sdl.usu.edu
Mon Apr 8 16:31:56 EDT 2002
Hi All,
I've written a number of python routines over the past half year for my own use, and wonder if it might be appropriate to include some of them in scipy. They break down into the general categories:
Number Theory : These were used for analysing arrays of antennas used in radar interferometry. They are also useful in integer programming, cryptography, and computational algebra.
Reduction of a matrix to Hermite normal form
Reduction of a matrix to Smith normal form
LLL basis reduction
LLL basis reduction - deep version
Gram-Schmidt orthogonalization
Filter Design: Routines used for designing Complex Hermitian digital filters :
Remez exchange algorithm - for arbitrary Chebychev systems.
Zero finders: General use and fun. Bisection best for some special cases, Ridder is middle of the pack,
Brent is generally best, with the two versions basically a wash, although the hyperbolic version is simpler. Whether or not there is any virtue to these as opposed to solve, I don't know.
Bisection
Illinois version of regula falsa
Ridder
Brent method with hyperbolic interpolation
Brent method with inverse quadatic interpolation
Genetic algorithm: Used in digital filter design to optimize for coefficient truncation error. I looked at galib and found it easier to roll my own, but didn't try for any great generality. I think it would be good to include uniform crossover and to pull the fitness function out of the genome --- in a tournament, fitness can depend on the population. Perhaps it can all be made simpler.
P.S. The formatting page at scipy.org disagrees with the Python PEP's -- Python.org suggests CapWords for class names, not lowercase with underscores.
Chuck
More information about the SciPy-Dev
mailing list