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

Abstract base class for all optimization algorithms. More...

#include <optimizer.hpp>

Inheritance diagram for mc::optim::Optimizer:
Collaboration diagram for mc::optim::Optimizer:

Public Types

using StepCallback = std::function< void(const Solution &current_best, size_t iteration)>
 Callback invoked after each step/generation.
 

Public Member Functions

virtual ~Optimizer ()=default
 
virtual void setObjectiveFunction (ObjectiveFunction func)=0
 Set the function to optimize (the "black box").
 
virtual void setBounds (const Coordinates &lower_bounds, const Coordinates &upper_bounds)=0
 Define the search space boundaries (hyper-rectangle).
 
virtual void setMode (OptimizationMode mode)=0
 Set the optimization goal.
 
virtual void setCallback (StepCallback cb)=0
 
virtual Solution optimize ()=0
 Run the optimization loop until the stopping criterion is met.
 
virtual void step ()=0
 Perform a single iteration/generation of the algorithm.
 
virtual Solution getBestSolution () const =0
 Get the best solution found so far.
 

Detailed Description

Abstract base class for all optimization algorithms.

Enforces a common interface for GA, PSO, etc.

Definition at line 17 of file optimizer.hpp.

Member Typedef Documentation

◆ StepCallback

using mc::optim::Optimizer::StepCallback = std::function<void(const Solution& current_best, size_t iteration)>

Callback invoked after each step/generation.

Parameters
current_bestThe best solution so far.
iterationZero-based iteration/generation index.

Definition at line 25 of file optimizer.hpp.

Constructor & Destructor Documentation

◆ ~Optimizer()

virtual mc::optim::Optimizer::~Optimizer ( )
virtualdefault

Member Function Documentation

◆ getBestSolution()

virtual Solution mc::optim::Optimizer::getBestSolution ( ) const
pure virtual

Get the best solution found so far.

Implemented in mc::optim::GA, and mc::optim::PSO.

◆ optimize()

virtual Solution mc::optim::Optimizer::optimize ( )
pure virtual

Run the optimization loop until the stopping criterion is met.

Returns
The best solution found.

Implemented in mc::optim::GA, and mc::optim::PSO.

◆ setBounds()

virtual void mc::optim::Optimizer::setBounds ( const Coordinates lower_bounds,
const Coordinates upper_bounds 
)
pure virtual

Define the search space boundaries (hyper-rectangle).

Parameters
lower_boundsMinimum coordinate per dimension.
upper_boundsMaximum coordinate per dimension.

Implemented in mc::optim::GA, and mc::optim::PSO.

◆ setCallback()

virtual void mc::optim::Optimizer::setCallback ( StepCallback  cb)
pure virtual

Implemented in mc::optim::GA, and mc::optim::PSO.

◆ setMode()

virtual void mc::optim::Optimizer::setMode ( OptimizationMode  mode)
pure virtual

Set the optimization goal.

Implemented in mc::optim::GA, and mc::optim::PSO.

◆ setObjectiveFunction()

virtual void mc::optim::Optimizer::setObjectiveFunction ( ObjectiveFunction  func)
pure virtual

Set the function to optimize (the "black box").

Parameters
funcObjective mapping coordinates to scalar value.

Implemented in mc::optim::GA, and mc::optim::PSO.

◆ step()

virtual void mc::optim::Optimizer::step ( )
pure virtual

Perform a single iteration/generation of the algorithm.

Useful for debugging, plotting, or GUI integration.

Implemented in mc::optim::GA, and mc::optim::PSO.


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