Monte Carlo Integration Library 1.0
High-performance Monte Carlo methods for numerical integration and optimization
Classes | Public Member Functions | List of all members
mc::optim::GA Class Reference

Genetic Algorithm optimizer. More...

#include <GA.hpp>

Inheritance diagram for mc::optim::GA:
Collaboration diagram for mc::optim::GA:

Classes

struct  Individual
 A single population member. More...
 

Public Member Functions

 GA (const GAConfig &config=GAConfig{})
 Construct a GA optimizer with the given configuration.
 
void setObjectiveFunction (ObjectiveFunction func) override
 Set the objective function to optimize.
 
void setBounds (const Coordinates &lower, const Coordinates &upper) override
 Set lower/upper bounds of the search hyper-rectangle.
 
void setMode (OptimizationMode mode) override
 Set optimization mode (minimize or maximize).
 
void setCallback (StepCallback cb) override
 Register a callback invoked after each generation.
 
Solution optimize () override
 Run GA for max_generations.
 
void step () override
 Perform one generation: selection, crossover, mutation, evaluation, and serial update of the global best.
 
Solution getBestSolution () const override
 Get the best solution found so far.
 
const std::vector< Individual > & getPopulation () const
 Access the current population.
 
- Public Member Functions inherited from mc::optim::Optimizer
virtual ~Optimizer ()=default
 

Additional Inherited Members

- Public Types inherited from mc::optim::Optimizer
using StepCallback = std::function< void(const Solution &current_best, size_t iteration)>
 Callback invoked after each step/generation.
 

Detailed Description

Genetic Algorithm optimizer.

Note
Determinism: selection/variation use a shared RNG; fitness evaluation can be parallelized. Best-solution tracking is updated serially.

Definition at line 46 of file GA.hpp.

Constructor & Destructor Documentation

◆ GA()

mc::optim::GA::GA ( const GAConfig config = GAConfig{})
explicit

Construct a GA optimizer with the given configuration.

Definition at line 19 of file GA.cpp.

Member Function Documentation

◆ getBestSolution()

Solution mc::optim::GA::getBestSolution ( ) const
overridevirtual

Get the best solution found so far.

Implements mc::optim::Optimizer.

Definition at line 224 of file GA.cpp.

◆ getPopulation()

const std::vector< Individual > & mc::optim::GA::getPopulation ( ) const
inline

Access the current population.

Definition at line 101 of file GA.hpp.

◆ optimize()

Solution mc::optim::GA::optimize ( )
overridevirtual

Run GA for max_generations.

Returns
The best solution found.

Implements mc::optim::Optimizer.

Definition at line 211 of file GA.cpp.

Here is the call graph for this function:

◆ setBounds()

void mc::optim::GA::setBounds ( const Coordinates lower,
const Coordinates upper 
)
overridevirtual

Set lower/upper bounds of the search hyper-rectangle.

Exceptions
std::invalid_argumentif dimensions mismatch.

Implements mc::optim::Optimizer.

Definition at line 34 of file GA.cpp.

◆ setCallback()

void mc::optim::GA::setCallback ( StepCallback  cb)
overridevirtual

Register a callback invoked after each generation.

Parameters
cbReceives current global-best and generation index.

Implements mc::optim::Optimizer.

Definition at line 30 of file GA.cpp.

◆ setMode()

void mc::optim::GA::setMode ( OptimizationMode  mode)
overridevirtual

Set optimization mode (minimize or maximize).

Implements mc::optim::Optimizer.

Definition at line 43 of file GA.cpp.

Here is the call graph for this function:

◆ setObjectiveFunction()

void mc::optim::GA::setObjectiveFunction ( ObjectiveFunction  func)
overridevirtual

Set the objective function to optimize.

Parameters
funcFunction mapping coordinates to scalar cost/fitness.

Implements mc::optim::Optimizer.

Definition at line 25 of file GA.cpp.

◆ step()

void mc::optim::GA::step ( )
overridevirtual

Perform one generation: selection, crossover, mutation, evaluation, and serial update of the global best.

Implements mc::optim::Optimizer.

Definition at line 150 of file GA.cpp.


The documentation for this class was generated from the following files: