use super::*;
use crate::error::{MLError, Result};
use scirs2_core::ndarray::*;
use scirs2_core::random::prelude::*;
use scirs2_core::{Complex32, Complex64};
use std::f64::consts::PI;
use super::types::QuantumMixtureOfExpertsConfig;
impl Default for QuantumMixtureOfExpertsConfig {
fn default() -> Self {
Self {
input_dim: 64,
output_dim: 32,
num_experts: 8,
num_qubits: 6,
expert_capacity: 100,
routing_strategy: QuantumRoutingStrategy::QuantumSuperposition {
superposition_strength: 0.8,
interference_pattern: InterferencePattern::Constructive,
},
expert_architecture: ExpertArchitecture::FeedForward {
hidden_layers: vec![128, 64],
activation: ActivationFunction::ReLU,
},
gating_mechanism: QuantumGatingMechanism::SuperpositionGating {
coherence_preservation: 0.9,
},
load_balancing: LoadBalancingStrategy::Uniform,
sparsity_config: SparsityConfig {
target_sparsity: 0.7,
sparsity_method: SparsityMethod::TopK { k: 3 },
sparsity_schedule: SparsitySchedule::Constant,
quantum_sparsity_enhancement: 0.1,
},
entanglement_config: EntanglementConfig {
enable_expert_entanglement: true,
entanglement_strength: 0.5,
entanglement_decay: 0.01,
entanglement_restoration: 0.1,
max_entanglement_range: 4,
entanglement_pattern: EntanglementPattern::Circular,
},
quantum_enhancement_level: 0.6,
enable_hierarchical_experts: false,
enable_dynamic_experts: true,
enable_quantum_communication: true,
}
}
}