quantrs2_anneal/bayesian_hyperopt/
constraints.rs1#[derive(Debug, Clone)]
5pub struct ConstraintConfig {
6 pub handling_method: ConstraintHandlingMethod,
8 pub violation_penalty: f64,
10 pub feasibility_threshold: f64,
12 pub approximation_method: ConstraintApproximationMethod,
14}
15
16impl Default for ConstraintConfig {
17 fn default() -> Self {
18 Self {
19 handling_method: ConstraintHandlingMethod::ExpectedFeasibility,
20 violation_penalty: 1000.0,
21 feasibility_threshold: 1e-6,
22 approximation_method: ConstraintApproximationMethod::GaussianProcess,
23 }
24 }
25}
26
27#[derive(Debug, Clone, PartialEq, Eq)]
29pub enum ConstraintHandlingMethod {
30 ExpectedFeasibility,
32 PenaltyMethod,
34 AugmentedLagrangian,
36 ConstraintDominated,
38 FeasibilityRules,
40}
41
42#[derive(Debug, Clone, PartialEq, Eq)]
44pub enum ConstraintApproximationMethod {
45 GaussianProcess,
47 SupportVectorMachine,
49 RandomForest,
51 NeuralNetwork,
53}