OpenGA

OpenGA, a C++ Genetic Algorithm Library. In this paper, an open source C++ Genetic Algorithm library is proposed called openGA. This library is capable of optimization in each of single objective, multi-objective and interactive modes. The main motivation for proposing this library is to provide freedom to users for designing their custom solution data model without limitations which many currently available software/libraries suffer from such as forcing a user to define the solutions as vectors or limiting the output of evaluation functions to a predefined format. In addition, the user has the entire control over genetic operations such as solution creation, mutation and crossover. The multi-object mode performs a Non-dominated Sorting Genetic Algorithm known as NSGA-III to obtain the pareto-optimal front while preserving the solution diversity. This library can handle multi-threading computations for single and multi-objective problems to increase the speed of the calculations significantly. The interactive mode is suitable for applications where human subjectivity is involved for evaluation of the cost function. Several simulation and tests are performed to verify the effectiveness of this library for calculations of optimization problems.