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)