Monte Carlo Integration Library 1.0
High-performance Monte Carlo methods for numerical integration and optimization
optimizer.hpp
Go to the documentation of this file.
1
7#pragma once
8#include "types.hpp"
9
10namespace mc{
11namespace optim{
12
17 class Optimizer {
18 public:
19
25 using StepCallback = std::function<void(const Solution& current_best, size_t iteration)>;
26
27 virtual ~Optimizer() = default;
28
29 // --- Configuration Methods ---
30
36
42 virtual void setBounds(const Coordinates& lower_bounds, const Coordinates& upper_bounds) = 0;
43
47 virtual void setMode(OptimizationMode mode) = 0;
48
49 virtual void setCallback(StepCallback cb) = 0;
50
51 // --- Execution Methods ---
52
57 virtual Solution optimize() = 0;
58
63 virtual void step() = 0;
64
65 // --- Inspection Methods ---
66
70 [[nodiscard]] virtual Solution getBestSolution() const = 0;
71 };
72} //namespace mc
73} //namespace optim
Abstract base class for all optimization algorithms.
Definition optimizer.hpp:17
virtual void setCallback(StepCallback cb)=0
virtual void setObjectiveFunction(ObjectiveFunction func)=0
Set the function to optimize (the "black box").
virtual void setMode(OptimizationMode mode)=0
Set the optimization goal.
virtual void step()=0
Perform a single iteration/generation of the algorithm.
virtual Solution getBestSolution() const =0
Get the best solution found so far.
virtual ~Optimizer()=default
std::function< void(const Solution &current_best, size_t iteration)> StepCallback
Callback invoked after each step/generation.
Definition optimizer.hpp:25
virtual void setBounds(const Coordinates &lower_bounds, const Coordinates &upper_bounds)=0
Define the search space boundaries (hyper-rectangle).
virtual Solution optimize()=0
Run the optimization loop until the stopping criterion is met.
OptimizationMode
Optimization goal.
Definition types.hpp:42
std::function< Real(const Coordinates &)> ObjectiveFunction
Objective function signature.
Definition types.hpp:37
std::vector< Real > Coordinates
A point in the N-dimensional search space.
Definition types.hpp:31
Represents a candidate solution in the search space.
Definition types.hpp:51
Core optimizer type definitions for the Monte Carlo toolkit.