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 pytorch_api;
91pub mod quantum_advanced_diffusion;
92pub mod quantum_continuous_flows;
93pub mod quantum_graph_attention;
94pub mod quantum_implicit_neural_representations;
95pub mod quantum_in_context_learning;
96pub mod quantum_llm;
97pub mod quantum_memory_networks;
98pub mod quantum_mixture_of_experts;
99pub mod quantum_nas;
100pub mod quantum_neural_odes;
101pub mod quantum_neural_radiance_fields;
102pub mod quantum_pinns;
103pub mod quantum_reservoir_computing;
104pub mod quantum_self_supervised_learning;
105pub mod quantum_transformer;
106pub mod recommender;
107pub mod scirs2_integration;
108pub mod simulator_backends;
109pub mod sklearn_compatibility;
110pub mod tensorflow_compatibility;
111pub mod time_series;
112pub mod transfer;
113pub mod tutorials;
114
115// Internal utilities module
116mod utils;
117
118/// Re-export error types for easier access
119pub use error::MLError;
120pub use error::Result;
121
122/// Prelude module for convenient imports
123pub mod prelude {
124    pub use crate::adversarial::{
125        create_comprehensive_defense, create_default_adversarial_config, AdversarialTrainingConfig,
126        QuantumAdversarialExample, QuantumAdversarialTrainer, QuantumAttackType,
127        QuantumDefenseStrategy, RobustnessMetrics,
128    };
129    pub use crate::anneal_integration::{
130        AnnealingClient, AnnealingParams, AnnealingResult,
131        AnnealingSchedule as MLAnnealingSchedule, CircuitOptimizationProblem,
132        FeatureSelectionProblem, HyperparameterProblem, IsingProblem, OptimizationResult,
133        PortfolioOptimizationProblem, QuantumMLAnnealer, QuantumMLOptimizationProblem,
134        QuantumMLQUBO,
135    };
136    pub use crate::anomaly_detection::{
137        AnomalyDetectionMethod, AnomalyMetrics, AnomalyResult, PerformanceConfig,
138        PreprocessingConfig as AnomalyPreprocessingConfig, QuantumAnomalyConfig,
139        QuantumAnomalyDetector, QuantumAnomalyMetrics, QuantumAutoencoder,
140        QuantumEnhancementConfig, QuantumIsolationForest, QuantumLOF, QuantumOneClassSVM,
141        RealtimeConfig, SpecializedDetectorConfig,
142    };
143    pub use crate::automl::{
144        create_comprehensive_automl_config, create_default_automl_config, AdvancedAutoMLFeatures,
145        AlgorithmSearchSpace, EnsembleSearchSpace, EvaluationConfig, HyperparameterSearchSpace,
146        MLTaskType, OptimizationObjective, QuantumAutoML, QuantumAutoMLConfig, QuantumConstraints,
147        QuantumEncodingMethod, SearchBudgetConfig, SearchSpaceConfig,
148    };
149    pub use crate::benchmarking::{
150        Benchmark, BenchmarkCategory, BenchmarkConfig, BenchmarkFramework, BenchmarkReport,
151        BenchmarkResults, BenchmarkRunResult, BenchmarkSummary, ScalingType,
152    };
153    pub use crate::blockchain::{ConsensusType, QuantumBlockchain, QuantumToken, SmartContract};
154    pub use crate::boltzmann::{
155        AnnealingSchedule, DeepBoltzmannMachine, QuantumBoltzmannMachine, QuantumRBM,
156    };
157    pub use crate::circuit_integration::{
158        BackendManager, DeviceTopology, ExpressionvityMetrics, HardwareAwareCompiler,
159        MLCircuitAnalyzer, MLCircuitOptimizer, OptimizationPass, ParameterizedLayer, QuantumLayer,
160        QuantumMLExecutor, QubitProperties, RotationAxis, TrainabilityMetrics,
161    };
162    pub use crate::classical_ml_integration::{
163        utils as pipeline_utils, AutoOptimizationConfig, ClassicalModel, DataPreprocessor,
164        DatasetInfo, EnsembleStrategy, HybridModel, HybridPipeline, HybridPipelineManager,
165        MinMaxScaler, ModelRegistry, ModelType, OptimizedPipeline, PerformanceProfile,
166        PipelineConfig, PipelineRecommendation, PipelineStage, PipelineTemplate,
167        ResourceConstraints, StandardScaler, ValidationStrategy, WeightedVotingEnsemble,
168    };
169    pub use crate::classification::{ClassificationMetrics, Classifier};
170    pub use crate::clustering::{
171        ClusteringAlgorithm, CoreClusteringMetrics as QuantumClusteringMetrics, QuantumClusterer,
172        QuantumClusteringConfig,
173    };
174    pub use crate::computer_vision::{
175        AugmentationConfig, ColorSpace, ComputationalMetrics, ConvolutionalConfig,
176        ImageEncodingMethod, ImagePreprocessor, PreprocessingConfig, QuantumConvolutionalNN,
177        QuantumEnhancement, QuantumFeatureExtractor, QuantumImageEncoder, QuantumMetrics,
178        QuantumSpatialAttention, QuantumVisionConfig, QuantumVisionPipeline, ResidualBlock,
179        TaskOutput, TaskTarget, TrainingHistory, VisionBackbone, VisionMetrics, VisionTaskConfig,
180    };
181    pub use crate::continual_learning::{
182        create_continual_task, generate_task_sequence, ContinualLearningStrategy, ContinualTask,
183        Experience, ForgettingMetrics, MemoryBuffer, MemorySelectionStrategy,
184        ParameterAllocationStrategy, QuantumContinualLearner, TaskMetrics, TaskType,
185    };
186    pub use crate::continuous_rl::{
187        ContinuousEnvironment, Experience as RLExperience, PendulumEnvironment, QuantumActor,
188        QuantumCritic, QuantumDDPG, QuantumSAC, ReplayBuffer,
189    };
190    pub use crate::crypto::{
191        ProtocolType, QuantumAuthentication, QuantumKeyDistribution, QuantumSignature,
192    };
193    pub use crate::device_compilation::{
194        CompilationMetrics, CompilationOptions, CompiledModel, DeviceCharacterization,
195        DeviceCompiler, QuantumMLModel, QubitMapping, RoutingAlgorithm, SynthesisMethod,
196    };
197    pub use crate::diffusion::{
198        NoiseSchedule, QuantumDiffusionModel, QuantumScoreDiffusion, QuantumVariationalDiffusion,
199    };
200    pub use crate::dimensionality_reduction::{
201        AutoencoderArchitecture, DRTrainedState, DimensionalityReductionAlgorithm,
202        DimensionalityReductionMetrics, ManifoldMetrics, QAutoencoderConfig, QCCAConfig,
203        QFactorAnalysisConfig, QFeatureSelectionConfig, QICAConfig, QKernelPCAConfig, QLDAConfig,
204        QManifoldConfig, QNMFConfig, QPCAConfig, QSpecializedConfig, QUMAPConfig, QtSNEConfig,
205        QuantumDimensionalityReducer, QuantumDistanceMetric as DRQuantumDistanceMetric,
206        QuantumEigensolver, QuantumEnhancementLevel as DRQuantumEnhancementLevel,
207        QuantumFeatureMap, ReconstructionMetrics,
208    };
209    pub use crate::domain_templates::{
210        utils as domain_utils, CreditRiskModel, Domain, DomainModel, DomainTemplateManager,
211        DrugDiscoveryModel, FraudDetectionModel, MaterialPropertyModel, MedicalImageModel,
212        ModelComplexity, MolecularPropertyModel, PortfolioOptimizationModel, ProblemType,
213        SmartGridModel, TemplateConfig, TemplateMetadata, VehicleRoutingModel,
214    };
215    pub use crate::error::{MLError, Result};
216    pub use crate::error_mitigation::{
217        AdaptiveConfig, CalibrationData, CircuitFoldingMethod, CoherenceTimeModel, ErrorType,
218        ExtrapolationMethod, GateErrorModel, MeasurementErrorModel, MitigatedInferenceData,
219        MitigatedTrainingData, MitigationStrategy, NoiseModel, QuantumMLErrorMitigator,
220        ReadoutCorrectionMethod,
221    };
222    pub use crate::explainable_ai::{
223        create_default_xai_config, AggregationMethod, AttributionMethod, CircuitExplanation,
224        ExplanationMethod, ExplanationResult, LRPRule, LocalModelType, PerturbationMethod,
225        QuantumExplainableAI, QuantumStateProperties,
226    };
227    pub use crate::few_shot::{
228        DistanceMetric, Episode, FewShotLearner, FewShotMethod, QuantumMAML,
229        QuantumPrototypicalNetwork,
230    };
231    pub use crate::gan::{Discriminator, GANEvaluationMetrics, Generator, QuantumGAN};
232    pub use crate::hep::{
233        AnomalyDetector, EventReconstructor, HEPQuantumClassifier, ParticleCollisionClassifier,
234    };
235    pub use crate::industry_examples::{
236        utils as industry_utils, BenchmarkResult, BusinessImpact, DataRequirements, ExampleResult,
237        ImplementationComplexity, Industry, IndustryExampleManager, PerformanceMetrics,
238        QuantumAdvantageMetrics, ROIEstimate, ROISummary, ResourceRequirements, UseCase,
239    };
240    pub use crate::keras_api::{
241        utils as keras_utils, Activation, ActivationFunction, Callback, DataType, Dense,
242        EarlyStopping, InitializerType, Input, KerasLayer, LayerInfo, LossFunction, MetricType,
243        ModelSummary, OptimizerType, QuantumAnsatzType, QuantumDense, Sequential,
244        TrainingHistory as KerasTrainingHistory,
245    };
246    pub use crate::kernels::{KernelMethod, QuantumKernel};
247    pub use crate::meta_learning::{
248        ContinualMetaLearner, MetaLearningAlgorithm, MetaLearningHistory, MetaTask,
249        QuantumMetaLearner, TaskGenerator,
250    };
251    pub use crate::model_zoo::{
252        utils as model_zoo_utils, IrisQuantumSVM, MNISTQuantumNN, ModelCategory, ModelMetadata,
253        ModelRequirements, ModelZoo, PortfolioQAOA, QuantumModel, TrainingConfig, H2VQE,
254    };
255    pub use crate::nlp::{NLPTaskType, QuantumLanguageModel, SentimentAnalyzer, TextSummarizer};
256    pub use crate::onnx_export::{
257        utils as onnx_utils, ExportOptions, ImportOptions, ModelInfo, ONNXAttribute, ONNXDataType,
258        ONNXExporter, ONNXGraph, ONNXImporter, ONNXNode, ONNXTensor, ONNXValueInfo,
259        QuantumBackendTarget, TargetFramework, UnsupportedOpHandling, ValidationReport,
260    };
261    pub use crate::optimization::{ObjectiveFunction, OptimizationMethod, Optimizer};
262    pub use crate::pytorch_api::{
263        ActivationType as PyTorchActivationType, DataLoader, InitType, MemoryDataLoader, Parameter,
264        QuantumActivation, QuantumConv2d, QuantumCrossEntropyLoss, QuantumLinear, QuantumLoss,
265        QuantumMSELoss, QuantumModule, QuantumSequential, QuantumTrainer,
266        TrainingHistory as PyTorchTrainingHistory,
267    };
268    pub use crate::qnn::{QNNBuilder, QNNLayer, QuantumNeuralNetwork};
269    pub use crate::qsvm::{
270        FeatureMapType, QSVMParams, QuantumKernel as QSVMKernel, QuantumKernelRidge, QSVM,
271    };
272    pub use crate::quantum_llm::{
273        GenerationConfig, GenerationStatistics, MemoryRetrievalType, ModelScale,
274        QLLMTrainingConfig, QualityMetrics, QuantumAnalogyEngine, QuantumAssociativeMemory,
275        QuantumLLM, QuantumLLMConfig, QuantumMemoryConfig, QuantumMemorySystem,
276        QuantumParameterUpdate, QuantumReasoningConfig, QuantumReasoningModule, Vocabulary,
277    };
278    pub use crate::quantum_nas::{
279        create_default_search_space, AcquisitionFunction, ArchitectureCandidate,
280        ArchitectureMetrics, ArchitectureProperties, QuantumNAS, QuantumTopology, QubitConstraints,
281        RLAgentType, SearchSpace, SearchStrategy,
282    };
283    pub use crate::quantum_transformer::{
284        create_causal_mask, create_padding_mask, ActivationType, AttentionOutput,
285        PositionEncodingType, QuantumAttentionInfo, QuantumAttentionType, QuantumFeedForward,
286        QuantumMultiHeadAttention, QuantumPositionEncoding, QuantumTransformer,
287        QuantumTransformerConfig, QuantumTransformerLayer,
288    };
289    pub use crate::recommender::{
290        BusinessRules, FeatureExtractionMethod, ItemFeatures, ProfileLearningMethod,
291        QuantumEnhancementLevel, QuantumRecommender, QuantumRecommenderConfig, Recommendation,
292        RecommendationAlgorithm, RecommendationExplanation, RecommendationOptions,
293        SimilarityMeasure, UserProfile,
294    };
295    pub use crate::reinforcement::{Environment, QuantumAgent, ReinforcementLearning};
296    pub use crate::scirs2_integration::{
297        SciRS2Array, SciRS2DistributedTrainer, SciRS2Optimizer, SciRS2Serializer, SciRS2Tensor,
298    };
299    pub use crate::simulator_backends::{
300        BackendCapabilities, BackendSelectionStrategy, GradientMethod, MPSBackend, Observable,
301        SimulationResult, SimulatorBackend, StatevectorBackend,
302    };
303    pub use crate::sklearn_compatibility::{
304        model_selection, pipeline, QuantumKMeans, QuantumMLPClassifier, QuantumMLPRegressor,
305        QuantumSVC, SklearnClassifier, SklearnClusterer, SklearnEstimator, SklearnRegressor,
306    };
307    pub use crate::tensorflow_compatibility::{
308        tfq_utils, DataEncodingType, PQCLayer, PaddingType, ParameterInitStrategy,
309        QuantumCircuitLayer, QuantumConvolutionalLayer, QuantumDataset, QuantumDatasetIterator,
310        RegularizationType, TFQCircuitFormat, TFQGate, TFQLayer, TFQLossFunction, TFQModel,
311        TFQOptimizer,
312    };
313    pub use crate::time_series::{
314        generate_synthetic_time_series, AnomalyPoint, AnomalyType, DiversityStrategy,
315        EnsembleConfig, EnsembleMethod, FeatureEngineeringConfig, ForecastMetrics, ForecastResult,
316        QuantumEnhancementLevel as TSQuantumEnhancementLevel, QuantumTimeSeriesConfig,
317        QuantumTimeSeriesForecaster, SeasonalityConfig, TimeSeriesModel,
318    };
319    pub use crate::transfer::{
320        LayerConfig, PretrainedModel, QuantumModelZoo, QuantumTransferLearning, TransferStrategy,
321    };
322    pub use crate::tutorials::{
323        utils as tutorial_utils, CodeExample, DifficultyLevel, Exercise, ExerciseResult,
324        ExerciseType, ExperienceLevel, InteractiveElement, InteractiveType, TestCase, Tutorial,
325        TutorialCategory, TutorialManager, TutorialProgress, TutorialSection, TutorialSession,
326        UserBackground,
327    };
328    pub use crate::variational::{VariationalAlgorithm, VariationalCircuit};
329
330    // New cutting-edge quantum ML algorithms
331    pub use crate::quantum_graph_attention::{
332        AttentionAnalysis, AttentionConfig as QGATAttentionConfig,
333        BenchmarkResults as QGATBenchmarkResults, Graph, PoolingConfig, QGATConfig,
334        QuantumAttentionType as QGATQuantumAttentionType, QuantumGraphAttentionNetwork,
335        TrainingMetrics as QGATTrainingMetrics,
336    };
337    pub use crate::quantum_in_context_learning::{
338        AdaptationResult, AdaptationStrategy, AdaptationTarget, ContextExample, ContextMetadata,
339        ContextModality, ContextRetrievalMethod, EntanglementPattern, InContextLearningMetrics,
340        InContextLearningOutput, InContextLearningStatistics, InterpolationMethod,
341        MetaUpdateStrategy, QuantumAttentionMechanism, QuantumContextAttention,
342        QuantumContextEncoder, QuantumContextEncoding, QuantumContextState, QuantumDistanceMetric,
343        QuantumEpisodicMemory, QuantumInContextLearner, QuantumInContextLearningConfig,
344        QuantumTaskAdapter, TransferLearningResults,
345    };
346    pub use crate::quantum_memory_networks::{
347        AddressingConfig, AddressingType, BenchmarkResults as QMANBenchmarkResults,
348        ControllerArchitecture, ControllerConfig as QMANControllerConfig, EpisodicMemory,
349        HeadConfig, HeadType as QMANHeadType, MemoryInitialization, QMANConfig, QMANTrainingConfig,
350        QuantumMemoryAugmentedNetwork, ReadParams, TrainingMetrics as QMANTrainingMetrics,
351        WriteParams,
352    };
353    pub use crate::quantum_neural_odes::{
354        AnsatzType as QNODEAnsatzType, BenchmarkResults as QNODEBenchmarkResults,
355        IntegrationMethod, OptimizationStrategy as QNODEOptimizationStrategy, QNODEConfig,
356        QuantumNeuralODE, TrainingMetrics as QNODETrainingMetrics,
357    };
358    pub use crate::quantum_pinns::{
359        BoundaryCondition, DerivativeResults, InitialCondition, LossWeights, PhysicsEquationType,
360        QPINNConfig, QuantumPINN, TrainingMetrics as QPINNTrainingMetrics,
361    };
362    pub use crate::quantum_reservoir_computing::{
363        BenchmarkResults as QRCBenchmarkResults, DynamicsAnalysis, InputEncoding, QRCConfig,
364        QuantumReservoirComputer, ReadoutConfig, ReservoirDynamics,
365        TrainingMetrics as QRCTrainingMetrics,
366    };
367
368    pub use crate::quantum_advanced_diffusion::{
369        DenoisingArchitecture, ErrorMitigationStrategy, GenerationMetrics,
370        QuantumAdvancedDiffusionConfig, QuantumAdvancedDiffusionModel, QuantumGenerationOutput,
371        QuantumNoiseSchedule, QuantumTrainingConfig,
372    };
373
374    pub use crate::quantum_continuous_flows::{
375        FlowArchitecture, FlowSamplingOutput, FlowTrainingConfig, QuantumContinuousFlow,
376        QuantumContinuousFlowConfig, QuantumODEFunction,
377    };
378
379    pub use crate::quantum_neural_radiance_fields::{
380        QuantumNeRF, QuantumNeRFConfig, QuantumRenderOutput, QuantumRenderingMetrics,
381    };
382
383    pub use crate::quantum_mixture_of_experts::{
384        InterferencePattern, MoEOutput, MoEStatistics, MoETrainingConfig,
385        QuantumCombinationMetrics, QuantumGatingMechanism, QuantumMixtureOfExperts,
386        QuantumMixtureOfExpertsConfig, QuantumRoutingStrategy,
387    };
388
389    pub use crate::quantum_self_supervised_learning::{
390        ContrastiveLossFunction, QuantumAugmentationStrategy, QuantumAugmenter, QuantumDecoder,
391        QuantumEncoder, QuantumMaskingStrategy, QuantumProjector, QuantumSSLMethod,
392        QuantumSSLMetrics, QuantumSelfSupervisedConfig, QuantumSelfSupervisedLearner,
393        QuantumSimilarityMetric, RepresentationEvaluationResults, SSLLearningOutput,
394        SSLTrainingConfig,
395    };
396
397    pub use crate::quantum_implicit_neural_representations::{
398        AdaptationOutput, CompressedRepresentation, CompressionConfig, CompressionManager,
399        EntanglementManager, INRQueryOutput, INRTrainingConfig, INRTrainingOutput,
400        MetaLearningConfig, OptimizationConfig, QuantumActivationConfig, QuantumGradientEstimator,
401        QuantumINRConfig, QuantumINRMetrics, QuantumImplicitNeuralRepresentation,
402        QuantumLayerConfig, QuantumOptimizer, QuantumPositionalEncoding, QuantumStateManager,
403        RepresentationMethod, SignalType,
404    };
405}