Feature | Details |
---|---|
Crossover (binary) | ✔️ k-point, shuffle, discrete, uniform |
Crossover (real) | ✔️ arithmetic, blend α, blend αβ, average, flat, linear |
Selection | ✔️ top, roulette, tournament |
Mutation (binary) | ✔️ edge, single-point, two-point |
Mutation (real) | ✔️ uniform, gauss |
Elitism | ✔️ by percent, by count |
Inversion | ✔️ implemented |
GUI | ✔️ implemented (in Tkinter) |
Plots | ✔️ implemented (in Matplotlib) |
File export | ✔️ implemented |
Hypersphere, Hyperellipsoid, Schwefel, Ackley, Michalewicz, Rastrigin, Rosenbrock, De Jong 3, De Jong 5, Martin And Gaddy, Griewank, Easom, Goldstein And Price, Picheny Goldstein And Price, Styblinski And Tang, Mc Cormick, Rana, Egg Holder, Keane, Schaffer 2, Himmelblau, Pits And Holes.
In order to run this code, the end user must install the following list of programs and libraries:
- Python 3.10
- Matplotlib
- Numpy
- Scipy
- Multimethod
- Benchmark-functions
After you have downloaded (or cloned) this repository, you can immediately begin to simulate the evolution by following these simple steps:
- Select
main.py
and run it via Python interpreter. - Configuration window will pop up. You can set every parameter including, but not limited to the examined function, crossover type, selection type, and so on.
- Click
Start evolution
button. Depending on the speed of your machine and selected settings, the evolution may take a while. - If you checked
Show chart
option previously, plots will be updated from time to time. - Once the simulation is complete, summary window will show the results.
- You can now also view
EvolutionSave_
files, which contain statistics for every epoch.