1use serde::{Deserialize, Serialize};
4use std::collections::HashMap;
5use std::time::Duration;
6
7#[derive(Debug, Clone, Serialize, Deserialize)]
9pub struct SyndromeDetectionConfig {
10 pub enable_parallel_detection: bool,
12 pub detection_rounds: usize,
14 pub stabilizer_measurement_shots: usize,
16 pub enable_syndrome_validation: bool,
18 pub validation_threshold: f64,
20 pub enable_error_correlation: bool,
22 pub enable_detection: bool,
24 pub detection_frequency: f64,
26 pub detection_methods: Vec<SyndromeDetectionMethod>,
28 pub pattern_recognition: PatternRecognitionConfig,
30 pub statistical_analysis: SyndromeStatisticsConfig,
32}
33
34#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
36pub enum SyndromeDetectionMethod {
37 StandardStabilizer,
39 FastExtraction,
41 AdaptiveMeasurement,
43 MLPrediction,
45 CompressedSensing,
47}
48
49#[derive(Debug, Clone, Serialize, Deserialize)]
51pub struct PatternRecognitionConfig {
52 pub enable_recognition: bool,
54 pub algorithms: Vec<PatternRecognitionAlgorithm>,
56 pub training_config: PatternTrainingConfig,
58 pub real_time_adaptation: bool,
60}
61
62#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
64pub enum PatternRecognitionAlgorithm {
65 NeuralNetwork,
66 SupportVectorMachine,
67 RandomForest,
68 DeepLearning,
69 ConvolutionalNN,
70 RecurrentNN,
71 Custom(String),
72}
73
74#[derive(Debug, Clone, Serialize, Deserialize)]
76pub struct PatternTrainingConfig {
77 pub training_size: usize,
79 pub validation_split: f64,
81 pub epochs: usize,
83 pub learning_rate: f64,
85 pub batch_size: usize,
87}
88
89#[derive(Debug, Clone, Serialize, Deserialize)]
91pub struct SyndromeStatisticsConfig {
92 pub enable_statistics: bool,
94 pub methods: Vec<StatisticalMethod>,
96 pub confidence_level: f64,
98 pub data_retention_days: u32,
100}
101
102#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
104pub enum StatisticalMethod {
105 HypothesisTesting,
106 DistributionFitting,
107 CorrelationAnalysis,
108 TimeSeriesAnalysis,
109 AnomalyDetection,
110 ClusterAnalysis,
111}
112
113#[derive(Debug, Clone, Serialize, Deserialize)]
115pub struct FastExtractionConfig {
116 pub algorithm: FastExtractionAlgorithm,
118 pub parallel_processing: ParallelProcessingConfig,
120 pub resource_optimization: ResourceOptimizationConfig,
122 pub quality_control: QualityControlConfig,
124}
125
126#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
128pub enum FastExtractionAlgorithm {
129 ParallelStabilizer,
130 PipelinedMeasurement,
131 CompressedSensing,
132 AdaptiveSampling,
133 HierarchicalExtraction,
134}
135
136#[derive(Debug, Clone, Serialize, Deserialize)]
138pub struct ParallelProcessingConfig {
139 pub num_threads: usize,
141 pub load_balancing: LoadBalancingStrategy,
143 pub synchronization: SynchronizationMethod,
145}
146
147#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
149pub enum LoadBalancingStrategy {
150 RoundRobin,
151 WorkStealing,
152 DynamicAssignment,
153 PerformanceBased,
154}
155
156#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
158pub enum SynchronizationMethod {
159 Barrier,
160 LockFree,
161 MessagePassing,
162 SharedMemory,
163}
164
165#[derive(Debug, Clone, Serialize, Deserialize)]
167pub struct ResourceOptimizationConfig {
168 pub memory_optimization: MemoryOptimizationConfig,
170 pub cpu_optimization: CPUOptimizationConfig,
172 pub io_optimization: IOOptimizationConfig,
174}
175
176#[derive(Debug, Clone, Serialize, Deserialize)]
178pub struct MemoryOptimizationConfig {
179 pub enable_pooling: bool,
181 pub cache_optimization: CacheOptimizationConfig,
183 pub compression: CompressionConfig,
185}
186
187#[derive(Debug, Clone, Serialize, Deserialize)]
189pub struct CacheOptimizationConfig {
190 pub cache_size: usize,
192 pub eviction_policy: CacheEvictionPolicy,
194 pub prefetching: PrefetchingStrategy,
196}
197
198#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
200pub enum CacheEvictionPolicy {
201 LRU,
202 LFU,
203 FIFO,
204 Random,
205 Adaptive,
206}
207
208#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
210pub enum PrefetchingStrategy {
211 None,
212 Sequential,
213 Stride,
214 Pattern,
215 Adaptive,
216}
217
218#[derive(Debug, Clone, Serialize, Deserialize)]
220pub struct CompressionConfig {
221 pub enable_compression: bool,
223 pub algorithm: CompressionAlgorithm,
225 pub compression_level: u8,
227}
228
229#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
231pub enum CompressionAlgorithm {
232 LZ4,
233 Zlib,
234 Zstd,
235 Custom(String),
236}
237
238#[derive(Debug, Clone, Serialize, Deserialize)]
240pub struct CPUOptimizationConfig {
241 pub vectorization: VectorizationConfig,
243 pub instruction_scheduling: bool,
245 pub branch_optimization: bool,
247}
248
249#[derive(Debug, Clone, Serialize, Deserialize)]
251pub struct VectorizationConfig {
252 pub enable_simd: bool,
254 pub vector_width: usize,
256 pub auto_vectorization: bool,
258}
259
260#[derive(Debug, Clone, Serialize, Deserialize)]
262pub struct IOOptimizationConfig {
263 pub async_io: bool,
265 pub batching: BatchingConfig,
267 pub buffer_size: usize,
269}
270
271#[derive(Debug, Clone, Serialize, Deserialize)]
273pub struct BatchingConfig {
274 pub enable_batching: bool,
276 pub batch_size: usize,
278 pub batch_timeout: Duration,
280}
281
282#[derive(Debug, Clone, Serialize, Deserialize)]
284pub struct QualityControlConfig {
285 pub error_checking: ErrorCheckingConfig,
287 pub validation: ValidationConfig,
289 pub monitoring: MonitoringConfig,
291}
292
293#[derive(Debug, Clone, Serialize, Deserialize)]
295pub struct ErrorCheckingConfig {
296 pub enable_checksums: bool,
298 pub redundancy_checking: bool,
300 pub error_correction: bool,
302}
303
304#[derive(Debug, Clone, Serialize, Deserialize)]
306pub struct ValidationConfig {
307 pub cross_validation: bool,
309 pub consistency_checks: Vec<ConsistencyCheck>,
311 pub validation_frequency: ValidationFrequency,
313}
314
315#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
317pub enum ConsistencyCheck {
318 SyndromeConsistency,
319 StabilizerCommutation,
320 LogicalOperatorConsistency,
321 CodeDistanceVerification,
322}
323
324#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
326pub enum ValidationFrequency {
327 Always,
328 Periodic(Duration),
329 OnError,
330 Manual,
331}
332
333#[derive(Debug, Clone, Serialize, Deserialize)]
335pub struct MonitoringConfig {
336 pub performance_monitoring: PerformanceMonitoringConfig,
338 pub resource_monitoring: ResourceMonitoringConfig,
340 pub alerts: AlertConfig,
342}
343
344#[derive(Debug, Clone, Serialize, Deserialize)]
346pub struct PerformanceMonitoringConfig {
347 pub latency_tracking: bool,
349 pub throughput_monitoring: bool,
351 pub accuracy_monitoring: bool,
353 pub historical_analysis: HistoricalAnalysisConfig,
355}
356
357#[derive(Debug, Clone, Serialize, Deserialize)]
359pub struct HistoricalAnalysisConfig {
360 pub enable_analysis: bool,
362 pub retention_period: Duration,
364 pub analysis_methods: Vec<AnalysisMethod>,
366}
367
368#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
370pub enum AnalysisMethod {
371 TrendAnalysis,
372 SeasonalAnalysis,
373 AnomalyDetection,
374 PerformanceRegression,
375 CapacityPlanning,
376}
377
378#[derive(Debug, Clone, Serialize, Deserialize)]
380pub struct ResourceMonitoringConfig {
381 pub cpu_monitoring: bool,
383 pub memory_monitoring: bool,
385 pub io_monitoring: bool,
387 pub network_monitoring: bool,
389}
390
391#[derive(Debug, Clone, Serialize, Deserialize)]
393pub struct AlertConfig {
394 pub thresholds: HashMap<String, f64>,
396 pub channels: Vec<AlertChannel>,
398 pub escalation: EscalationConfig,
400}
401
402#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
404pub enum AlertChannel {
405 Email,
406 SMS,
407 Dashboard,
408 Log,
409 Webhook,
410}
411
412#[derive(Debug, Clone, Serialize, Deserialize)]
414pub struct EscalationConfig {
415 pub levels: Vec<EscalationLevel>,
417 pub timeouts: HashMap<String, Duration>,
419}
420
421#[derive(Debug, Clone, Serialize, Deserialize)]
423pub struct EscalationLevel {
424 pub name: String,
426 pub threshold: f64,
428 pub actions: Vec<EscalationAction>,
430}
431
432#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
434pub enum EscalationAction {
435 Notify,
436 AutoRemediate,
437 Manual,
438 Shutdown,
439}
440
441#[derive(Debug, Clone, Serialize, Deserialize)]
443pub struct AdaptiveMeasurementConfig {
444 pub strategy: AdaptationStrategy,
446 pub learning: LearningConfig,
448 pub feedback_control: FeedbackControlConfig,
450}
451
452#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
454pub enum AdaptationStrategy {
455 ErrorRateBased,
456 PerformanceBased,
457 ResourceBased,
458 MLBased,
459 HybridApproach,
460}
461
462#[derive(Debug, Clone, Serialize, Deserialize)]
464pub struct LearningConfig {
465 pub algorithm: LearningAlgorithm,
467 pub learning_rate: f64,
469 pub training_frequency: Duration,
471 pub online_learning: bool,
473}
474
475#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
477pub enum LearningAlgorithm {
478 ReinforcementLearning,
479 SupervisedLearning,
480 UnsupervisedLearning,
481 TransferLearning,
482 MetaLearning,
483}
484
485#[derive(Debug, Clone, Serialize, Deserialize)]
487pub struct FeedbackControlConfig {
488 pub algorithm: ControlAlgorithm,
490 pub parameters: ControlParameters,
492 pub stability_analysis: StabilityAnalysisConfig,
494}
495
496#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
498pub enum ControlAlgorithm {
499 PID,
500 ModelPredictiveControl,
501 AdaptiveControl,
502 RobustControl,
503 OptimalControl,
504}
505
506#[derive(Debug, Clone, Serialize, Deserialize)]
508pub struct ControlParameters {
509 pub kp: f64,
511 pub ki: f64,
513 pub kd: f64,
515 pub additional_params: HashMap<String, f64>,
517}
518
519#[derive(Debug, Clone, Serialize, Deserialize)]
521pub struct StabilityAnalysisConfig {
522 pub enable_analysis: bool,
524 pub methods: Vec<StabilityMethod>,
526 pub criteria: StabilityCriteria,
528}
529
530#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
532pub enum StabilityMethod {
533 LyapunovAnalysis,
534 RouthHurwitz,
535 NyquistCriterion,
536 BodePlot,
537 RootLocus,
538}
539
540#[derive(Debug, Clone, Serialize, Deserialize)]
542pub struct StabilityCriteria {
543 pub stability_margin: f64,
545 pub phase_margin: f64,
547 pub gain_margin: f64,
549}
550
551#[derive(Debug, Clone, Serialize, Deserialize)]
553pub struct CompressedSensingConfig {
554 pub sensing_matrix: SensingMatrixConfig,
556 pub reconstruction: ReconstructionConfig,
558 pub sparsity: SparsityConfig,
560}
561
562#[derive(Debug, Clone, Serialize, Deserialize)]
564pub struct SensingMatrixConfig {
565 pub matrix_type: SensingMatrixType,
567 pub dimensions: (usize, usize),
569 pub coherence: CoherenceConfig,
571}
572
573#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
575pub enum SensingMatrixType {
576 Random,
577 Structured,
578 Circulant,
579 Toeplitz,
580 Fourier,
581}
582
583#[derive(Debug, Clone, Serialize, Deserialize)]
585pub struct CoherenceConfig {
586 pub mutual_coherence: f64,
588 pub rip_constant: f64,
590 pub optimization: bool,
592}
593
594#[derive(Debug, Clone, Serialize, Deserialize)]
596pub struct ReconstructionConfig {
597 pub algorithm: ReconstructionAlgorithm,
599 pub optimization_params: OptimizationParams,
601 pub convergence: ConvergenceConfig,
603}
604
605#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
607pub enum ReconstructionAlgorithm {
608 L1Minimization,
609 OrthogonalMatchingPursuit,
610 IterativeHardThresholding,
611 CompressiveSamplingMatchingPursuit,
612 SparseRecovery,
613}
614
615#[derive(Debug, Clone, Serialize, Deserialize)]
617pub struct OptimizationParams {
618 pub lambda: f64,
620 pub step_size: f64,
622 pub max_iterations: usize,
624}
625
626#[derive(Debug, Clone, Serialize, Deserialize)]
628pub struct ConvergenceConfig {
629 pub tolerance: f64,
631 pub criteria: ConvergenceCriteria,
633 pub early_stopping: bool,
635}
636
637#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
639pub enum ConvergenceCriteria {
640 ResidualNorm,
641 ObjectiveFunction,
642 ParameterChange,
643 GradientNorm,
644}
645
646#[derive(Debug, Clone, Serialize, Deserialize)]
648pub struct SparsityConfig {
649 pub sparsity_level: f64,
651 pub pattern: SparsityPattern,
653 pub adaptive_sparsity: bool,
655}
656
657#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
659pub enum SparsityPattern {
660 Random,
661 Structured,
662 Clustered,
663 Hierarchical,
664 Adaptive,
665}