Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 15 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,21 @@

## Overview

gapp is a library of genetic algorithm implementations in C++ for solving single-
and multi-objective optimization problems. The algorithms are highly customizable,
with all of their parts possibly defined by the user, but the library also includes
GAs for several commonly used encoding types, frequently used crossover and mutation
methods for each of these encodings, several stop conditions, and other utilities that
can be used.
gapp is a C++ library for solving single- and multi-objective optimization problems
using genetic algorithms. The main features of the library include:

- Simple usage with predefined genetic operators, encoding types, and algorithms
- Includes implementations of several commonly used encoding types (binary, real, permutation,
integer), with support for mixed and custom encoding types
- Includes implementations of commonly used crossover and mutation methods for each builtin encoding
type, with support for custom genetic operators
- Support for both single- and multi-objective problems, constrained optimization problems,
and support for both fixed and variable length solution encodings
- Builtin support for metrics to observe the evolution process, including implementations
of common metrics like mean, minimum, and maximum fitness values in each generation
- Reproducible results across platforms, including with multithreaded execution
- Efficient, multithreaded execution with minimal overhead for the GAs, while also minimizing
the number of objective function evaluations


## Usage example
Expand Down
6 changes: 0 additions & 6 deletions docs/install-guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,12 +31,6 @@ As the only real requirement for using the library is a compiler with C++20 supp
and the library doesn't include any platform or compiler specific code, other platforms
and compilers would probably also work, but only the ones listed above are tested.

Note that the standard library used also needs to support C++20 features, which means
that using libc\+\+ is not possible at this point. This is generally not a problem,
but on macOS the default standard library used by clang is libc\+\+ instead of libstdc\+\+,
which will cause build errors. In this case, the standard library should be manually
specified to be libstdc\+\+ instead.


## Install with CMake

Expand Down
Loading