#[derive(Debug, Clone)]
pub struct AcquisitionConfig {
pub function_type: AcquisitionFunctionType,
pub exploration_factor: f64,
pub num_restarts: usize,
pub batch_strategy: BatchAcquisitionStrategy,
pub optimization_method: AcquisitionOptimizationMethod,
}
impl Default for AcquisitionConfig {
fn default() -> Self {
Self {
function_type: AcquisitionFunctionType::ExpectedImprovement,
exploration_factor: 0.1,
num_restarts: 10,
batch_strategy: BatchAcquisitionStrategy::LocalPenalization,
optimization_method: AcquisitionOptimizationMethod::LBFGS,
}
}
}
#[derive(Debug, Clone, PartialEq, Eq)]
pub enum AcquisitionFunctionType {
ExpectedImprovement,
UpperConfidenceBound,
ProbabilityOfImprovement,
EntropySearch,
KnowledgeGradient,
ExpectedHypervolumeImprovement,
ThompsonSampling,
}
#[derive(Debug, Clone, PartialEq, Eq)]
pub enum BatchAcquisitionStrategy {
LocalPenalization,
ConstantLiar,
KrigingBeliever,
MonteCarlo,
}
#[derive(Debug, Clone, PartialEq, Eq)]
pub enum AcquisitionOptimizationMethod {
LBFGS,
DifferentialEvolution,
ParticleSwarm,
RandomSearch,
GradientFree,
}
#[derive(Debug, Clone)]
pub struct AcquisitionFunction {
pub function_type: AcquisitionFunctionType,
pub exploration_factor: f64,
}
impl Default for AcquisitionFunction {
fn default() -> Self {
Self {
function_type: AcquisitionFunctionType::ExpectedImprovement,
exploration_factor: 0.1,
}
}
}