Thus far its main components are:
- A function plotter to see how objective functions look like and why they're so much of a challenge. It also points out where candidate solutions are at every iteration in the search space
- Basic benchmarking features - so that one can compare the performance of different algorithms
- An implementation of Genetic Algorithms and many variations Here's a list of operators and variations implementd thus far:
- [Standard stuff]
Tournament and Roulette wheel selection
Singlepoint, 2-point and uniform crossover
Uniform mutation
- [Not so standard stuff]
Population reduction
Random immigrants
Iversion
- [Unique* as far as I know]
Biased crossover (inheriting the significant part of a chromosome from the better parent)
Non-uniform mutation with dynamic parameters
Growth (a hillclimbing step each generation)
Some methods to adjust selection pressure at runtime ("Damping functions")
*I haven't found any mention of the last 4 variations. As far as I know they're my original contributions, but I'm sure someone else interested in the field has thought of them already and documented these...
-
An inplementation of the Particle Swarm Optimization algorithm and variations.
Here are some features implemented for PSO:
- Nighbour networks
- Population reduction
- Random immigrants
...and here's a list of things I'm planning to implement:
- Split the application in 2 parts: one entitled "demo mode" - this should be used to see how the simulation progresses with fancy 3D graphics and one entitled "benchmark mode" for well... benchmarking. It will probably run simultaneous jobs to minimize the time it takes to benchmark
- Add more objective functions
- Add more optimization algorithms
No comments:
Post a Comment