quantrs2_anneal/bayesian_hyperopt/
acquisition.rs1#[derive(Debug, Clone)]
5pub struct AcquisitionConfig {
6 pub function_type: AcquisitionFunctionType,
8 pub exploration_factor: f64,
10 pub num_restarts: usize,
12 pub batch_strategy: BatchAcquisitionStrategy,
14 pub optimization_method: AcquisitionOptimizationMethod,
16}
17
18impl Default for AcquisitionConfig {
19 fn default() -> Self {
20 Self {
21 function_type: AcquisitionFunctionType::ExpectedImprovement,
22 exploration_factor: 0.1,
23 num_restarts: 10,
24 batch_strategy: BatchAcquisitionStrategy::LocalPenalization,
25 optimization_method: AcquisitionOptimizationMethod::LBFGS,
26 }
27 }
28}
29
30#[derive(Debug, Clone, PartialEq, Eq)]
32pub enum AcquisitionFunctionType {
33 ExpectedImprovement,
35 UpperConfidenceBound,
37 ProbabilityOfImprovement,
39 EntropySearch,
41 KnowledgeGradient,
43 ExpectedHypervolumeImprovement,
45 ThompsonSampling,
47}
48
49#[derive(Debug, Clone, PartialEq, Eq)]
51pub enum BatchAcquisitionStrategy {
52 LocalPenalization,
54 ConstantLiar,
56 KrigingBeliever,
58 MonteCarlo,
60}
61
62#[derive(Debug, Clone, PartialEq, Eq)]
64pub enum AcquisitionOptimizationMethod {
65 LBFGS,
67 DifferentialEvolution,
69 ParticleSwarm,
71 RandomSearch,
73 GradientFree,
75}
76
77#[derive(Debug, Clone)]
79pub struct AcquisitionFunction {
80 pub function_type: AcquisitionFunctionType,
81 pub exploration_factor: f64,
82}
83
84impl Default for AcquisitionFunction {
85 fn default() -> Self {
86 Self {
87 function_type: AcquisitionFunctionType::ExpectedImprovement,
88 exploration_factor: 0.1,
89 }
90 }
91}