C++ template class lib for several optimization algorithms, like GA, NSGA2, NSGA3, PSO, AOS, etc.
As a template lib, HeuristicFlow is header only.
Dependents: libEigen and C++17 standard library.
HeuristicFlow has been tested on MinGW(gcc 8.1.0 and gcc 12.1.0), Clang(14.0.4) and MSVC(143). It works pretty well with MinGW and Clang, while may cause several warnings when with MSVC.
namespace: heu
Modules:
- Genetic
- Global
- EAGlobal
- SimpleMatrix
- PSO
- AOS
Implemented Algorithms:
- SOGA(Single Objective Genetic Algorithm, 10 selection method implemented)
- NSGA-II(Non-dominated Sorting Genetic Algorithm II)
- NSGA-III(Non-dominated Sorting Genetic Algorithm III)
- PSO(Particle Swarm Optimization)
- AOS(Atomic Orbit Search)
Implemented Testing Functions:
- Single-objective:
- Ackley
- Beale
- GoldSteinPrice
- Booth
- Bukin
- Matyas
- Levy
- Himmelblau
- Easom
- Cross in tray
- Egg holder
- Holder table
- McCormick
- Schaffer2
- Schaffer4
- Rastrigin
- Sphere
- Rosenbrock
- Styblinski - Tang
- Multi-objectives:
- Schaffer1
- Schaffer2
- Binh and Korn
- Changkong Hamies
- Poloni
- Viennet
- FonsecaFleming
- Kursawe
- DTLZ1
- DTLZ2
- DTLZ3
- DTLZ4
- DTLZ5
- DTLZ6
- DTLZ7
- DTLZ8
Referenced Papers:
Waiting to be implemented :
- GravitySearchAlgorithm
- BigFloodAlgorithm