pub mod config;
pub mod feature_extraction;
pub mod meta_learning;
pub mod multi_objective;
pub mod neural_architecture_search;
pub mod portfolio_management;
pub mod transfer_learning;
pub use config::*;
pub use feature_extraction::{
AlgorithmType, ArchitectureSpec, ConvergenceMetrics, ExperienceDatabase, FeatureExtractor,
FeatureVector, OptimizationConfiguration, OptimizationExperience, OptimizationResults,
ProblemDomain, ProblemFeatures, QualityMetrics, ResourceAllocation, ResourceUsage,
SuccessMetrics,
};
pub use meta_learning::{
CrossValidationStrategy, EvaluationMetric, MetaLearner, MetaLearningAlgorithm,
MetaLearningOptimizer, MetaOptimizationResult, PerformanceEvaluator, StatisticalTest,
TrainingEpisode,
};
pub use multi_objective::{
DecisionMaker, FrontierStatistics, FrontierUpdate, MultiObjectiveOptimizer,
MultiObjectiveSolution, ParetoFrontier, UpdateReason, UserPreferences,
};
pub use neural_architecture_search::{
ArchitectureCandidate, GenerationMethod, NeuralArchitectureSearch, PerformancePredictor,
ResourceRequirements, SearchIteration,
};
pub use portfolio_management::{
Algorithm, AlgorithmPerformanceStats, AlgorithmPortfolio, ApplicabilityConditions,
GuaranteeType, PerformanceGuarantee, PerformanceRecord, PortfolioComposition,
};
pub use transfer_learning::{
AdaptationMechanism, DomainCharacteristics, Knowledge, ModelType, SimilarityMethod,
SimilarityMetric, SourceDomain, TransferLearner, TransferRecord, TransferStrategy,
TransferableModel,
};
use std::collections::{BTreeMap, HashMap, VecDeque};
use std::sync::{Arc, Mutex, RwLock};
use std::thread;
use std::time::{Duration, Instant};
use crate::applications::{ApplicationError, ApplicationResult};
use crate::ising::{IsingModel, QuboModel};
use crate::simulator::{AnnealingParams, AnnealingResult, QuantumAnnealingSimulator};
#[derive(Debug, Clone)]
pub struct RecommendedStrategy {
pub algorithm: String,
pub hyperparameters: HashMap<String, f64>,
pub confidence: f64,
pub expected_performance: f64,
pub alternatives: Vec<AlternativeStrategy>,
}
#[derive(Debug, Clone)]
pub struct AlternativeStrategy {
pub algorithm: String,
pub relative_performance: f64,
}
#[derive(Debug, Clone)]
pub struct MetaLearningStatistics {
pub total_episodes: usize,
pub average_improvement: f64,
pub transfer_success_rate: f64,
pub feature_extraction_time: Duration,
pub model_training_time: Duration,
pub prediction_time: Duration,
}
#[must_use]
pub fn create_meta_learning_optimizer() -> MetaLearningOptimizer {
let config = MetaLearningConfig::default();
MetaLearningOptimizer::new(config)
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_meta_learning_optimizer_creation() {
let optimizer = create_meta_learning_optimizer();
assert!(optimizer.config.enable_transfer_learning);
}
#[test]
fn test_recommended_strategy() {
let strategy = RecommendedStrategy {
algorithm: "SimulatedAnnealing".to_string(),
hyperparameters: HashMap::new(),
confidence: 0.8,
expected_performance: 0.95,
alternatives: vec![],
};
assert_eq!(strategy.algorithm, "SimulatedAnnealing");
assert_eq!(strategy.confidence, 0.8);
}
}