quantrs2_device/ml_optimization/
optimization.rs1use serde::{Deserialize, Serialize};
4use std::collections::HashMap;
5
6#[derive(Debug, Clone, Serialize, Deserialize)]
8pub struct OptimizationStrategyConfig {
9 pub multi_objective: MultiObjectiveConfig,
11 pub constraint_handling: ConstraintHandlingConfig,
13 pub search_strategies: Vec<SearchStrategy>,
15 pub exploration_exploitation: ExplorationExploitationConfig,
17 pub adaptive_strategies: AdaptiveStrategyConfig,
19}
20
21#[derive(Debug, Clone, Serialize, Deserialize)]
23pub struct MultiObjectiveConfig {
24 pub enable_multi_objective: bool,
26 pub objectives: HashMap<String, f64>,
28 pub pareto_optimization: bool,
30 pub scalarization_methods: Vec<ScalarizationMethod>,
32}
33
34#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
36pub enum ScalarizationMethod {
37 WeightedSum,
38 Chebyshev,
39 AugmentedChebyshev,
40 BoundaryIntersection,
41 AchievementFunction,
42}
43
44#[derive(Debug, Clone, Serialize, Deserialize)]
46pub struct ConstraintHandlingConfig {
47 pub constraint_types: Vec<ConstraintType>,
49 pub penalty_methods: Vec<PenaltyMethod>,
51 pub constraint_tolerance: f64,
53 pub feasibility_preservation: bool,
55}
56
57#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
59pub enum ConstraintType {
60 Equality,
61 Inequality,
62 Box,
63 Nonlinear,
64 Integer,
65}
66
67#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
69pub enum PenaltyMethod {
70 ExteriorPenalty,
71 InteriorPenalty,
72 AugmentedLagrangian,
73 BarrierMethod,
74 FilterMethod,
75}
76
77#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
79pub enum SearchStrategy {
80 GradientBased,
81 EvolutionaryAlgorithm,
82 SwarmIntelligence,
83 SimulatedAnnealing,
84 BayesianOptimization,
85 ReinforcementLearning,
86 HybridMethods,
87}
88
89#[derive(Debug, Clone, Serialize, Deserialize)]
91pub struct ExplorationExploitationConfig {
92 pub initial_exploration_rate: f64,
94 pub exploration_decay: f64,
96 pub min_exploration_rate: f64,
98 pub exploitation_threshold: f64,
100 pub adaptive_balancing: bool,
102}
103
104#[derive(Debug, Clone, Serialize, Deserialize)]
106pub struct AdaptiveStrategyConfig {
107 pub enable_adaptive: bool,
109 pub strategy_selection: Vec<StrategySelectionMethod>,
111 pub performance_feedback: bool,
113 pub strategy_mutation: bool,
115}
116
117#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
119pub enum StrategySelectionMethod {
120 PerformanceBased,
121 BanditAlgorithm,
122 ReinforcementLearning,
123 HeuristicRules,
124 MachineLearning,
125}