Source code for metaheuristic_designer.strategies.bayesian_optimization.bayesian_optimization

"""
Bayesian Optimization strategy.
"""

from __future__ import annotations
from ...search_strategy import SearchStrategy
from ...initializer import Initializer
from ...parent_selection_base import ParentSelection
from ...operators.BO_operator import BOOperator


[docs] class BayesianOptimization(SearchStrategy): """ Bayesian Optimization using a Gaussian Process surrogate. This strategy replaces the usual perturbation operator with a :class:`BOOperator`, which fits a GP model to the current population and uses an acquisition function to propose new candidates. Parameters ---------- initializer : Initializer Population initializer (provides the starting points). parent_sel : ParentSelection, optional Parent selection method (default: identity). name : str, optional Display name (default ``"Bayesian Optimization"``). **kwargs Forwarded to :class:`BOOperator` (e.g., ``batch_size``, ``max_samples``, ``kernel``). """ def __init__(self, initializer: Initializer, parent_sel: ParentSelection = None, name: str = "Bayesian Optimization", **kwargs): super().__init__(initializer, operator=BOOperator(**kwargs), parent_sel=parent_sel, name=name, **kwargs)