use crate::advanced_fusion_algorithms::AdvancedConfig;
#[derive(Debug, Clone)]
pub struct AIAdaptiveConfig {
pub base_config: AdvancedConfig,
pub learning_rate: f64,
pub replay_buffer_size: usize,
pub multi_modal_learning: bool,
pub continual_learning: bool,
pub explainable_ai: bool,
pub transfer_learning: bool,
pub few_shot_threshold: usize,
pub optimization_target: OptimizationTarget,
pub model_complexity: ModelComplexity,
pub prediction_horizon: usize,
pub adaptation_speed: f64,
}
impl Default for AIAdaptiveConfig {
fn default() -> Self {
Self {
base_config: AdvancedConfig::default(),
learning_rate: 0.001,
replay_buffer_size: 10000,
multi_modal_learning: true,
continual_learning: true,
explainable_ai: true,
transfer_learning: true,
few_shot_threshold: 5,
optimization_target: OptimizationTarget::Balanced,
model_complexity: ModelComplexity::High,
prediction_horizon: 10,
adaptation_speed: 0.1,
}
}
}
#[derive(Debug, Clone, PartialEq)]
pub enum OptimizationTarget {
Speed,
Quality,
Balanced,
MemoryEfficient,
EnergyEfficient,
UserCustom(Vec<f64>), }
#[derive(Debug, Clone)]
pub enum ModelComplexity {
Low,
Medium,
High,
Advanced,
Adaptive, }
#[derive(Debug, Clone, Hash, Eq, PartialEq)]
pub enum PatternType {
Natural,
Synthetic,
Medical,
Satellite,
Scientific,
Artistic,
Document,
Industrial,
Security,
Gaming,
Educational,
Research,
Unknown,
}
#[derive(Debug, Clone, Hash, Eq, PartialEq)]
pub enum ComplexityLevel {
VeryLow,
Low,
Medium,
High,
VeryHigh,
Extreme,
}
#[derive(Debug, Clone, Hash, Eq, PartialEq)]
pub enum NoiseLevel {
Clean,
Low,
Medium,
High,
Extreme,
}
#[derive(Debug, Clone)]
pub enum AlgorithmType {
GaussianFilter,
MedianFilter,
BilateralFilter,
EdgeDetection,
MorphologyOperation,
QuantumProcessing,
NeuromorphicProcessing,
ConsciousnessSimulation,
AdvancedFusion,
CustomAI,
}
#[derive(Debug, Clone, Hash, Eq, PartialEq)]
pub enum FeatureType {
Edges,
Textures,
Shapes,
Colors,
Gradients,
Corners,
Lines,
Curves,
Patterns,
Objects,
Faces,
Text,
}
#[derive(Debug, Clone, Hash, Eq, PartialEq)]
pub struct ImagePattern {
pub pattern_type: PatternType,
pub complexity: ComplexityLevel,
pub noise_level: NoiseLevel,
pub dominantfeatures: Vec<FeatureType>,
}