quantrs2_ml/
lib.rs

1#![recursion_limit = "8192"]
2#![allow(warnings)]
3
4//! # Quantum Machine Learning
5//!
6//! This crate provides quantum machine learning capabilities for the QuantRS2 framework.
7//! It includes quantum neural networks, variational algorithms, and specialized tools for
8//! high-energy physics data analysis, plus cutting-edge quantum ML algorithms.
9//!
10//! ## Core Features
11//!
12//! - Quantum Neural Networks
13//! - Variational Quantum Algorithms
14//! - High-Energy Physics Data Analysis
15//! - Quantum Reinforcement Learning
16//! - Quantum Generative Models
17//! - Quantum Kernels for Classification
18//! - Quantum-Enhanced Cryptographic Protocols
19//! - Quantum Blockchain and Distributed Ledger Technology
20//! - Quantum-Enhanced Natural Language Processing
21//! - Quantum Anomaly Detection and Outlier Analysis
22//!
23//! ## Cutting-Edge Quantum ML Algorithms
24//!
25//! - **Quantum Neural ODEs**: Continuous-depth quantum neural networks using quantum circuits to parameterize derivative functions
26//! - **Quantum Physics-Informed Neural Networks (QPINNs)**: Quantum neural networks that enforce physical laws and solve PDEs
27//! - **Quantum Reservoir Computing**: Leverages quantum dynamics for temporal data processing with quantum advantages
28//! - **Quantum Graph Attention Networks**: Combines graph neural networks with quantum attention mechanisms for complex graph analysis
29//!
30//! ## Recent Updates (v0.1.0-beta.2)
31//!
32//! - Refined SciRS2 v0.1.0-beta.3 integration with unified patterns
33//! - Automatic differentiation leveraging SciRS2's linear algebra operations
34//! - Parallel training with `scirs2_core::parallel_ops`
35//! - SIMD-accelerated quantum kernel computations
36
37use fastrand;
38use std::error::Error;
39use thiserror::Error;
40
41pub mod barren_plateau;
42pub mod blockchain;
43pub mod classification;
44pub mod crypto;
45pub mod enhanced_gan;
46pub mod gan;
47pub mod hep;
48pub mod kernels;
49pub mod nlp;
50pub mod optimization;
51pub mod qcnn;
52pub mod qnn;
53pub mod qsvm;
54pub mod reinforcement;
55pub mod vae;
56pub mod variational;
57
58pub mod adversarial;
59pub mod anneal_integration;
60pub mod anomaly_detection;
61pub mod attention;
62pub mod autodiff;
63pub mod automl;
64pub mod benchmarking;
65pub mod boltzmann;
66pub mod circuit_integration;
67pub mod classical_ml_integration;
68pub mod clustering;
69pub mod computer_vision;
70pub mod continual_learning;
71pub mod continuous_rl;
72pub mod device_compilation;
73pub mod diffusion;
74pub mod dimensionality_reduction;
75pub mod domain_templates;
76pub mod error;
77pub mod error_mitigation;
78pub mod explainable_ai;
79pub mod federated;
80pub mod few_shot;
81pub mod gnn;
82#[cfg(feature = "gpu")]
83pub mod gpu_backend_impl;
84pub mod industry_examples;
85pub mod keras_api;
86pub mod lstm;
87pub mod meta_learning;
88pub mod model_zoo;
89pub mod onnx_export;
90pub mod performance_profiler;
91pub mod pytorch_api;
92pub mod quantum_advanced_diffusion;
93pub mod quantum_advantage_validator;
94pub mod quantum_continuous_flows;
95pub mod quantum_graph_attention;
96pub mod quantum_implicit_neural_representations;
97pub mod quantum_in_context_learning;
98pub mod quantum_llm;
99pub mod quantum_memory_networks;
100pub mod quantum_mixture_of_experts;
101pub mod quantum_nas;
102pub mod quantum_neural_odes;
103pub mod quantum_neural_radiance_fields;
104pub mod quantum_pinns;
105pub mod quantum_reservoir_computing;
106pub mod quantum_self_supervised_learning;
107pub mod quantum_transformer;
108pub mod recommender;
109pub mod scirs2_integration;
110pub mod simulator_backends;
111pub mod sklearn_compatibility;
112pub mod tensorflow_compatibility;
113pub mod time_series;
114pub mod transfer;
115pub mod tutorials;
116
117// Utilities module for calibration, metrics, preprocessing, etc.
118pub mod utils;
119
120// Advanced Quantum-Classical Hybrid AutoML Engine
121pub mod hybrid_automl_engine;
122
123/// Re-export error types for easier access
124pub use error::MLError;
125pub use error::Result;
126
127/// Prelude module for convenient imports
128pub mod prelude {
129    pub use crate::adversarial::{
130        create_comprehensive_defense, create_default_adversarial_config, AdversarialTrainingConfig,
131        QuantumAdversarialExample, QuantumAdversarialTrainer, QuantumAttackType,
132        QuantumDefenseStrategy, RobustnessMetrics,
133    };
134    pub use crate::anneal_integration::{
135        AnnealingClient, AnnealingParams, AnnealingResult,
136        AnnealingSchedule as MLAnnealingSchedule, CircuitOptimizationProblem,
137        FeatureSelectionProblem, HyperparameterProblem, IsingProblem, OptimizationResult,
138        PortfolioOptimizationProblem, QuantumMLAnnealer, QuantumMLOptimizationProblem,
139        QuantumMLQUBO,
140    };
141    pub use crate::anomaly_detection::{
142        AnomalyDetectionMethod, AnomalyMetrics, AnomalyResult, PerformanceConfig,
143        PreprocessingConfig as AnomalyPreprocessingConfig, QuantumAnomalyConfig,
144        QuantumAnomalyDetector, QuantumAnomalyMetrics, QuantumAutoencoder,
145        QuantumEnhancementConfig, QuantumIsolationForest, QuantumLOF, QuantumOneClassSVM,
146        RealtimeConfig, SpecializedDetectorConfig,
147    };
148    pub use crate::automl::{
149        create_comprehensive_automl_config, create_default_automl_config, AdvancedAutoMLFeatures,
150        AlgorithmSearchSpace, EnsembleSearchSpace, EvaluationConfig, HyperparameterSearchSpace,
151        MLTaskType, OptimizationObjective, QuantumAutoML, QuantumAutoMLConfig, QuantumConstraints,
152        QuantumEncodingMethod, SearchBudgetConfig, SearchSpaceConfig,
153    };
154    pub use crate::benchmarking::{
155        Benchmark, BenchmarkCategory, BenchmarkConfig, BenchmarkFramework, BenchmarkReport,
156        BenchmarkResults, BenchmarkRunResult, BenchmarkSummary, ScalingType,
157    };
158    pub use crate::blockchain::{ConsensusType, QuantumBlockchain, QuantumToken, SmartContract};
159    pub use crate::boltzmann::{
160        AnnealingSchedule, DeepBoltzmannMachine, QuantumBoltzmannMachine, QuantumRBM,
161    };
162    pub use crate::circuit_integration::{
163        BackendManager, DeviceTopology, ExpressionvityMetrics, HardwareAwareCompiler,
164        MLCircuitAnalyzer, MLCircuitOptimizer, OptimizationPass, ParameterizedLayer, QuantumLayer,
165        QuantumMLExecutor, QubitProperties, RotationAxis, TrainabilityMetrics,
166    };
167    pub use crate::classical_ml_integration::{
168        utils as pipeline_utils, AutoOptimizationConfig, ClassicalModel, DataPreprocessor,
169        DatasetInfo, EnsembleStrategy, HybridModel, HybridPipeline, HybridPipelineManager,
170        MinMaxScaler, ModelRegistry, ModelType, OptimizedPipeline, PerformanceProfile,
171        PipelineConfig, PipelineRecommendation, PipelineStage, PipelineTemplate,
172        ResourceConstraints, StandardScaler, ValidationStrategy, WeightedVotingEnsemble,
173    };
174    pub use crate::classification::{ClassificationMetrics, Classifier};
175    pub use crate::clustering::{
176        ClusteringAlgorithm, CoreClusteringMetrics as QuantumClusteringMetrics, QuantumClusterer,
177        QuantumClusteringConfig,
178    };
179    pub use crate::computer_vision::{
180        AugmentationConfig, ColorSpace, ComputationalMetrics, ConvolutionalConfig,
181        ImageEncodingMethod, ImagePreprocessor, PreprocessingConfig, QuantumConvolutionalNN,
182        QuantumEnhancement, QuantumFeatureExtractor, QuantumImageEncoder, QuantumMetrics,
183        QuantumSpatialAttention, QuantumVisionConfig, QuantumVisionPipeline, ResidualBlock,
184        TaskOutput, TaskTarget, TrainingHistory, VisionBackbone, VisionMetrics, VisionTaskConfig,
185    };
186    pub use crate::continual_learning::{
187        create_continual_task, generate_task_sequence, ContinualLearningStrategy, ContinualTask,
188        Experience, ForgettingMetrics, MemoryBuffer, MemorySelectionStrategy,
189        ParameterAllocationStrategy, QuantumContinualLearner, TaskMetrics, TaskType,
190    };
191    pub use crate::continuous_rl::{
192        ContinuousEnvironment, Experience as RLExperience, PendulumEnvironment, QuantumActor,
193        QuantumCritic, QuantumDDPG, QuantumSAC, ReplayBuffer,
194    };
195    pub use crate::crypto::{
196        ProtocolType, QuantumAuthentication, QuantumKeyDistribution, QuantumSignature,
197    };
198    pub use crate::device_compilation::{
199        CompilationMetrics, CompilationOptions, CompiledModel, DeviceCharacterization,
200        DeviceCompiler, QuantumMLModel, QubitMapping, RoutingAlgorithm, SynthesisMethod,
201    };
202    pub use crate::diffusion::{
203        NoiseSchedule, QuantumDiffusionModel, QuantumScoreDiffusion, QuantumVariationalDiffusion,
204    };
205    pub use crate::dimensionality_reduction::{
206        AutoencoderArchitecture, DRTrainedState, DimensionalityReductionAlgorithm,
207        DimensionalityReductionMetrics, ManifoldMetrics, QAutoencoderConfig, QCCAConfig,
208        QFactorAnalysisConfig, QFeatureSelectionConfig, QICAConfig, QKernelPCAConfig, QLDAConfig,
209        QManifoldConfig, QNMFConfig, QPCAConfig, QSpecializedConfig, QUMAPConfig, QtSNEConfig,
210        QuantumDimensionalityReducer, QuantumDistanceMetric as DRQuantumDistanceMetric,
211        QuantumEigensolver, QuantumEnhancementLevel as DRQuantumEnhancementLevel,
212        QuantumFeatureMap, ReconstructionMetrics,
213    };
214    pub use crate::domain_templates::{
215        utils as domain_utils, CreditRiskModel, Domain, DomainModel, DomainTemplateManager,
216        DrugDiscoveryModel, FraudDetectionModel, MaterialPropertyModel, MedicalImageModel,
217        ModelComplexity, MolecularPropertyModel, PortfolioOptimizationModel, ProblemType,
218        SmartGridModel, TemplateConfig, TemplateMetadata, VehicleRoutingModel,
219    };
220    pub use crate::error::{MLError, Result};
221    pub use crate::error_mitigation::{
222        AdaptiveConfig, CalibrationData, CircuitFoldingMethod, CoherenceTimeModel, ErrorType,
223        ExtrapolationMethod, GateErrorModel, MeasurementErrorModel, MitigatedInferenceData,
224        MitigatedTrainingData, MitigationStrategy, NoiseModel, QuantumMLErrorMitigator,
225        ReadoutCorrectionMethod,
226    };
227    pub use crate::explainable_ai::{
228        create_default_xai_config, AggregationMethod, AttributionMethod, CircuitExplanation,
229        ExplanationMethod, ExplanationResult, LRPRule, LocalModelType, PerturbationMethod,
230        QuantumExplainableAI, QuantumStateProperties,
231    };
232    pub use crate::few_shot::{
233        DistanceMetric, Episode, FewShotLearner, FewShotMethod, QuantumMAML,
234        QuantumPrototypicalNetwork,
235    };
236    pub use crate::gan::{Discriminator, GANEvaluationMetrics, Generator, QuantumGAN};
237    pub use crate::hep::{
238        AnomalyDetector, EventReconstructor, HEPQuantumClassifier, ParticleCollisionClassifier,
239    };
240    pub use crate::industry_examples::{
241        utils as industry_utils, BenchmarkResult, BusinessImpact, DataRequirements, ExampleResult,
242        ImplementationComplexity, Industry, IndustryExampleManager, PerformanceMetrics,
243        QuantumAdvantageMetrics, ROIEstimate, ROISummary, ResourceRequirements, UseCase,
244    };
245    pub use crate::keras_api::{
246        utils as keras_utils, Activation, ActivationFunction, Callback, DataType, Dense,
247        EarlyStopping, InitializerType, Input, KerasLayer, LayerInfo, LossFunction, MetricType,
248        ModelSummary, OptimizerType, QuantumAnsatzType, QuantumDense, Sequential,
249        TrainingHistory as KerasTrainingHistory,
250    };
251    pub use crate::kernels::{KernelMethod, QuantumKernel};
252    pub use crate::meta_learning::{
253        ContinualMetaLearner, MetaLearningAlgorithm, MetaLearningHistory, MetaTask,
254        QuantumMetaLearner, TaskGenerator,
255    };
256    pub use crate::model_zoo::{
257        utils as model_zoo_utils, IrisQuantumSVM, MNISTQuantumNN, ModelCategory, ModelMetadata,
258        ModelRequirements, ModelZoo, PortfolioQAOA, QuantumModel, TrainingConfig, H2VQE,
259    };
260    pub use crate::nlp::{NLPTaskType, QuantumLanguageModel, SentimentAnalyzer, TextSummarizer};
261    pub use crate::onnx_export::{
262        utils as onnx_utils, ExportOptions, ImportOptions, ModelInfo, ONNXAttribute, ONNXDataType,
263        ONNXExporter, ONNXGraph, ONNXImporter, ONNXNode, ONNXTensor, ONNXValueInfo,
264        QuantumBackendTarget, TargetFramework, UnsupportedOpHandling, ValidationReport,
265    };
266    pub use crate::optimization::{ObjectiveFunction, OptimizationMethod, Optimizer};
267    pub use crate::performance_profiler::{
268        Bottleneck, BottleneckSeverity, CircuitMetrics, MemorySnapshot, MemoryStats,
269        OperationStats, ProfilerConfig, ProfilingReport, QuantumMLProfiler,
270    };
271    pub use crate::pytorch_api::{
272        ActivationType as PyTorchActivationType, DataLoader, InitType, MemoryDataLoader, Parameter,
273        QuantumActivation, QuantumConv2d, QuantumCrossEntropyLoss, QuantumLinear, QuantumLoss,
274        QuantumMSELoss, QuantumModule, QuantumSequential, QuantumTrainer,
275        TrainingHistory as PyTorchTrainingHistory,
276    };
277    pub use crate::qnn::{QNNBuilder, QNNLayer, QuantumNeuralNetwork};
278    pub use crate::qsvm::{
279        FeatureMapType, QSVMParams, QuantumKernel as QSVMKernel, QuantumKernelRidge, QSVM,
280    };
281    pub use crate::quantum_llm::{
282        GenerationConfig, GenerationStatistics, MemoryRetrievalType, ModelScale,
283        QLLMTrainingConfig, QualityMetrics, QuantumAnalogyEngine, QuantumAssociativeMemory,
284        QuantumLLM, QuantumLLMConfig, QuantumMemoryConfig, QuantumMemorySystem,
285        QuantumParameterUpdate, QuantumReasoningConfig, QuantumReasoningModule, Vocabulary,
286    };
287    pub use crate::quantum_nas::{
288        create_default_search_space, AcquisitionFunction, ArchitectureCandidate,
289        ArchitectureMetrics, ArchitectureProperties, QuantumNAS, QuantumTopology, QubitConstraints,
290        RLAgentType, SearchSpace, SearchStrategy,
291    };
292    pub use crate::quantum_transformer::{
293        create_causal_mask, create_padding_mask, ActivationType, AttentionOutput,
294        PositionEncodingType, QuantumAttentionInfo, QuantumAttentionType, QuantumFeedForward,
295        QuantumMultiHeadAttention, QuantumPositionEncoding, QuantumTransformer,
296        QuantumTransformerConfig, QuantumTransformerLayer,
297    };
298    pub use crate::recommender::{
299        BusinessRules, FeatureExtractionMethod, ItemFeatures, ProfileLearningMethod,
300        QuantumEnhancementLevel, QuantumRecommender, QuantumRecommenderConfig, Recommendation,
301        RecommendationAlgorithm, RecommendationExplanation, RecommendationOptions,
302        SimilarityMeasure, UserProfile,
303    };
304    pub use crate::reinforcement::{Environment, QuantumAgent, ReinforcementLearning};
305    pub use crate::scirs2_integration::{
306        SciRS2Array, SciRS2DistributedTrainer, SciRS2Optimizer, SciRS2Serializer, SciRS2Tensor,
307    };
308    pub use crate::simulator_backends::{
309        BackendCapabilities, BackendSelectionStrategy, GradientMethod, MPSBackend, Observable,
310        SimulationResult, SimulatorBackend, StatevectorBackend,
311    };
312    pub use crate::sklearn_compatibility::{
313        model_selection, pipeline, QuantumKMeans, QuantumMLPClassifier, QuantumMLPRegressor,
314        QuantumSVC, SklearnClassifier, SklearnClusterer, SklearnEstimator, SklearnRegressor,
315    };
316    pub use crate::tensorflow_compatibility::{
317        tfq_utils, DataEncodingType, PQCLayer, PaddingType, ParameterInitStrategy,
318        QuantumCircuitLayer, QuantumConvolutionalLayer, QuantumDataset, QuantumDatasetIterator,
319        RegularizationType, TFQCircuitFormat, TFQGate, TFQLayer, TFQLossFunction, TFQModel,
320        TFQOptimizer,
321    };
322    pub use crate::time_series::{
323        generate_synthetic_time_series, AnomalyPoint, AnomalyType, DiversityStrategy,
324        EnsembleConfig, EnsembleMethod, FeatureEngineeringConfig, ForecastMetrics, ForecastResult,
325        QuantumEnhancementLevel as TSQuantumEnhancementLevel, QuantumTimeSeriesConfig,
326        QuantumTimeSeriesForecaster, SeasonalityConfig, TimeSeriesModel,
327    };
328    pub use crate::transfer::{
329        LayerConfig, PretrainedModel, QuantumModelZoo, QuantumTransferLearning, TransferStrategy,
330    };
331    pub use crate::tutorials::{
332        utils as tutorial_utils, CodeExample, DifficultyLevel, Exercise, ExerciseResult,
333        ExerciseType, ExperienceLevel, InteractiveElement, InteractiveType, TestCase, Tutorial,
334        TutorialCategory, TutorialManager, TutorialProgress, TutorialSection, TutorialSession,
335        UserBackground,
336    };
337    pub use crate::variational::{VariationalAlgorithm, VariationalCircuit};
338
339    // New cutting-edge quantum ML algorithms
340    pub use crate::quantum_graph_attention::{
341        AttentionAnalysis, AttentionConfig as QGATAttentionConfig,
342        BenchmarkResults as QGATBenchmarkResults, Graph, PoolingConfig, QGATConfig,
343        QuantumAttentionType as QGATQuantumAttentionType, QuantumGraphAttentionNetwork,
344        TrainingMetrics as QGATTrainingMetrics,
345    };
346    pub use crate::quantum_in_context_learning::{
347        AdaptationResult, AdaptationStrategy, AdaptationTarget, ContextExample, ContextMetadata,
348        ContextModality, ContextRetrievalMethod, EntanglementPattern, InContextLearningMetrics,
349        InContextLearningOutput, InContextLearningStatistics, InterpolationMethod,
350        MetaUpdateStrategy, QuantumAttentionMechanism, QuantumContextAttention,
351        QuantumContextEncoder, QuantumContextEncoding, QuantumContextState, QuantumDistanceMetric,
352        QuantumEpisodicMemory, QuantumInContextLearner, QuantumInContextLearningConfig,
353        QuantumTaskAdapter, TransferLearningResults,
354    };
355    pub use crate::quantum_memory_networks::{
356        AddressingConfig, AddressingType, BenchmarkResults as QMANBenchmarkResults,
357        ControllerArchitecture, ControllerConfig as QMANControllerConfig, EpisodicMemory,
358        HeadConfig, HeadType as QMANHeadType, MemoryInitialization, QMANConfig, QMANTrainingConfig,
359        QuantumMemoryAugmentedNetwork, ReadParams, TrainingMetrics as QMANTrainingMetrics,
360        WriteParams,
361    };
362    pub use crate::quantum_neural_odes::{
363        AnsatzType as QNODEAnsatzType, BenchmarkResults as QNODEBenchmarkResults,
364        IntegrationMethod, OptimizationStrategy as QNODEOptimizationStrategy, QNODEConfig,
365        QuantumNeuralODE, TrainingMetrics as QNODETrainingMetrics,
366    };
367    pub use crate::quantum_pinns::{
368        BoundaryCondition, DerivativeResults, InitialCondition, LossWeights, PhysicsEquationType,
369        QPINNConfig, QuantumPINN, TrainingMetrics as QPINNTrainingMetrics,
370    };
371    pub use crate::quantum_reservoir_computing::{
372        BenchmarkResults as QRCBenchmarkResults, DynamicsAnalysis, InputEncoding, QRCConfig,
373        QuantumReservoirComputer, ReadoutConfig, ReservoirDynamics,
374        TrainingMetrics as QRCTrainingMetrics,
375    };
376
377    pub use crate::quantum_advanced_diffusion::{
378        DenoisingArchitecture, ErrorMitigationStrategy, GenerationMetrics,
379        QuantumAdvancedDiffusionConfig, QuantumAdvancedDiffusionModel, QuantumGenerationOutput,
380        QuantumNoiseSchedule, QuantumTrainingConfig,
381    };
382
383    pub use crate::quantum_advantage_validator::{
384        ClassicalBaseline, ComparisonMetric, QuantumAdvantage, QuantumAdvantageValidator,
385        QuantumResourceUsage, QuantumResult, ResourceUsage, StatisticalSignificance,
386        ValidationConfig, ValidationReport as AdvantageValidationReport,
387    };
388
389    pub use crate::quantum_continuous_flows::{
390        FlowArchitecture, FlowSamplingOutput, FlowTrainingConfig, QuantumContinuousFlow,
391        QuantumContinuousFlowConfig, QuantumODEFunction,
392    };
393
394    pub use crate::quantum_neural_radiance_fields::{
395        QuantumNeRF, QuantumNeRFConfig, QuantumRenderOutput, QuantumRenderingMetrics,
396    };
397
398    pub use crate::quantum_mixture_of_experts::{
399        InterferencePattern, MoEOutput, MoEStatistics, MoETrainingConfig,
400        QuantumCombinationMetrics, QuantumGatingMechanism, QuantumMixtureOfExperts,
401        QuantumMixtureOfExpertsConfig, QuantumRoutingStrategy,
402    };
403
404    pub use crate::quantum_self_supervised_learning::{
405        ContrastiveLossFunction, QuantumAugmentationStrategy, QuantumAugmenter, QuantumDecoder,
406        QuantumEncoder, QuantumMaskingStrategy, QuantumProjector, QuantumSSLMethod,
407        QuantumSSLMetrics, QuantumSelfSupervisedConfig, QuantumSelfSupervisedLearner,
408        QuantumSimilarityMetric, RepresentationEvaluationResults, SSLLearningOutput,
409        SSLTrainingConfig,
410    };
411
412    pub use crate::quantum_implicit_neural_representations::{
413        AdaptationOutput, CompressedRepresentation, CompressionConfig, CompressionManager,
414        EntanglementManager, INRQueryOutput, INRTrainingConfig, INRTrainingOutput,
415        MetaLearningConfig, OptimizationConfig, QuantumActivationConfig, QuantumGradientEstimator,
416        QuantumINRConfig, QuantumINRMetrics, QuantumImplicitNeuralRepresentation,
417        QuantumLayerConfig, QuantumOptimizer, QuantumPositionalEncoding, QuantumStateManager,
418        RepresentationMethod, SignalType,
419    };
420}